:root{
  --olive-deep:#37451F; --olive:#59703C; --gold:#C7A44A; --gold-soft:#E4D4A7;
  --ivory:#FBF7EE; --ivory-warm:#F3ECDC; --ink:#24301A; --danger:#B34A3C; --green:#3d7a4f;
}
*{ box-sizing:border-box; }
html, body{ overflow-x:hidden; max-width:100%; }
body{ margin:0; font-family:'Jost', system-ui, sans-serif; background:var(--ivory-warm); color:var(--ink); }
h1,h2,h3{ font-family:'Cormorant Garamond', serif; color:var(--olive-deep); margin:0 0 6px; }
a{ color:var(--olive-deep); }

/* Auth pages */
.auth-page{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.auth-card{ background:#fff; border:1px solid rgba(199,164,74,.3); border-radius:18px; padding:36px 30px; max-width:380px; width:100%; box-shadow:0 20px 50px -30px rgba(55,69,31,.5); }
.auth-card h1{ font-size:28px; text-align:center; }
.auth-card .sub{ text-align:center; font-size:13px; color:var(--olive); margin-bottom:20px; }
.auth-card form{ display:flex; flex-direction:column; gap:14px; margin-top:16px; }
.auth-card label{ font-size:12px; color:var(--olive); display:flex; flex-direction:column; gap:6px; }
.auth-card input{ padding:11px 13px; border-radius:10px; border:1px solid #dcd6c2; font-size:14px; font-family:inherit; }
.auth-card .error{ background:#fdeceb; color:var(--danger); padding:10px 12px; border-radius:10px; font-size:13px; }
.auth-card .alt{ text-align:center; font-size:12.5px; margin-top:18px; color:var(--olive); }
.btn-primary{ padding:12px; border-radius:30px; background:var(--olive-deep); color:#fff; border:none; font-size:13px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.btn-primary:hover{ background:#2c3a17; }

/* Dashboard shell */
.dash-header{ background:var(--olive-deep); color:var(--ivory); padding:14px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.dash-header .brand{ font-family:'Cormorant Garamond', serif; font-size:20px; color:var(--gold-soft); }
.dash-nav{ display:flex; gap:4px; flex-wrap:wrap; }
.dash-nav a{ color:var(--ivory); text-decoration:none; font-size:12.5px; padding:8px 12px; border-radius:20px; }
.dash-nav a.active, .dash-nav a:hover{ background:rgba(228,212,167,.15); color:var(--gold-soft); }
.dash-header .logout{ font-size:12px; color:var(--gold-soft); opacity:.8; }

.dash-body{ max-width:960px; margin:0 auto; padding:28px 20px 80px; }
.card{ background:#fff; border:1px solid rgba(199,164,74,.25); border-radius:16px; padding:22px 20px; margin-bottom:20px; box-shadow:0 10px 30px -24px rgba(55,69,31,.5); overflow-x:auto; }
.card h2{ font-size:22px; }

.flash{ padding:12px 16px; border-radius:10px; font-size:13.5px; margin-bottom:18px; }
.flash.success{ background:#e8f3ea; color:var(--green); }
.flash.error{ background:#fdeceb; color:var(--danger); }

table{ width:100%; border-collapse:collapse; font-size:13.5px; }
th, td{ text-align:left; padding:9px 10px; border-bottom:1px solid #eee2c2; }
th{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--olive); }

.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.field label{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--olive); }
.field input, .field select, .field textarea{ padding:10px 12px; border-radius:10px; border:1px solid #dcd6c2; font-size:14px; font-family:inherit; width:100%; max-width:100%; box-sizing:border-box; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:480px){
  .field-row{ grid-template-columns:1fr; }
}
.btn{ padding:9px 16px; border-radius:24px; font-size:12px; letter-spacing:.05em; text-transform:uppercase; border:1px solid var(--olive-deep); color:var(--olive-deep); background:none; cursor:pointer; }
.btn-solid{ background:var(--olive-deep); color:#fff; }
.btn-danger{ border-color:var(--danger); color:var(--danger); }
.btn-sm{ padding:5px 10px; font-size:10.5px; }

.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; }
.stat-card{ background:var(--ivory); border-radius:14px; padding:16px; text-align:center; }
.stat-card .num{ font-family:'Jost', sans-serif; font-size:32px; color:var(--olive-deep); font-weight:700; font-variant-numeric:lining-nums tabular-nums; }
.stat-card .label{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--olive); margin-top:4px; }

.badge{ display:inline-block; padding:2px 9px; border-radius:12px; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; }
.badge.yes{ background:#e8f3ea; color:var(--green); }
.badge.no{ background:#fdeceb; color:var(--danger); }
.badge.maybe{ background:#fbf1de; color:#8a6d1f; }

.color-row{ display:flex; align-items:center; gap:10px; }
.color-row input[type=color]{ width:40px; height:40px; border:none; border-radius:8px; padding:0; }
