:root{--ink:#172c28;--muted:#748079;--paper:#f4f5ef;--line:#e0e5dc;--lime:#d6f078;--radius:18px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}a{color:inherit}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible{outline:3px solid #8cad37}input,select{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:12px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:2px solid #a5be66;border-color:transparent}label{display:block;font-size:12px;font-weight:600}label input,label select{margin-top:8px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h2{font-size:21px}h3{font-size:15px}.muted{color:var(--muted);line-height:1.7}.eyebrow{display:block;font-size:10px;letter-spacing:.17em;font-weight:700;color:var(--muted);margin-bottom:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;letter-spacing:.14em;font-size:16px;font-weight:800;white-space:nowrap}.brand small{font-size:12px;font-weight:400;letter-spacing:.05em;opacity:.55}.brand-mark{font-size:29px;line-height:1;color:var(--lime)}.brand-light{color:white}.site-header{height:80px;padding:0 4%;background:var(--ink);display:flex;align-items:center;gap:40px}.header-caption{font-size:12px;color:#a6b5ac}.account-menu{margin-left:auto;display:flex;align-items:center;gap:20px;color:white;font-size:12px}.logout-button{border:1px solid #50605a;background:transparent;color:white;border-radius:7px;padding:9px 14px}
.video-shell{max-width:1700px;padding:38px 4% 20px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:26px}.page-heading h1{font-size:clamp(28px,3vw,42px);margin-bottom:10px;font-weight:600}.heading-dot{color:#829e39}.page-heading .muted{margin-bottom:0}.stats{display:flex;gap:32px}.stats div{border-left:1px solid var(--line);padding-left:25px}.stats strong{display:block;font-size:28px;letter-spacing:-.05em;font-weight:600}.stats span{font-size:11px;color:var(--muted)}.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);gap:24px;align-items:start}.object-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-heading{padding:22px 20px 12px;display:flex;justify-content:space-between;align-items:center}.panel-heading h2{margin:0;font-size:17px}.count-chip{background:#f0f3eb;color:#798472;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:500}.search-box{display:flex;align-items:center;border:1px solid var(--line);margin:4px 16px 18px;border-radius:8px;padding:0 10px;color:var(--muted);gap:5px}.search-box input{border:0;padding:11px 4px;font-weight:400;font-size:11px;background:transparent;margin:0}.search-box span{font-size:23px}.object-list{max-height:70vh;overflow:auto}.building-group{border-top:1px solid var(--line);padding:18px 12px}.building-group h3{display:flex;gap:8px;padding:0 6px;margin-bottom:6px}.building-icon{color:#7a8d78}.building-address{font-size:10px;color:var(--muted);padding-left:29px;line-height:1.5}.recorder-group>summary{display:flex;justify-content:space-between;align-items:center;padding:10px 7px;cursor:pointer;font-size:12px;gap:8px}.recorder-group>summary:before{content:'⌄';color:#8d9b8f}.recorder-group>summary>span:first-of-type{flex:1}.recorder-group:not([open])>summary:before{content:'›'}.video-camera{width:100%;border:0;background:white;text-align:left;border-radius:8px;padding:10px 8px;display:flex;align-items:center;gap:10px;font-size:12px;color:#5a6b60;transition:background .15s}.video-camera:hover{background:#f4f6ef}.video-camera[aria-pressed=true]{background:#e9f0d7;color:var(--ink);font-weight:600}.channel-number{font-size:10px;color:#87997a;font-variant-numeric:tabular-nums}.channel-arrow{margin-left:auto;opacity:.5}.empty-small{font-size:11px;line-height:1.6;color:var(--muted);padding:8px}.panel-footer{border-top:1px solid var(--line);padding:15px 18px;display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9dbb5f;flex-shrink:0}
.player-card{background:white;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.player-heading{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.player-heading h2{font-size:15px;margin:0;line-height:1.5}.player-heading .eyebrow{font-size:9px;margin-bottom:6px}.player-badge{padding:7px 10px;border:1px solid var(--line);border-radius:5px;font-size:9px;letter-spacing:.12em;flex-shrink:0}.video-viewport{position:relative;background:#11231f;aspect-ratio:16/9;min-height:240px}.video-viewport video{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:contain;background:#11231f}.video-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;pointer-events:none;color:#d4e0d5;background:radial-gradient(ellipse at 50% 45%,#284239 0,transparent 65%),#11231f;padding:20px}.video-placeholder h3{font-size:20px;font-weight:500;margin:16px 0 10px}.video-placeholder p{font-size:12px;line-height:1.8;color:#95aa9c}.video-placeholder>span{font-size:9px;letter-spacing:.24em;color:#5f7d6d;margin-top:12px}.empty-lens{width:65px;height:65px;border:1px solid #4c6859;border-radius:50%;display:grid;place-items:center;font-size:40px;color:#91ad6b;box-shadow:0 0 0 14px #ffffff03,0 0 0 30px #ffffff02}.player-controls{padding:17px 22px;display:flex;justify-content:space-between;gap:20px;align-items:center}.player-controls p{font-size:11px;color:var(--muted);line-height:1.6;max-width:60%;margin:0}.control-buttons{display:flex;gap:8px;flex-shrink:0}.button{border:1px solid transparent;border-radius:8px;padding:11px 15px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:15px;text-decoration:none;transition:filter .15s}.button:hover:not(:disabled){filter:brightness(.94)}.button-primary{background:var(--lime);color:var(--ink)}.button-dark{background:var(--ink);color:white}.button-quiet{background:white;border-color:var(--line);color:var(--muted)}
.archive-card{margin-top:22px;background:#e9ede1;border:1px solid #dde3d1;border-radius:var(--radius);padding:25px}.archive-intro h2{font-size:23px;margin-bottom:7px}.archive-intro .muted{font-size:12px}.archive-intro .eyebrow{font-size:9px}.archive-fields{display:flex;align-items:end;gap:15px;margin-top:22px}.archive-fields label{flex:1;font-size:10px;min-width:0}.archive-fields input{font-size:12px;padding:11px 9px}.archive-fields .button{min-height:40px}.range-arrow{align-self:center;margin-top:20px;color:#829174}.archive-note{font-size:10px;line-height:1.7;color:#7a876c;margin:12px 0 0}.workspace-footer{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.1em;color:#929b8b;padding:25px 2px}.channel-settings{padding:8px 7px}.channel-settings>summary{cursor:pointer;font-size:10px;color:#7c8b63}.channel-form{display:grid;gap:12px;padding-top:15px}.channel-form input,.channel-form select{font-size:11px;padding:9px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.channel-form label{font-size:10px}.notice{background:#e3efcf;padding:16px 20px;border-radius:10px;line-height:1.6}.notice-error{background:#f8e6dd;color:#8a4c33}
.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-story{background:#172c28;position:relative;overflow:hidden;min-height:780px;padding:45px 7%;color:#edf4e8;display:flex;flex-direction:column}.story-copy{position:relative;z-index:1;margin-top:95px}.light{color:#9fb293;font-size:9px}.story-copy h1{font-size:clamp(45px,5.5vw,80px);font-weight:500;line-height:1.07;margin:23px 0;letter-spacing:-.065em}.story-copy p{font-size:14px;color:#9faf9e;max-width:310px;line-height:1.8}.lens-art{height:290px;position:relative;margin:15px 0 15px 25%;display:grid;place-items:center}.lens-ring{width:230px;height:230px;border:1px solid #7b93634d;border-radius:50%;box-shadow:0 0 0 22px #91a57007,0 0 0 45px #91a57006,0 0 0 70px #91a57004;display:grid;place-items:center;background:conic-gradient(from 20deg,#526c45,#1b3028,#758450,#253c2f,#526c45)}.lens-core{height:170px;width:170px;border:12px solid #11261e;border-radius:50%;background:radial-gradient(circle at 38% 33%,#d5ed7a88 0,transparent 20%),radial-gradient(circle at 65% 65%,#2d6178 0,transparent 40%),radial-gradient(circle,#071711 22%,#3e6247 50%,#142e25 70%);box-shadow:inset 0 0 20px #0009,0 0 0 1px #b5c28d4d}.lens-label{position:absolute;right:-12px;bottom:23px;font-size:8px;letter-spacing:.2em;color:#9fb293;transform:rotate(-90deg);transform-origin:bottom right}.story-bottom{display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#8b9d8c;margin-top:auto;padding-top:25px}.story-bottom .status-dot{margin-right:6px}.auth-form-panel{padding:50px 12% 25px;display:flex;flex-direction:column;justify-content:center}.auth-form-wrap{max-width:370px;width:100%;margin:auto}.auth-form-wrap h2{font-size:34px;font-weight:600;letter-spacing:-.05em;margin-bottom:15px}.auth-form-wrap>.muted{font-size:13px;margin-bottom:32px}.auth-form{display:grid;gap:13px}.auth-form label{font-size:12px}.auth-form input{padding:15px;font-size:13px}.auth-form label:not(:first-of-type){margin-top:7px}.auth-submit{margin-top:15px;justify-content:space-between;padding:17px 20px;font-size:13px}.auth-help{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);margin-top:38px;padding-top:24px}.help-icon{border:1px solid #b5c0ac;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:11px;color:#89977d}.auth-help p{font-size:11px;color:var(--muted);line-height:1.8;margin:0}.auth-help strong{font-weight:500;color:#435444}.auth-footer{display:flex;justify-content:space-between;gap:15px;font-size:8px;letter-spacing:.1em;color:#8f9a84;margin-top:50px}.auth-footer span{letter-spacing:0}.access-error{max-width:650px;margin:15vh auto;padding:30px}.access-error p{line-height:1.8;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1700px){.video-viewport{max-height:650px;aspect-ratio:auto;height:55vh}}
@media(max-width:1100px){.header-caption{display:none}.workspace{grid-template-columns:250px minmax(0,1fr)}.archive-fields{flex-wrap:wrap}.archive-fields label{flex-basis:40%}.player-controls{flex-direction:column;align-items:start}.player-controls p{max-width:100%}.stats{gap:18px}.stats div{padding-left:15px}.auth-story{padding:40px 8%;min-height:720px}.story-copy{margin-top:80px}.auth-form-panel{padding:40px 10% 25px}.story-bottom{flex-direction:column;gap:10px}}
@media(max-width:760px){.site-header{height:68px;padding:0 20px}.brand{font-size:12px;gap:7px}.brand small{font-size:9px}.account-menu{gap:12px;font-size:10px}.logout-button{padding:7px}.video-shell{padding:28px 18px 10px}.page-heading{display:block}.stats{margin-top:22px;gap:25px}.stats div:first-child{border:0;padding:0}.stats strong{font-size:22px}.workspace{grid-template-columns:1fr;gap:18px}.object-list{max-height:290px}.object-panel{border-radius:13px}.panel-heading{padding:16px}.building-group{padding:12px}.player-heading{padding:16px}.player-heading h2{font-size:12px}.player-badge{font-size:8px}.video-placeholder h3{font-size:17px}.video-placeholder p{font-size:11px}.empty-lens{height:45px;width:45px;font-size:28px}.archive-card{padding:20px}.archive-fields{gap:10px}.range-arrow{display:none}.archive-fields label{flex-basis:45%}.archive-fields input{font-size:11px}.archive-fields .button{width:100%;margin-top:4px}.workspace-footer{font-size:8px}.auth-layout{grid-template-columns:1fr}.auth-story{min-height:auto;padding:25px}.story-copy{margin-top:35px}.story-copy h1{font-size:40px;margin:15px 0}.story-copy p{font-size:12px;margin-bottom:0}.lens-art,.story-bottom{display:none}.auth-form-panel{padding:35px 25px 20px}.auth-form-wrap{max-width:430px}.auth-form-wrap h2{font-size:28px}.auth-footer{max-width:430px;width:100%;margin:40px auto 0}.auth-help{margin-top:26px}.access-error{margin:8vh auto}}
.workspace>*{min-width:0}.account-menu>span{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.workspace{grid-template-columns:minmax(0,1fr)}.site-header{gap:10px}.account-menu{gap:8px}.account-menu>span{max-width:75px}.player-heading{min-width:0}.player-heading>div{min-width:0}.player-heading h2{overflow-wrap:anywhere}.control-buttons{flex-wrap:wrap}.page-heading p{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.video-camera{font-size:14px;padding:14px 12px;min-height:50px;gap:13px}.channel-number{font-size:12px}.recorder-group>summary{font-size:14px;min-height:45px}.building-group h3{font-size:16px;line-height:1.5}
.archive-browser{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;margin:24px 0;border-bottom:1px solid #d5ddc9;padding-bottom:24px}.calendar-heading{display:flex;align-items:end;gap:10px}.calendar-heading label{flex:1;font-size:10px}.calendar-heading input{padding:8px;font-size:12px}.calendar-week,.recording-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-week{margin:16px 0 8px;text-align:center;font-size:9px;color:var(--muted)}.recording-calendar button{border:1px solid transparent;background:#f4f6ee;color:#829174;border-radius:7px;font-size:11px;padding:8px 0;min-height:32px}.recording-calendar button.has-recording{background:#d6ed9b;color:#26391b;font-weight:700}.recording-calendar button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.recording-calendar button:disabled{opacity:.4}.calendar-legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;margin:12px 0 0}.calendar-legend>span{height:8px;width:8px;background:#bcd978;border-radius:2px}.calendar-legend i{margin-left:auto;font-style:normal;font-size:8px}.recording-periods{padding-top:3px;min-width:0}.recording-periods h3{font-size:14px}.recording-intervals{max-height:265px;overflow:auto;display:flex;flex-direction:column;gap:7px}.recording-intervals button{border:1px solid #d4ddc4;background:#f6f8f1;text-align:left;color:var(--ink);padding:11px;border-radius:8px;font-size:12px}.archive-transport{margin-top:24px;background:#f6f8f1;border:1px solid #d4ddc4;border-radius:12px;padding:18px}.transport-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.transport-heading strong{font-size:16px;letter-spacing:-.02em}.transport-heading label{display:flex;align-items:center;gap:8px;font-size:10px}.transport-heading select{margin:0;padding:7px;width:85px}.timeline-label{margin-top:20px;font-size:10px;color:var(--muted)}.timeline-label input{padding:0;border:0;accent-color:#66843b;cursor:pointer}.timeline-bounds{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted)}.archive-jumps{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin-top:17px}.archive-jumps label{font-size:9px}.archive-jumps input,.archive-jumps select{font-size:11px;padding:9px}.archive-jumps .jump-time-label{margin-left:auto}.export-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #d5ddc9;margin-top:24px;padding-top:22px}.export-panel>div:first-child{flex:1;min-width:180px}.export-panel h3{margin:0 0 6px;font-size:15px}.export-progress-box{flex-basis:100%;background:#f6f8f1;border-radius:10px;padding:15px}.export-progress-box p{font-size:12px;line-height:1.6;margin:0 0 10px}.export-progress-box progress{width:100%;height:9px;accent-color:#7c9c4d}.export-actions{display:flex;gap:10px;margin-top:12px}.archive-fields{align-items:end}.archive-fields input{min-width:0;width:100%}
@media(max-width:1100px){.archive-browser{grid-template-columns:220px minmax(0,1fr);gap:16px}.archive-jumps .jump-time-label{margin-left:0}}
@media(max-width:760px){.archive-browser{grid-template-columns:minmax(0,1fr)}.calendar-panel{max-width:330px;width:100%}.recording-intervals{max-height:150px}.archive-jumps{display:grid;grid-template-columns:1fr 1fr 1fr}.archive-jumps .jump-time-label{grid-column:1/3;min-width:0}.archive-jumps .button{padding:10px 7px;gap:3px}.transport-heading strong{font-size:12px}.transport-heading label{flex-shrink:0}.archive-transport{padding:13px}.timeline-bounds{font-size:8px}.export-panel>.button{width:100%}.recording-calendar button{min-height:36px}.archive-fields label{flex-basis:100%}}
.video-camera>span:nth-child(2){min-width:0;overflow-wrap:anywhere;flex:1}.channel-number,.channel-arrow{flex-shrink:0}.player-card>.archive-transport{margin:0 18px 18px}
