:root{
  --navy:#002147; --navy-600:#13416F; --navy-300:#8B9EB7; --navy-200:#BDC9D9;
  --navy-100:#DFE5EE; --navy-50:#F1F4F8; --stone:#CEB290; --parchment:#F7F2E9;
  --ink:#002147; --ink-muted:#334E73; --ink-subtle:#6B7D94; --border:#E3E7EC;
}
*{ box-sizing:border-box; }
body{ margin:0; font-family:'Poppins',sans-serif; font-size:14px; color:var(--ink); background:var(--navy-50); }
h1,.tile .n{ font-variant-numeric:lining-nums; }
a{ color:inherit; text-decoration:none; }
header.top{ background:#fff; color:var(--navy); height:72px; padding:0 32px; border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:20px; }
header.top img{ height:34px; display:block; }
header.top .name{ font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; padding-left:20px; border-left:1px solid var(--border); }
header.top .sp{ flex:1; }
header.top .feed{ font-size:12px; color:var(--ink-subtle); }
.warn{ background:#FEF3F2; color:#B42318; border-bottom:1px solid #FECDCA; padding:10px 24px; font-size:13px; }
main{ max-width:1120px; margin:0 auto; padding:28px 16px 64px; }
h1{ font-family:'Cormorant Garamond',serif; font-weight:500; text-transform:uppercase; letter-spacing:.1em;
  font-size:30px; margin:0 0 4px; font-feature-settings:'lnum' 1; }
h2{ font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-subtle); margin:28px 0 12px; }
.sub{ color:var(--ink-muted); margin:0 0 20px; }
.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; }
.tile{ background:#fff; border:1px solid var(--border); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; }
a.tile:hover{ border-color:var(--navy-300); box-shadow:0 2px 10px rgba(0,33,71,.08); }
.tile .ph{ height:140px; background:var(--navy-100) center/cover no-repeat; }
.tile .bd{ padding:12px 14px 14px; }
.tile .n{ font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.tile .m{ font-size:12px; color:var(--ink-muted); margin-top:2px; }
.tile .facts{ display:flex; gap:12px; font-size:12px; color:var(--ink-subtle); margin-top:8px; flex-wrap:wrap; }
.tile.off{ opacity:.55; }
.chip{ display:inline-block; font-size:10px; font-weight:600; letter-spacing:.28em; text-transform:uppercase;
  padding:3px 10px; border-radius:9999px; background:var(--navy-50); color:var(--navy); }
.chip.sig{ background:var(--navy); color:#E4CB84; }
.actions{ display:flex; gap:8px; margin-top:12px; }
.btn{ font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; padding:8px 14px; border-radius:4px; border:1px solid var(--navy); color:var(--navy); background:#fff; transition:background .15s cubic-bezier(.2,.6,.2,1); }
.btn.primary{ background:var(--navy); color:#fff; }
.btn:hover{ background:var(--navy-50); }
.btn.primary:hover{ background:#0A2F5C; border-color:#0A2F5C; }
table{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--border); border-radius:6px; overflow:hidden; }
th{ text-align:left; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-subtle); background:var(--navy-50); padding:10px 12px; }
td{ padding:10px 12px; border-top:1px solid var(--border); }
td.r,th.r{ text-align:right; }
.scroll{ overflow-x:auto; }
.empty{ background:#fff; border:1px dashed var(--navy-300); border-radius:6px; padding:28px; color:var(--ink-muted); }
.search{ width:100%; max-width:360px; padding:9px 12px; border:1px solid var(--border); border-radius:4px; font:inherit; margin-bottom:16px; }
@media (max-width:640px){ header.top{ padding:0 16px; } header.top .feed{ display:none; } header.top img{ height:28px; } }
/* ---------- accounts & forms ---------- */
.usermenu{ display:flex; align-items:center; gap:14px; font-size:12px; }
.usermenu a{ color:var(--navy); }
.usermenu form{ margin:0; }
.linkbtn{ background:none; border:0; padding:0; font:inherit; color:var(--ink-subtle); cursor:pointer; text-decoration:underline; }
.ok{ background:#ECFDF3; color:#067647; border-bottom:1px solid #ABEFC6; padding:10px 24px; font-size:13px; }
.narrow{ max-width:420px; margin:40px auto; }
.form{ display:grid; gap:14px; margin-bottom:24px; }
.form.row{ grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); align-items:end; }
.form label{ display:grid; gap:6px; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); }
.form small{ font-size:12px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink-subtle); }
input,select,textarea{ font:14px 'Poppins',sans-serif; color:var(--navy); background:#fff; border:1px solid #C5CDD8; border-radius:4px; padding:9px 12px; width:100%; }
input:focus,select:focus,textarea:focus{ outline:3px solid rgba(139,158,183,.45); border-color:var(--navy-300); }
td input,td select{ padding:6px 8px; font-size:13px; }
form.inline{ display:flex; gap:6px; align-items:center; margin:0; }
form.inline input{ min-width:140px; }
.card{ background:#fff; border:1px solid var(--border); border-radius:6px; padding:18px; }
.cardhead{ font-size:14px; }
.muted{ color:var(--ink-subtle); font-weight:400; }
tr.off td{ opacity:.55; }
button.btn{ cursor:pointer; }
.picker{ border:1px solid var(--border); border-radius:6px; padding:12px; }
.picker legend{ font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); padding:0 4px; }
.thumbs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:8px; margin-top:8px; max-height:360px; overflow:auto; }
.thumb{ position:relative; display:block; cursor:pointer; text-transform:none; letter-spacing:0; font-weight:400; }
.thumb img{ width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:4px; border:3px solid transparent; }
.thumb input{ position:absolute; top:6px; left:6px; width:auto; }
.thumb input:checked + img{ border-color:var(--navy); }
.thumb.none{ display:flex; gap:8px; align-items:center; margin-top:8px; font-size:13px; }
.thumb.none input{ position:static; }
.mono{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:13px; }
.grid2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; }
.flag{ background:#FFFAEB; border:1px solid #FEDF89; color:#93370D; border-radius:4px; padding:8px 12px; font-size:13px; }
