:root{--color-canvas: #f7f7f3;--color-surface: #ffffff;--color-surface-raised: #efefeb;--color-ink: #171817;--color-ink-muted: #6b6f6a;--color-ink-subtle: #4c504b;--color-line: #d5d8d2;--color-line-strong: #b9beb7;--color-action: #1746d1;--color-action-pressed: #1239ad;--color-current: #ff6b4a;--color-selected: #fff0c7;--color-danger: #a3262b;--color-danger-surface: #ffe1e1;--color-success: #1f6b45;--color-success-line: #1f6b45;--color-success-surface: #e1f4ea;--color-on-strong: #ffffff;--color-nav-muted: #aeb3ac;--color-nav-label: #cfd2cc;--color-nav-active: #2b2e2b;--color-overlay: rgb(23 24 23 / 55%);--shadow-dialog: 0 18px 54px rgb(23 24 23 / 20%);--shadow-error-ring: 0 0 0 1px var(--color-danger);--shadow-current-marker: inset 3px 0 var(--color-current);--radius-control: 6px;--radius-dialog: 10px;--control-height: 44px}:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-ink);background:var(--color-canvas);scrollbar-color:var(--color-line-strong) var(--color-canvas);scrollbar-width:thin}*{box-sizing:border-box}body{margin:0;overflow-wrap:anywhere}button,input,textarea,select{font:inherit}button{min-height:var(--control-height);padding:9px 14px;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font-weight:700;cursor:pointer}button:hover{border-color:var(--color-action);color:var(--color-action-pressed)}button:active:not(:disabled){background:var(--color-surface-raised)}button:disabled{cursor:not-allowed;opacity:.5}button.primary,.invite-form .active{border-color:var(--color-action);background:var(--color-action);color:var(--color-on-strong)}button.primary:hover{background:var(--color-action-pressed);color:var(--color-on-strong)}button.primary:active:not(:disabled),.invite-form .active:active:not(:disabled){background:var(--color-action-pressed)}button.danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-strong)}input,textarea,select{width:100%;min-height:var(--control-height);padding:10px 12px;border:1px solid var(--color-line-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);caret-color:var(--color-action)}input::placeholder,textarea::placeholder{color:var(--color-ink-muted);opacity:1}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-danger);box-shadow:var(--shadow-error-ring)}textarea{min-height:112px;resize:vertical}label{display:grid;gap:6px}label>span{color:var(--color-ink-subtle);font-size:12px;font-weight:700}:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}::selection{background:var(--color-selected);color:var(--color-ink)}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--color-current);color:var(--color-ink);font-weight:900}.login{width:min(100% - 40px,440px);margin:12vh auto}.login h1{margin:24px 0 8px;font-size:42px;letter-spacing:-.03em}.login>p{max-width:34ch;margin:0 0 32px;color:var(--color-ink-subtle);line-height:1.6}.login form{display:grid;gap:16px;padding-top:24px;border-top:1px solid var(--color-line)}.status-message{margin:12px 0;padding:12px 14px;overflow-wrap:anywhere}.status-message--error{border:1px solid var(--color-danger);background:var(--color-danger-surface);color:var(--color-danger)}.status-message--success{border:1px solid var(--color-success-line);background:var(--color-success-surface);color:var(--color-success)}.status-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.status-actions .status-message{flex:1 1 280px}.field-error{color:var(--color-danger);font-size:12px;font-weight:700}.field-hint{color:var(--color-ink-muted);font-size:12px}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;min-height:100dvh}.shell aside{position:sticky;top:0;height:100vh;height:100dvh;padding:28px 20px;display:flex;flex-direction:column;background:var(--color-ink);color:var(--color-on-strong)}.admin-brand{min-width:0;display:flex;align-items:center;gap:12px;margin-bottom:40px}.admin-brand h1{margin:0;font-size:20px}.admin-brand small{display:block;margin-top:2px;color:var(--color-nav-muted)}.shell nav{display:grid;gap:2px}.shell aside button{border:0;background:transparent;color:var(--color-nav-label);text-align:left}.shell aside button:hover,.shell aside button.active{background:var(--color-nav-active);color:var(--color-on-strong)}.shell aside button.active{box-shadow:var(--shadow-current-marker)}.shell .logout{margin-top:auto;justify-self:end;color:var(--color-nav-muted)}.shell>section{width:min(100%,1320px);min-width:0;padding:clamp(32px,5vw,72px)}header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px;padding-bottom:22px;border-bottom:1px solid var(--color-line)}header h2{margin:0;font-size:clamp(32px,3vw,48px);letter-spacing:-.025em}header p{margin:8px 0 0;color:var(--color-ink-subtle)}.count{color:var(--color-ink-muted);font-variant-numeric:tabular-nums}.tools{display:grid;grid-template-columns:minmax(240px,1fr) minmax(132px,176px) minmax(144px,190px) max-content;align-items:end;gap:10px;margin-bottom:24px}.detail{margin-bottom:20px;padding:20px;border:1px solid var(--color-line);background:var(--color-surface)}.detail:focus-visible{outline-offset:-3px}.detail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.detail p,.detail small{display:block;margin:4px 0 0;color:var(--color-ink-subtle)}.table{min-width:0;border-top:1px solid var(--color-line)}.table>p{margin:0;padding:20px 0;color:var(--color-ink-muted)}.table-row{border-bottom:1px solid var(--color-line)}.table article{min-height:76px;display:grid;grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--color-line)}.table-row>article{border-bottom:0}.table strong,.table span,.table small{display:block}.table article>div{min-width:0}.table article>div>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table small,.table article>div>span{margin-top:4px;color:var(--color-ink-muted);overflow-wrap:anywhere}.row-id{color:var(--color-ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.detail--inline{margin:0 0 14px;border-color:var(--color-line-strong)}.detail__history{margin-top:18px;padding-top:16px;border-top:1px solid var(--color-line)}.detail__history>strong{font-size:13px}.detail__history ul{margin:10px 0 0;padding:0;list-style:none}.detail__history li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:9px 0;border-top:1px solid var(--color-line);font-size:13px}.detail__history li>span{min-width:0;color:var(--color-ink-subtle)}.detail__history li>strong{color:var(--color-success);font-variant-numeric:tabular-nums;white-space:nowrap}.detail__history li>strong.is-negative{color:var(--color-danger)}.detail__history li>small{grid-column:1 / -1;overflow-wrap:anywhere}.empty-state{display:grid;justify-items:start;gap:6px;padding:28px 0;color:var(--color-ink-subtle)}.empty-state>span{color:var(--color-ink-muted);font-size:13px}.empty-state>button{margin-top:8px}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:18px}.pagination span,.list-limit{color:var(--color-ink-muted);font-size:12px;font-variant-numeric:tabular-nums}.list-limit{margin:10px 0 0;text-align:right}.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;padding:24px;display:grid;place-items:center;background:var(--color-overlay)}.dialog{width:min(100%,560px);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:auto;padding:28px;border-radius:var(--radius-dialog);background:var(--color-surface);box-shadow:var(--shadow-dialog)}.dialog header{align-items:flex-start;margin-bottom:22px}.dialog header h2{font-size:28px}.dialog header>div{min-width:0}.dialog header p,.dialog header strong{overflow-wrap:anywhere}.dialog form{display:grid;gap:18px}.dialog-note{margin:0;padding:12px 14px;background:var(--color-selected);color:var(--color-ink-subtle)}.balance-preview{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:4px;padding:12px 14px;background:var(--color-selected);color:var(--color-ink-subtle);font-size:13px;font-variant-numeric:tabular-nums}.balance-preview span:last-child{text-align:right;font-weight:700;color:var(--color-ink)}.invite-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end;padding:24px 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);margin-bottom:24px}.invite-stop-confirm{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:14px 16px;border:1px solid var(--color-danger);background:var(--color-danger-surface)}.invite-stop-confirm p{margin:0;color:var(--color-danger);font-size:13px;line-height:1.55}.invite-stop-confirm .row-actions{flex:none}.muted{font-style:normal;font-size:12px;color:var(--color-danger);margin-left:6px}@media (max-width: 840px){.shell{grid-template-columns:1fr}.shell aside{position:static;height:auto;padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center}.admin-brand{margin:0}.shell nav{display:flex;overflow-x:auto}.shell .logout{margin:0}.shell>section{padding:32px 20px}.tools{grid-template-columns:minmax(0,1fr) minmax(132px,.5fr)}.tools>label:first-child{grid-column:1 / -1}.tools>button{align-self:end}.table article{grid-template-columns:104px minmax(0,1fr)}.table article>button{grid-column:2;justify-self:start}.invite-form{grid-template-columns:1fr}}@media (max-width: 560px){.shell aside{grid-template-columns:1fr auto}.shell nav{grid-column:1 / -1;order:3}header{align-items:flex-start;flex-wrap:wrap}.tools{grid-template-columns:1fr}.tools>label:first-child{grid-column:auto}.table article{grid-template-columns:1fr}.table article>button{grid-column:1}.dialog-backdrop{padding:12px;align-items:end}.dialog{max-height:calc(100dvh - 24px);padding:22px}.row-actions{justify-content:stretch}.row-actions button{flex:1 1 140px}.status-actions{align-items:stretch;flex-direction:column}.status-actions .status-message{flex-basis:auto;width:100%}.status-actions>button{width:100%}.detail__history li{grid-template-columns:1fr}.detail__history li>strong{white-space:normal}.pagination{justify-content:space-between}.pagination button{flex:1}.list-limit{text-align:left}.invite-stop-confirm{align-items:stretch;flex-direction:column}}@media (forced-colors: active){button,input,textarea,.detail,.status-message{forced-color-adjust:auto}.shell aside button.active{outline:2px solid CanvasText;outline-offset:-2px}}
