:root{--fx-navy:#002784;--fx-blue-dark:#004f8a;--fx-blue:#0071bc;--fx-blue-hover:#005f9f;--fx-blue-soft:rgba(0,113,188,.08);--fx-blue-softer:#f3f6fb;--fx-purple:#6754df;--fx-purple-soft:#eeebff;--fx-cyan:#43bfd9;--fx-cyan-soft:#e1f7fb;--fx-teal:#1ebc9c;--fx-teal-soft:#e0f7f2;--fx-warning:#ffb735;--fx-warning-soft:#fff4dc;--fx-danger:#ff4057;--fx-danger-soft:#ffe7eb;--fx-success:#28a745;--fx-success-soft:#e7f5eb;--fx-bg:#f3f6f9;--fx-surface:#fff;--fx-surface-muted:#edf0f3;--fx-border:#d9dee5;--fx-text:#495057;--fx-muted:#91a1ad;--fx-radius:4px;--fx-radius-lg:8px;--fx-shadow:0 2px 8px rgba(50,58,70,.10);--fx-font:"Century Gothic","Avenir Next",Avenir,Arial,sans-serif;} html{font-size:.85rem}body{font-family:var(--fx-font);background:var(--fx-bg);color:var(--fx-text)} body,.form-control,.form-select,.btn,.table{font-family:var(--fx-font)} a{color:var(--fx-purple);text-decoration:none}a:hover{color:#5140c9} :focus-visible{outline:2px solid var(--fx-blue);outline-offset:2px} .fx-app{min-height:100%;padding:1.25rem}.fx-page-title{background:var(--fx-navy);color:#fff;text-align:center;padding:1rem 1.25rem;border-radius:var(--fx-radius);box-shadow:var(--fx-shadow);text-transform:uppercase;font-weight:500;margin-bottom:1.5rem}.fx-page-title-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.fx-page-title .fx-title-actions{justify-self:end}.fx-page-title h1{font-size:1rem;margin:0;font-weight:500}.fx-page-subtitle{font-size:.78rem;color:rgba(255,255,255,.72);margin-top:.25rem} .fx-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;background:#e9ecef;border-radius:var(--fx-radius) var(--fx-radius) 0 0;border-bottom:0}.fx-tabs .nav-item{flex:1;min-width:max-content}.fx-tabs .nav-link{width:100%;border:0;border-radius:0;padding:.95rem 1.25rem;color:#65717c;text-transform:uppercase;font-size:.82rem;font-weight:500;white-space:nowrap}.fx-tabs .nav-link:hover{background:rgba(0,113,188,.06);color:var(--fx-blue)}.fx-tabs .nav-link.active{background:var(--fx-purple);color:#fff}.fx-tabs-line{background:transparent;border-bottom:1px solid var(--fx-border);border-radius:0}.fx-tabs-line .nav-item{flex:0 0 auto}.fx-tabs-line .nav-link.active{background:transparent;color:var(--fx-blue);box-shadow:inset 0 -3px var(--fx-blue)}.fx-tab-content{background:var(--fx-surface);border:1px solid var(--fx-border);border-top:0;padding:1.5rem;border-radius:0 0 var(--fx-radius) var(--fx-radius)} .fx-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.fx-toolbar-title{font-weight:600;color:var(--fx-navy)} .card{border:1px solid rgba(0,0,0,.06);border-radius:var(--fx-radius);box-shadow:var(--fx-shadow)}.card-header{background:#fff;border-bottom:1px solid var(--fx-border)}.fx-card-flat{box-shadow:none}.fx-section{overflow:hidden}.fx-section-header{display:flex;align-items:center;gap:.65rem;color:#fff;padding:.85rem 1.1rem;font-size:.85rem;font-weight:600}.fx-section-primary{background:var(--fx-navy)}.fx-section-blue{background:#4e80d8}.fx-section-purple{background:var(--fx-purple)}.fx-section-teal{background:var(--fx-teal)}.fx-section-cyan{background:var(--fx-cyan)}.fx-ribbon{display:inline-flex;align-items:center;gap:.55rem;background:#4e80d8;color:#fff;padding:.55rem 1rem;margin-left:-1.5rem;box-shadow:0 3px 6px rgba(0,0,0,.14);position:relative;text-transform:uppercase;font-weight:600}.fx-ribbon:after{content:"";position:absolute;left:0;bottom:-9px;border-top:9px solid #2759aa;border-left:9px solid transparent}.fx-icon-circle{width:50px;height:50px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex:none}.fx-icon-blue{background:var(--fx-blue-soft);color:var(--fx-blue)}.fx-icon-purple{background:var(--fx-purple-soft);color:var(--fx-purple)}.fx-icon-teal{background:var(--fx-teal-soft);color:var(--fx-teal)}.fx-icon-warning{background:var(--fx-warning-soft);color:var(--fx-warning)} .btn{border-radius:var(--fx-radius);font-weight:500}.btn-primary{--bs-btn-bg:#4e80d8;--bs-btn-border-color:#4e80d8;--bs-btn-hover-bg:#3f70c5;--bs-btn-hover-border-color:#3f70c5;--bs-btn-active-bg:#315ea9;--bs-btn-active-border-color:#315ea9}.btn-fenix{background:var(--fx-navy);border-color:var(--fx-navy);color:#fff}.btn-fenix:hover,.btn-fenix:focus{background:#001e68;border-color:#001e68;color:#fff}.btn-outline-primary{--bs-btn-color:#4e80d8;--bs-btn-border-color:#4e80d8;--bs-btn-hover-bg:#4e80d8;--bs-btn-hover-border-color:#4e80d8}.btn-pill{border-radius:50rem}.btn-loading .spinner-border{display:inline-block} .form-label{font-size:.78rem;font-weight:600;color:#4e80d8;text-transform:uppercase;margin-bottom:.35rem}.form-control,.form-select,.input-group-text{border-color:#cfd6df;min-height:40px;border-radius:var(--fx-radius)}.form-control:focus,.form-select:focus{border-color:var(--fx-blue);box-shadow:0 0 0 3px rgba(0,113,188,.15)}.form-control::placeholder{color:#a5b0ba}.form-text{color:var(--fx-muted);font-size:.74rem}.form-check-input:checked{background-color:var(--fx-blue);border-color:var(--fx-blue)}.fx-field-card{border:1px solid #cfd6df;border-radius:var(--fx-radius);padding:.65rem .8rem;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08)}.fx-field-card .form-label{display:block;margin:0}.fx-field-card .form-control,.fx-field-card .form-select{border:0;box-shadow:none!important;padding:0;min-height:24px}.fx-required{color:#e682b4}.is-invalid{border-color:var(--fx-danger)!important}.invalid-feedback{color:var(--fx-danger)} .table{color:var(--fx-text);vertical-align:middle}.table>:not(caption)>*>*{padding:.65rem .75rem;border-color:#d7dde4}.table thead th{background:#9bc5e7;color:#24323c;font-weight:500;white-space:nowrap}.table-hover>tbody>tr:hover>*{background:var(--fx-blue-soft)}.fx-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.pagination{gap:.25rem}.page-link{border:0;color:var(--fx-text);border-radius:50%!important;min-width:30px;height:30px;display:grid;place-items:center;padding:0}.page-item.active .page-link{background:var(--fx-purple)} .fx-badge{display:inline-flex;align-items:center;border-radius:3px;padding:.25rem .45rem;font-size:.7rem;font-weight:600;box-shadow:0 2px 5px rgba(0,0,0,.12)}.fx-badge-primary{background:var(--fx-navy);color:#fff}.fx-badge-purple{background:var(--fx-purple);color:#fff}.fx-badge-cyan{background:var(--fx-cyan);color:#fff}.fx-badge-success{background:var(--fx-success);color:#fff}.fx-badge-warning{background:var(--fx-warning);color:#553900}.fx-badge-danger{background:var(--fx-danger);color:#fff}.fx-status-panel{border:1px solid var(--fx-border);padding:1rem;border-radius:var(--fx-radius);background:#fff}.fx-status-danger{border:2px solid var(--fx-danger)}.fx-status-title{font-size:.78rem;font-weight:600}.fx-status-value{font-weight:700;color:var(--fx-danger);text-transform:uppercase} .alert{border-radius:var(--fx-radius);border:0}.alert-primary{background:var(--fx-blue-soft);color:var(--fx-blue-dark)}.alert-success{background:var(--fx-success-soft);color:#146c32}.alert-warning{background:var(--fx-warning-soft);color:#775400}.alert-danger{background:var(--fx-danger-soft);color:#a51d30}.progress{height:20px;background:#e5e9ed;border-radius:3px}.progress-bar{background:var(--fx-cyan)} .fx-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.fx-metric{display:flex;align-items:center;gap:.8rem;padding:.8rem 0}.fx-metric-icon{width:32px;height:32px;border-radius:4px;display:grid;place-items:center;color:#fff}.fx-metric-label{font-size:.72rem;color:var(--fx-muted)}.fx-metric-value{font-weight:600;color:var(--fx-text)} .modal-content{border:0;border-radius:var(--fx-radius-lg);overflow:hidden;box-shadow:0 15px 40px rgba(0,0,0,.20)}.fx-modal-header{background:var(--fx-navy);color:#fff;border:0}.offcanvas{--bs-offcanvas-width:min(400px,92vw)}.fx-offcanvas .offcanvas-header{background:var(--fx-navy);color:#fff}.fx-offcanvas .btn-close{filter:invert(1)}.fx-document-preview{min-height:200px;background:var(--fx-surface-muted);border:1px solid #cfd6df;border-radius:var(--fx-radius);display:grid;place-items:center;text-align:center;color:var(--fx-muted);padding:2rem}.fx-upload{border:1px dashed #b7c1cb;border-radius:var(--fx-radius);padding:1rem;background:#fafbfc} .fx-stepper{display:flex;gap:0;counter-reset:step}.fx-step{flex:1;text-align:center;position:relative;color:var(--fx-muted);font-size:.76rem}.fx-step:before{counter-increment:step;content:counter(step);width:30px;height:30px;border-radius:50%;display:grid;place-items:center;margin:0 auto .4rem;background:#e7ebef;color:#697681;position:relative;z-index:2}.fx-step:after{content:"";height:2px;background:#e7ebef;position:absolute;top:14px;left:-50%;width:100%;z-index:1}.fx-step:first-child:after{display:none}.fx-step.active:before,.fx-step.complete:before{background:var(--fx-blue);color:#fff}.fx-step.complete:after,.fx-step.active:after{background:var(--fx-blue)} .fx-empty{text-align:center;padding:3rem 1rem;color:var(--fx-muted)}.fx-skeleton{background:linear-gradient(90deg,#eef1f4,#dfe4e9,#eef1f4);background-size:200% 100%;animation:fx-shimmer 1.3s infinite;border-radius:3px}.fx-skeleton-line{height:12px}.fx-spinner{width:48px;height:48px;border:6px solid #e9edf1;border-top-color:var(--fx-navy);border-radius:50%;animation:fx-spin 1s linear infinite} .fx-footer{padding:1.25rem 0;color:var(--fx-muted);font-size:.76rem}.fx-code{background:#172033;color:#e9f1ff;border-radius:4px;padding:1rem;overflow:auto;font:12px/1.55 Consolas,monospace}.fx-doc-section{margin-bottom:2rem}.fx-doc-section>h2{font-size:1.05rem;color:var(--fx-navy);margin-bottom:.35rem}.fx-doc-section>.lead{font-size:.82rem;color:var(--fx-muted)} @keyframes fx-spin{to{transform:rotate(360deg)}}@keyframes fx-shimmer{to{background-position:-200% 0}} @media(max-width:991.98px){.fx-metric-grid{grid-template-columns:repeat(2,1fr)}.fx-app{padding:1rem}.fx-page-title-inner{grid-template-columns:1fr}.fx-page-title .fx-title-actions{justify-self:center;margin-top:.7rem}} @media(max-width:575.98px){.fx-metric-grid{grid-template-columns:1fr}.fx-tab-content{padding:1rem}.fx-toolbar{align-items:stretch;flex-direction:column}.fx-toolbar .btn{width:100%}.fx-page-title{padding:.85rem}.fx-tabs .nav-link{padding:.8rem .9rem}} @media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}