/* NodosDigitales OS — Design system v1 (Sprint 1) */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --ink:#0D1B2A;--ink2:#14263A;--amber:#E8922A;--amber-soft:#F5B45E;
  --bg:#EEF1F5;--card:#FFF;--txt:#1A2432;--txt2:#6B7686;--txt3:#9AA4B2;
  --green:#1E9E6A;--green-bg:#E4F6EE;--warn:#B97A15;--warn-bg:#FBF0DC;
  --blue:#2E6FD0;--blue-bg:#E8F0FC;--red:#C43D3D;
  --r-xl:32px;--r-lg:26px;--r-md:20px;--r-sm:14px;
  --sh-1:0 2px 8px rgba(13,27,42,.05),0 12px 32px rgba(13,27,42,.08);
  --sh-2:0 4px 14px rgba(13,27,42,.08),0 24px 56px rgba(13,27,42,.16);
}
body{font-family:"Inter",system-ui,sans-serif;background:var(--bg);color:var(--txt);min-height:100dvh}
.hidden{display:none!important}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.link{color:var(--blue);font-weight:600;font-size:12.5px}

/* ── Botones ─────────────────────────────── */
.btn{border:1px solid rgba(13,27,42,.12);background:var(--card);color:var(--txt);font-weight:600;font-size:13.5px;padding:11px 18px;border-radius:var(--r-sm);transition:transform .15s,box-shadow .15s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:var(--sh-1)}
.btn-primary:hover{background:var(--ink2)}
.btn-block{width:100%}
.btn:disabled{opacity:.6;cursor:wait}

/* ── Login ───────────────────────────────── */
.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--ink);position:relative;overflow:hidden;padding:20px}
.login-blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.35;pointer-events:none}
.b1{width:420px;height:420px;background:var(--amber);top:-140px;right:-100px}
.b2{width:360px;height:360px;background:#2E6FD0;bottom:-160px;left:-120px;opacity:.25}
.login-card{position:relative;width:100%;max-width:380px;background:rgba(255,255,255,.08);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-xl);padding:36px 30px;color:#fff;box-shadow:var(--sh-2);animation:pop .5s cubic-bezier(.2,.8,.3,1)}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.98)}}
.login-logo{font-size:26px;font-weight:800;letter-spacing:.02em}
.login-logo span{color:var(--amber)}
.login h1{font-size:19px;font-weight:700;margin-top:14px}
.login-sub{font-size:13px;color:rgba(255,255,255,.65);margin-top:6px}
.login form{margin-top:22px;display:flex;flex-direction:column;gap:14px}
.login label{font-size:12px;font-weight:600;color:rgba(255,255,255,.75);display:flex;flex-direction:column;gap:6px}
.login input{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-sm);padding:12px 14px;color:#fff;font-size:14px;font-family:inherit;outline:none;transition:border .2s}
.login input:focus{border-color:var(--amber)}
.login input::placeholder{color:rgba(255,255,255,.35)}
.login-error{color:#FFB4A8;font-size:12.5px;min-height:16px}
.login code{color:var(--amber-soft);font-size:11px;word-break:break-all}

/* ── App layout ──────────────────────────── */
.app{display:flex;min-height:100dvh}
.sidebar{width:232px;flex-shrink:0;background:var(--ink);color:rgba(255,255,255,.85);padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}
.side-brand{font-size:16px;font-weight:800;letter-spacing:.03em;color:#fff;padding:0 8px}
.side-brand span{color:var(--amber)}
.side-org{margin:18px 0;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);padding:10px 12px;display:flex;align-items:center;gap:10px}
.org-dot{width:28px;height:28px;border-radius:10px;background:var(--amber);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}
.side-org b{font-size:12px;color:#fff;display:block}
.side-org small{font-size:11px;color:rgba(255,255,255,.45)}
.side-nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:500;color:rgba(255,255,255,.7);transition:background .2s}
.nav-item:hover{background:rgba(255,255,255,.06)}
.nav-item.active{background:rgba(232,146,42,.16);color:var(--amber-soft);font-weight:600}
.nav-ico{font-size:16px;width:20px;text-align:center}
.nav-badge{margin-left:auto;font-size:10.5px;font-weight:700;background:rgba(255,255,255,.1);color:rgba(255,255,255,.5);padding:2px 7px;border-radius:9px}
.side-user{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px}
.u-avatar{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}
.u-info b{font-size:12.5px;color:#fff;display:block}
.u-info small{font-size:11px;color:rgba(255,255,255,.45)}
.u-out{margin-left:auto;background:none;border:0;color:rgba(255,255,255,.4);font-size:16px;padding:6px;border-radius:8px}
.u-out:hover{color:#FFB4A8;background:rgba(255,255,255,.06)}

.main{flex:1;min-width:0;padding:26px clamp(16px,3vw,36px) 110px}
.module-root{max-width:1180px;margin:0 auto;animation:fadein .35s ease}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}}

/* ── Página / KPIs / cards ───────────────── */
.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.page-head h1{font-size:clamp(19px,2.4vw,24px);font-weight:800;letter-spacing:-.02em}
.sub{font-size:12.5px;color:var(--txt2);margin-top:3px}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.kpi{background:var(--card);border-radius:var(--r-md);padding:16px;box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:4px}
.kpi-dark{background:var(--ink);color:#fff}
.kpi-label{font-size:11px;font-weight:600;color:var(--txt2)}
.kpi-dark .kpi-label{color:rgba(255,255,255,.55)}
.kpi-value{font-size:22px;font-weight:800;letter-spacing:-.02em}
.kpi-sub{font-size:11.5px;font-weight:600;color:var(--txt3)}
.kpi-sub.ok{color:var(--green)}.kpi-dark .kpi-sub{color:var(--amber-soft)}.kpi-sub.warn{color:var(--warn)}
.card{background:var(--card);border-radius:var(--r-lg);padding:18px;box-shadow:var(--sh-1)}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:14px}
.mini-pipe{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}
.mini-stage{background:var(--bg);border-radius:var(--r-sm);padding:12px;text-align:center}
.mini-count{display:block;font-size:20px;font-weight:800}
.mini-label{font-size:11px;color:var(--txt2);font-weight:600}

/* ── CRM / Kanban ────────────────────────── */
.search{width:100%;max-width:420px;background:var(--card);border:1px solid rgba(13,27,42,.08);border-radius:var(--r-sm);padding:11px 15px;font-size:13.5px;font-family:inherit;outline:none;margin-bottom:16px;box-shadow:var(--sh-1)}
.search:focus{border-color:var(--amber)}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:12px;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x proximity}
.kcol{background:rgba(13,27,42,.04);border-radius:var(--r-md);padding:10px;scroll-snap-align:start;min-height:120px}
.kcol-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;padding:6px 8px 10px}
.kcol-meta{font-size:11px;font-weight:600;color:var(--txt3)}
.tone-gray{color:var(--txt2)}.tone-warn{color:var(--warn)}.tone-green{color:var(--green)}.tone-blue{color:var(--blue)}.tone-ink{color:var(--ink)}
.kcol-empty{font-size:11.5px;color:var(--txt3);text-align:center;padding:18px 0}
.kcard{background:var(--card);border-radius:var(--r-sm);padding:12px;box-shadow:var(--sh-1);margin-bottom:10px;animation:fadein .3s ease}
.kcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-size:13px}
.kcall{font-size:15px}
.kcard-meta{font-size:11.5px;color:var(--txt2);margin-top:3px}
.kcard-notes{font-size:11.5px;color:var(--txt3);margin-top:6px;background:var(--bg);border-radius:10px;padding:7px 9px}
.kcard-actions{display:flex;gap:6px;margin-top:10px}
.kbtn{flex:1;border:1px solid rgba(13,27,42,.1);background:var(--bg);border-radius:10px;font-size:12.5px;padding:6px 0;color:var(--txt2);transition:background .15s}
.kbtn:hover{background:#E4E8EE}
.kbtn-fwd{background:var(--ink);color:var(--amber-soft);border-color:var(--ink);font-weight:700}

/* ── Modal ───────────────────────────────── */
.dlg{border:0;border-radius:var(--r-lg);padding:0;max-width:440px;width:calc(100% - 32px);box-shadow:var(--sh-2)}
.dlg::backdrop{background:rgba(13,27,42,.5);backdrop-filter:blur(4px)}
.dlg form{padding:24px;display:flex;flex-direction:column;gap:13px}
.dlg h2{font-size:17px;font-weight:800}
.dlg label{font-size:12px;font-weight:600;color:var(--txt2);display:flex;flex-direction:column;gap:5px}
.dlg input,.dlg select,.dlg textarea{border:1px solid rgba(13,27,42,.12);border-radius:var(--r-sm);padding:10px 12px;font-size:13.5px;font-family:inherit;outline:none;background:var(--bg);color:var(--txt)}
.dlg input:focus,.dlg select:focus,.dlg textarea:focus{border-color:var(--amber)}
.frm-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.frm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}

/* ── Empty state ─────────────────────────── */
.empty-state{background:var(--card);border-radius:var(--r-lg);padding:44px 24px;text-align:center;box-shadow:var(--sh-1);grid-column:1/-1}
.empty-icon{font-size:34px;margin-bottom:10px}
.empty-state h2{font-size:16px;font-weight:700}
.empty-state p{font-size:13px;color:var(--txt2);margin-top:6px;max-width:380px;margin-inline:auto}
.empty-state .frm-actions{margin-top:18px}

/* ── Bottom nav (móvil) ──────────────────── */
.bottom-nav{display:none}
@media(max-width:820px){
  .sidebar{display:none}
  .main{padding:18px 14px 108px}
  .bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:60;display:flex;justify-content:space-around;background:rgba(255,255,255,.86);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(13,27,42,.07);padding:9px 6px calc(12px + env(safe-area-inset-bottom))}
  .bnav-item{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--txt3);min-width:60px;padding:4px 6px;border-radius:12px}
  .bnav-item.active{color:var(--amber)}
  .bnav-ico{font-size:20px}
  .kanban{grid-auto-columns:82vw;scroll-snap-type:x mandatory}
  .frm-row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ── Chips (canal / esquema) ─────────────── */
.kcard-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.chip{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:9px;background:var(--bg);color:var(--txt2)}
.chip-green{background:var(--green-bg);color:var(--green)}
.chip-blue{background:var(--blue-bg);color:var(--blue)}

/* ── Sheet "Más" (móvil) ─────────────────── */
.sheet{position:fixed;inset:0;z-index:80}
.sheet-backdrop{position:absolute;inset:0;background:rgba(13,27,42,.5);backdrop-filter:blur(4px)}
.sheet-panel{position:absolute;bottom:0;left:0;right:0;background:var(--card);border-radius:28px 28px 0 0;padding:14px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:var(--sh-2);animation:sheetup .3s cubic-bezier(.2,.8,.3,1)}
@keyframes sheetup{from{transform:translateY(40%);opacity:.6}}
.sheet-grip{width:42px;height:5px;border-radius:3px;background:rgba(13,27,42,.15);margin:0 auto 14px}
.sheet-nav{display:flex;flex-direction:column;gap:2px}
.sheet-item{display:flex;align-items:center;gap:12px;padding:12px 10px;border-radius:14px;font-size:14px;font-weight:600;color:var(--txt)}
.sheet-item:active{background:var(--bg)}
.sheet-item.active{background:rgba(232,146,42,.12);color:var(--warn)}
.sheet-item .nav-badge{margin-left:auto;background:var(--bg);color:var(--txt3)}

/* ── Sprint 2: Cotizador ─────────────────── */
.dlg-wide{max-width:640px}
.part{background:var(--bg);border-radius:var(--r-sm);padding:12px;margin-bottom:10px}
.part-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 10px;font-size:13.5px}
.part-grid{display:grid;grid-template-columns:1.6fr 1.2fr repeat(3,minmax(64px,.7fr));gap:8px}
.part-grid select,.part-grid input{border:1px solid rgba(13,27,42,.12);border-radius:12px;padding:9px 10px;font-size:12.5px;font-family:inherit;background:var(--card);min-width:0}
.part-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:12px}
.part-det{color:var(--txt2)}
.part-mg{color:var(--txt3);font-size:11px}
.part-foot .kbtn{flex:none;padding:5px 10px;background:var(--card)}
.btn-mini{padding:7px 12px;font-size:12px;border-radius:11px}
.lbl-check{flex-direction:row!important;align-items:center;justify-content:space-between;background:var(--bg);border-radius:var(--r-sm);padding:11px 14px}
.desglose{margin-top:8px;border-top:1px dashed rgba(13,27,42,.15);padding-top:8px}
.desg-row{display:grid;grid-template-columns:2fr .8fr 1fr auto;gap:6px;margin-bottom:6px}
.desg-row input,.desg-row select{border:1px solid rgba(13,27,42,.12);border-radius:10px;padding:7px 9px;font-size:12px;font-family:inherit;background:var(--card);min-width:0}
.desg-row .kbtn{flex:none;padding:4px 10px}
.cot-totales{background:var(--ink);color:#fff;border-radius:var(--r-md);padding:12px 16px;margin-top:4px}
.cot-totales div{display:flex;justify-content:space-between;font-size:12.5px;padding:2px 0;color:rgba(255,255,255,.75)}
.cot-totales .tot-final{font-size:16px;color:#fff;border-top:1px solid rgba(255,255,255,.2);margin-top:5px;padding-top:7px}
.cot-totales .tot-final b{color:var(--amber-soft)}
.cot-margen{font-size:11.5px;color:var(--txt2);background:var(--warn-bg);border-radius:12px;padding:8px 12px;margin-top:8px}
.mg-ok{color:var(--green)}.mg-bad{color:var(--red)}
.cot-list{display:flex;flex-direction:column;gap:10px}
.cot-card{background:var(--card);border-radius:var(--r-md);padding:14px;box-shadow:var(--sh-1)}
.cot-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13.5px}
.cot-monto{text-align:right;font-weight:800;font-size:15px;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.chip-warn{background:var(--warn-bg);color:var(--warn)}
.chip-gray{background:var(--bg);color:var(--txt3)}

/* ── Sprint 2: Agenda ────────────────────── */
.ag-filtros{display:flex;gap:8px;margin-bottom:14px}
.ag-f.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.ag-grupo{font-size:11.5px;font-weight:700;color:var(--txt2);text-transform:capitalize;margin:16px 2px 8px}
.ag-item{background:var(--card);border-radius:var(--r-sm);padding:12px 14px;box-shadow:var(--sh-1);display:flex;align-items:center;gap:12px;margin-bottom:8px}
.ag-done{opacity:.55}
.ag-done .ag-info b{text-decoration:line-through}
.ag-check{width:26px;height:26px;border-radius:9px;border:2px solid rgba(13,27,42,.2);background:var(--card);flex-shrink:0;font-size:14px;color:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s}
.ag-check.on{background:var(--green);border-color:var(--green)}
.ag-ico{font-size:19px}
.ag-info{min-width:0}
.ag-info b{font-size:13px}
@media(max-width:820px){
  .part-grid{grid-template-columns:1fr 1fr}
  .part-grid select{grid-column:1/-1}
  .desg-row{grid-template-columns:1.5fr .7fr .9fr auto}
}

/* ── v2.1 ────────────────────────────────── */
.ag-map{font-size:18px;margin-left:auto;flex-shrink:0}
.cat-head{display:grid;grid-template-columns:2fr .8fr 1fr .6fr;gap:6px;font-size:10.5px;font-weight:700;color:var(--txt3);padding:0 2px 6px}
.cat-row{grid-template-columns:2fr .8fr 1fr .6fr}
.part-grid select[data-f="acabado"]{max-width:110px}

/* ── v2.3: agenda acciones ───────────────── */
.ag-btns{display:flex;gap:6px;flex-shrink:0;align-items:center}
.ag-act{font-size:16px;width:32px;height:32px;border-radius:10px;background:var(--bg);border:1px solid rgba(13,27,42,.08);display:flex;align-items:center;justify-content:center;cursor:pointer}
.ag-act:active{transform:scale(.94)}
.ag-item{flex-wrap:wrap}
@media(max-width:520px){.ag-btns{width:100%;justify-content:flex-end;margin-top:6px}}

/* ── v2.5 ────────────────────────────────── */
.ver{font-size:10px;font-weight:700;color:rgba(255,255,255,.35);letter-spacing:.05em;vertical-align:middle}
.login .ver{color:var(--amber-soft)}
.unit-wrap{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;background:var(--warn-bg);color:var(--warn);padding:6px 10px;border-radius:12px}
.unit-sel{border:1.5px solid var(--warn);border-radius:9px;padding:4px 8px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--warn);background:var(--card)}
.com-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.com-item{background:var(--bg);border-radius:12px;padding:9px 12px;font-size:12.5px;line-height:1.5}
.com-item .sub{font-size:10.5px}
/* Diálogos: siempre caben en pantalla, sin scroll horizontal */
.dlg{width:min(560px,calc(100vw - 28px));max-width:none;max-height:92dvh;overflow-y:auto;overflow-x:hidden}
.dlg-wide{width:min(680px,calc(100vw - 28px))}
.dlg form,.dlg>div{max-width:100%}
.dlg input,.dlg select,.dlg textarea{min-width:0;max-width:100%;width:100%}
.frm-row>label{min-width:0}
@media(max-width:640px){
  .dlg{width:calc(100vw - 16px);border-radius:22px}
  .dlg .frm-row{grid-template-columns:1fr}
  .part-grid{grid-template-columns:1fr 1fr}
  .part-grid select[data-f="prodId"]{grid-column:1/-1}
}

/* ── v2.6: semáforo de notas ─────────────── */
.lbl-cliente{color:var(--green)!important;font-weight:700}
.nota-cliente{background:var(--green-bg)!important;border:1.5px solid rgba(30,158,106,.45)!important}

/* ── v2.7 ────────────────────────────────── */
.lbl-cliente{color:var(--green)!important;font-weight:800}
textarea.nota-cliente{background:#DFF5EA!important;border:2px solid #1E9E6A!important}

/* ── Sprint 3 ────────────────────────────── */
.foto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;max-height:280px;overflow-y:auto}
.foto-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid rgba(13,27,42,.1)}
.inv-row{background:var(--card);border-radius:var(--r-sm);padding:11px 14px;box-shadow:var(--sh-1);display:flex;align-items:center;gap:12px;margin-bottom:8px}
.inv-sem{font-size:15px;flex-shrink:0}
.inv-info{flex:1;min-width:0}
.inv-info b{font-size:13px}
.inv-stock{display:flex;align-items:center;gap:8px}
.inv-stock .kbtn{flex:none;width:30px;padding:5px 0;font-size:15px;font-weight:800}
.inv-num{font-size:14px;font-weight:800;min-width:52px;text-align:center}
.inv-num small{font-weight:600;color:var(--txt3);font-size:10.5px}
.fin-mes{padding:12px 0;border-bottom:1px solid rgba(13,27,42,.07)}
.fin-mes:last-child{border-bottom:0}
.fin-mes-head{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.fin-ventas{font-weight:800}
.fin-ventas small{font-weight:600;color:var(--txt3)}
.fin-bar{height:8px;background:var(--bg);border-radius:5px;margin:8px 0;overflow:hidden}
.fin-bar-fill{height:100%;background:var(--ink);border-radius:5px;transition:width .4s ease}
.fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px;font-size:12px;color:var(--txt2)}
.fin-canal{display:grid;grid-template-columns:120px 1fr auto;gap:10px;align-items:center;font-size:12.5px;padding:6px 0}
.fin-canal-nombre{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-canal .fin-bar{margin:0}
.fin-canal .fin-bar-fill{background:var(--amber)}
.fin-gasto{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:7px 0;border-bottom:1px solid rgba(13,27,42,.06)}
@media(max-width:520px){.fin-canal{grid-template-columns:90px 1fr auto}}

/* ── v3.1 ────────────────────────────────── */
.kbtn-wa{background:var(--green-bg)!important;color:var(--green)!important;border:1.5px solid rgba(30,158,106,.5)!important;font-weight:800}
.kcall-wa{background:var(--green-bg);border-radius:9px;padding:3px 7px;border:1px solid rgba(30,158,106,.35)}
.chip-red{background:#FBE3E3;color:var(--red)}
.part-grid textarea{border:1px solid rgba(13,27,42,.12);border-radius:12px;padding:9px 10px;font-size:12.5px;font-family:inherit;background:var(--card);grid-column:1/-1;resize:vertical;min-height:40px}
@media(min-width:821px){.kanban{scroll-snap-type:none;scroll-behavior:auto}}
.ag-wa{background:var(--green-bg)!important;border-color:rgba(30,158,106,.4)!important}

/* ── v3.4: enlaces públicos ──────────────── */
.side-links{display:flex;gap:6px;margin:-6px 0 14px;padding:0 4px}
.side-links a{width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:15px;transition:background .2s}
.side-links a:hover{background:rgba(232,146,42,.18)}
.sheet-links{margin:12px 0 0;justify-content:center}
.sheet-links a{background:var(--bg);border-color:rgba(13,27,42,.1)}

/* ── v3.6: enlaces discretos ─────────────── */
.side-links{gap:4px;margin:-8px 0 12px}
.side-links a{width:30px;height:30px;border-radius:9px;background:transparent;border:none;color:rgba(255,255,255,.42)}
.side-links a:hover{color:var(--amber-soft);background:rgba(255,255,255,.06)}
.sheet-links a{color:var(--txt3);background:transparent}
.sheet-links a:hover{color:var(--warn);background:var(--bg)}

/* ── v3.7: Dashboard 2.0 ─────────────────── */
.kpi-top{display:flex;justify-content:space-between;align-items:center}
.kpi-ico{width:26px;height:26px;border-radius:9px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:13px}
.kpi-dark .kpi-ico{background:rgba(255,255,255,.1)}
.per-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.res-pill{background:var(--bg);border-radius:var(--r-sm);padding:12px;display:flex;align-items:center;gap:10px}
.res-ok{background:var(--green-bg)}
.res-num{font-size:24px;font-weight:800;letter-spacing:-.02em}
.res-lbl{font-size:11.5px;font-weight:600;color:var(--txt2);line-height:1.3}
.res-lbl small{display:block;font-weight:600;color:var(--txt3);font-size:10.5px}
.dash-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin-top:14px}
.chart-leyenda{display:flex;gap:16px;font-size:11.5px;color:var(--txt2);margin-top:6px}
.chart-leyenda i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.dona-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.dona-leyenda{display:flex;flex-direction:column;gap:6px;font-size:12px;min-width:0}
.dona-leyenda div{display:flex;align-items:center;gap:7px}
.dona-leyenda i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.dona-leyenda b{margin-left:auto;padding-left:10px}
.mini-ag-row{padding:5px 0;font-size:12.5px;line-height:1.5}
@media(max-width:860px){.dash-grid{grid-template-columns:1fr}}

/* ── v3.9 ────────────────────────────────── */
.foto-item{position:relative}
.foto-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:8px;border:0;background:rgba(13,27,42,.75);color:#fff;font-size:11px;cursor:pointer}
.check-row{display:flex;align-items:center;gap:11px;padding:10px 4px;font-size:13.5px;border-bottom:1px solid rgba(13,27,42,.06);cursor:pointer}
.check-row input{width:19px;height:19px;accent-color:var(--green)}
.check-row input:checked+span{text-decoration:line-through;color:var(--txt3)}
