:root{
    --bg:#faf6ee; --surface:#ffffff; --surface-2:#f3ecdc;
    --ink:#2b2620; --ink-soft:#6b6152; --line:#e4d9c2;
    --accent:#7a3b2e; --accent-ink:#ffffff; --accent-soft:#f1e0d8;
    --green:#4b5e46; --gold:#b78a2e;
    --danger:#a4402f;
    --shadow: 0 1px 2px rgba(43,38,32,.06), 0 6px 20px rgba(43,38,32,.06);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
        --bg:#1c1815; --surface:#242019; --surface-2:#2c2721;
    --ink:#efe8db; --ink-soft:#b6ab97; --line:#3a332a;
          --accent:#e0a288; --accent-ink:#1c1815; --accent-soft:#3a2b25;
          --green:#9db496; --gold:#dcb35f; --danger:#e08a78;
          --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);
    color-scheme: dark;
}
}
*{box-sizing:border-box}
html,body{ margin:0; }
body{ background:var(--bg); color:var(--ink); font-family:'Inter',system-ui,sans-serif; }
.serif{ font-family:'Lora', Georgia, serif; }
h1,h2,h3,.heading{ font-family:'Lora', Georgia, serif; }
::selection{ background:var(--accent-soft); }
.card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.btn{ display:inline-flex; align-items:center; gap:.4em; padding:.55em 1.1em; border-radius:10px; font-weight:600; font-size:.92em; cursor:pointer; border:1px solid transparent; transition:.15s; white-space:nowrap; }
.btn:disabled{ opacity:.5; cursor:not-allowed; }
.btn-primary{ background:var(--accent); color:var(--accent-ink); }
.btn-primary:hover:not(:disabled){ filter:brightness(1.06); }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn-ghost:hover:not(:disabled){ background:var(--surface-2); }
.btn-danger{ background:transparent; color:var(--danger); border-color:var(--danger); }
.btn-danger:hover:not(:disabled){ background:var(--danger); color:#fff; }
.btn-sm{ padding:.35em .8em; font-size:.82em; border-radius:8px; }
input[type=text],input[type=email],input[type=password],input[type=date],textarea,select{
    width:100%; background:var(--bg); border:1px solid var(--line); color:var(--ink);
    border-radius:10px; padding:.6em .8em; font:inherit; font-size:.95em;
}
input:focus,textarea:focus,select:focus{ outline:2px solid var(--accent); outline-offset:1px; }
textarea{ resize:vertical; min-height:5em; }
.tab{ padding:.55em 1em; border-radius:10px; font-weight:600; font-size:.9em; color:var(--ink-soft); cursor:pointer; }
.tab.active{ background:var(--accent-soft); color:var(--accent); }
.tab:hover:not(.active){ background:var(--surface-2); }
.pill{ display:inline-flex; align-items:center; gap:.3em; padding:.2em .7em; border-radius:999px; font-size:.78em; font-weight:600; background:var(--surface-2); color:var(--ink-soft); }
.bullet-row{ display:flex; gap:.5em; align-items:flex-start; }
.scrollbar-thin::-webkit-scrollbar{ width:8px; height:8px; }
.scrollbar-thin::-webkit-scrollbar-thumb{ background:var(--line); border-radius:8px; }
@keyframes pulse-rec{ 0%,100%{opacity:1} 50%{opacity:.35} }
.rec-dot{ width:.6em; height:.6em; border-radius:999px; background:var(--danger); animation:pulse-rec 1.2s infinite; }
[hidden]{ display:none !important; }
.fade-in{ animation:fadeIn .25s ease; }
@keyframes fadeIn{ from{opacity:0; transform:translateY(4px)} to{opacity:1; transform:none} }
.error-text{ color:var(--danger); font-size:.85em; }
@media print{
    .no-print{ display:none !important; }
    body{ background:#fff; color:#000; }
    .print-page{ page-break-after:always; }
}
