:root { --ink:#1c2430; --mute:#5d6b7c; --line:#d5dbe3; --bg:#f5f6f8; --brand:#1f5f8b; --danger:#a12a2a; --ok:#e6f3ea; --warn:#fff5d6; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--ink); background:var(--bg); }
a { color:var(--brand); }
header nav { display:flex; flex-wrap:wrap; gap:.2rem .9rem; align-items:center; padding:.6rem 1rem; background:#fff; border-bottom:1px solid var(--line); }
header nav a { text-decoration:none; padding:.3rem 0; }
header nav a.on { font-weight:600; border-bottom:2px solid var(--brand); }
header nav form { margin-left:auto; }
main { max-width:1200px; margin:0 auto; padding:1rem; }
body.staff main, main:has(> form.form:only-of-type) { max-width:640px; }
h1 { font-size:1.4rem; margin:.4rem 0 1rem; } h2 { font-size:1.1rem; margin:1.4rem 0 .5rem; }
table { border-collapse:collapse; width:100%; background:#fff; }
th, td { padding:.45rem .6rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { font-size:.85rem; color:var(--mute); white-space:nowrap; } th a { color:inherit; text-decoration:none; }
td.r, th.r { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
tfoot td, tr.tot th, tr.tot td { font-weight:600; border-top:2px solid var(--ink); }
tr.canceled td, li.canceled { color:var(--mute); text-decoration:line-through; }
table.summary { max-width:460px; } table.summary th { font-size:1rem; color:var(--ink); font-weight:400; }
.scroll { overflow-x:auto; border:1px solid var(--line); border-radius:6px; }
.form .field { margin-bottom:.9rem; display:flex; flex-direction:column; gap:.25rem; }
.form label { font-weight:600; font-size:.92rem; } .field.optional > label { font-weight:400; color:var(--mute); }
.field:has(> input[type=checkbox]) { flex-direction:row-reverse; justify-content:flex-end; align-items:center; gap:.5rem; }
input, select, textarea, button, .btn { font:inherit; padding:.55rem .65rem; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); }
input:not([type=checkbox]), select, textarea { width:100%; max-width:100%; } input[type=checkbox] { width:1.25rem; height:1.25rem; }
.bar input, .bar select, .range input { width:auto; } .range { display:flex; gap:.3rem; } .range input { min-width:0; flex:1; }
button, .btn { background:var(--brand); border-color:var(--brand); color:#fff; cursor:pointer; text-decoration:none; display:inline-block; }
button.secondary, .btn.secondary { background:#fff; color:var(--brand); }
button.danger { background:#fff; color:var(--danger); border-color:var(--danger); }
button.link { background:none; border:none; color:var(--brand); padding:.3rem 0; }
form.inline { display:inline; }
.actions, .bar { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.8rem 0; }
.field.bad input, .field.bad select, .field.bad textarea { border-color:var(--danger); }
.error { color:var(--danger); } p.error, .notice, .flash, .banner { padding:.6rem .8rem; border-radius:6px; }
p.error { background:#fbe9e9; } .notice, .banner { background:var(--warn); } .flash { background:var(--ok); overflow-wrap:anywhere; }
small { color:var(--mute); } output { padding:.3rem 0; } .big { font-size:1.5rem; font-weight:600; } .pre { white-space:pre-wrap; }
.multi { display:flex; flex-direction:column; gap:.2rem; max-height:11rem; overflow:auto; border:1px solid var(--line); border-radius:6px; padding:.4rem; background:#fff; }
.multi label { font-weight:400; display:flex; gap:.4rem; align-items:center; } .multi input[type=search] { margin-bottom:.3rem; }
.filters details, .selection details { margin:.5rem 0; } .grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:.6rem 1rem; margin:.6rem 0; }
.grid .field { display:flex; flex-direction:column; gap:.2rem; } .grid label { font-size:.85rem; color:var(--mute); }
dl.sheet { display:grid; grid-template-columns:max-content 1fr; gap:.3rem 1rem; background:#fff; padding:.8rem; border:1px solid var(--line); border-radius:6px; }
dl.sheet dt { color:var(--mute); } dl.sheet dd { margin:0; }
ul.cards { list-style:none; padding:0; } ul.cards li { background:#fff; border:1px solid var(--line); border-radius:6px; padding:.7rem; margin-bottom:.5rem; }
ul.menu li { margin:.5rem 0; } .langs a { margin-right:.6rem; } .langs a.on { font-weight:600; }
.sites a { display:inline-block; margin:.2rem .6rem .2rem 0; } details small { overflow-wrap:anywhere; } .printonly { display:none; }
body.staff button, body.staff .btn { padding:.8rem 1rem; } body.staff .form button { width:100%; font-size:1.1rem; }
@media (max-width:640px) { header nav { font-size:.95rem; } main { padding:.7rem; } }
@media print { header, .noprint, .pager, .filters, .selection, .actions { display:none !important; } .printonly { display:block; } body { background:#fff; font-size:11px; } main { max-width:none; padding:0; } .scroll { border:0; overflow:visible; } a { color:inherit; text-decoration:none; } }
