:root{color-scheme:dark;--bg:#111815;--panel:#1b2521;--panel2:#222f2a;--line:rgba(168,224,201,.18);--text:#edf7f2;--muted:#91a69e;--green:#81cbab;--green2:#a8e0c9;--yellow:#e1df4e;--warn:#fbbf24;--bad:#fca5a5;--ok:#86efac;--shadow:0 22px 70px rgba(0,0,0,.48)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 10% -10%,rgba(129,203,171,.12),transparent 36%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.boot{display:grid;place-items:center;min-height:100vh;color:var(--green2);font-weight:700}.hidden{display:none!important}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,520px) minmax(0,1fr)}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,6vw,76px);background:rgba(17,24,21,.94);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;margin-bottom:42px}.brand img{width:48px;height:48px}.brand strong,.brand span{display:block}.brand strong{font-size:14px;letter-spacing:.1em}.brand span{font-size:11px;color:var(--muted);margin-top:2px}.login-panel h1{font-size:clamp(30px,4.5vw,48px);line-height:1.04;margin:0 0 12px;letter-spacing:-.04em}.login-panel>p{margin:0 0 30px;color:var(--muted);line-height:1.6;max-width:420px}.login-visual{display:flex;align-items:flex-end;padding:clamp(28px,7vw,90px);background:linear-gradient(145deg,rgba(129,203,171,.15),rgba(225,223,78,.07)),repeating-linear-gradient(90deg,transparent 0 79px,rgba(255,255,255,.025) 80px),#17201c}.login-visual>div{max-width:650px}.login-visual .eyebrow{color:var(--yellow);font-size:11px;font-weight:800;letter-spacing:.15em}.login-visual h2{font-size:clamp(35px,5.5vw,70px);line-height:1.02;letter-spacing:-.05em;margin:14px 0}.login-visual p{color:var(--muted);font-size:15px;line-height:1.7}.login-form{display:grid;gap:14px}.field{display:block;min-width:0}.field>span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.03em;margin:0 0 6px}.input-wrap{position:relative}.input-wrap .icon-button{position:absolute;right:5px;top:5px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#101714;color:var(--text);border-radius:11px;padding:12px 13px;outline:none;min-height:46px}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(129,203,171,.72);box-shadow:0 0 0 3px rgba(129,203,171,.10)}.login-error{min-height:18px;color:var(--bad);font-size:12px}.primary,.secondary,.danger,.success,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;border:1px solid;padding:10px 15px;min-height:42px;font-size:12px;font-weight:800}.primary{background:linear-gradient(105deg,var(--green),var(--yellow));color:#102019;border-color:transparent}.secondary{background:rgba(168,224,201,.06);border-color:var(--line);color:var(--green2)}.danger{background:rgba(239,68,68,.09);border-color:rgba(239,68,68,.28);color:var(--bad)}.success{background:rgba(34,197,94,.11);border-color:rgba(34,197,94,.3);color:var(--ok)}.icon-button{padding:7px 10px;min-width:38px;min-height:36px;background:rgba(168,224,201,.06);border-color:var(--line);color:var(--green2)}button:disabled{opacity:.5;cursor:wait}
.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;padding:12px max(16px,calc((100vw - 1460px)/2));background:rgba(17,24,21,.93);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.topbar .brand{margin:0;min-width:240px}.topbar .brand img{width:36px;height:36px}.nav{display:flex;gap:5px;flex:1}.nav button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:9px;padding:9px 12px;font-size:11px;font-weight:800}.nav button.active{color:var(--green2);background:rgba(129,203,171,.10);border-color:var(--line)}.userbox{display:flex;align-items:center;gap:9px}.userbox span{font-size:11px;color:var(--muted)}.main{width:min(1460px,100%);margin:0 auto;padding:22px 18px 70px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.page-head h1{margin:0;font-size:clamp(24px,3vw,36px);letter-spacing:-.035em}.page-head p{color:var(--muted);font-size:12px;margin:5px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:17px}.stat{padding:14px 15px;background:var(--panel);border:1px solid var(--line);border-radius:13px}.stat b,.stat span{display:block}.stat b{font-size:24px;color:var(--green2);letter-spacing:-.03em}.stat span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}.stat.warn{border-color:rgba(251,191,36,.36)}.stat.warn b{color:var(--warn)}.policy{padding:10px 12px;border:1px solid rgba(96,165,250,.3);background:rgba(96,165,250,.07);border-radius:10px;color:#cde3ff;font-size:10px;line-height:1.5;margin-bottom:14px}.flash{padding:11px 13px;border:1px solid rgba(251,191,36,.42);background:rgba(251,191,36,.08);border-radius:11px;color:#fde68a;font-size:11px;margin-bottom:14px}.flash ul,.warning-box ul{margin:6px 0 0 18px;padding:0;display:grid;gap:3px}
.header-tools{display:flex;align-items:center;gap:7px}.mode-button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--muted);font-size:10px;font-weight:900;white-space:nowrap}.mode-dot{width:9px;height:9px;border-radius:50%;background:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.13)}.mode-button.active{color:#fff7ed;border-color:rgba(251,146,60,.58);background:rgba(249,115,22,.16)}.mode-button.active .mode-dot{background:#fb923c;box-shadow:0 0 0 3px rgba(251,146,60,.18)}.demo-mode .topbar{border-bottom-color:rgba(251,146,60,.55)}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding:13px 15px;border:1px solid rgba(251,146,60,.5);border-radius:13px;background:linear-gradient(105deg,rgba(249,115,22,.17),rgba(251,191,36,.08));color:#ffedd5}.demo-banner b,.demo-banner span{display:block}.demo-banner b{font-size:13px;letter-spacing:.04em}.demo-banner span{font-size:10px;color:#fdba74;margin-top:3px;line-height:1.45}.tour-target{position:relative!important;z-index:220!important;outline:3px solid #facc15!important;outline-offset:4px;box-shadow:0 0 0 9999px rgba(3,7,6,.78),0 0 0 8px rgba(250,204,21,.18)!important}.topbar:has(.tour-target){z-index:220}.tour-layer{position:fixed;inset:0;z-index:230;pointer-events:none}.tour-card{pointer-events:auto;position:absolute;right:18px;bottom:18px;width:min(510px,calc(100vw - 36px));padding:20px;border:1px solid rgba(250,204,21,.52);border-radius:17px;background:#17201c;box-shadow:0 30px 90px rgba(0,0,0,.62);color:var(--text)}.tour-card h2{margin:14px 0 9px;font-size:24px;letter-spacing:-.025em;color:#fef08a}.tour-card p{margin:0;color:#d6e5de;font-size:13px;line-height:1.65}.tour-progress{position:relative;height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:visible}.tour-progress progress{display:block;width:100%;height:6px;border:0;border-radius:inherit;overflow:hidden;background:transparent;appearance:none}.tour-progress progress::-webkit-progress-bar{background:rgba(255,255,255,.08)}.tour-progress progress::-webkit-progress-value{background:linear-gradient(90deg,var(--green),var(--yellow))}.tour-progress progress::-moz-progress-bar{background:linear-gradient(90deg,var(--green),var(--yellow))}.tour-progress span{position:absolute;right:0;bottom:10px;color:var(--muted);font-size:10px;font-weight:900}.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.tour-actions>div{display:flex;gap:8px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:15px}.section-title{font-size:10px;color:var(--green2);font-weight:900;text-transform:uppercase;letter-spacing:.09em;margin-bottom:11px}.list{display:grid;gap:8px}.row-card{display:flex;align-items:center;gap:10px;padding:11px;background:var(--panel2);border:1px solid var(--line);border-radius:11px}.row-card:hover{border-color:rgba(129,203,171,.48)}.row-main{flex:1;min-width:0;background:none;border:0;color:inherit;text-align:left;padding:0}.row-main b,.row-main span,.row-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main b{font-size:12px}.row-main span{font-size:10px;color:var(--muted);margin-top:3px}.row-main small{font-size:9px;color:#71847d;margin-top:2px}.weight{font-size:12px;font-weight:900;color:var(--green2);white-space:nowrap}.badge{font-size:9px;font-weight:900;border:1px solid var(--line);color:var(--green2);border-radius:999px;padding:4px 7px;white-space:nowrap}.badge.warn{color:var(--warn);border-color:rgba(251,191,36,.35)}.empty{padding:24px 14px;text-align:center;border:1px dashed rgba(145,166,158,.25);border-radius:11px;color:#71847d;font-size:12px}.truck-card{align-items:flex-start}.truck-card .truck-actions{display:flex;gap:6px;align-items:center}.truck-items{display:grid;gap:6px;margin-top:9px}.truck-item{display:flex;justify-content:space-between;gap:12px;padding:8px 9px;border-radius:8px;background:rgba(0,0,0,.14);font-size:10px;color:var(--muted)}
.modal-bg{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.76);display:flex;align-items:center;justify-content:center;padding:14px}.modal{width:min(760px,96vw);max-height:94dvh;overflow:auto;background:#151e1a;border:1px solid rgba(129,203,171,.35);border-radius:16px;padding:17px;box-shadow:var(--shadow)}.modal.wide{width:min(1180px,97vw)}.modal-head{position:sticky;top:-17px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-17px -17px 13px;padding:14px 17px;background:rgba(21,30,26,.97);border-bottom:1px solid var(--line)}.modal-head b{font-size:16px;color:var(--green2)}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.span-2{grid-column:span 2}.form-actions{position:sticky;bottom:-17px;z-index:3;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:15px -17px -17px;padding:12px 17px calc(12px + env(safe-area-inset-bottom));background:rgba(21,30,26,.97);border-top:1px solid var(--line)}.warning-box{padding:11px 13px;margin:10px 0;border:1px solid rgba(251,191,36,.42);background:rgba(251,191,36,.08);border-radius:11px;color:#fde68a;font-size:11px}.ok-box{padding:10px 12px;margin:10px 0;border:1px solid rgba(34,197,94,.3);background:rgba(34,197,94,.07);border-radius:10px;color:var(--ok);font-size:11px}.hero{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px;border-radius:12px;background:rgba(129,203,171,.08);border:1px solid var(--line);margin-bottom:12px}.hero b,.hero span{display:block}.hero span{font-size:10px;color:var(--muted);margin-top:3px}.hero strong{color:var(--green2);font-size:19px;white-space:nowrap}.block{padding:12px;margin:11px 0;background:var(--panel);border:1px solid var(--line);border-radius:12px}.block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.block-head b{color:var(--green2);font-size:12px}.line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:8px;align-items:end;padding:9px;margin-bottom:8px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}.line.compact{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.camera-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}.camera{display:flex;align-items:center;justify-content:center;min-height:76px;padding:12px;border:2px dashed rgba(129,203,171,.35);border-radius:11px;background:rgba(129,203,171,.05);color:var(--green2);font-size:11px;font-weight:900;text-align:center;cursor:pointer}.camera input{position:absolute;width:1px;height:1px;opacity:0}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0}.gallery a{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);color:var(--text);text-decoration:none}.gallery img{width:100%;height:135px;object-fit:cover;background:#0b100e}.gallery span{padding:7px;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery .file{min-height:135px;align-items:center;justify-content:center;font-size:30px}.resource-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-visual{display:none}.grid,.resource-columns{grid-template-columns:1fr}.form-grid,.line{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:span 2}.nav{overflow-x:auto}.topbar .brand{min-width:auto}.userbox span{display:none}}
@media(max-width:650px){.login-panel{padding:28px 20px}.login-panel .brand{margin-bottom:34px}.topbar{align-items:flex-start;flex-wrap:wrap;padding:10px 12px}.topbar .brand{flex:1}.header-tools{order:2}.header-tools .help-button{font-size:0}.header-tools .help-button:first-letter{font-size:12px}.userbox{order:2}.nav{order:3;width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.nav button{padding:9px 2px;font-size:8px;white-space:nowrap}.main{padding:16px 12px 80px}.demo-banner{align-items:flex-start;flex-direction:column}.demo-banner button{width:100%;min-height:44px}.page-head{flex-direction:column}.page-head .actions{width:100%;display:grid;grid-template-columns:1fr}.page-head .actions button{min-height:46px}.modal-bg{padding:0;align-items:stretch}.modal,.modal.wide{width:100vw;max-width:none;max-height:100dvh;border-radius:0;border-left:0;border-right:0;padding:12px;padding-top:max(12px,env(safe-area-inset-top))}.modal-head{top:calc(-12px - env(safe-area-inset-top));margin:calc(-12px - env(safe-area-inset-top)) -12px 12px;padding:calc(12px + env(safe-area-inset-top)) 12px 11px}.form-grid,.line,.line.compact{grid-template-columns:1fr}.span-2{grid-column:auto}.camera-grid{grid-template-columns:1fr}.camera{min-height:82px}.form-actions{bottom:-12px;margin:14px -12px -12px;padding:11px 12px calc(11px + env(safe-area-inset-bottom))}.form-actions button{flex:1;min-height:46px}.row-card{padding:10px 8px}.truck-card{flex-wrap:wrap}.truck-actions{width:100%;justify-content:flex-end}.gallery{grid-template-columns:1fr 1fr}.gallery img{height:115px}.hero{align-items:flex-start;flex-direction:column}.block-head{align-items:flex-start;flex-direction:column}.block-head .actions{width:100%;display:grid;grid-template-columns:1fr}.line>.danger{min-height:44px}.tour-card{right:0;bottom:0;width:100%;max-height:62dvh;overflow:auto;border-radius:17px 17px 0 0;padding:17px 15px calc(17px + env(safe-area-inset-bottom))}.tour-card h2{font-size:20px}.tour-card p{font-size:12px}.tour-actions{align-items:stretch;flex-direction:column-reverse}.tour-actions>div{display:grid;grid-template-columns:1fr 1fr}.tour-actions>button,.tour-actions>div button{min-height:44px}}
@media(max-width:650px){.header-tools .help-button{font-size:12px}.header-tools .help-button:first-letter{font-size:inherit}.header-tools .help-label{display:none}}
