:root{--bg: #f6f7f9;--panel: #ffffff;--ink: #1c2430;--muted: #647082;--line: #e3e7ec;--brand: #2f6f4f;--brand-ink: #ffffff;--danger: #b23b3b;--warn: #b7791f;--ok: #2f6f4f;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--brand)}h1,h2,h3{line-height:1.25;margin:0 0 .5rem}h1{font-size:1.5rem}h2{font-size:1.15rem}.container{max-width:960px;margin:0 auto;padding:1.5rem 1rem 4rem}.narrow{max-width:460px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem}label{display:block;font-weight:600;font-size:.85rem;margin:.75rem 0 .25rem}input,select,textarea{width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid rgba(47,111,79,.35);border-color:var(--brand)}textarea{min-height:72px;resize:vertical}button{font:inherit;font-weight:600;padding:.55rem .9rem;border-radius:8px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);cursor:pointer}button.secondary{background:#fff;color:var(--ink);border-color:var(--line)}button.danger{background:var(--danger);border-color:var(--danger)}button:disabled{opacity:.55;cursor:not-allowed}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1 1 160px}.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.spacer{flex:1}.topbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--panel);border-bottom:1px solid var(--line)}.topbar nav{display:flex;gap:.25rem}.topbar nav a{padding:.4rem .7rem;border-radius:7px;text-decoration:none;color:var(--muted);font-weight:600}.topbar nav a.active{background:var(--bg);color:var(--ink)}.brand-mark{font-weight:800;letter-spacing:-.02em}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid var(--line)}.badge.pending{background:#fff7e6;color:var(--warn);border-color:#f2d9a8}.badge.confirmed{background:#e8f3ec;color:var(--ok);border-color:#b9dcc6}.badge.declined,.badge.cancelled,.badge.suspended{background:#fbeaea;color:var(--danger);border-color:#eec3c3}.badge.active{background:#e8f3ec;color:var(--ok);border-color:#b9dcc6}.muted{color:var(--muted)}.small{font-size:.85rem}.error{background:#fbeaea;color:var(--danger);border:1px solid #eec3c3;padding:.6rem .75rem;border-radius:8px;margin:.75rem 0}.notice{background:#e8f3ec;color:var(--ok);border:1px solid #b9dcc6;padding:.6rem .75rem;border-radius:8px;margin:.75rem 0}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.5rem;margin-top:.5rem}.slot{text-align:center;padding:.5rem .25rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;font-weight:600}.slot[disabled]{opacity:.4;cursor:not-allowed}.slot.selected{border-color:var(--brand);background:#e8f3ec}.head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.badge.seated{background:#e8eefb;color:#2f4f8f;border-color:#bccbea}.badge.completed{background:var(--bg);color:var(--muted)}.badge.no_show{background:#fbeaea;color:var(--danger);border-color:#eec3c3}.topbar{flex-wrap:wrap}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.row{align-items:flex-start}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select{height:2.75rem}.file-button{display:inline-flex;align-items:center;cursor:pointer;font-weight:600;padding:.55rem .9rem;border-radius:8px;border:1px solid var(--line);background:#fff}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.file-button:focus-within{outline:2px solid var(--brand);outline-offset:2px}
