:root{--bg:#FBF8EF;--panel:#fff;--panel2:#f4f1e4;--line:#e6dfc6;--tx:#172B36;--mut:#5b6f77;--ac:#114C5A;--ok:#1b6f55;--warn:#b85c00;--bad:#c4361f;--new:#cf4a2c;--sh:0 1px 2px rgba(23,43,54,.06),0 6px 18px rgba(23,43,54,.07)}
*{box-sizing:border-box}
body{margin:0;color:var(--tx);font:15px/1.45 "Plus Jakarta Sans",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;min-height:100vh;background-color:var(--bg);background-image:linear-gradient(180deg,rgba(251,248,239,0) 60%,rgba(255,200,1,.14) 100%)}
body.home{overflow-x:hidden}
a{color:var(--ac);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.45rem;margin:.2rem 0 1rem}h2{font-size:1.05rem;margin:.1rem 0 .7rem}
.wrap{max-width:1400px;margin:0 auto;padding:1rem}

/* Cabecera */
.top{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;position:sticky;top:0;z-index:20}
.hello{display:grid;line-height:1.2}.hello small{color:var(--mut);font-size:.82rem}.hello b{font-size:1.02rem}
.back{font-size:.82rem;color:var(--mut)}
.tools{display:flex;gap:.7rem;align-items:center}
.search{position:relative;display:flex;align-items:center;gap:.5rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:0 .7rem;height:40px;box-shadow:var(--sh);color:var(--mut)}
.search svg{width:18px;height:18px;flex:none}
.search input{border:0;background:transparent;box-shadow:none;outline:none;width:190px;padding:.4rem 0;color:var(--tx)}
.search input:focus{outline:none}
.search kbd{font:600 .68rem/1 inherit;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:.22rem .4rem;color:var(--mut)}
.results{position:absolute;top:46px;right:0;left:0;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh);padding:.3rem;z-index:30}
.results a{display:block;padding:.45rem .6rem;border-radius:8px;color:var(--tx)}.results a:hover{background:var(--panel2);text-decoration:none}

/* Inicio */
.strip{position:relative;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin:-1rem 0 1.1rem;padding:.95rem 0}
.strip::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;background:#114C5A;border-bottom:4px solid #FFC801}
.strip a{display:flex;align-items:baseline;gap:.5rem;border-radius:12px;padding:.5rem 1rem;color:#fff;background:#2a8aa0;box-shadow:0 4px 10px rgba(17,76,90,.25)}
.strip a:hover{text-decoration:none;filter:brightness(1.08)}.strip a b{font-size:1.4rem;color:inherit}
.strip a.hot{background:#FFC801;color:#172B36}.strip a.cierra{background:#cf4a2c}.strip a.post{background:#2a8f6e}.strip a.adj{background:#172B36;color:#FFC801}
.strip .upd{color:#e4eeee;font-size:.82rem;margin-left:auto}
.sect{display:flex;align-items:center;gap:.8rem;margin:1.1rem 0 .7rem}
.sect hr{flex:1;border:0;border-top:1px solid var(--line);margin:0}
.pill{display:inline-flex;align-items:center;gap:.5rem;background:var(--ac);color:#fff;border-radius:999px;padding:.32rem .9rem;font-size:.72rem;font-weight:800;letter-spacing:.12em}
.pill i{width:6px;height:6px;border-radius:50%;background:#fff;display:block}
.cnt{background:#D9E8E2;color:#114C5A;border-radius:999px;font-size:.72rem;font-weight:700;padding:.1rem .55rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:150px;padding:1.1rem;border-radius:16px;color:#fff;box-shadow:0 8px 20px rgba(17,76,90,.18),inset 0 -3px 0 rgba(0,0,0,.14);transition:transform .15s,box-shadow .15s}
.tile::before{content:"";position:absolute;right:-60px;top:-60px;width:210px;height:210px;border-radius:50%;background:rgba(255,255,255,.13)}
.tile::after{content:"";position:absolute;left:-40px;bottom:-70px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.08)}
.tile:hover{transform:translateY(-3px);text-decoration:none;box-shadow:0 14px 26px rgba(17,76,90,.26),inset 0 -3px 0 rgba(0,0,0,.14)}
.tile b{position:relative;font-size:1.05rem;z-index:1}.tile small{position:relative;color:rgba(255,255,255,.9);font-size:.85rem;z-index:1}
.tile .ico{position:absolute;left:1.1rem;top:1.1rem;width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);z-index:1}
.tile .go{position:absolute;right:1rem;top:1rem;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.4);z-index:1}
.tile .go svg{width:16px;height:16px}
.tbadge{position:absolute;right:3.4rem;top:1.15rem;background:#FFC801;color:#172B36;font-weight:800;font-size:.72rem;border-radius:999px;padding:.18rem .6rem;z-index:1}
.tbadge.soon{background:rgba(255,255,255,.26);color:#fff}
.tile.pronto{filter:saturate(.8);opacity:.93}
.g-blue{background:linear-gradient(135deg,#0c3a46,#114C5A 60%,#1d6b7d);color:#F1F6F4}
.g-green{background:linear-gradient(135deg,#1b6f55,#2a8f6e 65%,#46ab88)}
.g-navy{background:linear-gradient(135deg,#0e1c25,#172B36 55%,#274a5c);color:#F1F6F4}
.g-red{background:linear-gradient(135deg,#a8321f,#cf4a2c 60%,#e56a4a)}
.g-yellow{background:linear-gradient(135deg,#f5b800,#FFC801 60%,#ffd84a);color:#172B36}
.g-yellow small{color:#2b2a14}
.g-yellow::before,.g-yellow::after{background:rgba(255,255,255,.3)}
.g-yellow .ico,.g-yellow .go{background:rgba(23,43,54,.10);border-color:rgba(23,43,54,.28)}
.g-yellow .tbadge{background:rgba(23,43,54,.14);color:#172B36}
.g-white{background:linear-gradient(135deg,#f1f6f4,#D9E8E2);color:#114C5A;border:1px solid #bfd5cc;box-shadow:0 8px 20px rgba(17,76,90,.10),inset 0 -3px 0 rgba(17,76,90,.2)}
.g-white small{color:#3d5f66}
.g-white::before{background:rgba(17,76,90,.07)}.g-white::after{background:rgba(17,76,90,.05)}
.g-white .ico,.g-white .go{background:#cfe3dc;border-color:#aecbc1;color:#114C5A}
.g-white .tbadge{background:#cfe3dc;color:#114C5A}.g-white .tbadge.soon{background:#cfe3dc;color:#114C5A}

/* Contenido */
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem;margin:0 0 1rem;box-shadow:var(--sh)}
.stack{display:grid;gap:.8rem}
.row3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}
.bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}
.inline{display:inline-block;margin:0}
label{display:grid;gap:.25rem;font-size:.85rem;color:var(--mut)}
input,select,textarea{background:#fff;color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:.5rem .65rem;font:inherit;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(17,76,90,.35);border-color:var(--ac)}
.filters input[name=q]{min-width:260px;flex:1}
.chk2{display:flex;align-items:center;gap:.4rem;color:var(--tx)}.chk2 input{width:auto}
.btn{background:var(--ac);color:#fff;border:0;border-radius:10px;padding:.5rem .95rem;font:inherit;font-weight:600;cursor:pointer;display:inline-block}
.btn:hover{filter:brightness(1.08);text-decoration:none}
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--tx)}.btn.ghost:hover{border-color:var(--ac)}
.btn.sm{padding:.28rem .65rem;font-size:.82rem}
.muted,small{color:var(--mut)}.warn{color:var(--warn)}
.msg{padding:.6rem .9rem;border-radius:10px;margin-bottom:.8rem}.msg.ok{background:#e1f2ea;border:1px solid #a6d3c0}.msg.err{background:#fde8ea;border:1px solid #f3b4bb}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;color:var(--mut);font-weight:600;padding:.5rem;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:.55rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
td.n,th.n{text-align:right;white-space:nowrap}.nw{white-space:nowrap}
tr.is-new{background:#E6F2EF}
.acts{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.acts .btn{white-space:nowrap}
.tag{display:inline-block;border-radius:6px;padding:.05rem .45rem;font-size:.72rem;font-weight:700;background:var(--panel2);color:var(--mut)}
.tag.ok{background:#e3f6ec;color:var(--ok)}.tag.bad{background:#fde8ea;color:var(--bad)}.tag.new{background:var(--new);color:#fff}
.counters{display:flex;gap:1rem;flex-wrap:wrap}.count{font-size:.95rem;color:var(--mut)}.count b{color:var(--tx);font-size:1.3rem}
.count.new b{color:var(--new)}
.check{list-style:none;padding:0;margin:0}.check li{display:flex;gap:.6rem;align-items:center;padding:.3rem 0}
.chk{width:1.6rem;height:1.6rem;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ok);cursor:pointer}.chk.on{background:#e3f6ec}
.done{text-decoration:line-through;color:var(--mut)}
.x{background:none;border:0;color:var(--mut);font-size:1.2rem;cursor:pointer}.x:hover{color:var(--bad)}
pre{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:.7rem;overflow:auto}
.foot{max-width:1400px;margin:0 auto;padding:1rem;color:var(--mut);font-size:.8rem}
body.login{display:grid;place-items:center;min-height:100vh}.login-box{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:1.5rem;width:min(420px,92vw);box-shadow:var(--sh)}
@media(max-width:700px){.wrap{padding:.6rem}table{font-size:.82rem}.top{position:static}.search input{width:110px}.search kbd{display:none}.strip .upd{margin-left:0;width:100%}}

/* Tabla del radar (estilo LicitaLab) */
table.radar{font-size:.9rem}
table.radar th{padding:.7rem .8rem;font-size:.82rem}
table.radar td{padding:.95rem .8rem;vertical-align:middle;border-bottom:1px solid var(--line)}
table.radar td.opp{min-width:360px;max-width:520px}.ttl{font-size:.97rem;font-weight:700;line-height:1.3;display:block}
table.radar td.org{min-width:210px}table.radar td.org b{font-size:.93rem}
table.radar td.mon{font-size:.97rem}table.radar td.cie b{font-size:.93rem}
.meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.35rem;color:var(--mut);font-size:.8rem}
.meta .urg{color:var(--new);font-weight:700}
.bdg{display:inline-block;border-radius:6px;padding:.08rem .5rem;font-size:.72rem;font-weight:800}
.bdg.b1{background:#D9E8E2;color:#114C5A}.bdg.b2{background:#114C5A;color:#fff}
tr.is-new td:first-child{box-shadow:inset 4px 0 0 #114C5A}
.small-note{margin:.7rem 0 0;font-size:.85rem}
.toolbar .filters input[name=q]{min-width:260px}
body.pg-radar{background-color:#F1F6F4;background-image:none}
/* Color de letra del radar: verde bosque */
table.radar .ttl,table.radar td.org b,table.radar td.mon b,table.radar td.cie b{color:#1b4332}
table.radar th,table.radar .meta,table.radar .meta span{color:#5f7f70}
table.radar .meta .urg{color:var(--new)}
table.radar .meta .bdg.b1{color:#114C5A}table.radar .meta .bdg.b2{color:#fff}table.radar .meta .tag.new{color:#fff}
.strip .act{display:inline-flex;align-items:center;gap:.45rem;background:#fff;color:#114C5A;border:0;border-radius:12px;padding:.55rem 1rem;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.18)}
.strip .act:hover{filter:brightness(.95)}.strip .act svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.strip .act-form{margin:0}
.strip .upd{text-align:right;line-height:1.35}

/* Módulo 2 · Bases y requisitos */
.m2head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.4rem;align-items:start}
.m2head h2{font-size:1.25rem;margin:.35rem 0 .2rem;color:#1b4332}.m2c{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.m2d{margin:.5rem 0 0;color:var(--tx)}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.kpi{background:#F1F6F4;border:1px solid #dbe8e3;border-radius:12px;padding:.65rem .8rem}
.kpi small{display:block;color:#5f7f70;font-weight:600;font-size:.74rem}.kpi b{display:block;font-size:1.02rem;color:#1b4332;margin:.1rem 0}.kpi span{font-size:.78rem}
.kpi .urg{color:var(--bad);font-weight:700}
.steps{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;padding:0;margin:.4rem 0 1rem;counter-reset:s}
.steps li{position:relative;display:flex;flex-direction:column;gap:.1rem;padding:.65rem .7rem .65rem 2.6rem;border:1px solid var(--line);border-radius:12px;background:#fff;min-height:3.6rem}
.steps li i{position:absolute;left:.7rem;top:.7rem;width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:.78rem;background:var(--panel2);color:var(--mut)}
.steps li b{font-size:.84rem}.steps li small{color:var(--mut);font-size:.74rem}
.steps li.ok{border-color:#9ccbb9;background:#F1F6F4}.steps li.ok i{background:#1b4332;color:#fff}
.steps li.act{border-color:#114C5A;box-shadow:inset 0 0 0 1px #114C5A}.steps li.act i{background:#114C5A;color:#fff}
.m2grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:1rem;align-items:start}
table.calc{font-size:.84rem}table.calc th,table.calc td{padding:.5rem .35rem}table.calc input.num{width:5rem;text-align:right;padding:.35rem .4rem}table.calc select.md{max-width:8.2rem;font-size:.74rem;padding:.35rem .2rem}
table.calc td.mg{font-weight:800}.mg.pos{color:var(--ok)}.mg.neg{color:var(--bad)}
.calcbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:.9rem 0}
.calcbar label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--mut);font-weight:600}.calcbar input{padding:.4rem .5rem}
.resumen{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}
.resumen div{background:#F1F6F4;border:1px solid #dbe8e3;border-radius:12px;padding:.6rem .7rem}.resumen div.neg{background:#fde8ea;border-color:#f1c4c9}
.resumen small{display:block;color:#5f7f70;font-size:.72rem;font-weight:600}.resumen b{display:block;font-size:.95rem;color:#1b4332;margin-top:.1rem}.resumen div.neg b{color:var(--bad)}
.nota{font-size:.78rem;margin:.7rem 0 0}
.soon{margin-top:.9rem;border:1px dashed #9ccbb9;background:#F7FAF8;border-radius:12px;padding:.7rem .9rem;font-size:.84rem}.soon b{color:#1b4332;margin-right:.4rem}
.bars{list-style:none;padding:0;margin:.5rem 0}.bars li{margin:0 0 .75rem}
.bars .bt{display:flex;justify-content:space-between;gap:.6rem;font-size:.84rem}.bars .bt span{font-weight:600}
.bars .bb{height:.55rem;background:#e8efec;border-radius:99px;margin:.25rem 0}.bars .bb i{display:block;height:100%;background:#7fae9b;border-radius:99px}
.bars li.gan .bb i{background:#1b4332}.bars li.ina .bb i{background:#d9b8b4}.bars li.ina{opacity:.8}
.bars small{color:var(--mut);font-size:.72rem}
.gap{background:#FFF7D6;border:1px solid #f0dc8a;border-radius:10px;padding:.5rem .7rem;font-size:.84rem;margin:.4rem 0}
.fin{list-style:none;padding:0;margin:.3rem 0}.fin li{padding:.35rem 0 .35rem 1.7rem;position:relative;font-size:.86rem;border-bottom:1px solid var(--line)}
.fin li::before{content:"";position:absolute;left:0;top:.45rem;width:1.05rem;height:1.05rem;border-radius:5px;border:1.5px solid #b9c7c1;background:#fff}
.fin li.ok::before{background:#1b4332;border-color:#1b4332;content:"✓";color:#fff;font-size:.72rem;display:grid;place-items:center}
@media(max-width:1100px){.m2grid,.m2head{grid-template-columns:1fr}.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.resumen{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.calcbar{grid-template-columns:1fr 1fr}.resumen{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}}

.resumen3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.rc{background:#F1F6F4;border:1px solid #dbe8e3;border-radius:12px;padding:.7rem .85rem}.rc h3{font-size:.8rem;margin:0 0 .35rem;color:#5f7f70;font-weight:700}
.rw{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.3rem 0;border-bottom:1px solid #dbe8e3;font-size:.82rem}.rw:last-child{border-bottom:0}.rw span{color:var(--tx)}.rw b{color:#1b4332;white-space:nowrap}
.rw.big b{font-size:1rem}.rw.hl{background:#FFF7D6;margin:.2rem -.4rem;padding:.4rem;border-radius:8px;border:0}
.rc.fin{background:#E6F2EF;border-color:#9ccbb9}.rc.neg{background:#fde8ea;border-color:#f1c4c9}.rc.neg b{color:var(--bad)}
.tope{margin:.7rem 0 0;padding:.55rem .8rem;border-radius:10px;background:#F1F6F4;border:1px solid #dbe8e3;font-size:.86rem;font-weight:700;color:#1b4332}.tope.neg{background:#fde8ea;border-color:#f1c4c9;color:var(--bad)}
@media(max-width:1100px){.resumen3{grid-template-columns:1fr}}

table.calc td:nth-child(6){min-width:5.6rem}table.calc th{white-space:nowrap}

.an{margin-top:1rem;border:1px solid #cfe0da;border-radius:12px;padding:.9rem 1rem;background:#F7FAF8}
.an h3{font-size:.95rem;margin:0 0 .6rem;color:#1b4332;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.an p{margin:.3rem 0;font-size:.86rem}.an code{background:#e8efec;border-radius:5px;padding:.05rem .35rem;font-size:.82rem}
.an textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;font:inherit;font-size:.82rem;background:#fff;resize:vertical;margin:.3rem 0 .5rem}
.an-pegar{margin-top:.9rem;padding-top:.8rem;border-top:1px dashed #b9d3c9}
.an-auto{margin-top:.9rem;padding-top:.8rem;border-top:1px dashed #b9d3c9;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.86rem}

.m2side{position:sticky;top:1rem}
@media(max-width:1100px){.m2side{position:static}}

/* Módulo 3 · Productos y cotización */
.tabs{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem;border-bottom:1px solid var(--line)}
.tabs a:not(.btn){padding:.55rem .95rem;border-radius:10px 10px 0 0;color:var(--mut);font-weight:600;border-bottom:3px solid transparent}
.tabs a.on{color:var(--ac);border-bottom-color:var(--ac)}.tabs a:hover{text-decoration:none;color:var(--ac)}
.tabs .nuevo{margin-left:auto;margin-bottom:.3rem}
.chips{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1rem}
.chip{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;font-size:.84rem;color:var(--mut)}.chip b{color:var(--tx);font-size:1rem}
.chip.adjudicada b{color:var(--ok)}.chip.enviada b{color:var(--new)}
.tag.warn{background:#FFF1D6;color:#9a5b00}
table.cat td small{font-size:.76rem}.nw{white-space:nowrap}
.cothead{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.cothead h2{margin:.35rem 0 .1rem}.m2c{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.linea{border:1px solid var(--line);border-radius:12px;padding:.8rem;margin:0 0 .8rem;background:#fff}
.lrow{display:grid;grid-template-columns:2.4fr .8fr 1fr .8fr auto;gap:.6rem;align-items:end}.lrow .x{align-self:center;padding:0 .3rem}
.calc{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.6rem 0;background:#F1F6F4;border:1px solid #dbe8e3;border-radius:10px;padding:.5rem .7rem}
.calc span{display:grid}.calc small{font-size:.74rem}.calc output{font-weight:700;color:#1b4332;font-size:.98rem}
.lrow2{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:.6rem}
.cat-note{margin-top:.5rem;font-size:.8rem;color:var(--ok)}.cat-note.warn{color:#9a5b00;font-weight:700}
.resumen3.vert{grid-template-columns:1fr}
.cotdoc{background:#fff;border:1px solid var(--line);border-radius:4px;padding:0;box-shadow:var(--sh);color:#1c2b33;font-size:.92rem;overflow:hidden}
.cd-top{display:flex;justify-content:space-between;gap:1.5rem;padding:1.6rem 2rem 1.3rem;background:#0B1F33;color:#fff;border-bottom:5px solid #F2B705}
.cd-emp h3{margin:0 0 .3rem;font-size:1.3rem;letter-spacing:.01em;color:#F2B705}.cd-emp p{margin:.05rem 0;font-size:.8rem;opacity:.88}
.cd-num{text-align:right;display:grid;align-content:start;gap:.15rem}.cd-num small{letter-spacing:.2em;font-size:.7rem;color:#F2B705;font-weight:700}.cd-num b{font-size:1.5rem;line-height:1.1}.cd-num span{font-size:.8rem;opacity:.9}
.cd-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem 1rem;padding:.9rem 2rem;background:#FFF8DC;border-bottom:1px solid #f1dc8c;font-size:.78rem}.cd-meta div{display:grid}.cd-meta span{color:#7a6410;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.cd-meta b{font-weight:700}
.cd-para{padding:1.1rem 2rem .4rem}.cd-para small{display:block;color:#5b6f77;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.cd-para b{font-size:1.1rem;color:#0B1F33}
.cd-items{width:calc(100% - 4rem);margin:.8rem 2rem 0;border-collapse:collapse}.cd-items th{background:#0B1F33;color:#F2B705;padding:.5rem .6rem;font-size:.74rem;text-align:left;text-transform:uppercase;letter-spacing:.05em}
.cd-items th.n,.cd-items td.n{text-align:right}.cd-items th.c,.cd-items td.c{text-align:center;width:2.6rem}.cd-items td.c{color:#5b6f77}
.cd-items td{padding:.6rem;border-bottom:1px solid #dde6e9;vertical-align:top}.cd-items td small{display:block;color:#5b6f77;font-size:.78rem;margin-top:.15rem}.cd-items tbody tr{background:#fff}
.cd-tot{display:flex;justify-content:flex-end;padding:.6rem 2rem 0}.cd-tot table{width:auto;min-width:15rem;border-collapse:collapse}.cd-tot td{padding:.3rem .6rem;text-align:right}.cd-tot td:first-child{color:#5b6f77}
.cd-tot tr.tt td{background:#F2B705;color:#0B1F33;font-weight:800;font-size:1.05rem;padding:.55rem .8rem}
.cd-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:1.2rem;padding:1.3rem 2rem 0}.cd-cols h4{margin:0 0 .5rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:#0B1F33;border-bottom:2px solid #F2B705;padding-bottom:.3rem}
.cd-cols ul{margin:0;padding-left:1.1rem;font-size:.84rem;line-height:1.55}
.cd-banco{background:#FFFCEE;border:1px solid #f1dc8c;border-left:5px solid #F2B705;border-radius:8px;padding:.8rem 1rem}.cd-banco h4{margin-top:0}
.cd-banco dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:0;font-size:.84rem}.cd-banco dt{color:#5b6f77}.cd-banco dd{margin:0;font-weight:700}
.cd-banco.pend{background:#F5F6F8;border:1.5px dashed #9aa5b1}.cd-banco .pend-t{margin:.1rem 0;font-weight:800;font-size:1rem;color:#0B1F33}.cd-banco .pend-s{margin:0;font-size:.8rem;color:#5b6772}
.cd-firma{display:flex;flex-direction:column;align-items:center;margin:2.4rem 2rem 0;text-align:center}.cd-firma div{width:15rem;border-top:1.5px solid #1c2b33;height:0}.cd-firma small{margin-top:.35rem;color:#5b6f77;font-size:.74rem;line-height:1.4}
.cd-pie{margin:1.6rem 0 0;padding:.6rem 2rem;background:#0B1F33;border-top:5px solid #F2B705;color:#e6edf3;font-size:.72rem;text-align:center}
.cd-aviso{margin:0 0 .8rem;background:#FFF7D6;border:1px solid #f0dc8a;border-radius:10px;padding:.55rem .8rem;font-size:.84rem}
@media(max-width:700px){.lrow{grid-template-columns:1fr 1fr}.lrow .f2{grid-column:1/-1}.lrow2,.calc{grid-template-columns:1fr}.cd-meta,.cd-cols{grid-template-columns:1fr}.cd-top{flex-direction:column}.cd-num{text-align:left}}
@page{size:A4;margin:12mm}
@media print{body{background:#fff}.top,.strip,.tabs,.no-print,.m2side,footer,.wrap>h1,.msg{display:none!important}.cotdoc{break-inside:avoid}.m2grid{display:block}.wrap{padding:0;max-width:none}.cotdoc{border:0;box-shadow:none}.cd-top,.cd-items th,.cd-tot tr.tt td,.cd-pie,.cd-meta,.cd-banco,.cd-items tbody tr{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cd-aviso{display:none}}
.grid3.keys{grid-template-columns:1fr;gap:.5rem;margin-bottom:.8rem}
.key{background:#F1F6F4;border:1px solid #dbe8e3;border-radius:12px;padding:.55rem .8rem;display:grid;gap:.1rem}
.key span{font-size:.78rem;color:#5f7f70;font-weight:700}.key b{font-size:1.25rem;color:#1b4332}.key small{font-size:.76rem}
.key.amber{background:#FFF7D6;border-color:#f0dc8a}.key.amber b{color:#7a5a00}.key.green{background:#E6F2EF;border-color:#9ccbb9}
.m2side .grid3:not(.keys){grid-template-columns:1fr;gap:.4rem;margin-top:.8rem}.m2side .grid3:not(.keys) .key{display:flex;justify-content:space-between;align-items:baseline;padding:.4rem .8rem}.m2side .grid3:not(.keys) .key b{font-size:1rem}
.m2side .card .card{box-shadow:none;padding:.3rem .6rem;margin:0}
table.ledger{width:100%;border-collapse:collapse;font-size:.84rem}table.ledger td{padding:.38rem .2rem;border-bottom:1px solid #e3ece8}table.ledger td.n{text-align:right;white-space:nowrap;font-weight:600}
table.ledger tr.sub td{color:var(--mut);font-size:.78rem;padding-left:.9rem}table.ledger tr.total td{font-weight:800;border-top:2px solid #bcd3ca}
table.ledger tr.final td{font-weight:800;background:#FFF7D6;font-size:.95rem}table.ledger tr:last-child td{border-bottom:0}

/* Módulo 4 · Ventas y OC */
.kpis4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:0 0 1rem}
.kpis4 .kpi{background:var(--panel);border:1px solid var(--line);box-shadow:var(--sh)}.kpis4 .kpi small{color:var(--mut)}.kpis4 .kpi b{font-size:1.35rem;color:var(--tx)}
.kpis4 .kpi.neg{background:#fde8ea;border-color:#f1c4c9}.kpis4 .kpi.neg b{color:var(--bad)}.kpis4 .kpi.warn{background:#FFF1D6;border-color:#f0d49a}.kpis4 .kpi.warn b{color:#9a5b00}
.tag.warn{background:#FFF1D6;color:#9a5b00}
.tag.et-recibida{background:#eee;color:#555}.tag.et-aceptada{background:#dfeaf7;color:#1f4f8a}.tag.et-entregada{background:#e6e1f6;color:#4b3a99}
.tag.et-recepcionada{background:#e0f1f4;color:#0f5e6c}.tag.et-facturada{background:#FFF1D6;color:#9a5b00}.tag.et-pagada{background:#e3f6ec;color:var(--ok)}
.steps.s5{grid-template-columns:repeat(5,minmax(0,1fr))}
.segto{display:grid;gap:1rem}.sg{border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;background:#fff}.sg h3{margin:0 0 .6rem;font-size:.9rem;color:#114C5A}
.chk2{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--tx);margin-top:.5rem}.chk2 input{width:auto}
.btn.gold{background:#F2B705;color:#0B1F33}
@media(max-width:1100px){.kpis4{grid-template-columns:1fr 1fr}.steps.s5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.kpis4,.steps.s5{grid-template-columns:1fr 1fr}}
.sg .row3{align-items:start}
.row3{align-items:start}
/* Módulo 5 · Facturas */
.kpis3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.inline-l{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--mut)}.inline-l select,.inline-l input{width:auto}
dl.hoja{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:.55rem 1rem;margin:0}
dl.hoja dt{color:var(--mut);font-weight:600;padding-top:.3rem}dl.hoja dd{margin:0}
.cp{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:#F1F6F4;border:1px solid #dbe8e3;border-radius:10px;padding:.35rem .5rem .35rem .75rem}
.cp b{font-weight:700;color:var(--tx);word-break:break-word}
dl.hoja dd small{display:block;margin-top:.2rem}
.outbox{display:block;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;background:var(--panel2);font-weight:800}
.asiento{border:1px solid #dbe8e3;border-radius:12px;padding:.6rem .75rem;margin:.6rem 0;background:#fff}.asiento>b{display:block}.asiento>small{display:block;color:var(--mut);margin-bottom:.3rem}
tfoot td{border-top:1px solid var(--line)}
@media(max-width:640px){.kpis3{grid-template-columns:1fr}dl.hoja{grid-template-columns:1fr}}
table.ledger thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--mut);text-align:left;padding:.2rem .2rem;border-bottom:1px solid #bcd3ca}table.ledger thead th.n{text-align:right}
.m2head>.bar{justify-content:flex-end}
/* Módulo 6 · Contabilidad */
#tlineas input{width:100%;min-width:6rem}#tlineas input.n{text-align:right}#tlineas tfoot td{padding-top:.5rem}
.asiento .btn.sm{margin:.5rem .4rem 0 0}
@media print{.cd-items tr{break-inside:avoid;page-break-inside:avoid}}
label[hidden]{display:none}ul.clean{margin:.2rem 0 0;padding-left:1.1rem;display:grid;gap:.45rem}
a.ver-resp{font-weight:700}.clip{font-size:.85em}
.visor{position:fixed;inset:0;background:rgba(10,25,30,.62);z-index:90;display:flex;align-items:center;justify-content:center;padding:12px}
.visor-box{background:#fff;border-radius:14px;width:min(960px,100%);height:min(92vh,100%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.visor-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem .9rem;border-bottom:1px solid var(--line)}
.visor-bar span{display:flex;gap:.5rem;align-items:center}
.visor-body{flex:1;min-height:0;background:#eef0ee;display:flex;align-items:center;justify-content:center;overflow:auto}
.visor-body iframe{width:100%;height:100%;border:0;background:#fff}.visor-body img{max-width:100%;max-height:100%;object-fit:contain}
body.sin-scroll{overflow:hidden}
