:root{--bg:#f4f6f8;--surface:#fff;--ink:#15202b;--muted:#5b6b7c;--line:#d7dee7;--accent:#0f6e56;--accent-soft:#e7f3ee;--danger:#b42318;--danger-soft:#fceceb;--warning:#9a6700;--warning-soft:#fff4d6;--success:#0f6e56;--success-soft:#e7f3ee;--sidebar:#0d3d32;--sidebar-ink:#e8f2ee;--sidebar-muted:#9db5ad;--radius:12px;--shadow:0 8px 24px #15202b0f;--font:"IBM Plex Sans", "Segoe UI", sans-serif;--display:"IBM Plex Serif", Georgia, serif;--sidebar-width:240px}*{box-sizing:border-box}html,body{background:radial-gradient(circle at top left, #dce9e4 0%, transparent 42%), linear-gradient(180deg, #eef2f6 0%, var(--bg) 42%);min-height:100%;color:var(--ink);font-family:var(--font);margin:0}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0}button,.button,input,select,textarea{font:inherit}button,.button{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem .95rem;display:inline-flex}button:disabled,.button:disabled{opacity:.6;cursor:not-allowed}button.secondary,.button.secondary{color:var(--ink);border:1px solid var(--line);background:#fff}button.ghost,.button.ghost{color:var(--ink);background:0 0;border:0}button.danger,.button.danger{background:var(--danger);color:#fff}button.danger-soft,.button.danger-soft{background:var(--danger-soft);color:var(--danger)}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:.55rem .7rem}.password-field{position:relative}.password-field input{padding-right:2.6rem}.password-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:inline-grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-toggle:hover{color:var(--ink);background:#f4f6f8}.select-field{width:100%;position:relative}.select-native{clip:rect(0, 0, 0, 0);white-space:nowrap;opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.select-trigger{width:100%;color:var(--ink);border:1px solid var(--line);font:inherit;text-align:left;white-space:nowrap;background:#fff;border-radius:10px;justify-content:space-between;gap:.65rem;padding:.55rem .7rem}.select-trigger:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.select-trigger:focus,.select-trigger:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:1px;border-color:var(--accent)}.select-trigger:disabled{opacity:.6;cursor:not-allowed;background:#f4f6f8}.select-trigger[data-placeholder=true] .select-trigger-label{color:var(--muted)}.select-trigger-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.select-chevron{color:var(--muted);flex:none;transition:transform .15s}.select-chevron.is-open{transform:rotate(180deg)}.select-menu{border:1px solid var(--line);box-shadow:var(--shadow);box-sizing:border-box;background:#fff;border-radius:12px;gap:.15rem;width:max-content;padding:.35rem;display:grid;overflow:visible auto}.select-option{color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:space-between;align-items:center;gap:.65rem;padding:.55rem .65rem;font-size:.95rem;line-height:1.3;display:flex}.select-option>span{flex:none}.select-option.is-active{background:#f4f6f8}.select-option.is-selected{background:var(--accent-soft);color:var(--accent);font-weight:560}.select-option.is-selected.is-active{background:color-mix(in srgb, var(--accent-soft) 80%, #dce9e4)}.select-option.is-disabled{opacity:.45;cursor:not-allowed}.select-option.is-empty{color:var(--muted);cursor:default;justify-content:center}@keyframes spin{to{transform:rotate(360deg)}}.spinner{color:var(--accent);flex:none;animation:.8s linear infinite spin}.spinner-sm{color:var(--muted)}.loading-state{color:var(--muted);justify-content:center;align-items:center;gap:.65rem;padding:2rem 1rem;font-size:.95rem;display:flex}.loading-inline{justify-content:flex-start;padding:.35rem 0;font-size:.9rem}label{gap:.35rem;font-size:.92rem;display:grid}code{background:#eef2f6;border-radius:6px;padding:.1rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}.copy-code{vertical-align:middle;align-items:center;gap:.25rem;display:inline-flex}.copy-code-btn{width:28px;height:28px;color:var(--muted);border-radius:8px}.copy-code-btn:hover{color:var(--ink)}.muted{color:var(--muted)}.stack{gap:.85rem;display:grid}.row{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.grid{gap:1rem;display:grid}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.badge{color:var(--ink);background:#eef2f6;border-radius:999px;align-items:center;padding:.18rem .6rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.muted{color:var(--muted);background:#eef2f6}.shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100dvh;display:grid}.sidebar{background:var(--sidebar);height:100dvh;color:var(--sidebar-ink);flex-direction:column;gap:1.25rem;padding:1.1rem .85rem;display:flex;position:sticky;top:0}.sidebar-brand{font-family:var(--display);padding:.45rem .65rem;font-size:1.2rem;font-weight:700}.sidebar-nav{flex:1;align-content:start;gap:.2rem;display:grid}.sidebar-link{min-height:40px;color:var(--sidebar-muted);border-radius:10px;align-items:center;gap:.7rem;padding:.55rem .7rem;display:flex}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link[aria-current=page]{color:#fff;background:#ffffff1f;font-weight:600}.sidebar-footer{border-top:1px solid #ffffff1f;padding-top:.75rem}.sidebar-user{align-items:center;gap:.55rem;min-width:0;display:flex}.sidebar-avatar{color:#fff;background:#ffffff24;border-radius:999px;flex:none;place-items:center;width:32px;height:32px;font-size:.72rem;font-weight:700;display:grid}.sidebar-user-name{min-width:0;color:var(--sidebar-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.88rem;overflow:hidden}.sidebar-icon-btn,.icon-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:0;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.icon-btn{color:var(--ink);border:1px solid var(--line);background:#fff}.sidebar-icon-btn:hover,.icon-btn:hover{background:#ffffff29}.icon-btn:hover{background:#f4f6f8}button .btn-icon,.button .btn-icon{flex:none}.shell-main{flex-direction:column;min-width:0;display:flex}.shell-topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#ffffffdb;align-items:center;gap:.75rem;padding:.85rem 1rem;display:none;position:sticky;top:0}.shell-content{flex:1;width:min(1280px,100%);margin:0 auto;padding:1.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header-desc{margin:0}.page-header .copy{gap:.35rem;max-width:42rem;display:grid}.page-header h1{font-size:1.85rem}.breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.9rem;display:flex}.breadcrumb a:hover{color:var(--accent)}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:.35rem;padding:1rem;display:grid}.stat-card strong{font-size:1.6rem;line-height:1}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:640px}.table-wrap th,.table-wrap td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.75rem .9rem}.table-wrap th{color:var(--muted);background:#f8fafb;font-size:.82rem;font-weight:600}.table-wrap tr:last-child td{border-bottom:0}.empty-state{border:1px dashed var(--line);border-radius:var(--radius);background:#ffffffb3;justify-items:start;gap:.75rem;padding:1.5rem;display:grid}.empty-state p{color:var(--muted);max-width:36rem;margin:0}.field-error{color:var(--danger);margin:0;font-size:.92rem}.overlay{z-index:40;background:#15202b6b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.overlay[data-side=right]{place-items:stretch end;padding:0}.dialog{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border-radius:16px;gap:.9rem;padding:1.2rem;display:grid}.drawer{border-left:1px solid var(--line);width:min(420px,100%);height:100%;box-shadow:var(--shadow);background:#fff;grid-template-rows:auto 1fr;gap:1rem;padding:1.2rem;display:grid;overflow:auto}.toast-host{z-index:60;gap:.5rem;width:min(360px,100vw - 2rem);display:grid;position:fixed;bottom:1rem;right:1rem}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:12px;padding:.85rem 1rem}.toast.error{background:var(--danger)}.toast.success{background:var(--accent)}.queue-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.queue-list a{color:var(--accent);font-weight:600}.mobile-list{gap:.75rem;display:none}.mobile-list .item{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:.45rem;padding:.9rem;display:grid}.sign-in-page{place-items:center;min-height:100dvh;padding:1.5rem;display:grid}.sign-in-card{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#fff;border-radius:18px;gap:1rem;padding:1.5rem;display:grid}.sign-in-card .brand{font-family:var(--display);color:var(--accent);font-size:2rem;font-weight:700}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{z-index:50;width:min(280px,86vw);transition:transform .16s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.shell-topbar{display:flex}.shell-content{padding:1rem}.table-wrap{display:none}.mobile-list{display:grid}.page-header h1{font-size:1.55rem}}
