:root{--green:#176b45;--green-2:#0f5135;--mint:#e9f6ef;--ink:#17231e;--muted:#66736d;--line:#dfe7e2;--bg:#f5f7f6;--white:#fff;--red:#b42318;--orange:#b54708;--blue:#175cd3;--shadow:0 8px 30px rgba(26,52,40,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#113d2d;color:#d9eee5;display:flex;flex-direction:column;z-index:50;padding:20px 14px}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 20px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#62b786;color:#0d3f2c;font-weight:900;font-size:22px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.brand-mark.large{width:54px;height:54px;font-size:30px;border-radius:16px}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{letter-spacing:.08em}.brand-copy small,.sidebar-user small{opacity:.72}.nav-list{display:flex;flex-direction:column;gap:3px;overflow:auto;padding-bottom:18px}.nav-list>a,.nav-list summary{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;color:#cce1d8;font-size:14px}.nav-list>a span,.nav-list summary span{width:22px;text-align:center;font-weight:600}.nav-list>a:hover,.nav-list>a.active,.nav-list details[open]>summary{background:rgba(255,255,255,.09);color:#fff}.nav-list details>a{display:block;padding:8px 12px 8px 46px;font-size:13px;color:#bed4ca}.nav-list summary{list-style:none}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.13);padding:16px 6px 0;display:flex;gap:10px;align-items:center}.sidebar-user>div{display:flex;flex-direction:column;min-width:0;flex:1}.sidebar-user strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{font-size:11px}.sidebar-user button{background:none;border:0;color:white;font-size:18px;cursor:pointer}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#d5f1e2;color:#17563b;font-weight:800}.topbar{position:fixed;top:0;left:244px;right:0;height:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);z-index:40;display:flex;align-items:center;padding:0 28px;gap:14px}.topbar>div{display:flex;flex-direction:column;flex:1}.topbar small{color:var(--muted);font-size:12px}.icon-btn{border:0;background:transparent;font-size:20px;cursor:pointer}.scan-btn{background:var(--green);color:white;border-radius:10px;padding:10px 14px;font-weight:700;font-size:13px}.content{margin-left:244px;padding:100px 28px 50px;min-height:100vh;max-width:1600px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h1{font-size:27px;margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}.actions{display:flex;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:white;border-radius:9px;padding:9px 13px;font-weight:700;font-size:13px;cursor:pointer;min-height:40px}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.danger{color:var(--red);border-color:#f2c8c4}.btn.soft{background:var(--mint);color:var(--green);border-color:#c9e7d8}.btn.full{width:100%}.btn.small{min-height:32px;padding:6px 10px;font-size:12px}.card{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 14px rgba(30,60,46,.035);padding:20px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat-card{background:white;border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;flex-direction:column;gap:10px;transition:.18s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card small{color:var(--muted);font-weight:600}.stat-card strong{font-size:25px}.stat-card:before{content:"";width:28px;height:4px;border-radius:3px;background:var(--blue)}.stat-card.green:before{background:#16a167}.stat-card.red:before{background:#d92d20}.stat-card.orange:before{background:#f79009}.stat-card.gray:before{background:#98a2b3}.grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title h2{font-size:17px;margin:0}.section-title small{color:var(--muted)}.chart{height:240px;display:flex;align-items:flex-end;gap:10px;border-bottom:1px solid var(--line);padding:15px 5px 0}.bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:6px;min-width:18px}.bar{width:68%;max-width:34px;background:linear-gradient(#48a976,var(--green));border-radius:7px 7px 0 0;min-height:3px}.bar-wrap small{font-size:10px;color:var(--muted);white-space:nowrap}.alert-list{display:flex;flex-direction:column;gap:9px}.alert-item{border:1px solid var(--line);border-left:4px solid #f79009;border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.alert-item.red{border-left-color:#d92d20}.alert-item strong{font-size:13px}.alert-item small{color:var(--muted)}.filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:16px}.filters label{min-width:140px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.form-stack{display:flex;flex-direction:column;gap:15px}.form-section{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;margin-top:6px}.form-section h2{font-size:16px;margin:0 0 15px}.span-2{grid-column:span 2}.span-3{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#405047;font-weight:700}input,select,textarea{width:100%;border:1px solid #cfdad4;border-radius:9px;background:white;color:var(--ink);min-height:42px;padding:9px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:#55a77d;box-shadow:0 0 0 3px rgba(23,107,69,.1)}textarea{min-height:92px;resize:vertical}.check{flex-direction:row;align-items:center;font-weight:600}.check input{width:18px;min-height:18px}.table-wrap{overflow:auto;margin:0 -1px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #edf1ef;vertical-align:middle}.data-table tr:hover td{background:#fbfcfb}.table-actions{display:flex;gap:6px;justify-content:flex-end}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#edf1ef;color:#52615a}.badge.green{background:#e5f6ed;color:#067647}.badge.red{background:#fee9e7;color:#b42318}.badge.orange{background:#fff1dc;color:#b54708}.badge.blue{background:#e8f0ff;color:#175cd3}.empty{padding:35px;text-align:center;color:var(--muted)}.flash{border-radius:10px;padding:12px 14px;margin-bottom:18px;background:white;border:1px solid var(--line);font-size:13px}.flash.success{background:#edf9f2;border-color:#b7e2c9;color:#136c42}.flash.error{background:#fff0ef;border-color:#f3c3be;color:#8f1d14}.flash.info{background:#eef4ff;border-color:#c8d9ff;color:#1849a9}.flash ul{margin:6px 0 0}.pagination{display:flex;gap:5px;justify-content:flex-end;margin-top:16px}.pagination a,.pagination span{padding:7px 10px;border:1px solid var(--line);border-radius:7px;font-size:12px;background:white}.detail-hero{display:flex;gap:18px;align-items:center}.vehicle-icon{width:72px;height:72px;border-radius:18px;background:var(--mint);display:grid;place-items:center;font-size:30px;color:var(--green)}.detail-hero h1{margin:0 0 4px}.detail-hero p{margin:0;color:var(--muted)}.kv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.kv{padding:12px;background:#f8faf9;border-radius:9px}.kv small{display:block;color:var(--muted);margin-bottom:4px}.operation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.operation-btn{min-height:95px;background:white;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;justify-content:center;gap:5px;font-weight:800;box-shadow:0 2px 10px rgba(0,0,0,.03)}.operation-btn span{font-size:21px;color:var(--green)}.operation-btn small{font-weight:500;color:var(--muted)}.timeline{display:flex;flex-direction:column}.timeline-item{border-left:2px solid #b9dcc9;padding:2px 0 18px 18px;position:relative}.timeline-item:before{content:"";position:absolute;width:10px;height:10px;background:var(--green);border-radius:50%;left:-6px;top:4px}.timeline-item p{margin:3px 0;color:var(--muted);font-size:13px}.guest-shell{min-height:100vh;background:radial-gradient(circle at 15% 10%,#d7f0e2,transparent 34%),linear-gradient(135deg,#f7faf8,#eef4f1);display:grid;place-items:center;padding:24px}.guest-content{width:100%;max-width:440px}.login-card{background:white;border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:0 24px 70px rgba(20,65,45,.14);display:flex;flex-direction:column;gap:24px}.login-brand{display:flex;gap:12px;align-items:center}.login-brand>div{display:flex;flex-direction:column}.login-brand strong{letter-spacing:.08em;font-size:14px}.login-brand small{color:var(--muted)}.eyebrow{font-size:10px;color:var(--green);letter-spacing:.12em;font-weight:900}.login-card h1{font-size:28px;margin:5px 0}.login-card p{margin:0;color:var(--muted)}.security-note{text-align:center;color:var(--muted)}.mobile-nav{display:none}.qr-card{text-align:center;max-width:410px;margin:auto}.qr-card svg{max-width:100%;height:auto}.print-label{width:90mm;min-height:55mm;border:1px dashed #999;padding:8mm;display:flex;align-items:center;gap:8mm;background:white}.print-label svg{width:38mm;height:38mm}.print-label h1{font-size:18px;margin:0}.print-label p{margin:4px 0}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.report-card{border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:12px}.report-card strong{font-size:14px}@media(max-width:1150px){.cards{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.span-3{grid-column:1/-1}.kv-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s;width:270px}.sidebar.open{transform:none}.topbar{left:0;height:64px;padding:0 14px}.content{margin-left:0;padding:84px 14px 92px}.scan-btn span{display:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:14px}.stat-card strong{font-size:20px}.grid-2,.grid-3{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.mobile-nav{position:fixed;z-index:35;bottom:0;left:0;right:0;height:68px;background:white;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:10px;color:var(--muted);gap:2px}.mobile-nav a span{font-size:19px;color:var(--ink)}.mobile-nav .mobile-scan span{width:46px;height:46px;border-radius:50%;background:var(--green);color:white;display:grid;place-items:center;margin-top:-22px;border:5px solid var(--bg)}.report-grid{grid-template-columns:1fr}.table-actions{justify-content:flex-start}.kv-grid{grid-template-columns:1fr 1fr}.print-label{width:100%;min-height:auto}.filters>*{flex:1 1 145px}}@media(max-width:430px){.cards{grid-template-columns:1fr 1fr}.card{padding:15px}.login-card{padding:24px}.kv-grid{grid-template-columns:1fr}.operation-grid{grid-template-columns:1fr 1fr}.data-table th,.data-table td{padding:10px 8px}.topbar>div small{display:none}}@media print{.sidebar,.topbar,.mobile-nav,.no-print{display:none!important}.content{margin:0;padding:0}.print-label{border:0;page-break-inside:avoid}.card{border:0;box-shadow:none}}
