.boot{display:grid;place-items:center;min-height:100vh;color:var(--mut)}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login .card{width:100%;max-width:380px;padding:30px}
.login img{height:30px;display:block;margin-bottom:6px}.login small{color:var(--faint);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.login h1{font-size:20px;margin:22px 0 4px}.login p{color:var(--mut);margin:0 0 18px;font-size:13px}
label.f{display:block;font-size:12.5px;color:var(--mut);margin:12px 0 4px}
.in{width:100%;font:inherit;border:1px solid var(--line2);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink)}
textarea.in{min-height:90px;resize:vertical}select.in{appearance:auto}
.err{color:var(--bad);font-size:12.5px;margin-top:10px;min-height:16px}
.btn{cursor:pointer;font:inherit}.btn[disabled]{opacity:.5;cursor:default}
.envtag{font-size:10.5px;font-weight:600;background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:2px 8px;margin-left:8px}
.sumgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sum{display:flex;flex-direction:column;gap:8px;min-height:128px}
.sum .hd{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.sum .hd .pill{margin-left:auto}
.sum .ds{font-size:12.5px;color:var(--mut)}
.sum .nums{display:flex;gap:18px;margin-top:2px}.sum .nums div{display:flex;flex-direction:column}.sum .nums b{font-size:22px;font-weight:600;letter-spacing:-.02em}.sum .nums span{font-size:11.5px;color:var(--mut)}
.sum .lnk{margin-top:auto;font-size:12.5px;color:var(--acc);font-weight:500}
.sum.soon{background:#fbfaf8;box-shadow:none}.sum.soon .hd{color:#55555d}
.ablock{margin-top:18px}.ablock .ah{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ablock .ah .ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center}.ablock .ah h2{margin:0;font-size:16px}
.ablock .ah .mut{color:var(--mut);font-size:12.5px}.ablock .ah a{margin-left:auto;color:var(--acc);font-size:13px;font-weight:500}
.soonlist{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.soonlist span{font-size:11.5px;border:1px dashed var(--line2);border-radius:999px;padding:3px 10px;color:var(--mut)}
.obras{grid-template-columns:repeat(3,1fr)}.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph.empty{background:linear-gradient(135deg,#f4f1ec,#ddd6cb);color:var(--mut);align-items:center;justify-content:center;font-size:12.5px}
.modal{position:fixed;inset:0;background:rgba(22,22,26,.35);display:grid;place-items:center;z-index:50;padding:16px}
.modal .card{width:100%;max-width:520px;max-height:90vh;overflow:auto}
.row{display:flex;gap:10px;align-items:center}.row .sp{flex:1}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.gal img{width:100%;height:110px;object-fit:cover;border-radius:10px}
.empty-st{padding:26px;text-align:center;color:var(--mut)}
.side .out{margin-top:8px;font-size:12px;color:var(--mut);text-align:center;cursor:pointer}
@media(max-width:900px){.sumgrid,.obras{grid-template-columns:1fr}}

.cothead{display:flex;align-items:center;gap:14px;margin-bottom:10px}.cothead h1{font-size:20px;margin:0}.cothead .lnk{margin-left:auto;font-size:13px;color:var(--acc)}.cothead a{color:var(--mut);font-size:13px}
.cotframe{width:100%;height:calc(100vh - 110px);border:1px solid var(--line,#e7e2da);border-radius:12px;background:#fff}
.sum .cotrec{display:flex;flex-direction:column;gap:4px;margin-top:6px}.sum .cotrec a{display:flex;gap:8px;font-size:12.5px;color:inherit;text-decoration:none}.sum .cotrec a span{color:var(--mut);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sum .cotrec a em{font-style:normal;color:var(--mut)}
/* Fase 3 · Centro de mando */
.mgrid{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;margin-top:18px}
.plist{position:sticky;top:12px}.persona{display:flex;gap:10px;align-items:center;padding:8px;border-radius:12px;color:inherit;text-decoration:none}.persona:hover{background:#f6f4f0}.persona.on{background:#efeae2}
.persona .av{width:34px;height:34px;border-radius:50%;background:#e9e3d9;display:grid;place-items:center;font-weight:600;font-size:12px;flex:none}.persona .n{font-weight:600;font-size:14px}.persona .r{font-size:12px;color:var(--mut)}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:10px}
.tool{display:flex;gap:10px;align-items:center;border:1px solid var(--line,#e7e2da);border-radius:12px;padding:9px 11px;cursor:pointer;font-size:14px}.tool.on{border-color:#1a1a1a;background:#faf8f4}.tool input{accent-color:#1a1a1a}
.chk{display:flex;gap:6px;align-items:center;font-size:13px;cursor:pointer}
@media(max-width:900px){.mgrid{grid-template-columns:1fr}.plist{position:static}}
/* Autorizaciones de descuento */
.dot-aut{background:#c2410c!important;color:#fff}
.autnote{text-decoration:none;color:inherit;background:#fff4e5!important;border:1px solid #f3c58a}
.autgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:12px;align-items:start}
.auttot{display:grid;gap:8px}.auttot>div{border:1px solid var(--line,#e7e2da);border-radius:12px;padding:8px 12px;display:grid}.auttot b{font-size:17px}.auttot small{color:var(--mut);font-size:12px}
.authist{margin:6px 0 0;padding-left:18px;font-size:13px}.authist li{margin:4px 0}
@media(max-width:900px){.autgrid{grid-template-columns:1fr}}
/* ===== Logística → Importaciones ===== */
.imphero{padding:26px 28px 22px;background:radial-gradient(120% 140% at 85% 0%,#33415e 0%,#1a2236 45%,#0e1220 100%)}
.imphero .imphtx{max-width:640px}
.imphero.small h1{font-size:28px}.imphero.small .row .btn:not(.pri){background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.imphero .btn.pri{background:#fff;color:var(--ink);border-color:#fff}
.impscene{display:block;width:100%;height:auto;max-height:260px;margin:18px 0 0;border-radius:18px;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 40px rgba(0,0,0,.25)}
.impscene .lbl{fill:#fff;font:600 13px Inter,sans-serif}.impscene .lbl2{fill:#a9b4c8;font:500 11px Inter,sans-serif}
.impscene .t1{fill:#16161a;font:700 11px Inter,sans-serif}.impscene .t2{fill:#6c6c75;font:500 9px Inter,sans-serif}
.impscene .bx{fill:#fff;font:700 7.5px Inter,sans-serif;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:2px}
.impscene .star{fill:#fff;animation:impTw 3.5s ease-in-out infinite}
.impscene .wave{animation:impWave linear infinite}
.impscene .clouds{animation:impCloud 60s linear infinite}
.impscene .route{animation:impDash 8s linear infinite}
.impscene .bob{animation:impBob 3.2s ease-in-out infinite;animation-delay:var(--d,0s);transform-box:fill-box;transform-origin:center}
.impscene .impship,.impscene .impbox{cursor:pointer}.impscene .impship:hover .tag rect{fill:#fff;stroke:#4f6bed;stroke-width:1.5}
.impscene .impbox:hover rect:first-child{stroke:#fff;stroke-width:1.5}
@keyframes impBob{0%,100%{transform:translateY(0) rotate(-.8deg)}50%{transform:translateY(3px) rotate(.8deg)}}
@keyframes impWave{from{transform:translateX(0)}to{transform:translateX(-200px)}}
@keyframes impTw{0%,100%{opacity:.25}50%{opacity:.95}}
@keyframes impCloud{from{transform:translateX(-120px)}to{transform:translateX(1100px)}}
@keyframes impDash{to{stroke-dashoffset:-100}}
@media (prefers-reduced-motion:reduce){.impscene *{animation:none!important}}
.imppipe{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:14px}
.imppipe div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}
.imppipe i{grid-row:span 2;width:24px;height:24px;border-radius:50%;background:var(--line);display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:700;color:var(--mut)}
.imppipe b{font-size:12.5px}.imppipe span{font-size:11.5px;color:var(--mut)}.imppipe .has i{background:var(--ink);color:#fff}
.impwarn{margin-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fffaf0;border-color:#f3e2bf}
.impgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.impc{display:block;position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}
.impc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pc)}
a.impc:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(22,22,26,.1)}
.impcode{font-size:18px;font-weight:700;letter-spacing:-.01em}
.impbox3d{margin:12px 0 8px;position:relative}.impbox3d svg{width:100%;display:block}
.impbox3d .pct{font:800 22px Inter,sans-serif;fill:#fff;paint-order:stroke;stroke:rgba(0,0,0,.25);stroke-width:3px}
.impbox3d .fillr{animation:impFill 1s ease-out}@keyframes impFill{from{width:0}}
.impbox3d .over{position:absolute;top:6px;right:8px;font-size:11px;font-weight:700;color:#fff;background:var(--bad);border-radius:999px;padding:1px 8px}
.impgauges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 10px}
.impgauges div{display:grid;gap:2px}.impgauges span{font-size:11px;color:var(--mut)}.impgauges b{font-size:14px}
.impgauges i{display:block;height:5px;border-radius:9px;background:var(--line)}.impgauges em{display:block;height:100%;border-radius:9px;background:var(--pc)}
.impsteps{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}.impsteps span{height:4px;border-radius:4px;background:var(--line)}
.impsteps .done{background:var(--ok)}.impsteps .on{background:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.imptl{display:grid;grid-template-columns:repeat(7,1fr);gap:0;padding:14px}
.imptl button{all:unset;cursor:pointer;display:grid;justify-items:center;text-align:center;gap:4px;padding:6px 4px;position:relative;border-radius:12px}
.imptl button:hover{background:#fafaf8}
.imptl button:before{content:"";position:absolute;top:20px;left:-50%;right:50%;height:2px;background:var(--line)}.imptl button:first-child:before{display:none}
.imptl button.done:before,.imptl button.on:before{background:var(--ok)}
.imptl i{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid var(--line2);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:12px;color:var(--mut)}
.imptl .done i{background:var(--ok);border-color:var(--ok);color:#fff}.imptl .done i .i{width:14px;height:14px}
.imptl .on i{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 0 0 5px var(--acc-soft)}
.imptl b{font-size:12.5px}.imptl span{font-size:11px;color:var(--mut)}
.impdet{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;margin-top:16px;align-items:start}
.impside{display:grid;gap:16px}
.imptab td,.imptab th{font-size:12.5px;vertical-align:top}.imptab .tot td{border-top:2px solid var(--ink)}
.impdl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:12px 0;font-size:12.5px}.impdl dt{color:var(--mut)}.impdl dd{margin:0;font-weight:500}
.impform{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.impform .full{grid-column:1/-1}
.impres{display:grid;gap:4px;max-height:260px;overflow:auto;margin:8px 0}
.impres button{all:unset;cursor:pointer;padding:8px 10px;border-radius:10px;border:1px solid var(--line);font-size:13px}.impres button:hover,.impres button.on{border-color:var(--acc);background:var(--acc-soft)}
@media(max-width:900px){.imppipe{grid-template-columns:repeat(3,1fr)}.impdet{grid-template-columns:1fr}.imptl{grid-template-columns:repeat(3,1fr);row-gap:10px}.imptl button:before{display:none}.impform{grid-template-columns:1fr}}
.impdecs{margin-top:14px;border-color:#f3c58a;background:#fffaf2}
.impdec{border-top:1px solid #f1e3c8;padding:12px 0 4px;margin-top:10px}
.impdecst{margin-top:8px;font-size:13px}
/* Escenas por estado (1-nov-2026): miniatura en la tarjeta, grande en el detalle */
.impmini{margin:12px 0 8px;position:relative}.impmini .over{position:absolute;top:6px;right:8px;font-size:11px;font-weight:700;color:#fff;background:var(--bad);border-radius:999px;padding:1px 8px}
.impes{display:block;width:100%;height:auto;border-radius:12px;border:1px solid rgba(0,0,0,.08)}
.impes.big{margin:18px 0 0;border-radius:18px;border-color:rgba(255,255,255,.08);max-height:300px}
.impes .star{fill:#fff;animation:impTw 3.5s ease-in-out infinite}
.impes .eslbl{fill:#fff;font:600 11px Inter,sans-serif}.impes .eslbl2{fill:#a9b4c8;font:500 10px Inter,sans-serif}
.impes .eslbl3{fill:#a9b4c8;font:700 7px Inter,sans-serif;letter-spacing:.08em}
.impes .bx{fill:#fff;font:700 9px Inter,sans-serif;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:2px}
.impes .espct{fill:#fff;font:800 15px Inter,sans-serif;paint-order:stroke;stroke:rgba(0,0,0,.3);stroke-width:3px}
.impes .esnovo{fill:#16161a;font:800 10px Inter,sans-serif;letter-spacing:.18em}
.impes .esstampt{fill:#e5484d;font:800 11px Inter,sans-serif;letter-spacing:.12em}
.impes .esfill{animation:impFill 1.2s ease-out}
.impes .wave{animation:impWave linear infinite}.impes .route{animation:impDash 8s linear infinite}
.impes .bob{animation:impBob 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.impes .essmoke{animation:esSmoke 3.6s ease-out infinite;opacity:0;transform-box:fill-box;transform-origin:center}
.impes .esglow{animation:esGlow 1.8s ease-in-out infinite}
.impes .esbelt{animation:esBelt 3s linear infinite;opacity:0}
.impes .esplane{animation:esPlane 4s ease-in-out infinite;opacity:0}
.impes .esdrop{animation:esDrop 2.4s cubic-bezier(.5,0,.75,1) infinite;opacity:0}
.impes .esfork{animation:esFork 5s ease-in-out infinite alternate}
.impes .eslift{animation:esLift 4.5s ease-in-out infinite}
.impes .esstamp{animation:esStamp 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.impes .esdrive{animation:esDrive 2.2s cubic-bezier(.2,.7,.3,1) both}
.impes .espal{animation:esPal .5s ease-out both}
.impes .escheck{animation:esPop .5s 2.6s cubic-bezier(.3,1.6,.5,1) both;transform-box:fill-box;transform-origin:center}.impes .escheck path{stroke-dasharray:1;animation:esDraw .5s 2.9s ease-out both}
@keyframes esSmoke{0%{opacity:0;transform:translate(0,6px) scale(.5)}25%{opacity:.7}100%{opacity:0;transform:translate(18px,-22px) scale(1.8)}}
@keyframes esGlow{0%,100%{opacity:.75}50%{opacity:1;fill:#ffb25c}}
@keyframes esBelt{0%{transform:translateX(0);opacity:0}10%{opacity:1}85%{opacity:1}100%{transform:translateX(140px);opacity:0}}
@keyframes esPlane{0%{transform:translate(400px,18px);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:translate(170px,52px) scale(.6);opacity:0}}
@keyframes esDrop{0%{transform:translateY(-34px);opacity:0}20%{opacity:1}70%{transform:translateY(14px);opacity:1}100%{transform:translateY(14px);opacity:0}}
@keyframes esFork{0%{transform:translateX(0)}100%{transform:translateX(86px)}}
@keyframes esLift{0%,100%{transform:translateY(0)}50%{transform:translateY(-34px)}}
@keyframes esStamp{0%,55%{transform:scale(1.6);opacity:0}65%{transform:scale(.92);opacity:1}72%,100%{transform:scale(1);opacity:1}}
@keyframes esDrive{from{transform:translateX(-300px)}}
@keyframes esPal{from{opacity:0;transform:translateY(-8px)}}
@keyframes esPop{from{opacity:0;transform:scale(.2)}}
@keyframes esDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.impes *{animation:none!important}.impes .essmoke{opacity:.35}.impes .esbelt,.impes .esdrop{opacity:1}.impes .esplane{display:none}}
.impfac{border-top:1px solid var(--line);padding:10px 0 6px;margin-top:8px}.impfac:first-of-type{border-top:0}
.impfacv{font-size:17px;font-weight:700;margin:2px 0}
.impes:not(.big) .eslbl{font-size:15px}.impes:not(.big) .eslbl2{font-size:13px}.impes:not(.big) .eslbl3{font-size:9px}.impes:not(.big) .espct{font-size:19px}.impes:not(.big) .bx{font-size:11px}
.impdet>*{min-width:0}.impdet>*:first-child{overflow-x:auto}
.impfin details>summary,.impliq details>summary{cursor:pointer}.impliq{background:color-mix(in srgb,var(--line) 25%,transparent);border-radius:10px;padding:10px 12px}

/* ===== CRM · Contactos + Panel comercial (fase 1) ===== */
.crmsearch{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;border:1px solid var(--line2);border-radius:12px;padding:0 12px;background:#fff}
.crmsearch .i{width:16px;height:16px;opacity:.45}.crmsearch .in{border:0;padding-left:0;box-shadow:none}
.crmt{width:100%;border-collapse:collapse;font-size:13.5px}
.crmt th{text-align:left;font-size:11.5px;color:var(--mut);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);background:#faf9f6}
.crmt td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.crmrow{cursor:default}.crmrow:hover td{background:#faf8f4}
.crmav{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#eef1fe,#e8f5ee);display:grid;place-items:center;font-weight:700;font-size:11px;color:var(--acc)}
.crmcats{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}
.crmcat{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;background:#fff}
.crmcat.on{border-color:var(--acc);background:var(--acc-soft);color:var(--acc);font-weight:600}
.crmcat input{accent-color:var(--acc)}
.crmgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;margin-top:14px}
.crmdl{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.crmdl>div{display:grid;gap:2px}.crmdl span{font-size:11.5px;color:var(--mut)}.crmdl b{font-size:13.5px;font-weight:600}
.crmcots{display:flex;flex-direction:column;gap:6px}
.crmcots a{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;border:1px solid var(--line);color:inherit;text-decoration:none;font-size:13px}
.crmcots a:hover{border-color:var(--acc);background:var(--acc-soft)}
.crmcots a span{flex:1;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crmcots a i{font-style:normal;color:var(--mut);font-size:12.5px}
.crmhero{display:flex;gap:18px;align-items:stretch;justify-content:space-between;padding:22px 24px;border-radius:18px;background:radial-gradient(120% 140% at 100% 0%,#3d5a80 0%,#1b2838 55%,#0f1720 100%);color:#fff;margin-top:14px;overflow:hidden;position:relative}
.crmhero:after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.06)}
.crmhtx{position:relative;z-index:1;max-width:520px}
.crmhi{font-size:13px;opacity:.85;margin-bottom:4px}
.crmhero h2{margin:0 0 4px;font-size:26px;letter-spacing:-.02em}
.crmhero p{margin:0;font-size:13.5px;opacity:.75}
.crmstreak{position:relative;z-index:1;display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:12px 16px;backdrop-filter:blur(6px)}
.crmstreak b{display:block;font-size:22px;line-height:1}.crmstreak span{font-size:11.5px;opacity:.8}
.crmfire{font-size:28px;animation:crmPulse 1.8s ease-in-out infinite}
@keyframes crmPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.crmdash{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:14px}
.crmcardx{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--sh);transition:transform .15s,border-color .15s,box-shadow .15s;min-height:110px}
.crmcardx:hover,.crmcardx.on{border-color:var(--acc);transform:translateY(-2px);box-shadow:0 8px 24px rgba(79,107,237,.12)}
.crmcardx.hot{border-color:#f3c58a;background:#fffaf0}
.crmk{font-size:11.5px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.crmbig{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.crmsub{font-size:12px;color:var(--mut);margin-top:auto}
.crmbar{height:8px;border-radius:999px;background:#eef0f4;overflow:hidden;margin:4px 0}
.crmbar i{display:block;height:100%;width:var(--p,0%);background:linear-gradient(90deg,#4f6bed,#2f8a57);border-radius:999px;transition:width .5s ease}
.crmdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px;vertical-align:middle}
.crmdot.ok{background:var(--ok)}.crmdot.warn{background:var(--warn)}
.crmdetail{margin-top:12px}
.crmeq{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.crmeqi{display:flex;gap:10px;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--line);color:inherit;text-decoration:none}
.crmeqi:hover{border-color:var(--acc);background:var(--acc-soft)}
@media(max-width:1100px){.crmdash{grid-template-columns:repeat(3,1fr)}.crmgrid{grid-template-columns:1fr}}
@media(max-width:700px){.crmdash{grid-template-columns:1fr 1fr}.crmhero{flex-direction:column}.crmdl{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.crmfire{animation:none!important}.crmcardx,.crmbar i{transition:none!important}}
.crmchips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crmchip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 12px;font-size:12.5px;background:#f4f2ed;color:var(--ink);border:0;cursor:default}
.crmchip b{font-weight:700}.crmchip.ok{background:var(--ok-soft);color:var(--ok)}.crmchip.warn{background:var(--warn-soft);color:var(--warn)}
button.crmchip{cursor:pointer;background:var(--acc-soft);color:var(--acc);font:inherit}
.crmfiltros{margin-top:14px;padding:12px 14px}
.crmeqi{all:unset;cursor:pointer;display:flex;gap:10px;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--line);color:inherit;box-sizing:border-box;width:100%}
.crmeqi:hover{border-color:var(--acc);background:var(--acc-soft)}

/* Portada Ventas · atajos a herramientas (t430) */
.crmtools{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:10px}
.crmtool{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:#fff;box-shadow:var(--sh);color:inherit;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s;min-height:78px}
.crmtool:hover{border-color:var(--acc);transform:translateY(-2px);box-shadow:0 8px 24px rgba(79,107,237,.12)}
.crmtool.soon{opacity:.72;background:#fafaf8;cursor:default;box-shadow:none}
.crmtic{width:42px;height:42px;border-radius:12px;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center;flex-shrink:0}
.crmtool.soon .crmtic{background:#eee;color:var(--mut)}
.crmttx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.crmttx b{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.crmttx span{font-size:12.5px;color:var(--mut);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.crmtgo{font-size:12.5px;font-weight:600;color:var(--acc);white-space:nowrap}
@media(max-width:700px){.crmtools{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.crmtool{transition:none!important}}

/* Embudo CRM */
.crmfunnel{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;align-items:flex-start;min-height:420px}
.crmfcol{min-width:230px;max-width:260px;background:var(--card,#fff);border:1px solid #e5e7eb;border-radius:14px;padding:0 0 8px;display:flex;flex-direction:column;max-height:75vh}
.crmfh{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:10px 12px;border-radius:14px 14px 0 0;border-bottom:3px solid;font-size:13px}
.crmfht{display:flex;align-items:center;gap:8px;min-width:0}
.crmfht i{width:8px;height:8px;border-radius:99px;flex:0 0 auto}
.crmfht b{font-size:12.5px;line-height:1.2}
.crmfmeta{font-size:11px;opacity:.85;white-space:nowrap}
.crmflist{display:flex;flex-direction:column;gap:6px;padding:8px;overflow:auto;flex:1;min-height:80px}
.crmflist.dragover{background:#f0f9ff;outline:2px dashed #38bdf8;outline-offset:-4px;border-radius:10px}
.crmfcard{display:flex;align-items:stretch;gap:4px;padding:0;border-radius:10px;background:#f8fafc;border:1px solid #e5e7eb;cursor:grab}
.crmfcard.dragging{opacity:.45}
.crmfcard-link{flex:1;display:flex;flex-direction:column;gap:2px;padding:8px 10px;text-decoration:none;color:inherit;font-size:13px;min-width:0}
.crmfcard-link:hover{background:#fff}
.crmfgrab{display:flex;align-items:center;padding:0 6px;color:#9ca3af;font-size:12px;user-select:none;cursor:grab}
.crmfempty{padding:14px 8px;text-align:center;font-size:12px;border:1px dashed #e5e7eb;border-radius:8px}

/* Shared searchable CRM contact picker */
.crm-ac{position:relative;min-width:0}
.crm-ac>label{display:block;margin-bottom:4px}
.crm-ac .in{min-width:0;flex:1}
.crm-ac .in[readonly]{background:#eef2ff;color:#3730a3}
.crm-ac-list{position:absolute;top:100%;left:0;right:0;z-index:40;max-height:280px;overflow:auto;background:#fff;border:1px solid #dbe1ea;border-radius:10px;box-shadow:0 8px 24px #18243b26;padding:4px}
.crm-ac-option{padding:9px 10px;cursor:pointer;border-radius:6px;color:#1f2937}
.crm-ac-option:hover,.crm-ac-option[aria-selected="true"]{background:#eef2ff}
.crm-ac-option small{display:block;color:#64748b;overflow-wrap:anywhere}
.crm-ac-status{display:block;font-size:12px;margin-top:3px}

.crm-ac [hidden]{display:none!important}

/* Contact / opportunity dense detail */
.crm-contacto-card .crmdl{margin-top:4px}
.crm-aud{display:flex;flex-direction:column;gap:8px}
.crm-aud-row{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-size:13px}
.crm-aud-row b{text-transform:capitalize}

/* Google login + solicitudes */
.btn.google{background:#fff;color:#3c4043;border:1px solid #dadce0;gap:10px;font-weight:600}
.btn.google:hover{background:#f7f8f8;border-color:#d2d3d4}
.login .or{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.login .or::before,.login .or::after{content:"";flex:1;height:1px;background:var(--line,#e5e7eb)}
.pill.p-warn{background:#fff4ce;color:#8a6d00}

/* Resumen de venta (6-nov-2026): filas estilo Airtable */
.vptab{display:flex;flex-direction:column;margin-top:10px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.vpr{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 14px;border-bottom:1px solid var(--line);font-size:13.5px}
.vpr:last-child{border-bottom:0}
.vpr span{color:var(--mut)}.vpr b{font-weight:600;font-variant-numeric:tabular-nums}
.vpr.neg b{color:#b4432f}.vpr.mut b{color:var(--mut);font-weight:500}
.vpr.tot{background:#faf9f6}.vpr.tot span{color:inherit;font-weight:600}.vpr.tot b{font-size:17px;font-weight:700}
.vpr.ok b{color:var(--ok)}.vpr.warn b{color:#a5610c}
.vpbar{display:flex;align-items:center;gap:10px;margin-top:12px}.vpbar .crmbar{flex:1;margin:0}.vpbar b{font-size:13px;white-space:nowrap}
.vpgrp td{background:#faf9f6;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--mut);padding:6px 12px}
