
/* ============ VARIABLES Y BASE ============ */
:root{
  --teal:#2563eb; --teal-2:#1d4ed8; --teal-ink:#1e3a8a;
  --brown:#0f172a; --brown-2:#334155; --ink:#1e293b; --muted:#64748b;
  --pink:#93c5fd; --green:#bfdbfe; --yellow:#cbd5e1; --lav:#60a5fa; --orange:#94a3b8;
  --glass:rgba(255,255,255,.58); --glass-br:rgba(255,255,255,.78);
  --shadow:0 10px 34px rgba(15,23,42,.12);
  --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif;
  color:var(--ink); min-height:100vh;
  background:linear-gradient(150deg,#f7edf7 0%,#eef6f7 45%,#f8f1ea 100%);
}
#bg{position:fixed; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;}
.hidden{display:none !important;}
::selection{background:rgba(37,99,235,.35)}

/* ============ GLASSMORPHISM ============ */
.glass{
  background:var(--glass); border:1px solid var(--glass-br);
  backdrop-filter:blur(18px) saturate(150%); -webkit-backdrop-filter:blur(18px) saturate(150%);
  border-radius:var(--radius); box-shadow:var(--shadow); position:relative;
}
.glass::before{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(255,255,255,0) 45%);
}
@supports not (backdrop-filter:blur(4px)){ .glass{background:rgba(255,255,255,.88)} }

/* ============ LAYOUT ============ */
.app{position:relative; z-index:1; display:flex; min-height:100vh;}
main{flex:1; padding:26px 26px 60px; max-width:1240px; margin:0 auto; width:100%;}
.sidebar{
  width:252px; margin:18px 0 18px 18px; padding:20px 14px; flex:none;
  position:sticky; top:18px; height:calc(100vh - 36px);
  display:flex; flex-direction:column; gap:8px; z-index:20;
}
.brand{display:flex; gap:12px; align-items:center; padding:4px 8px 14px; border-bottom:1px dashed rgba(15,23,42,.16); margin-bottom:10px;}
.brand svg{width:46px; height:46px; flex:none; filter:drop-shadow(0 3px 6px rgba(15,23,42,.18));}
.brand h1{font-size:1.22rem; letter-spacing:.14em; color:var(--brown); margin:0; font-weight:800; line-height:1;}
.brand small{display:block; color:var(--muted); font-size:.66rem; letter-spacing:.02em; margin-top:4px;}
.nav{display:flex; flex-direction:column; gap:6px; flex:1; overflow:auto;}
.nav button{
  display:flex; align-items:center; gap:10px; padding:11px 12px; border:0; background:transparent;
  border-radius:14px; color:var(--brown-2); font-weight:600; font-size:.92rem; cursor:pointer; text-align:left;
  font-family:inherit; transition:background .18s,color .18s;
}
.nav button svg{width:19px; height:19px; flex:none;}
.nav button:hover{background:rgba(255,255,255,.6)}
.nav button.active{
  background:linear-gradient(135deg,rgba(37,99,235,.24),rgba(37,99,235,.06));
  color:var(--teal-ink); box-shadow:inset 0 0 0 1px rgba(37,99,235,.4);
}
.nav .badge{margin-left:auto; background:var(--pink); color:#1e3a8a; font-size:.7rem; font-weight:800; border-radius:999px; padding:2px 8px;}
.side-foot{font-size:.72rem; color:var(--muted); padding:10px 6px 2px; border-top:1px dashed rgba(15,23,42,.16); display:flex; justify-content:space-between; align-items:center; gap:8px;}
.mobile-top{
  display:none; position:sticky; top:0; z-index:25; padding:12px 16px;
  background:rgba(255,255,255,.65); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.8); align-items:center; gap:12px;
}
.mobile-top b{color:var(--brown); letter-spacing:.12em; font-size:1.05rem;}
.scrim{position:fixed; inset:0; background:rgba(64,44,38,.32); z-index:30; opacity:0; pointer-events:none; transition:.25s;}
.scrim.on{opacity:1; pointer-events:auto;}

/* ============ CABECERAS Y GRID ============ */
.view-head{display:flex; flex-wrap:wrap; gap:14px; align-items:end; justify-content:space-between; margin-bottom:18px;}
.view-head h2{margin:0; font-size:1.5rem; color:var(--brown); font-weight:800; letter-spacing:-.01em;}
.view-head p{margin:4px 0 0; color:var(--muted); font-size:.9rem;}
.head-actions{display:flex; gap:10px; flex-wrap:wrap;}
.grid-kpis{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:16px;}
.grid-2{display:grid; grid-template-columns:1.6fr 1fr; gap:16px; margin-bottom:16px;}
.grid-2b{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.grid-cost{display:grid; grid-template-columns:1.25fr .9fr; gap:16px; align-items:start;}
.card{padding:20px;}
.card h3{margin:0 0 4px; font-size:1rem; color:var(--brown); font-weight:800;}
.card .sub{color:var(--muted); font-size:.8rem; margin:0 0 14px;}

/* ============ KPIs ============ */
.kpi{padding:18px;}
.kpi .top{display:flex; justify-content:space-between; align-items:center; gap:8px;}
.kpi .ico{width:44px; height:44px; border-radius:14px; display:grid; place-items:center; flex:none;}
.kpi .ico svg{width:22px; height:22px;}
.kpi .val{font-size:1.55rem; font-weight:800; color:var(--brown); margin-top:10px; letter-spacing:-.02em; word-break:break-word;}
.kpi .lbl{font-size:.74rem; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-weight:700;}
.delta{font-size:.73rem; font-weight:800; padding:3px 9px; border-radius:999px; white-space:nowrap;}
.delta.good{background:rgba(111,191,115,.2); color:#2e7d32;}
.delta.bad{background:rgba(224,122,122,.2); color:#b3403a;}
.delta.neutral{background:rgba(138,122,114,.14); color:var(--muted);}

/* ============ GRÁFICOS ============ */
.chart-wrap{position:relative; height:260px;}
canvas.chart{width:100%; height:100%; display:block;}
.legend{display:flex; flex-direction:column; gap:8px; margin-top:12px; font-size:.85rem;}
.legend .li{display:flex; align-items:center; gap:8px;}
.dot{width:10px; height:10px; border-radius:4px; flex:none;}
.legend .val{margin-left:auto; font-weight:700; color:var(--brown);}

/* ============ LISTAS / ALERTAS ============ */
.list{display:flex; flex-direction:column;}
.list .row{display:flex; align-items:center; gap:12px; padding:11px 4px; border-top:1px solid rgba(15,23,42,.08); font-size:.9rem;}
.list .row:first-child{border-top:0;}
.row .r-ico{width:36px; height:36px; border-radius:12px; display:grid; place-items:center; flex:none;}
.row .r-ico svg{width:17px; height:17px;}
.row .r-main{flex:1; min-width:0;}
.r-main b{display:block; color:var(--brown); font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.r-main span{font-size:.75rem; color:var(--muted);}
.amt{font-weight:800; white-space:nowrap;}
.amt.pos{color:#1d4ed8;} .amt.neg{color:#334155;}
.alert{display:flex; gap:10px; padding:10px 12px; border-radius:14px; font-size:.86rem; align-items:flex-start; margin-bottom:8px; border:1px solid; line-height:1.45;}
.alert:last-child{margin-bottom:0;}
.alert.danger{background:rgba(224,122,122,.13); border-color:rgba(224,122,122,.45); color:#8f3430;}
.alert.warn{background:rgba(246,226,127,.28); border-color:rgba(214,180,60,.5); color:#7a5b12;}
.alert.info{background:rgba(37,99,235,.1); border-color:rgba(37,99,235,.45); color:var(--teal-ink);}

/* ============ TOOLBAR / TABLAS ============ */
.toolbar{display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:14px 16px; margin-bottom:16px;}
.toolbar .grow{flex:1; min-width:170px;}
.table-wrap{overflow:auto; border-radius:14px;}
table{width:100%; border-collapse:collapse; font-size:.9rem; min-width:660px;}
th{text-align:left; font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); padding:10px 12px; border-bottom:1px solid rgba(15,23,42,.14);}
td{padding:11px 12px; border-bottom:1px solid rgba(15,23,42,.07); vertical-align:middle;}
tbody tr:hover{background:rgba(255,255,255,.5);}
.row-actions{display:flex; gap:6px; justify-content:flex-end;}
.mini{width:32px; height:32px; border-radius:10px; border:1px solid rgba(15,23,42,.16); background:rgba(255,255,255,.72); cursor:pointer; display:grid; place-items:center; color:var(--brown-2); transition:.15s;}
.mini svg{width:15px; height:15px;}
.mini:hover{border-color:var(--teal); color:var(--teal-ink);}
.mini.del:hover{border-color:#e07a7a; color:#b3403a;}

/* ============ BOTONES / FORMULARIOS ============ */
.btn{border:0; border-radius:14px; padding:.66rem 1.15rem; font-weight:700; font-size:.88rem; cursor:pointer; font-family:inherit; display:inline-flex; align-items:center; gap:8px; transition:transform .12s, box-shadow .12s, filter .15s;}
.btn svg{width:16px; height:16px;}
.btn:active{transform:scale(.97)}
.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8); color:#fff; box-shadow:0 6px 18px rgba(29,78,216,.35);}
.btn-primary:hover{filter:brightness(1.06)}
.btn-brown{background:linear-gradient(135deg,#334155,#0f172a); color:#fff; box-shadow:0 6px 18px rgba(15,23,42,.3);}
.btn-ghost{background:rgba(255,255,255,.68); border:1px solid rgba(15,23,42,.16); color:var(--brown-2);}
.btn-ghost:hover{border-color:var(--teal); color:var(--teal-ink);}
.btn-danger{background:rgba(224,122,122,.14); border:1px solid rgba(224,122,122,.5); color:#b3403a;}
.btn.sm{padding:.45rem .8rem; font-size:.8rem; border-radius:11px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:.71rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--brown-2);}
.input{
  background:rgba(255,255,255,.78); border:1px solid rgba(15,23,42,.16); border-radius:12px;
  padding:.6rem .8rem; font-size:.9rem; color:var(--ink); font-family:inherit; width:100%; outline:none; transition:.15s;
}
.input:focus{border-color:var(--teal); box-shadow:0 0 0 3px rgba(37,99,235,.22);}
select.input{cursor:pointer;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.span2{grid-column:1/-1;}
.seg{display:inline-flex; background:rgba(255,255,255,.68); border:1px solid rgba(15,23,42,.16); border-radius:12px; padding:4px; gap:4px;}
.seg button{border:0; background:transparent; padding:7px 16px; border-radius:9px; font-weight:700; color:var(--brown-2); cursor:pointer; font-size:.85rem; font-family:inherit; transition:.15s;}
.seg button.on{background:linear-gradient(135deg,var(--teal),var(--teal-2)); color:#fff; box-shadow:0 4px 12px rgba(29,78,216,.35);}
.chip{font-size:.7rem; font-weight:800; padding:3px 10px; border-radius:999px; letter-spacing:.03em; white-space:nowrap;}
.chip.ok{background:rgba(111,191,115,.22); color:#2e7d32;}
.chip.warn{background:rgba(246,226,127,.4); color:#7a5b12;}
.chip.danger{background:rgba(224,122,122,.22); color:#b3403a;}
.chip.muted{background:rgba(138,122,114,.16); color:var(--muted);}
.chip.ing{background:rgba(37,99,235,.16); color:var(--teal-ink);}
.chip.eg{background:rgba(71,85,105,.28); color:#334155;}

/* ============ COSTEO ============ */
.dc-row{display:grid; grid-template-columns:1fr 130px 36px; gap:8px; margin-bottom:8px; align-items:center;}
.result-panel{background:linear-gradient(135deg,rgba(37,99,235,.15),rgba(14,165,233,.14)); border:1px solid rgba(37,99,235,.35); border-radius:16px; padding:16px; margin-top:16px;}
.res-line{display:flex; justify-content:space-between; font-size:.88rem; padding:5px 0; color:var(--ink);}
.res-line b{color:var(--brown);}
.price-big{font-size:2rem; font-weight:800; color:var(--teal-ink); letter-spacing:-.02em;}
.break{display:flex; height:14px; border-radius:999px; overflow:hidden; margin:12px 0 6px; background:rgba(255,255,255,.65);}
.break span{display:block; height:100%; transition:width .3s;}
.svc{padding:16px; border-radius:16px; background:rgba(255,255,255,.62); border:1px solid rgba(255,255,255,.85); margin-bottom:12px; box-shadow:0 6px 18px rgba(15,23,42,.08);}
.svc h4{margin:0 0 2px; color:var(--brown); font-size:.98rem;}
.svc .p{font-size:1.3rem; font-weight:800; color:var(--teal-ink);}
.svc .meta{font-size:.76rem; color:var(--muted); display:flex; gap:10px; flex-wrap:wrap; margin:6px 0 10px;}
.svc .acts{display:flex; gap:8px;}

/* ============ MODALES / TOASTS ============ */
.overlay{position:fixed; inset:0; z-index:50; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(64,44,38,.3); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); opacity:0; pointer-events:none; transition:opacity .22s;}
.overlay.open{opacity:1; pointer-events:auto;}
.modal{width:min(560px,100%); padding:22px; transform:translateY(14px) scale(.98); transition:transform .22s; max-height:92vh; overflow:auto;}
.overlay.open .modal{transform:none;}
.modal h3{margin:0 0 16px; color:var(--brown); font-size:1.15rem;}
.modal .macts{display:flex; justify-content:flex-end; gap:10px; margin-top:18px;}
#toasts{position:fixed; right:18px; bottom:18px; z-index:70; display:flex; flex-direction:column; gap:10px;}
.toast{padding:12px 16px; border-radius:14px; background:rgba(255,255,255,.9); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.85); box-shadow:var(--shadow); font-size:.88rem; font-weight:600; color:var(--brown); display:flex; gap:10px; align-items:center; animation:tin .25s ease; max-width:340px;}
.toast .t-dot{width:9px; height:9px; border-radius:50%; flex:none;}
@keyframes tin{from{opacity:0; transform:translateY(10px)}}
.empty{padding:36px 20px; text-align:center; color:var(--muted); font-size:.9rem;}
.empty .big{font-size:2.2rem; margin-bottom:8px;}

/* ============ RESPONSIVE ============ */
@media(max-width:960px){
  .mobile-top{display:flex;}
  .sidebar{position:fixed; left:0; top:0; margin:0; height:100vh; width:272px; z-index:40; transform:translateX(-105%); transition:transform .25s; border-radius:0 22px 22px 0;}
  .sidebar.open{transform:none;}
  main{padding:18px 14px 70px;}
  .grid-kpis{grid-template-columns:1fr 1fr;}
  .grid-2,.grid-2b,.grid-cost{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .grid-kpis{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .dc-row{grid-template-columns:1fr 100px 34px;}
}

/* ============ INSIEME · LIQUID GLASS CORPORATIVO (negro + azul) ============ */
/* Fondo uniforme para mantener legibles las tarjetas. */
body{background:#f4f7fb;}
body::before,body::after{content:none;}

/* ---- Glass base ---- */
.glass{
  background:linear-gradient(145deg,rgba(255,255,255,.80),rgba(255,255,255,.46));
  border:1px solid rgba(255,255,255,.9);
  backdrop-filter:blur(24px) saturate(190%); -webkit-backdrop-filter:blur(24px) saturate(190%);
  box-shadow:0 18px 44px rgba(15,23,42,.10),0 1px 0 rgba(255,255,255,.95) inset,0 0 0 1px rgba(15,23,42,.04);
}
.card,.kpi,.toolbar{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;}
.card:hover,.kpi:hover{transform:translateY(-3px);box-shadow:0 26px 56px rgba(15,23,42,.15),0 1px 0 rgba(255,255,255,.95) inset,0 0 0 1px rgba(37,99,235,.10);}
.modal.glass:hover,.manual.glass:hover,.sidebar.glass:hover{transform:none;}

/* ---- Sidebar oscuro (black glass) ---- */
.sidebar{
  background:linear-gradient(170deg,rgba(8,12,24,.94),rgba(15,23,42,.88) 58%,rgba(23,37,84,.92));
  border:1px solid rgba(255,255,255,.14); color:#e2e8f0;
  box-shadow:0 24px 60px rgba(8,12,24,.35),0 1px 0 rgba(255,255,255,.18) inset;
}
.sidebar::before{background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,0) 42%);}
.sidebar::after{content:"";position:absolute;left:18px;right:18px;top:0;height:3px;border-radius:0 0 8px 8px;background:linear-gradient(90deg,#1e3a8a,#3b82f6,#93c5fd,#3b82f6,#1e3a8a);}
.brand{border-bottom:1px dashed rgba(255,255,255,.18);}
.brand h1{background:linear-gradient(90deg,#fff,#93c5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.brand small{color:#94a3b8;}
.brand svg{animation:floaty 5s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.nav button{color:#cbd5e1;position:relative;transition:background .25s,color .25s,transform .25s,box-shadow .25s;}
.nav button:hover{background:rgba(255,255,255,.10);color:#fff;transform:translateX(3px);}
.nav button.active{background:linear-gradient(135deg,rgba(59,130,246,.58),rgba(37,99,235,.24));color:#fff;box-shadow:inset 0 0 0 1px rgba(147,197,253,.45),0 8px 22px rgba(37,99,235,.38);}
.nav button.active::before{content:"";position:absolute;left:-14px;top:22%;bottom:22%;width:4px;border-radius:0 6px 6px 0;background:linear-gradient(180deg,#93c5fd,#3b82f6);}
.nav .badge{background:#3b82f6;color:#fff;}
.side-foot{color:#94a3b8;border-top:1px dashed rgba(255,255,255,.18);}
.side-foot .sf-btns{display:flex;gap:6px;}
.sidebar .mini{background:rgba(255,255,255,.10);color:#e2e8f0;border-color:rgba(255,255,255,.22);}
.sidebar .mini:hover{background:rgba(255,255,255,.22);color:#fff;border-color:#93c5fd;}

/* ---- Cabeceras ---- */
.view:not(.hidden){animation:viewIn .5s cubic-bezier(.2,.8,.2,1) both;}
@keyframes viewIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.view-head h2{font-size:1.8rem;background:linear-gradient(110deg,#0b1220 15%,#1e3a8a 60%,#2563eb 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.view-head h2::after{content:"";display:block;width:56px;height:4px;border-radius:99px;margin-top:8px;background:linear-gradient(90deg,#0f172a,#2563eb,#93c5fd);}
.card h3{display:flex;align-items:center;gap:8px;}
.card h3::before{content:"";width:8px;height:18px;border-radius:6px;background:linear-gradient(180deg,#2563eb,#0f172a);flex:none;}
.modal h3::before,.svc h4::before,.cg-head h3::before,.manual h3::before{display:none;}

/* ---- KPIs ---- */
.kpi{overflow:hidden;}
.kpi::after{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#2563eb,#60a5fa);}
.grid-kpis .kpi:nth-child(2)::after{background:linear-gradient(90deg,#0f172a,#475569);}
.grid-kpis .kpi:nth-child(3)::after{background:linear-gradient(90deg,#1d4ed8,#93c5fd);}
.grid-kpis .kpi:nth-child(4)::after{background:linear-gradient(90deg,#334155,#2563eb);}
.kpi .ico{box-shadow:0 8px 18px rgba(15,23,42,.12),inset 0 1px 0 rgba(255,255,255,.7);transition:transform .3s;}
.kpi:hover .ico{transform:rotate(-6deg) scale(1.08);}
.kpi .val{font-size:1.75rem;}

/* ---- Botones LIQUID GLASS ---- */
.btn{
  position:relative;overflow:hidden;isolation:isolate;
  border:1px solid rgba(255,255,255,.55);
  backdrop-filter:blur(14px) saturate(190%);-webkit-backdrop-filter:blur(14px) saturate(190%);
  transition:transform .4s cubic-bezier(.2,.9,.2,1.1),box-shadow .4s,background .4s,filter .3s,border-color .3s;
}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.50),rgba(255,255,255,0) 55%);}
.btn::after{content:"";position:absolute;top:-10%;left:-90%;width:55%;height:120%;z-index:-1;background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);transform:skewX(-20deg);transition:left .8s cubic-bezier(.2,.8,.2,1);}
.btn:hover::after{left:140%;}
.btn:hover{transform:translateY(-2px) scale(1.025);}
.btn:active{transform:translateY(0) scale(.97);}
.btn-primary{background:linear-gradient(135deg,rgba(59,130,246,.94),rgba(29,78,216,.90));box-shadow:0 12px 28px rgba(37,99,235,.40),inset 0 1px 0 rgba(255,255,255,.6),inset 0 -10px 18px rgba(30,58,138,.35);}
.btn-primary:hover{filter:none;box-shadow:0 16px 36px rgba(37,99,235,.52),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -10px 18px rgba(30,58,138,.35);}
.btn-brown{background:linear-gradient(135deg,rgba(30,41,59,.94),rgba(8,12,24,.94));border-color:rgba(255,255,255,.28);box-shadow:0 12px 28px rgba(8,12,24,.40),inset 0 1px 0 rgba(255,255,255,.35),inset 0 -10px 18px rgba(0,0,0,.35);}
.btn-ghost{background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,255,255,.38));border:1px solid rgba(255,255,255,.9);color:#1e293b;box-shadow:0 8px 20px rgba(15,23,42,.09),inset 0 1px 0 rgba(255,255,255,.95),0 0 0 1px rgba(15,23,42,.08);}
.btn-ghost:hover{color:#1d4ed8;box-shadow:0 12px 26px rgba(37,99,235,.18),inset 0 1px 0 #fff,0 0 0 1px rgba(37,99,235,.35);}
.btn-danger{background:linear-gradient(145deg,rgba(224,122,122,.20),rgba(224,122,122,.08));}
.mini{background:linear-gradient(145deg,rgba(255,255,255,.85),rgba(255,255,255,.5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 #fff;transition:transform .25s,box-shadow .25s,border-color .2s,color .2s;}
.mini:hover{transform:translateY(-1px) scale(1.06);box-shadow:0 6px 14px rgba(37,99,235,.18),inset 0 1px 0 #fff;}
.seg{background:linear-gradient(145deg,rgba(255,255,255,.75),rgba(255,255,255,.4));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 3px rgba(15,23,42,.08);}
.seg button{transition:background .3s,color .3s,box-shadow .3s,transform .2s;}
.seg button:hover{color:#1d4ed8;}
.seg button.on{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.42),inset 0 1px 0 rgba(255,255,255,.5);}
.seg.err{box-shadow:0 0 0 2px rgba(224,122,122,.7);animation:shake .35s;}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* ---- Formularios ---- */
.input{background:rgba(255,255,255,.88);box-shadow:inset 0 1px 2px rgba(15,23,42,.06);}
.input:hover{border-color:rgba(37,99,235,.5);}
.input:focus{background:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.20);}
.hint{font-size:.74rem;color:var(--muted);margin:2px 0 0;min-height:1em;}
.req{color:#1d4ed8;}

/* ---- Tablas / listas ---- */
table{min-width:760px;}
th{background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(255,255,255,.3));color:var(--brown-2);}
tbody tr{transition:background .2s;}
tbody tr:hover{background:linear-gradient(90deg,rgba(37,99,235,.10),rgba(255,255,255,.5));}
.list .row{border-radius:12px;transition:background .2s;}
.list .row:hover{background:rgba(255,255,255,.6);}
.row .r-ico{box-shadow:0 5px 12px rgba(15,23,42,.10);}
.amt.neg{color:#0f172a;}
.chip.doc-con{background:rgba(37,99,235,.14);color:#1e3a8a;}
.chip.doc-sin{background:rgba(15,23,42,.10);color:#334155;}
.period{display:flex;gap:8px;align-items:end;flex-wrap:wrap;}
.alert{box-shadow:0 4px 12px rgba(15,23,42,.06);border-left-width:4px;}
.alert.info{border-left-color:#2563eb;}

/* ---- Modales / toasts ---- */
.overlay{background:radial-gradient(circle at 50% 40%,rgba(15,23,42,.30),rgba(8,12,24,.55));}
.modal{box-shadow:0 34px 90px rgba(8,12,24,.38),inset 0 1px 0 rgba(255,255,255,.95);}
.toast{border-left:4px solid #2563eb;}

/* ---- Modal de bienvenida ---- */
.welcome{width:min(660px,100%);padding:0;overflow:hidden auto;}
.wl-hero{position:relative;padding:26px 26px 22px;color:#fff;background:radial-gradient(420px 220px at 100% 0%,rgba(59,130,246,.55),transparent 70%),linear-gradient(135deg,#080c18,#0f172a 55%,#1e3a8a);}
.wl-hero svg{width:54px;height:54px;margin-bottom:10px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.4));}
.wl-hero h3{margin:0 0 6px;font-size:1.45rem;color:#fff;}
.wl-hero p{margin:0;color:#cbd5e1;font-size:.92rem;line-height:1.5;}
.wl-body{padding:20px 26px 22px;}
.wl-steps{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.wl-steps li{display:flex;gap:11px;padding:12px;border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,255,255,.45));border:1px solid rgba(15,23,42,.08);box-shadow:inset 0 1px 0 #fff;font-size:.84rem;line-height:1.4;}
.wl-steps li:last-child{grid-column:1/-1;}
.wl-steps b{display:block;color:var(--brown);margin-bottom:2px;}
.wl-steps span.n{flex:none;width:28px;height:28px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:.82rem;color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 5px 12px rgba(37,99,235,.35);}
.wl-steps li:nth-child(even) span.n{background:linear-gradient(135deg,#334155,#0f172a);box-shadow:0 5px 12px rgba(15,23,42,.35);}
.wl-tip{font-size:.8rem;color:#1e3a8a;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.28);border-radius:12px;padding:10px 12px;line-height:1.45;}
.welcome .macts{margin-top:16px;}

/* ---- COSTEO rediseñado ---- */
.cost-layout{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:16px;align-items:start;}
.cost-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.cg-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.cg-head h3{margin:0;font-size:1.02rem;}
.cg-head p{margin:2px 0 0;font-size:.78rem;color:var(--muted);}
.cg-num{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:800;color:#fff;flex:none;background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 8px 18px rgba(37,99,235,.38),inset 0 1px 0 rgba(255,255,255,.5);}
.cg-num.dark{background:linear-gradient(135deg,#334155,#0b1220);box-shadow:0 8px 18px rgba(15,23,42,.4),inset 0 1px 0 rgba(255,255,255,.3);}
.cg-num.sky{background:linear-gradient(135deg,#60a5fa,#2563eb);}
.cg-block+.cg-block{margin-top:16px;padding-top:14px;border-top:1px dashed rgba(15,23,42,.16);}
.cg-btitle{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--brown-2);margin-bottom:10px;}
.cg-btitle .sub-amt{font-size:.84rem;letter-spacing:0;text-transform:none;color:#1d4ed8;}
.cg-row{display:grid;grid-template-columns:minmax(0,1fr) 132px 36px;gap:8px;margin-bottom:8px;align-items:center;animation:viewIn .3s both;}
.cg-row .cg-other{grid-column:1/-1;}
.cg-row.flash{animation:flash 1.2s;}
@keyframes flash{0%,60%{background:rgba(37,99,235,.18);box-shadow:0 0 0 6px rgba(37,99,235,.18);border-radius:12px}100%{background:transparent;box-shadow:none}}
.manual{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto;padding:18px;}
.manual h3{margin:0 0 4px;font-size:1rem;color:var(--brown);}
.manual .sub{margin-bottom:12px;}
.manual details{border:1px solid rgba(15,23,42,.10);border-radius:14px;background:rgba(255,255,255,.6);margin-bottom:10px;overflow:hidden;}
.manual summary{cursor:pointer;padding:11px 14px;font-weight:800;font-size:.84rem;color:var(--brown);list-style:none;display:flex;align-items:center;gap:9px;}
.manual summary::-webkit-details-marker{display:none;}
.manual summary::after{content:"+";margin-left:auto;font-size:1.1rem;color:#1d4ed8;font-weight:800;}
.manual details[open] summary::after{content:"–";}
.manual details[open] summary{background:linear-gradient(90deg,rgba(37,99,235,.10),transparent);}
.m-dot{width:10px;height:10px;border-radius:4px;flex:none;}
.m-item{display:flex;gap:10px;align-items:flex-start;padding:9px 14px;border-top:1px solid rgba(15,23,42,.07);font-size:.82rem;}
.m-item div{flex:1;min-width:0;}
.m-item b{display:block;color:var(--brown);font-weight:700;}
.m-item span{color:var(--muted);font-size:.74rem;line-height:1.35;display:block;margin-top:2px;}
.m-tip{font-size:.78rem;line-height:1.45;color:#1e3a8a;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.25);border-radius:12px;padding:10px 12px;}
.res-line.big{font-size:.95rem;font-weight:700;border-top:1px dashed rgba(15,23,42,.18);margin-top:4px;padding-top:9px;}
.res-line .tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:99px;font-size:.68rem;font-weight:800;background:rgba(37,99,235,.14);color:#1e3a8a;}
.price-box{margin-top:10px;padding:14px 16px;border-radius:16px;color:#fff;background:radial-gradient(260px 120px at 100% 0%,rgba(59,130,246,.6),transparent 70%),linear-gradient(135deg,#080c18,#0f172a 60%,#1e3a8a);box-shadow:0 14px 32px rgba(15,23,42,.35),inset 0 1px 0 rgba(255,255,255,.2);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.price-box span{font-weight:800;letter-spacing:.06em;font-size:.78rem;color:#cbd5e1;}
.price-box .price-big{background:linear-gradient(135deg,#fff,#93c5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.result-panel{background:radial-gradient(300px 160px at 100% 0%,rgba(37,99,235,.18),transparent 70%),radial-gradient(300px 160px at 0% 100%,rgba(15,23,42,.08),transparent 70%),linear-gradient(135deg,rgba(255,255,255,.7),rgba(37,99,235,.08));border:1px solid rgba(37,99,235,.28);box-shadow:0 12px 30px rgba(37,99,235,.12),inset 0 1px 0 rgba(255,255,255,.8);}
.break{box-shadow:inset 0 1px 3px rgba(15,23,42,.14);}
.svc{background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,255,255,.5));border-left:4px solid #2563eb;transition:transform .25s,box-shadow .25s;}
.svc:nth-child(even){border-left-color:#0f172a;}
.svc:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(15,23,42,.14);}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;}
.svc-grid .svc{margin:0;}

/* ---- Guía inicial y módulos nuevos ---- */
.wl-slide h4{margin:0 0 6px;font-size:1.08rem;color:var(--brown)}
.wl-txt{font-size:.88rem;line-height:1.55;margin-bottom:12px}.wl-txt ul{margin:8px 0 0;padding-left:18px}.wl-txt li{margin-bottom:4px}
.wl-slide{min-height:158px;padding:14px 16px;border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(37,99,235,.07));border:1px solid rgba(37,99,235,.2)}
.wl-dots{display:flex;gap:6px;justify-content:center;margin:14px 0 4px}.wl-dots i{width:8px;height:8px;border-radius:99px;background:rgba(15,23,42,.18);transition:.25s}.wl-dots i.on{width:24px;background:linear-gradient(90deg,#2563eb,#60a5fa)}
.wl-no{display:flex;gap:8px;align-items:center;font-size:.78rem;color:var(--muted);margin-top:10px;cursor:pointer}
.pbar{height:12px;border-radius:99px;background:rgba(15,23,42,.1);overflow:hidden}.pbar>div{height:100%;border-radius:99px;background:linear-gradient(90deg,#2563eb,#60a5fa);transition:width .4s}
.stat{display:flex;justify-content:space-between;gap:10px;padding:9px 0;font-size:.9rem;border-bottom:1px dashed rgba(15,23,42,.14)}.stat b{color:var(--brown);text-align:right}
.new-tag{font-size:.62rem;font-weight:800;margin-left:6px;padding:1px 7px;border-radius:99px;background:rgba(37,99,235,.16);color:#1e3a8a;vertical-align:middle}

/* ---- Scrollbar ---- */
*{scrollbar-width:thin;scrollbar-color:rgba(37,99,235,.55) transparent;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#2563eb,#0f172a);border-radius:99px;border:2px solid transparent;background-clip:content-box;}

@media(max-width:1100px){
  .cost-layout{grid-template-columns:1fr;}
  .manual{position:static;max-height:none;order:-1;}
}
@media(max-width:960px){.nav button.active::before{left:-8px;} body::after{display:none;}}
@media(max-width:620px){
  .wl-steps{grid-template-columns:1fr;}
  .cg-row{grid-template-columns:minmax(0,1fr) 104px 34px;}
  .view-head h2{font-size:1.5rem;}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important;}}

/* ============ IMPRESIÓN (Reportes) ============ */
@media print{
  #bg,.sidebar,.mobile-top,.head-actions,.toolbar,.no-print,#toasts{display:none !important;}
  .view{display:none !important;}
  #view-reportes{display:block !important;}
  body{background:#fff !important;}
  body::before,body::after{display:none !important;}
  .glass,.card,.svc,.kpi{backdrop-filter:none; background:#fff !important; border:1px solid #ddd; box-shadow:none !important; transform:none !important;}
  .view-head h2,.price-big{-webkit-text-fill-color:currentColor; background:none; color:#0f172a;}
  main{padding:0; max-width:none;}
}

/* Extensión compatible con el diseño azul del ZIP adjunto. */
.alert{display:block}.overlay{visibility:hidden}.overlay.open{visibility:visible}.sim-inputs,.sim-profile,.sim-breakdown,.sim-sources{margin-bottom:20px}.sim-step{display:flex;align-items:center;gap:12px;font-weight:800;color:#2563eb;margin-bottom:20px}.sim-step span{color:#243653;font-size:17px}.sim-presets{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px;font-size:12px;color:#64748b}.sim-presets button{padding:7px 12px;border:1px solid #d6e2f5;border-radius:9px;background:#eff5ff;color:#2457aa;cursor:pointer;font-weight:650}.sim-presets button:hover{background:#dfeaff}.sim-check{display:flex;align-items:flex-start;gap:9px;color:#56677e;font-size:12px;line-height:1.65;cursor:pointer}.sim-check input{margin-top:4px;accent-color:#2563eb;flex-shrink:0}.sim-import{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px;border-top:1px solid #e1e8f5;padding-top:17px;font-size:12px;color:#6c7d95}.sim-import .input{width:170px}.sim-import>span{flex-basis:100%;font-size:11px}.sim-details{margin-top:22px;border-top:1px solid #e1e8f5;padding-top:15px}.sim-details summary{cursor:pointer;font-weight:650;color:#43669f;font-size:13px}.sim-details .form-grid{margin-top:18px}.sim-recommendation{background:linear-gradient(120deg,#172d56,#2456a3);border:1px solid #315eaa;color:#eff5ff;padding:24px;border-radius:18px;margin-bottom:18px;box-shadow:0 8px 20px #1c3b6a12}.sim-recommendation h3{color:white;font-size:23px;line-height:1.4;margin:6px 0 10px}.sim-recommendation p{font-size:13px;line-height:1.75;margin:6px 0}.sim-eyebrow{letter-spacing:.12em;font-size:10px;color:#b9cdeb}.sim-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}.sim-regime{padding:22px;border:1px solid #dae3f1;border-radius:17px;background:#ffffffdf;min-width:0}.sim-regime.recommended{border:2px solid #6795dc;background:#f4f8ff;padding:21px}.sim-regime h3{font-size:16px;margin:12px 0;color:#273e61}.sim-status{display:inline-block;padding:3px 8px;border-radius:99px;background:#e7effc;color:#44699f;font-size:10px;font-weight:650}.sim-regime.unavailable{background:#f6f7fad9}.unavailable .sim-status{background:#eceef3;color:#777f8e}.sim-big{font-size:27px;font-weight:750;color:#243c60;display:block;letter-spacing:-.04em}.sim-regime small{font-size:10px;color:#7c8799}.sim-annual{font-size:12px;color:#536b8c;margin-top:13px;border-top:1px solid #e4eaf4;padding-top:13px}.sim-regime p,.sim-regime li{font-size:11px;color:#718099;line-height:1.7}.sim-regime ul{padding-left:18px}.sim-regime .btn{margin-top:6px}.sim-breakdown>.field{max-width:400px;margin-bottom:18px}.sim-break-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;margin-bottom:20px}.sim-break-grid h4{font-size:14px;color:#425a7b;margin:10px 0}.sim-break-grid .stat{font-size:12px;padding:12px 0}.sim-sources p{font-size:12px;color:#6c7f9b;line-height:1.8}.sim-sources a{font-size:12px;color:#345e9c}.rules-tag{font-size:10px;color:#5f79a2;background:#e9f0fb;border:1px solid #d1dff4;padding:6px 10px;border-radius:99px}.sim-inputs .input,.sim-profile .input{font-size:14px;min-height:43px}.sim-inputs .field label,.sim-profile .field label{font-size:11px;text-transform:none;letter-spacing:0;color:#586c88}.sim-inputs .hint,.sim-profile .hint{font-size:11px;line-height:1.7}.sim-inputs input[type=range]{width:100%;accent-color:#4b7fc8;margin-top:7px}.sim-profile .field .hint{margin:0}.sim-breakdown .stat span{max-width:65%}.sim-breakdown .stat b{white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.wl-no{display:block;line-height:1.6}.wl-no input{margin-right:7px}.field label{line-height:1.6}.stat{align-items:center}main{min-width:0}.table-wrap{max-width:100%}.nav{min-height:100px}
@media(max-width:1100px){.sim-break-grid{grid-template-columns:1fr;gap:14px}}
@media(max-width:600px){.sim-cards{grid-template-columns:1fr}.sim-recommendation{padding:20px}.sim-recommendation h3{font-size:21px}.sim-step span{font-size:15px}.sim-import{gap:9px}.sim-inputs,.sim-profile,.sim-breakdown,.sim-sources{padding:18px}.sim-big{font-size:25px}.sim-break-grid .stat{font-size:11px}.view-head h2{overflow-wrap:anywhere}.sim-breakdown .stat span{max-width:59%}}
@media print{#view-regimenes{display:none!important}}


#view-regimenes .glass::before{display:none}#view-regimenes .glass{background:#fff;border:1px solid #dbe4f2;backdrop-filter:none}#view-regimenes .sim-inputs label,#view-regimenes .sim-profile label{color:#485c79}.nav{overflow-x:hidden}

#bg{max-width:100%;width:100%!important}.card,.kpi,.grid-2>*,.grid-2b>*{min-width:0}.r-main{min-width:0;overflow-wrap:anywhere}
@media(max-width:960px){.grid-2,.grid-2b{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.list .row{flex-wrap:wrap}.list .row .r-main{flex-basis:60%}.list .row .row-actions{margin-left:auto}.sim-breakdown .stat{flex-wrap:wrap}.sim-breakdown .stat span{max-width:100%}.sim-breakdown .stat b{margin-left:auto}}

.app{z-index:auto}

/* Guía de ingresos: orientación sin repetir el módulo de impuestos. */
.guide-input{margin-bottom:22px}.guide-income-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;margin:20px 0}.guide-income-row .field label{font-size:12px;text-transform:none;letter-spacing:0;color:#526985}.guide-income-row .input{font-size:24px;font-weight:650;min-height:58px;background:#fbfdff}.guide-projection{border-left:1px solid #dce6f6;padding:2px 0 2px 26px;display:flex;flex-direction:column;gap:5px}.guide-projection span{font-size:11px;color:#71839d}.guide-projection strong{font-size:26px;letter-spacing:-.04em;color:#294e82}.guide-projection small{font-size:10px;color:#8c99ad}#guideSlider{width:100%;accent-color:#4d7fca;margin:0 0 18px}.guide-summary{border:1px solid #ccdbf4;border-radius:17px;padding:21px 24px;background:linear-gradient(110deg,#eaf2ff,#f6f9ff);margin-bottom:20px}.guide-summary h3{font-size:19px;color:#2b518c;margin:0 0 8px}.guide-summary p{font-size:13px;line-height:1.8;color:#607696;margin:0}.guide-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.guide-card{background:#ffffffed;border:1px solid #dce5f3;border-radius:17px;padding:22px;min-width:0}.guide-card h3{font-size:17px;color:#2d4568;margin:11px 0}.guide-card>b{font-size:12px;font-weight:650;color:#526e96;display:block}.guide-card p{font-size:12px;line-height:1.8;color:#75859c;margin:10px 0 0}.guide-status{font-size:10px;padding:4px 8px;border-radius:99px;display:inline-block;background:#e8f0ff;color:#5275ac}.guide-card.out-range{background:#f4f6facf}.out-range .guide-status{background:#e7ebf2;color:#7a8597}.guide-note{font-size:12px;line-height:1.85;color:#7888a1;margin:23px 0 12px;padding:0 3px}.guide-note b{font-size:12px;color:#5a7191}.guide-note p{margin:6px 0}.guide-note button{font:600 12px inherit;font-family:inherit;color:#3569b6;background:none;border:0;cursor:pointer;padding:0;font-size:12px;text-decoration:underline;text-underline-offset:3px}.guide-links{font-size:11px;color:#8595ad}.guide-links a{color:#5b7dab}.guide-links span{margin-right:8px}
/* Recorrido situado junto al módulo real; bienvenida y cierre centrados. */
#tourSpotlight{position:fixed;display:none;pointer-events:none;z-index:58;border:2px solid #7ba9ee;border-radius:16px;box-shadow:0 0 0 9999px rgba(13,27,51,.48),0 0 0 5px #99bdff2e;transition:left .15s,top .15s,width .15s,height .15s}
#wlOverlay{z-index:62}#wlOverlay.context-tour{display:block;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none;padding:0}#wlOverlay.context-tour .welcome{position:fixed;pointer-events:auto;margin:0;transform:none!important;padding:0;background:#fff;border:1px solid #d6e2f4;border-radius:17px;box-shadow:0 14px 46px #0c21442b;transition:none;overflow-y:auto;max-height:calc(100dvh - 24px)}.context-tour .wl-hero{display:none}.context-tour .wl-body{padding:19px 21px 17px}.context-tour .wl-slide{padding:0;border:0;background:transparent;min-height:0;border-radius:0}.context-tour .wl-slide h4{font-size:19px;color:#254575;margin-bottom:9px}.context-tour .wl-txt{font-size:12px;line-height:1.85;color:#607695;margin-bottom:0}.context-tour .wl-dots{gap:4px;margin-top:7px}.context-tour .wl-dots i{width:5px;height:5px}.context-tour .wl-dots i.on{width:16px}.context-tour .wl-no{display:none}.context-tour .macts{margin-top:16px;gap:7px}.context-tour .macts .btn{font-size:11px;padding:8px 11px;min-height:35px;border-radius:10px;box-shadow:none;transform:none}.context-tour .macts .btn-primary{background:#3168ba}.context-tour .macts .btn::before,.context-tour .macts .btn::after{display:none}.tour-progress{font-size:10px;color:#8798b0;text-align:center;margin:13px 0 0}.context-tour .tour-progress{font-size:9px;margin-top:14px}.context-tour .macts #wlSkip{margin-right:auto}.context-tour .btn-ghost{border:1px solid #dce4f0;background:#f7f9fc}
@media(max-width:650px){.guide-income-row{grid-template-columns:minmax(0,1fr);gap:16px}.guide-projection{border-left:0;border-top:1px solid #e1e8f5;padding:13px 0 0}.guide-projection strong{font-size:23px}.guide-cards{grid-template-columns:minmax(0,1fr)}.guide-input{padding:20px}.guide-summary{padding:19px}.guide-summary h3{font-size:18px}.guide-card{padding:20px}.context-tour .wl-body{padding:17px 19px 15px}.context-tour .wl-slide h4{font-size:18px}.context-tour .wl-txt{font-size:12px}}
@media(prefers-reduced-motion:reduce){#tourSpotlight{transition:none}}@media print{#tourSpotlight,#wlOverlay{display:none!important}}


.context-tour .welcome::before{display:none}

.tour-running .view{animation:none!important}

[hidden]{display:none!important}.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:30px 18px;background:radial-gradient(ellipse at 15% 15%,#dbe8ff,transparent 55%),#f4f7fc}.auth-card{width:min(460px,100%);padding:38px;border:1px solid #d5e1f3;border-radius:28px;background:#fff;box-shadow:0 24px 80px #203b6b18}.auth-mark{width:64px;height:64px;margin-bottom:22px}.auth-card h1{font-size:30px;letter-spacing:-1px;color:#192f56;margin:0 0 8px}.auth-card p{font-size:14px;line-height:1.7;color:#5d6f8a}.auth-card .field{margin:22px 0}.auth-card .input{width:100%;min-height:48px}.auth-card .btn{min-height:48px;width:100%;justify-content:center}.auth-card small{display:block;color:#687b96;margin-top:22px;font-size:12px;line-height:1.6}.auth-error{color:#a52b37!important;background:#fff1f1;border-radius:10px;padding:12px}.cloud-status{margin:18px 28px 0 360px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:14px 18px;background:#f7faff;border:1px solid #d1def2;border-radius:16px;font-size:12px;color:#344f76}.cloud-status>span:first-child{width:7px;height:7px;border-radius:50%;background:#37866a}.cloud-status[data-mode=saving]>span:first-child{background:#dc9b34}.cloud-status[data-mode=error]>span:first-child,.cloud-status[data-mode=conflict]>span:first-child,.cloud-status[data-mode=offline]>span:first-child{background:#b63d4b}.cloud-status .btn{min-height:36px;padding:7px 12px;font-size:12px}.cloud-status strong{margin-left:auto}.period-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:0 2px 22px;color:#4b6385;font-size:12px}.period-bar .input{min-height:42px;width:185px}.period-bar small{color:#657998}.side-foot{gap:6px}.side-foot>span{font-size:10px}.cloud-problem{position:fixed;inset:0;z-index:100000;background:#14274399;display:grid;place-items:center;padding:20px}.cloud-problem>div{max-width:480px;padding:30px;border-radius:24px;background:white;box-shadow:0 20px 70px #10213c44}.cloud-problem h2{font-size:22px;color:#203759}.cloud-problem p{font-size:14px;line-height:1.7;color:#596d88}.cloud-problem .btn{margin-top:10px}.password-settings{margin-top:24px;border-top:1px solid #d3dff1;padding-top:18px}.password-settings summary,.tax-details summary{cursor:pointer;color:#345c92;font-weight:650;margin-bottom:14px;font-size:13px}.password-settings .field{margin:12px 0}.activity-list{font-size:12px;line-height:1.6;color:#526c90;margin-top:12px;max-height:200px;overflow:auto}.tax-details{grid-column:1/-1;background:#f3f7fd;border:1px solid #d8e3f3;padding:16px;border-radius:14px}.tax-details .sim-check{font-size:12px;margin:12px 0;color:#536c8e}.tax-details .field{margin-bottom:10px}.input:focus-visible,.btn:focus-visible,.mini:focus-visible{outline:2px solid #4671b4;outline-offset:3px}.hint{color:#627791}.guide-card p,.guide-note{color:#62738e}
@media(max-width:700px){.cloud-status{margin:72px 16px 0}.auth-card{padding:28px 24px}.auth-card h1{font-size:27px}.cloud-status{padding:12px;gap:8px}.cloud-status strong{margin-left:0}.cloud-status #logout{margin-left:auto}.period-bar small{width:100%}.mini{min-width:38px;min-height:38px}.guide-card p{font-size:13px}.cloud-problem .btn{width:100%}.sidebar{overflow:auto}.side-foot{flex-wrap:wrap}}
@media print{.cloud-status,.period-bar,.auth-screen,.cloud-problem{display:none!important}}


/* Mostrar u ocultar contraseña sin enviar el formulario. */
.password-wrap{position:relative;width:100%}.password-wrap .input{padding-right:58px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#526b91;cursor:pointer;touch-action:manipulation}.password-toggle:hover{background:#e6eefb}.password-toggle:focus-visible{outline:2px solid #526b91;outline-offset:1px}.password-toggle svg{width:22px;height:22px;pointer-events:none}.password-toggle[aria-pressed=true]{color:#254f91;background:#e6eefb}

/* Cuenta integrada al pie del menú; sin franja sobre la aplicación. */
.side-foot{flex-wrap:nowrap;flex-shrink:0;padding:12px 2px 0;gap:8px}.account-summary{display:flex;align-items:center;gap:7px;min-width:0;margin:0;padding:0;color:#e2e8f0}.account-summary strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.account-dot{width:6px;height:6px;border-radius:50%;flex:none;background:#72c9aa}.account-summary[data-mode=saving] .account-dot{background:#e9bc67}.account-summary[data-mode=remote] .account-dot{background:#91b6ff}.account-summary[data-mode=error] .account-dot,.account-summary[data-mode=conflict] .account-dot,.account-summary[data-mode=offline] .account-dot{background:#f39b9b}.side-foot .sf-btns{flex-shrink:0;gap:5px}.side-foot .account-logout{width:40px;min-width:40px;font:600 11px inherit;font-family:inherit;font-size:11px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sync-notice{position:fixed;right:18px;bottom:18px;z-index:90000;width:min(420px,calc(100vw - 36px));padding:16px 18px;border:1px solid #cddbf0;border-radius:17px;background:#f9fbff;box-shadow:0 12px 36px #172e5626;color:#38547b;font-size:13px;line-height:1.6}.sync-notice>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.sync-notice .btn{font-size:12px;padding:8px 12px}.sync-notice[data-mode=offline]{border-color:#dfbfc3}
/* Guía de regímenes: controles compactos y comparación visual. */
#view-regimenes .regime-controls{display:grid;grid-template-columns:1.18fr 1.13fr 1fr;gap:24px;padding:25px;margin-bottom:22px;border-color:#d5e1f4;align-items:start}
.regime-control{min-width:0}.regime-control+.regime-control{border-left:1px solid #dbe3f0;padding-left:24px}.regime-label,.regime-label-row>label{font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:750;color:#425a7d;display:block;line-height:1.6}.regime-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px;min-height:38px}.regime-money{display:flex;align-items:center;gap:4px;background:#e5eeff;border:1px solid #ccdaf6;color:#285caa;border-radius:10px;padding:6px 9px;flex:none}.regime-money span{font-size:12px;font-weight:700}.regime-money input{width:91px;min-width:0;padding:0;color:inherit;border:0;background:none;outline:none;font:700 14px 'Segoe UI',sans-serif;font-variant-numeric:tabular-nums;text-align:right;appearance:textfield;-moz-appearance:textfield}.regime-money input::-webkit-inner-spin-button,.regime-money input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.regime-money:focus-within{outline:2px solid #5d83be;outline-offset:3px}
#view-regimenes #guideSlider{appearance:none;-webkit-appearance:none;height:6px;border-radius:20px;margin:2px 0 20px;background:linear-gradient(to right,#3f74c8 0%,#3f74c8 var(--guide-progress,13.33%),#d8e1ef var(--guide-progress,13.33%),#d8e1ef 100%);border:0;cursor:pointer}#guideSlider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#356dbe;border:3px solid #fff;box-shadow:0 0 0 1px #9eb9e0}#guideSlider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#356dbe;border:3px solid #fff}#guideSlider:focus-visible{outline:2px solid #7198d2;outline-offset:7px}
.regime-presets{display:flex;flex-wrap:wrap;gap:5px}.regime-presets button{font:600 10px 'Segoe UI',sans-serif;background:#f9fbff;color:#5a7296;border:1px solid #d6e1f2;border-radius:6px;padding:5px 7px;cursor:pointer;transition:background .15s,color .15s}.regime-presets button:hover{background:#e2edff}.regime-presets button.is-selected{background:#315e9e;color:white;border-color:#315e9e}.regime-annual{font-size:10px;color:#72829c;margin:15px 0 0;line-height:1.7;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.regime-annual strong{color:#4b6489;font-weight:700}.regime-annual span{color:#788ba6;font-size:9px}
.regime-activities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:16px}.activity-choice{min-width:0;display:flex;align-items:center;flex-direction:column;gap:6px;min-height:92px;background:#ffffffaa;border:1px solid #d7e1f2;border-radius:12px;padding:12px 5px 9px;cursor:pointer;color:#5d7397;font-family:inherit;transition:background .15s,border-color .15s}.activity-choice svg{width:19px;height:19px;color:#4a78ba;margin:0 0 2px}.activity-choice b{font-size:11px;font-weight:650}.activity-choice small{font-size:9px;line-height:1.5;text-align:center;color:#7a8ca8;overflow-wrap:anywhere}.activity-choice.is-selected{border-color:#6a96d8;background:#eaf2ff;box-shadow:0 0 0 2px #dce8fb}.activity-choice.is-selected b{color:#2b5796}.regime-micro{font-size:10px;line-height:1.7;color:#7285a1;margin:12px 0 0}.regime-clients{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:16px}.regime-clients button{font:600 11px 'Segoe UI',sans-serif;min-height:57px;padding:9px 7px;color:#5a7295;background:#ffffffa8;border:1px solid #d7e1f2;border-radius:10px;cursor:pointer}.regime-clients button small{display:block;font-size:9px;font-weight:400;margin-top:4px}.regime-clients button.is-selected{color:#fff;background:#305f9f;border-color:#305f9f}.regime-presets button:focus-visible,.activity-choice:focus-visible,.regime-clients button:focus-visible{outline:2px solid #648fd0;outline-offset:3px}
.regime-recommendation{background:linear-gradient(112deg,#152c50,#254b82 67%,#315c96);border:1px solid #527bb5;box-shadow:0 8px 22px #1739651c;border-radius:19px;display:flex;gap:18px;padding:25px 28px;color:#fff;margin:0 0 23px}.regime-rec-icon{display:grid;place-items:center;width:43px;height:43px;flex:none;background:#ffffff13;border:1px solid #ffffff2c;border-radius:13px;margin-top:3px}.regime-rec-icon svg{width:24px;height:24px;color:#c1d7fb}.regime-rec-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#c5d8f6;text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:700}.regime-rec-kicker span{padding:4px 8px;letter-spacing:0;text-transform:none;background:#ffffff12;border:1px solid #ffffff24;border-radius:30px;font-size:9px;font-weight:500;color:#d8e5fa}.regime-recommendation h3{margin:9px 0 8px;font-size:24px;letter-spacing:-.035em;line-height:1.3;color:#fff;font-weight:700}.regime-recommendation p{font-size:12px;line-height:1.85;margin:0;color:#d4e0f3;max-width:950px}
.regime-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}.regime-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:22px 18px 16px;background:#ffffffb8;border:1px solid #d9e3f1;border-radius:18px;overflow:hidden}.regime-card.recommended{border:1.5px solid #5f8acb;background:linear-gradient(170deg,#edf4ff,#ffffffdd 65%);box-shadow:0 0 0 3px #dce7fa,0 10px 24px #2b518b12}.regime-card.recommended::before{content:'';position:absolute;left:18px;right:18px;top:0;height:3px;background:linear-gradient(90deg,#346dc0,#8ab4f1);border-radius:0 0 5px 5px}.regime-card.unavailable{background:#f2f5faad;border-color:#dfe6f1}.regime-card-head{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-bottom:17px}.regime-card-number{font-size:11px;color:#91a0b7;font-weight:650;letter-spacing:.06em}.regime-card-status{font-size:8px;line-height:1.5;white-space:nowrap;color:#617b9e;background:#edf2fa;border-radius:20px;padding:4px 7px}.regime-card-status.review{color:#826c38;background:#f4eddb}.regime-card-status.muted{color:#7b879a;background:#e8edf4}.recommended .regime-card-status{color:#fff;background:#3d70b6}.regime-card h3{font-size:14px;color:#344c70;font-weight:700;line-height:1.5;margin:0 0 14px;min-height:42px;letter-spacing:-.01em}.regime-card-metric{font-size:23px;line-height:1.3;letter-spacing:-.04em;font-weight:750;color:#294567;font-variant-numeric:tabular-nums;white-space:nowrap}.recommended .regime-card-metric{color:#2d62aa}.unavailable .regime-card-metric{color:#77869c}.regime-card-unit{font-size:10px;line-height:1.65;color:#6f83a1;margin:4px 0 18px;min-height:17px}.regime-card ul{list-style:none;padding:15px 0 17px;margin:0;border-top:1px solid #dbe4f0;display:flex;flex-direction:column;gap:10px;flex:1}.regime-card li{display:flex;gap:7px;align-items:flex-start;color:#637a99;font-size:10px;line-height:1.8}.regime-card li>span{font-size:9px;line-height:15px;width:15px;height:15px;text-align:center;border:1px solid #a6bcd9;color:#4c77ad;border-radius:50%;flex:none;margin-top:2px}.regime-card-reason{background:#edf2f9;border-radius:10px;padding:11px 12px;font-size:9px;line-height:1.8;color:#6a7e9b;margin:0}.recommended .regime-card-reason{background:#e7effc;color:#4f6f9c}
.regime-bottom{display:flex;gap:28px;align-items:center;justify-content:space-between;margin:25px 0 17px;padding:0 3px}.regime-basis{max-width:900px}.regime-basis b{font-size:11px;color:#526b8d}.regime-basis p{font-size:10px;line-height:1.9;color:#7184a1;margin:5px 0}.regime-bottom .btn{font-size:11px;white-space:nowrap;flex:none;padding:11px 14px}.regime-bottom .btn svg{width:15px;height:15px}
@media(max-width:1250px){#view-regimenes .regime-controls{grid-template-columns:1fr 1fr;gap:22px}.regime-sales{grid-column:1/-1;border-bottom:1px solid #dbe3f0;padding-bottom:18px}.regime-controls .regime-control:nth-child(2){border-left:0;padding-left:0}.regime-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.regime-card h3{min-height:0}.regime-card-metric{font-size:26px}.regime-card li{font-size:12px}.regime-card-unit,.regime-card-reason{font-size:11px}.regime-card-status{font-size:10px}.regime-bottom{align-items:flex-start;flex-direction:column;gap:12px}.regime-annual,.regime-micro{font-size:11px}.regime-label,.regime-label-row>label{font-size:11px}}
@media(max-width:700px){#view-regimenes .regime-controls{display:flex;flex-direction:column;padding:22px 19px;gap:20px}.regime-control{width:100%}.regime-controls .regime-control+.regime-control{border:0;border-top:1px solid #dbe3f0;padding:19px 0 0}.regime-controls .regime-sales{border:0;padding-bottom:0}.regime-label-row{align-items:center;gap:10px}.regime-label-row>label{font-size:10px;max-width:140px}.regime-money input{width:92px}.regime-presets{gap:6px}.regime-presets button{font-size:11px;padding:6px 8px;min-height:32px}.activity-choice{padding:13px 6px;min-height:101px}.activity-choice b{font-size:12px}.activity-choice small{font-size:10px}.regime-clients button{font-size:12px;min-height:59px}.regime-clients button small{font-size:10px}.regime-recommendation{padding:23px 20px;gap:13px}.regime-rec-icon{width:34px;height:34px;border-radius:10px}.regime-rec-icon svg{width:21px;height:21px}.regime-recommendation h3{font-size:22px}.regime-recommendation p{font-size:12px}.regime-rec-kicker{font-size:8px;gap:6px}.regime-grid{grid-template-columns:1fr;gap:15px}.regime-card{padding:22px}.regime-card-head{margin-bottom:12px}.regime-card h3{font-size:17px}.regime-card-metric{font-size:28px}.regime-card li{font-size:12px}.regime-card-unit{font-size:12px}.regime-card-reason{font-size:11px}.regime-basis b{font-size:12px}.regime-basis p{font-size:11px}.regime-bottom .btn{font-size:12px}.regime-bottom{margin-top:20px}}

#view-regimenes .regime-controls{display:block;padding:24px 28px}.regime-controls .regime-sales{border:0;padding:0;width:100%}.regime-sales .regime-label-row{margin-bottom:12px}.regime-sales .regime-presets{gap:8px}.regime-sales .regime-annual{margin-top:12px}

/* Ingresos del período para la guía de Insieme */
.guide-month-source{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid rgba(130,171,239,.18)}
.guide-month-source .field{min-width:180px;max-width:240px}
.guide-month-source p{flex-basis:100%;margin:0}
.regime-controls{display:block}
#guideSource{margin:8px 0 12px;line-height:1.5}
@media(max-width:540px){.guide-month-source .field{max-width:none;width:100%}.guide-month-source .btn{width:100%}.regime-label-row{flex-wrap:wrap;gap:10px}}
