:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9eeed;background:#111513;font-synthesis:none;--muted:#919d98;--teal:#9ae6c2;--line:#2c3631;--panel:#19201c}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:5px}a{color:inherit}.topbar{height:93px;max-width:1320px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;margin:auto;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:13px;letter-spacing:.14em;font-weight:700;line-height:1.4}.brand-sub{display:block;font-size:11px;letter-spacing:.04em;color:var(--muted);font-weight:400}.brand-symbol{height:38px;width:38px;border:1px solid #4c6558;border-radius:12px;display:grid;place-items:center;font-size:24px;color:var(--teal)}.local-badge{border:1px solid var(--line);padding:8px 12px;border-radius:30px;font-size:12px;color:#b8c3bd;display:flex;gap:8px;align-items:center}main{max-width:1320px;padding:55px 40px 24px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:650;color:var(--muted);margin:0 0 13px}h1{font-size:clamp(32px,4vw,48px);font-weight:520;letter-spacing:-.055em;margin:0 0 13px;line-height:1.08}h1 span{color:var(--teal)}.lead{font-size:15px;line-height:1.6;color:var(--muted);margin:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:12px 17px;border:1px solid transparent;border-radius:9px;min-height:44px;font-size:13px;font-weight:600;white-space:nowrap}.primary{background:var(--teal);color:#10241b}.primary:hover{background:#b1f1d2}.secondary{background:#222b26;color:#d8e1dc;border-color:#364139}.secondary:hover{background:#2c3830}button:disabled{cursor:wait;opacity:.55}.overview{margin-top:34px;display:flex;align-items:center;gap:13px;color:var(--muted);font-size:12px;padding-bottom:18px}.overview .separator{width:3px;height:3px;background:#657169;border-radius:50%}.text-button{margin-left:auto;border:none;background:none;color:#bbc8bf;font-size:12px;padding:6px}.text-button:hover{color:var(--teal)}.notice{border:1px solid #324039;border-radius:10px;display:flex;gap:14px;padding:16px 19px;background:#1b241f;color:#c3d0c8;font-size:12px}.notice strong{font-weight:600}.notice p{margin:5px 0 0;color:var(--muted);line-height:1.6}.page-message{font-size:12px;color:#eab29d;min-height:0;line-height:1.5;margin:15px 0}.page-message:empty{display:none}.camera-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:22px 0 35px}.camera-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.camera-heading{padding:18px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.camera-heading h2{font-size:14px;font-weight:570;margin:0 0 7px;letter-spacing:-.015em}.camera-address{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.state-label{font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:5px;color:#b1bbb5;padding-top:2px}.state-label.live{color:var(--teal)}.camera-preview{background:#101612;aspect-ratio:16/10;position:relative;display:grid;place-items:center;border-block:1px solid #253029;overflow:hidden}.empty-state{text-align:center;display:flex;flex-direction:column;align-items:center;max-width:310px;padding:22px}.empty-state strong{font-size:13px;font-weight:500;color:#c1ccc5}.empty-state p{color:#7f9185;font-size:11px;line-height:1.7;max-width:265px;margin:10px 0 0}.camera-bottom{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}.camera-message{font-size:11px;line-height:1.6;color:var(--muted);margin:0;max-width:65%}.card-actions{display:flex;gap:7px}.card-actions .button{padding:9px 12px;min-height:36px;font-size:11px}.video-container{position:absolute;inset:0;background:#090c0a}.video-container video-stream{display:block;height:100%;width:100%}.video-container video{width:100%;height:100%;object-fit:contain}.video-container:empty{display:none}.alexa-panel{display:grid;grid-template-columns:45px 1fr auto;gap:19px;align-items:start;border:1px solid var(--line);padding:25px;border-radius:13px;background:linear-gradient(110deg,#1a211d,#151a17)}.alexa-icon{height:42px;width:42px;border-radius:12px;border:1px solid #34505b;background:#172b31;color:#8cc9d3;display:grid;place-items:center}.alexa-panel .eyebrow{margin-bottom:8px}.alexa-panel h2{margin:0 0 9px;font-size:17px;font-weight:500;letter-spacing:-.03em}.alexa-panel p:not(.eyebrow){color:var(--muted);font-size:12px;line-height:1.7;margin:0;max-width:550px}.alexa-panel details{max-width:320px;padding-top:22px}.alexa-panel summary{font-size:12px;color:var(--teal);white-space:nowrap}.alexa-panel blockquote{font-size:15px;line-height:1.6;margin:18px 0 12px;color:#d6e7dc}footer{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;font-size:10px;line-height:1.7;color:#7c8a81}footer p{margin:0}footer>p:last-child{width:100%;color:#66766c;margin-top:-10px}dialog{width:min(480px,calc(100% - 30px));max-height:calc(100dvh - 40px);border:1px solid #3d4d42;border-radius:16px;padding:27px;color:#e7eee9;background:#19221c;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#050b08b8;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top .eyebrow{margin:0}.close-button{border:0;color:#9cafa1;background:none;display:grid;place-items:center;width:32px;height:32px;padding:7px;border-radius:7px}.close-button:hover{color:#e7eee9;background:#26372c}dialog h2{font-size:24px;font-weight:500;letter-spacing:-.03em;margin:19px 0 9px}.dialog-help{color:var(--muted);font-size:12px;line-height:1.7;margin-bottom:21px}label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#c4d2c8;margin-bottom:16px}label span{font-size:10px;line-height:1.5;color:var(--muted)}input,select{width:100%;border:1px solid #405246;background:#111913;color:#ecf3ee;padding:11px 12px;border-radius:7px;outline:none;font-size:13px;min-height:42px}input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 2px #9ae6c212}input::placeholder{color:#687e6e}.form-row{display:grid;grid-template-columns:1fr 110px;gap:15px}.form-message{color:#f1b29a;font-size:12px;line-height:1.6;margin:8px 0 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}[hidden]{display:none!important}.loading-card{padding:35px;color:var(--muted);font-size:14px}

/* Official Bootstrap Icons SVGs, inlined so the panel also works offline. */
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.icon{display:inline-block;width:1em;height:1em;fill:currentColor;flex-shrink:0;vertical-align:-.125em}
.brand-symbol .icon{width:22px;height:22px}
.local-badge .icon{width:14px;height:14px;color:#aab5af}
.button .icon{width:16px;height:16px}
.text-button{display:inline-flex;align-items:center;gap:6px}
.text-button .icon{width:13px;height:13px}
.notice-icon{width:18px;height:18px;margin-top:1px;color:var(--teal)}
.status-dot{width:6px;height:6px;color:var(--teal)}
.state-label .status-dot{width:5px;height:5px;color:#6d786f}
.state-label.live .status-dot{color:var(--teal)}
.placeholder-icon{width:48px;height:48px;margin-bottom:17px;color:#648271;opacity:.8}
.card-actions .icon-button{width:36px;padding:0}
.alexa-icon .icon{width:26px;height:26px}
.alexa-panel summary{display:inline-flex;align-items:center;gap:7px;list-style:none}
.alexa-panel summary::-webkit-details-marker{display:none}
.alexa-panel summary .icon{width:12px;height:12px;transition:transform .16s ease}
.alexa-panel details[open] summary .icon{transform:rotate(180deg)}
footer>span{display:inline-flex;align-items:center;gap:6px}

@media(max-width:760px){.topbar{height:78px;padding:0 22px}main{padding:35px 22px 22px}.intro{align-items:flex-start;flex-direction:column;gap:22px}.intro>.button{align-self:flex-start}.camera-grid{grid-template-columns:1fr;gap:18px}.alexa-panel{grid-template-columns:35px 1fr;padding:20px;gap:15px}.alexa-icon{width:35px;height:35px;border-radius:10px}.alexa-icon .icon{width:22px;height:22px}.alexa-panel details{grid-column:2;padding-top:0}.local-badge{font-size:10px;padding:7px 9px}.camera-heading,.camera-bottom{padding:15px 17px}.camera-message{max-width:60%}footer{justify-content:flex-start;gap:8px}footer p{width:100%}footer>p:last-child{margin:0}.notice{padding:14px}.brand{font-size:11px}.lead{font-size:13px}.overview{margin-top:26px}}
.view-actions{margin-left:auto;display:flex;align-items:center;gap:16px}.view-actions .text-button{margin-left:0}.tv-note{display:none}.tv-mode .intro,.tv-mode .notice,.tv-mode .alexa-panel,.tv-mode footer,.tv-mode .camera-address{display:none}.tv-mode .topbar{height:64px}.tv-mode main{max-width:none;padding:0 28px 20px}.tv-mode .overview{margin:0;padding:16px 0;font-size:14px}.tv-mode .camera-grid{margin:0;gap:20px}.tv-mode .camera-card:not(.camera-connected){display:none}.tv-mode .single-connected{grid-template-columns:1fr}.tv-mode .single-connected .camera-preview{aspect-ratio:auto;height:calc(100dvh - 242px);min-height:240px}.tv-mode .camera-heading{padding:14px 20px}.tv-mode .camera-heading h2{font-size:18px;margin:0}.tv-mode .state-label{font-size:13px}.tv-mode .camera-bottom{padding:12px 20px}.tv-mode .text-button{font-size:14px;padding:10px}.tv-mode .camera-message{font-size:12px}.tv-mode .tv-note:not(:empty){display:block;margin:40px auto;max-width:520px;font-size:18px;line-height:1.7;color:var(--muted)}
@media(max-width:540px){.overview{flex-wrap:wrap}.view-actions{gap:10px}.tv-mode main{padding-inline:14px}.tv-mode .overview{font-size:11px}.tv-mode .text-button{font-size:11px;padding:8px}.tv-mode .camera-message{max-width:50%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
