/* ------------------------------------------------------------------ */ /* Watch & alerts, banners, director, pane sheets */ /* ------------------------------------------------------------------ */ /* Pane sheets: the whole screen on a phone (above the tab bar). */ .pane-sheets { z-index: 58; } /* Rules as sentences with chips */ .rules { display: grid; gap: 8px; } .rule { position: relative; display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: auto auto; align-items: center; column-gap: 12px; padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.045); box-shadow: inset 0 0 0 0.5px var(--hairline); --rc: var(--ink-2); } .rule[data-band='orbit'] { --rc: var(--b-orbit); } .rule[data-band='sky'] { --rc: var(--b-sky); } .rule[data-band='ground'] { --rc: var(--b-ground); } .rule .bd { grid-row: 1 / span 2; width: 4px; height: 100%; min-height: 34px; border-radius: 2px; background: var(--rc); } .rule p { margin: 0; font-size: var(--t-sub); line-height: 1.9; color: var(--ink-2); } .rule .switch { grid-row: 1 / span 2; grid-column: 3; } .rule-state { grid-column: 2; color: var(--ink-3); font-size: 0.5625rem; } .rule-chip { display: inline-flex; align-items: center; gap: 3px; height: 28px; padding: 0 6px 0 10px; border-radius: 8px; color: var(--ink); font-weight: 600; background: color-mix(in srgb, var(--rc) 18%, rgba(255, 255, 255, 0.04)); box-shadow: inset 0 0 0 0.5px color-mix(in srgb, var(--rc) 45%, transparent); vertical-align: baseline; transition: background var(--dur-1) linear; } .rule-chip:hover { background: color-mix(in srgb, var(--rc) 28%, rgba(255, 255, 255, 0.04)); } .rule-chip .i { font-size: 0.7rem; color: var(--ink-3); } .new-rule { margin-top: 10px; } .row-add { color: var(--tint); gap: 10px; } .row-icon[data-band='orbit'] { color: var(--b-orbit); } .row-icon[data-band='sky'] { color: var(--b-sky); } .row-icon[data-band='ground'] { color: var(--b-ground); } /* iOS-style notification banners */ .banners { position: absolute; top: calc(var(--safe-t) + 8px); left: 0; right: 0; z-index: 80; display: grid; justify-items: center; gap: 8px; padding: 0 10px; pointer-events: none; } .banner { pointer-events: auto; width: min(420px, 100%); display: flex; align-items: flex-start; gap: 11px; padding: 12px 14px; border-radius: 22px; text-align: left; color: var(--ink); background: rgba(28, 32, 40, 0.78); -webkit-backdrop-filter: blur(30px) saturate(1.8); backdrop-filter: blur(30px) saturate(1.8); box-shadow: inset 0 0.5px 0 rgba(255, 255, 255, 0.25), inset 0 0 0 0.5px rgba(255, 255, 255, 0.08), 0 16px 40px rgba(0, 0, 0, 0.5); touch-action: none; animation: banner-in 560ms var(--spring) both; transition: transform 260ms var(--ease-out), opacity 260ms linear; --bc: var(--b-sky); } .banner[data-band='orbit'] { --bc: var(--b-orbit); } .banner[data-band='ground'] { --bc: var(--b-ground); } .banner[data-band='inside'] { --bc: var(--b-inside); } .banner.out { opacity: 0; transform: translateY(-40px) scale(0.96); } @keyframes banner-in { from { opacity: 0; transform: translateY(-60px) scale(0.94); } } .bn-app { flex: none; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 1.3rem; color: #050607; background: linear-gradient(145deg, #ffe3a3, var(--b-inside)); box-shadow: inset 0 0 0 0.5px rgba(255, 255, 255, 0.4); } .bn-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; } .bn-top { display: flex; justify-content: space-between; color: var(--ink-3); font-size: var(--t-cap2); letter-spacing: 0.02em; } .bn-top b { font-weight: 600; } .bn-title { display: flex; align-items: center; gap: 5px; font-size: var(--t-sub); font-weight: 650; } .bn-title .i { flex: none; color: var(--bc); font-size: 0.95rem; } .bn-body { color: var(--ink-2); font-size: var(--t-foot); line-height: 1.3; } /* Director */ .dir-kicker { display: flex; align-items: center; gap: 6px; color: #ff9db0; font-size: 0.625rem; padding-top: 2px; } .dir-beats { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; } .dir-beat { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border-radius: 14px; text-align: left; color: var(--ink); background: rgba(255, 255, 255, 0.04); transition: background var(--dur-1) linear; } .dir-beat:hover { background: rgba(255, 255, 255, 0.08); } .dir-beat.done { box-shadow: inset 0 0 0 1px rgba(255, 157, 176, 0.5); } .dir-n { flex: none; width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-family: var(--mono); font-size: 0.75rem; font-weight: 700; color: #050607; background: var(--ink); } .dir-main { flex: 1; display: flex; flex-direction: column; gap: 2px; } .dir-main b { font-size: var(--t-sub); font-weight: 650; } .dir-main small { color: var(--ink-3); font-size: var(--t-cap); } .dir-beat > .i { color: var(--ink-3); } .dir-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; justify-content: space-between; margin-top: 16px; } .dir-foot .tele { color: var(--ink-4); font-size: 0.5rem; } /* Brief "as of" chip on an open situation */ .brief-asof { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; padding: 4px 8px; border-radius: 7px; color: var(--b-sky); background: rgba(163, 216, 255, 0.1); font-size: 0.5625rem; } .brief-asof[hidden] { display: none; }