:root{--color-primary:#1a73e8;--color-primary-light:#4a90d9;--color-primary-dark:#1557b0;--color-primary-container:#e8f0fe;--color-on-primary:#fff;--color-on-primary-container:#1a73e8;--color-surface:#fff;--color-surface-variant:#f8f9fc;--color-on-surface:#1f1f1f;--color-on-surface-variant:#5f6368;--color-background:#fff;--color-background-soft:#f8f8f8;--color-background-mute:#f2f2f2;--color-border:#e8eaed;--color-border-hover:#dadce0;--color-text:#1f1f1f;--color-text-secondary:#5f6368;--color-text-tertiary:#9aa0a6;--color-heading:#1f1f1f;--color-error:#d93025;--color-error-container:#fce8e6;--color-success:#1e8e3e;--color-success-container:#e6f4ea;--color-warning:#f9ab00;--color-warning-container:#fef7e0;--color-black:#000;--color-white:#fff;--color-grey-50:#f8f9fa;--color-grey-100:#f1f3f4;--color-grey-200:#e8eaed;--color-grey-300:#dadce0;--color-grey-400:#bdc1c6;--color-grey-500:#9aa0a6;--color-grey-600:#80868b;--color-grey-700:#5f6368;--color-grey-800:#3c4043;--color-grey-900:#202124;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #0000001a;--font-family:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--sidebar-width:240px}:root.dark,.dark{--color-primary:#8ab4f8;--color-primary-light:#aecbfa;--color-primary-dark:#669df6;--color-primary-container:#1a3a5c;--color-on-primary:#000;--color-on-primary-container:#8ab4f8;--color-surface:#1f1f1f;--color-surface-variant:#2d2d2d;--color-on-surface:#e8eaed;--color-on-surface-variant:#9aa0a6;--color-background:#121212;--color-background-soft:#1e1e1e;--color-background-mute:#2d2d2d;--color-border:#3c4043;--color-border-hover:#5f6368;--color-text:#e8eaed;--color-text-secondary:#9aa0a6;--color-text-tertiary:#5f6368;--color-heading:#e8eaed;--color-error:#f28b82;--color-error-container:#3c1f1e;--color-success:#81c995;--color-success-container:#1e3a2b;--color-warning:#fdd663;--color-warning-container:#3c3018;--color-black:#fff;--color-white:#1f1f1f;--color-grey-50:#2d2d2d;--color-grey-100:#3c4043;--color-grey-200:#5f6368;--color-grey-300:#80868b;--color-grey-400:#9aa0a6;--color-grey-500:#bdc1c6;--color-grey-600:#dadce0;--color-grey-700:#e8eaed;--color-grey-800:#f1f3f4;--color-grey-900:#f8f9fa;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #0006;--shadow-xl:0 20px 25px #0006}*,:before,:after{box-sizing:border-box;cursor:inherit;margin:0;padding:0}body{min-height:100vh;color:var(--color-text);background:var(--color-background);font-family:var(--font-family);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:default;line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;line-height:1.5;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-variant);border-color:var(--color-border-hover)}.btn-danger{background:var(--color-error);color:var(--color-white);border-color:var(--color-error)}.btn-danger:hover:not(:disabled){opacity:.9}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-surface-variant);color:var(--color-text)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-current-version{background:var(--color-surface-variant);color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:default;opacity:.7}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:var(--font-family);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s,box-shadow .2s;display:block}.input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1a73e826}.input::placeholder{color:var(--color-text-tertiary)}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 3px #d9302526}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.card-body{padding:var(--space-5)}.table{border-collapse:collapse;width:100%}.table th{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-align:left;text-transform:uppercase;letter-spacing:.05em;background:var(--color-surface-variant);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);border-bottom:1px solid var(--color-border)}.table tr:hover td{background:var(--color-surface-variant)}.badge{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);align-items:center;line-height:1;display:inline-flex}.badge-primary{background:var(--color-primary-container);color:var(--color-primary)}.badge-success{background:var(--color-success-container);color:var(--color-success)}.badge-error{background:var(--color-error-container);color:var(--color-error)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-secondary{color:var(--color-text-secondary)}.text-error{color:var(--color-error)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mr-2{margin-right:var(--space-2)}.ml-2{margin-left:var(--space-2)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.w-full{width:100%}.hidden{display:none}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--color-tooltip-bg,#212121f2);color:var(--color-tooltip-text,#fff);white-space:nowrap;pointer-events:none;opacity:0;z-index:100;border-radius:4px;padding:6px 10px;font-size:12px;line-height:1.5;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}[data-tooltip][data-tooltip-multiline]:after{white-space:normal;text-align:left;min-width:200px;max-width:320px}[data-tooltip]:hover:after,[data-tooltip]:focus:after,[data-tooltip]:focus-within:after{opacity:1}
