*{box-sizing:border-box}body{margin:0;background:#090a0c;color:#f2f3f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}.topbar{height:68px;border-bottom:1px solid #202328;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:rgba(12,13,16,.94);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{font-weight:850;letter-spacing:.12em}.brand span{font-weight:450;color:#777d87}.topbar nav{display:flex;gap:20px;font-size:13px;color:#aeb3bc}.container{max-width:1400px;margin:0 auto;padding:34px 24px}.hero{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.hero h1{font-size:32px;letter-spacing:-.03em;margin:0 0 7px}.muted{color:#858b95}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.card{background:linear-gradient(145deg,#14161a,#101114);border:1px solid #25282e;border-radius:16px;padding:21px;box-shadow:0 10px 35px rgba(0,0,0,.16)}.card h2,.card h3{margin-top:0}.project-card{min-height:150px;display:flex;flex-direction:column;justify-content:space-between;transition:.2s}.project-card:hover{transform:translateY(-2px);border-color:#3b4049}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #343941;border-radius:9px;background:#f0f1f2;color:#101114;padding:10px 15px;cursor:pointer;font-weight:750}.btn.secondary{background:#20242a;color:#eee}.btn.danger{background:#8e3030;color:#fff}.btn + .btn{margin-left:8px}.input,select,textarea{width:100%;padding:11px 12px;background:#0c0e11;border:1px solid #30343b;color:#eee;border-radius:9px}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:15px}.field label{display:block;font-size:12px;color:#9096a0;margin-bottom:6px}.field{margin-bottom:12px}.live{aspect-ratio:16/9;background:#000;border-radius:13px;overflow:hidden;border:1px solid #292d34;position:relative}.live video{width:100%;height:100%;display:block}.live-badge{position:absolute;left:13px;top:13px;background:#9d2525;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;z-index:2}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:20px}.toolbar .field{min-width:170px;margin:0}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:13px}.thumb{background:#111317;border:1px solid #282c32;border-radius:11px;overflow:hidden}.thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.thumb .meta{padding:9px;font-size:12px;color:#969ba4}.compare{display:grid;grid-template-columns:1fr 1fr;gap:15px}.compare img{width:100%;display:block;border-radius:10px}.compare-stage{position:relative;overflow:hidden;border-radius:12px;background:#000}.compare-stage>img{width:100%;display:block}.compare-after{position:absolute;left:0;top:0;height:100%;width:50%;overflow:hidden;border-right:2px solid white}.compare-after img{position:absolute;top:0;left:0;height:100%;width:auto;max-width:none}.compare-range{width:100%;margin-top:12px}.timeline{overflow-x:auto;padding-bottom:8px}.timeline-track{display:flex;gap:3px;min-width:max-content;align-items:end;height:145px}.timeline-item{width:46px;height:90px;border-radius:5px;overflow:hidden;opacity:.72;cursor:pointer;border:1px solid transparent}.timeline-item:hover,.timeline-item.active{opacity:1;border-color:#fff;height:110px}.timeline-item img{width:100%;height:100%;object-fit:cover}.timeline-label{font-size:11px;color:#777d86;margin-top:7px}.notice{padding:13px 15px;border-radius:9px;background:#171d28;border:1px solid #29344a;margin-bottom:16px}.login{max-width:440px;margin:70px auto}.empty{padding:40px;text-align:center;color:#777e88}.actions{display:flex;gap:8px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.stat{padding:17px;border:1px solid #25282e;border-radius:13px;background:#121418}.stat strong{display:block;font-size:25px;margin-top:5px}footer{text-align:center;color:#5f6570;padding:40px;font-size:12px}.progress{height:7px;background:#262a30;border-radius:99px;overflow:hidden}.progress>div{height:100%;width:0;background:#ddd;transition:width .3s}@media(max-width:800px){.compare,.stat-grid{grid-template-columns:1fr}.hero{display:block}.topbar{padding:0 15px}.container{padding:22px 14px}}
.section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.section-head h2{margin-bottom:5px}.section-head p{margin:0}.result-count{padding:8px 12px;border:1px solid #30343b;background:#0c0e11;border-radius:999px;color:#c8ccd2;font-size:12px;white-space:nowrap}.filter-panel{padding:14px;border:1px solid #252a31;border-radius:13px;background:#0d0f12;margin-bottom:18px}.filter-mode{display:flex;gap:6px;margin-bottom:14px}.filter-tab{border:1px solid #30343b;background:#171a1f;color:#9ba1ab;border-radius:8px;padding:8px 12px;cursor:pointer;font-weight:700}.filter-tab.active{background:#f0f1f2;color:#101114;border-color:#f0f1f2}.filter-fields{margin-bottom:0}.help{display:block;color:#737a85;margin-top:6px;line-height:1.4}.photo-gallery{margin-top:18px}.photo-card{appearance:none;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer;background:#101216;border:1px solid #272b32;border-radius:12px;overflow:hidden;transition:.18s}.photo-card:hover{transform:translateY(-2px);border-color:#4a505a}.photo-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#050506}.photo-card span{display:flex;align-items:center;justify-content:space-between;padding:10px 11px}.photo-card strong{font-size:13px}.photo-card small{color:#858b95}.card hr{border:0;border-top:1px solid #272b31;margin:22px 0}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:10px;border-bottom:1px solid #25282e;text-align:left}.badge{display:inline-flex;padding:5px 9px;border:1px solid #343941;border-radius:999px;font-size:11px;color:#c6cbd2}
@media(max-width:800px){.section-head{align-items:center}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-fields .field{width:100%}}
/* V3.1 - date/time pickers + Genially-style image wipe comparison */
input[type="date"],input[type="datetime-local"],input[type="time"]{color-scheme:dark;min-height:43px}
.compare-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px;color:#cbd0d7;font-size:13px}.compare-meta span{padding:7px 10px;background:#0c0e11;border:1px solid #2b3037;border-radius:8px}.compare-meta b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:5px;border-radius:50%;background:#eceff2;color:#111;font-size:11px}.wipe-compare{position:relative;width:100%;overflow:hidden;border-radius:13px;background:#050506;border:1px solid #2b3037;cursor:ew-resize;user-select:none;touch-action:none;line-height:0}.wipe-compare img{pointer-events:none;user-select:none}.wipe-base{display:block;width:100%;height:auto}.wipe-overlay{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}.wipe-overlay img{position:absolute;left:0;top:0;width:auto;max-width:none;height:100%;object-fit:cover}.wipe-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.22),0 0 14px rgba(0,0,0,.5);transform:translateX(-1px);pointer-events:none}.wipe-handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#f5f6f7;color:#111;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;line-height:1;box-shadow:0 4px 18px rgba(0,0,0,.4)}.wipe-label{position:absolute;top:12px;padding:7px 10px;border-radius:999px;background:rgba(8,9,11,.75);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:11px;font-weight:850;line-height:1;backdrop-filter:blur(7px);pointer-events:none}.wipe-label-a{left:12px}.wipe-label-b{right:12px}.compare-help{text-align:center;font-size:12px;margin:10px 0 0}.help{max-width:330px}
/* V3.2 — UX workspace + observable timelapse jobs */
:root{--surface:#121418;--surface2:#0d0f12;--line:#262a31;--text:#f4f5f6;--sub:#8f96a1;--ok:#50c878;--warn:#e3ad45;--err:#e46767}
.container{max-width:1480px}.eyebrow{font-size:10px;font-weight:850;letter-spacing:.16em;color:#737b87;margin-bottom:7px}.project-hero{margin-bottom:20px}.workspace-grid{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:16px;align-items:start}.workspace-grid .card{margin:0}.live-card{position:sticky;top:86px}.photos-card{min-width:0}.compare-card,.generate-card,.history-card{margin-top:16px}.section-head h2{font-size:19px;letter-spacing:-.02em;margin:0 0 5px}.status-dot-label{display:flex;align-items:center;gap:7px;font-size:11px;color:#8e959f;border:1px solid var(--line);padding:7px 10px;border-radius:999px}.status-dot-label i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(80,200,120,.08)}.filter-panel{background:#0a0c0f}.filter-tab{transition:.15s}.filter-tab:hover{border-color:#555d69}.photo-gallery{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));max-height:620px;overflow:auto;padding-right:4px}.photo-card img{aspect-ratio:16/10}.generate-card .formgrid{grid-template-columns:1fr 1fr 140px;align-items:end}.history-card{overflow:auto}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid #353a43;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#7d8490}.status-processing:before{background:var(--warn);box-shadow:0 0 0 4px rgba(227,173,69,.1)}.status-done:before{background:var(--ok)}.status-error:before{background:var(--err)}.status-queued:before{background:#8793a6}.job-card{max-width:980px;margin:0 auto}.job-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.job-head h2{margin:14px 0 5px;font-size:25px}.job-percent{font-size:34px;font-weight:850;letter-spacing:-.04em;color:#dfe2e6}.job-progress{margin:24px 0;height:9px}.job-progress>div{background:#e8eaed}.job-progress>div.indeterminate{width:35%!important;animation:jobslide 1.2s ease-in-out infinite}@keyframes jobslide{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}.diagnostic{margin-top:18px;padding:16px;border:1px solid #4c3b25;background:#17130d;border-radius:12px;color:#e8c98d}.diagnostic pre{white-space:pre-wrap;word-break:break-word;margin:10px 0 0;color:#b9bec6;font-size:12px;line-height:1.55;max-height:300px;overflow:auto}.result-video{display:block;width:100%;border-radius:13px;background:#000;margin-top:18px}.result-actions{margin-top:14px}.error-panel{margin-top:18px;padding:14px;border-radius:10px;border:1px solid #5b3030;background:#1b1010;color:#efb1b1}
@media(max-width:1050px){.workspace-grid{grid-template-columns:1fr}.live-card{position:static}.generate-card .formgrid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.generate-card .formgrid{grid-template-columns:1fr}.job-percent{font-size:26px}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-wrap:wrap}.topbar nav{gap:11px}.topbar{height:60px}}

/* 3.5 — visual hierarchy, accessible controls and responsive administration */
:root{--accent:#b9ed91;--sub:#a3aab5}body{background:#0d1014;color:#eef1f5;line-height:1.55}.muted,.help{color:#a0a8b5}.eyebrow{color:#a7b1bd}.container{max-width:1360px;padding-top:36px}.topbar{background:#101419;border-color:#2b333e}.topbar nav a{padding:8px 10px;border-radius:8px}.topbar nav a:hover,.topbar nav a[aria-current]{background:#232d35;color:var(--accent)}.brand span{color:#a7b1bd}.card{background:#161b22;border-color:#2b333e;box-shadow:none}.btn{background:var(--accent);border-color:var(--accent);min-height:44px;font:inherit;font-weight:650;color:#152014}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:#222b35;border-color:#3b4755}.btn:disabled{opacity:.6;cursor:wait}.btn+.btn{margin-left:0}.input,select,textarea{background:#10151c;border-color:#46505e;font:inherit;min-height:46px;color:#f0f3f6}.input::placeholder{color:#929aa7}.field label{color:#d1d7df;font-size:13px;font-weight:600}.help{max-width:none;font-size:12px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:12px;background:var(--accent);color:#101419;padding:12px;z-index:100}.skip-link:focus{top:12px}.dashboard-hero{padding:30px 0 16px}.dashboard-hero h1{font-size:clamp(32px,4.5vw,58px);line-height:1.12;letter-spacing:-.045em}.dashboard-hero p{max-width:600px}.accent{color:var(--accent)}.dashboard-summary{display:flex;flex-wrap:wrap;gap:24px;padding:20px 0;border-top:1px solid #303945;border-bottom:1px solid #303945;margin-bottom:34px;color:#a5b0bf;font-size:13px}.dashboard-summary strong{font-size:22px;color:var(--accent);margin-right:8px}.dashboard-summary div{display:flex;align-items:center}.project-search{max-width:320px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.project-card{padding:0;overflow:hidden}.project-art{height:148px;position:relative;background:linear-gradient(125deg,#283b3b,#17222a);padding:20px;overflow:hidden}.project-art>span{position:relative;z-index:1;color:#bed3cc;font-size:10px;letter-spacing:.2em}.project-art>strong{position:absolute;right:22px;bottom:-16px;font-size:90px;color:#648277;opacity:.35;font-weight:400;line-height:1.2}.art-lines{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 39px,#b9ed910d 40px),repeating-linear-gradient(0deg,transparent,transparent 39px,#b9ed910d 40px);transform:skew(-16deg)}.project-info{padding:24px;flex:1;display:flex;flex-direction:column}.project-info h3{font-size:22px;margin:4px 0 8px}.project-info p{font-size:14px;flex:1;overflow-wrap:anywhere}.project-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #303945;padding-top:18px;margin-top:14px;font-size:12px}.badge.is-active{color:#c7edac;background:#24342a;border-color:#3d5745}.admin-tabs{display:flex;gap:8px;border-bottom:1px solid #303945;margin-bottom:24px;padding-bottom:12px;overflow:auto}.admin-tabs a{padding:10px 20px;border-radius:9px;color:#adb7c4;white-space:nowrap}.admin-tabs a.selected{background:var(--accent);color:#152014;font-weight:650}.list-tools{display:flex;gap:10px;max-width:560px}.list-tools select{max-width:190px}.table-wrap{overflow:auto}.admin-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#b1bccb}.admin-table td{padding:18px 10px;vertical-align:middle}.admin-table .actions{align-items:center;min-width:150px}.text-link{color:var(--accent);font-size:13px}.editor{max-width:960px;margin:0 auto}.editor h2{font-size:20px;margin-bottom:24px}.editor .formgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.full-width{grid-column:1/-1}.setting-row{border-top:1px solid #303945;border-bottom:1px solid #303945;display:flex;justify-content:space-between;gap:24px;padding:22px 0;margin:12px 0 24px}.setting-row p{margin:4px 0 0;font-size:13px}.toggle-label{display:flex;gap:10px;align-items:center;white-space:nowrap}.toggle-label input{width:20px;height:20px;accent-color:var(--accent)}.form-actions{display:flex;justify-content:flex-end;gap:12px}.notice{background:#23372b;border-color:#43664d;color:#d8efce}.error-panel{margin-bottom:20px}.login{padding:36px;margin-top:70px}.login h1{font-size:36px}.login .btn{width:100%;margin-top:12px}.project-jumps{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.project-jumps a{padding:9px 15px;border:1px solid #36424d;border-radius:8px;color:#c3cdd8;font-size:13px}html{scroll-behavior:smooth;scroll-padding-top:95px}.status-dot-label i{background:#8e959f;box-shadow:none}.table td{overflow-wrap:anywhere}.hero .muted{margin:5px 0}.login .muted{margin-bottom:24px}
@media(max-width:760px){.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:14px 18px;gap:8px}.topbar nav{flex-wrap:wrap;gap:2px;font-size:12px}.topbar nav a{padding:6px 8px}.container{padding:24px 16px}.hero{display:flex;flex-wrap:wrap;align-items:start}.hero h1{font-size:30px}.dashboard-hero h1{font-size:38px}.dashboard-summary{gap:12px 24px}.section-head{flex-wrap:wrap}.list-tools{flex-wrap:wrap;width:100%}.list-tools input{width:100%}.list-tools select{max-width:none}.editor .formgrid{grid-template-columns:1fr}.setting-row{flex-direction:column;gap:12px}.form-actions .btn{flex:1}.admin-tabs a{padding:9px 14px}.project-search{max-width:none}.table th,.table td{font-size:13px}.login{padding:24px}.workspace-grid{display:block}.workspace-grid .card+.card{margin-top:16px}.live-card{position:static}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
/* 3.6 — authenticated full-size photo gallery */
.photo-viewer{border:0;padding:20px;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;background:transparent;color:#f0f3f6;overflow:auto;margin:0}.photo-viewer::backdrop{background:rgba(3,6,10,.94)}.viewer-panel{width:min(1280px,100%);height:100%;margin:auto;display:flex;flex-direction:column;background:#11171e;border:1px solid #35404c;border-radius:16px;overflow:hidden}.viewer-header,.viewer-footer{padding:16px 22px;display:flex;gap:16px;justify-content:space-between;align-items:center;flex-shrink:0}.viewer-header h2{margin:0;font-size:17px}.viewer-header p,.viewer-footer p{margin:4px 0 0;color:#aeb8c5;font-size:12px}.viewer-stage{position:relative;flex:1;min-height:100px;background:#05080b;display:flex;align-items:center;justify-content:center;overflow:hidden}.viewer-stage>img{width:100%;height:100%;object-fit:contain;min-height:0}.viewer-status{position:absolute;max-width:70%;text-align:center;color:#d9e1ea}.viewer-status:empty{display:none}.viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:56px;border:1px solid #7b8c9f;border-radius:12px;background:#141c27e6;color:white;cursor:pointer;font-size:38px;line-height:1}.viewer-prev{left:14px}.viewer-next{right:14px}.viewer-arrow:disabled{opacity:.25;cursor:default}.viewer-footer{color:inherit;text-align:left;background:#141c25}.viewer-footer strong{font-size:14px}.timeline-item{padding:0;background:transparent;display:block}
@media(max-width:650px){.photo-viewer{padding:8px}.viewer-panel{border-radius:12px}.viewer-header,.viewer-footer{padding:12px;gap:10px}.viewer-header h2{font-size:15px}.viewer-header p{font-size:11px}.viewer-footer{flex-wrap:wrap}.viewer-footer .btn{width:100%;font-size:14px}.viewer-arrow{width:40px;height:48px}.viewer-prev{left:8px}.viewer-next{right:8px}}

.camera-picker{margin-bottom:22px}.camera-picker .toolbar{margin-bottom:0}.camera-picker .field{min-width:min(320px,100%)}.camera-grid{margin-top:20px}.camera-grid .card{padding:24px}

/* V3.8 — operations, health, calendar, advanced exports and sharing */
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 28px}.metric-grid.compact{margin-top:6px}.metric-card{border:1px solid #30404a;background:#131a20;border-radius:14px;padding:18px}.metric-card span,.metric-card small{display:block;color:#9eabb9;font-size:12px}.metric-card strong{display:block;font-size:32px;line-height:1.1;margin:4px 0;color:#e9eef3}.metric-card.warning{border-color:#69542e}.metric-card.critical{border-color:#6b3838}.health{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;border:1px solid #3a4651;font-size:11px;font-weight:800;white-space:nowrap}.health:before{content:"";width:7px;height:7px;border-radius:50%;background:#88939f}.health-online{color:#c9efb5;background:#1c3024;border-color:#365f45}.health-online:before{background:#66d287}.health-attention{color:#f0d390;background:#30281a;border-color:#68532a}.health-attention:before{background:#e3ad45}.health-offline{color:#efaaaa;background:#321b1d;border-color:#6e353a}.health-offline:before{background:#e46767}.project-health{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.project-art.has-photo{background-size:cover;background-position:center}.health-camera-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}.camera-status-card{padding:0;overflow:hidden;display:block}.camera-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#0b0e11}.camera-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:#68727e;font-size:11px;letter-spacing:.14em}.camera-card-body{padding:20px}.camera-card-top{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.camera-card-top h2{margin:0}.camera-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:13px 0;margin:12px 0;border-top:1px solid #2a343e;border-bottom:1px solid #2a343e}.camera-metrics span{font-size:10px;color:#8996a4}.camera-metrics b{display:block;font-size:14px;color:#e7edf3}.camera-health-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #35414b;border-radius:13px;background:#131a20;margin-bottom:18px}.camera-health-banner>div:first-child{display:flex;align-items:center;gap:10px}.health-inline-metrics{display:flex;gap:18px;flex-wrap:wrap}.health-inline-metrics span{font-size:10px;color:#8e9aa8}.health-inline-metrics b{display:block;color:#e6ebf0;font-size:13px}.health-banner-offline{border-color:#60343a;background:#241517}.health-banner-attention{border-color:#5f4d2d;background:#211b12}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-head{font-size:10px;color:#8d98a5;text-align:center;padding:4px}.calendar-day{min-height:82px;border:1px solid #303b46;border-radius:10px;background:#111820;color:#eaf0f4;text-align:left;padding:10px;cursor:pointer}.calendar-day strong{display:block;font-size:17px}.calendar-day span{font-size:10px;color:#91a0ae}.calendar-day.has-captures:hover{border-color:var(--accent)}.calendar-day.gap-day{opacity:.55;background:#111316;cursor:default}.calendar-day.empty-day{border:0;background:transparent}.month-picker{max-width:180px}.compare-presets,.compare-toolbar,.segmented{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.compare-presets{margin-bottom:16px}.compare-toolbar{justify-content:space-between;margin:16px 0}.segmented{border:1px solid #34414c;border-radius:9px;padding:3px;background:#0f141a}.segmented button{border:0;background:transparent;color:#a7b2bf;padding:8px 12px;border-radius:6px;cursor:pointer}.segmented button.active{background:#26343d;color:#eaf4ec}.compare-stage{position:relative;overflow:hidden;min-height:280px;background:#050709}.compare-stage>img,.compare-stage .compare-a{display:block;width:100%;height:auto}.compare-a-wrap{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}.compare-a-wrap img{position:absolute;inset:0;width:100vw;max-width:none;height:100%;object-fit:cover}.compare-stage.mode-side{display:grid;grid-template-columns:1fr 1fr;overflow:visible;gap:6px;background:transparent}.compare-stage.mode-side>.compare-b{grid-column:2;width:100%;height:100%;object-fit:cover}.compare-stage.mode-side>.compare-a-wrap{position:relative;grid-column:1;grid-row:1;width:100%!important;overflow:hidden}.compare-stage.mode-side>.compare-a-wrap img{position:relative;width:100%;height:100%;object-fit:cover}.compare-stage.mode-side .wipe-line,.compare-stage.mode-side .fade-range{display:none}.compare-stage.mode-fade .compare-a-wrap{width:100%!important}.fade-range{position:absolute;left:10%;right:10%;bottom:18px;width:80%;z-index:4}.share-inline{margin:10px 0}.advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.check-card{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid #33404c;border-radius:10px;background:#111820;margin:12px 0 18px}.check-card input{width:18px;height:18px;accent-color:var(--accent)}.check-card small{display:block;color:#8f9aa8}.ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.ops-table small,.job-row small,.table td small{display:block;color:#8895a4;margin-top:4px}.alert-row,.job-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #2b3540}.alert-row:last-child,.job-row:last-child{border-bottom:0}.alert-row p{margin:3px 0;color:#a8b2bd;font-size:12px}.alert-row time{font-size:11px;color:#8793a0;white-space:nowrap}.severity-critical{border-left:3px solid #e46767;padding-left:12px}.severity-warning{border-left:3px solid #e3ad45;padding-left:12px}.inline-form{display:inline}.link-button{appearance:none;border:0;background:transparent;color:var(--accent);font:inherit;font-size:13px;padding:0;cursor:pointer}.link-button:hover{text-decoration:underline}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:28px}.permission-list label{display:flex;gap:10px;padding:12px;border:1px solid #35414d;border-radius:10px;background:#111820}.permission-list input{width:18px;height:18px;accent-color:var(--accent)}.permission-list small{display:block;color:#8c98a5}.code-block{display:block;white-space:pre-wrap;word-break:break-all;background:#0a0f14;border:1px solid #33404c;padding:14px;border-radius:10px;color:#dce6ef}.secret-code{display:inline-block;padding:8px 10px;background:#0b1117;border:1px solid #3b4855;border-radius:7px;letter-spacing:.12em;word-break:break-all}.setup-steps{line-height:1.8}.totp-input{font-size:24px;letter-spacing:.3em;text-align:center}.copy-row{display:flex;gap:8px}.share-result{max-width:900px;margin:auto}.public-photo{margin:0;border:1px solid #2c3742;border-radius:10px;overflow:hidden;background:#10161c}.public-photo img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover}.public-photo figcaption{padding:8px 10px;color:#9aa6b2;font-size:11px}.report-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:15px}.report-sheet{max-width:1000px;margin:auto;background:#fff;color:#141414;padding:50px;border-radius:4px}.report-sheet .eyebrow{color:#56616b}.report-sheet h1{font-size:38px;margin:6px 0}.report-sheet>header p{color:#5f6770}.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:30px 0}.report-metrics div{border:1px solid #ddd;padding:14px}.report-metrics span{display:block;color:#777;font-size:11px}.report-metrics strong{font-size:18px}.report-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-compare figure{margin:0}.report-compare img{width:100%;display:block}.report-compare figcaption{font-size:11px;color:#666;margin-top:5px}.report-sheet>footer{color:#777;text-align:left;padding:20px 0 0;border-top:1px solid #ddd;margin-top:30px}.status-cancelled:before{background:#7f8790}.status-cancelled{opacity:.8}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.advanced-grid{grid-template-columns:repeat(2,1fr)}.ops-columns{grid-template-columns:1fr}.camera-health-banner{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card strong{font-size:26px}.advanced-grid{grid-template-columns:1fr}.camera-metrics{grid-template-columns:1fr 1fr}.calendar-grid{gap:4px}.calendar-day{min-height:62px;padding:7px}.calendar-day span{font-size:8px}.permission-list{grid-template-columns:1fr}.copy-row{flex-direction:column}.report-sheet{padding:22px}.report-metrics{grid-template-columns:1fr 1fr}.report-compare{grid-template-columns:1fr}.no-print{flex-wrap:wrap}}
@media print{body{background:#fff}.topbar,body>footer,.no-print{display:none!important}.container{max-width:none;padding:0}.report-sheet{box-shadow:none;border:0;max-width:none;padding:0}.report-sheet img{break-inside:avoid}.report-sheet footer{display:block!important}}

/* V3.8.2 — 180° panoramic camera presentation */
.camera-thumb.is-panorama{aspect-ratio:32/9;object-fit:contain;background:#05080b}
.photos-card.is-panorama .photo-gallery,.photo-gallery.is-panorama{grid-template-columns:1fr}
.photos-card.is-panorama .photo-card img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#05080b}
.photos-card.is-panorama .timeline-track{height:92px;align-items:center}
.photos-card.is-panorama .timeline-item{width:180px;height:52px;opacity:.82;background:#05080b}
.photos-card.is-panorama .timeline-item:hover,.photos-card.is-panorama .timeline-item.active{height:62px;width:214px}
.photos-card.is-panorama .timeline-item img{width:100%;height:100%;object-fit:contain;background:#05080b}
.public-photo.is-panorama img,.photo-gallery.is-panorama .public-photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#05080b}
@media(max-width:650px){.photos-card.is-panorama .timeline-item{width:140px;height:42px}.photos-card.is-panorama .timeline-item:hover,.photos-card.is-panorama .timeline-item.active{width:165px;height:50px}}
/* v3.9 — permissões por cliente */
.client-feature-box{margin-top:28px;padding-top:28px;border-top:1px solid #303945}.feature-permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.feature-permission-card{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid #303945;border-radius:12px;background:#11171e;cursor:pointer}.feature-permission-card input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent)}.feature-permission-card span{display:grid;gap:4px}.feature-permission-card strong{color:#eef1f5}.feature-permission-card small{color:#a0a8b5;line-height:1.4}.admin-only-note{margin-top:16px}.client-project-summary{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 26px}.client-project-summary .badge{padding:8px 11px}.client-camera-card .camera-card-body{padding-bottom:22px}
