:root{--navy:#071A33;--ink:#0D2444;--ink2:#34507A;--muted:#5A6E8C;--line:#E2E8F2;--sky:#E9F1FF;--sky2:#D7E6FF;--royal:#1657E0;--royald:#1140AC;--orange:#F4831F;--paper:#F7F9FC;
--fd:"Space Grotesk","IBM Plex Sans",system-ui,sans-serif;--fb:"IBM Plex Sans",system-ui,sans-serif;--fm:"IBM Plex Mono",ui-monospace,monospace}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--sky) 0,var(--paper) 420px) no-repeat,var(--paper);color:var(--ink);font:16px/1.55 var(--fb)}
a{color:var(--royal)}
code{font-family:var(--fm);font-size:.92em;background:var(--sky);padding:1px 6px;border-radius:6px}
.bar{background:var(--navy);color:#fff;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px max(20px,calc((100% - 1000px)/2))}
.logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.logo b{font-family:var(--fd);font-size:20px;letter-spacing:-.02em}
.bar nav{display:flex;flex-wrap:wrap;gap:4px}
.bar nav a{color:#fff;text-decoration:none;padding:9px 14px;border-radius:999px;font-weight:500}
.bar nav a:hover{background:rgba(255,255,255,.14)}
.wrap{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:32px 20px 56px;display:flex;flex-direction:column;gap:20px}
.card{background:#fff;border-radius:22px;padding:28px;box-shadow:0 8px 24px -10px rgba(13,36,68,.14),0 2px 6px rgba(13,36,68,.04);display:flex;flex-direction:column;gap:14px;min-width:0}
.card.narrow{max-width:460px;width:100%;margin:24px auto 0}
.eyebrow{font-family:var(--fm);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--royal)}
h1,h2,h3{font-family:var(--fd);letter-spacing:-.02em;margin:0;color:var(--navy)}
h1{font-size:34px;line-height:1.1}h2{font-size:24px}h3{font-size:19px;margin-top:10px}
p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}
.form{display:flex;flex-direction:column;gap:14px}
.form.tight{gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 20px;align-items:end}
.grid2 .end{display:flex;justify-content:flex-end;align-items:flex-end}
label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px;color:var(--ink2)}
label small{font-weight:400;color:var(--muted)}
input[type=text],input[type=password],input:not([type]){font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:11px 13px;min-height:46px;width:100%}
input:focus-visible{outline:none;border-color:var(--royal);box-shadow:0 0 0 3px rgba(22,87,224,.18)}
.pwrow{display:flex;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border:0;border-radius:999px;background:var(--royal);color:#fff;font:600 15px var(--fb);cursor:pointer;text-decoration:none;align-self:flex-start;box-shadow:0 12px 26px -12px rgba(22,87,224,.7)}
.btn:hover{background:var(--royald)}.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.small{min-height:38px;padding:0 16px;font-size:14px;box-shadow:none}
.btn.ghostbtn{background:var(--sky);color:var(--royald)}
.btn.danger{background:#FDEEE2;color:#9A3A0A}.btn.danger:hover{background:#F9D8C2}
button.ghost{font:600 14px var(--fb);border:1.5px solid var(--sky2);background:var(--sky);color:var(--royald);border-radius:12px;padding:0 14px;cursor:pointer;white-space:nowrap}
button.ghost:hover{background:var(--sky2)}
.flash{padding:12px 16px;border-radius:14px;background:#E3F5EA;color:#14532D;font-weight:500}
.flash.err{background:#FDEEE2;color:#9A3A0A}
.chips{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0}
.chips legend{font-weight:600;font-size:14px;color:var(--ink2);margin-bottom:6px;padding:0}
label.chk{flex-direction:row;align-items:center;gap:0;font-weight:500;cursor:pointer}
label.chk input{position:absolute;opacity:0;width:1px;height:1px}
label.chk span{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--sky2);background:#fff;color:var(--ink2);transition:background .15s,border-color .15s}
label.chk:hover span{background:var(--sky)}
label.chk input:checked+span{background:var(--royal);border-color:var(--royal);color:#fff}
label.chk input:focus-visible+span{box-shadow:0 0 0 3px rgba(22,87,224,.25)}
label.inline{flex-direction:row;align-items:center;gap:8px;font-weight:500}
label.inline input{min-height:38px;padding:6px 10px;width:auto}
.trip-row{border:1.5px solid var(--line);border-radius:18px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.trip-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.trip-h b{font-family:var(--fd);font-size:19px}
.row-actions{display:flex;justify-content:flex-end}
details.more summary,details.act summary{cursor:pointer;color:var(--royal);font-weight:600;min-height:32px;display:inline-flex;align-items:center}
details.more{border-top:1px solid var(--line);padding-top:12px}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--fm);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
tr:last-child td{border-bottom:0}
.list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.list a{font-weight:600}
.foot{text-align:center;padding:20px;font:400 11px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:560px){.card{padding:20px}h1{font-size:28px}}

.btn,button.ghost{transition:background-color .18s,transform .18s,box-shadow .18s}.btn:not([disabled]):hover,button.ghost:hover{transform:translateY(-1px)}.btn.ghostbtn:hover{background:var(--sky2);color:var(--royald)}
