:root{--navy: #0b1f33;--navy-2: #122b45;--steel: #1e5f8a;--steel-light: #2f7eae;--action: #3a9ad9;--action-hover: #2f86bf;--white: #ffffff;--gray-50: #f4f7fa;--gray-100: #e8eef4;--gray-200: #d5dee8;--gray-300: #b8c5d4;--gray-500: #6b7c8f;--gray-700: #3d4d5c;--gray-900: #1a2430;--success: #2e7d4f;--success-bg: #e6f5ec;--warning: #c9a227;--warning-bg: #fff8e1;--danger: #c0392b;--danger-bg: #fdecea;--sidebar-width: 252px;--sidebar-collapsed: 76px;--topbar-height: 58px;--radius: 10px;--shadow: 0 1px 2px rgba(11, 31, 51, .06), 0 4px 14px rgba(11, 31, 51, .04);--font: "Segoe UI", "Candara", "Trebuchet MS", sans-serif;--font-display: "Segoe UI Semibold", "Segoe UI", Candara, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,app-root{height:100%;margin:0;font-family:var(--font);color:var(--gray-900);background:var(--gray-50);font-size:14px;line-height:1.45}app-root{display:block}button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px;max-width:100%;box-sizing:border-box}a{color:var(--steel);text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5rem;color:var(--navy)}h1{font-size:1.45rem}h2{font-size:1.2rem}h3{font-size:1.05rem}.page{padding:.25rem .15rem 1.5rem;max-width:1400px}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.page-header p{margin:.15rem 0 0;color:var(--gray-500)}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.card+.card{margin-top:1rem}.grid-2>.card+.card,.grid-3>.card+.card,.grid-4>.card+.card,.grid-6>.card+.card,.grid-kpi>.card+.card{margin-top:0}.grid-kpi{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem}@media(max-width:1200px){.grid-kpi{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.grid-kpi{grid-template-columns:1fr}}.card-title{font-size:.95rem;font-weight:600;color:var(--navy);margin-bottom:.75rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.grid-6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}@media(max-width:1200px){.grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.grid-3,.grid-2,.grid-4,.grid-6{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid transparent;border-radius:6px;padding:.45rem .9rem;cursor:pointer;font-weight:600;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--action);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--action-hover)}.btn-secondary{background:var(--white);border-color:var(--gray-300);color:var(--navy)}.btn-secondary:hover:not(:disabled){background:var(--gray-100)}.btn-success{background:var(--success);color:var(--white)}.btn-danger{background:var(--danger);color:var(--white)}.btn-ghost{background:transparent;color:var(--steel)}.btn-ghost:hover{background:var(--gray-100)}.btn-sm{padding:.25rem .55rem;font-size:.8rem}.table-wrap{overflow:auto;border:1px solid var(--gray-200);border-radius:var(--radius)}table.data{width:100%;border-collapse:collapse;background:var(--white)}table.data th,table.data td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid var(--gray-100);vertical-align:middle}table.data th{background:var(--navy);color:var(--white);font-weight:600;font-size:.78rem;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}table.data tr:hover td{background:#f7fafc}table.data .actions{display:flex;flex-wrap:wrap;gap:.35rem}table.data tr.row-deleted td{opacity:.72}.deleted-tag{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;border-radius:4px;font-size:.72rem;font-weight:600;background:#e5e7eb;color:#4b5563;vertical-align:middle}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.form-grid,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:.78rem;font-weight:600;color:var(--gray-700)}.field input,.field select,.field textarea{border:1px solid var(--gray-300);border-radius:6px;padding:.45rem .6rem;background:var(--white);color:var(--gray-900)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(58,154,217,.35);border-color:var(--action)}.field .hint{font-size:.75rem;color:var(--gray-500)}.field .error{font-size:.75rem;color:var(--danger)}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger)}.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin-bottom:.85rem}.filters .field{min-width:160px}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:#8a6d00}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:#e7f3fb;color:var(--steel)}.badge-neutral{background:var(--gray-100);color:var(--gray-700)}.tabs{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--gray-200);margin-bottom:1rem}.tabs button{border:none;background:transparent;padding:.65rem .9rem;cursor:pointer;color:var(--gray-500);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.active{color:var(--steel);border-bottom-color:var(--action)}.modal-backdrop{position:fixed;inset:0;background:#0b1f3373;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--white);border-radius:10px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:0 12px 40px #00000040}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.9rem 1rem;border-bottom:1px solid var(--gray-100)}.modal-footer{border-bottom:none;border-top:1px solid var(--gray-100);justify-content:flex-end}.modal-body{padding:1rem}.alert-box{border-radius:8px;padding:.75rem .9rem;border:1px solid;margin-bottom:.75rem}.alert-box.critica{background:var(--danger-bg);border-color:#f5c2c0;color:var(--danger)}.alert-box.advertencia{background:var(--warning-bg);border-color:#f0e0a0;color:#8a6d00}.alert-box.info{background:#e7f3fb;border-color:#b7d8ef;color:var(--steel)}.empty{text-align:center;padding:2rem 1rem;color:var(--gray-500)}.muted{color:var(--gray-500)}.muted.small{font-size:.85rem;margin:.25rem 0 0}.banner-warning{margin:0;padding:.75rem 1rem;border-radius:6px;background:#fff8e6;border:1px solid #e6c96a;color:#5c4a00}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-weight:500;cursor:pointer}.checkbox-row.exceptional{color:var(--gray-700);font-style:italic}.checkbox-row input[type=checkbox]{width:auto;margin:0}.name-preview{margin:0;padding:.5rem .75rem;background:var(--gray-100);border-radius:6px;color:var(--gray-700)}.section-title{margin:.25rem 0 0;font-size:1rem;font-weight:700;color:var(--navy)}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.spacer{flex:1}.linkish{background:none;border:none;color:var(--action);cursor:pointer;font-weight:600;padding:0}.linkish:hover{text-decoration:underline}.clickable{cursor:pointer}.clickable:hover{outline:2px solid rgba(58,154,217,.35)}.form-grid .full{grid-column:1/-1}.btn-outline{background:var(--white);border-color:var(--gray-300);color:var(--navy)}.btn-outline:hover:not(:disabled){background:var(--gray-100)}.banner-error{color:var(--danger);margin:0 0 .75rem}.banner-info{color:var(--gray-700);margin:0 0 .75rem}.state-panel{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.25rem;border:1px solid var(--gray-200);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow)}.form-actions{grid-column:1/-1;display:flex;gap:.5rem;justify-content:flex-end;margin-top:.35rem}.catalog-plus{display:flex;gap:.35rem;align-items:flex-end}.catalog-plus select{flex:1}.modal-wide{width:min(720px,100%)}.search-field{min-width:280px;flex:1}
