:root{
  --ink:#173d2d; --ink-2:#0d221a; --ink-3:#132d23; --ink-soft:#2d5a45; --butter:#eedc9f; --butter-soft:#f7efd6; --gold:#c9a24f; --gold-2:#b08a3a;
  --paper:#faf7f2; --paper-2:#f3ede2; --surface:#ffffff; --line:#e8e0cf; --line-2:#d8ceb8; --text:#1a2621; --muted:#5d6b64;
  --danger:#a1321f; --danger-bg:#fbeae6; --warn:#7a4b00; --warn-bg:#fff2cf; --ok:#1d6a41; --ok-bg:#e5f3ea; --info-bg:#eaf1ed;
  --r:16px; --r-sm:10px; --shadow:0 1px 2px rgba(13,34,26,.05),0 12px 32px -12px rgba(13,34,26,.18); --ease:cubic-bezier(.2,.7,.2,1);
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif; --display:'Cormorant Garamond',Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:16px;line-height:1.5;color:var(--text);background:var(--paper)}
img{max-width:100%;display:block}
h1,h2,h3{line-height:1.2;margin:0}
a{color:var(--ink)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.55rem 1.1rem;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-weight:600;font-size:.92rem;cursor:pointer;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,transform .18s var(--ease),box-shadow .18s}
.btn:hover{background:var(--butter-soft);border-color:var(--gold)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-gold{background:linear-gradient(135deg,#e2c06a,#c9a24f 55%,#b08a3a);border-color:transparent;color:#0d221a;font-weight:700;box-shadow:0 8px 24px -8px rgba(201,162,79,.6)}
.btn-gold:hover{background:linear-gradient(135deg,#ecce7c,#d4af5a 55%,#bb9442);border-color:transparent;transform:translateY(-1px);box-shadow:0 12px 28px -8px rgba(201,162,79,.7)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}
.btn-primary:hover{background:var(--ink-2);border-color:var(--ink-2);box-shadow:0 8px 20px -10px rgba(13,34,26,.6)}
.btn-danger{color:var(--danger);border-color:#e3b8ae}
.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger)}
.btn-ghost{border-color:transparent;background:transparent}
.btn-sm{min-height:36px;padding:.3rem .75rem;font-size:.875rem}
.icon{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
label.field{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem;font-weight:600;color:var(--muted)}
.input,label.field input,label.field select,label.field textarea{min-height:44px;padding:.55rem .75rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;color:var(--text);font-weight:400;font-size:1rem;width:100%}
label.field textarea{min-height:80px;resize:vertical}
.input:focus,label.field :is(input,select,textarea):focus{border-color:var(--ink);outline:2px solid rgba(23,61,45,.25);outline-offset:0}
.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap;border:1px solid transparent}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill-ok{background:var(--ok-bg);color:var(--ok)} .pill-warn{background:var(--warn-bg);color:var(--warn)} .pill-danger{background:var(--danger-bg);color:var(--danger)} .pill-muted{background:#efede6;color:var(--muted)} .pill-info{background:var(--info-bg);color:var(--ink)}
.alert{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem 1rem;border-radius:var(--r);border:1px solid;font-size:.95rem}
.alert strong{display:block}
.alert-ok{background:var(--ok-bg);border-color:#b7dcc5;color:#124a2c}
.alert-error{background:var(--danger-bg);border-color:#e7b9ae;color:#7c2414}
.alert-warn{background:var(--warn-bg);border-color:#ecd28e;color:#5c3900}
.alert-info{background:var(--info-bg);border-color:#c6d9ce;color:var(--ink-2)}
.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
dialog{border:0;border-radius:14px;padding:0;max-width:min(680px,calc(100vw - 24px));width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25);color:var(--text)}
dialog::backdrop{background:rgba(15,42,31,.45)}
::selection{background:var(--butter);color:var(--ink-2)}
body{-webkit-font-smoothing:antialiased}
