:root{font-family:Inter,Arial,sans-serif;color:#20242b;background:#f5f6f8;font-size:14px;letter-spacing:0;--surface:#fff;--line:#dfe3e8;--muted:#616975;--accent:#bd2940;--hover:#f9e9ed;--ink:#20242b;color-scheme:light}:root[data-theme=dark]{--surface:#202226;--line:#3d4148;--muted:#b6bcc5;--hover:#442a30;--ink:#eeeef1;background:#17181b;color:var(--ink);color-scheme:dark}.staff-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.staff-form label{max-width:300px;flex:1;min-width:130px}.staff-form select{min-width:150px;max-width:240px}.staff-form .check{display:flex;align-items:center;flex:0;min-width:80px}.check input{width:auto}.invite-result{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.invite-result label{flex:1;min-width:220px}.enrollment{width:min(100%,380px)}.enrollment>button{margin-top:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;min-height:38px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover{background:var(--hover)}button:disabled{opacity:.55;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #198579;outline-offset:2px}input,textarea,select{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}label{display:grid;gap:7px;margin:14px 0}h1{font-size:22px;margin:0}h2{font-size:17px;margin:20px 0}p{overflow-wrap:anywhere}small,.muted{color:var(--muted)}.login,.loading{min-height:100dvh;display:grid;place-items:center;padding:24px}.login form{width:min(100%,380px)}.login button[type=submit],.login form>button{width:100%;background:var(--accent);color:#fff;border:0}.brand-image{width:56px;height:56px;object-fit:contain;margin-bottom:20px}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100dvh}aside{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:24px 16px;gap:28px}.brand{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.brand img{width:32px;height:32px;object-fit:contain}.brand strong{font-size:21px}.brand span{font-size:12px;color:var(--muted)}nav{display:grid;gap:6px}nav button{justify-content:flex-start;border:0;background:transparent;text-align:left}nav button.active{background:var(--hover);color:var(--accent);font-weight:600}.identity{margin-top:auto;overflow-wrap:anywhere;display:grid;gap:8px;font-size:12px}.shell>main{padding:28px;min-width:0}header,.actions{display:flex;align-items:center;justify-content:space-between;gap:10px}header{padding-bottom:24px;border-bottom:1px solid var(--line)}.icon{padding:8px;flex-shrink:0;width:38px;height:38px}.error{padding:12px;background:#ffe5e8;color:#8f1024;border-radius:6px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;padding:30px 0;border-bottom:1px solid var(--line)}.metrics div{display:grid;gap:12px}.metrics span{color:var(--muted);font-size:12px}.metrics strong{font-size:30px}.chart{height:170px;display:flex;align-items:flex-end;gap:4px;overflow:auto}.chart>div{flex:1;min-width:14px;display:grid;gap:8px;text-align:center}.chart span{display:block;background:#198579;border-radius:3px 3px 0 0}.chart small{font-size:9px}.toolbar{display:flex;gap:10px;margin:24px 0}.toolbar input{max-width:340px}.table-scroll{max-width:100%;overflow-x:auto;border-bottom:1px solid var(--line)}table{border-collapse:collapse;min-width:100%;text-align:left;font-size:12px}th{color:var(--muted);font-weight:600;white-space:nowrap}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}td{max-width:260px;min-width:90px;overflow-wrap:anywhere}td button{white-space:nowrap}.empty{text-align:center;padding:40px;color:var(--muted)}footer{display:flex;justify-content:flex-end;align-items:center;gap:14px;padding:20px 0}.overlay{position:fixed;inset:0;background:#0007;display:flex;justify-content:flex-end;z-index:10}.detail{background:var(--surface);width:min(100%,560px);height:100dvh;overflow-y:auto;padding:24px;box-shadow:-4px 0 24px #0002}.detail article{border-bottom:1px solid var(--line);padding:12px 0}.detail textarea{resize:vertical}.detail form>button{background:var(--accent);color:#fff}.detail .actions h2{margin:0}@media(max-width:760px){.shell{grid-template-columns:minmax(0,1fr)}aside{padding:14px;border-right:0;border-bottom:1px solid var(--line);gap:14px}nav{display:flex;overflow-x:auto}nav button{white-space:nowrap;flex-shrink:0}.identity{display:none}.shell>main{padding:16px}h1{font-size:20px}.metrics{gap:20px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}header{gap:8px}.chart{gap:2px}.chart>div{min-width:0}.chart small{font-size:8px;visibility:hidden}.chart>div:nth-child(5n) small{visibility:visible}}:root{--success:#137a52;--success-bg:#e3f5ec;--danger-bg:#ffe5e8;--danger:#8f1024;--warning:#8a5a00;--warning-bg:#fff2d6;--neutral-bg:#eef0f3}:root[data-theme=dark]{--success:#7fe0b2;--success-bg:#173a2b;--danger-bg:#4a1d25;--danger:#ffb3be;--warning:#ffd480;--warning-bg:#3d3015;--neutral-bg:#2b2e33}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--neutral-bg);color:var(--ink)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.success{background:var(--success-bg);color:var(--success)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badges{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.success{padding:12px;background:var(--success-bg);color:var(--success);border-radius:6px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{background:#a3172d;color:#fff;border-color:#a3172d}button.ghost{border:0;background:transparent;color:var(--muted);margin-top:6px}button.link{border:0;background:transparent;color:var(--accent);padding:0;min-height:0;text-decoration:underline}.login form>button[type=submit]{width:100%;background:var(--accent);color:#fff;border:0}.login form>button.ghost{width:100%;background:transparent;color:var(--muted);border:0}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.row label{flex:1;min-width:150px}.stack{display:grid;gap:8px;margin-bottom:12px}.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.action-form,.reauth,.codes{border:1px solid var(--line);border-radius:8px;padding:16px;margin:14px 0;background:var(--surface)}.action-form h3{margin:0 0 4px}.reauth p:first-child{display:flex;align-items:center;gap:8px;margin-top:0}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0}.facts div{display:grid;gap:4px}.facts dt{color:var(--muted);font-size:12px}.facts dd{margin:0;overflow-wrap:anywhere}.bio{white-space:pre-wrap;padding:12px;border-left:3px solid var(--line);color:var(--muted)}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:12px 0}.photos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;background:var(--neutral-bg)}.detail.wide{width:min(100%,760px)}.detail h3{margin:22px 0 10px;font-size:15px}.note{border-bottom:1px solid var(--line);padding:10px 0}.note p{white-space:pre-wrap;margin:6px 0 0}.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end}.message{border-radius:8px;padding:10px 12px;margin:8px 0;background:var(--neutral-bg)}.message.staff{background:var(--hover)}.message p{margin:4px 0 0;white-space:pre-wrap}label.inline{display:flex;align-items:center;gap:8px;margin:0}label.inline select{width:auto}.metrics .metric{display:grid;gap:12px;justify-items:start;justify-content:stretch;align-content:start;text-align:left;border:1px solid var(--line);border-radius:8px;padding:16px;min-height:0}.metrics .metric:disabled{opacity:1;cursor:default}.metrics .metric:disabled:hover{background:var(--surface)}.metric span{color:var(--muted);font-size:12px}.metric strong{font-size:28px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-top:20px}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent}.tabs button.active{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.codes ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;padding-left:20px}.codes code{font-size:14px;letter-spacing:.04em}@media(max-width:760px){.detail{padding:16px}.metrics .metric{padding:12px}.metric strong{font-size:22px}}
