:root{
  --ink:#12201d;
  --paper:#eef0e4;
  --paper-raised:#ffffff;
  --line:#12201d1f;
  --c1:#1f8a63; --c1-dk:#146349; --c1-tint:#e6f5ee;
  --c2:#2f5fc4; --c2-dk:#213f8a; --c2-tint:#e8eefc;
  --c3:#d1483f; --c3-dk:#9c322b; --c3-tint:#fce9e7;
  --c4:#d98c1a; --c4-dk:#a4680f; --c4-tint:#fcefdb;
  --accent:#5fd8a4;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Inter',sans-serif; padding:0 0 60px;
}
.sheet{max-width:960px; margin:0 auto; padding:0 22px;}
.masthead-wrap{
  background:linear-gradient(160deg,#16261f 0%,#0f1a16 100%);
  padding:34px 0; margin-bottom:34px;
}
.masthead{max-width:960px; margin:0 auto; padding:0 22px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
.masthead h1{font-family:'Space Grotesk',sans-serif; color:#fbfbf7; margin:0; font-size:26px;}
.masthead .eyebrow{font-family:'IBM Plex Mono',monospace; color:var(--accent); font-size:12px; letter-spacing:.15em; text-transform:uppercase; margin:0 0 6px;}
.masthead nav a{color:#fbfbf7; text-decoration:none; font-family:'IBM Plex Mono',monospace; font-size:13px; background:#ffffff1a; padding:9px 16px; border-radius:100px; margin-left:8px;}
.masthead nav a:hover{background:#ffffff30;}

.card{
  background:var(--paper-raised); border:1px solid var(--line); border-radius:14px;
  padding:22px 24px; margin-bottom:20px; box-shadow:0 14px 30px -22px #12201d55;
}
.deck{display:flex; flex-direction:column; gap:22px;}
.slot-card{display:grid; grid-template-columns:172px 1fr; background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.slot-card .tab{padding:20px 18px; color:#fff; display:flex; flex-direction:column; justify-content:space-between;}
.slot-card:nth-of-type(4n+1) .tab{background:linear-gradient(165deg,var(--c1),var(--c1-dk));}
.slot-card:nth-of-type(4n+2) .tab{background:linear-gradient(165deg,var(--c2),var(--c2-dk));}
.slot-card:nth-of-type(4n+3) .tab{background:linear-gradient(165deg,var(--c3),var(--c3-dk));}
.slot-card:nth-of-type(4n+4) .tab{background:linear-gradient(165deg,var(--c4),var(--c4-dk));}
.slot-card .slot-index{font-family:'IBM Plex Mono',monospace; font-size:11px; opacity:.85;}
.slot-card .time{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:21px; margin-top:10px;}
.slot-card .time small{display:block; font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:11px; opacity:.85;}
.seatbar{margin-top:14px;}
.seatbar .label{font-family:'IBM Plex Mono',monospace; font-size:11px; opacity:.9; margin-bottom:5px;}
.seatbar .track{width:100%; height:6px; background:#ffffff33; border-radius:100px; overflow:hidden;}
.seatbar .fill{height:100%; background:#fff; border-radius:100px;}
.roster{padding:18px 22px;}
.roster ol{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:6px 20px;}
.roster li{display:flex; align-items:center; gap:10px; padding:8px 10px; background:#ffffffb0; border:1px solid #12201d14; border-radius:8px; font-size:14px; font-weight:600;}
.roster li.empty{opacity:.45; font-style:italic; font-weight:500; border-style:dashed;}
.roster li .n{font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; color:#fff; min-width:20px; height:20px; display:flex; align-items:center; justify-content:center; border-radius:50%; flex:none;}

table.admin-table{width:100%; border-collapse:collapse; margin-top:10px;}
table.admin-table th, table.admin-table td{padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; font-size:14px;}
table.admin-table th{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#12201d99;}

.btn{display:inline-block; padding:9px 16px; border-radius:100px; text-decoration:none; font-weight:600; font-size:13px; border:none; cursor:pointer; font-family:'Inter',sans-serif;}
.btn-primary{background:var(--ink); color:#fff;}
.btn-primary:hover{background:#0a130f;}
.btn-danger{background:var(--c3); color:#fff;}
.btn-danger:hover{background:var(--c3-dk);}
.btn-ghost{background:transparent; color:var(--ink); border:1px solid var(--line);}

form.stack{display:flex; flex-direction:column; gap:14px; max-width:420px;}
form.stack label{font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:#12201d99; margin-bottom:4px; display:block;}
form.stack input, form.stack select{
  width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--line);
  font-size:15px; font-family:'Inter',sans-serif; background:#fff;
}
.alert{padding:12px 16px; border-radius:8px; font-size:14px; margin-bottom:16px;}
.alert-error{background:var(--c3-tint); color:var(--c3-dk); border:1px solid var(--c3);}
.alert-success{background:var(--c1-tint); color:var(--c1-dk); border:1px solid var(--c1);}
.login-wrap{max-width:380px; margin:80px auto;}
