@font-face{font-family:Archivo;src:url('/portal-assets/archivo.woff2') format('woff2');font-weight:900;font-display:swap}
@font-face{font-family:Instrument;src:url('/portal-assets/instrumentsans.woff2') format('woff2');font-display:swap}
@font-face{font-family:Martian;src:url('/portal-assets/martianmono.woff2') format('woff2');font-display:swap}
:root{--bg:#0b0c0e;--surface:#14171b;--surface-raised:#1b1f25;--line:#2e343d;--ink:#eee8df;--muted:#a9b1bc;--amber:#ffb000;--green:#63d8a2;--red:#ff9189;--radius:8px;color-scheme:dark;font-family:Instrument,system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--amber);outline-offset:3px}[hidden]{display:none!important}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font:900 30px/1.2 Archivo,system-ui,sans-serif;letter-spacing:-.7px}h2{font-size:18px;line-height:1.35;font-weight:650;margin-bottom:14px}h3{font-size:15px;font-weight:650}p{max-width:80ch}svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg{pointer-events:none}.mono{font-family:Martian,monospace;font-size:11px}.muted{color:var(--muted)}.small{font-size:12px}.brand{text-decoration:none;white-space:nowrap;font:900 20px/1.2 Archivo,system-ui,sans-serif;letter-spacing:-.5px}.brand span{color:var(--amber);margin-left:5px}.primary,.secondary,.danger,.button-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 15px;border-radius:5px;font-weight:600;font-size:13px;line-height:1.3;text-decoration:none}.primary{background:var(--amber);color:#221704;border:1px solid var(--amber)}.primary:hover:enabled{background:#ffc54b}.secondary{background:var(--surface);color:var(--ink);border:1px solid #414955}.secondary:hover:enabled{border-color:#8b949f;background:#20252c}.danger{color:#ffc3bf;background:#351f20;border:1px solid #76504f}.danger:hover:enabled{background:#49282a}.text-button{border:0;background:transparent;color:var(--muted);font-size:12px;min-height:40px;padding:8px}.text-button:hover{color:var(--ink)}.text-link{font-size:13px;text-underline-offset:4px;color:var(--ink)}.button-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.grow{flex:1}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;min-width:0}.field label,.field-label{font-size:13px;font-weight:550}.field small{font-size:12px;color:var(--muted)}input,select,textarea{width:100%;background:#0e1116;border:1px solid #414955;border-radius:5px;color:var(--ink);padding:11px 12px;min-height:44px;max-width:100%}input::placeholder,textarea::placeholder{color:#8c96a3}select{padding-right:28px}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--amber)}input[type=file]{font-size:13px;padding:10px}textarea{resize:vertical;min-height:94px}input:disabled,select:disabled{color:var(--muted)}.form-error{color:#ffc3bf;background:#361f22;border:1px solid #70474c;border-radius:5px;padding:11px 12px;font-size:13px;white-space:pre-line}.form-message{color:#cae8d9;background:#142c22;border:1px solid #36614b;border-radius:5px;padding:11px 12px;font-size:13px}.form-help{color:var(--muted);font-size:12px;line-height:1.6}.skip-link{position:fixed;top:-80px;left:16px;background:var(--amber);color:#161616;padding:10px 16px;z-index:100}.skip-link:focus{top:8px}.noscript{position:fixed;bottom:0;left:0;right:0;background:#3b2a12;color:#fff;padding:15px;text-align:center;z-index:100}.topbar{height:76px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.session-tools{display:flex;align-items:center;gap:20px;min-width:0}.company-control{display:flex;align-items:center;gap:9px}.company-control label{font-size:11px;color:var(--muted)}.company-control select{width:auto;max-width:240px;font-size:12px;min-height:37px;padding:7px 28px 7px 10px}.profile{display:flex;align-items:center;gap:9px}.avatar{display:grid;place-items:center;width:34px;height:34px;background:#2c2518;border:1px solid #68512b;border-radius:50%;color:#f7c567;font-size:12px;font-weight:700;flex-shrink:0}.profile-name{font-size:13px;max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-role{font-size:10px;color:var(--muted)}.app-shell{display:grid;grid-template-columns:196px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{border-right:1px solid var(--line);padding:24px 13px 20px;display:flex;flex-direction:column}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-link{display:flex;align-items:center;gap:11px;text-decoration:none;border-radius:6px;padding:11px 12px;font-size:13px;color:var(--muted);min-height:44px}.nav-link:hover{background:#171c22;color:var(--ink)}.nav-link[aria-current=page]{color:#ffd080;background:#2a2114;box-shadow:inset 2px 0 var(--amber)}.nav-divider{height:1px;background:var(--line);margin:18px 9px 11px}.nav-group{font-size:10px;color:#969eaa;padding:0 12px 6px}.sidebar-foot{margin-top:auto;padding:35px 10px 0;display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.connection-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#7d8985;flex-shrink:0}main#content{padding:27px 30px 48px;min-width:0;max-width:1600px;width:100%;margin:0 auto;outline:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 24px}.page-header h1{margin-bottom:8px}.page-header p{font-size:13px;color:var(--muted);margin-bottom:0}.page-header .button-row{padding-top:2px}.context-banner{display:flex;align-items:center;gap:9px;font-size:12px;color:#e6c382;padding:10px 13px;border:1px solid #59482d;background:#231e15;border-radius:5px;margin-bottom:22px}.context-banner p{margin:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h2{margin:0}.section-head p{margin:0;color:var(--muted);font-size:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}.panel+.panel{margin-top:22px}.panel-header{padding-bottom:15px;margin-bottom:18px;border-bottom:1px solid var(--line)}.empty-state{border:1px dashed #3b424d;border-radius:var(--radius);padding:42px 26px;text-align:center;background:#101318;min-height:185px;display:flex;align-items:center;justify-content:center;flex-direction:column}.empty-state h1,.empty-state h2{margin:8px 0 10px}.empty-state h1{font-size:23px}.empty-state p{font-size:13px;color:var(--muted);margin:0 0 17px;max-width:55ch}.empty-state p:last-child{margin-bottom:0}.empty-state.error{border-color:#745151}.spinner{display:block;width:20px;height:20px;border-radius:50%;border:2px solid #3b4148;border-top-color:var(--amber);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:25px}.metric{padding:20px 20px 22px;border-right:1px solid var(--line)}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric strong{display:block;font:900 35px/1.2 Archivo,sans-serif;letter-spacing:-1px;margin:5px 0 8px}.metric span{font-size:12px;color:var(--muted)}.metric small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.metric.alert strong{color:#ffbd63}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:26px}.dashboard-grid .panel+.panel{margin:0}.bars{display:flex;align-items:end;gap:14px;height:145px;overflow-x:auto;padding:0 4px}.bar-item{display:flex;flex:1;min-width:43px;align-items:center;flex-direction:column;justify-content:end;gap:7px;height:100%}.bar{width:100%;max-width:52px;background:#a47a38;border-radius:3px 3px 0 0;min-height:1px}.bar-item strong{font-family:Martian,monospace;font-size:10px;font-weight:400}.bar-item small{font-size:11px;color:var(--muted);white-space:nowrap}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{color:var(--muted);font-size:11px;font-weight:500;background:#171b21;padding:12px 15px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:14px 15px;border-bottom:1px solid #272d35;vertical-align:middle}tbody tr:last-child td{border:0}td small{display:block;color:var(--muted);font-size:11px;margin-top:4px;overflow-wrap:anywhere}td strong{font-size:12px;font-weight:550}td .secondary,td .text-button{font-size:11px;min-height:34px;padding:7px 10px}.cell-name{min-width:190px;max-width:290px;overflow-wrap:anywhere}.table-actions{display:flex;flex-wrap:wrap;gap:5px;min-width:140px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;line-height:1.4;padding:4px 7px;border:1px solid #4b5057;border-radius:4px;color:#d4d9df;white-space:nowrap}.chip.amber{color:#f3c36b;background:#2a2317;border-color:#65502b}.chip.green{color:#a4e9c6;background:#193025;border-color:#3f624f}.chip.red{color:#ffb8b2;background:#311f20;border-color:#71504e}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filters .field{margin:0;min-width:135px;flex:1}.filters .field.search{flex:2.2;min-width:230px}.filters input,.filters select{font-size:13px;min-height:41px;padding:9px 11px}.filter-label{font-size:11px;color:var(--muted)}.report-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 20px}.report-meta dt{font-size:11px;color:var(--muted);margin-bottom:5px}.report-meta dd{margin:0;font-size:13px;overflow-wrap:anywhere}.report-disclaimer{font-size:12px;color:var(--muted);line-height:1.7;margin-top:18px}.evidence-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:20px}.evidence-media video,.evidence-media img{width:100%;display:block;background:#080b0e;border-radius:5px;max-height:60vh;object-fit:contain}.evidence-media figure{margin:0 0 15px}.evidence-media figcaption{font-size:11px;color:var(--muted);margin-top:7px}.evidence-controls{background:#171b21;border:1px solid #4c432e;padding:17px;border-radius:7px}.evidence-controls h3{margin-bottom:5px}.prediction-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;border-top:1px solid var(--line);padding:13px 0;margin-top:13px}.prediction-row>span:first-child{color:var(--muted)}fieldset{border:0;margin:0;padding:0}legend{font-size:13px;font-weight:600;padding:0 0 10px}.verdict-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.verdict{background:#0f141a;border:1px solid #47515d;border-radius:5px;text-align:left;min-height:69px;padding:10px}.verdict strong{display:block;font-size:12px}.verdict small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.verdict[data-value=cumple] strong{color:var(--green)}.verdict[data-value=no_cumple] strong{color:var(--red)}.verdict[data-value=no_distingue] strong{color:#efc776}.verdict[aria-checked=true]{border-color:var(--amber);background:#2b2519;box-shadow:inset 0 0 0 1px var(--amber)}.not-person{font-size:11px;text-decoration:underline;text-underline-offset:3px;color:var(--muted);border:0;background:none;min-height:40px;margin:3px 0 8px;text-align:left;padding:5px 0}.not-person[aria-checked=true]{color:var(--amber)}.full-width{width:100%}.evidence-controls textarea{min-height:70px;font-size:13px}.evidence-controls .field{margin:12px 0}.evidence-note{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0 0}.history-list{margin:15px 0;padding:0;list-style:none}.history-list li{border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}.history-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.history-list p{margin:7px 0 0;color:#c6ccd4;font-size:12px}.live-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.live-layout.readonly{grid-template-columns:minmax(0,1fr)}.feed-panel{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#101318}.feed-head,.feed-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;font-size:12px}.feed-head span,.feed-foot span{color:var(--muted);font-size:11px}.live-stage{position:relative;background:#06080b;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden}.live-stage video,.live-stage>img{width:100%;height:100%;object-fit:contain;display:block}.stage-label{position:absolute;top:12px;left:12px;background:#131a20dc;border:1px solid #53616b;border-radius:4px;padding:5px 8px;font-size:10px}.worker-list{margin-top:20px}.worker-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin-top:8px;background:var(--surface)}.worker-row strong{font-size:13px;display:block}.worker-row small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.worker-symbol{display:grid;place-items:center;width:34px;height:38px;border-radius:5px;background:#2b2519;color:var(--amber)}.review-panel{border-color:#685127;scroll-margin-top:18px}.capture-preview{border:1px solid var(--line);border-radius:5px;padding:0;background:#0b0f13;width:100%;overflow:hidden}.capture-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.capture-preview span{display:block;font-size:10px;padding:6px;color:var(--muted)}.capture-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin:9px 0 14px}.upload-area{padding:23px;border:1px dashed #60605b;border-radius:8px;background:#191b19;margin:18px 0}.upload-area h3{font-size:16px;margin:0 0 7px}.upload-area p{font-size:12px;color:var(--muted);margin:0 0 16px}.job-status{margin-top:20px}.status-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.status-row small{display:block;color:var(--muted)}.admin-note{font-size:12px;color:var(--muted);margin:14px 0 0}.check-field{display:flex;align-items:center;gap:10px;font-size:13px;margin:8px 0 18px}.check-field input{flex-shrink:0}.access-link-box{background:#1a211d;border:1px solid #455f4b;padding:15px;border-radius:6px;margin-top:16px}.access-link-box p{font-size:12px;color:var(--muted);margin:0 0 12px}.access-link-box input{font-size:12px;margin-bottom:10px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:13px 19px;background:#e9e2d5;color:#181d20;border-radius:7px;box-shadow:0 9px 35px #0008;z-index:20;font-size:13px;white-space:pre-line}.toast.error{background:#ffd6d1;color:#502522}dialog{background:#14181e;color:var(--ink);border:1px solid #56616d;border-radius:10px;padding:0;max-width:min(590px,calc(100vw - 28px));width:100%;max-height:calc(100dvh - 34px);overflow:auto;box-shadow:0 20px 80px #0008}dialog::backdrop{background:#000b}dialog.evidence-dialog{max-width:min(1150px,calc(100vw - 28px))}.dialog-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.dialog-head h2{margin:0 0 4px;font-size:20px}.dialog-head p{color:var(--muted);font-size:12px;margin:0}.dialog-close{border:1px solid var(--line);background:#20252c;border-radius:5px;width:34px;height:34px;font-size:18px;flex-shrink:0}.dialog-body{padding:22px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.dialog-grid>.span-all{grid-column:1/-1}.login-body{min-height:100vh}.login-shell{display:grid;grid-template-columns:56% 44%;min-height:100vh}.login-operation{position:relative;overflow:hidden;min-height:100vh;background:#272e32;padding:38px 45px;display:flex;flex-direction:column;isolation:isolate}.operation-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:47% center;filter:saturate(.55) brightness(.72);z-index:-3}.operation-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0a0e1599 0%,transparent 31%,#090d1399 60%,#090d13 100%);z-index:-2}.login-operation>.brand{font-size:22px}.operation-copy{margin-top:auto;padding:130px 0 50px;max-width:580px}.operation-line{height:3px;width:46px;background:var(--amber);margin-bottom:28px}.operation-copy h1{font-size:clamp(42px,4.5vw,68px);line-height:1.05;letter-spacing:-2px;margin-bottom:23px}.operation-copy p{font-size:16px;line-height:1.75;color:#dddfe0;margin:0}.operation-caption{color:#a9b1b9;font-size:11px;margin-bottom:0}.login-entry{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:55px 10%;min-width:0;position:relative;background:#0e1014}.login-form-wrap{width:100%;max-width:365px;margin:auto}.login-mark{font:900 20px Archivo,sans-serif;border:1px solid #66512a;background:#282113;color:#ffcf6b;width:43px;height:43px;border-radius:8px;display:grid;place-items:center;margin:0 0 29px}.login-form-wrap h1{font-size:29px;letter-spacing:-.7px;margin:0 0 14px}.login-lead{font-size:14px;color:var(--muted);line-height:1.7;margin:0 0 30px;max-width:38ch}.login-form-wrap .field{margin-bottom:20px}.login-form-wrap label{font-size:13px}.login-form-wrap input{background:#15191f;border-color:#3b444f;min-height:48px}.password-control{position:relative}.password-control input{padding-right:83px}.password-control button{position:absolute;right:3px;top:3px;bottom:3px;background:none;border:0;color:#d1b478;font-size:11px;padding:0 12px}.login-submit{width:100%;min-height:47px;margin-top:5px}.login-help{font-size:12px;line-height:1.7;color:var(--muted);margin:24px 0 0;padding-top:22px;border-top:1px solid var(--line)}.login-footer{width:100%;max-width:365px;margin-top:70px;display:flex;justify-content:space-between;gap:15px;color:#9da6b2;font-size:10px}.mobile-brand{display:none}.login-form-wrap>.button-link{margin-top:12px;width:100%}
@media(min-width:1600px){main#content{padding:34px 45px 55px}.live-layout{grid-template-columns:minmax(0,1fr) 370px}.review-panel{padding:22px}}
@media(max-width:1160px){.brand{font-size:17px}.topbar{padding:0 20px;gap:15px}.session-tools{gap:12px}.profile-name{max-width:110px}.company-control label{display:none}.company-control select{max-width:190px}.app-shell{grid-template-columns:175px minmax(0,1fr)}.sidebar{padding:20px 10px}.nav-link{font-size:12px;padding:10px}.nav-group{padding-left:10px}main#content{padding:23px 22px 40px}.live-layout{grid-template-columns:minmax(0,1fr) 305px;gap:16px}.review-panel{padding:16px}.evidence-layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.login-entry{padding:50px 12%}.login-operation{padding:34px 32px}.login-operation>.brand{font-size:19px}.operation-copy h1{font-size:49px}}
@media(max-width:940px){.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:16px 20px;gap:16px}.session-tools{flex:1;justify-content:flex-end}.profile-name{max-width:130px}.app-shell{display:block;min-height:calc(100vh - 70px)}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:8px 12px}.sidebar nav{flex-direction:row;overflow-x:auto;white-space:nowrap;gap:5px}.nav-link{padding:8px 11px;min-height:40px;flex-shrink:0}.nav-link[aria-current=page]{box-shadow:inset 0 -2px var(--amber)}.nav-divider{width:1px;height:27px;margin:6px;flex-shrink:0}.nav-group,.sidebar-foot{display:none}.nav-link svg{width:16px}.login-shell{grid-template-columns:48% 52%}.login-operation{padding:29px 25px}.login-operation>.brand{font-size:14px}.operation-copy h1{font-size:42px}.operation-copy p{font-size:14px}.login-entry{padding:45px 10%}.evidence-layout{display:block}.evidence-controls{margin-top:16px}.dashboard-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.topbar{padding:15px 16px 12px;gap:13px}.topbar>.brand{font-size:16px;flex:1 0 100%}.session-tools{width:100%;justify-content:space-between;gap:10px}.company-control{flex:1;min-width:0}.company-control select{max-width:100%;width:100%;font-size:12px}.profile{gap:6px}.profile-name{max-width:95px;font-size:11px}.profile-role{font-size:9px}.avatar{width:29px;height:29px;font-size:10px}.session-tools>.text-button{font-size:11px;padding:4px;min-height:35px}.sidebar{padding:7px 6px}.nav-link{font-size:11px;padding:8px 10px;gap:6px}.nav-link svg{width:15px}.sidebar nav{gap:0}main#content{padding:20px 16px 38px}.page-header{gap:12px;flex-wrap:wrap;margin-bottom:20px}.page-header h1{font-size:26px}.page-header p{font-size:12px}.page-header .button-row{padding-top:0}.page-header .primary,.page-header .secondary{min-height:39px;font-size:12px}.context-banner{font-size:11px;align-items:flex-start;line-height:1.5;margin-bottom:18px}.context-banner svg{width:16px;flex-shrink:0}.metric-strip{grid-template-columns:1fr 1fr;margin-bottom:20px}.metric{padding:15px 13px!important}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.metric strong{font-size:30px}.metric span{font-size:11px}.metric small{font-size:10px}.dashboard-grid{display:block}.dashboard-grid .panel+.panel{margin-top:16px}.panel{padding:17px}.section-head h2{font-size:16px}.table-wrap{border-radius:6px}th{font-size:10px;padding:11px 12px}td{padding:12px;font-size:11px}.cell-name{min-width:160px;max-width:220px}.filters{gap:10px}.filters .field{min-width:calc(50% - 10px)}.filters .field.search{min-width:100%;flex-basis:100%}.filters input,.filters select,input,select,textarea{font-size:16px}.filters label{font-size:11px}.report-meta{grid-template-columns:1fr 1fr;gap:14px}.report-meta dt{font-size:10px}.report-meta dd{font-size:12px}.live-layout{display:flex;flex-direction:column;gap:20px}.live-layout>div,.live-layout>aside{width:100%}.live-stage{aspect-ratio:16/9}.feed-head{font-size:11px;padding:11px}.feed-foot{padding:10px 11px;font-size:11px;flex-wrap:wrap}.feed-foot .secondary{font-size:11px;min-height:38px;padding:8px 10px}.worker-list{margin-top:16px}.worker-list h2{font-size:14px}.review-panel{scroll-margin-top:12px}.evidence-controls textarea{font-size:16px}.verdict{min-height:72px}.verdict strong{font-size:13px}.verdict small{font-size:12px}.full-width{min-height:45px}.capture-meta{font-size:11px}.dialog-head{padding:17px}.dialog-head h2{font-size:18px}.dialog-body{padding:17px}.dialog-grid{display:block}.dialog-footer{padding-top:15px;margin-top:17px}.dialog-footer button{flex:1}.toast{bottom:12px;font-size:12px;max-width:calc(100vw - 24px)}.upload-area{padding:17px}.upload-area input{font-size:13px}.login-shell{display:block;min-height:100dvh}.login-operation{display:none}.login-entry{min-height:100dvh;padding:26px 30px 23px;justify-content:flex-start}.mobile-brand{display:block;font-size:16px;align-self:flex-start;margin-bottom:45px}.login-form-wrap{max-width:380px;margin:auto}.login-mark{margin:0 0 22px}.login-form-wrap h1{font-size:28px}.login-lead{font-size:14px;margin-bottom:26px}.login-form-wrap input{font-size:16px}.login-footer{margin-top:55px}.login-help{font-size:12px}}
@media(max-width:410px){.profile-name{max-width:70px}.profile-role{max-width:83px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{display:none}.company-control select{font-size:11px;padding-left:8px}.brand{font-size:14px!important}.login-entry{padding-left:23px;padding-right:23px}.mobile-brand{margin-bottom:36px}.login-form-wrap h1{font-size:26px}.nav-link{padding:8px}.nav-link svg{width:14px}.page-header .button-row{width:100%}.page-header .button-row button{flex:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.topbar,.sidebar,.page-header .button-row,.toast,dialog,.filters,.context-banner{display:none!important}.app-shell{display:block}main#content{padding:0;max-width:none}.portal-body{background:#fff;color:#000}.panel,.table-wrap{border-color:#ccc;background:#fff}.report-meta,.metric-strip{border-color:#ccc}th{background:#eee;color:#333}td{border-color:#ddd}.muted,.report-disclaimer,small{color:#333!important}button{display:none!important}}

/* The image plane covers its container at every aspect ratio. The frame shares
   the same plane, so the slow camera movement keeps it aligned with the worker. */
.login-operation{min-height:100dvh}
.operation-visual{position:absolute;inset:0;container-type:size;z-index:0;pointer-events:none}
.operation-plane{position:absolute;top:0;right:0;width:max(100cqw,66.666667cqh);height:max(100cqh,150cqw);transform-origin:right top;transform:scale(1.03);animation:operation-drift 30s ease-in-out infinite alternate;will-change:transform;pointer-events:none}
.operation-visual .operation-photo{inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;opacity:.60;filter:saturate(.78) brightness(.92)}
.operation-detection{position:absolute;left:max(36%,calc(100% - 92.592593cqw + 20px));right:2%;top:4%;bottom:max(4%,calc(100% - 90cqh));border:4px solid #48ff9c;border-radius:3px;box-shadow:0 0 10px #48ff9c40;pointer-events:none;z-index:1}
.operation-detection::before{content:"";position:absolute;inset:-2px;border-radius:3px;background:linear-gradient(#80ffc0,#80ffc0) left top/36px 7px no-repeat,linear-gradient(#80ffc0,#80ffc0) left top/7px 36px no-repeat,linear-gradient(#80ffc0,#80ffc0) right top/36px 7px no-repeat,linear-gradient(#80ffc0,#80ffc0) right top/7px 36px no-repeat,linear-gradient(#80ffc0,#80ffc0) left bottom/36px 7px no-repeat,linear-gradient(#80ffc0,#80ffc0) left bottom/7px 36px no-repeat,linear-gradient(#80ffc0,#80ffc0) right bottom/36px 7px no-repeat,linear-gradient(#80ffc0,#80ffc0) right bottom/7px 36px no-repeat;filter:drop-shadow(0 0 3px #63e6a438)}
.operation-detection span{position:absolute;right:10px;top:10px;padding:8px 12px;background:#102b21;color:#bcffdc;border:1px solid #80ffc0;border-radius:4px;font-size:clamp(12px,1.05vw,15px);font-weight:700;line-height:1.4;white-space:nowrap;box-shadow:0 2px 12px #0005}
.login-operation .operation-shade{z-index:1;pointer-events:none;background:linear-gradient(180deg,#0a0e152b 0%,transparent 45%,#090d1355 74%,#090d13 100%)}
.login-operation .brand,.operation-copy{position:relative;z-index:2}
.login-operation>.detection-brand{position:absolute;right:28px;top:28px;z-index:3;font:800 13px/1.25 Archivo,system-ui,sans-serif;letter-spacing:.6px;color:var(--amber);padding:6px 9px;background:#0b0c0ecc;border-radius:4px;white-space:nowrap}
@keyframes operation-drift{from{transform:scale(1.03)}to{transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.operation-plane{animation:none;transform:none;will-change:auto}}

/* Original Dronia brand asset from ThermalTool, white on dark. */
.login-body .brand{display:flex;align-items:center;gap:16px}
.login-body .brand .dronia-logo{display:block;width:145px;height:auto;flex-shrink:0}
.login-body .brand span{margin-left:0;font-size:14px;letter-spacing:.8px}
@media(max-width:940px){.login-body .brand{gap:10px}.login-body .brand .dronia-logo{width:112px}.login-body .brand span{font-size:10px}.login-operation>.detection-brand{right:20px;top:25px;font-size:11px}}
@media(min-width:761px){.login-body .mobile-brand{display:none}}

/* Welcome hierarchy: greeting secondary, product name kept together. */
#login-title{margin-bottom:20px;line-height:1.15;letter-spacing:-.6px}
#login-title .welcome-line{display:block;font-family:Instrument,system-ui,sans-serif;font-size:17px;font-weight:450;letter-spacing:0;color:var(--muted);margin-bottom:9px}
#login-title .safety-name{display:block;font-size:clamp(26px,2.3vw,32px);font-weight:800;white-space:nowrap}

/* Incident geography shares the portal palette; color belongs to the data layer. */
.incident-periods{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}.incident-period-label{font-size:11px;color:var(--muted);margin-right:3px}.incident-period-buttons{display:flex;flex-wrap:wrap;gap:5px}.incident-period-buttons .text-button{padding:6px 11px;min-height:34px;border:1px solid #363e47;border-radius:4px;font-size:11px}.incident-period-buttons .text-button[aria-pressed=true]{background:#2b2417;border-color:#8b6c32;color:#ffd185}.incident-available{font-size:11px;color:var(--muted);margin:0 0 0 auto}.incident-filters input[type=date]{min-width:0}
.map-entry{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;border:1px solid #414955;border-radius:8px;margin-bottom:24px;background:var(--surface)}
.map-entry>div{display:flex;align-items:center;gap:16px}.map-entry svg{width:30px;height:30px;color:var(--amber)}.map-entry h2{margin:0 0 4px;font-size:16px}.map-entry p{margin:0;color:var(--muted);font-size:12px}.map-entry>button{flex-shrink:0}
.incident-filters{gap:10px;margin-bottom:15px}.incident-filters .field{min-width:118px}.incident-filters .field label{font-size:11px}.incident-filters>.text-button{margin-left:auto}
.incident-summary{display:flex;gap:28px;flex-wrap:wrap;padding:14px 0 21px;margin-bottom:2px}.incident-summary>div{display:flex;align-items:baseline;gap:8px}.incident-summary strong{font:900 24px/1.2 Archivo,sans-serif}.incident-summary span{font-size:12px;color:var(--muted)}
.incident-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}.incident-map-panel{min-width:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.incident-map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--line)}.incident-map-heading h2{font-size:15px;margin:0 0 4px}.incident-map-heading p{font-size:11px;color:var(--muted);margin:0}
.map-mode{display:inline-flex;background:#0d1015;border:1px solid #414955;border-radius:6px;padding:3px;gap:3px}.map-mode button{min-height:34px;font-size:12px;padding:7px 11px;border-color:transparent;background:transparent;border-radius:3px;color:var(--muted)}.map-mode button[aria-pressed=true]{background:#2e281c;color:#ffcf75;border-color:#76613b}
.incident-map-stage{position:relative;height:510px;min-height:360px;background:#161e25}.incident-map-host{width:100%;height:100%}.incident-map-empty{position:absolute;inset:24px;display:grid;align-content:center}.incident-map-empty .empty-state{background:#12191fee}
.incident-legend{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:13px 16px;border-top:1px solid var(--line);font-size:11px}.incident-legend small{font-size:10px;color:var(--muted)}.density-key{display:flex;align-items:center;gap:8px}.density-gradient{display:block;width:110px;height:7px;border-radius:4px;background:linear-gradient(90deg,#307af2,#1bc8df,#f5d653,#ef4c47)}.marker-key{display:flex;gap:13px;flex-wrap:wrap}.marker-key>span{display:flex;align-items:center;gap:5px}.marker-key-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ffb000}.marker-key-dot.confirmed{background:#ef4c47}.marker-key-dot.review{background:#899ab4}
.incident-side{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:19px;min-width:0}.incident-detail h2{font-size:17px;margin:12px 0}.incident-detail-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:7px;background:#232c35;color:#adc6d9}.incident-detail-icon svg{width:23px;height:23px}.incident-detail>.chip{margin-bottom:3px}.incident-detail>p{line-height:1.7}.incident-meta{margin:0 0 19px}.incident-meta>div{padding:9px 0;border-bottom:1px solid #292f37}.incident-meta dt{color:var(--muted);font-size:10px;margin-bottom:3px}.incident-meta dd{margin:0;font-size:12px;overflow-wrap:anywhere}.incident-meta dd.mono{font-size:10px}.incident-detail>.evidence-note{margin-bottom:15px}
.incident-zones{margin-top:25px;padding-top:19px;border-top:1px solid var(--line)}.incident-zones h3{font-size:12px;margin-bottom:16px}.incident-zone{margin-top:14px}.incident-zone>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:11px;margin-bottom:7px}.incident-zone strong{font-family:Martian,monospace;font-size:10px;font-weight:400}.incident-zone-track{background:#282e38;height:4px;overflow:hidden;border-radius:2px}.incident-zone-fill{display:block;height:100%;background:#aabacf;border-radius:2px}
.incident-records{margin-top:26px}.incident-records button[aria-pressed=true]{border-color:var(--amber);color:#ffcf75}.map-demo-note{font-size:11px;line-height:1.7;color:#d8bd89;padding-left:12px;border-left:2px solid #9d7a3b;margin:14px 0 0}
@media(min-width:1600px){.incident-layout{grid-template-columns:minmax(0,1fr) 300px}.incident-map-stage{height:560px}}
@media(max-width:1160px){.incident-layout{grid-template-columns:minmax(0,1fr) 238px;gap:14px}.incident-side{padding:16px}.incident-map-heading{padding:14px}.incident-summary{gap:18px}.incident-summary span{font-size:11px}}
@media(max-width:760px){.map-entry{align-items:flex-start;flex-direction:column;gap:15px;padding:16px}.map-entry h2{font-size:15px}.map-entry>button{width:100%}.incident-layout{grid-template-columns:1fr}.incident-side{padding:17px}.incident-summary{gap:15px;padding:9px 0 18px}.incident-summary>div{display:block;flex:1;min-width:80px}.incident-summary span{display:block;margin-top:4px}.incident-summary strong{font-size:23px}.incident-filters .field{min-width:calc(50% - 10px)}.incident-filters .field:nth-child(5){flex-basis:55%}.incident-filters>.text-button{font-size:11px}.incident-map-stage{height:430px;min-height:320px}.incident-map-heading{align-items:flex-start}.map-mode{width:100%}.map-mode>button{flex:1}.incident-legend{padding:12px}.incident-meta{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.incident-zones{margin-top:18px}.incident-records{margin-top:22px}}
@media print{.incident-map-stage{height:450px}.incident-layout{display:block}.incident-side{margin-top:16px}.map-mode{display:none}}

/* Postflight preparation preserves the portal's operational controls and spacing. */
.nav-link.is-locked{opacity:.48;cursor:not-allowed;text-align:left;background:transparent;border-color:transparent}.nav-link.is-locked:hover{background:transparent;color:var(--muted)}.nav-link.is-locked svg:last-child{width:13px;height:13px;margin-left:auto}
.postflight-form>.section-head{margin-bottom:19px}.postflight-form>.section-head .chip{max-width:55%;overflow:hidden;text-overflow:ellipsis}
.postflight-upload{margin:0 0 22px}.postflight-dropzone{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:22px;border:1px dashed #59616c;border-radius:7px;background:#12171d}.postflight-dropzone.is-dragging{border-color:var(--amber);background:#282215;box-shadow:inset 0 0 0 1px var(--amber)}.postflight-dropzone>svg{width:29px;height:29px;color:#e2b25c}.postflight-drop-copy{flex:1;min-width:200px}.postflight-drop-copy h3{font-size:16px;margin:0 0 5px}.postflight-drop-copy p{font-size:11px;color:var(--muted);margin:0}.postflight-drop-copy .postflight-upload-name{font-size:12px;color:#d4dbe3;margin-top:9px;overflow-wrap:anywhere}.postflight-file-input{position:absolute;left:0;top:0;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}.postflight-file-input:focus-visible{outline:none}.postflight-dropzone:focus-within{border-color:#e2b25c}
.postflight-upload-status{display:flex;align-items:center;gap:13px;margin-top:12px;font-size:12px;color:#dfcfae}.postflight-upload-status progress{width:130px;flex-shrink:0}.postflight-upload>.form-error{margin:12px 0 0}
.postflight-video-row{display:flex;align-items:flex-end;gap:13px}.postflight-video-row>.field{flex:1;min-width:0;margin-bottom:0}.postflight-video-actions{flex-shrink:0;padding-bottom:1px}.postflight-form>.muted{display:block;font-size:11px;margin-top:8px}.postflight-capacity{margin:18px 0 0}.postflight-model-note{font-size:11px;color:#ccb786;margin:14px 0 0}
.postflight-controls{margin-top:24px;padding-top:21px;border-top:1px solid var(--line)}.postflight-controls legend{float:left;width:100%;font-size:15px;padding-bottom:6px}.postflight-controls>.form-help{clear:both;font-size:12px;margin:0 0 15px;max-width:85ch}.postflight-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.postflight-control{display:flex;align-items:flex-start;gap:11px;padding:15px;border:1px solid #3a434f;border-radius:6px;background:#10151a;cursor:pointer;min-width:0}.postflight-control:has(input:checked){border-color:#20cf69;background:#112019}.postflight-control:focus-within{outline:2px solid var(--amber);outline-offset:2px}.postflight-control input[type=checkbox]{margin:2px 0 0;flex-shrink:0;width:17px;height:17px;min-height:17px}.postflight-control-text{display:block;min-width:0}.postflight-control-text strong{display:block;font-size:13px;font-weight:600;margin-bottom:5px}.postflight-control-text small{display:block;font-size:11px;line-height:1.6;color:var(--muted)}.postflight-control-priority .postflight-control-text strong{color:#e8c482}.postflight-control.is-unavailable{cursor:default;background:#12161b;border-color:#303841}.postflight-control.is-unavailable input{opacity:.5}.postflight-control-text .postflight-control-reason{margin-top:7px;color:#bcabb0}
.postflight-advanced{margin-top:19px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.postflight-advanced>summary{font-size:13px;font-weight:550;cursor:pointer;padding:3px 0}.postflight-advanced-body{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);align-items:start;gap:22px;padding-top:19px}.postflight-advanced-body>.field{margin:0}.postflight-advanced-body .field small{font-size:11px}.postflight-height{margin:0;padding:13px}.postflight-submit{display:flex;align-items:center;gap:17px;margin-top:21px}.postflight-submit>.primary{min-width:166px;flex-shrink:0}.postflight-submit>.form-help{margin:0;font-size:12px}.postflight-submit+.form-error{margin:15px 0 0}
.postflight-job{padding:18px 0;border-top:1px solid var(--line)}.postflight-job:first-child{padding-top:0;border-top:0}.postflight-job:last-child{padding-bottom:0}.postflight-job-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.postflight-job-head>strong{font-size:13px;font-weight:600;overflow-wrap:anywhere;min-width:0}.postflight-job>p{margin:7px 0 0}.postflight-job>.button-row{margin-top:13px}.postflight-job>.button-row .secondary{min-height:36px;font-size:11px;padding:8px 11px}.postflight-job-progress{display:flex;align-items:center;gap:12px;margin-top:12px}.postflight-job-progress>progress{flex:1;width:100%;max-width:440px}.postflight-job-progress>span{font-size:11px;white-space:nowrap}.postflight-job-controls{font-size:11px;color:#b8c3cf}.postflight-upload-status progress,.postflight-job-progress progress{height:7px;border:0;border-radius:5px;accent-color:var(--amber);background:#2d3540}.postflight-upload-status progress::-webkit-progress-bar,.postflight-job-progress progress::-webkit-progress-bar{background:#2d3540;border-radius:5px}.postflight-upload-status progress::-webkit-progress-value,.postflight-job-progress progress::-webkit-progress-value{background:#c49547;border-radius:5px}.postflight-upload-status progress::-moz-progress-bar,.postflight-job-progress progress::-moz-progress-bar{background:#c49547;border-radius:5px}
@media(max-width:1160px){.postflight-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.postflight-dropzone{padding:18px;gap:14px}.postflight-advanced-body{gap:16px}}
@media(max-width:760px){.postflight-dropzone{align-items:flex-start;gap:13px;padding:17px}.postflight-drop-copy{min-width:calc(100% - 48px)}.postflight-dropzone>.button-row{width:100%;padding-left:42px}.postflight-dropzone>.button-row>button{flex:1;min-height:42px}.postflight-video-row{flex-direction:column;align-items:stretch;gap:10px}.postflight-video-actions{justify-content:flex-start}.postflight-video-actions>*{flex:1}.postflight-control{padding:13px;gap:9px}.postflight-control-text strong{font-size:12px}.postflight-control-text small{font-size:11px}.postflight-advanced-body{grid-template-columns:1fr;gap:15px}.postflight-submit{align-items:stretch;flex-direction:column;gap:10px}.postflight-submit>.form-help{font-size:11px}.postflight-upload-status{align-items:flex-start;flex-direction:column;gap:8px}.postflight-upload-status progress{width:100%}.postflight-form>.section-head .chip{font-size:9px}.postflight-job-progress{flex-wrap:wrap;gap:8px}.postflight-job-progress>progress{min-width:100%}.job-status>.section-head{align-items:flex-start;gap:8px}}

/* The pending WebRTC element stays in the rendering tree so browser frame
   callbacks measure presentation while the last stable JPEG remains visible. */
.live-feed-status{display:flex;gap:12px;flex-wrap:wrap}.webrtc-controls{display:flex;align-items:center;gap:8px;margin-left:auto}.webrtc-controls button{min-height:34px;padding:7px 10px;font-size:11px}.live-stage .live-webrtc-video{position:absolute;inset:0;z-index:1;background:#06080b}.live-stage .live-webrtc-video.is-pending{opacity:0;pointer-events:none}.live-stage .stage-label{z-index:2}
@media(max-width:480px){.postflight-module-grid{grid-template-columns:1fr}.postflight-dropzone>.button-row{padding-left:0}.postflight-form>.section-head{align-items:flex-start;flex-direction:column;gap:7px}.postflight-form>.section-head .chip{max-width:100%}}

/* Human review overlay: applies only to the selected, hash-bound capture. */
.capture-preview .capture-image,.evidence-media .capture-image{display:block;position:relative;padding:0;line-height:0;overflow:hidden;border-radius:4px}
.capture-preview .capture-image img,.evidence-media .capture-image img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.capture-preview .capture-enlarge{padding:7px}
.capture-image .review-worker-box{position:absolute;box-sizing:border-box;display:block;padding:0;border:4px solid var(--review-color,#aeb6c2);outline:2px solid var(--review-color,#aeb6c2);box-shadow:0 0 0 3px #080b0eb3;pointer-events:none;border-radius:2px;color:var(--review-color,#aeb6c2);line-height:1.25}
.capture-image .review-worker-box[hidden]{display:none}
.review-worker-box[data-decision=cumple],.capture-review-status[data-decision=cumple]{--review-color:#35df89}
.review-worker-box[data-decision=no_cumple],.capture-review-status[data-decision=no_cumple]{--review-color:#ff555d}
.review-worker-box[data-decision=no_distingue],.capture-review-status[data-decision=no_distingue]{--review-color:#ffd34e}
.capture-image .review-worker-label{display:block;width:max-content;max-width:100%;padding:4px 6px;background:#0b1015ed;color:var(--review-color,#aeb6c2);font-size:clamp(9px,1vw,13px);font-weight:700;line-height:1.35;overflow-wrap:anywhere;text-align:left}
.capture-review-status{font-size:12px;line-height:1.5;color:var(--review-color,#aeb6c2);margin:10px 0 0}
.evidence-media .capture-review-figure{max-width:min(100%,calc(60vh * var(--capture-ratio,1.777778)));margin:0 auto}
.capture-preview .review-worker-label{display:none}
.evidence-media .review-worker-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}

/* Boxes follow the decoded live frame. Pixel positions include contain letterboxing. */
.live-stage>img{position:absolute;inset:0;min-width:0;min-height:0}
.live-worker-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.live-worker-box{position:absolute;box-sizing:border-box;border:3px solid currentColor;color:var(--review-color,#aeb6c2);border-radius:2px;pointer-events:none}
.live-worker-box[data-decision=cumple]{--review-color:#35df89}
/* Enganche por certificar (29-sep-2026, avisos v2 §2.5.4): lo que el cliente ve en lugar del verde provisorio.
   Borde discontinuo para no confundirlo con el ámbar sólido de «Revisar». */
.live-worker-box[data-decision=por_certificar]{--review-color:var(--amber);border-style:dashed}
.live-worker-box[data-decision=no_cumple]{--review-color:#ff555d}
.live-worker-box[data-decision=no_distingue]{--review-color:#ffd34e}
.live-worker-label{position:absolute;z-index:1;top:4px;left:4px;width:max-content;max-width:min(220px,var(--label-max-width,220px));padding:4px 6px;background:#071015ed;border-left:2px solid currentColor;border-radius:2px;font-size:clamp(9px,.85vw,12px);line-height:1.35;text-align:left}
.live-worker-title{display:block;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-review-note{border-left:2px solid #5c6b76;padding-left:9px}
.live-worker-box::after{
  content:"";position:absolute;inset:-3px;pointer-events:none;
  --corner-length:min(24px,28%);--corner-weight:7px;
  background:
    linear-gradient(currentColor,currentColor) left top / var(--corner-length) var(--corner-weight),
    linear-gradient(currentColor,currentColor) left top / var(--corner-weight) var(--corner-length),
    linear-gradient(currentColor,currentColor) right top / var(--corner-length) var(--corner-weight),
    linear-gradient(currentColor,currentColor) right top / var(--corner-weight) var(--corner-length),
    linear-gradient(currentColor,currentColor) left bottom / var(--corner-length) var(--corner-weight),
    linear-gradient(currentColor,currentColor) left bottom / var(--corner-weight) var(--corner-length),
    linear-gradient(currentColor,currentColor) right bottom / var(--corner-length) var(--corner-weight),
    linear-gradient(currentColor,currentColor) right bottom / var(--corner-weight) var(--corner-length);
  background-repeat:no-repeat;
}

.postflight-control input[type=checkbox]{accent-color:#20cf69}.postflight-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.postflight-control.is-unavailable{cursor:pointer;text-align:left;font:inherit;color:inherit;white-space:normal;min-height:90px;justify-content:flex-start}.postflight-control.is-unavailable>svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:#84918e}.postflight-control.is-unavailable:hover{border-color:#7d8b84;background:#171e1b}.postflight-site-row{display:flex;align-items:end;gap:16px;margin-bottom:20px}.postflight-site-row>.field{flex:1;margin:0}.contact-dronia{color:#72e6a2}.postflight-control-text strong{overflow-wrap:anywhere}@media(max-width:540px){.postflight-site-row{align-items:stretch;flex-direction:column}.postflight-control{padding:12px;gap:8px}}

/* Each tile is an independent, authenticated source. */
.multilive-pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:20px}
.multilive-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.multilive-toolbar>.field{margin:0;min-width:240px;max-width:420px;flex:1}.multilive-toolbar>p{margin:0 0 10px}.multilive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}.multilive-grid>.empty-state{grid-column:1/-1}.multilive-camera{min-width:0;align-self:start}.multilive-camera .feed-head{align-items:center;gap:12px}.multilive-camera .feed-head>div{min-width:0}.multilive-camera .feed-head strong{display:block;overflow-wrap:anywhere;font-size:14px}.multilive-subtitle{display:block;margin-top:4px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.multilive-signal{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:10px;color:var(--muted)}.multilive-signal:before{content:'';height:6px;width:6px;border-radius:50%;background:#7d8985;flex-shrink:0}.multilive-signal.online{color:#c7e5d6}.multilive-signal.online:before{background:#35df89}.multilive-stage{min-height:0;aspect-ratio:16/9}.multilive-stage .empty-state{position:absolute;inset:0;padding:42px 18px 26px;display:flex;flex-direction:column;justify-content:center;align-items:center}.multilive-stage .empty-state h2{font-size:17px;margin-bottom:8px}.multilive-stage .empty-state p{font-size:12px;max-width:34ch;margin:0}.multilive-stage>.multilive-expand{position:absolute;z-index:3;right:10px;top:10px;min-height:32px;padding:7px 10px;font-size:11px;background:#0d1216db}.multilive-camera .live-feed-status{font-size:11px;gap:7px 14px}.multilive-summary{display:flex;flex-direction:column;margin:0;min-width:0;padding:20px}.multilive-summary>.section-head{margin-bottom:8px}.multilive-summary>.form-help{margin:auto 0 0;padding-top:18px}.multilive-summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:15px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.multilive-summary-row:hover{background:#1b2026}.multilive-summary-row>span:first-child{min-width:0}.multilive-summary-row strong{display:block;overflow-wrap:anywhere;font-size:13px}.multilive-summary-row small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}.multilive-summary-row .chip{white-space:nowrap;font-size:10px}.multilive-detail-heading{margin:0 0 18px}.multilive-detail-heading h2{margin-bottom:5px}.multilive-detail-heading p{margin-bottom:0}.live-equipment-list{display:grid;gap:14px;margin-top:20px}.live-equipment-row{padding:17px;border:1px solid var(--line);border-radius:6px}.live-equipment-row .section-head{align-items:flex-start;margin-bottom:8px;gap:15px}.live-equipment-row h3{margin-bottom:5px}.live-equipment-row p{overflow-wrap:anywhere;margin-bottom:10px}.live-equipment-row .button-row{margin-top:14px}
@media(min-width:1150px) and (max-height:850px){.multilive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.multilive-summary{grid-column:1/-1}.multilive-summary>div:not(.section-head){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.multilive-camera .feed-head{align-items:flex-start;flex-direction:column;gap:7px}.multilive-camera .feed-head strong{font-size:13px}.multilive-stage .empty-state h2{font-size:14px}.multilive-stage .empty-state p{font-size:11px}.multilive-stage .stage-label{font-size:9px}.multilive-camera .feed-foot{padding:10px}.multilive-camera .live-feed-status{font-size:10px}}
@media(max-width:980px){.multilive-grid{gap:14px}.multilive-camera .feed-head{padding:11px;align-items:flex-start;flex-direction:column;gap:7px}.multilive-camera .feed-head strong{font-size:13px}.multilive-stage .empty-state h2{font-size:14px}.multilive-stage .empty-state p{font-size:11px}.multilive-summary{padding:17px}.multilive-summary-row{gap:8px;flex-wrap:wrap}}
@media(max-width:610px){.multilive-grid{grid-template-columns:minmax(0,1fr)}.multilive-toolbar{align-items:stretch;flex-direction:column;gap:10px}.multilive-toolbar>.field{min-width:0;max-width:none}.multilive-toolbar>p{margin:0}.multilive-camera .feed-head{align-items:center;flex-direction:row;padding:13px}.multilive-camera .feed-head strong{font-size:14px}.multilive-stage .empty-state h2{font-size:16px}.multilive-stage .empty-state p{font-size:12px}.multilive-summary-row{flex-wrap:nowrap}}
/* Subida por partes y avance del análisis. Ámbar y neutros: el rojo #FF2A1D queda solo para el hallazgo. */
.postflight-upload-status{align-items:flex-start}
.postflight-upload-meter{display:grid;gap:7px;flex:1;min-width:0;max-width:620px}
.postflight-upload-meter>progress{width:100%}
.postflight-upload-figures{font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.postflight-upload-meter>span{color:#dfcfae}
.postflight-upload-status progress[value],.postflight-job-progress>progress[value]{-webkit-appearance:none;appearance:none;height:8px;border:0;border-radius:4px;background:#2b3038;overflow:hidden;accent-color:var(--amber)}
.postflight-upload-status progress[value]::-webkit-progress-bar,.postflight-job-progress>progress[value]::-webkit-progress-bar{background:#2b3038;border-radius:4px}
.postflight-upload-status progress[value]::-webkit-progress-value,.postflight-job-progress>progress[value]::-webkit-progress-value{background:var(--amber);border-radius:4px;transition:width .4s ease}
.postflight-upload-status progress[value]::-moz-progress-bar,.postflight-job-progress>progress[value]::-moz-progress-bar{background:var(--amber);border-radius:4px}
.postflight-upload-status progress:not([value]),.postflight-job-progress>progress:not([value]){accent-color:var(--amber)}
.postflight-upload-alert{margin:12px 0 0;color:#f3c36b;background:#2a2317;border:1px solid #65502b;border-radius:5px;padding:11px 12px;font-size:13px;white-space:pre-line}
.postflight-pending{display:grid;gap:8px;margin:0 0 12px}
.postflight-pending:empty{display:none}
.postflight-pending-item{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#e6c382;padding:10px 13px;border:1px solid #59482d;background:#231e15;border-radius:5px}
.postflight-pending-item p{margin:0;display:grid;gap:2px;font-size:12px;min-width:0;overflow-wrap:anywhere}
.postflight-pending-item strong{font-weight:600;color:#f1d59f}
.postflight-pending-item small{color:var(--muted);font-size:11px}
.postflight-pending-item .secondary{min-height:36px;font-size:11px;padding:8px 11px;flex-shrink:0}
.postflight-job-signal{font-size:11px;color:var(--muted);margin:8px 0 0;font-variant-numeric:tabular-nums}
.postflight-warning{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#f3c36b;background:#2a2317;border:1px solid #65502b;border-radius:5px;padding:9px 11px;margin:9px 0 0;max-width:620px}
.postflight-warning svg{width:16px;height:16px;margin-top:1px}
@media(max-width:760px){.postflight-pending-item{flex-direction:column;align-items:stretch}.postflight-upload-meter{max-width:none}}

/* Avisos de alertas (20-oct-2026): #alertas, #aviso/<id> y #avisos, solo súper admin.
   Regla de Dronia: el rojo #FF2A1D va SOLO en la etiqueta del hallazgo (.chip.hallazgo). Todo lo demás
   (estados, envíos, fallas) va en ámbar, verde o gris. */
.chip.hallazgo{color:#FF2A1D;border-color:#FF2A1D;background:transparent;font-weight:700}
.aviso-franja{display:block;font-size:12px;line-height:1.5;color:#f3c36b;background:#2a2317;border:1px solid #65502b;border-radius:5px;padding:10px 13px;margin:0 0 16px}
.aviso-etiquetas{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.aviso-estado{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.aviso-foto-boton{display:block;padding:0;border:0;background:none;border-radius:4px}
.aviso-miniatura{display:block;width:96px;height:54px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
.aviso-foto-grande{display:block;max-width:100%;max-height:70vh;margin:0 auto;border-radius:6px}
.aviso-texto{white-space:pre-wrap;word-break:break-word;font-family:Martian,monospace;font-size:11px;line-height:1.6;background:var(--surface-raised);border:1px solid var(--line);border-radius:6px;padding:12px;margin:0 0 12px;max-height:340px;overflow:auto}
.aviso-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:16px 0}
.aviso-tarjeta{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.aviso-tarjeta img{display:block;width:100%;border-radius:6px}
.aviso-sin-foto{display:flex;align-items:center;justify-content:center;min-height:120px;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:12px;text-align:center;padding:12px}
.aviso-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:12px}
.aviso-meta dt{color:var(--muted)}
.aviso-meta dd{margin:0;min-width:0;overflow-wrap:anywhere}
/* Avisos v2 (21-oct-2026): vista de cliente «Avisos» (#envios), «Últimos avisos» del Dashboard y «Ver mensaje».
   Sin rojo nuevo: el rojo de Dronia sigue solo en la etiqueta del hallazgo (.chip.hallazgo). */
.avisos-ultimos{margin:0 0 22px}
.avisos-ultimos .section-head p{margin-top:3px}
.aviso-cliente-lado h3{margin:16px 0 7px;font-size:13px}
.aviso-cliente-lado .aviso-texto{max-height:none;font-size:12px}
.aviso-notas{margin:6px 0 0;padding-left:18px;font-size:12px;line-height:1.6;color:var(--muted)}
.aviso-notas li+li{margin-top:3px}
/* Revisión PORTAL-V2-2: «Ver mensaje» va en la primera columna; en el teléfono se ocultan las columnas que repite el
   mensaje (en «Últimos avisos», la faena; en «Avisos», faena y ruta, y trabajadores). Acotado a cada lista. */
@media(max-width:760px){.avisos-ultimos .table-wrap td:nth-child(5),.avisos-ultimos .table-wrap th:nth-child(5),.avisos-lista .table-wrap td:nth-child(5),.avisos-lista .table-wrap th:nth-child(5),.avisos-lista .table-wrap td:nth-child(6),.avisos-lista .table-wrap th:nth-child(6){display:none}}
