:root{--navy:#062a55;--navy2:#0b3d73;--orange:#f59a16;--ink:#172033;--muted:#6c7888;--bg:#f3f6f9;--line:#dfe5eb}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--navy2);text-decoration:none}aside{position:fixed;inset:0 auto 0 0;width:245px;background:linear-gradient(180deg,#031f40,#062a55);padding:22px 16px;display:flex;flex-direction:column;color:#fff}.side-logo{width:160px;height:100px;object-fit:contain;margin:0 auto 20px}nav{display:grid;gap:6px}nav a{color:#dbe8f6;padding:11px 13px;border-radius:8px}nav a:hover{background:#ffffff14;color:#fff}.aside-user{margin-top:auto;border-top:1px solid #ffffff20;padding:16px 8px;display:grid;gap:4px}.aside-user small{color:#f8b34b}.aside-user a{color:#fff;margin-top:8px}.app{margin-left:245px;padding:0 30px 30px}.app>header{height:100px;display:flex;align-items:center;justify-content:space-between}.app h1{margin:3px 0 0;color:var(--navy);font-size:26px}.eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--orange);font-weight:800}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.stat,.panel,.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 5px 18px #18324c0b}.stat{padding:20px;border-top:3px solid var(--navy)}.stat.accent{border-top-color:var(--orange)}.stat span,.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:25px;color:var(--navy);margin:7px 0}.panel{padding:20px;margin-bottom:20px}.panel h2{margin:0 0 16px;color:var(--navy);font-size:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-head h2{margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#edf2f7;color:var(--navy);text-align:left;padding:11px 10px;white-space:nowrap}td{padding:11px 10px;border-bottom:1px solid var(--line)}tr:hover td{background:#fafcfe}.badge{display:inline-block;background:#eaf1f8;color:var(--navy);padding:4px 8px;border-radius:99px;font-size:11px;font-weight:700}.btn{display:inline-block;border:0;border-radius:8px;background:var(--navy);color:#fff;padding:10px 15px;font-weight:700;cursor:pointer}.btn:hover{background:var(--navy2)}.btn.ghost{background:#edf2f7;color:var(--navy)}.wide{width:100%}.grid2{display:grid;grid-template-columns:1fr 1.5fr;gap:20px}.form,.form-grid{display:grid;gap:14px}.form-grid{grid-template-columns:repeat(4,1fr)}label{display:grid;gap:6px;font-size:12px;font-weight:650;color:#4a5666}input,select,textarea{width:100%;border:1px solid #cfd7e1;border-radius:7px;padding:10px;background:#fff;font:inherit;color:var(--ink)}textarea{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #f59a1635;border-color:var(--orange)}.quote-form table input,.quote-form table select{min-width:90px}.quote-form table td:nth-child(2) input{min-width:280px}.icon-btn{border:0;background:#fee;color:#a22;border-radius:5px;font-size:18px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;background:#f6f8fa;padding:16px;border-left:4px solid var(--orange);margin-bottom:20px}.detail-grid div{display:grid;gap:4px}.detail-grid small{color:var(--muted)}.totals{max-width:390px;margin:20px 0 0 auto}.totals p{display:flex;justify-content:space-between;padding:8px 12px;margin:0;border-bottom:1px solid var(--line)}.totals .grand{background:var(--orange);color:#fff;border-radius:8px;font-size:18px}.center{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#f59a1620,transparent 35%),#eef3f7;padding:20px}.card{padding:30px}.login{width:min(420px,100%);display:grid;gap:16px}.login-logo{display:block;width:220px;height:135px;object-fit:contain;margin:0 auto}.login h1{text-align:center;color:var(--navy);margin:0}.muted,.login small{text-align:center;color:var(--muted)}.alert{background:#fff0f0;color:#9c2525;padding:10px;border-radius:7px}.notice{background:#eef8ef;padding:10px;border-radius:7px;margin-bottom:12px}footer{text-align:center;color:var(--muted);font-size:11px;padding:15px}@media(max-width:900px){aside{width:76px;padding:15px 8px}.side-logo{width:60px;height:60px}nav a{font-size:0}nav a::first-letter{font-size:18px}.aside-user b,.aside-user small{display:none}.app{margin-left:76px;padding:0 15px 20px}.stats,.grid2,.form-grid,.detail-grid{grid-template-columns:1fr}.app>header{height:82px}}.inline{display:inline}.link{border:0;background:none;padding:0;color:var(--navy2);cursor:pointer;font:inherit}.danger{color:#a22}.danger-bg{background:#a93232}.block{display:block;color:var(--muted);margin-top:3px}.low-stock td{background:#fff5e8!important}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.decision{border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;gap:13px}.decision h3{margin:0;color:var(--navy)}.decision.approve{border-top:4px solid #23845a}.decision.reject{border-top:4px solid #b83b3b}.docbox{max-width:620px;background:#f7fafc;padding:18px;border-radius:10px}.doc-strip{display:flex;gap:15px;flex-wrap:wrap;align-items:center;background:#f7fafc;border:1px solid var(--line);padding:12px 15px;border-radius:9px;margin-bottom:18px}.doc-strip a{font-weight:700}.alert.error{margin-bottom:16px}@media(max-width:900px){.decision-grid{grid-template-columns:1fr}}
/* Fase 7: menu, validaciones, notificaciones y visor PDF */
aside{overflow:hidden}.side-nav{display:block;overflow-y:auto;overflow-x:hidden;padding-right:4px;min-height:0}.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-thumb{background:#ffffff35;border-radius:10px}.nav-group{border-top:1px solid #ffffff16;padding-top:5px;margin-top:5px}.nav-group summary{cursor:pointer;color:#f8b34b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;padding:8px 12px;list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary::after{content:'▾';float:right}.nav-group:not([open]) summary::after{content:'▸'}.nav-group a{margin-left:8px}.aside-user{margin-top:0}.header-actions{display:flex;align-items:center;gap:12px}.bell{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-size:20px}.bell span{position:absolute;right:-3px;top:-5px;background:#dc2626;color:#fff;border-radius:99px;font-size:11px;min-width:19px;height:19px;display:grid;place-items:center;font-weight:800}input,select,textarea{text-transform:uppercase}input[type=email],input[type=password],input[type=file],input[type=url],input.no-upper,textarea.no-upper{text-transform:none}.pdf-modal{position:fixed;inset:0;background:#07182acc;z-index:1000;padding:4vh 4vw}.pdf-box{background:#fff;height:92vh;border-radius:10px;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.pdf-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.pdf-box iframe{width:100%;height:100%;border:0}.mini-panel{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:14px;margin:10px 0}.pill-list{display:flex;gap:8px;flex-wrap:wrap}.pill{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#fff}@media(max-width:900px){aside{width:82px}.app{margin-left:82px}.nav-group summary{font-size:0}.nav-group summary::before{content:'▸';font-size:18px;color:#f8b34b}.nav-group[open] summary::before{content:'▾'}.pdf-modal{padding:0}.pdf-box{height:100vh;border-radius:0}}
aside{overflow:hidden}.side-nav a{display:flex!important;align-items:center;gap:10px;width:100%;min-height:38px;font-size:14px!important;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-nav a span{width:22px;min-width:22px;text-align:center;font-size:17px;color:#dbe8f6}.nav-group a{margin-left:0}.nav-group summary{display:flex;align-items:center;justify-content:space-between}.aside-user b,.aside-user small,.aside-user a{overflow-wrap:anywhere}.notify-good{background:#dcfce7!important;color:#14532d}.notify-bad{background:#fee2e2!important;color:#7f1d1d}.notify-neutral{background:#eef8ef}.pager-controls{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin:10px 0;flex-wrap:wrap}.pager-controls button,.pager-controls select{width:auto;padding:7px 10px}.pager-info{font-size:12px;color:var(--muted)}@media(max-width:900px){.side-nav a{justify-content:center;padding:10px 4px}.side-nav a span{font-size:20px}.side-nav a{font-size:0!important}.side-nav a span{width:auto}.nav-group summary{justify-content:center}.nav-group summary::after{display:none}}
/* Fase 11: menu vertical robusto y detalles tecnicos compactos */
aside .side-nav{display:flex!important;flex-direction:column!important;gap:4px!important}
aside .side-nav .nav-group{display:block!important;width:100%!important}
aside .side-nav .nav-group[open]{display:block!important}
aside .side-nav a,aside .side-nav .nav-group>a{display:flex!important;flex-direction:row!important;align-items:center!important;width:100%!important;float:none!important;clear:both!important;margin:3px 0!important;white-space:nowrap!important;text-align:left!important}
aside .side-nav a span{display:inline-block!important}
aside .side-nav summary{float:none!important;width:100%!important}
aside .side-nav summary::after{float:none!important;margin-left:auto}
.quote-detail-btn{margin-top:8px;width:100%;text-align:center}
.technical-flags{display:block;margin-top:6px;color:var(--muted);font-size:11px}
@media(max-width:900px){aside .side-nav a{justify-content:center!important;text-align:center!important}aside .side-nav a span{display:block!important}aside .side-nav .nav-group>a{margin:4px 0!important}}
@media(max-width:900px){aside{width:245px!important}.app{margin-left:245px!important}.side-logo{width:130px!important;height:76px!important}.nav-group summary{font-size:11px!important}.nav-group summary::before{content:none!important}aside .side-nav a,aside .side-nav .nav-group>a{justify-content:flex-start!important;text-align:left!important;font-size:13px!important;padding:9px 10px!important}aside .side-nav a span{display:inline-block!important;width:22px!important;min-width:22px!important;font-size:16px!important}.aside-user b,.aside-user small{display:block!important}}
@media(max-width:560px){aside{position:relative!important;width:100%!important;max-height:48vh!important}.app{margin-left:0!important}.app>header{height:auto!important;padding:18px 0}.side-nav{max-height:30vh!important}}
