[hidden]{display:none!important}
:root{
  --blue:#0b63b6;--blue2:#1488d8;--ink:#132035;--muted:#66758d;--line:#dfe7f0;
  --bg:#f4f8fc;--card:#fff;--danger:#c62828;--warning:#b96b00;--success:#17834d;
  --shadow:0 18px 55px rgba(21,48,79,.10);--radius:22px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:
radial-gradient(circle at top left,#e4f3ff 0,transparent 35%),var(--bg)}
button,input,select{font:inherit}.shell{width:min(1380px,calc(100% - 32px));margin:auto}
.topbar{position:sticky;top:0;z-index:30;background:rgba(250,253,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(210,224,238,.8)}
.topbar-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;min-width:0}
.brand img{width:47px;height:47px;object-fit:contain}.brand div{display:grid}.brand strong{font-size:19px}.brand span{font-size:12px;color:var(--muted);margin-top:2px}
.top-actions{display:flex;gap:10px}.btn{border:0;border-radius:12px;padding:11px 17px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 8px 24px rgba(11,99,182,.22)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.page{padding:28px 0 56px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(310px,.9fr);gap:16px}
.hero-card,.summary,.panel{background:rgba(255,255,255,.94);border:1px solid rgba(218,229,240,.95);box-shadow:var(--shadow);border-radius:var(--radius)}
.hero-card{padding:31px;position:relative;overflow:hidden}.hero-card:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-85px;top:-95px;background:#edf7ff}
.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:800;color:var(--blue);display:flex;align-items:center;gap:7px}.live-dot{width:8px;height:8px;border-radius:50%;background:#2bc36b;box-shadow:0 0 0 5px rgba(43,195,107,.12)}
.hero-card h1{font-size:clamp(28px,4vw,45px);line-height:1.04;letter-spacing:-.035em;margin:15px 0 12px;max-width:820px}.hero-card p{color:var(--muted);font-size:15px;line-height:1.7;max-width:830px;margin:0}
.sync-line{margin-top:18px;font-size:12px;color:var(--muted)}.summary{padding:16px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.metric{border:1px solid var(--line);border-radius:16px;padding:17px;background:#f9fbfe;display:flex;flex-direction:column;justify-content:center;min-height:92px}
.metric span{font-size:12px;color:var(--muted);font-weight:650}.metric strong{font-size:28px;margin-top:6px}.metric.danger strong{color:var(--danger)}.metric.warning strong{color:var(--warning)}.metric.success strong{color:var(--success)}
.panel{margin-top:16px}.controls-panel{padding:14px}.controls{display:grid;grid-template-columns:1.7fr repeat(4,minmax(150px,.82fr));gap:10px;align-items:end}
.field{display:grid;gap:6px;min-width:0}.field span{font-size:10px;letter-spacing:.08em;font-weight:800;color:#52637a;text-transform:uppercase}.field input,.field select{width:100%;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 13px;color:var(--ink);outline:none}
.field input:focus,.field select:focus{border-color:#66aee5;box-shadow:0 0 0 3px rgba(53,150,220,.12)}
.data-panel{overflow:hidden}.table-head{padding:15px 17px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.table-head>div:first-child{display:flex;align-items:baseline;gap:10px}.table-head span{font-size:12px;color:var(--muted)}
.server-pill{font-size:11px;font-weight:800;color:var(--success);background:#e9f8ef;padding:7px 10px;border-radius:999px}.table-wrap{overflow:auto;max-height:620px}.vehicle-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1020px}
.vehicle-table th{position:sticky;top:0;background:#f8fbfe;z-index:2;padding:12px 13px;text-align:left;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#4a5c72;white-space:nowrap}
.vehicle-table td{padding:12px 13px;border-bottom:1px solid #eef2f6;font-size:13px;vertical-align:middle;white-space:nowrap}.vehicle-table tr:hover td{background:#fbfdff}
.badge{display:inline-flex;padding:6px 9px;border-radius:999px;font-weight:800;font-size:11px}.badge.green{color:#137e48;background:#ddf7e8}.badge.red{color:#b42318;background:#fee4e2}.badge.orange{color:#9a5b00;background:#fff0d0}.badge.yellow{color:#8a6c00;background:#fff8c7}.badge.gray{color:#5f6c7d;background:#edf1f5}
.row-expired td:first-child{box-shadow:inset 3px 0 0 #e53935}.mobile-cards{display:none;padding:12px;gap:10px}.vehicle-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}.vehicle-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.vehicle-title{font-size:16px;font-weight:850}.vehicle-sub{font-size:12px;color:var(--muted);margin-top:3px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;margin-top:13px}.card-kv{min-width:0}.card-kv span{display:block;font-size:9px;font-weight:800;letter-spacing:.06em;color:#8190a2;text-transform:uppercase}.card-kv strong{display:block;margin-top:3px;font-size:12px;overflow-wrap:anywhere}.toast{position:fixed;right:18px;bottom:18px;z-index:80;background:#132035;color:#fff;padding:12px 15px;border-radius:12px;box-shadow:var(--shadow);max-width:360px}
.empty{padding:48px 16px;text-align:center;color:var(--muted)}

.modal-backdrop{position:fixed;inset:0;background:rgba(14,27,45,.54);display:grid;place-items:center;padding:18px;z-index:80}.modal{width:min(680px,100%);max-height:min(820px,92vh);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.25);padding:22px}
.modal h2{margin:0 0 5px}.modal p{color:var(--muted);margin:0 0 18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.admin-strip{margin-top:16px;background:#10213a;color:#dce8f5;border-radius:18px;padding:13px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px}.admin-strip strong{color:#fff}.admin-strip small{color:#9cb0c5}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.btn.small{padding:9px 12px;font-size:12px}.btn.danger{background:#fff1f0;color:#b42318;border:1px solid #ffd2ce}

@media(max-width:1100px){
  .controls{grid-template-columns:repeat(2,minmax(0,1fr))}.search-field{grid-column:1/-1}.hero-grid{grid-template-columns:1fr}.summary{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:760px){
  .shell{width:min(100% - 20px,1380px)}.topbar-inner{height:70px}.brand img{width:40px;height:40px}.brand strong{font-size:16px}.brand span{display:none}.btn{padding:10px 12px;font-size:13px}
  .page{padding-top:14px}.hero-card{padding:21px}.hero-card h1{font-size:30px}.hero-card p{font-size:14px}.summary{grid-template-columns:repeat(2,1fr)}.summary .metric:first-child{grid-column:1/-1}
  .controls{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.field input,.field select{height:44px}.table-wrap{display:none}.mobile-cards{display:grid}.data-panel{overflow:visible}
  .table-head{position:sticky;top:70px;z-index:12;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}.server-pill{display:none}.card-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .top-actions .ghost{display:none}.hero-card h1{font-size:26px}.hero-card{padding:18px}.summary{padding:11px}.metric{min-height:78px;padding:13px}.metric strong{font-size:23px}
  .controls{grid-template-columns:1fr}.search-field{grid-column:auto}.card-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:0}.modal{border-radius:22px 22px 0 0;max-height:90vh}
  .admin-strip{align-items:flex-start;flex-direction:column}
}

.btn:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.15)}
body.admin-locked #addBtn,body.admin-locked #syncBtn{pointer-events:none;opacity:.45}
