:root{
  --ink:#152621;--forest:#1e4b3c;--forest-deep:#123028;--forest-soft:#2f6d58;
  --gold:#bf9a44;--gold-soft:#e9d9a8;--cream:#faf6ec;--paper:#fffdf7;--line:rgba(21,38,33,0.14);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Inter',-apple-system,sans-serif;font-size:14.5px;line-height:1.6;}
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}

.admin-shell{display:flex;min-height:100vh;}
.admin-sidebar{width:240px;flex:none;background:var(--forest-deep);color:#e9e3d2;padding:22px 0;position:sticky;top:0;height:100vh;overflow-y:auto;}
.admin-sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 20px 22px;border-bottom:1px solid rgba(243,239,225,.12);margin-bottom:14px;}
.admin-sidebar .brand img{width:34px;height:34px;background:#fff;border-radius:50%;padding:3px;}
.admin-sidebar .brand span{font-family:'Fraunces',serif;font-weight:600;font-size:14.5px;line-height:1.3;}
.admin-nav a{display:flex;align-items:center;gap:10px;padding:11px 20px;font-size:13.5px;color:#cfc9b4;font-weight:500;}
.admin-nav a svg{width:17px;height:17px;flex:none;opacity:.85;}
.admin-nav a:hover{background:rgba(243,239,225,.06);color:#fff;}
.admin-nav a.active{background:var(--forest);color:#fff;border-right:3px solid var(--gold);}
.admin-nav .group-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#8a8677;padding:16px 20px 6px;}

.admin-main{flex:1;min-width:0;}
.admin-topbar{background:var(--paper);border-bottom:1px solid var(--line);padding:14px 28px;display:flex;justify-content:space-between;align-items:center;}
.admin-topbar h1{font-size:18px;margin:0;color:var(--forest-deep);}
.admin-topbar .user{font-size:13px;color:#5b6a63;display:flex;align-items:center;gap:14px;}
.admin-topbar .user a{color:var(--forest);font-weight:600;}
.admin-content{padding:28px;}

.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px;}
.stat-card{background:var(--paper);border:1px solid var(--line);padding:20px 22px;}
.stat-card .n{font-family:'Fraunces',serif;font-size:28px;font-weight:600;color:var(--forest-deep);display:block;}
.stat-card .l{font-size:12.5px;color:#5b6a63;margin-top:4px;}
.stat-card a{font-size:12px;color:var(--forest);font-weight:600;display:inline-block;margin-top:10px;}

.panel{background:var(--paper);border:1px solid var(--line);padding:26px;}
.panel + .panel{margin-top:20px;}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.panel-head h2{font-size:16px;margin:0;color:var(--forest-deep);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-grid .full{grid-column:1/-1;}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--forest-deep);margin-bottom:6px;}
.field .hint{font-size:11.5px;color:#7a877f;margin-top:4px;}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],input[type=number],select,textarea{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:2px;font-family:inherit;font-size:13.5px;background:#fff;color:var(--ink);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--forest-soft);outline-offset:1px;}
textarea{resize:vertical;min-height:100px;}
input[type=file]{width:100%;padding:8px;border:1px dashed var(--line);border-radius:2px;background:#fff;font-size:12.5px;}

.btn{padding:10px 18px;font-size:13px;font-weight:600;border-radius:2px;display:inline-block;border:1px solid transparent;cursor:pointer;}
.btn-forest{background:var(--forest);color:#fff;}
.btn-forest:hover{background:var(--forest-deep);}
.btn-outline{border-color:var(--line);color:var(--forest-deep);background:#fff;}
.btn-outline:hover{border-color:var(--forest);}
.btn-danger{background:#8a1f1f;color:#fff;}
.btn-danger:hover{background:#6e1919;}
.btn-sm{padding:6px 12px;font-size:12px;}

table.data{width:100%;border-collapse:collapse;font-size:13px;}
table.data th,table.data td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
table.data th{background:var(--cream);font-size:11.5px;text-transform:uppercase;letter-spacing:.02em;color:var(--forest-soft);}
table.data tr:hover td{background:#fbfaf5;}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;}

.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;}
.alert{padding:13px 15px;border-radius:2px;font-size:13.5px;margin-bottom:18px;}
.alert-success{background:#dcf0e6;color:#1e4b3c;border:1px solid #b7dfc8;}
.alert-error{background:#f7d9d9;color:#8a1f1f;border:1px solid #eab6b6;}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--forest-deep);}
.login-box{background:var(--paper);padding:38px 34px;width:100%;max-width:380px;border:1px solid var(--line);}
.login-box h1{font-size:19px;color:var(--forest-deep);margin:14px 0 4px;}
.login-box .sub{font-size:13px;color:#5b6a63;margin-bottom:24px;}
.login-box .brand-mark{width:56px;height:56px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.login-box .brand-mark img{width:100%;height:100%;object-fit:contain;padding:5px;}
.empty-note{padding:26px;text-align:center;color:#7a877f;font-size:13.5px;border:1px dashed var(--line);}
.thumb-sm{width:52px;height:52px;object-fit:cover;border:1px solid var(--line);}

@media (max-width:900px){
  .admin-sidebar{position:fixed;left:-240px;transition:left .2s;z-index:50;}
  .admin-sidebar.open{left:0;}
  .stat-cards{grid-template-columns:repeat(2,1fr);}
  .form-grid{grid-template-columns:1fr;}
}
