:root{--bg-0: oklch(.155 .006 60);--bg-1: oklch(.185 .007 60);--bg-2: oklch(.215 .008 60);--bg-3: oklch(.255 .008 60);--bg-sidebar: oklch(.135 .005 60);--line-1: oklch(.27 .008 60);--line-2: oklch(.33 .009 60);--fg-0: oklch(.97 .005 80);--fg-1: oklch(.85 .006 70);--fg-2: oklch(.65 .008 65);--fg-3: oklch(.5 .008 60);--accent: oklch(.78 .16 65);--accent-fg: oklch(.18 .04 60);--accent-soft: oklch(.78 .16 65 / .14);--accent-line: oklch(.78 .16 65 / .35);--success: oklch(.78 .14 155);--warn: oklch(.8 .14 80);--danger: oklch(.7 .18 25);--info: oklch(.74 .12 240);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--row-h: 52px;--shadow-1: 0 1px 0 oklch(1 0 0 / .04) inset, 0 0 0 1px var(--line-1);--shadow-pop: 0 16px 40px -12px rgb(0 0 0 / .55), 0 2px 8px rgb(0 0 0 / .35);--sidebar-w: 240px;--sidebar-w-collapsed: 64px;--font-sans: "Geist", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-0);color:var(--fg-0);font-size:13.5px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11";letter-spacing:-.005em}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer;padding:0}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns .22s ease}.app.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.app.unauthed{grid-template-columns:1fr}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--line-1);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}.sidebar__brand{height:56px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line-1);flex-shrink:0}.brand__mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),oklch(.65 .18 45));display:grid;place-items:center;color:var(--accent-fg);font-weight:700;font-size:14px;letter-spacing:-.02em;flex-shrink:0}.brand__name{font-weight:600;font-size:14.5px;letter-spacing:-.01em}.brand__sub{font-size:11px;color:var(--fg-2);margin-left:auto;padding:2px 6px;border:1px solid var(--line-1);border-radius:4px;font-family:var(--font-mono);letter-spacing:0}.sidebar__section{padding:16px 12px 4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:500}.collapsed .sidebar__section{padding:12px 0 4px;text-align:center}.collapsed .sidebar__section span{display:none}.sidebar__nav{padding:4px 8px;display:flex;flex-direction:column;gap:1px}.nav-item{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--fg-1);font-size:13px;font-weight:450;cursor:pointer;transition:background .12s,color .12s;position:relative;text-align:left;width:100%}.nav-item:hover,.nav-item.active{background:var(--bg-2);color:var(--fg-0)}.nav-item.active:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:2px;height:16px;background:var(--accent);border-radius:2px}.nav-item__icon{width:16px;height:16px;flex-shrink:0;color:var(--fg-2)}.nav-item.active .nav-item__icon{color:var(--accent)}.nav-item__label{flex:1}.nav-item__count{font-size:11px;color:var(--fg-3);font-family:var(--font-mono);letter-spacing:0}.collapsed .nav-item{justify-content:center;padding:9px}.collapsed .nav-item__label,.collapsed .nav-item__count{display:none}.collapsed .nav-item.active:before{display:none}.collapsed .nav-item.active{box-shadow:inset 0 0 0 1px var(--accent-line)}.sidebar__user{padding:12px;border-top:1px solid var(--line-1);display:flex;align-items:center;gap:10px}.sidebar__user-info{flex:1;min-width:0}.sidebar__user-name{font-size:12.5px;font-weight:500}.sidebar__user-mail{font-size:11px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapsed .sidebar__user-info,.collapsed .sidebar__user-btn{display:none}.collapsed .sidebar__user{justify-content:center;padding:12px 0}.sidebar__user-btn{width:24px;height:24px;border-radius:4px;display:grid;place-items:center;color:var(--fg-2)}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:56px;border-bottom:1px solid var(--line-1);display:flex;align-items:center;padding:0 24px;gap:16px;background:var(--bg-0);position:sticky;top:0;z-index:5}.topbar__crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg-2)}.topbar__crumbs strong{color:var(--fg-0);font-weight:500}.topbar__crumbs .sep{color:var(--fg-3)}.topbar__spacer{flex:1}.icon-btn{width:32px;height:32px;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--fg-1);border:1px solid transparent;transition:background .12s}.icon-btn:hover{background:var(--bg-2);border-color:var(--line-1)}.content{padding:24px 28px 80px;flex:1;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 13px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:500;border:1px solid var(--line-1);background:var(--bg-2);color:var(--fg-0);transition:background .12s,border-color .12s,transform 60ms;white-space:nowrap}.btn:hover{background:var(--bg-3);border-color:var(--line-2)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}.btn--primary:hover{background:oklch(from var(--accent) calc(l + .04) c h);border-color:oklch(from var(--accent) calc(l + .04) c h)}.btn--ghost{background:transparent;border-color:transparent;color:var(--fg-1)}.btn--ghost:hover{background:var(--bg-2);color:var(--fg-0)}.btn--danger{background:transparent;color:var(--danger);border-color:#fa68634d}.btn--danger:hover{background:#fa68631a}.btn--lg{padding:10px 16px;font-size:13.5px}.btn--block{width:100%}.input{height:34px;border-radius:var(--radius-sm);background:var(--bg-2);border:1px solid var(--line-1);padding:0 11px;color:var(--fg-0);font-size:13px;outline:none;transition:border-color .12s,background .12s;width:100%}.input::placeholder{color:var(--fg-3)}.input:hover{border-color:var(--line-2)}.input:focus{border-color:var(--accent-line);background:var(--bg-1);box-shadow:0 0 0 3px var(--accent-soft)}.input--lg{height:42px;font-size:14px;padding:0 14px}.label{font-size:11.5px;color:var(--fg-2);font-weight:500;margin-bottom:6px;display:block;letter-spacing:.01em}.search{position:relative;flex:1;max-width:360px}.search input{padding-left:32px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--fg-3);pointer-events:none}.search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:10.5px;color:var(--fg-3);padding:2px 5px;border:1px solid var(--line-1);border-radius:3px;background:var(--bg-1)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:500;border:1px solid var(--line-1);color:var(--fg-1);background:var(--bg-2);white-space:nowrap;line-height:1.5}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge--active{color:var(--success);border-color:#63d18f4d;background:#63d18f14}.badge--pending{color:var(--warn);border-color:#edb3454d;background:#edb34514}.badge--blocked{color:var(--danger);border-color:#fa68634d;background:#fa686314}.badge--invited{color:var(--info);border-color:#5cb4ef4d;background:#5cb4ef14}.badge--plan-free{color:var(--fg-1)}.badge--plan-pro{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.badge--plan-team{color:#c4a4fe;border-color:#c4a4fe4d;background:#c4a4fe14}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--fg-0);flex-shrink:0;background:var(--bg-3);border:1px solid var(--line-1);letter-spacing:-.01em}.avatar--sm{width:22px;height:22px;font-size:10px}.avatar--lg{width:56px;height:56px;font-size:18px}.avatar--xl{width:80px;height:80px;font-size:24px}.card{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-lg);overflow:hidden}.card__header{padding:14px 18px;border-bottom:1px solid var(--line-1);display:flex;align-items:center;gap:12px}.card__title{font-size:13.5px;font-weight:600;letter-spacing:-.005em}.card__sub{font-size:12px;color:var(--fg-2)}.card__body{padding:18px}.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px}.page-head__text{flex:1;min-width:0}.page-head__title{font-size:22px;font-weight:600;letter-spacing:-.018em;margin:0 0 4px}.page-head__sub{font-size:13px;color:var(--fg-2)}.page-head__actions{display:flex;gap:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{padding:14px 16px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-md)}.stat__label{font-size:11.5px;color:var(--fg-2);margin-bottom:6px;display:flex;align-items:center;gap:6px}.stat__value{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;display:flex;align-items:baseline;gap:8px}.stat__delta{font-size:11.5px;font-weight:500;font-family:var(--font-mono)}.stat__delta--up{color:var(--success)}.stat__delta--down{color:var(--danger)}.filterbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-sm);background:var(--bg-1);border:1px dashed var(--line-2);color:var(--fg-1);font-size:12px;cursor:pointer}.chip:hover{background:var(--bg-2)}.chip.active{background:var(--bg-2);border-style:solid;color:var(--fg-0)}.chip__count{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-3);background:var(--bg-0);padding:1px 5px;border-radius:3px}.tbl-wrap{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-lg);overflow:hidden}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl thead th{text-align:left;font-weight:500;color:var(--fg-2);font-size:11.5px;padding:10px 14px;border-bottom:1px solid var(--line-1);background:#110f0d;letter-spacing:.02em;white-space:nowrap;-webkit-user-select:none;user-select:none}.tbl thead th.sortable{cursor:pointer}.tbl thead th.sortable:hover{color:var(--fg-0)}.tbl thead th .sort-ind{display:inline-block;margin-left:4px;opacity:.5;font-family:var(--font-mono);font-size:10px}.tbl thead th.sorted .sort-ind{opacity:1;color:var(--accent)}.tbl tbody td{padding:0 14px;border-bottom:1px solid var(--line-1);vertical-align:middle;height:var(--row-h);color:var(--fg-1)}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:#181513}.tbl tbody tr:hover td{color:var(--fg-0)}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr.selected{background:var(--accent-soft)}.tbl tbody tr{cursor:pointer}.tbl__user{display:flex;align-items:center;gap:10px}.tbl__user-name{font-weight:500;color:var(--fg-0);font-size:13px}.tbl__user-mail{font-size:11.5px;color:var(--fg-2)}.density-compact{--row-h: 38px}.density-compact .tbl tbody td{font-size:12.5px}.density-compact .avatar{width:22px;height:22px;font-size:10px}.density-compact .tbl__user-mail{display:none}.density-roomy{--row-h: 64px}.checkbox{width:15px;height:15px;border-radius:3px;border:1px solid var(--line-2);background:var(--bg-2);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all .12s}.checkbox.checked{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.tbl__pager{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line-1);background:#110f0d;font-size:12px;color:var(--fg-2)}.tbl__pager-btns{display:flex;gap:4px}.pager-btn{width:26px;height:26px;border-radius:5px;border:1px solid var(--line-1);background:var(--bg-2);color:var(--fg-1);display:grid;place-items:center}.pager-btn:hover{background:var(--bg-3)}.pager-btn.disabled{opacity:.4;cursor:not-allowed}.pager-btn.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:30;animation:fadeIn .2s ease}.drawer{position:fixed;top:0;right:0;bottom:0;width:580px;max-width:100vw;background:var(--bg-0);border-left:1px solid var(--line-1);z-index:31;display:flex;flex-direction:column;animation:slideIn .28s cubic-bezier(.2,.9,.3,1);box-shadow:-24px 0 60px -20px #0009}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer__head{padding:14px 18px;border-bottom:1px solid var(--line-1);display:flex;align-items:center;gap:12px;flex-shrink:0}.drawer__title{font-size:13.5px;font-weight:600}.drawer__body{padding:22px 24px;overflow-y:auto;flex:1}.drawer__foot{padding:12px 18px;border-top:1px solid var(--line-1);display:flex;gap:8px;justify-content:flex-end;background:var(--bg-1);flex-shrink:0}.detail-hero{display:flex;gap:18px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line-1);align-items:flex-start}.detail-hero__info{flex:1;min-width:0}.detail-hero__name{font-size:20px;font-weight:600;letter-spacing:-.015em;margin:0 0 4px}.detail-hero__mail{font-size:13px;color:var(--fg-2);font-family:var(--font-mono);margin-bottom:10px;display:flex;align-items:center;gap:6px}.detail-hero__badges{display:flex;gap:6px;flex-wrap:wrap}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 14px;font-size:13px;padding:4px 0}.kv dt{color:var(--fg-2);font-size:12px}.kv dd{margin:0;color:var(--fg-0)}.kv dd .mono{font-family:var(--font-mono);font-size:12px}.section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;color:var(--fg-2);margin:22px 0 10px}.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.action-row{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-md);text-align:left;font-size:13px;color:var(--fg-0);cursor:pointer;transition:all .12s}.action-row:hover{background:var(--bg-2);border-color:var(--line-2)}.action-row svg{color:var(--fg-2);flex-shrink:0}.action-row__lbl{flex:1}.action-row__lbl small{display:block;color:var(--fg-3);font-size:11px;margin-top:1px}.action-row--danger{color:var(--danger)}.action-row--danger svg{color:var(--danger)}.timeline{display:flex;flex-direction:column;gap:0}.timeline__row{display:grid;grid-template-columns:18px 1fr auto;gap:12px;padding:10px 0;font-size:12.5px;position:relative}.timeline__row+.timeline__row{border-top:1px dashed var(--line-1)}.timeline__dot{width:8px;height:8px;border-radius:50%;background:var(--bg-3);margin:6px 0 0 5px;border:1px solid var(--line-2)}.timeline__row[data-kind=login] .timeline__dot{background:var(--success);border-color:transparent}.timeline__row[data-kind=email] .timeline__dot{background:var(--info);border-color:transparent}.timeline__row[data-kind=admin] .timeline__dot{background:var(--accent);border-color:transparent}.timeline__row[data-kind=warn] .timeline__dot{background:var(--warn);border-color:transparent}.timeline__msg{color:var(--fg-0)}.timeline__sub{color:var(--fg-2);font-size:11.5px;margin-top:2px;font-family:var(--font-mono)}.timeline__time{color:var(--fg-3);font-size:11.5px;font-variant-numeric:tabular-nums}.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px;position:relative;background:radial-gradient(ellipse at top,oklch(.78 .16 65 / .1),transparent 50%),radial-gradient(ellipse at bottom right,oklch(.3 .04 30 / .4),transparent 50%),var(--bg-0)}.auth-card{width:100%;max-width:380px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-xl);padding:32px;position:relative}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.auth-brand .brand__mark{width:32px;height:32px;border-radius:9px;font-size:16px}.auth-brand .brand__name{font-size:16px;font-weight:600}.auth-brand .brand__sub{font-size:10.5px}.auth-title{font-size:21px;font-weight:600;letter-spacing:-.02em;margin:0 0 6px}.auth-sub{font-size:13.5px;color:var(--fg-2);margin-bottom:22px;line-height:1.55}.auth-foot{margin-top:22px;font-size:12px;color:var(--fg-3);text-align:center}.auth-foot a{color:var(--fg-1);text-decoration:none;border-bottom:1px dashed var(--line-2)}.inbox-icon{width:56px;height:56px;border-radius:16px;margin:0 0 18px;background:var(--accent-soft);border:1px solid var(--accent-line);display:grid;place-items:center;color:var(--accent);animation:floaty 2.4s ease-in-out infinite}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.email-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-2);border:1px solid var(--line-1);border-radius:999px;font-family:var(--font-mono);font-size:12.5px;margin:4px 0 18px}.email-pill svg{color:var(--accent)}.auth-link-debug{margin-top:18px;padding:12px;background:var(--bg-0);border:1px dashed var(--line-2);border-radius:var(--radius-sm);font-size:11px;color:var(--fg-2)}.auth-link-debug code{display:block;font-family:var(--font-mono);color:var(--accent);margin-top:6px;word-break:break-all;font-size:11px}.auth-link-debug button{margin-top:8px;color:var(--fg-1);font-size:11px;text-decoration:underline}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-md);padding:10px 16px;display:flex;align-items:center;gap:10px;font-size:13px;z-index:40;box-shadow:var(--shadow-pop);animation:toastIn .24s cubic-bezier(.2,.9,.3,1)}.toast svg{color:var(--success)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mono{font-family:var(--font-mono)}.muted{color:var(--fg-2)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-1);border-radius:8px;border:2px solid var(--bg-0)}::-webkit-scrollbar-thumb:hover{background:var(--line-2)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg-0)}.auth-card{width:100%;max-width:420px;background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-xl);padding:32px}.auth-card__brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.auth-card__brand .brand__title{font-size:18px;font-weight:700;letter-spacing:-.02em}.auth-card__brand .brand__sub{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--fg-2);margin-left:6px}.auth-card__title{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:0 0 6px}.auth-card__sub{font-size:13.5px;color:var(--fg-2);line-height:1.5;margin:0 0 20px}.auth-label{display:block;font-size:12px;color:var(--fg-2);margin-bottom:6px}.auth-error{margin-top:12px;padding:10px 12px;background:#fa68631a;border:1px solid oklch(.7 .18 25 / .3);border-radius:var(--radius-md);color:#ffbab3;color:oklch(.85 .14 25);display:flex;align-items:center;gap:8px;font-size:13px}.auth-submit{width:100%;margin-top:16px;justify-content:center}.toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast{padding:10px 14px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-0);opacity:0;transform:translateY(8px);transition:opacity .16s ease,transform .16s ease}.toast.visible{opacity:1;transform:translateY(0)}.toast--error{border-color:#fa686366;color:#ffbab3;color:oklch(.85 .14 25)}.placeholder-box{width:64px;height:64px;border-radius:16px;margin:0 auto 14px;background:var(--bg-2);border:1px dashed var(--line-2);display:grid;place-items:center;color:var(--fg-3)}.sidebar__user{display:flex;align-items:center;gap:10px;padding:12px;border-top:1px solid var(--line-1)}.sidebar__user-info{min-width:0;flex:1}.sidebar__user-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-mail{font-size:11.5px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-btn{width:26px;height:26px;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--fg-2)}.sidebar__user-btn:hover{background:var(--bg-2);color:var(--fg-0)}.sidebar__spacer{flex:1}.brand__name{font-weight:700;font-size:15px}.brand__sub{color:var(--fg-2);font-size:10.5px;text-transform:uppercase;letter-spacing:1.5px;margin-left:auto}
