:root{--color-bg:#fff;--color-surface:#f8f8f6;--color-border:#e8e6e0;--color-text:#1a1a18;--color-text-muted:#6b6b68;--color-accent:#2d5a27;--color-accent-light:#e8f0e6;--color-danger:#c0392b;--color-danger-light:#fdecea;--color-success:#27ae60;--color-success-light:#eafaf1;--color-warning:#e67e22;--color-warning-light:#fef9e7;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", 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;--text-hero:clamp(2.5rem, 5vw, 4rem);--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;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001a;--duration-fast:.15s;--duration-normal:.3s;--ease-out:cubic-bezier(.16, 1, .3, 1);--nav-width:240px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);line-height:1.6}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:var(--font-sans)}input,select,textarea{font-family:var(--font-sans);font-size:var(--text-base)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);border:1px solid #0000;font-weight:500;display:inline-flex}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover{opacity:.88}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{opacity:.88}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--color-text);font-weight:500}.form-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);transition:border-color var(--duration-fast);outline:none}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.form-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--color-bg);cursor:pointer;outline:none}.form-select:focus{border-color:var(--color-accent)}.badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:600;display:inline-block}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-neutral{background:var(--color-surface);color:var(--color-text-muted)}.badge-accent{background:var(--color-accent-light);color:var(--color-accent)}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th{text-align:left;padding:var(--space-3) var(--space-4);color:var(--color-text-muted);border-bottom:2px solid var(--color-border);white-space:nowrap;font-weight:600}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text)}.data-table tbody tr:hover{background:var(--color-surface)}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-bg);border-radius:var(--radius-lg);padding:var(--space-8);width:100%;max-width:480px;box-shadow:var(--shadow-lg)}.modal-title{font-size:var(--text-xl);margin-bottom:var(--space-6);font-weight:600}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4)}.alert-error{background:var(--color-danger-light);color:var(--color-danger)}.alert-success{background:var(--color-success-light);color:var(--color-success)}.alert-info{background:var(--color-accent-light);color:var(--color-accent)}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.loading-text{color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-8);text-align:center}.pagination{align-items:center;gap:var(--space-2);margin-top:var(--space-6);justify-content:flex-end;display:flex}.page-info{font-size:var(--text-sm);color:var(--color-text-muted)}
