
:root{--bg:#f6f4f9;--card:#fff;--fg:#1d1b26;--muted:#625f70;--line:#e2deea;--brand:#4b2a7a;--brand-fg:#fff;--gold:#c9961a;--ok:#17613a;--ok-bg:#e4f4ea;--bad:#8c1d1d;--bad-bg:#fbe9e9;--warn-bg:#fff4d6;--warn:#7a5600}
@media (prefers-color-scheme:dark){:root{--bg:#14121b;--card:#1d1a27;--fg:#ece9f4;--muted:#a7a2b8;--line:#322e42;--brand:#b79af0;--brand-fg:#14121b;--gold:#e0b341;--ok:#7fd9a2;--ok-bg:#16301f;--bad:#f2a0a0;--bad-bg:#3a1b1b;--warn-bg:#3a2f12;--warn:#f0cd7a}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}h1{font-size:1.6rem;margin:0 0 .25rem}h2{font-size:1.15rem;margin:0 0 .6rem}h3{font-size:1rem;margin:0 0 .3rem}
header.top{background:var(--brand);color:var(--brand-fg);border-bottom:3px solid var(--gold)}
header.top .in{max-width:1080px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
header.top a{color:var(--brand-fg);text-decoration:none;padding:4px 2px;border-bottom:2px solid transparent}
header.top a:hover,header.top a[aria-current=page]{border-bottom-color:var(--gold)}
header.top .brand{font-weight:700;margin-right:auto;font-size:1.05rem}
header.top form{margin:0}header.top button{background:none;border:1px solid currentColor;color:inherit;border-radius:6px;padding:3px 10px;font:inherit;cursor:pointer}
main{max-width:1080px;margin:0 auto;padding:20px 16px 56px}
.sub{color:var(--muted);margin:0 0 1.2rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:0 0 16px}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.grow{flex:1}
label{display:block;font-weight:600;margin:12px 0 4px}label.inline{display:inline-flex;gap:8px;align-items:center;font-weight:400;margin:6px 0}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=date],input[type=time],input[type=number],input[type=search],select,textarea{width:100%;font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
textarea{min-height:90px}input[type=color]{width:56px;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:2px}
.btn,button.btn{display:inline-block;font:inherit;font-weight:600;padding:9px 16px;border:1px solid var(--brand);border-radius:8px;background:var(--brand);color:var(--brand-fg);cursor:pointer;text-decoration:none}
.btn.ghost{background:transparent;color:var(--brand)}.btn.bad{background:var(--bad);border-color:var(--bad);color:#fff}.btn.small{padding:4px 10px;font-size:.9rem}
.flash{padding:10px 14px;border-radius:8px;margin:0 0 16px}.flash.ok{background:var(--ok-bg);color:var(--ok)}.flash.err{background:var(--bad-bg);color:var(--bad)}.flash.warn{background:var(--warn-bg);color:var(--warn)}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.85rem;color:var(--muted);font-weight:600}
.pill{display:inline-block;font-size:.78rem;padding:1px 9px;border-radius:99px;background:var(--line);color:var(--fg);white-space:nowrap}
.pill.pending{background:var(--warn-bg);color:var(--warn)}.pill.approved{background:var(--ok-bg);color:var(--ok)}.pill.rejected,.pill.cancelled{background:var(--bad-bg);color:var(--bad)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:baseline}
.muted{color:var(--muted)}.small{font-size:.9rem}.right{text-align:right}
.cal{table-layout:fixed;border:1px solid var(--line)}.cal th{text-align:center;padding:6px 2px}
.cal td{height:92px;border:1px solid var(--line);padding:3px;overflow:hidden}.cal td.out{background:color-mix(in srgb,var(--line) 35%,transparent)}
.cal .d{font-size:.8rem;color:var(--muted)}.cal td.today .d{color:var(--brand);font-weight:700}
.chip{display:block;font-size:.74rem;line-height:1.25;padding:1px 5px;border-radius:4px;margin-top:2px;color:#fff;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip.pending{opacity:.6;outline:1px dashed currentColor}
@media (max-width:640px){.cal td{height:64px}.chip{font-size:.65rem}.cal th{font-size:.7rem}}
.seg{display:flex;gap:8px;flex-wrap:wrap}.seg label{margin:0;font-weight:400}
.qr svg{width:180px;height:180px;background:#fff;padding:6px;border-radius:8px}
code{background:var(--line);padding:1px 6px;border-radius:5px;word-break:break-all}
