:root{
  --navy:#00205b;--navy2:#051d46;--teal:#007b85;--teal2:#009aa5;--green:#70ad47;--yellow:#ffb600;
  --bg:#f4f7fb;--panel:#fff;--text:#334155;--muted:#64748b;--line:#dce5ec;--soft:#edf6f7;
  --red:#c62828;--orange:#c66a00;--shadow:0 10px 30px rgba(15,23,42,.08);--radius:18px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,var(--navy2),var(--navy));color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:50;box-shadow:12px 0 36px rgba(0,32,91,.13)}.brand{display:flex;align-items:center;gap:12px;padding:4px 6px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-logo{width:66px;height:66px;object-fit:contain;flex:none}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong{font-size:17px;line-height:1.1}.brand-copy span{font-size:12px;color:#bfe7ea;margin-top:4px}.nav{display:flex;flex-direction:column;gap:5px;padding-top:14px;overflow:auto}.nav-item{width:100%;border:0;background:transparent;color:#dce9f5;display:flex;align-items:center;gap:11px;text-align:left;padding:11px 12px;border-radius:12px;font-weight:750;transition:.18s}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(0,123,133,.95),rgba(0,154,165,.75));color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.nav-icon{width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-size:13px}.nav-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8fb7c6;font-weight:900;padding:13px 12px 4px}.sidebar-footer{margin-top:auto;padding:16px 8px 2px;border-top:1px solid rgba(255,255,255,.12)}.storage-badge{font-size:11px;font-weight:900;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:7px 9px;display:inline-flex;align-items:center;gap:7px}.dot{width:8px;height:8px;border-radius:50%;background:#8ed15e;box-shadow:0 0 0 4px rgba(142,209,94,.12)}.sidebar-footer small{display:block;color:#a9c8d6;line-height:1.5;margin-top:10px}.main{margin-left:270px;min-height:100vh}.topbar{position:sticky;top:0;z-index:35;background:rgba(244,247,251,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,229,236,.9);display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 24px}.topbar-left{display:flex;align-items:center;gap:12px}.eyebrow{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--teal);font-weight:950}.topbar h1{margin:2px 0 0;color:var(--navy);font-size:27px;line-height:1.05}.menu-toggle{display:none;border:0;background:#fff;color:var(--navy);border-radius:10px;padding:8px 10px;box-shadow:var(--shadow)}.topbar-actions{display:flex;align-items:end;gap:9px}.contract-picker{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.contract-picker select{min-width:250px;max-width:330px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 34px 10px 11px;color:var(--navy);font-weight:800}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:900;transition:.16s;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--teal);color:#fff;box-shadow:0 6px 18px rgba(0,123,133,.18)}.btn-navy{background:var(--navy);color:#fff}.btn-green{background:var(--green);color:#fff}.btn-yellow{background:var(--yellow);color:var(--navy)}.btn-danger{background:#fff0ef;color:var(--red);border:1px solid #f4c1bd}.btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}.btn-sm{padding:7px 10px;font-size:12px}.app-alert{display:none;margin:16px 24px 0;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:750}.app-alert.show{display:block}.app-alert.info{background:#eaf6f7;color:#075c63;border:1px solid #bfe1e4}.app-alert.success{background:#eef8e9;color:#365d24;border:1px solid #d0e7c3}.app-alert.warn{background:#fff7df;color:#735400;border:1px solid #f3dda0}.view{padding:22px 24px 36px;max-width:1600px;margin:0 auto}.hero-panel{background:linear-gradient(135deg,var(--navy),var(--teal));color:#fff;border-radius:24px;padding:22px 24px;box-shadow:0 16px 45px rgba(0,32,91,.14);position:relative;overflow:hidden}.hero-panel:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-90px;top:-120px;background:rgba(255,255,255,.07)}.hero-panel>*{position:relative;z-index:1}.hero-panel h2{font-size:26px;margin:0 0 6px}.hero-panel p{margin:0;color:#d5f0f2;max-width:900px;line-height:1.5}.hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.grid{display:grid;gap:14px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;box-shadow:0 4px 16px rgba(15,23,42,.035)}.metric .k{font-size:12px;color:var(--muted);font-weight:850}.metric .v{font-size:30px;line-height:1;color:var(--navy);font-weight:950;margin-top:8px}.metric .sub{font-size:11px;color:var(--muted);margin-top:7px}.metric.alert-metric{border-left:5px solid var(--yellow)}.section{margin-top:18px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:9px}.section-head h3{margin:0;color:var(--navy);font-size:20px}.section-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:0 5px 18px rgba(15,23,42,.04)}.panel-title{margin:0 0 12px;color:var(--navy);font-size:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;background:#fff;min-width:780px}.table th{background:#f3f7fa;color:var(--navy);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.45px;padding:10px 12px;border-bottom:1px solid var(--line)}.table td{padding:11px 12px;border-bottom:1px solid #eef2f5;font-size:13px;vertical-align:top}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#fbfdfe}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:950;white-space:nowrap}.tag.teal{background:#e5f4f5;color:#006c75}.tag.green{background:#eef8e8;color:#3d7028}.tag.yellow{background:#fff3c8;color:#795b00}.tag.red{background:#fde9e7;color:#9d241e}.tag.navy{background:#e9eef8;color:#173f78}.tag.gray{background:#eef2f5;color:#53616e}.status-row{display:flex;gap:6px;flex-wrap:wrap}.status-chip{padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900;border:1px solid var(--line);background:#fff;color:var(--muted)}.status-chip.current{background:var(--teal);color:#fff;border-color:var(--teal)}.status-chip.done{background:#eaf6ef;color:#356824;border-color:#cde5c1}.status-chip.locked{opacity:.5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label,.field-label{font-size:11px;font-weight:900;color:var(--navy)}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:#fff;color:var(--text);outline:none;transition:.15s}.textarea{min-height:90px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:#7bbfc5;box-shadow:0 0 0 3px rgba(0,123,133,.08)}.actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}.empty{padding:28px;text-align:center;color:var(--muted);background:#fbfdfe;border:1px dashed #cbd7df;border-radius:16px}.empty strong{display:block;color:var(--navy);margin-bottom:5px}.score-card{display:grid;grid-template-columns:1fr 105px 110px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f4}.score-card:last-child{border-bottom:0}.score-card .name{font-weight:850;color:var(--navy)}.score-card .desc{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}.score-select{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;font-weight:850;color:var(--navy)}.weight{font-size:11px;font-weight:900;color:var(--teal);text-align:right}.result-card{border-radius:18px;padding:16px;border:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdfe)}.result-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:950;color:var(--muted)}.result-value{font-size:27px;font-weight:950;color:var(--navy);margin-top:3px}.progress{height:10px;border-radius:999px;background:#e7edf2;overflow:hidden}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),#22a6ad)}.callout{padding:13px 14px;border-radius:13px;font-size:12px;line-height:1.5}.callout.info{background:#eaf6f7;border-left:4px solid var(--teal)}.callout.warn{background:#fff7df;border-left:4px solid var(--yellow)}.callout.danger{background:#fff0ef;border-left:4px solid var(--red)}.callout.success{background:#eef8e9;border-left:4px solid var(--green)}.check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.check-item.critical{border-left:4px solid var(--yellow)}.check-top{display:flex;justify-content:space-between;gap:10px}.check-item h4{font-size:13px;color:var(--navy);margin:0}.check-item p{font-size:11px;color:var(--muted);line-height:1.4;margin:5px 0 0}.tri-state{display:flex;gap:5px;margin-top:10px}.tri-state button{border:1px solid var(--line);background:#fff;color:var(--muted);padding:6px 8px;border-radius:8px;font-size:10px;font-weight:900}.tri-state button.active.yes{background:#eaf6ef;color:#356824;border-color:#cde5c1}.tri-state button.active.pending{background:#fff3c8;color:#795b00;border-color:#ecd88f}.tri-state button.active.no{background:#fde9e7;color:#9d241e;border-color:#f0c0bc}.interface-card{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:8px;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fbfdfe}.interface-card .input{font-size:11px;padding:8px}.toolbar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.toolbar-left,.toolbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.search{min-width:250px}.risk-row{display:grid;grid-template-columns:1fr 100px 70px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #eef2f5}.risk-row:last-child{border-bottom:0}.range{accent-color:var(--teal);width:100%}.range-value{font-weight:950;color:var(--navy);text-align:center;background:#f3f7fa;border-radius:9px;padding:7px}.dim-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.dim-card{padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}.dim-card h4{font-size:11px;color:var(--navy);margin:0 0 8px;min-height:30px}.dim-card .score{font-size:24px;font-weight:950;color:var(--teal)}.dim-card input{width:100%;accent-color:var(--teal)}.timeline{display:flex;gap:0;align-items:center;overflow:auto;padding:5px 0 4px}.timeline-step{display:flex;align-items:center;min-width:max-content}.timeline-step .node{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e9eef3;color:#73808d;font-size:10px;font-weight:950}.timeline-step .node.done{background:var(--green);color:#fff}.timeline-step .node.current{background:var(--teal);color:#fff;box-shadow:0 0 0 5px rgba(0,123,133,.10)}.timeline-step .label{font-size:10px;font-weight:800;margin-left:6px;color:var(--muted)}.timeline-step:after{content:"";width:26px;height:2px;background:#dbe4ea;margin:0 8px}.timeline-step:last-child:after{display:none}.ref-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}.ref-card h4{margin:0;color:var(--navy)}.ref-card p{font-size:12px;color:var(--muted);line-height:1.5}.ref-badge{display:inline-flex;font-size:9px;font-weight:950;letter-spacing:.8px;text-transform:uppercase;color:#fff;background:var(--teal);border-radius:999px;padding:5px 8px;margin-bottom:8px}.modal-backdrop{position:fixed;inset:0;background:rgba(0,20,50,.52);z-index:100;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.25);padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.modal h2{margin:3px 0 0;color:var(--navy)}.icon-btn{border:0;background:#f1f5f8;width:36px;height:36px;border-radius:10px;color:var(--navy);font-size:24px}.kicker{font-size:11px;font-weight:950;color:var(--teal);text-transform:uppercase;letter-spacing:1px}.muted{color:var(--muted)}.small{font-size:11px}.strong{font-weight:900}.text-navy{color:var(--navy)}.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-0{margin-bottom:0}.flex{display:flex}.wrap{flex-wrap:wrap}.gap-8{gap:8px}.between{justify-content:space-between}.center{align-items:center}.right{text-align:right}.divider{height:1px;background:var(--line);margin:14px 0}.print-only{display:none}
@media(max-width:1180px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.dim-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar-actions .btn-ghost{display:none}.contract-picker select{min-width:210px}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-toggle{display:block}.topbar{padding:13px 14px}.topbar-actions{display:none}.view{padding:15px}.app-alert{margin:12px 15px 0}.grid-2,.grid-3,.grid-4,.form-grid,.check-list{grid-template-columns:1fr}.dim-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.interface-card{grid-template-columns:1fr 1fr}.score-card{grid-template-columns:1fr 80px 80px}.hero-panel{padding:18px}.hero-panel h2{font-size:22px}}
@media(max-width:520px){.dim-grid,.interface-card{grid-template-columns:1fr}.score-card{grid-template-columns:1fr}.weight{text-align:left}.topbar h1{font-size:22px}.metric .v{font-size:26px}}
@media print{body{background:#fff}.sidebar,.topbar,.app-alert,.no-print,.btn,.modal-backdrop{display:none!important}.main{margin:0}.view{padding:0;max-width:none}.hero-panel{box-shadow:none}.panel,.metric,.result-card{box-shadow:none}.print-only{display:block}.table-wrap{overflow:visible}.table{min-width:0;font-size:10px}.section{break-inside:avoid-page}}

/* UX guiada */
.guide-strip{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px;box-shadow:0 4px 16px rgba(15,23,42,.035);margin-bottom:16px}
.guide-step{display:flex;gap:10px;align-items:flex-start}.guide-step .guide-num{width:34px;height:34px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:950;flex:none}.guide-step h3{margin:0;color:var(--navy);font-size:15px}.guide-step p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.guide-box{border-left:1px solid var(--line);padding-left:14px}.guide-box b{display:block;color:var(--teal);font-size:10px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px}.guide-box span{font-size:12px;line-height:1.45;color:var(--text)}
.route-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.route-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:12px;min-height:132px;display:flex;flex-direction:column;position:relative}.route-card.done{border-color:#cde5c1;background:#f5fbf1}.route-card.current{border:2px solid var(--teal);box-shadow:0 7px 22px rgba(0,123,133,.12)}.route-card.locked{opacity:.68}.route-card .route-no{width:28px;height:28px;border-radius:9px;background:#eef3f6;color:var(--navy);display:grid;place-items:center;font-weight:950;font-size:12px}.route-card.done .route-no{background:var(--green);color:#fff}.route-card.current .route-no{background:var(--teal);color:#fff}.route-card h4{margin:9px 0 4px;color:var(--navy);font-size:12px;line-height:1.2}.route-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.35}.route-card .route-state{margin-top:auto;padding-top:8px;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.5px;color:var(--teal)}.route-card button{position:absolute;inset:0;border:0;background:transparent;border-radius:15px}
.workflow-progress{display:flex;align-items:center;gap:12px}.workflow-progress .progress{flex:1}.workflow-progress strong{color:var(--navy);font-size:13px}
.step-nav{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding:14px 0 2px}.step-nav .next-copy{display:flex;flex-direction:column;text-align:left}.step-nav .next-copy small{font-size:9px;text-transform:uppercase;letter-spacing:.8px;opacity:.75}.step-nav .next-copy strong{font-size:12px}
.product-card{background:linear-gradient(135deg,#eef8e9,#eaf6f7);border:1px solid #cfe4dc;border-radius:18px;padding:16px}.product-card h3{margin:0;color:var(--navy);font-size:17px}.product-card p{margin:5px 0 12px;color:var(--muted);font-size:12px;line-height:1.5}.product-actions{display:flex;gap:8px;flex-wrap:wrap}
.didactic-note{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;background:#fff8e1;border-left:5px solid var(--yellow);border-radius:14px;padding:13px 14px}.didactic-note .icon{width:36px;height:36px;border-radius:50%;background:#fff1b5;display:grid;place-items:center}.didactic-note b{color:var(--navy)}.didactic-note p{margin:3px 0 0;font-size:12px;line-height:1.45;color:var(--text)}
@media(max-width:1180px){.route-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.guide-strip{grid-template-columns:1fr 1fr}.guide-step{grid-column:1/-1}}
@media(max-width:700px){.route-grid{grid-template-columns:1fr 1fr}.guide-strip{grid-template-columns:1fr}.guide-box{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:10px}.step-nav{position:sticky;bottom:0;background:rgba(244,247,251,.96);padding:10px 0}.product-actions .btn{flex:1}.route-card{min-height:120px}}
