:root{--navy:#14283d;--blue:#1976d2;--sky:#eaf4ff;--bg:#f4f7fa;--text:#243447;--muted:#708090;--line:#dce4eb;--green:#16845b;--amber:#b56b00;--red:#b42318;--white:#fff}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.top{height:68px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-size:18px;color:var(--navy)}.brand span,.auth-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--blue);color:white;font-weight:800}.user{display:flex;gap:20px;align-items:center}.user a{color:var(--red);font-weight:600}.shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 68px)}aside{background:var(--navy);padding:22px 14px}nav{display:grid;gap:5px}nav a{color:#bfccda;padding:12px 14px;border-radius:8px;display:flex;gap:12px;align-items:center;font-weight:600}nav a:hover,nav a.active{background:#203d59;color:white}nav i{width:22px;text-align:center;font-style:normal;font-size:18px}main{padding:34px;max-width:1500px;width:100%;margin:auto}.page-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}h1{font-size:28px;margin:0 0 4px;color:var(--navy)}h2{font-size:18px;margin:0 0 5px;color:var(--navy)}p{margin:0;color:var(--muted)}.btn{border:1px solid var(--line);background:white;color:var(--text);padding:10px 16px;border-radius:7px;cursor:pointer;font:inherit;font-weight:650;display:inline-block}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 2px 9px #23384d0a;margin-bottom:24px}.form-card.hidden{display:none}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.form-grid.one{grid-template-columns:1fr}.form-grid label{display:grid;gap:7px;font-weight:650;color:#3c4b5b}.form-grid .wide,.actions{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #c8d3dd;border-radius:7px;padding:10px 11px;font:inherit;background:white;color:var(--text)}.form-grid textarea{min-height:78px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid #1976d21a;border-color:var(--blue)}.form-grid .check{display:flex;align-items:center;grid-template-columns:auto 1fr}.form-grid .check input{width:auto}.actions{display:flex;justify-content:flex-end;gap:10px}.table-card{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:700px}th{text-align:left;padding:14px 18px;background:#f8fafc;color:#5c6a78;font-size:12px;text-transform:uppercase;letter-spacing:.04em}td{padding:15px 18px;border-top:1px solid #edf1f4;vertical-align:middle}td strong,td small{display:block}td small{color:var(--muted);margin-top:3px}.badge{display:inline-block;padding:4px 9px;border-radius:20px;font-size:12px;font-weight:700}.badge.ok{background:#e7f6ef;color:var(--green)}.badge.warn{background:#fff3dd;color:var(--amber)}.badge.muted{background:#edf0f3;color:#6d7883}.link,.button-link{color:var(--blue);font-weight:650}.button-link{border:0;background:none;cursor:pointer;padding:0}.empty{text-align:center;color:var(--muted);padding:35px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stats article{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;align-items:center;gap:16px}.stats i{display:grid;place-items:center;width:45px;height:45px;background:var(--sky);color:var(--blue);border-radius:10px;font-size:21px;font-style:normal}.stats strong{display:block;font-size:25px;color:var(--navy)}.stats span{color:var(--muted)}.trip-grid{display:grid;gap:10px}.trip-card{border:1px solid var(--line);border-radius:9px;padding:15px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.trip-card .vehicle-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:#edf5fc;color:var(--blue)}.trip-card strong,.trip-card span{display:block}.trip-card span,.trip-card time{color:var(--muted);font-size:13px}.trip-card p{margin-top:4px}.empty-state{display:grid;place-items:center;padding:42px;gap:6px;color:var(--muted)}.empty-state b{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e7f6ef;color:var(--green);font-size:22px}.empty-state strong{color:var(--text)}.alert{padding:12px 15px;border-radius:8px;margin-bottom:18px}.alert.success{background:#e7f6ef;color:#106b49}.alert.error{background:#feeceb;color:var(--red)}.login-main{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#f0f6fb,#e4eff9)}.login-main+.x{display:none}.login-main .auth-card{width:min(430px,100%)}.auth-card{background:white;border:1px solid var(--line);padding:36px;border-radius:14px;box-shadow:0 15px 40px #1e3c5a1c}.auth-card .auth-mark{margin-bottom:20px}.auth-card h1{margin-bottom:5px}.auth-card small,.install-link{display:block;margin-top:20px;color:var(--muted)}.install-link{color:var(--blue);text-align:center}dialog{border:0;border-radius:13px;padding:28px;width:min(470px,calc(100% - 30px));box-shadow:0 25px 80px #0005}dialog::backdrop{background:#10253a99}@media(max-width:950px){.stats{grid-template-columns:repeat(2,1fr)}.shell{grid-template-columns:75px 1fr}aside{padding:18px 10px}nav a{justify-content:center}nav a:not(.active){font-size:0}nav a.active{font-size:0}nav i{font-size:20px}}@media(max-width:650px){.top{padding:0 15px}.brand strong,.user span{display:none}.shell{display:block}.shell aside{position:fixed;bottom:0;left:0;right:0;z-index:10;padding:6px;background:var(--navy)}nav{display:flex;justify-content:space-around}nav a,nav a.active{padding:9px;font-size:0}main{padding:22px 14px 85px}.page-head{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats article{padding:15px;display:block}.stats i{margin-bottom:8px}.stats strong{font-size:21px}.stats span{font-size:12px}.card{padding:17px}.table-card{padding:0}.trip-card{grid-template-columns:auto 1fr}.trip-card time{grid-column:2}.auth-card{padding:25px}}
.print-page{background:#fff}.label-page{display:grid;place-items:center;min-height:100vh;padding:25px}.vehicle-label{width:85mm;min-height:115mm;border:2px solid #14283d;border-radius:4mm;text-align:center;padding:7mm;display:flex;flex-direction:column;align-items:center}.vehicle-label .label-brand{font-size:11px;letter-spacing:2px;font-weight:800;color:#1976d2}.vehicle-label img{width:58mm;height:58mm;margin:3mm}.vehicle-label h1{font-size:25px;margin:0}.vehicle-label strong{font-size:17px}.vehicle-label span{font-size:15px}.vehicle-label small{margin-top:4mm;font-weight:650}.vehicle-label code{font-size:8px;margin-top:3mm;word-break:break-all}.print-actions{display:flex;gap:10px;margin-top:20px}@media print{.top,aside,.print-actions{display:none!important}.print-page,.label-page{margin:0;padding:0;min-height:0}.vehicle-label{break-inside:avoid;box-shadow:none}}
.login-qr{display:grid;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.login-qr .scanner-frame{min-height:250px}.badge-profile{display:grid;grid-template-columns:180px 1fr;gap:28px;align-items:start}.badge-profile>img{width:180px;height:220px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}@media(max-width:650px){.badge-profile{grid-template-columns:1fr}.badge-profile>img{width:150px;height:180px}}
.badge-camera{grid-column:1/-1;display:grid;gap:12px;max-width:480px}.badge-camera.hidden{display:none}.badge-camera video{width:100%;max-height:430px;object-fit:cover;border-radius:12px;background:#14283d;transform:scaleX(-1)}.badge-camera .actions{justify-content:flex-start}
.workshop-stats{grid-template-columns:repeat(5,1fr)}.workshop-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.workshop-section-head{padding:20px 22px 0}.workshop-report summary{color:var(--blue);font-weight:700;cursor:pointer}.workshop-order-actions{display:flex;gap:16px;padding-top:16px}.workshop-order-actions form:last-child button{color:var(--red)}.approval-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0}.compact-action{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.compact-action input,.compact-action select{border:1px solid #c8d3dd;border-radius:7px;padding:9px;max-width:210px}.workshop-report>summary{font-size:17px}.workshop-report[open]>summary{margin-bottom:18px}.workshop-agenda{padding:0;overflow:hidden}.workshop-service-list{display:grid}.workshop-service{border-top:1px solid var(--line)}.workshop-service:first-child{border-top:0}.workshop-service>summary{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(220px,1.7fr) minmax(135px,.8fr) auto auto;gap:18px;align-items:center;padding:18px 22px;cursor:pointer;list-style:none;transition:background .15s ease}.workshop-service>summary::-webkit-details-marker{display:none}.workshop-service>summary:hover{background:#f8fbfd}.workshop-service[open]>summary{background:#f3f8fc;border-bottom:1px solid var(--line)}.workshop-service-vehicle,.workshop-service-title,.workshop-service-date{display:grid;gap:3px}.workshop-service-vehicle small,.workshop-service-title small,.workshop-service-date small{color:var(--muted)}.workshop-service-title>.badge{justify-self:start;margin-bottom:3px}.workshop-service-open{color:var(--blue);font-weight:750;white-space:nowrap}.workshop-service-open:after{content:' ↓';font-size:12px}.workshop-service[open] .workshop-service-open:after{content:' ↑'}.workshop-service-body{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(420px,1.5fr);gap:0;background:#fbfcfd}.workshop-order-tools,.workshop-complete{padding:24px}.workshop-order-tools{border-right:1px solid var(--line)}.workshop-order-tools h3,.workshop-complete h3{margin:0 0 4px;color:var(--navy)}.workshop-complete .form-grid{margin:18px 0 0}.workshop-complete .actions{margin-top:2px}@media(max-width:1100px){.workshop-service>summary{grid-template-columns:1fr 1.3fr auto}.workshop-service-date{display:none}.workshop-service>summary>.badge{justify-self:start}.workshop-service-open{grid-column:3;grid-row:1/3}}@media(max-width:1000px){.workshop-stats{grid-template-columns:repeat(3,1fr)}.workshop-service-body{grid-template-columns:1fr}.workshop-order-tools{border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:650px){.workshop-stats{grid-template-columns:1fr}.workshop-service>summary{grid-template-columns:1fr auto;padding:16px}.workshop-service-title{grid-column:1/-1}.workshop-service>summary>.badge{grid-column:1}.workshop-service-open{grid-column:2;grid-row:1;align-self:center}.workshop-order-tools,.workshop-complete{padding:18px}.compact-action{align-items:stretch}.compact-action input,.compact-action select,.compact-action .btn{width:100%;max-width:none}.workshop-order-actions{flex-wrap:wrap}}
.driver-face-preview{width:110px;height:130px;object-fit:cover;border-radius:9px;border:1px solid var(--line);margin-bottom:4px}
.maintenance-history-head{align-items:flex-end}.maintenance-history-search{position:relative;width:min(360px,100%)}.maintenance-history-search input{width:100%;border:1px solid #c8d3dd;border-radius:20px;padding:10px 38px 10px 15px;font:inherit;background:#fff;color:var(--text)}.maintenance-history-search>span:last-child{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--muted);pointer-events:none}.maintenance-history-detail>td{padding:0}.maintenance-history-sheet{margin:10px 18px 20px;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.maintenance-history-sheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}.maintenance-history-sheet h3{margin:3px 0;color:var(--navy)}.maintenance-history-sheet dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.maintenance-history-sheet dl>div{padding:12px;border-radius:8px;background:var(--white)}.maintenance-history-sheet dl>.wide{grid-column:1/-1}.maintenance-history-sheet dt{font-size:11px;font-weight:750;text-transform:uppercase;color:var(--muted)}.maintenance-history-sheet dd{margin:5px 0 0}.maintenance-history-sheet footer{display:flex;justify-content:flex-end;gap:10px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:750px){.maintenance-history-head{align-items:stretch;flex-direction:column}.maintenance-history-search{width:100%}.maintenance-history-sheet{margin:8px;padding:16px}.maintenance-history-sheet dl{grid-template-columns:1fr}.maintenance-history-sheet footer{flex-direction:column}.maintenance-history-sheet footer .btn{text-align:center}}
.maintenance-last-inspection{margin:22px 0;padding-top:20px;border-top:1px solid var(--line)}.maintenance-inspection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.maintenance-inspection-head h4,.maintenance-inspection-empty h4{margin:0 0 4px;font-size:16px;color:var(--navy)}.maintenance-inspection-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.maintenance-inspection-gallery figure{margin:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--white)}.maintenance-inspection-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.maintenance-inspection-gallery figcaption{padding:8px;text-align:center;font-size:12px;font-weight:650}.maintenance-inspection-empty{padding-bottom:2px}@media(max-width:750px){.maintenance-inspection-head{flex-direction:column}.maintenance-inspection-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body.printing-maintenance *{visibility:hidden!important}body.printing-maintenance .print-target,body.printing-maintenance .print-target *{visibility:visible!important}body.printing-maintenance .print-target{position:absolute;inset:0;width:100%;margin:0;padding:0;border:0;background:#fff!important;color:#111!important}body.printing-maintenance .print-target header,body.printing-maintenance .print-target dl>div{background:#fff!important;color:#111!important}body.printing-maintenance .print-target footer{display:none!important}}
