:root{--apoyo-blue:#00618f;--apoyo-navy:#001040;--apoyo-cyan:#0098d0;--apoyo-aqua:#60b9c6;--apoyo-bg:#f3f8fb;--apoyo-line:#d4e3ea;--apoyo-text:#203747;--apoyo-green:#247a55;--apoyo-red:#b42318;--apoyo-orange:#b54708;--sidebar:268px}*{box-sizing:border-box}body{font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--apoyo-bg);color:var(--apoyo-text);font-size:.94rem}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#001a4d,#000d2e);color:#fff;z-index:1030;overflow-y:auto}.brand{display:flex;align-items:center;gap:.8rem;padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff;color:var(--apoyo-blue);font-weight:800;font-size:1.2rem}.brand small{display:block;color:#b8d3e6}.side-section{padding:.9rem .75rem .3rem;color:#60b9c6;text-transform:uppercase;font-size:.69rem;letter-spacing:.12em}.side-link{display:flex;align-items:center;gap:.75rem;padding:.68rem .9rem;margin:.12rem .55rem;color:#d9e9f4;text-decoration:none;border-radius:.55rem}.side-link:hover,.side-link.active{background:rgba(255,255,255,.13);color:#fff}.side-icon{width:1.25rem;text-align:center}.main{margin-left:var(--sidebar);min-height:100vh}.topbar{position:sticky;top:0;z-index:1020;background:rgba(255,255,255,.96);border-bottom:1px solid var(--apoyo-line);backdrop-filter:blur(8px);padding:.75rem 1.25rem}.content{padding:1.35rem;max-width:1680px}.page-title{font-size:1.5rem;font-weight:750;color:var(--apoyo-navy);margin:0}.page-subtitle{color:#637789;margin:.2rem 0 0}.card{border:1px solid var(--apoyo-line);border-radius:.85rem;box-shadow:0 2px 10px rgba(20,61,91,.045)}.card-header{background:#fff;border-bottom:1px solid var(--apoyo-line);font-weight:700}.kpi{height:100%;padding:1.1rem;background:#fff;border:1px solid var(--apoyo-line);border-radius:.85rem}.kpi-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#647789}.kpi-value{font-size:1.85rem;font-weight:780;color:var(--apoyo-navy);line-height:1.2}.kpi.critical{border-left:4px solid var(--apoyo-red)}.kpi.warning{border-left:4px solid #e0a008}.kpi.success{border-left:4px solid var(--apoyo-green)}.table{--bs-table-bg:transparent}.table thead th{background:#edf3f8;color:#345268;font-size:.76rem;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap;position:sticky;top:0;z-index:1}.table td{vertical-align:middle}.table-responsive{max-height:68vh}.badge-status{font-size:.72rem;padding:.4rem .58rem;border-radius:999px}.status-draft,.status-pending,.status-submitted{background:#e8f1fb;color:#00618f}.status-approved,.status-posted,.status-complete_signed,.status-completed{background:#e7f6ee;color:#20744e}.status-rejected,.status-cancelled,.status-expired,.status-refused,.status-annulled,.status-reversed{background:#fdeceb;color:#a52a20}.status-warning,.status-partial,.status-pending_signature,.status-pending_approval,.status-awaiting_signature,.status-partially_received{background:#fff2d8;color:#915d00}.priority-critical{color:#9f1d17;background:#fde8e7}.priority-urgent{color:#9a3e06;background:#ffead5}.priority-preventive{color:#795600;background:#fff5cc}.priority-informative{color:#00618f;background:#e7f2fc}.form-label{font-weight:650;color:#365166}.form-control,.form-select{border-color:#cbd9e3}.form-control:focus,.form-select:focus{border-color:#60b9c6;box-shadow:0 0 0 .2rem rgba(0,97,143,.13)}.required:after{content:" *";color:#b42318}.btn-primary{--bs-btn-bg:var(--apoyo-blue);--bs-btn-border-color:var(--apoyo-blue);--bs-btn-hover-bg:#004a70}.step-card{border-left:4px solid var(--apoyo-blue)}.signature-pad{width:100%;height:280px;border:2px dashed #91a9ba;background:#fff;border-radius:.75rem;touch-action:none;cursor:crosshair}.signature-meta{background:#edf4f9;border-radius:.65rem;padding:1rem}.document-sheet{background:#fff;border:1px solid #b9c5ce;padding:1rem}.timeline{border-left:2px solid #c8d7e2;margin-left:.5rem;padding-left:1rem}.timeline-item{position:relative;margin-bottom:1rem}.timeline-item:before{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--apoyo-blue);left:-1.34rem;top:.25rem}.empty-state{padding:3rem;text-align:center;color:#6d8190}.mobile-menu{display:none}.text-mono{font-family:"Cascadia Mono",Consolas,monospace}.alert-count{min-width:1.35rem;height:1.35rem;display:inline-grid;place-items:center;border-radius:999px;background:#d92d20;color:#fff;font-size:.7rem}.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.94);border-top:1px solid var(--apoyo-line);padding:.8rem;z-index:4}.permission-matrix-wrap{max-height:70vh}.permission-matrix{min-width:980px}.permission-matrix thead th{top:0;z-index:3}.permission-matrix .permission-action-column{position:sticky;left:0;z-index:2;min-width:340px;max-width:420px;background:#fff}.permission-matrix thead .permission-action-column{z-index:4;background:#edf3f8}.permission-matrix .permission-role-column{min-width:135px;max-width:170px}.permission-matrix .permission-module-row th{background:#dfeaf2;color:var(--apoyo-navy);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.permission-matrix .form-check-input{width:1.25rem;height:1.25rem}@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.mobile-menu{display:inline-flex}.content{padding:1rem}.topbar{padding:.65rem .85rem}}@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0}.content{padding:0}.card{box-shadow:none}}
