:root{
  --ink:#1c1a1e; --ink-2:#242127; --ember:#c8410d; --amber:#f7941d; --amber-lt:#ffc266;
  --gold:#c9a24b; --ivory:#faf6ef; --ivory-2:#f2ebdd; --paper:#fffdf9;
  --text-dark:#2a2730; --text-mute:#6b6670; --line:rgba(42,39,48,.12);
  --grad-amber:linear-gradient(100deg,#ffcf85 0%,#f7941d 45%,#c8410d 100%);
  --grad-ink:linear-gradient(180deg,#232025 0%,#18161a 60%,#100f12 100%);
  --shadow-sm:0 2px 10px rgba(20,15,10,.08); --shadow-md:0 14px 34px rgba(20,15,10,.14);
  --radius:14px;
}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;background:var(--ivory);color:var(--text-dark);font-family:'Jost',Arial,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;margin:0 0 6px;color:var(--text-dark);}
a{color:var(--ember);text-decoration:none;}
a:hover{text-decoration:underline;}
p{color:var(--text-mute);line-height:1.6;margin:0 0 12px;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.container.narrow{max-width:460px;}

/* auth screens */
.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--grad-ink);padding:30px 20px;}
.auth-card{background:var(--paper);border-radius:20px;box-shadow:var(--shadow-md);padding:42px 38px;width:100%;max-width:440px;}
.auth-logo{display:flex;align-items:center;gap:12px;margin-bottom:26px;}
.auth-logo img{width:42px;}
.auth-logo strong{font-family:'Cormorant Garamond',serif;font-size:1.3rem;display:block;}
.auth-logo span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);}

/* nav */
.portal-nav{background:var(--grad-ink);color:#fff;padding:14px 0;}
.portal-nav .container{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.portal-brand{display:flex;align-items:center;gap:10px;color:#fff;}
.portal-brand img{width:34px;}
.portal-brand strong{font-family:'Cormorant Garamond',serif;font-size:1.15rem;}
.portal-links{display:flex;gap:6px;flex-wrap:wrap;}
.portal-links a{color:rgba(255,255,255,.72);padding:8px 14px;border-radius:100px;font-size:13.5px;text-decoration:none;transition:background .2s,color .2s;}
.portal-links a:hover,.portal-links a.active{background:rgba(255,255,255,.12);color:#fff;}
.portal-user{display:flex;align-items:center;gap:14px;font-size:13.5px;color:rgba(255,255,255,.75);}
.portal-user a{color:var(--amber-lt);}

.page-head{padding:38px 0 26px;}
.page-head .eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ember);}
.page-head h1{font-size:2rem;margin-top:6px;}

/* cards / tables */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm);margin-bottom:22px;}
.card h3{font-size:1.25rem;}
.grid{display:grid;gap:20px;}
.grid-2{grid-template-columns:1fr 1fr;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

.stat{padding:22px;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);}
.stat .num{font-family:'Cormorant Garamond',serif;font-size:2.1rem;font-weight:700;color:var(--ember);}
.stat .label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute);margin-top:4px;}

table{width:100%;border-collapse:collapse;font-size:14px;}
table th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-mute);padding:10px 12px;border-bottom:2px solid var(--line);}
table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle;}
table tr:hover td{background:var(--ivory-2);}
.table-wrap{overflow-x:auto;}

.badge{display:inline-block;padding:5px 12px;border-radius:100px;font-size:11.5px;font-weight:600;letter-spacing:.03em;}
.badge-amber{background:#fdeccb;color:#8a5300;}
.badge-green{background:#dcf3e2;color:#1c7c3c;}
.badge-grey{background:#eceaea;color:#6b6670;}
.badge-red{background:#fbdede;color:#a3271f;}

.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:100px;font-weight:600;font-size:13.5px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .2s,box-shadow .2s;}
.btn:hover{text-decoration:none;transform:translateY(-2px);}
.btn-primary{background:var(--grad-amber);color:#2a1204;box-shadow:0 8px 20px rgba(200,65,13,.25);}
.btn-dark{background:var(--ink);color:#fff;}
.btn-outline{background:transparent;border-color:var(--line);color:var(--text-dark);}
.btn-outline:hover{border-color:var(--ember);color:var(--ember);}
.btn-sm{padding:8px 14px;font-size:12.5px;}
.btn-danger{background:#a3271f;color:#fff;}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-mute);margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border-radius:9px;border:1.5px solid var(--line);background:var(--ivory);font-family:'Jost',sans-serif;font-size:14.5px;color:var(--text-dark);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 4px rgba(247,148,29,.12);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:600px){.form-row{grid-template-columns:1fr;}}

.alert{padding:14px 18px;border-radius:10px;margin-bottom:18px;font-size:13.5px;}
.alert-success{background:#dcf3e2;color:#1c7c3c;}
.alert-error{background:#fbdede;color:#a3271f;}
.alert-info{background:#fdeccb;color:#8a5300;}

.empty{padding:40px 20px;text-align:center;color:var(--text-mute);}
.muted{color:var(--text-mute);font-size:13px;}
.mt-0{margin-top:0;}
.flex-between{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.tag-row{display:flex;gap:8px;flex-wrap:wrap;}
footer.portal-footer{padding:40px 0;text-align:center;color:var(--text-mute);font-size:12.5px;}
