/* ============================================================
   Anrothic — shared theme
   Deep navy · cool porcelain · sienna. Crisp, editorial, credible.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Instrument+Sans:wght@400;500;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --navy:#132132;
  --navy-2:#20344c;
  --navy-deep:#0c1622;
  /* Cool, crisp neutrals — no beige. */
  --cream:#eceff3;     /* page background */
  --cream-2:#f4f6f9;   /* subtle fills */
  --paper:#ffffff;     /* cards */
  /* Single warm accent, used sparingly against the cool base. */
  --gold:#c05f34;
  --gold-2:#d1774d;
  --gold-soft:#f3e2d8;
  --ink:#1a2431;
  --ink-2:#4c5a68;
  --ink-3:#828e9c;
  --line:#e0e5ec;
  --line-2:#cdd4dd;
  --ok:#2f7d59;
  --ok-bg:#e6f1ec;
  --warn:#9a6b2f;
  --warn-bg:#f6ecd9;
  --bad:#b23440;
  --bad-bg:#f7e7e8;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Instrument Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --shadow:0 1px 2px rgba(19,33,50,.05),0 10px 30px -14px rgba(19,33,50,.18);
  --radius:6px;
}

html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.01em;color:var(--navy)}

a{color:inherit}

/* ---- brand marks ---- */
.mark{display:inline-block;flex-shrink:0}
.wordmark{font-family:var(--serif);font-weight:600;letter-spacing:.34em;text-transform:uppercase;color:var(--navy);line-height:1}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.sub-mark{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3)}

/* ---- nav ---- */
.nav{background:rgba(250,247,240,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}
.nav-inner{max-width:1120px;margin:0 auto;padding:0 24px;height:66px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand .wordmark{font-size:19px}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{font-size:13px;font-weight:500;color:var(--ink-2);text-decoration:none;letter-spacing:.01em;transition:color .15s}
.nav-links a:hover{color:var(--navy)}
@media(max-width:760px){.nav-links a.hide-sm{display:none}}

/* ---- buttons ---- */
.btn{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.02em;padding:10px 20px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:all .15s;white-space:nowrap}
.btn-primary{background:var(--navy);color:var(--cream-2);border-color:var(--navy)}
.btn-primary:hover{background:var(--navy-2)}
.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn-gold:hover{background:#a44e28}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--line-2)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.btn-ghost{background:transparent;color:var(--ink-2);border-color:transparent;padding:8px 12px}
.btn-ghost:hover{color:var(--navy)}
.btn-sm{font-size:12px;padding:7px 14px}
.btn-block{width:100%;justify-content:center}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-danger{background:transparent;color:var(--bad);border-color:var(--line-2)}
.btn-danger:hover{border-color:var(--bad);background:var(--bad-bg)}

/* ---- layout ---- */
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 24px}
.section{padding:80px 0}
.hairline{height:1px;background:linear-gradient(90deg,transparent,var(--gold-2),transparent);border:none;max-width:60px;margin:18px 0}
.hairline.center{margin-left:auto;margin-right:auto}
.stack>*+*{margin-top:14px}

/* ---- cards ---- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-p{padding:26px}
.card-head{padding:20px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-title{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--navy)}
.card-body{padding:26px}

/* ---- forms ---- */
.field{margin-bottom:18px}
.field label{display:block;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);margin-bottom:7px}
.field .hint{font-weight:400;text-transform:none;letter-spacing:0;font-size:11px;color:var(--ink-3);margin-left:6px}
input,textarea,select{width:100%;background:var(--cream-2);border:1px solid var(--line-2);border-radius:var(--radius);padding:10px 13px;font-family:var(--sans);font-size:14px;color:var(--ink);outline:none;transition:border .15s,background .15s}
input:focus,textarea:focus,select:focus{border-color:var(--gold);background:#fff}
textarea{resize:vertical;line-height:1.6}
.row{display:flex;gap:8px}
.row>input{flex:1}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.grid-2{grid-template-columns:1fr}}

/* ---- toggle ---- */
/* Written as `label.toggle` so it wins over the `.field label` rule
   (equal specificity, declared later) — otherwise the toggle would fall
   back to display:block and its switch track would collapse. */
.toggle,.field label.toggle{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--cream-2);border:1px solid var(--line-2);border-radius:var(--radius);margin-bottom:0;text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--ink)}
.switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0;position:absolute}
.slider{position:absolute;inset:0;background:var(--line-2);border-radius:20px;transition:.2s;cursor:pointer}
.slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked+.slider{background:var(--gold)}
.switch input:checked+.slider::before{transform:translateX(20px)}

/* ---- tags ---- */
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;min-height:2px}
.tag{font-size:12px;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;background:var(--gold-soft);color:#8a4526;border:1px solid #e9cbba}
.tag.plain{background:var(--cream-2);color:var(--ink-2);border-color:var(--line-2)}
.tag button{background:none;border:none;cursor:pointer;font-size:13px;line-height:1;padding:0;color:inherit;opacity:.55}
.tag button:hover{opacity:1}

/* ---- pills / badges ---- */
.pill{font-size:11px;font-weight:600;letter-spacing:.05em;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:5px}
.pill-verified{background:var(--navy);color:var(--gold-2)}
.pill-ok{background:var(--ok-bg);color:var(--ok)}
.pill-warn{background:var(--warn-bg);color:var(--warn)}
.pill-locked{background:var(--cream-2);color:var(--ink-3);border:1px solid var(--line-2)}
.pill-gold{background:var(--gold-soft);color:#8a4526}

/* ---- tabs ---- */
.tabbar{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:28px;overflow-x:auto}
.tabbtn{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink-3);background:none;border:none;border-bottom:2px solid transparent;padding:12px 16px;cursor:pointer;white-space:nowrap;margin-bottom:-1px;transition:color .15s}
.tabbtn:hover{color:var(--navy)}
.tabbtn.on{color:var(--navy);border-bottom-color:var(--gold)}
.tabpane{display:none}
.tabpane.on{display:block}

/* ---- stars ---- */
.stars{display:inline-flex;gap:1px;color:var(--gold);font-size:15px;letter-spacing:1px}
.stars .off{color:var(--line-2)}
.rating-num{font-family:var(--serif);font-weight:600;color:var(--navy)}

/* ---- match checklist ---- */
.checks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chk{font-size:11px;font-weight:500;padding:4px 9px;border-radius:var(--radius);display:inline-flex;align-items:center;gap:5px}
.chk.pass{background:var(--ok-bg);color:var(--ok)}
.chk.fail{background:var(--bad-bg);color:var(--bad)}

/* ---- notice / toast ---- */
.notice{padding:12px 16px;border-radius:var(--radius);font-size:13px;margin-bottom:16px;border:1px solid}
.notice-ok{background:var(--ok-bg);color:var(--ok);border-color:#cfe2d5}
.notice-bad{background:var(--bad-bg);color:var(--bad);border-color:#e9cfc9}
.notice-info{background:var(--cream-2);color:var(--ink-2);border-color:var(--line-2)}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--navy);color:var(--cream-2);padding:12px 22px;border-radius:var(--radius);font-size:13px;font-weight:500;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:all .25s;z-index:200}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.bad{background:var(--bad)}

/* ---- misc ---- */
.muted{color:var(--ink-3)}
.small{font-size:12px}
.empty{text-align:center;padding:48px 24px;color:var(--ink-3)}
.empty .mark{opacity:.5;margin-bottom:12px}
.list>*+*{margin-top:14px}
.spinner{width:22px;height:22px;border:2px solid var(--line-2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.divider-lbl{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--ink-3);font-size:12px;letter-spacing:.04em}
.divider-lbl::before,.divider-lbl::after{content:'';flex:1;height:1px;background:var(--line)}
