:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#dbeafe;--color-secondary:#64748b;--color-secondary-hover:#475569;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-success:#16a34a;--color-warning:#d97706;--color-bg:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--color-border-focus:#2563eb;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--nav-height:3.5rem;--max-width:64rem;--sidebar-width:16rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;font-size:1rem;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.container{width:100%;max-width:var(--max-width);padding:0 var(--space-4);margin:0 auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);white-space:nowrap;border:1px solid #0000;font-size:.875rem;font-weight:500;line-height:1.25rem;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--secondary{background-color:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background-color:var(--color-bg-tertiary)}.btn--danger{background-color:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.btn--ghost{color:var(--color-text-secondary);background-color:#0000}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-tertiary)}.btn--sm{padding:var(--space-1) var(--space-2);font-size:.8125rem}.btn--lg{padding:var(--space-3) var(--space-6);font-size:1rem}.btn--full{width:100%}.btn--toggle{flex:1;justify-content:center;align-items:center;gap:.375rem;display:inline-flex}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-label{color:var(--color-text);font-size:.875rem;font-weight:500}.form-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;width:100%;font-size:.875rem;transition:border-color .15s}.form-input:focus-visible{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input--error{border-color:var(--color-danger)}.form-error{color:var(--color-danger);font-size:.75rem}.card{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.page{padding-top:calc(var(--nav-height) + var(--space-6));padding-bottom:var(--space-8);min-height:100vh}.page__header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.page__title{color:var(--color-text);font-size:1.5rem;font-weight:700}.page__subtitle{color:var(--color-text-secondary);margin-top:var(--space-1);font-size:.875rem}.empty-state{padding:var(--space-12) var(--space-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__title{color:var(--color-text);margin-bottom:var(--space-2);font-size:1.125rem;font-weight:600}.empty-state__description{color:var(--color-text-secondary);margin-bottom:var(--space-6);font-size:.875rem}.loading{padding:var(--space-8);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.error-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--color-danger);margin-bottom:var(--space-4);background-color:#fef2f2;border:1px solid #fecaca;font-size:.875rem}@media (max-width:640px){.page{padding-top:calc(var(--nav-height) + var(--space-4))}.page__header{align-items:flex-start;gap:var(--space-3);flex-direction:column}.container{padding:0 var(--space-3)}}.error-boundary{min-height:100vh;padding:var(--space-4);background-color:var(--color-bg-secondary);justify-content:center;align-items:center;display:flex}.error-boundary__content{text-align:center;max-width:24rem}.error-boundary__icon{margin-bottom:var(--space-4);font-size:3rem;display:block}.error-boundary__title{margin-bottom:var(--space-2);font-size:1.25rem;font-weight:600}.error-boundary__message{color:var(--color-text-secondary);margin-bottom:var(--space-6);font-size:.875rem}.error-boundary__details{color:var(--color-danger);text-align:left;padding:var(--space-3);margin-bottom:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);white-space:pre-wrap;word-break:break-word;font-size:.75rem;overflow-x:auto}
