:root{--ivory:#fbf8f2;--ink:#1d2b2a;--muted:#5f6c6a;--line:#e7e1d3;--teal:#0f4c4a;--gold:#e0a030;--rose:#c4456b;--violet:#6b4fa0;--sky:#2f8fb5;--green:#2e9a6a}
*{box-sizing:border-box}
body{margin:0;background:var(--ivory);color:var(--ink);font:15px/1.5 "DM Sans",system-ui,sans-serif}
h1,h2,.brand{font-family:"Playfair Display",Georgia,serif}
.top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 28px;background:linear-gradient(120deg,#0b3a38,#0f4c4a 60%,#1c5f58);color:#fff;border-bottom:3px solid var(--gold)}
.brand{font-size:26px;font-weight:700}.brand span{color:var(--gold)}
.top small{color:#cfe3e0}
main{max-width:1240px;margin:0 auto;padding:26px 20px 60px}
h1{font-size:32px;margin:0 0 4px}h2{margin:0 0 14px;font-size:21px}
.sub{color:var(--muted);margin:0 0 22px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;border-top:5px solid var(--c,var(--teal));box-shadow:0 4px 14px rgba(15,76,74,.06)}
.card small{color:var(--muted)}.card b{display:block;font:700 24px "Playfair Display",serif;color:var(--c,var(--teal))}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:22px;box-shadow:0 4px 14px rgba(15,76,74,.06)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:block;font-weight:600;font-size:14px}
input,select,button,textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);max-width:100%}
label>input,label>select,label>textarea{width:100%;margin-top:4px;font-weight:400}
button{background:var(--teal);color:#fff;border:0;cursor:pointer;font-weight:600;min-height:42px}
button:hover{background:#0b3a38}button:disabled{opacity:.5}
button.alt{background:#fff;color:var(--teal);border:1px solid var(--teal)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.tabs button{background:#fff;color:var(--teal);border:1px solid var(--line);border-radius:20px;padding:8px 18px}
.tabs button.on{background:var(--gold);color:#2a1d00;border-color:var(--gold)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse}
th{background:#f3eee2;font-size:13px;color:var(--muted)}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
tr.click{cursor:pointer}tr.click:hover{background:#faf6ec}
.n{text-align:right;font-variant-numeric:tabular-nums}
.b{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12.5px;font-weight:600;color:#fff;background:var(--c)}
.Requested{--c:var(--sky)}.Confirmed{--c:var(--violet)}.Completed,.Repeat{--c:var(--green)}.Rescheduled,.Lapsed{--c:#a8741a}.Cancelled,.Unpaid{--c:var(--rose)}.No-show{--c:#8a5a44}.New{--c:var(--sky)}
.empty{text-align:center;color:var(--muted);padding:28px}
.err{color:#b02a50}.ok{color:#1f7a52}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filters input{flex:1;min-width:200px}
.hist{margin:10px 0;padding:0;list-style:none}.hist li{padding:8px 0;border-bottom:1px solid var(--line)}
:focus-visible{outline:3px solid var(--gold)}
[hidden]{display:none!important}
@media(max-width:820px){.grid,.row2{grid-template-columns:1fr}.top{padding:14px 16px}main{padding:18px 14px}}
