:root{--ff-primary-900: #0b1739;--ff-primary-800: #101f4d;--ff-primary-700: #162a63;--ff-primary-600: #1d3a82;--ff-primary-500: #2952a3;--ff-primary-400: #3f6bc4;--ff-primary: #1d3a82;--ff-primary-dark: #101f4d;--ff-primary-light: #eef2fb;--ff-accent: #0f9d8b;--ff-accent-dark: #0b7c6d;--ff-accent-light: #e3f6f3;--ff-ink: #0f172a;--ff-slate-900: #101828;--ff-slate-700: #344054;--ff-slate-600: #475467;--ff-slate-500: #667085;--ff-slate-400: #98a2b3;--ff-slate-300: #d0d5dd;--ff-slate-200: #e4e7ec;--ff-slate-100: #f2f4f7;--ff-slate-50: #f9fafb;--ff-bg: #f6f8fb;--ff-surface: #ffffff;--ff-surface-raised: #ffffff;--ff-text: #101828;--ff-text-muted: #667085;--ff-text-subtle: #98a2b3;--ff-border: #e4e7ec;--ff-border-strong: #d0d5dd;--ff-success: #12805c;--ff-success-bg: #e7f6ef;--ff-danger: #b3261e;--ff-danger-bg: #fdecea;--ff-warning: #b25e09;--ff-warning-bg: #fef3e2;--ff-info: #175cd3;--ff-info-bg: #eaf1fd;--ff-neutral-bg: #f2f4f7;--ff-shadow-xs: 0 1px 2px rgba(16, 24, 40, .06);--ff-shadow-sm: 0 2px 8px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);--ff-shadow-md: 0 6px 20px rgba(16, 24, 40, .08);--ff-shadow-lg: 0 12px 32px rgba(16, 24, 40, .12);--ff-radius-sm: 6px;--ff-radius: 10px;--ff-radius-lg: 14px;--ff-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ff-sidebar-w: 264px;--ff-topbar-h: 68px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--ff-font);background-color:var(--ff-bg);color:var(--ff-text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}app-root{display:block;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--ff-text);letter-spacing:-.01em;line-height:1.25}a{color:var(--ff-primary);text-decoration:none}p{color:var(--ff-text-muted)}code{font-family:SFMono-Regular,Consolas,monospace;background:var(--ff-slate-100);padding:.1rem .4rem;border-radius:4px;color:var(--ff-primary-dark);font-size:.85em}input,select,textarea{font-family:inherit;font-size:.95rem;padding:.65rem .85rem;border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);width:100%;outline:none;color:var(--ff-text);background:var(--ff-surface);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--ff-primary-500);box-shadow:0 0 0 3px #1d3a821f}input:disabled,select:disabled,textarea:disabled{background:var(--ff-slate-50);color:var(--ff-text-subtle);cursor:not-allowed}button{font-family:inherit;cursor:pointer}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--ff-slate-300);border-radius:4px}::-webkit-scrollbar-track{background:transparent}.ff-page{width:100%;max-width:1180px;margin:0 auto;padding:2rem 1.75rem 3rem}.ff-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;flex-wrap:wrap}.ff-page-header h1{font-size:1.5rem}.ff-page-header__subtitle{color:var(--ff-text-muted);margin-top:.3rem;font-size:.92rem}.ff-grid{display:grid;gap:1.25rem}.ff-grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.ff-grid--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ff-grid--4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ff-stack{display:flex;flex-direction:column;gap:1rem}.ff-row{display:flex;align-items:center;gap:.75rem}.ff-row--between{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.ff-spacer{flex:1}.ff-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:var(--ff-radius-sm);font-weight:600;font-size:.9rem;padding:.6rem 1.15rem;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease;white-space:nowrap}.ff-btn:active{transform:translateY(1px)}.ff-btn:disabled{opacity:.55;cursor:not-allowed}.ff-btn--primary{background:var(--ff-primary);color:#fff}.ff-btn--primary:hover:not(:disabled){background:var(--ff-primary-700)}.ff-btn--accent{background:var(--ff-accent);color:#fff}.ff-btn--accent:hover:not(:disabled){background:var(--ff-accent-dark)}.ff-btn--secondary{background:var(--ff-surface);color:var(--ff-text);border-color:var(--ff-border-strong)}.ff-btn--secondary:hover:not(:disabled){background:var(--ff-slate-50)}.ff-btn--ghost{background:transparent;color:var(--ff-primary)}.ff-btn--ghost:hover:not(:disabled){background:var(--ff-primary-light)}.ff-btn--danger{background:var(--ff-danger);color:#fff}.ff-btn--danger:hover:not(:disabled){background:#8c1e18}.ff-btn--sm{padding:.4rem .8rem;font-size:.82rem}.ff-btn--lg{padding:.8rem 1.6rem;font-size:1rem}.ff-btn--block{width:100%}.ff-card{background:var(--ff-surface);border-radius:var(--ff-radius);border:1px solid var(--ff-border);box-shadow:var(--ff-shadow-xs);padding:1.5rem}.ff-card__title{font-size:1.1rem;font-weight:700;margin-bottom:.35rem}.ff-card__subtitle{color:var(--ff-text-muted);font-size:.9rem;margin-bottom:1.25rem}.ff-card__footer{margin-top:1.25rem;font-size:.88rem;color:var(--ff-text-muted)}.ff-form{display:flex;flex-direction:column;gap:1.1rem}.ff-field{display:flex;flex-direction:column;gap:.4rem}.ff-field span,.ff-field label{font-size:.85rem;font-weight:600;color:var(--ff-slate-700)}.ff-field-hint{font-size:.78rem;color:var(--ff-text-subtle)}.ff-field-error{font-size:.78rem;color:var(--ff-danger)}.ff-error{background:var(--ff-danger-bg);color:var(--ff-danger);border-radius:var(--ff-radius-sm);padding:.65rem .9rem;font-size:.85rem;font-weight:500}.ff-success-banner{background:var(--ff-success-bg);color:var(--ff-success);border-radius:var(--ff-radius-sm);padding:.65rem .9rem;font-size:.85rem;font-weight:500}.ff-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:700;padding:.28rem .65rem;border-radius:999px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.ff-badge--neutral{background:var(--ff-neutral-bg);color:var(--ff-slate-600)}.ff-badge--success{background:var(--ff-success-bg);color:var(--ff-success)}.ff-badge--danger{background:var(--ff-danger-bg);color:var(--ff-danger)}.ff-badge--warning{background:var(--ff-warning-bg);color:var(--ff-warning)}.ff-badge--info{background:var(--ff-info-bg);color:var(--ff-info)}.ff-table-wrap{overflow-x:auto;border-radius:var(--ff-radius);border:1px solid var(--ff-border)}.ff-table{width:100%;border-collapse:collapse;background:var(--ff-surface);font-size:.88rem}.ff-table thead th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ff-slate-500);background:var(--ff-slate-50);padding:.75rem 1rem;border-bottom:1px solid var(--ff-border);white-space:nowrap}.ff-table tbody td{padding:.85rem 1rem;border-bottom:1px solid var(--ff-border);color:var(--ff-text)}.ff-table tbody tr:last-child td{border-bottom:none}.ff-table tbody tr:hover{background:var(--ff-slate-50)}.ff-table tbody tr.is-clickable{cursor:pointer}.ff-text-muted{color:var(--ff-text-muted)}.ff-text-sm{font-size:.85rem}.ff-mono{font-family:SFMono-Regular,Consolas,monospace}.ff-divider{height:1px;background:var(--ff-border);border:none;margin:1.25rem 0}.ff-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.ff-page{padding:1.25rem 1rem 2.5rem}}@media print{body{background:#fff}.ff-shell__sidebar,.ff-shell__topbar,.ff-modal-backdrop,.ff-print-hidden{display:none!important}.ff-shell__main,.ff-shell__content,.ff-page{padding:0!important;margin:0!important;max-width:none!important}.ff-card,.ff-table-wrap{border:0!important;box-shadow:none!important}a{color:inherit!important;text-decoration:none!important}}
