:root{
  --ink:#0B2027; --limestone:#EFE9DD; --harbor:#1F6F78; --stamp:#C1442B;
  --gold:#C9A227; --charcoal:#1B1B18; --paper:#FBF9F4;
  --display:'Space Grotesk',sans-serif; --body:'Work Sans',sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:var(--body); background:var(--limestone); color:var(--charcoal);}
a{color:inherit; text-decoration:none;}
h1,h2,h3{font-family:var(--display); color:var(--ink);}
.mono{font-family:var(--mono);}

/* Login */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;}
.login-card{background:var(--paper); border-radius:14px; padding:36px 32px; width:100%; max-width:360px; box-shadow:0 20px 40px -20px rgba(11,32,39,0.3);}
.login-card h1{font-size:20px; margin-bottom:4px;}
.login-card p.sub{font-size:13px; color:#6b6b62; margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:12.5px; margin-bottom:6px; color:#4b4b45;}
.field input, .field select, .field textarea{
  width:100%; padding:10px 12px; border:1px solid rgba(27,27,24,0.15); border-radius:8px;
  font-family:var(--body); font-size:14px; background:#fff;
}
.btn{display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; border-radius:999px; font-size:14px; font-weight:500; border:1px solid transparent; cursor:pointer;}
.btn-primary{background:var(--ink); color:var(--paper); width:100%;}
.btn-primary:hover{background:var(--harbor);}
.btn-danger{background:none; border:1px solid var(--stamp); color:var(--stamp);}
.btn-ghost{background:none; border:1px solid rgba(27,27,24,0.2);}
.error{background:rgba(193,68,43,0.08); color:var(--stamp); padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:16px;}
.notice{background:rgba(31,111,120,0.08); color:var(--harbor); padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:16px;}

/* App shell */
.app-shell{display:flex; min-height:100vh;}
.sidebar{width:210px; flex-shrink:0; background:var(--ink); color:var(--limestone); padding:24px 18px; display:flex; flex-direction:column; gap:4px;}
.sidebar .brand{font-family:var(--display); font-weight:700; font-size:17px; margin-bottom:26px; display:flex; align-items:center; gap:6px;}
.sidebar .brand span{color:var(--stamp);}
.sidebar a{padding:10px 12px; border-radius:8px; font-size:14px; opacity:0.8;}
.sidebar a:hover, .sidebar a.active{background:rgba(239,233,221,0.1); opacity:1;}
.sidebar .logout{margin-top:auto; opacity:0.6; font-size:12.5px;}
.main{flex:1; padding:32px 36px; max-width:1100px;}
.main h1{font-size:24px; margin-bottom:6px;}
.main p.sub{color:#6b6b62; font-size:14px; margin-bottom:28px;}

/* Stat cards */
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:32px;}
.stat-card{background:var(--paper); border-radius:12px; padding:16px 18px; border:1px solid rgba(27,27,24,0.06);}
.stat-card .num{font-family:var(--display); font-size:26px; color:var(--ink);}
.stat-card .label{font-size:12.5px; color:#6b6b62;}

/* Tabs */
.tabs{display:flex; gap:6px; margin-bottom:20px; border-bottom:1px solid rgba(27,27,24,0.1);}
.tabs a{padding:10px 16px; font-size:13.5px; color:#6b6b62; border-bottom:2px solid transparent;}
.tabs a.active{color:var(--ink); border-color:var(--stamp); font-weight:500;}

/* Table */
table{width:100%; border-collapse:collapse; background:var(--paper); border-radius:12px; overflow:hidden; font-size:13.5px;}
th, td{padding:11px 14px; text-align:left; border-bottom:1px solid rgba(27,27,24,0.06);}
th{background:rgba(31,111,120,0.06); color:var(--harbor); font-weight:600; font-size:12px;}
tr:last-child td{border-bottom:none;}
.badge{padding:3px 9px; border-radius:999px; font-size:11px; font-weight:500;}
.badge.open{background:rgba(31,111,120,0.12); color:var(--harbor);}
.badge.closed{background:rgba(193,68,43,0.1); color:var(--stamp);}
.badge.upcoming{background:rgba(201,162,39,0.15); color:var(--gold);}
.row-actions a{font-size:12.5px; margin-right:10px; color:var(--harbor);}
.row-actions a.delete{color:var(--stamp);}

/* Form panel */
.panel{background:var(--paper); border-radius:12px; padding:22px 24px; margin-bottom:24px; border:1px solid rgba(27,27,24,0.06);}
.panel h2{font-size:16px; margin-bottom:16px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.form-grid .full{grid-column:1 / -1;}
.checkbox-row{display:flex; align-items:center; gap:8px; margin-top:6px;}
.checkbox-row input{width:auto;}
.form-actions{display:flex; gap:10px; margin-top:18px;}

@media (max-width:800px){
  .app-shell{flex-direction:column;}
  .sidebar{width:100%; flex-direction:row; overflow-x:auto;}
  .sidebar .logout{margin-top:0; margin-left:auto;}
  .stat-grid{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
}
