:root{color-scheme:dark;--bg:#10151d;--panel:#1a2230;--line:#334155;--text:#eef2f7;--muted:#aab8ca;--accent:#f4ba58}body.light{color-scheme:light;--bg:#eef2f6;--panel:#fff;--line:#d1dae4;--text:#162235;--muted:#506078;--accent:#935300}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 'Segoe UI',sans-serif}aside{position:fixed;inset:0 auto 34px 0;width:235px;padding:24px 16px;background:var(--panel);overflow:auto;border-right:1px solid var(--line)}main{margin-left:235px;padding:28px 34px 70px;max-width:1700px}h1{font-size:29px;margin:0 0 20px}h2{font-size:21px}h3{font-size:17px}button,input,select,textarea{font:inherit;color:inherit;border:1px solid var(--line);background:var(--bg);border-radius:7px;padding:9px 12px}button{cursor:pointer}button:hover{border-color:var(--accent)}button.primary,#save{background:var(--accent);color:#10151d;font-weight:600}button:disabled{opacity:.45;cursor:default}nav button{display:block;width:100%;text-align:left;margin:6px 0}a{color:var(--accent)}small,.muted{color:var(--muted)}small{display:block}.brand{font-size:23px;font-weight:700;margin-bottom:20px}.credit{font-size:11px;border-top:1px solid var(--line);padding-top:16px;margin-top:24px;overflow-wrap:anywhere}.card{padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin:16px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.grid .card{margin:0}.metric{font-size:32px;font-weight:650}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted)}.tablewrap{overflow:auto}label{display:flex;flex-direction:column;gap:5px;margin:10px 0}label.check{flex-direction:row;align-items:center}textarea{min-height:90px;width:100%}dialog{width:min(900px,94vw);max-height:90vh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:25px}dialog::backdrop{background:#0009}#fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}#fields .full{grid-column:1/-1}#fields>p,#fields>details,#fields>table{grid-column:1/-1}#formError,#notice{color:#fa8383;white-space:pre-wrap}footer#presence{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--line);padding:7px 18px;font-size:12px;z-index:5}.badge{padding:3px 7px;border-radius:5px;background:#64748b26;font-size:12px}.overdue,.critical{color:#fa8383}.soon{color:#eeb348}.ok{color:#43cfa0}.unknown{color:#9faec6}.backup{font-size:12px;margin-top:20px;border:1px solid var(--line);padding:10px;border-radius:8px}.vehicle{position:relative;max-width:330px;margin:auto}.vehicle img{width:100%;max-height:550px;object-fit:contain}.wheelrow{display:flex;justify-content:space-between;position:absolute;left:0;right:0}.wheel{font-size:10px;padding:7px 4px;border:2px solid #91a0b0;background:var(--panel)}.wheel.open{border-color:#ff6b6b}.wheel.done{border-color:#40ce95}.tabs{display:flex;gap:6px;flex-wrap:wrap}.document{display:flex;gap:8px;align-items:center;padding:8px 0;flex-wrap:wrap}.print-only{display:none}.auth{max-width:460px;margin:60px auto}.auth label{margin:16px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere}canvas.preview{max-width:100%;max-height:65vh;object-fit:contain}.connection{color:#fa8383}@media(max-width:800px){aside{position:static;width:auto}nav{display:flex;flex-wrap:wrap}nav button{width:auto}main{margin:0;padding:20px}#fields{grid-template-columns:1fr}footer#presence{position:static}}@media print{body{background:white!important;color:black!important}aside,header,#notice,footer#presence,button,.no-print,dialog{display:none!important}main{margin:0;padding:0;max-width:none}.card{border:0;background:white;margin:0;padding:8px 0}td,th{border-color:#ccc;color:black}a{color:black}.print-only{display:block}.credit{color:black;page-break-inside:avoid}tr{break-inside:avoid}small,.muted{color:#333}}
:root,body.light{--accent:#f2ad35}body{font:14px/1.5 Inter,'Segoe UI',Arial,sans-serif}body.light{--bg:#f3f5f8;--text:#182333;--muted:#5b6b7d}aside{width:205px;padding:24px 14px;display:flex;flex-direction:column}main{margin-left:205px;padding:0 26px 70px;max-width:1800px}#header{min-height:62px;display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);margin-bottom:26px;flex-wrap:wrap}#header button{margin-left:auto}.brand{display:flex;align-items:center;gap:9px;font-size:18px;line-height:1.1}.brand img{width:40px;height:40px}.tenant{padding:12px 9px;border:1px solid var(--line);border-radius:8px;font-size:12px}.sidebottom{margin-top:auto;padding-top:20px}.sidebottom button{width:100%;text-align:left;margin:4px 0}nav button{background:transparent;border:0;padding:10px}.active,nav button.active{background:#f2ad35;color:#182333}h1{font-size:26px;letter-spacing:-.5px}h2{font-size:17px}.card{border-radius:10px}.equipment-image{display:block;width:100%;height:210px;object-fit:contain}.wheelmap{max-width:360px;margin:25px auto}.wheelrow{position:static;margin:18px 0;gap:10px;border-bottom:3px solid var(--line);padding-bottom:8px}.wheel{min-height:44px;min-width:48px}.filtergrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.filtergrid label{margin:0}.batch-line{display:flex;gap:12px;align-items:center}.batch-line label{flex:1;min-width:0}.batch-line input,.batch-line select{width:100%}body.light a{color:#85560b}.login-logo{max-width:100%;padding:10px;background:#fff;border-radius:8px}.login-page{background:#182333 url('/assets/Wallpaper_Dark_4K.png') center/cover fixed}.login-page main{min-height:100vh}.login-page aside{background:#182333e8}.login-page .auth{margin:55px 0;max-width:390px}.login-page #notice{background:var(--panel)}.maintenance-mode main,.maintenance-mode aside{filter:grayscale(1);opacity:.55}.maintenance-mode #page{pointer-events:none}.maintenance-mode #presence{font-weight:700;background:#4a4a4a;color:#fff}.mobile-view main{max-width:540px;margin:auto}.mobile-view aside{position:static;width:auto}.mobile-view nav{display:flex;flex-wrap:wrap}.mobile-view nav button{width:auto}.mobile-view .filtergrid{grid-template-columns:1fr}.mobile-view .grid{grid-template-columns:1fr}@media(max-width:800px){aside{width:auto}main{margin:0;padding:16px}.filtergrid{grid-template-columns:1fr 1fr}.batch-line{flex-wrap:wrap}.batch-line label{flex:1 1 120px}.login-page .auth{margin:20px auto}}@media(max-width:450px){.filtergrid{grid-template-columns:1fr}}@media print{.credit{text-align:right;font-size:9px}.equipment-image{max-height:130px}.tabs{display:none}main{margin:0}}
/* Keep authorized maintenance controls reachable while the portal is read-only. */
.maintenance-mode #page [data-action="maintenance"],.maintenance-mode #page [data-action="backup"],.maintenance-mode #page [data-action="stop"],.maintenance-mode #page [data-action="diagnostics"],.maintenance-mode #page [data-action="updateCheck"]{pointer-events:auto}
#updatePreview code{overflow-wrap:anywhere}
