:root {
  --m-primary:#3b5334; --m-primary-dim:#2f4229; --m-primary-container:#526b4a;
  --m-on-primary:#ffffff; --m-on-primary-container:#ceeac1;
  --m-secondary:#95482b; --m-secondary-dim:#7a3a22; --m-secondary-container:#fc9a76;
  --m-on-secondary:#ffffff; --m-on-secondary-container:#753014;
  --m-tertiary:#4c4f34; --m-tertiary-dim:#3d3f2a; --m-tertiary-container:#64674a;
  --m-on-tertiary:#ffffff; --m-on-tertiary-container:#e3e5c1;
  --m-surface:#f0f4ef; --m-surface-dim:#d2d8d0; --m-surface-bright:#f0f4ef;
  --m-surface-container-lowest:#ffffff; --m-surface-container-low:#edf2eb;
  --m-surface-container:#e6ebe4; --m-surface-container-high:#e1e7de;
  --m-surface-container-highest:#dbe3d9; --m-surface-variant:#dbe3d9;
  --m-on-surface:#191d19; --m-on-surface-variant:#414941; --m-background:#f0f4ef;
  --m-outline:#707970; --m-outline-variant:#bfc9bf;
  --m-error:#ba1a1a; --m-error-dim:#931414; --m-error-container:#ffdad6;
  --m-on-error:#ffffff; --m-on-error-container:#93000a;
  --m-primary-fixed:#ceebc1; --m-on-primary-fixed:#0a2007;
  --m-secondary-fixed:#ffdbcf; --m-on-secondary-fixed:#380d00;
  --m-tertiary-fixed:#e3e5c1; --m-on-tertiary-fixed:#1a1d07;
  --m-radius-2xl:1rem; --m-radius-3xl:1.5rem; --m-radius-full:9999px;
  --m-shadow-ambient:0 12px 32px rgba(25,29,25,.06);
  --m-shadow-card:0 8px 30px rgba(0,0,0,.02);
  --m-shadow-card-hover:0 8px 40px rgba(0,0,0,.06);
}
* { box-sizing:border-box; }
body { font-family:'Inter',system-ui,-apple-system,sans-serif; background:var(--m-surface);
  color:var(--m-on-surface); -webkit-font-smoothing:antialiased; }
.font-display { font-family:'Playfair Display',serif; }
.panel { background:var(--m-surface-container-low); border-radius:var(--m-radius-3xl);
  padding:1.5rem; }
.card { background:var(--m-surface-container-lowest); border-radius:var(--m-radius-3xl);
  box-shadow:var(--m-shadow-card); padding:1.25rem; display:flex; flex-direction:column;
  gap:.75rem; height:100%; transition:box-shadow .18s ease, transform .18s ease; }
.card:hover { box-shadow:var(--m-shadow-card-hover); transform:translateY(-2px); }
.badge { display:inline-flex; align-items:center; gap:.25rem; padding:.2rem .6rem;
  border-radius:var(--m-radius-full); font-size:.72rem; font-weight:600; white-space:nowrap; }
.badge-a { background:var(--m-primary-fixed); color:var(--m-on-primary-fixed); }
.badge-b { background:var(--m-secondary-fixed); color:var(--m-on-secondary-fixed); }
.badge-c { background:var(--m-tertiary-fixed); color:var(--m-on-tertiary-fixed); }
.badge-d { background:var(--m-primary-container); color:var(--m-on-primary-container); }
.badge-muted { background:var(--m-surface-container-high); color:var(--m-on-surface-variant); }
.badge-err { background:var(--m-error-container); color:var(--m-on-error-container); }
.badge-ok { background:var(--m-primary-fixed); color:var(--m-on-primary-fixed); }
.relevance { font-family:'Playfair Display',serif; font-size:2rem; font-weight:700;
  line-height:1; }
.rel-high { color:var(--m-primary); } .rel-mid { color:var(--m-secondary); }
.rel-low { color:var(--m-on-surface-variant); }
.conf-low { color:var(--m-secondary); } .conf-high { color:var(--m-primary); }
.kpi { background:var(--m-surface-container-lowest); border-radius:var(--m-radius-2xl);
  box-shadow:var(--m-shadow-card); padding:1rem 1.25rem; }
.chip { padding:.35rem .85rem; border-radius:var(--m-radius-full); font-size:.78rem;
  font-weight:600; cursor:pointer; background:var(--m-surface-container-high);
  color:var(--m-on-surface-variant); transition:background .15s ease,color .15s ease;
  border:none; }
.chip:hover { background:var(--m-surface-container-highest); }
.chip[aria-pressed="true"] { background:var(--m-primary); color:var(--m-on-primary); }
.toggle { display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .85rem;
  border-radius:var(--m-radius-full); background:var(--m-surface-container-high);
  color:var(--m-on-surface-variant); font-size:.78rem; font-weight:600; cursor:pointer; }
.toggle input { accent-color:var(--m-primary); }
.search { background:var(--m-surface-container-low); border:none; border-radius:var(--m-radius-full);
  padding:.55rem 1rem; font-size:.9rem; color:var(--m-on-surface); min-width:15rem; }
.search:focus { outline:2px solid var(--m-primary); outline-offset:1px; }
.sel { background:var(--m-surface-container-low); border:none; border-radius:var(--m-radius-full);
  padding:.5rem 1rem; font-size:.85rem; font-weight:600; color:var(--m-on-surface); cursor:pointer; }
a.link { color:var(--m-primary); text-decoration:none; }
a.link:hover { text-decoration:underline; }
.clamp { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
  overflow:hidden; }
details > summary { cursor:pointer; list-style:none; }
details > summary::-webkit-details-marker { display:none; }
summary .chev { transition:transform .18s ease; display:inline-block; }
details[open] summary .chev { transform:rotate(90deg); }
table { width:100%; border-collapse:collapse; font-size:.82rem; }
th { text-align:left; padding:.5rem .6rem; color:var(--m-on-surface-variant);
  font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; }
td { padding:.5rem .6rem; vertical-align:top; }
tbody tr:nth-child(even) { background:var(--m-surface-container-low); }

/* --- sign-in ------------------------------------------------------------ */
.auth-shell { min-height:100vh; display:flex; align-items:center;
  justify-content:center; padding:2rem 1rem; }
.auth-card { width:min(24rem,100%); background:var(--m-surface-container-lowest);
  border-radius:var(--m-radius-3xl); box-shadow:var(--m-shadow-ambient);
  padding:2rem; display:flex; flex-direction:column; gap:.7rem; }
.auth-card h1 { margin:0; font-size:2.25rem; line-height:1.1; }
.auth-sub { color:var(--m-on-surface-variant); font-size:.9rem; margin:0 0 .6rem; }
.auth-label { font-size:.78rem; font-weight:600; color:var(--m-on-surface-variant); }
.auth-input { width:100%; background:var(--m-surface-container-low); border:none;
  border-radius:var(--m-radius-2xl); padding:.65rem .9rem; font:inherit;
  color:var(--m-on-surface); }
.auth-input:focus { outline:2px solid var(--m-primary); outline-offset:1px; }
.auth-btn { margin-top:.6rem; background:var(--m-primary); color:var(--m-on-primary);
  border:none; border-radius:var(--m-radius-full); padding:.65rem 1rem;
  font:inherit; font-weight:600; cursor:pointer; }
.auth-btn:hover { background:var(--m-primary-dim); }
.auth-error { background:var(--m-error-container); color:var(--m-on-error-container);
  border-radius:var(--m-radius-2xl); padding:.6rem .8rem; font-size:.85rem; margin:0; }
