:root{
  --navy:#1d1e56; --navy-deep:#131341;
  --sand:#f7f2e7; --sand-dim:#efe8d8;
  --green:#4f9b3a; --green-deep:#2f6e21;
  --orange:#d25527; --orange-deep:#a8401b;
  --charcoal:#262420; --stone:#7a756c; --cream:#fffaf1;
  --red:#c0392b;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:'Work Sans',sans-serif; background:var(--sand); color:var(--charcoal);}
a{color:inherit; text-decoration:none;}
h1,h2,h3{font-family:'Fraunces',serif; font-weight:600;}

.admin-shell{display:flex; min-height:100vh;}
.admin-sidebar{width:240px; background:var(--navy-deep); color:var(--cream); display:flex; flex-direction:column; padding:24px 0; flex-shrink:0;}
.admin-logo{font-family:'Fraunces',serif; font-size:20px; font-weight:700; padding:0 24px 24px;}
.admin-logo span{color:var(--orange); font-weight:500; font-size:13px; display:block;}
.admin-sidebar nav{display:flex; flex-direction:column; flex:1;}
.admin-sidebar nav a{padding:12px 24px; font-size:14px; font-weight:500; opacity:0.75; border-left:3px solid transparent;}
.admin-sidebar nav a:hover{opacity:1; background:rgba(255,255,255,0.04);}
.admin-sidebar nav a.active{opacity:1; border-left-color:var(--orange); background:rgba(255,255,255,0.06);}
.admin-user{padding:16px 24px 0; border-top:1px solid rgba(255,255,255,0.1); margin-top:16px; padding-top:16px; font-size:13px;}
.admin-user a{display:block; margin-top:6px; color:var(--orange); font-weight:600;}

.admin-main{flex:1; padding:36px 40px; max-width:1200px;}
.admin-mobile-toggle{display:none; margin-bottom:20px; background:var(--navy); color:var(--cream); border:none; padding:10px 16px; border-radius:5px; font-weight:600;}

.page-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; flex-wrap:wrap; gap:12px;}
.page-header h1{font-size:26px; color:var(--navy);}

.card{background:var(--cream); border-radius:8px; border:1px solid rgba(38,36,32,0.08); padding:24px; margin-bottom:24px;}
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:28px;}
.stat-card{background:var(--cream); border-radius:8px; border:1px solid rgba(38,36,32,0.08); padding:20px;}
.stat-card .num{font-family:'Fraunces',serif; font-size:28px; color:var(--navy); font-weight:700;}
.stat-card .lbl{font-size:13px; color:var(--stone); margin-top:4px;}

table{width:100%; border-collapse:collapse; font-size:14px;}
table th{text-align:left; background:var(--sand-dim); padding:10px 14px; font-weight:600; color:var(--navy); font-size:13px;}
table td{padding:10px 14px; border-top:1px solid rgba(38,36,32,0.08);}
table tr:hover td{background:rgba(38,36,32,0.02);}

.avail-table th, .avail-table td{padding:6px 4px; font-size:12px;}
.avail-cell{text-align:center; font-weight:600;}
.avail-cell a{display:block; padding:4px 0; border-radius:4px; color:inherit;}
.avail-ok{background:rgba(79,155,58,0.10); color:var(--green-deep);}
.avail-low{background:rgba(210,85,39,0.12); color:var(--orange-deep);}
.avail-none{background:rgba(192,57,43,0.14); color:var(--red);}
.avail-swatch{display:inline-block; width:14px; height:14px; border-radius:3px; vertical-align:middle; margin-right:4px;}
.avail-table tr:nth-child(even) td{filter:brightness(0.91);}

.btn{display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:5px; font-weight:600; font-size:14px; border:none; cursor:pointer; text-align:center;}
.btn-orange{background:var(--orange); color:var(--cream);}
.btn-navy{background:var(--navy); color:var(--cream);}
.btn-green{background:var(--green-deep); color:var(--cream);}
.btn-red{background:var(--red); color:var(--cream);}
.btn-sm{padding:6px 12px; font-size:12.5px;}
.btn-outline{background:transparent; border:1px solid rgba(38,36,32,0.2); color:var(--charcoal);}

.badge{display:inline-block; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600;}
.badge-pending{background:rgba(210,85,39,0.12); color:var(--orange-deep);}
.badge-confirmed{background:rgba(79,155,58,0.12); color:var(--green-deep);}
.badge-cancelled{background:rgba(192,57,43,0.1); color:var(--red);}
.badge-completed{background:rgba(29,30,86,0.08); color:var(--navy);}

.form-field{margin-bottom:16px;}
.form-field label{display:block; font-size:13px; font-weight:600; color:var(--navy); margin-bottom:6px;}
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:10px 12px; border-radius:5px; border:1px solid rgba(38,36,32,0.2);
  font-family:'Work Sans',sans-serif; font-size:14px; background:#fff;
}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-row-3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px;}

.login-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--navy);}
.login-card{background:var(--cream); padding:40px; border-radius:10px; width:360px;}
.login-card h1{color:var(--navy); font-size:22px; margin-bottom:20px;}
.alert{padding:12px 16px; border-radius:6px; font-size:14px; margin-bottom:18px;}
.alert-error{background:rgba(192,57,43,0.1); color:var(--red);}
.alert-success{background:rgba(79,155,58,0.12); color:var(--green-deep);}

/* Calendar grid */
.cal-month{margin-bottom:36px;}
.cal-month h3{margin-bottom:12px; color:var(--navy);}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.cal-day{aspect-ratio:1; border-radius:5px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:12px; cursor:pointer; border:2px solid transparent; user-select:none;}
.cal-day.blank{cursor:default;}
.cal-day.selected{border-color:var(--navy);}
.cal-day .d{font-weight:600;}
.cal-legend{display:flex; gap:16px; margin-bottom:20px; flex-wrap:wrap;}
.cal-legend span{display:inline-flex; align-items:center; gap:6px; font-size:13px;}
.cal-legend i{width:14px; height:14px; border-radius:3px; display:inline-block;}
.month-tabs{display:flex; gap:4px; margin-bottom:20px; flex-wrap:wrap; border-bottom:1px solid rgba(38,36,32,0.1); padding-bottom:14px;}
.month-tab{padding:8px 16px; border-radius:20px; border:1px solid rgba(38,36,32,0.15); background:var(--cream); color:var(--stone); font-size:13px; font-weight:600; cursor:pointer;}
.month-tab:hover{border-color:var(--navy);}
.month-tab.active{background:var(--navy); color:var(--cream); border-color:var(--navy);}
.cal-weekday-row{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:6px;}
.cal-weekday-row span{text-align:center; font-size:11px; font-weight:600; color:var(--stone); text-transform:uppercase;}

@media (max-width:900px){
  .admin-sidebar{position:fixed; left:-240px; top:0; bottom:0; z-index:50; transition:left 0.2s ease;}
  .admin-sidebar.open{left:0;}
  .admin-mobile-toggle{display:block;}
  .admin-main{padding:20px;}
  .stat-grid{grid-template-columns:1fr 1fr;}
  .form-row, .form-row-3{grid-template-columns:1fr;}
  .month-tabs{flex-wrap:nowrap; overflow-x:auto; padding-bottom:10px;}
  .month-tab{flex-shrink:0;}
}

/* Stand picker (add-line form) */
.stand-picker-toggle{padding:8px 16px; border-radius:20px; border:1px solid rgba(38,36,32,0.15); background:var(--cream); color:var(--stone); font-size:13px; font-weight:600; cursor:pointer; margin-top:12px;}
.stand-picker-toggle:hover{border-color:var(--orange); color:var(--orange);}
.stand-grid{display:flex; gap:8px; flex-wrap:wrap;}
.stand-chip{display:inline-flex; align-items:center; gap:6px; background:var(--cream); border:1px solid rgba(38,36,32,0.15); border-radius:20px; padding:6px 12px; font-size:13px; cursor:pointer;}
.stand-chip:has(input:checked){background:var(--navy); color:var(--cream); border-color:var(--navy);}
.stand-chip input{width:auto; margin:0;}
