:root{--xc-green:#006838;--xc-gold:#d4af34;--xc-gold-pale:#ffeb89;--color-bg:#f8fafc;--color-surface:#fff;--color-surface-hover:#f1f5f9;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-muted:#64748b;--color-text-faint:#94a3b8;--color-primary:#006838;--color-primary-hover:#004d29;--color-primary-contrast:#fff;--color-primary-soft:#e6f3ec;--color-success:#15803d;--color-success-soft:#f0fdf4;--color-warning:#b45309;--color-warning-soft:#fffbeb;--color-danger:#b91c1c;--color-danger-soft:#fef2f2;--color-info:#1d4ed8;--color-info-soft:#eff6ff;--chart-seq-100:#dcefe4;--chart-seq-200:#b3dbc4;--chart-seq-300:#7fc09d;--chart-seq-400:#4aa374;--chart-seq-500:#1f8752;--chart-seq-600:#006838;--chart-cat-1:#0f7a5c;--chart-cat-2:#b8860b;--chart-cat-3:#2a72d4;--chart-cat-4:#c0392b;--chart-cat-5:#7952b3;--chart-grid:var(--color-border);--chart-axis-text:var(--color-text-faint);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:28px;--radius-full:999px;--elevation-0:none;--elevation-1:0 1px 2px #0f172a1a, 0 1px 3px 1px #0f172a12;--elevation-2:0 1px 2px #0f172a1f, 0 2px 6px 2px #0f172a14;--elevation-3:0 4px 8px #0f172a24, 0 1px 3px #0f172a1a;--elevation-4:0 6px 10px #0f172a29, 0 2px 3px #0f172a1a;--shadow-sm:var(--elevation-1);--shadow-md:var(--elevation-2);--shadow-lg:var(--elevation-4);--state-hover-opacity:.08;--state-focus-opacity:.12;--state-press-opacity:.12;--motion-fast:.12s cubic-bezier(.2, 0, 0, 1);--motion-med:.22s cubic-bezier(.2, 0, 0, 1);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--color-bg:#0b1220;--color-surface:#131c2e;--color-surface-hover:#1a2438;--color-border:#253352;--color-text:#e2e8f0;--color-text-muted:#94a3b8;--color-text-faint:#64748b;--color-primary:#34d399;--color-primary-hover:#5eebb3;--color-primary-contrast:#052e1c;--color-primary-soft:#0f2a1f;--color-success:#4ade80;--color-success-soft:#0f2a1a;--color-warning:#fbbf24;--color-warning-soft:#2c2008;--color-danger:#f87171;--color-danger-soft:#2c1212;--color-info:#60a5fa;--color-info-soft:#10203f;--chart-seq-100:#163325;--chart-seq-200:#1f4a34;--chart-seq-300:#2a6647;--chart-seq-400:#2f8a5c;--chart-seq-500:#34d399;--chart-seq-600:#5eebb3;--chart-cat-1:#1f9268;--chart-cat-2:#a87800;--chart-cat-3:#4a86e0;--chart-cat-4:#d05a4d;--chart-cat-5:#9070c4;--elevation-1:0 1px 2px #0006, 0 1px 3px 1px #00000047;--elevation-2:0 1px 2px #00000070, 0 2px 6px 2px #0000004d;--elevation-3:0 4px 8px #00000080, 0 1px 3px #0000005c;--elevation-4:0 6px 10px #0000008c, 0 2px 3px #0000005c;--shadow-sm:var(--elevation-1);--shadow-md:var(--elevation-2);--shadow-lg:var(--elevation-4);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}#root{min-height:100vh}a{color:var(--color-primary)}button,input,select,textarea{font-family:inherit;font-size:inherit}::selection{background:var(--color-primary-soft)}.btn{border-radius:var(--radius-full);cursor:pointer;isolation:isolate;transition:background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast), opacity var(--motion-fast), transform var(--motion-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";opacity:0;transition:opacity var(--motion-fast);pointer-events:none;background:currentColor;position:absolute;inset:0}.btn:hover:not(:disabled):before{opacity:var(--state-hover-opacity)}.btn:focus-visible:not(:disabled):before{opacity:var(--state-focus-opacity)}.btn:active:not(:disabled){transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-ripple{opacity:.18;pointer-events:none;background:currentColor;border-radius:50%;animation:.55s ease-out xc-ripple;position:absolute;transform:scale(0)}@keyframes xc-ripple{to{opacity:0;transform:scale(2.6)}}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--elevation-1)}.btn-primary:hover:not(:disabled){box-shadow:var(--elevation-2)}.btn-primary:active:not(:disabled){box-shadow:var(--elevation-1)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border)}.btn-danger{color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 50%, transparent);background:0 0}.btn-ghost{color:var(--color-text-muted);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--color-text)}.btn-sm{padding:6px 14px;font-size:13px}.icon-btn{width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;transition:color var(--motion-fast), background var(--motion-fast);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative;overflow:hidden}.icon-btn svg{z-index:1;width:19px;height:19px;position:relative}.icon-btn:before{content:"";opacity:0;transition:opacity var(--motion-fast);background:currentColor;border-radius:50%;position:absolute;inset:0}.icon-btn:hover:not(:disabled):before{opacity:var(--state-hover-opacity)}.icon-btn:focus-visible:not(:disabled):before{opacity:var(--state-focus-opacity)}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-danger{color:var(--color-danger)}.icon-btn-primary{color:var(--color-primary)}.icon-btn-sm{width:30px;height:30px}.icon-btn-sm svg{width:16px;height:16px}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);overflow:hidden}.card-pad{padding:20px}.card-interactive{cursor:pointer;transition:box-shadow var(--motion-med)}.card-interactive:hover{box-shadow:var(--elevation-2)}.input,.select{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);padding:10px 14px}.input:hover:not(:disabled):not(:focus),.select:hover:not(:disabled):not(:focus){border-color:var(--color-text-faint)}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent);outline:none}.input:disabled,.select:disabled{opacity:.6;cursor:not-allowed}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.label{color:var(--color-text-muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field{margin-bottom:16px}.badge{border-radius:var(--radius-full);letter-spacing:.01em;align-items:center;gap:5px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.badge-neutral{background:var(--color-surface-hover);color:var(--color-text-muted)}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px;font-size:12px}.table td{border-bottom:1px solid var(--color-border);vertical-align:middle;height:52px;padding:0 16px}.table tbody tr{transition:background var(--motion-fast)}.table tbody tr:hover{background:color-mix(in srgb, var(--color-text) var(--state-hover-opacity), var(--color-surface))}.table tbody tr:last-child td{border-bottom:none}.table td.truncate,.table th.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.table-actions{justify-content:flex-end;gap:2px;display:flex}.pagination{color:var(--color-text-muted);justify-content:flex-end;align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:flex}.alert{border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;line-height:1.5;display:flex}.alert svg{flex-shrink:0;width:20px;height:20px;margin-top:1px}.alert-danger{background:var(--color-danger-soft);color:var(--color-danger)}.alert-success{background:var(--color-success-soft);color:var(--color-success)}.alert-info{background:var(--color-info-soft);color:var(--color-info)}.text-muted{color:var(--color-text-muted)}.text-faint{color:var(--color-text-faint)}.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 24px}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite xc-spin}@keyframes xc-spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:50;animation:xc-scrim-in var(--motion-med);background:#0f172a52;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--elevation-4);width:100%;max-width:560px;max-height:85vh;animation:xc-dialog-in var(--motion-med);position:relative;overflow-y:auto}.modal-close{z-index:1;position:absolute;top:12px;right:12px}@keyframes xc-scrim-in{0%{opacity:0}}@keyframes xc-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.modal{animation:none}}
