:root{--ink:#14322e;--ink-2:#1d4a43;--body:#3f4a47;--muted:#7b8582;--paper:#f7f5f0;--card:#fff;--line:#e4e0d6;--line-soft:#eeebe3;--sand:#e7dcc4;--accent:#14322e;--accent-ink:#fff;--ok:#1f6b4d;--ok-bg:#e9f4ee;--ok-line:#c2e0d0;--warn:#8a6510;--warn-bg:#fdf4e3;--warn-line:#eed6a3;--danger:#97302f;--danger-bg:#fbeded;--danger-line:#eec7c6;--r:12px;--r-sm:8px;--shadow:0 1px 2px #14322e0d, 0 8px 24px -12px #14322e2e;--sidebar:236px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--body);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.55 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--ink)}h1,h2,h3{color:var(--ink);margin:0}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);flex:0 0 var(--sidebar);background:var(--ink);color:#dfe9e6;flex-direction:column;gap:26px;padding:20px 14px;display:flex}.sidebar .brand{padding:0 10px;text-decoration:none;display:block}.sidebar .brand b{color:#fff;letter-spacing:-.2px;font-size:19px;display:block}.sidebar .brand span{color:#93aaa4;letter-spacing:.9px;text-transform:uppercase;margin-top:3px;font-size:11.5px;display:block}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar nav a{border-radius:var(--r-sm);color:#c3d5d0;align-items:center;gap:10px;padding:9px 10px;font-size:14.5px;text-decoration:none;display:flex}.sidebar nav a:hover{color:#fff;background:#ffffff12}.sidebar nav a[aria-current=page]{color:#fff;background:#ffffff21;font-weight:600}.sidebar nav .ico{text-align:center;opacity:.9;width:18px;font-size:14px}.sidebar nav .count{background:var(--sand);color:var(--ink);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11.5px;font-weight:800}.sidebar .spacer{flex:1}.sidebar .external{border-radius:var(--r-sm);cursor:pointer;width:100%;font:inherit;text-align:left;border-radius:var(--r-sm);color:#93aaa4;background:0 0;border:0;border-top:1px solid #ffffff1a;align-items:center;gap:10px;margin-top:8px;padding:14px 10px 9px;font-size:14.5px;text-decoration:none;display:flex}.sidebar .external:hover{color:#fff}.sidebar .external .ico{text-align:center;opacity:.9;width:18px;font-size:14px}.sidebar .external .ext{opacity:.8;margin-left:auto;font-size:12px}.sidebar .external small{opacity:.75;font-size:11px;display:block}.sidebar .app-links{border-top:1px solid #ffffff1a;margin-top:8px;padding-top:6px}.sidebar .app-links .external{border-top:0;margin-top:0;padding-top:9px}.sidebar .app-links .app-prod{color:#f3c8a8}.sidebar .brand .env{letter-spacing:.9px;text-transform:uppercase;border-radius:999px;margin-top:8px;padding:2px 9px;font-size:11px;font-weight:800;display:inline-block}.sidebar .brand .env-dev{background:var(--sand);color:var(--ink)}.sidebar .brand .env-prod{background:var(--danger);color:#fff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar .me{border-top:1px solid #ffffff1f;padding:14px 10px 0;font-size:13px}.sidebar .me .who{color:#fff;overflow-wrap:anywhere}.sidebar .me .role{color:#93aaa4;margin-top:1px;font-size:12px}.sidebar .me form{margin-top:10px}.sidebar .me button{color:#dfe9e6;background:0 0;border:1px solid #ffffff38;width:100%;padding:7px;font-size:13px;font-weight:600}.sidebar .me button:hover{background:#ffffff1a}.content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding:26px 32px 18px;display:flex}.topbar h1{letter-spacing:-.3px;font-size:23px}.topbar .lede{color:var(--muted);max-width:68ch;margin:5px 0 0;font-size:13.5px}.page{padding:0 32px 56px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.card>.card-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:flex}.card>.card-head h2{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-size:14px}.card>.card-body{padding:18px}.stack{gap:18px;display:grid}.grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px}.stat .n{color:var(--ink);letter-spacing:-1px;font-size:30px;font-weight:800;line-height:1.1}.stat .k{color:var(--muted);margin-top:4px;font-size:12.5px}.stat .sub{color:var(--muted);margin-top:8px;font-size:11.5px}.stat.attention{border-color:var(--warn-line);background:var(--warn-bg)}.stat.attention .n{color:var(--warn)}.tag{border:1px solid var(--line);color:var(--body);white-space:nowrap;background:#fff;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-block}.tag-admin{background:var(--ink);color:#fff;border-color:var(--ink)}.tag-maintainer{color:var(--ink-2);background:#e6efec;border-color:#c9dcd7}.tag-driver{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}.tag-rider{border-color:var(--line);background:#f2efe8}.tag-ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}.tag-bad{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}.tag-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}.mono{color:var(--muted);overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:12px 18px}th{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);background:#fbfaf7;font-size:11.5px;font-weight:700}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fbfaf7}td.right,th.right{text-align:right}.cell-title{color:var(--ink);font-weight:600}.empty{text-align:center;color:var(--muted);padding:44px 18px;font-size:14px}.empty strong{color:var(--ink);margin-bottom:4px;font-size:15px;display:block}button,input,select,textarea{font:inherit;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink);background:#fff;padding:8px 11px}input::placeholder{color:#a9b2af}button{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);cursor:pointer;white-space:nowrap;font-weight:650}button:hover{background:var(--ink-2);border-color:var(--ink-2)}button.secondary{color:var(--ink);border-color:var(--line);background:#fff;font-weight:600}button.secondary:hover{background:#f4f2ec}button.danger{color:var(--danger);border-color:var(--danger-line);background:#fff}button.danger:hover{background:var(--danger-bg)}button.small,input.small,select.small{padding:6px 9px;font-size:13px}:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}form.inline{flex-wrap:wrap;align-items:center;gap:7px;margin:0;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar input[type=search]{min-width:220px}.field{margin-bottom:14px;display:block}.field>span{color:var(--ink);margin-bottom:5px;font-size:12.5px;font-weight:700;display:block}.field input,.field select,.field textarea{width:100%}.field .hint{color:var(--muted);margin-top:4px;font-size:12px;font-weight:400;display:block}details.actions{position:relative}details.actions>summary{cursor:pointer;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);-webkit-user-select:none;user-select:none;background:#fff;align-items:center;gap:6px;padding:6px 11px;font-size:13px;font-weight:600;list-style:none;display:inline-flex}details.actions>summary::-webkit-details-marker{display:none}details.actions>summary:hover,details.actions[open]>summary{background:#f4f2ec}details.actions .menu{border:1px solid var(--line);border-radius:var(--r-sm);background:#fbfaf7;gap:10px;min-width:260px;margin-top:8px;padding:12px;display:grid}details.actions .menu form{margin:0}details.actions .menu .sep{border-top:1px solid var(--line);margin:2px 0}.notice{border-radius:var(--r-sm);border:1px solid;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 15px;font-size:14px;display:flex}.notice-error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}.notice-ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}.notice-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}.notice code{background:#0000000f;border-radius:4px;padding:1px 5px;font-size:12.5px}.pager{border-top:1px solid var(--line-soft);color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;font-size:13px;display:flex}.pager a{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.pager a[aria-disabled=true]{opacity:.4;pointer-events:none}.login{grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.login .pitch{background:var(--ink);color:#dfe9e6;flex-direction:column;justify-content:center;gap:18px;padding:56px 52px;display:flex}.login .pitch b{color:#fff;letter-spacing:-.5px;font-size:28px}.login .pitch p{color:#a9c0ba;max-width:42ch;margin:0;font-size:14.5px;line-height:1.65}.login .pitch ul{color:#a9c0ba;margin:6px 0 0;padding-left:18px;font-size:14px;line-height:1.9}.login .form-side{justify-content:center;align-items:center;padding:40px 28px;display:flex}.login .form-side>div{width:100%;max-width:380px}.login h1{margin-bottom:4px;font-size:21px}.login .sub{color:var(--muted);margin:0 0 22px;font-size:13.5px}.quick{border-top:1px dashed var(--line);margin-top:22px;padding-top:20px}.quick .head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.quick .head b{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-size:12.5px}.quick p{color:var(--muted);margin:0 0 12px;font-size:12.5px}.quick .roles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quick .roles form{margin:0}.quick .roles button{width:100%;color:var(--ink);border-color:var(--line);background:#fff;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 12px;display:flex}.quick .roles button:hover{border-color:var(--sand);background:#f4f2ec}.quick .roles button .r{font-size:13.5px;font-weight:700}.quick .roles button .e{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;font-weight:400}footer.foot{color:var(--muted);padding:0 32px 32px;font-size:12px}@media (width<=900px){.login{grid-template-columns:1fr}.login .pitch{display:none}}@media (width<=780px){.app{flex-direction:column}.sidebar{flex-direction:row;flex:none;align-items:center;gap:14px;width:100%;padding:12px 16px;overflow-x:auto}.sidebar nav{flex-direction:row}.sidebar .spacer{display:none}.sidebar .me{border-top:none;border-left:1px solid #ffffff1f;align-items:center;gap:10px;margin-left:auto;padding:0 0 0 14px;display:flex}.sidebar .me .role,.sidebar .me .who{display:none}.sidebar .me form{margin:0}.topbar,.page,footer.foot{padding-left:16px;padding-right:16px}}
