:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;--sign-w: 960px;--sign-h: 540px;--c-surface: oklch(98.5% .004 250);--c-panel: oklch(100% 0 0 / .6);--c-panel-hover: oklch(96.5% .005 250);--c-divider: oklch(91% .006 250);--c-ink-primary: oklch(22% .02 255);--c-ink-secondary: oklch(46% .015 255);--c-ink-tertiary: oklch(63% .012 255);--c-ink-on-accent: oklch(99% 0 0);--c-accent: oklch(54% .18 268);--c-accent-hover: oklch(48% .18 268);--c-accent-soft: oklch(54% .18 268 / .12);--c-success: oklch(58% .16 150);--c-warning: oklch(72% .16 75);--c-danger: oklch(56% .2 25);--c-danger-soft: oklch(56% .2 25 / .1);--c-input-bg: oklch(100% 0 0);--c-input-border: oklch(86% .008 255);--c-input-border-hover: oklch(75% .01 255);--c-input-border-focus: var(--c-accent);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--t-h1-size: 18px;--t-h2-size: 12px;--t-body-size: 14px;--t-label-size: 12px;--t-meta-size: 11px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--motion-fast: .15s;--motion-curve: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{margin:0;padding:var(--s-6);background:var(--c-surface);color:var(--c-ink-primary);font-size:var(--t-body-size);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{max-width:960px;margin:0 auto}.login-shell{min-height:100vh;display:grid;place-items:center}.login-card{width:320px;padding:24px;border:1px solid color-mix(in oklab,currentColor 20%,transparent);border-radius:12px}.login-card h1{margin:0 0 16px;font-size:18px}.login-card label{display:block;margin:8px 0 4px;font-size:13px}.login-card input{width:100%;padding:8px 10px}.login-card button{margin-top:12px;width:100%;padding:10px;font-weight:600;cursor:pointer}.login-error{color:#c33;font-size:13px;margin-top:8px;min-height:1.2em}.sign-stage{position:relative;width:var(--sign-w);height:var(--sign-h);background:#111;overflow:hidden;border-radius:var(--radius-lg);margin:0 auto;box-shadow:0 6px 24px #0000002e}.sign-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease}.sign-layer.is-active{opacity:1}.sign-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#ddd;font-size:18px}.sign-stage.kenburns .sign-layer.is-active{animation:kenburns 24s linear infinite alternate}@keyframes kenburns{0%{transform:scale(1) translate(0)}to{transform:scale(1.06) translate(-1.5%,-1%)}}.logo-wm{position:absolute;left:16px;top:16px;width:72px;height:auto;z-index:40;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.cta-bar{position:absolute;left:0;right:0;bottom:0;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;background:var(--cta-bg, linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.65)));color:var(--cta-text, #fff);font-size:22px;font-weight:600;z-index:30}.cta-bar .pill{padding:8px 14px;background:var(--cta-pill-bg, #fff);color:var(--cta-pill-text, #111);border-radius:999px;font-size:16px;animation:cta-pulse 2.4s ease-in-out infinite}@keyframes cta-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.tornado-banner{position:absolute;left:0;right:0;top:0;padding:12px 20px;text-align:center;font-size:28px;font-weight:800;background:#b40000d9;color:#fff;z-index:20;animation:tornado-pulse .9s ease-in-out infinite alternate}@keyframes tornado-pulse{0%{background:#b40000a6}to{background:#dc0000f2}}.weather-overlay{position:absolute;inset:0;pointer-events:none;z-index:10}.weather-rain:before,.weather-rain:after{content:"";position:absolute;inset:0;pointer-events:none}.weather-rain:before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><g stroke='%23dceeff' stroke-linecap='round' fill='none'><line x1='15' y1='10' x2='15' y2='42' stroke-width='1' opacity='0.7'/><line x1='42' y1='80' x2='42' y2='115' stroke-width='1' opacity='0.65'/><line x1='68' y1='32' x2='68' y2='66' stroke-width='1.2' opacity='0.8'/><line x1='95' y1='142' x2='95' y2='176' stroke-width='1' opacity='0.6'/><line x1='123' y1='56' x2='123' y2='90' stroke-width='1' opacity='0.65'/><line x1='150' y1='115' x2='150' y2='150' stroke-width='1.2' opacity='0.75'/><line x1='176' y1='20' x2='176' y2='55' stroke-width='1' opacity='0.65'/><line x1='195' y1='95' x2='195' y2='130' stroke-width='1' opacity='0.6'/></g></svg>");background-size:200px 200px;background-repeat:repeat;animation:rain-fall-near .55s linear infinite}.weather-rain:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'><g stroke='%23eaf3ff' stroke-linecap='round' fill='none'><line x1='25' y1='40' x2='25' y2='62' stroke-width='1.5' opacity='0.5'/><line x1='55' y1='100' x2='55' y2='128' stroke-width='1.5' opacity='0.45'/><line x1='88' y1='18' x2='88' y2='42' stroke-width='1.5' opacity='0.5'/><line x1='118' y1='130' x2='118' y2='158' stroke-width='1.5' opacity='0.4'/><line x1='148' y1='72' x2='148' y2='100' stroke-width='1.5' opacity='0.45'/></g></svg>");background-size:180px 180px;background-repeat:repeat;animation:rain-fall-far 1.1s linear infinite}@keyframes rain-fall-near{0%{background-position:0 0}to{background-position:0 200px}}@keyframes rain-fall-far{0%{background-position:0 0}to{background-position:0 180px}}.weather-snow:before,.weather-snow:after{content:"";position:absolute;inset:0;pointer-events:none}.weather-snow:before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'><g stroke='white' stroke-linecap='round' fill='none' opacity='0.9'><g transform='translate(28 32)'><line x1='0' y1='-6' x2='0' y2='6' stroke-width='1.1'/><line x1='-5.2' y1='-3' x2='5.2' y2='3' stroke-width='1.1'/><line x1='-5.2' y1='3' x2='5.2' y2='-3' stroke-width='1.1'/></g><g transform='translate(95 50)'><line x1='0' y1='-7' x2='0' y2='7' stroke-width='1.2'/><line x1='-6' y1='-3.5' x2='6' y2='3.5' stroke-width='1.2'/><line x1='-6' y1='3.5' x2='6' y2='-3.5' stroke-width='1.2'/></g><g transform='translate(165 75)'><line x1='0' y1='-5' x2='0' y2='5' stroke-width='1'/><line x1='-4.3' y1='-2.5' x2='4.3' y2='2.5' stroke-width='1'/><line x1='-4.3' y1='2.5' x2='4.3' y2='-2.5' stroke-width='1'/></g><g transform='translate(50 130)'><line x1='0' y1='-6' x2='0' y2='6' stroke-width='1.1'/><line x1='-5.2' y1='-3' x2='5.2' y2='3' stroke-width='1.1'/><line x1='-5.2' y1='3' x2='5.2' y2='-3' stroke-width='1.1'/></g><g transform='translate(135 165)'><line x1='0' y1='-7' x2='0' y2='7' stroke-width='1.2'/><line x1='-6' y1='-3.5' x2='6' y2='3.5' stroke-width='1.2'/><line x1='-6' y1='3.5' x2='6' y2='-3.5' stroke-width='1.2'/></g><g transform='translate(195 195)'><line x1='0' y1='-5' x2='0' y2='5' stroke-width='1'/><line x1='-4.3' y1='-2.5' x2='4.3' y2='2.5' stroke-width='1'/><line x1='-4.3' y1='2.5' x2='4.3' y2='-2.5' stroke-width='1'/></g></g></svg>");background-size:220px 220px;background-repeat:repeat;animation:snow-fall-near 9s linear infinite}.weather-snow:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'><g stroke='white' stroke-linecap='round' fill='none' opacity='0.55'><g transform='translate(35 25)'><line x1='0' y1='-3.5' x2='0' y2='3.5' stroke-width='0.9'/><line x1='-3' y1='-1.7' x2='3' y2='1.7' stroke-width='0.9'/><line x1='-3' y1='1.7' x2='3' y2='-1.7' stroke-width='0.9'/></g><g transform='translate(105 60)'><line x1='0' y1='-4' x2='0' y2='4' stroke-width='0.9'/><line x1='-3.5' y1='-2' x2='3.5' y2='2' stroke-width='0.9'/><line x1='-3.5' y1='2' x2='3.5' y2='-2' stroke-width='0.9'/></g><g transform='translate(60 95)'><line x1='0' y1='-3.5' x2='0' y2='3.5' stroke-width='0.9'/><line x1='-3' y1='-1.7' x2='3' y2='1.7' stroke-width='0.9'/><line x1='-3' y1='1.7' x2='3' y2='-1.7' stroke-width='0.9'/></g><g transform='translate(135 130)'><line x1='0' y1='-4' x2='0' y2='4' stroke-width='0.9'/><line x1='-3.5' y1='-2' x2='3.5' y2='2' stroke-width='0.9'/><line x1='-3.5' y1='2' x2='3.5' y2='-2' stroke-width='0.9'/></g></g></svg>");background-size:160px 160px;background-repeat:repeat;animation:snow-fall-far 14s linear infinite}@keyframes snow-fall-near{0%{background-position:0 0}to{background-position:-40px 220px}}@keyframes snow-fall-far{0%{background-position:0 0}to{background-position:-15px 160px}}.news-caption{position:absolute;left:0;right:0;bottom:0;padding:14px 24px;background:var(--cta-bg, linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.75)));color:var(--cta-text, #fff);font-size:18px;line-height:1.3;z-index:30}.global-status{position:fixed;top:0;left:0;right:0;background:#2563eb;color:#fff;padding:8px 16px;font-size:13px;font-weight:500;text-align:center;z-index:1000;transform:translateY(-100%);transition:transform .3s ease;display:flex;gap:10px;justify-content:center;align-items:center}.global-status.is-visible{transform:translateY(0)}.global-status-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:gs-spin .7s linear infinite}@keyframes gs-spin{to{transform:rotate(360deg)}}.controls{margin-top:var(--s-6);padding:var(--s-5) var(--s-6);background:var(--c-input-bg);border:1px solid var(--c-divider);border-radius:var(--radius-lg)}.panel{padding:var(--s-5) 0;border-top:1px solid var(--c-divider)}.panel:first-child{border-top:0;padding-top:0}.panel h2{margin:0 0 var(--s-3);font-size:var(--t-h2-size);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-secondary)}.row{display:flex;gap:var(--s-3);align-items:flex-end;flex-wrap:wrap}.row label{display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--t-label-size)}.row label>span:first-child{font-size:var(--t-label-size);font-weight:500;color:var(--c-ink-secondary)}.row input[type=text],.row input[type=number]{height:32px;padding:0 var(--s-3);font-size:var(--t-body-size);font-family:inherit;color:var(--c-ink-primary);background:var(--c-input-bg);border:1px solid var(--c-input-border);border-radius:var(--radius-md);transition:border-color var(--motion-fast) var(--motion-curve);outline:none}.row input[type=text]{min-width:200px}.row input[type=number]{font-variant-numeric:tabular-nums}.row input[type=text]:hover,.row input[type=number]:hover{border-color:var(--c-input-border-hover)}.row input[type=text]:focus,.row input[type=number]:focus{border-color:var(--c-accent);outline:2px solid var(--c-accent);outline-offset:2px}select{height:32px;padding:0 var(--s-8) 0 var(--s-3);font-size:var(--t-body-size);font-family:inherit;color:var(--c-ink-primary);background-color:var(--c-input-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23737d8c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s-3) center;border:1px solid var(--c-input-border);border-radius:var(--radius-md);appearance:none;-webkit-appearance:none;transition:border-color var(--motion-fast) var(--motion-curve);outline:none;cursor:pointer}select:hover{border-color:var(--c-input-border-hover)}select:focus{border-color:var(--c-accent);outline:2px solid var(--c-accent);outline-offset:2px}.button{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 var(--s-4);font-size:13px;font-weight:500;font-family:inherit;color:var(--c-ink-primary);background:var(--c-input-bg);border:1px solid var(--c-input-border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--motion-curve),border-color var(--motion-fast) var(--motion-curve),color var(--motion-fast) var(--motion-curve);outline:none}.button:hover{background:var(--c-panel-hover)}.button:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.button[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.button.is-primary{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-ink-on-accent)}.button.is-primary:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.button.is-active{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-ink-on-accent)}.button.is-active:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.button.is-danger{background:var(--c-danger-soft);border-color:var(--c-danger);color:var(--c-danger)}.button.is-danger:hover,.button.is-active.is-danger{background:var(--c-danger);border-color:var(--c-danger);color:var(--c-ink-on-accent)}.button.is-active.is-danger:hover{background:#bb061e;border-color:#bb061e}.progress{margin:var(--s-3) 0 0;padding:0;font-size:var(--t-meta-size);color:var(--c-ink-secondary)}.progress li{list-style:none;padding:var(--s-1) 0}.progress .done:before{content:"\2713  ";color:var(--c-success)}.progress .pending:before{content:"\2026  ";color:var(--c-ink-tertiary)}.campaign-list{padding:0;margin:8px 0 0;list-style:none}.campaign-list li{display:grid;grid-template-columns:22px 1fr 90px 90px 32px 32px 64px;gap:var(--s-3);align-items:center;padding:var(--s-2) 0;border-bottom:1px solid var(--c-divider)}.campaign-list li:last-child{border-bottom:0}.campaign-list li:hover{background:var(--c-panel-hover)}.campaign-list input[type=number]{width:100%}.campaign-list .arrow{background:var(--c-input-bg);border:1px solid var(--c-input-border);padding:2px 0;border-radius:var(--radius-sm);cursor:pointer;color:var(--c-ink-secondary);font-size:11px}.campaign-list .arrow:hover{background:var(--c-panel-hover);color:var(--c-ink-primary)}.campaign-list__label{color:var(--c-ink-primary)}.campaign-list__placeholder{color:var(--c-ink-tertiary);text-align:center}.campaign-list__edit{font-size:var(--t-meta-size);padding:4px var(--s-3);height:28px}.campaign-panel__header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:pointer;text-align:left}.campaign-panel__header h2{margin:0 0 var(--s-3)}.campaign-panel.is-folded .campaign-panel__header h2{margin-bottom:0}.campaign-panel__chevron{width:12px;height:12px;border-right:2px solid var(--c-ink-secondary);border-bottom:2px solid var(--c-ink-secondary);transform:rotate(45deg);transition:transform var(--motion-fast) var(--motion-curve);margin-bottom:var(--s-3)}.campaign-panel.is-folded .campaign-panel__chevron{transform:rotate(-45deg);margin-bottom:0}.campaign-panel__body{overflow:hidden;transition:max-height var(--motion-fast) var(--motion-curve),opacity var(--motion-fast) var(--motion-curve)}.campaign-panel.is-folded .campaign-panel__body{max-height:0;opacity:0;pointer-events:none}.camera-row{display:flex;gap:var(--s-4);align-items:flex-start}.camera-preview{width:320px;height:180px;background:#0a0b0d;border-radius:var(--radius-md);border:1px solid var(--c-divider)}.camera-buttons{display:flex;flex-direction:column;gap:var(--s-2)}.status-line,#cam-status,#np-status{font-size:var(--t-meta-size);color:var(--c-ink-secondary);min-height:1.2em}.prospect-chip{display:inline-flex;align-items:center;padding:2px var(--s-2);border-radius:999px;font-size:var(--t-meta-size);font-weight:600;line-height:1.3}.prospect-chip--loaded{background:var(--c-accent-soft);color:var(--c-accent)}.prospect-chip--empty{background:transparent;color:var(--c-ink-tertiary)}.panel.is-collapsed{display:none}.panel-unit{font-weight:400;color:var(--c-ink-tertiary);margin-left:var(--s-1)}.band-chip{font-size:var(--t-meta-size);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px var(--s-2);border-radius:999px;background:var(--c-accent-soft);color:var(--c-accent)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--c-divider)}.grid-2__col{display:flex;flex-direction:column}.grid-2__col .panel:first-child{border-top:0;padding-top:0}.grid-2__col .panel:not(:first-child){border-top:1px solid var(--c-divider)}@media(max-width:720px){.grid-2{grid-template-columns:1fr}}.alert-chip{display:inline-flex;align-items:center;padding:2px var(--s-2);border-radius:999px;font-size:var(--t-meta-size);font-weight:600;line-height:1.3;background:var(--c-danger-soft);color:var(--c-danger)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0ms!important;animation-duration:0ms!important}}.modal-overlay{position:fixed;inset:0;background:#10171f8c;display:grid;place-items:center;z-index:1100;padding:var(--s-6);animation:modal-overlay-in var(--motion-fast) var(--motion-curve)}.modal{width:100%;max-width:640px;max-height:calc(100vh - 80px);background:var(--c-input-bg);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:0 12px 48px #10171f40;outline:none;animation:modal-in var(--motion-fast) var(--motion-curve)}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--c-divider)}.modal__header h2{margin:0;font-size:var(--t-h1-size);font-weight:600;color:var(--c-ink-primary)}.modal__close{background:none;border:none;font-size:24px;line-height:1;color:var(--c-ink-secondary);cursor:pointer;padding:0;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--radius-sm);transition:background var(--motion-fast) var(--motion-curve)}.modal__close:hover{background:var(--c-panel-hover);color:var(--c-ink-primary)}.modal__body{padding:var(--s-5) var(--s-6);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-4)}.modal__body .field{display:flex;flex-direction:column;gap:var(--s-1)}.modal__body .field>span{font-size:var(--t-label-size);font-weight:500;color:var(--c-ink-secondary)}.modal__body .field input[type=text],.modal__body .field textarea,.modal__body .field input[type=file]{font-family:inherit;font-size:var(--t-body-size);color:var(--c-ink-primary);background:var(--c-input-bg);border:1px solid var(--c-input-border);border-radius:var(--radius-md);padding:var(--s-2) var(--s-3);transition:border-color var(--motion-fast) var(--motion-curve)}.modal__body .field textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.45;resize:vertical;min-height:80px}.modal__body .field input[type=file]{padding:var(--s-2)}.modal__body .field input:hover,.modal__body .field textarea:hover{border-color:var(--c-input-border-hover)}.modal__body .field input:focus,.modal__body .field textarea:focus{outline:2px solid var(--c-accent);outline-offset:2px;border-color:var(--c-accent)}.modal__hint{margin:0;font-size:var(--t-meta-size);color:var(--c-ink-tertiary);line-height:1.4}.modal__error{color:var(--c-danger);font-size:var(--t-meta-size);min-height:1.2em}.modal__footer{display:flex;justify-content:flex-end;gap:var(--s-3);padding:var(--s-4) var(--s-6);border-top:1px solid var(--c-divider)}
