:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-soft: #dbeafe;--on-primary: #ffffff;--secondary: #0f766e;--secondary-hover: #0d5d56;--secondary-soft: #ccfbf1;--on-secondary: #ffffff;--success: #16a34a;--success-soft: #dcfce7;--warning: #d97706;--warning-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--info: #0284c7;--info-soft: #e0f2fe;--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #eef2f7;--overlay: rgba(15, 23, 42, .45);--text: #0f172a;--text-muted: #64748b;--text-subtle: #94a3b8;--text-on-dark: #e2e8f0;--border: #e2e8f0;--border-strong: #cbd5e1;--font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-heading: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "SF Mono", "Cascadia Code", Consolas, monospace;--fs-xs: .75rem;--fs-sm: .85rem;--fs-md: .95rem;--fs-lg: 1.15rem;--fs-xl: 1.5rem;--fs-2xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--transition: .18s ease;--sidebar-width: 248px;--topbar-height: 64px;--content-max: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:16px;color:var(--text);background-color:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.25;color:var(--text)}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}ul,ol{list-style:none}[dir=rtl]{text-align:right}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.6rem 1.1rem;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;line-height:1;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--on-primary)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface-3)}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.94)}.btn--sm{padding:.4rem .7rem;font-size:var(--fs-xs)}.btn--lg{padding:.8rem 1.5rem;font-size:var(--fs-md)}.btn--block{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field__label{font-size:var(--fs-sm);font-weight:600;color:var(--text)}.field__hint{font-size:var(--fs-xs);color:var(--text-subtle)}.field__error{font-size:var(--fs-xs);color:var(--danger)}.input,.select,.textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-md);color:var(--text);background:var(--surface);transition:border-color var(--transition),box-shadow var(--transition)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input.is-invalid,.select.is-invalid,.textarea.is-invalid{border-color:var(--danger)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-3);color:var(--text-muted)}.textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 var(--space-5)}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);background:var(--surface)}.data-table th,.data-table td{padding:.7rem .9rem;text-align:start;border-bottom:1px solid var(--border);vertical-align:middle}.data-table thead th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-2);font-weight:700}.data-table tbody tr{transition:background var(--transition)}.data-table tbody tr:hover{background:var(--surface-2)}.data-table td.numeric,.data-table th.numeric{text-align:end;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card__title{font-size:var(--fs-lg);font-weight:600}.card__body{padding:var(--space-5)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:700;line-height:1.4}.badge--neutral{background:var(--surface-3);color:var(--text-muted)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--info{background:var(--info-soft);color:var(--info)}.container{width:100%;max-width:var(--content-max);margin:0 auto}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.wrap{flex-wrap:wrap}.grow{flex:1}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.numeric{font-variant-numeric:tabular-nums}.text-end{text-align:end}.text-center{text-align:center}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mb-4{margin-bottom:var(--space-4)}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
