:root{--ink:#17202a;--muted:#657282;--line:#d9e0e8;--panel:#fff;--bg:#f3f6f8;--primary:#0f766e;--primary-dark:#115e59;--danger:#b42318;--warn:#b54708;--ok:#067647;--unknown:#5d6673}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
input,select,textarea,button{font:inherit;max-width:100%}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:.62rem .7rem;background:#fff;color:var(--ink)}textarea{min-height:96px;resize:vertical}button,.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--primary);border-radius:6px;background:#fff;color:var(--primary);padding:.6rem .85rem;cursor:pointer;min-height:38px}button.primary,.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary-dark);text-decoration:none}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(135deg,#eef7f4,#f7f3ec)}.auth-card,.install-card{width:min(960px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:1.5rem;box-shadow:0 16px 45px rgba(20,30,45,.08)}.auth-card{max-width:420px}.install-card h1,.auth-card h1{margin-top:0}
.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#17202a;color:#fff;padding:1.2rem;position:sticky;top:0;height:100vh}.sidebar h1{font-size:1.25rem;margin:0 0 1.2rem}.sidebar nav{display:grid;gap:.35rem}.sidebar a{color:#dce8ef;padding:.7rem;border-radius:6px}.sidebar a.active,.sidebar a:hover{background:#22313f;color:#fff;text-decoration:none}.content{padding:1.25rem;min-width:0}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.topbar h2{margin:0}
.panel,.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1rem;margin-bottom:1rem}.cards{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:1rem}.metric strong{display:block;font-size:2rem}.metric span{color:var(--muted);text-transform:capitalize}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stack{display:grid;gap:.85rem}.grid-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:.85rem}.grid-form .full,.full{grid-column:1/-1}.filters,.table-actions,.inline-edit{display:flex;gap:.65rem;align-items:end;flex-wrap:wrap}.filters>*{flex:1 1 160px}.hint{color:var(--muted);font-size:.92rem}.check{display:flex;align-items:center;gap:.55rem}.check input{width:auto}
.vehicle-sections{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:1rem;margin-bottom:1rem}.section-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden}.section-card[open]{box-shadow:0 8px 20px rgba(20,30,45,.06)}.section-card summary{list-style:none;cursor:pointer;padding:1rem}.section-card summary::-webkit-details-marker{display:none}.section-summary{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.section-title{display:block;font-size:1rem;margin-bottom:.3rem}.section-copy{color:#425466;line-height:1.35;margin:.1rem 0}.summary-edit{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff;padding:.55rem .95rem;color:var(--ink);white-space:nowrap}.section-card form{padding:0 1rem 1rem}.section-actions{display:flex;gap:.65rem;flex-wrap:wrap;padding:0 1rem 1rem}
.flash{border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}.flash.success{background:#ecfdf3;color:#05603a;border:1px solid #abefc6}.flash.error{background:#fef3f2;color:#912018;border:1px solid #fecdca}.danger{border-color:#fecdca;background:#fff7f6}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.72rem}th{background:#f8fafc;color:#465464;font-size:.9rem}.actions{white-space:nowrap}.actions>*{margin-right:.35rem}
.badge{display:inline-flex;border-radius:999px;padding:.2rem .55rem;font-size:.82rem;font-weight:700}.badge-overdue{background:#fef3f2;color:var(--danger)}.badge-due7{background:#fff4e5;color:var(--warn)}.badge-due30{background:#fff8db;color:#854a0e}.badge-ok{background:#ecfdf3;color:var(--ok)}.badge-unknown{background:#eef2f6;color:var(--unknown)}
.status-board{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:1rem}.status-lane{background:#eaf0f4;border:1px solid var(--line);border-radius:8px;padding:.8rem;min-width:0}.status-lane-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.status-lane-head h3{margin:0;font-size:1rem}.status-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.8rem;margin-bottom:.7rem;display:grid;gap:.55rem}
.calendar-head{display:flex;align-items:center;justify-content:space-between}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:.6rem}.day{min-height:120px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.65rem}.day a{display:block;margin-top:.4rem;font-size:.88rem}
.checks{list-style:none;padding:0}.checks li{padding:.4rem .6rem;border-radius:6px;margin:.25rem 0}.checks .ok{background:#ecfdf3}.checks .bad{background:#fef3f2}.gallery a{display:inline-block;margin:.1rem .2rem}
.mini-edit{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;padding:.32rem .72rem;margin-top:.45rem;color:var(--ink);background:#fff}.mini-edit:hover{text-decoration:none;background:#f8fafc}
.inline-cell-edit{margin-top:.45rem}.inline-cell-edit summary{list-style:none;cursor:pointer}.inline-cell-edit summary::-webkit-details-marker{display:none}.compact-form{margin-top:.45rem}.compact-form input,.compact-form select,.compact-form textarea{padding:.48rem .58rem;font-size:.92rem}.compact-form textarea{min-height:72px}.inline-action{display:inline}
@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(2,1fr)}.cards,.two-col,.grid-form,.status-board,.vehicle-sections{grid-template-columns:1fr}.calendar-grid{grid-template-columns:1fr 1fr}.content{padding:.8rem}}
@media (max-width:560px){.sidebar nav{grid-template-columns:1fr}.topbar{display:block}.calendar-grid{grid-template-columns:1fr}th,td{padding:.55rem}.filters,.inline-edit{display:grid}}
