:root{
  --background:48 33% 96%;
  --foreground:210 10% 23%;
  --card:0 0% 100%;
  --primary:45 53% 58%;
  --primary-foreground:210 10% 15%;
  --muted:210 40% 96.1%;
  --muted-foreground:215 20% 65.1%;
  --destructive:0 84.2% 60.2%;
  --destructive-foreground:0 0% 98%;
  --border:214 32% 91%;
  --input:214 32% 91%;
  --ring:45 53% 58%;
  --radius:.5rem;
}
*{box-sizing:border-box;border-color:hsl(var(--border))}
html,body{margin:0;padding:0;min-height:100%}
body{
  font-family:Inter,system-ui,sans-serif;
  background:hsl(var(--background));
  color:hsl(var(--foreground));
  line-height:1.5;
}
h1,h2,h3,.brand-title{font-family:"Space Grotesk",Inter,system-ui,sans-serif}
a{color:inherit}
.wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.card{
  background:hsl(var(--card));
  border:1px solid hsl(var(--border));
  border-radius:12px;
  box-shadow:0 1px 2px rgba(16,24,40,.04);
  width:100%;
  max-width:420px;
  padding:28px 28px 24px;
}
.logo{display:block;height:28px;width:auto;margin:0 auto 16px}
.card h1{text-align:center;font-size:1.75rem;margin:0 0 6px;font-weight:700;color:#1f2933}
.card .sub{text-align:center;color:hsl(var(--muted-foreground));margin:0 0 22px;font-size:.95rem}
label{display:block;font-size:.9rem;font-weight:600;margin:0 0 6px}
input[type=email],input[type=password],input[type=text],select,textarea{
  width:100%;border:1px solid hsl(var(--input));border-radius:8px;
  background:#faf8f3;padding:10px 12px;font:inherit;margin-bottom:14px;
}
input:focus,select:focus,textarea:focus{outline:2px solid hsl(var(--ring));outline-offset:1px;background:#fff}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;border:0;border-radius:8px;padding:11px 16px;font:inherit;font-weight:600;
  background:hsl(var(--primary));color:hsl(var(--primary-foreground));cursor:pointer;
}
.btn:hover{filter:brightness(.97)}
.btn-outline{background:#fff;border:1px solid hsl(var(--border));color:hsl(var(--foreground));width:auto}
.btn-danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));width:auto}
.alert{border-radius:8px;padding:10px 12px;margin:0 0 14px;font-size:.9rem}
.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert-ok{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.appbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 20px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));
  flex-wrap:wrap;
}
.appbar .logo{margin:0;height:24px}
.app{max-width:960px;margin:0 auto;padding:24px 20px 48px}
.muted{color:hsl(var(--muted-foreground));font-size:.9rem}
.table{width:100%;border-collapse:collapse;background:hsl(var(--card));border-radius:12px;overflow:hidden}
.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid hsl(var(--border));font-size:.9rem}
.table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground))}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){
  .form-row{grid-template-columns:1fr}
  .card{padding:22px 18px}
  .appbar{padding:12px}
}
.toast-stack{position:fixed;right:16px;bottom:16px;z-index:40;display:flex;flex-direction:column;gap:8px;max-width:360px}
.toast{background:#111827;color:#fff;padding:12px 14px;border-radius:8px;font-size:.9rem}
.notice{
  background:#fffbeb;border:1px solid #fde68a;color:#78350f;
  border-radius:12px;padding:16px 18px;margin:0 0 20px;
}
.table-wrap{overflow-x:auto;margin-bottom:28px}
.inline-form{display:inline}
.inline-form select{margin:0;width:auto;padding:6px 8px}
.actions{min-width:16rem}
.actions .btn{width:auto;margin:2px 0;padding:7px 10px;font-size:.8rem}
.row-inactive td{opacity:.7}
.alert-once{background:#111827;color:#fff;border:0}
.temp-pass{display:inline-block;margin:8px 0;font-size:1.15rem;letter-spacing:.04em;background:#fff;color:#111827;padding:6px 10px;border-radius:6px}

input[type=search],input[type=date],input[type=tel],input[type=number],textarea{
  width:100%;border:1px solid hsl(var(--input));border-radius:8px;
  background:#faf8f3;padding:10px 12px;font:inherit;margin-bottom:14px;
}
.app.wide{max-width:1120px}
.appbar{display:flex;align-items:center;gap:12px}
.appbar nav{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.event-switch{margin:0}
.event-switch select{margin:0;width:auto;max-width:260px;background:#fff}
.who{flex:1;min-width:10rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.pagehead-actions{display:flex;gap:8px;flex-wrap:wrap}
.pagehead-actions .btn{width:auto}
.panel{max-width:none;margin:0 0 18px;padding:18px 20px}
.panel-title{margin:0 0 12px;font-size:1.05rem}
.search-form{display:flex;gap:8px;align-items:flex-start}
.search-form input{margin:0;flex:1}
.search-form .btn{width:auto;white-space:nowrap}
.hint{margin:0;font-size:.8rem;color:hsl(var(--muted-foreground));font-weight:400}
.req{font-weight:500;color:hsl(var(--muted-foreground));font-size:.75rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.add-actions,.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.add-actions .btn,.row-actions .btn{width:auto}
.btn-dark{background:#1f2933;color:#fff}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:0 0 14px}
.filters label{margin:0}
.filters select,.filters input[type=date]{margin:0;width:auto;background:#fff}
.filters .btn{width:auto}
.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:999px;vertical-align:middle}
.badge-exp{background:#fef3c7;color:#92400e}
.badge-in{background:#dcfce7;color:#166534}
details.panel>summary{cursor:pointer;font-weight:650;font-family:"Space Grotesk",Inter,system-ui,sans-serif;font-size:1.05rem;list-style:none}
details.panel>summary::-webkit-details-marker{display:none}
details.panel>summary:after{content:" +";float:right;color:hsl(var(--muted-foreground))}
details[open].panel>summary{margin-bottom:12px}
details[open].panel>summary:after{content:" –"}
.result-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.result-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px solid hsl(var(--border))}
.result-actions{display:flex;gap:6px;align-items:center}
.result-actions .btn{width:auto;padding:8px 12px}
.table.compact th{text-transform:none;letter-spacing:0;width:14rem;color:hsl(var(--muted-foreground));font-weight:600;vertical-align:top}
.note-list{list-style:none;padding:0;margin:12px 0 0}
.note-list li{padding:10px 0;border-top:1px solid hsl(var(--border))}
.pager{margin-top:8px}
a strong{text-decoration:none}
@media (max-width:720px){
  .form-grid{grid-template-columns:1fr}
  .search-form{flex-direction:column}
  .search-form .btn{width:100%}
  .appbar .who{order:3;flex-basis:100%}
  .table th:nth-child(3),.table td:nth-child(3),
  .table th:nth-child(6),.table td:nth-child(6){display:none}
}
