@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-400-normal-CjyVwvJV.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-500-normal-Bo-NxEKf.woff) format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2) format("woff2"),url(/assets/hanken-grotesk-latin-600-normal-NEn2C4Q3.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}:root{--color-bg: #11161b;--color-surface: #182028;--color-surface-hover: #1f2831;--color-surface-raised: #2a343e;--color-border: #26303a;--color-text: #ebe7e0;--color-text-muted: #a0a8b0;--color-text-dim: #7c858e;--color-accent: #507186;--color-accent-hover: #5b7e94;--color-accent-soft: rgba(80, 113, 134, .28);--color-accent-text: #a9c3d2;--color-on-accent: #ffffff;--color-success: #5cc98a;--color-warning: #f0b35a;--color-danger: #e8806f;--color-lit: #f7c948;--color-vipps: #ff5b24;--radius-lg: 22px;--radius: 18px;--radius-sm: 10px;--gap: 16px;--gap-sm: 8px;--gap-lg: 24px;--font: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", "Consolas", monospace;--text-xs: .7rem;--text-sm: .8rem;--text-md: .875rem;--text-lg: 1.1rem;--text-xl: 1.5rem;--transition: .15s ease;--ctl-h: 34px;--glass: rgba(17, 22, 27, .55);--footer-h: 0px}@media(max-width:900px){:root{--ctl-h: 44px;--footer-h: calc(76px + env(safe-area-inset-bottom)) }}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100svh;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;min-height:100svh}#view{flex:1;padding:var(--gap);max-width:1440px;margin:0 auto;width:100%}#view.view-wide{max-width:none;padding:8px 32px 32px}@media(max-width:1200px){#view.view-wide{padding:8px 16px 20px}}.section-title{font-size:var(--text-lg);font-weight:600;line-height:1.3;color:var(--color-text);margin:0 0 12px}img{display:block;max-width:100%}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select{font:inherit;color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px}input:focus,select:focus{outline:2px solid var(--color-accent);outline-offset:-1px}@media(max-width:900px){#view{padding:var(--gap-sm)}}@media(max-width:560px){#view.view-edge{padding-left:0;padding-right:0}}.shimmer{background-image:linear-gradient(135deg,#94a3b82e,#94a3b80d 55%,#0f111700);box-shadow:inset 0 0 0 1px #94a3b81f}.shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.06) 50%,transparent 65%);background-size:220% 100%;animation:shimmer-sweep 1.8s ease-in-out infinite}@keyframes shimmer-sweep{0%{background-position:180% 0}to{background-position:-100% 0}}.card{background:var(--color-surface);border:1px solid transparent;border-radius:var(--radius);padding:var(--gap)}.card-clickable:hover{border-color:var(--color-surface-raised)}.card-clickable{cursor:pointer;transition:border-color var(--transition)}.card-value{font-size:var(--text-xl);font-weight:700;font-family:var(--font-mono)}.card-label{font-size:var(--text-sm);color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:500;padding:1px 7px;border-radius:9999px;background:#00000073}.badge-online{color:var(--color-success)}.badge-offline{color:var(--color-danger)}.badge-warning{color:var(--color-warning)}.badge-unknown{color:var(--color-text-dim)}.badge-dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;background:currentColor}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:500;transition:background var(--transition)}.btn-ghost{background:transparent;border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-surface-hover)}.btn-active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-live,.btn-live-off{--pill-bg: var(--glass);background:var(--pill-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid transparent;border-radius:9999px;height:var(--ctl-h);padding:0 13px;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em}.btn-live{--pill-bg: rgba(17, 22, 27, .6);color:var(--color-text);border-color:#7896aacc}.btn-live .badge-dot{color:var(--color-success)}.btn-live:hover{background:#11161bcc}.btn-live-off{color:var(--color-text-muted)}.btn-live-off:hover{color:var(--color-text);background:#11161bbf}.tab-group{display:flex;flex-wrap:wrap;gap:4px;background:var(--color-surface);border-radius:9999px;padding:4px}.tab{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:9999px;font-size:var(--text-md);font-weight:500;color:var(--color-text-muted);transition:all var(--transition)}.tab:hover{color:var(--color-text);background:var(--color-surface-hover)}.tab-active,.tab-active:hover{background:var(--color-accent-soft);color:var(--color-accent-text)}@media(max-width:900px){.tab{padding:6px 12px}}.nav{display:flex;align-items:center;gap:14px;min-height:76px;padding:10px 32px}.nav-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:var(--text-lg);color:var(--color-text);white-space:nowrap}.nav-brand img{box-sizing:content-box;padding:7px;border-radius:12px;background:var(--color-surface)}@media(max-width:1200px){.nav{padding:10px 16px}}@media(max-width:900px){.nav{min-height:60px;padding:8px 16px}.nav-brand{font-size:var(--text-md)}.nav-brand img{padding:6px}}a.nav-brand:hover{text-decoration:none;color:var(--color-text)}.nav-slot{display:flex;align-items:center;min-width:0;margin-left:18px;overflow-x:auto;scrollbar-width:none}.nav-slot::-webkit-scrollbar{display:none}.nav-slot .cam-tabs{flex-wrap:nowrap;gap:4px;padding:0;border-radius:0;background:none}.nav-slot .cam-tab{height:44px;padding:0 14px;border-radius:0;border-bottom:2px solid transparent;color:var(--color-text-dim)}.nav-slot .cam-tab:hover{background:none;color:var(--color-text)}.nav-slot .cam-tab-active,.nav-slot .cam-tab-active:hover{background:none;color:var(--color-text);font-weight:500;border-bottom-color:var(--color-accent-hover)}.nav-slot .viewer-groups{display:none}.nav-slot .cam-tab-back{padding:0 12px}.nav-status{margin-left:auto;display:flex;align-items:center;gap:var(--gap-sm);min-width:0}.nav-offline{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);padding:6px 12px;border-radius:9999px;background:var(--color-surface)}.nav-meta{display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:14px;font-size:var(--text-sm);color:var(--color-text-muted)}.sponsor-ask{font-weight:500}@media(min-width:901px)and (max-width:1080px){.nav-meta .sponsor-ask{display:none}.nav{gap:10px}.nav-slot{margin-left:6px}}.vipps-wrap{position:relative;display:inline-flex}.vipps-qr-pop{position:absolute;top:calc(100% + 10px);right:0;z-index:50;width:max-content;max-width:calc(100vw - 20px);padding:10px;background:var(--color-surface);border-radius:var(--radius);box-shadow:0 16px 40px #00000073;opacity:0;visibility:hidden;transform:translateY(-4px) scale(.97);transition:opacity .15s ease,transform .15s ease,visibility .15s}.vipps-qr-pop.open{opacity:1;visibility:visible;transform:none}.vipps-qr-pop img{display:block;width:176px;aspect-ratio:1;height:auto;border-radius:var(--radius-sm)}.ico{display:inline-flex;align-items:center}.meta-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-md);font-weight:500;white-space:nowrap;transition:color var(--transition),background var(--transition)}.meta-btn:hover{color:var(--color-text);background:var(--color-surface-hover);text-decoration:none}.footer{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;padding:8px 12px;padding-bottom:max(18px,env(safe-area-inset-bottom));background:var(--color-bg);font-size:var(--text-sm);color:var(--color-text-muted)}.footer a:not(.meta-btn):not(.vipps-btn){color:var(--color-text)}.vipps-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;height:38px;background:var(--color-vipps);color:#fff!important;padding:0 18px;border-radius:999px;font-weight:600;font-size:var(--text-md);text-decoration:none;white-space:nowrap;transition:background var(--transition)}.vipps-btn:hover{background:#e64d1a;text-decoration:none}.vipps-cheer .vipps-btn{animation:vipps-pulse .9s ease-out 3}.vipps-cheer .vipps-btn:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.65) 50%,transparent 65%);background-size:250% 100%;animation:vipps-sheen .9s ease-in-out 3}@keyframes vipps-sheen{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes vipps-pulse{0%{box-shadow:0 0 #ff5b248c}to{box-shadow:0 0 0 10px #ff5b2400}}@media(prefers-reduced-motion:reduce){.vipps-cheer .vipps-btn,.vipps-cheer .vipps-btn:after{animation:none}}.footer-meta{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px}@media(max-width:900px){.footer{flex-wrap:nowrap;gap:clamp(6px,2vw,12px);height:var(--footer-h);padding:8px 10px calc(8px + env(safe-area-inset-bottom));font-size:clamp(.66rem,3vw,var(--text-md));background:none}#app.bar-pinned .footer{position:fixed;left:0;right:0;bottom:0;z-index:60;margin-top:0;pointer-events:none}.footer-bar{display:flex;align-items:center;flex:1;min-width:0;height:100%;gap:clamp(6px,2vw,10px);padding:0 8px 0 clamp(10px,4vw,16px);border-radius:9999px;background:#1d252df0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 24px #0000008c,0 0 0 1px #ffffff0d;pointer-events:auto}.footer-bar .sponsor-ask{flex:1 1 auto}.footer .sponsor-ask{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer .vipps-btn,.footer .footer-meta{flex:0 0 auto}.footer-meta{gap:10px}.footer .vipps-btn,.footer .meta-btn{height:44px;padding:0 clamp(10px,3.5vw,16px);font-size:inherit}.footer .meta-btn{background:var(--color-surface-raised);color:var(--color-text)}#app.bar-pinned{padding-bottom:var(--footer-h)}#app.bar-pinned #view{padding-bottom:4px}.nav-meta{display:none}}@media(min-width:901px){.footer{display:none}}@media(max-width:900px){.nav-slot,#app.viewing .nav-brand-name{display:none}#app.viewing .nav{gap:6px}#app.viewing .nav-slot{display:flex;flex:1;min-width:0;margin-left:4px}#app.viewing .nav-slot .nav-groups{display:none}#app.viewing .nav-slot .viewer-groups{display:block;flex:1;min-width:0}}.cam-group{margin-top:40px}.cam-group:first-child{margin-top:0}.cam-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.cam-band{display:contents}@media(min-width:901px){.cam-band{display:grid;grid-template-columns:1fr 1fr;gap:20px}.cam-band .cam-group{margin-top:0}.cam-band .cam-group:first-child .cam-grid{grid-template-columns:1fr}.cam-band .cam-group:last-child{display:flex;flex-direction:column;height:0;min-height:100%}.cam-band .cam-group:last-child .cam-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:1fr 1fr;flex:1;min-height:0}.cam-band .cam-group:last-child .cam-thumb{aspect-ratio:auto;min-height:0}}.cam-thumb{position:relative;aspect-ratio:var(--cam-w, 16) / var(--cam-h, 9);overflow:hidden;border-radius:var(--radius);background-color:var(--color-surface);cursor:pointer}@media(min-width:901px){.cam-band .cam-group:first-child .cam-thumb{border-radius:var(--radius-lg)}}.cam-thumb img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.cam-thumb:active img{transform:scale(.99)}.cam-thumb-label{position:absolute;z-index:2;bottom:10px;left:10px;max-width:calc(100% - 20px);box-sizing:border-box;display:flex;align-items:center;gap:6px;min-height:30px;padding:5px 12px;border-radius:15px;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:var(--text-md);font-weight:500;line-height:1.25}.cam-thumb-label:after{content:"›";flex:none;font-size:1.2em;line-height:1;color:var(--color-text);transition:transform .3s ease}@media(hover:hover){.cam-thumb:hover .cam-thumb-label:after{transform:translate(4px)}}.cam-thumb-status{position:absolute;z-index:2;top:10px;right:10px}@keyframes stamp-flash{0%{background-color:#5cc98a6b;box-shadow:0 0 #5cc98a66}to{background-color:var(--pill-bg);box-shadow:0 0 0 8px #5cc98a00}}.cam-stamp.stamp-flash,.btn-live.stamp-flash{animation:stamp-flash 1s ease-out}.cam-stamp{--pill-bg: var(--glass);font-family:var(--font-mono);font-weight:400;color:var(--color-text);background:var(--pill-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:4px 10px;gap:6px}.webcam-view{display:flex;flex-direction:column;gap:6px}.webcam-image-container{position:relative;--cam-w: 16;--cam-h: 9;aspect-ratio:var(--cam-w) / var(--cam-h);touch-action:pan-y pinch-zoom;width:min(100%,calc((100svh - var(--viewer-chrome, 350px)) * var(--cam-w) / var(--cam-h)));margin:0 auto;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden}.viewer-original{position:absolute;right:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:9999px;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:var(--text-sm);color:var(--color-text);transition:background var(--transition)}.viewer-original:hover{background:#11161bbf}.webcam-image-container img{width:100%;height:100%;object-fit:contain;display:block}.viewer-loading{position:absolute;inset:0;z-index:3;background-color:#11161b8c;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s}.viewer-loading.is-loading{opacity:1;visibility:visible}.viewer-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-dim);font-size:var(--text-md)}.timeline{background:var(--color-surface);border-radius:var(--radius-lg);padding:14px 18px}@media(min-width:901px){#view.view-viewer{padding-top:0;padding-bottom:14px}.view-viewer .viewer-top{margin-top:-3px}.view-viewer .webcam-view{gap:0}.view-viewer .timeline{margin-top:16px}}.timeline-track{position:relative;height:34px;background:var(--color-bg);border-radius:var(--radius-sm);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.timeline-thumb{position:absolute;top:4px;width:4px;margin-left:-1px;height:calc(100% - 8px);background:var(--color-text);border-radius:2px;pointer-events:none;box-shadow:0 0 0 2px #11161b80}.timeline-labels{display:flex;justify-content:space-between;margin-top:6px;padding:0 2px;font-size:var(--text-xs);color:var(--color-text-dim);font-family:var(--font-mono)}.timeline-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}.tl-group-range{margin-left:auto}.tl-group{display:flex;align-items:center;gap:var(--gap-sm)}.timeline-status{position:absolute;top:10px;right:10px;z-index:2;display:flex;align-items:center;gap:var(--gap-sm)}.timeline-clock{--pill-bg: var(--glass);display:inline-flex;align-items:center;height:var(--ctl-h);font-family:var(--font-mono);font-weight:500;font-size:var(--text-sm);background:var(--pill-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:9999px;padding:0 13px}.timeline-speed-value{display:inline-flex;align-items:center;justify-content:center;min-width:62px;font-size:var(--text-sm);font-family:var(--font-mono)}.speed-nav .btn{justify-content:center;min-width:34px;padding:0 10px;border-radius:9999px;color:var(--color-text-muted)}.speed-nav .btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.speed-nav .btn:disabled{color:var(--color-surface-raised);cursor:default}@keyframes speed-nudge{0%{box-shadow:0 0 #f0b35a8c}to{box-shadow:0 0 0 8px #f0b35a00}}.speed-nav.nudge{animation:speed-nudge .9s ease-out 2}.timeline-meta{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:10px 18px 0;font-size:var(--text-xs);color:var(--color-text-dim);white-space:nowrap}.timeline-meta-sep{opacity:.6}.timeline-nav .timeline-meta{margin:0 0 0 4px}.timeline-nav .timeline-meta-sep{display:none}.tl-group-range .timeline-count{font-size:var(--text-xs);color:var(--color-text-dim);white-space:nowrap;margin-right:2px}.status-row{display:none}@media(max-width:900px){.status-row{display:flex;justify-content:flex-end}.status-row .timeline-status{position:static}.timeline{padding:14px}.tl-group-range{margin-left:0}.timeline-nav{flex-direction:column;align-items:stretch}.tl-group{width:100%}.tl-group .date-nav{flex:1;min-width:0}.timeline .date-nav .btn{flex:0 0 auto;padding:0 22px}.timeline-date,.timeline-year{flex:1;justify-content:center;text-align:center}.transport{flex:1}.transport .btn{flex:1;justify-content:center}.tl-group-speed{justify-content:center}.tl-group-speed .speed-nav{flex:0 0 calc(50% - 4px);justify-content:space-between}.tl-group-speed .timeline-speed-value{flex:1}.webcam-image-container{width:min(100%,calc((100svh - 420px) * var(--cam-w) / var(--cam-h)))}}.date-nav,.transport,.speed-nav,.timeline .tab-group{display:inline-flex;align-items:stretch;height:var(--ctl-h);gap:2px;background:var(--color-bg);border-radius:9999px;padding:3px;box-sizing:content-box}.timeline .tab-active,.timeline .tab-active:hover{background:var(--color-surface-raised);color:var(--color-text)}.date-nav{position:relative}.timeline .tab{display:inline-flex;align-items:center;padding:0 12px}.date-nav .btn,.transport .btn{justify-content:center;min-width:36px;padding:0 10px;border-radius:9999px;color:var(--color-text-muted)}.date-nav .btn:hover,.transport .btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.transport .btn svg{display:block}.transport .btn-active{background:var(--color-accent);color:var(--color-on-accent)}.transport .btn:hover.btn-active{background:var(--color-accent-hover);color:var(--color-on-accent)}.transport .is-buffering{opacity:.5}.timeline-date{height:100%;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-md);padding:0 12px;border-radius:9999px;background:var(--color-surface)}.timeline-date-native{position:absolute;width:1px;height:1px;opacity:0;border:0;padding:0;pointer-events:none}.timeline-year{display:inline-flex;align-items:center;height:100%;font-family:var(--font-mono);font-size:var(--text-md);padding:0 6px}.viewer-top{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:14px}.viewer-title{font-size:var(--text-lg);font-weight:600;line-height:1.3;margin-bottom:10px}.viewer-groups{display:none}.cam-picker{display:flex;max-width:100%}.cam-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;border-radius:9999px;background:var(--color-surface)}.cam-tab{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 16px;border-radius:9999px;font-size:var(--text-md);font-weight:500;white-space:nowrap;color:var(--color-text-muted);transition:color var(--transition),background var(--transition)}.cam-tab:hover{color:var(--color-text);background:var(--color-surface-hover)}.cam-tab-back{padding:0 12px;font-size:1.2em}.cam-tab-active,.cam-tab-active:hover{background:var(--color-accent);color:var(--color-on-accent);font-weight:600}.tab-sub{font-size:var(--text-sm);font-weight:400;opacity:.72}@media(max-width:900px){.viewer-top{align-items:stretch;gap:10px;margin-bottom:4px}.status-row .timeline-clock,.status-row .btn-live,.status-row .btn-live-off{height:34px}#view.view-viewer{padding-top:4px}.viewer-groups{display:block}.viewer-groups .cam-tabs{flex-wrap:nowrap;gap:0;padding:0;border-radius:0;background:none;border-bottom:1px solid var(--color-border)}.viewer-groups .cam-tab-back{display:none}.viewer-groups .cam-tab{flex:1 1 0;min-width:0;justify-content:center;height:auto;min-height:44px;margin-bottom:-1px;padding:6px;border-radius:0;border-bottom:2px solid transparent;white-space:normal;text-align:center;line-height:1.15;color:var(--color-text-dim)}.viewer-groups .cam-tab:hover{background:none}.viewer-groups .cam-tab-active,.viewer-groups .cam-tab-active:hover{background:none;color:var(--color-text);border-bottom-color:var(--color-accent-hover)}.cam-tabs-cams{gap:6px;padding:0;border-radius:0;background:none}.cam-tabs-cams .cam-tab{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;height:auto;min-height:40px;padding:5px 13px;border-radius:12px;white-space:nowrap;line-height:1.2}.cam-tabs-cams .cam-tab-active,.cam-tabs-cams .cam-tab-active:hover{background:var(--color-accent-soft);color:var(--color-accent-text)}.cam-tabs-cams .tab-sub{font-size:var(--text-xs)}}.viewer-credit{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 160px);height:32px;padding:0 13px;border-radius:9999px;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-credit a{color:var(--color-text)}.viewer-credit-sep{opacity:.6}@media(max-width:900px){.viewer-caption{display:flex;align-items:center;gap:10px;margin:4px 18px 0}.viewer-caption .viewer-original{height:30px}.viewer-caption .viewer-original{position:static;flex:none;margin-left:auto;background:var(--color-surface)}.viewer-credit{position:static;display:flex;flex-wrap:wrap;max-width:none;height:auto;margin:0;padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;white-space:normal}}@media(max-width:360px){.timeline .date-nav .btn{padding:0 12px}}@media(max-width:560px){.viewer-caption{margin-left:12px;margin-right:12px}.viewer-original{width:30px;padding:0;justify-content:center}.viewer-original span{display:none}}.page-section{margin-top:var(--gap-lg)}.page-section>.page-section-lead{padding-left:12px;padding-right:12px}.page-section:first-child{margin-top:var(--gap-lg)}.status-split{margin-top:var(--gap-sm)}.about-columns{display:grid;gap:var(--gap)}.about-col{display:flex;flex-direction:column;gap:var(--gap)}.about-col>.page-section{margin-top:0}@media(min-width:1200px){.about-columns{grid-template-columns:1fr 1fr;align-items:start}}.page-section .viewer-title{margin-bottom:var(--gap-sm)}.subsection-title{font-size:var(--text-md);font-weight:700;margin-bottom:var(--gap-sm)}.status-subsection+.status-subsection{margin-top:var(--gap-lg)}.device-cards,.device-cards-part{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-items:start}@media(max-width:1500px){.device-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.device-cards{grid-template-columns:1fr}}.device-cards-part{display:contents}.device-card:has(.device-card-detail){grid-column:1 / -1}.device-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.device-card.is-linked{border-color:var(--color-accent);background:var(--color-surface-hover)}.device-card.is-selected{border-color:var(--color-accent);background:var(--color-surface-hover);box-shadow:0 0 0 1px var(--color-accent)}.device-card-kind{flex:none;color:var(--color-text-dim)}.device-card-state{display:inline-flex;align-items:center;flex:none;gap:6px;padding:1px 8px;border:1px solid currentColor;border-radius:9999px;font-size:var(--text-xs);font-weight:500}.device-card-state.badge-online{background:#5cc98a24}.device-card-state.badge-offline{background:#e8806f26}.device-card-state.badge-unknown{background:#64748b1f}.device-card-head{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);font-weight:600}.device-card-title{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.device-card-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card-group{flex:none;padding:1px 8px;border:1px solid var(--color-border);border-radius:9999px;font-size:var(--text-xs);font-weight:500;color:var(--color-text-dim)}.device-card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-sm);margin-top:4px}.device-card-when{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.device-card-readings,.device-card-meters{display:inline-flex;align-items:center;gap:10px}.device-card-detail{margin-top:8px;padding-top:6px;border-top:1px solid var(--color-border);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px var(--gap-lg);align-items:start}.device-card-detail:has(.device-detail-group){row-gap:var(--gap)}@media(max-width:700px){.device-card-detail{grid-template-columns:1fr}}.device-detail-group-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-dim);padding:3px 0}.device-card-detail>.status-log-details{grid-column:1 / -1;margin-top:var(--gap-sm)}.device-card-detail .device-detail-row{font-size:var(--text-xs);padding:3px 0}.device-card-detail .device-detail-row:first-child{border-top:none}.meter-battery{position:relative;display:inline-flex;align-items:center;color:var(--color-text-dim)}.meter-battery.warning{color:var(--color-warning)}.meter-battery.critical{color:var(--color-danger)}.meter-battery-body{position:relative;display:block;width:22px;height:11px;border:1.5px solid currentColor;border-radius:2px}.meter-battery-fill{position:absolute;left:1.5px;top:1.5px;bottom:1.5px;background:currentColor;border-radius:1px;transition:width .4s ease}.meter-battery-tip{width:2px;height:5px;margin-left:1.5px;background:currentColor;border-radius:0 1px 1px 0}.meter-signal{display:inline-flex;align-items:flex-end;gap:2px;height:12px;color:var(--color-success)}.meter-signal.weak{color:var(--color-warning)}.meter-battery.stale,.meter-signal.stale{color:var(--color-text-dim)}.meter-signal-bar{width:3px;border-radius:1px;background:var(--color-border)}.meter-signal-bar.lit{background:currentColor}.status-split{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap);align-items:start;margin-bottom:var(--gap-lg)}.status-split>.status-main{grid-column:span 3;min-width:0}.status-split>.device-map-box{grid-column:span 3}@media(max-width:1200px){.status-split{grid-template-columns:1fr}.status-split>.status-main,.status-split>.device-map-box{grid-column:auto}}.device-map-box{padding:0;overflow:hidden;align-self:stretch;min-height:360px}.device-map{position:relative;width:100%;height:100%;background:#0c1119;overflow:hidden}@media(min-width:1201px){.status-split>.device-map-box{margin-top:calc(var(--text-lg) * 1.5 + var(--gap-sm))}}.device-map-plot{position:absolute;top:0;left:0;width:100%}@media(max-width:1200px){.device-map-box{min-height:0}.device-map{height:auto}.device-map-plot{position:static}}.map-sheet{display:block;width:100%;height:auto}.map-water{fill:#22415e;stroke:#22415e;stroke-width:1}.map-river,.map-road,.map-tunnel{fill:none;stroke-linecap:round;stroke-linejoin:round}.map-river{stroke:#22415e;stroke-width:1.6}.map-road{stroke:#39435a;stroke-width:1.8}.map-tunnel{stroke:#39435a;stroke-width:1.8;stroke-dasharray:7 5;opacity:.6}.map-pin{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;transform:translate(-50%,-50%);cursor:pointer}.map-pin:focus-visible{outline:none}.map-pin-dot{width:10px;height:10px;flex:none;border-radius:50%;box-shadow:0 0 0 2px #0c1119;transition:transform var(--transition)}.map-pin.online .map-pin-dot{background:var(--color-success)}.map-pin.offline .map-pin-dot{background:var(--color-danger)}.map-pin.unknown .map-pin-dot{background:var(--color-text-dim)}.map-pin:hover .map-pin-dot,.map-pin.is-linked .map-pin-dot,.map-pin.is-selected .map-pin-dot{transform:scale(1.4)}.map-pin.is-selected .map-pin-dot{box-shadow:0 0 0 2px #0c1119,0 0 0 4px var(--color-accent)}.map-pin-shot{display:block;margin-bottom:5px;line-height:0}.map-pin-thumb{display:block;max-width:none;width:260px;height:auto;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.map-pin-thumb:not([src]){display:none}.map-pin-tip{position:absolute;left:14px;top:50%;display:flex;flex-direction:column;line-height:1.3;white-space:nowrap;padding:4px 8px;border-radius:var(--radius-sm);background:#080c12eb;border:1px solid var(--color-border);font-size:11px;color:var(--color-text);text-decoration:none;opacity:0;visibility:hidden;transform:scale(.88);transform-origin:left top;transition:opacity var(--transition),transform var(--transition),visibility 0s var(--transition);pointer-events:none}.map-pin.flip .map-pin-tip{left:auto;right:14px;transform-origin:right top}.map-pin.flip-up .map-pin-tip{top:auto;bottom:50%;transform-origin:left bottom}.map-pin.flip.flip-up .map-pin-tip{transform-origin:right bottom}.map-pin-name{display:flex;align-items:center;gap:6px}.map-pin-tag{flex:none;padding:0 5px;border:1px solid currentColor;border-radius:var(--radius-sm);background:color-mix(in srgb,currentColor 12%,transparent);font-size:10px;font-weight:600;color:var(--color-text-muted)}.map-pin-tag.lit{color:var(--color-lit)}.map-pin-open{flex:none;margin-left:auto;font-size:1.2em;font-weight:700;line-height:1;color:var(--color-text);transition:transform .3s ease}@media(hover:hover){a.map-pin-tip:hover .map-pin-open{transform:translate(4px)}}.map-pin:focus-visible .map-pin-tip,.map-pin.is-selected .map-pin-tip{opacity:1;visibility:visible;transform:none;transition:opacity var(--transition),transform var(--transition),visibility 0s}@media(prefers-reduced-motion:reduce){.map-pin-tip{transform:none}}.map-pin:focus-visible a.map-pin-tip,.map-pin.is-selected a.map-pin-tip{pointer-events:auto;cursor:pointer}a.map-pin-tip:hover{text-decoration:none}.map-pin:hover,.map-pin:focus-visible,.map-pin.is-selected,.map-pin.is-linked{z-index:1}.map-pin-group{color:var(--color-text-muted)}.map-scale{position:absolute;left:12px;bottom:12px;padding-left:calc(var(--bar) + 6px);font-size:var(--text-xs);color:var(--color-text-muted);border-left:1px solid var(--color-text-muted)}.map-scale:before{content:"";position:absolute;left:0;bottom:0;width:var(--bar);border-bottom:1px solid var(--color-text-muted)}.map-credit{position:absolute;right:10px;bottom:10px;font-size:var(--text-xs);color:var(--color-text-dim)}.lead-card{padding:var(--gap) 12px}.lead-card .page-section-lead:last-child{margin-bottom:0}.page-section-lead a{color:var(--color-text);text-decoration:underline}.licence{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px}.licence b{color:var(--color-text)}.licence-term:before{content:"·";color:var(--color-text-dim);margin-right:6px}.licence-note{padding-top:var(--gap-sm);border-top:1px solid var(--color-border)}.lead-mail{white-space:nowrap}.page-section-lead{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.55;margin-bottom:var(--gap)}.lamp-indicator{width:22px;height:22px;border-radius:50%;flex:none;background:var(--color-bg);border:2px solid var(--color-border);transition:background .4s ease,border-color .4s ease,box-shadow .4s ease}.lamp-indicator.lamp-on{background:radial-gradient(circle at 35% 30%,#fff3cf,#f7c948 55%,#d9971c);border-color:#f7c948;box-shadow:0 0 18px #f7c94880,0 0 60px #f7c94833}.status-lamp-row{display:flex;align-items:center;gap:8px}.status-lamp-state{font-size:var(--text-lg);font-weight:700;font-family:var(--font-mono)}.status-badge-row{display:flex;align-items:center;gap:8px}.status-log-details>summary{cursor:pointer;list-style:none}.status-log-details>summary::-webkit-details-marker{display:none}.status-log-details>summary:before{content:"▸ ";display:inline-block;transition:transform var(--transition)}.status-log-details[open]>summary:before{content:"▾ "}.device-card-label{flex:none;padding:1px 6px;border:1px solid currentColor;border-radius:var(--radius-sm);background:color-mix(in srgb,currentColor 12%,transparent);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--color-text-muted)}.ico.lamp-lit{color:var(--color-lit);filter:drop-shadow(0 0 5px rgba(247,201,72,.65))}.meter-temperature{display:inline-flex;align-items:center;flex:none;padding:1px 8px;border:1px solid var(--color-border);border-radius:9999px;font-size:var(--text-xs);font-weight:500;color:var(--color-text)}.meter-temperature.stale{color:var(--color-text-dim)}.status-log{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);max-height:360px;overflow-y:auto;padding:8px 10px;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.5}.status-log:empty:before{content:"Ingen loggliner enno";color:var(--color-text-muted)}.status-log-row{display:flex;gap:8px;align-items:baseline}.status-log-time{color:var(--color-text-dim);flex:none}.status-log-level{flex:none;width:2.9em;font-weight:600;color:var(--color-text-muted)}.status-log-level.l-info{color:var(--color-success)}.status-log-level.l-warn{color:var(--color-warning)}.status-log-level.l-fail,.status-log-level.l-crit{color:var(--color-danger)}.status-log-msg{overflow-wrap:anywhere}.device-detail-row{display:flex;justify-content:space-between;gap:var(--gap-sm);padding:4px 0;font-size:var(--text-sm);border-bottom:1px solid var(--color-border)}.device-detail-row:last-child{border-bottom:none}.device-detail-label{color:var(--color-text-muted)}.device-detail-value.is-well{color:var(--color-success)}.device-detail-value.is-unwell{color:var(--color-warning)}.device-detail-value{font-family:var(--font-mono);font-weight:500;text-align:right}@media(max-width:900px){.cam-grid{grid-template-columns:1fr 1fr;gap:10px}}@media(max-width:560px){.cam-grid{grid-template-columns:1fr;gap:8px}.cam-thumb{border-radius:0}.cam-thumb.shimmer,.webcam-image-container.shimmer{box-shadow:none}.cam-group .section-title,.viewer-top{padding-left:12px;padding-right:12px}.webcam-image-container{border-radius:0}.status-row,.timeline-meta{margin-left:12px;margin-right:12px}.status-row{margin-bottom:6px}.webcam-view{gap:0}.timeline{margin:6px 12px 0}}
