:root{--brand:#2563eb;--brand-50:#eff6ff;--brand-100:#dbeafe;--brand-200:#bfdbfe;--brand-600:#2563eb;--brand-700:#1d4ed8;--brand-800:#1e40af;--accent:#0f766e;--success:#16803c;--warning:#b7791f;--danger:#c2413d;--color-primary:var(--brand);--color-primary-deep:var(--brand-700);--color-primary-soft:var(--brand-50);--color-accent:var(--accent);--color-success:var(--success);--color-warning:var(--warning);--color-danger:var(--danger);--color-heading:#101828;--color-text:#344054;--color-muted:#667085;--color-subtle:#98a2b3;--color-soft:#f2f4f7;--color-page:#f6f7f9;--color-surface:#fff;--color-surface-strong:#f9fafb;--color-border:#e4e7ec;--color-border-strong:#d0d5dd;--color-sidebar:#fff;--color-sidebar-soft:#f9fafb;--font-sans:"Aptos", "Segoe UI Variable", "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono:"Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:16px;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 2px 6px #1018280d;--shadow-md:0 8px 20px #10182814;--shadow-lg:0 18px 44px #1018281f;--shadow-xl:0 28px 70px #10182829;--shadow-card:var(--shadow-xs);--shadow-lift:var(--shadow-lg);--ring:0 0 0 3px #2563eb24;--container:1480px;--sidebar-w:260px;--sidebar-collapsed:68px;--topbar-h:68px}*{box-sizing:border-box}html.preload *{transition:none!important;animation:none!important}html,body,#app{min-height:100%}html{scroll-behavior:smooth}body{color:var(--color-text);background:var(--color-page);font-family:var(--font-sans);text-rendering:optimizelegibility;font-variant-numeric:tabular-nums;margin:0}button,input,textarea,select{font:inherit}button,a,[role=button]{transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s,opacity .18s}button{cursor:pointer;border:0}button:active,.btn:active{transform:translateY(1px)}button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;opacity:.62}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #2563eb80}::selection{background:#2563eb29}.numeric,table td,table th{font-variant-numeric:tabular-nums}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100dvh;display:grid}.main{min-width:0}.content{width:min(var(--container), calc(100% - 48px));margin:0 auto;padding:24px 0 48px}.page-stack{gap:20px;display:grid}.page-stack>*,.grid-4>*,.grid-3>*,.grid-2>*,.action-grid>*,.form-grid>*{min-width:0}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.toolbar h2,.toolbar h3{margin:0}.grid-4,.grid-3,.grid-2,.action-grid,.form-grid{gap:14px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card,.panel{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-card);position:relative}.card-pad{padding:24px}.surface-muted{border-radius:var(--radius-lg);background:var(--color-surface-strong)}.muted{color:var(--color-muted)}.subtle{color:var(--color-subtle)}.section-title{gap:5px;display:grid}.section-title h2,.section-title h3{color:var(--color-heading);margin:0;font-size:16px;font-weight:760;line-height:1.2}.section-title p{max-width:68ch;color:var(--color-muted);margin:0;line-height:1.55}.eyebrow{color:var(--color-primary-deep);letter-spacing:.07em;text-transform:uppercase;font-size:11px;font-weight:760}.btn{border-radius:var(--radius-md);min-height:40px;color:var(--color-heading);white-space:nowrap;box-shadow:none;background:#fff;border:1px solid #c8d1dfeb;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:680;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--color-border-strong);background:var(--color-surface-strong);box-shadow:var(--shadow-xs);transform:translateY(-1px)}.btn.primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:0 1px 2px #10182814}.btn.primary:hover{border-color:var(--color-primary-deep);background:var(--color-primary-deep)}.btn.danger{color:#a9312e;background:#fff5f4;border-color:#c2413d33}.btn.danger:hover{background:#fff1ef;border-color:#c2413d57}.btn.ghost{color:var(--color-muted);box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--color-surface-strong);color:var(--color-primary-deep);box-shadow:none}.btn.compact{min-height:32px;padding:0 10px;font-size:13px}.input,.textarea,.select{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);box-shadow:none;background:#fff;transition:border-color .18s,box-shadow .18s,background .18s}.input:hover,.textarea:hover,.select:hover{border-color:var(--color-border-strong)}.input:focus,.textarea:focus,.select:focus{border-color:var(--color-primary);box-shadow:var(--ring);background:#fff;outline:0}.input-error{background:#fff4f0;border-color:#c2413d7a;box-shadow:0 0 0 4px #c2413d1a}.input:user-invalid{background:#fff4f0;border-color:#c2413d7a;box-shadow:0 0 0 4px #c2413d1a}.textarea:user-invalid{background:#fff4f0;border-color:#c2413d7a;box-shadow:0 0 0 4px #c2413d1a}.select:user-invalid{background:#fff4f0;border-color:#c2413d7a;box-shadow:0 0 0 4px #c2413d1a}.field-error{color:var(--color-danger);font-size:12px;font-weight:680;line-height:1.45}.input,.select{height:42px;padding:0 12px}.secret-input{-webkit-text-security:disc;font-family:var(--font-mono)}.textarea{resize:vertical;min-height:112px;padding:12px;line-height:1.6}.form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-row{gap:7px;display:grid}.form-row label,.form-row>span{color:var(--color-muted);font-size:13px;font-weight:680}.field-help{color:var(--color-subtle);font-size:12px;line-height:1.45}.table-wrap{border-radius:var(--radius-lg);min-width:0;max-width:100%;overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #dde3eed1;padding:13px 14px}th{z-index:1;background:var(--color-surface-strong);color:var(--color-muted);font-size:12px;font-weight:760;position:sticky;top:0}td{background:var(--color-surface);font-size:14px}tbody tr:hover td{background:var(--color-surface-strong)}tbody tr.row-danger td{background:#fff5f4}tbody tr.row-warning td{background:#fffbeb}tbody tr.interactive-row{cursor:pointer}tbody tr.interactive-row:hover td{background:var(--color-surface-strong)}tbody tr.interactive-row:focus-visible td{background:var(--color-primary-soft);outline-offset:-2px;outline:2px solid #2563eb5c}tbody tr:last-child td{border-bottom:0}.tag{border-radius:var(--radius-sm);background:var(--color-surface-strong);color:#475467;white-space:nowrap;border:1px solid #6670851f;align-items:center;min-height:24px;padding:3px 8px;font-size:12px;font-weight:760;display:inline-flex}.tag.success{color:#16733a;background:#ecfdf3;border-color:#16803c24}.tag.warning{color:#915f12;background:#fffaeb;border-color:#b7791f29}.tag.danger{color:#9f2f2b;background:#fef3f2;border-color:#c2413d29}.notice,.error,.success-box{border-radius:var(--radius-lg);padding:13px 15px;line-height:1.55}.notice{background:var(--color-primary-soft);color:var(--color-primary-deep);border:1px solid #2563eb29}.notice.warning{color:#8a5724;background:#fffaeb;border-color:#b7791f2e}.notice.danger{color:#9e3832;background:#fef3f2;border-color:#c2413d2e}.success-box{color:#16733a;background:#ecfdf3;border:1px solid #16803c29}.error{color:#9e3832;background:#fef3f2;border:1px solid #c2413d2e}.empty-state{min-height:180px;color:var(--color-muted);text-align:center;place-content:center;justify-items:center;gap:8px;padding:28px;display:grid}.empty-state .btn{margin-top:4px}.empty-state strong{color:var(--color-heading);font-size:16px}.empty-state span{max-width:46ch;line-height:1.55}.skeleton{border-radius:var(--radius-lg);background:#eaecf0;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.code{border-radius:var(--radius-lg);color:#e8edf7;min-width:0;max-width:100%;font-family:var(--font-mono);white-space:pre;background:radial-gradient(circle at 90% 0,#2563eb29,#0000 24rem),#101828;border:1px solid #ffffff14;padding:16px;font-size:12px;line-height:1.7;transition:border-color .22s,box-shadow .22s,background .22s;overflow:auto}.code.copied{border-color:#16803cb8;box-shadow:0 0 0 4px #16803c1f}.copy-flash{background:#f1fbf4!important;border-color:#16803c6b!important;box-shadow:0 0 0 4px #16803c1a!important}.danger-zone{border-radius:var(--radius-lg);background:#fef3f2;border:1px solid #c2413d2e}.drawer-layer{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a57;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{width:min(540px,100%);height:100%;box-shadow:var(--shadow-lift);border-radius:0;overflow:auto}.detail-list{gap:0;margin:18px 0;display:grid}.detail-list>div{border-bottom:1px solid #dde3eed1;grid-template-columns:120px minmax(0,1fr);gap:14px;padding:12px 0;display:grid}.detail-list span{color:var(--color-muted);font-size:13px}.detail-list strong,.detail-list code{min-width:0;color:var(--color-heading);overflow-wrap:anywhere}.detail-list code{font-family:var(--font-mono);font-size:12px}.drawer-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.mono{font-family:var(--font-mono)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1279px) and (width>=1024px){.shell{grid-template-columns:var(--sidebar-collapsed) minmax(0, 1fr)}.grid-4,.grid-3,.grid-2,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1023px){.shell{grid-template-columns:1fr}.grid-4,.grid-3,.grid-2,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.content{width:min(100% - 24px, var(--container));padding-top:18px}.grid-4,.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}.btn{width:100%}.detail-list>div{grid-template-columns:1fr}}
