:root{--bg:#f6f7f9;--surface:#fff;--text:#0b0c0f;--muted:#6b7280;--line:#e7e9ee;--brand:#0a84ff;--brand-quiet:#edf5ff;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--radius:14px;--shadow:0 8px 24px rgba(15,23,42,.08);--shadow-soft:0 2px 10px rgba(15,23,42,.05)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Inter,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;letter-spacing:0}.app-root{min-height:100dvh;display:flex;flex-direction:column}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);background:color-mix(in srgb,var(--bg) 85%,#fff 15%);border-bottom:1px solid var(--line)}.app-header-inner{max-width:1200px;margin:0;padding:16px 24px;display:flex;align-items:center;gap:16px}.brand-dot{width:12px;height:12px;border-radius:50%;background:radial-gradient(65% 65% at 50% 30%,var(--brand) 0,#6aa9ff 70%,#b8d7ff 100%);box-shadow:0 0 0 4px var(--brand-quiet)}.brand-logo{height:24px;width:auto;display:block;object-fit:contain}.app-title{font-size:16px;font-weight:600;letter-spacing:.2px}.app-main{flex:1 1}.container{max-width:1200px;margin:24px 0 64px;padding:0 12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.page-head{margin:0 0 16px;font-size:22px;font-weight:700}.page-sub{margin:0 0 24px;font-size:14px;color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.toolbar .spacer{flex:1 1}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:10px 14px;font-size:14px;border-radius:12px;cursor:pointer;transition:transform .04s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease;box-shadow:var(--shadow-soft)}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.08)}.btn:active{transform:translateY(0);box-shadow:var(--shadow-soft)}.btn-primary{background:var(--text);color:#fff;border-color:transparent}.btn-quiet{background:var(--brand-quiet);color:var(--text);border-color:#dbeafe}.input,.select{width:100%;max-width:320px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px;color:var(--text);outline:none;transition:border-color .12s ease,box-shadow .12s ease;box-shadow:var(--shadow-soft)}.input:focus,.select:focus{border-color:color-mix(in srgb,var(--brand) 60%,#9cc9ff 40%);box-shadow:0 0 0 4px var(--brand-quiet)}.table-wrap{overflow:auto;border-radius:calc(var(--radius) - 2px);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.table thead th{position:-webkit-sticky;position:sticky;top:0;background:linear-gradient(180deg,#fff,#fbfbfc);text-align:left;font-weight:600}.table tbody td,.table thead th{color:#111827;padding:12px 14px;border-bottom:1px solid var(--line)}.table tbody tr:hover td{background:#fafbff}.cell-right{text-align:right}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#f8fafc;border:1px solid var(--line);color:#111827;font-size:13px;white-space:nowrap}.badge-dot{width:6px;height:6px;border-radius:50%;background:#9ca3af}.empty{padding:32px;text-align:center;color:var(--muted)}a{color:var(--text);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .12s ease,color .12s ease}a:hover{color:var(--brand);border-color:var(--brand)}