*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f5f5f7;
  --paper:#ffffff;
  --paper2:#fbfbfd;
  --paper3:#f0f0f2;
  --ink:#1d1d1f;
  --ink2:#424245;
  --ink3:#6e6e73;
  --line:#d2d2d7;
  --line2:#b0b0b5;
  --blue:#0071e3;
  --blue-hover:#0077ed;
  --blue-bg:rgba(0,113,227,.07);
  --blue-line:rgba(0,113,227,.2);
  --red:#ff3b30;
  --red-bg:rgba(255,59,48,.06);
  --green:#34c759;
  --green-dark:#248a3d;
  --green-bg:rgba(52,199,89,.08);
  --gold:#f5a623;
  --gold-bg:rgba(245,166,35,.08);
  --gold-line:rgba(245,166,35,.25);
  --purple:#af52de;
  --purple-bg:rgba(175,82,222,.07);
  --teal:#32ade6;
  --teal-bg:rgba(50,173,230,.07);
  --shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);
  --shadow:0 4px 16px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);
  --shadow-lg:0 12px 40px rgba(0,0,0,.1),0 4px 12px rgba(0,0,0,.06);
  --r:12px;--rsm:8px;--rxs:6px;
}
html{font-size:15px}
body{background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,-apple-system,sans-serif;min-height:100vh;padding:0 0 4rem;line-height:1.5;-webkit-font-smoothing:antialiased}

/* ── TOPBAR ── */
.topbar{background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08);color:var(--ink);padding:0 1.5rem;height:52px;display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:300}
.tb-l{display:flex;align-items:center;gap:1rem}
.tb-logo{display:flex;align-items:center;gap:.5rem}
.tb-logo img{height:24px;width:auto;display:block}
.tb-logo-text{font-size:.82rem;font-weight:600;color:var(--ink3);letter-spacing:.01em}
.tb-sep{width:1px;height:18px;background:var(--line);flex-shrink:0}
.tb-context{display:flex;align-items:center;gap:.5rem}
.tb-ctx-lbl{font-size:.72rem;font-weight:500;color:var(--ink3);white-space:nowrap}
.tb-ctx-inp{background:transparent;border:none;color:var(--ink);font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;width:200px;padding:2px 4px;outline:none}
.tb-ctx-inp::placeholder{color:var(--ink3);font-weight:400}
.tb-r{display:flex;align-items:center;gap:.5rem}

/* Save indicator */
.save-indicator{display:flex;align-items:center;gap:5px;font-size:.72rem;font-weight:500;padding:4px 10px;border-radius:980px;transition:all .3s;opacity:0;pointer-events:none}
.save-indicator.saving{opacity:1;background:rgba(255,255,255,.12);color:rgba(255,255,255,.7)}
.save-indicator.saved{opacity:1;background:rgba(52,199,89,.15);color:#30d158}
.save-indicator.error{opacity:1;background:rgba(255,59,48,.15);color:#ff6961}
@keyframes spin{to{transform:rotate(360deg)}}
.save-spin{animation:spin .8s linear infinite;display:inline-block}
.btn-top{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:980px;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:500;cursor:pointer;border:none;transition:all .15s;white-space:nowrap}
.btn-back{background:var(--paper3);border:none;border-radius:50%;color:var(--ink2);cursor:pointer;display:flex;align-items:center;justify-content:center;width:28px;height:28px;transition:background .15s;flex-shrink:0}
.btn-back:hover{background:var(--line)}
.btn-danger{background:rgba(255,59,48,.1);color:var(--red)}
.btn-danger:hover{background:rgba(255,59,48,.18)}
.btn-secondary{background:var(--blue);color:#fff}
.btn-secondary:hover{background:var(--blue-hover)}
.btn-secondary:disabled{opacity:.4;cursor:wait}

/* ── TABS BAR ── */
.tabs-bar{background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08);padding:0 1.5rem;position:fixed;top:52px;left:0;right:0;z-index:299}
.tabs{display:flex;gap:0}
.tab{padding:10px 16px;font-size:.78rem;font-weight:500;color:var(--ink3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s;display:flex;align-items:center;gap:6px;font-family:'Inter',sans-serif;letter-spacing:-.01em}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.tab svg{opacity:.7}
.tab.active svg{opacity:1;stroke:var(--blue)}

.pane{display:none}
.pane.active{display:block}

/* ── HOME ── */
#home-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:5.5rem 1.5rem 3rem}
.home-hero{text-align:center;margin-bottom:3rem}
.home-hero img{height:44px;width:auto;margin:0 auto 1.2rem;display:block}
.home-title{font-size:2.2rem;font-weight:700;color:var(--ink);letter-spacing:-.04em;margin-bottom:.4rem;line-height:1.1}
.home-sub{font-size:1rem;color:var(--ink3);font-weight:400}
.home-sections{width:100%;max-width:1020px;display:flex;flex-direction:column;gap:3rem}
.home-section-hd{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1rem}
.home-section-title{font-size:1.3rem;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.home-section-sub{font-size:.82rem;color:var(--ink3);margin-top:2px}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;width:100%}

/* ── CARDS (home) ── */
.card{background:var(--paper);border-radius:var(--r);padding:1.1rem 1.2rem;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.card-new{background:transparent;border:1.5px dashed var(--line2);box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:110px;color:var(--ink3);gap:.4rem;font-size:.8rem;font-weight:500}
.card-new:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-bg);transform:translateY(-1px)}
.card-event.card-new:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-bg)}
.card-venue.card-new:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-bg)}
.card-country.card-new:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-bg)}
.card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;transform:scaleX(0);transition:transform .2s;transform-origin:left}
.card-event::after{background:var(--blue)}
.card-venue::after{background:var(--teal)}
.card-country::after{background:var(--purple)}
.card:hover::after{transform:scaleX(1)}
.card-del{position:absolute;top:8px;right:8px;background:none;border:none;color:transparent;cursor:pointer;transition:color .15s;padding:3px;line-height:1;border-radius:50%}
.card:hover .card-del{color:var(--ink3)}
.card-del:hover{color:var(--red) !important;background:var(--red-bg)}
.c-name{font-size:.95rem;font-weight:600;color:var(--ink);margin-bottom:.15rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-sub{font-size:.76rem;color:var(--ink3);margin-bottom:.55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-meta{display:flex;gap:.35rem;flex-wrap:wrap}
.c-badge{font-size:.68rem;font-weight:500;padding:2px 8px;border-radius:980px;background:var(--paper3);color:var(--ink3)}
.c-date{font-size:.7rem;color:var(--line2);margin-top:.5rem}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);backdrop-filter:blur(8px);z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal{background:var(--paper);border-radius:18px;width:100%;max-width:500px;overflow:hidden;box-shadow:var(--shadow-lg)}
.modal-hd{padding:1.3rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.modal-title{font-size:1rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.modal-close{background:var(--paper3);border:none;cursor:pointer;color:var(--ink2);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}
.modal-close:hover{background:var(--line)}
.modal-body{padding:1.3rem 1.5rem}
.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:.5rem}
.btn-modal-primary{background:var(--blue);color:#fff;border:none;border-radius:980px;padding:8px 20px;font-family:'Inter',sans-serif;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}
.btn-modal-primary:hover{background:var(--blue-hover)}
.btn-modal-primary:disabled{opacity:.4;cursor:not-allowed}
.btn-modal-cancel{background:var(--paper3);border:none;border-radius:980px;padding:8px 16px;font-family:'Inter',sans-serif;font-size:.85rem;font-weight:500;color:var(--ink2);cursor:pointer;transition:background .15s}
.btn-modal-cancel:hover{background:var(--line)}
.country-required-note{background:var(--gold-bg);border:1px solid var(--gold-line);border-radius:var(--rsm);padding:.75rem 1rem;font-size:.82rem;color:#8a6000;margin-bottom:1rem;line-height:1.55}

/* ── CURRENCY RADIO ── */
.currency-radio-lbl{display:flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border:1.5px solid var(--line);border-radius:var(--rsm);cursor:pointer;font-size:.82rem;font-weight:500;color:var(--ink2);transition:all .15s;user-select:none}
.currency-radio-lbl:hover{border-color:var(--blue);color:var(--ink)}
.currency-radio-lbl input[type=radio]{accent-color:var(--blue);width:15px;height:15px;cursor:pointer}
.currency-radio-lbl:has(input:checked){border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}

/* ── LAYOUT ── */
.app-layout{max-width:1200px;margin:0 auto;padding:1.5rem;display:grid;grid-template-columns:1fr 360px;gap:1.5rem;align-items:start}
@media(max-width:960px){.app-layout{grid-template-columns:1fr}}
.vm-layout{max-width:1100px;margin:0 auto;padding:90px 1.5rem 1.5rem;display:grid;grid-template-columns:400px 1fr;gap:1.5rem;align-items:start}
@media(max-width:820px){.vm-layout{grid-template-columns:1fr}}
.cm-layout{max-width:760px;margin:0 auto;padding:90px 1.5rem 1.5rem}

/* ── CONFIG STRIP ── */
.cfg-strip{background:var(--paper);border-radius:var(--r);padding:1rem 1.1rem;margin-bottom:1rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-items:end;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.cfg-strip-2{grid-template-columns:1fr 1fr}
.cfg-strip-3{grid-template-columns:repeat(3,1fr)}
.cfg-group{display:flex;flex-direction:column;gap:5px}
.cfg-lbl{font-size:.7rem;font-weight:500;color:var(--ink3);letter-spacing:.02em;text-transform:uppercase}
.cfg-sym{position:relative}
.cfg-sym input{padding-left:22px}
.cfg-sym::before{content:attr(data-sym);position:absolute;left:9px;top:50%;transform:translateY(-50%);font-size:.82rem;color:var(--ink3);pointer-events:none}
.cfg-inp{background:var(--paper2);border:1.5px solid var(--line);border-radius:var(--rsm);padding:7px 10px;font-family:'Inter',sans-serif;font-size:.88rem;color:var(--ink);outline:none;transition:border-color .15s;width:100%}
.cfg-inp:focus{border-color:var(--blue);background:#fff}
.cfg-inp:disabled,.cfg-inp[readonly]{background:var(--paper3);color:var(--ink3);cursor:not-allowed;border-style:dashed}
.cfg-mm{display:grid;grid-template-columns:1fr 1fr;gap:5px}

/* country badge */
.country-badge{background:linear-gradient(135deg,var(--blue-bg),rgba(50,173,230,.06));border:1px solid var(--blue-line);border-radius:var(--r);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cb-left .cb-lbl{font-size:.68rem;font-weight:600;color:var(--blue);letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px}
.cb-left .cb-val{font-size:.9rem;font-weight:600;color:var(--ink)}
.cb-right{font-size:.78rem;color:var(--blue);font-weight:500}

/* locked fields */
.locked-strip{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}
.locked-strip-title{font-size:.7rem;font-weight:500;color:var(--ink3);letter-spacing:.02em;text-transform:uppercase;margin-bottom:.65rem}
.locked-fields{display:flex;flex-wrap:wrap;gap:.5rem}
.locked-field{background:var(--paper3);border-radius:var(--rxs);padding:5px 12px;display:flex;flex-direction:column;gap:2px}
.lf-lbl{font-size:.62rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}
.lf-val{font-size:.9rem;font-weight:600;color:var(--ink2)}

/* ── SECTION HEADER ── */
.sec-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem}
.sec-title{font-size:1.1rem;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.btn-add{display:inline-flex;align-items:center;gap:5px;background:var(--blue);color:#fff;border:none;border-radius:980px;padding:7px 16px;font-family:'Inter',sans-serif;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s}
.btn-add:hover{background:var(--blue-hover)}

/* ── LOCALIDAD CARD ── */
.loc-card{background:var(--paper);border-radius:var(--r);margin-bottom:10px;overflow:hidden;transition:box-shadow .2s;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.loc-card:hover{box-shadow:var(--shadow)}
.loc-top{display:grid;grid-template-columns:5px 1fr 110px 110px 100px 34px;align-items:stretch;border-bottom:1px solid var(--line)}
.loc-sw{cursor:pointer;transition:opacity .15s}
.loc-sw:hover{opacity:.7}
.loc-f{padding:9px 11px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.loc-f-lbl{font-size:.62rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}
.loc-f input{background:transparent;border:none;outline:none;font-family:'Inter',sans-serif;font-size:.88rem;color:var(--ink);width:100%;padding:0;font-weight:400}
.loc-f input::placeholder{color:var(--ink3)}
.loc-computed{font-size:.88rem;color:var(--ink2);font-weight:600}
.loc-del{background:none;border:none;cursor:pointer;color:var(--ink3);display:flex;align-items:center;justify-content:center;transition:color .15s;padding:0 9px}
.loc-del:hover{color:var(--red)}
.loc-sliders{padding:10px 14px 12px;border-bottom:1px solid var(--line);background:var(--paper2)}
.sl-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.sl-row:last-child{margin-bottom:0}
.sl-lbl{font-size:.72rem;font-weight:500;color:var(--ink3);min-width:80px}
.sl-input-wrap{display:flex;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:var(--rxs);overflow:hidden;flex-shrink:0}
.sl-sym{font-size:.75rem;color:var(--ink3);padding:0 6px;background:var(--paper3);border-right:1px solid var(--line);align-self:stretch;display:flex;align-items:center;font-weight:500}
.sl-input-wrap .sl-sym:last-child{border-right:none;border-left:1px solid var(--line)}
.sl-num-inp{width:56px;border:none;outline:none;background:transparent;font-family:'Inter',sans-serif;font-size:.85rem;font-weight:600;color:var(--ink);padding:5px 6px;text-align:right;-moz-appearance:textfield}
.sl-num-inp::-webkit-outer-spin-button,.sl-num-inp::-webkit-inner-spin-button{-webkit-appearance:none}
input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:3px;border-radius:2px;background:var(--line);outline:none;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--blue);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,113,227,.3);cursor:pointer;transition:transform .15s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
.loc-prices{display:grid;grid-template-columns:repeat(4,1fr)}
.pc{padding:9px 12px;border-right:1px solid var(--line)}
.pc:last-child{border-right:none;background:linear-gradient(135deg,var(--blue-bg),rgba(0,113,227,.04))}
.pc-lbl{font-size:.62rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px}
.pc:last-child .pc-lbl{color:var(--blue)}
.pc-val{font-size:.9rem;font-weight:600;color:var(--ink)}
.pc:last-child .pc-val{color:var(--blue);font-size:1rem}
.pc-sf-expanded{display:flex;flex-direction:column}
.pc-sf-breakdown{margin-top:5px;border-top:1px solid var(--line);padding-top:4px;display:flex;flex-direction:column;gap:3px}
.pcbd-row{display:flex;justify-content:space-between;font-size:.66rem;color:var(--ink3);gap:4px}
.pcbd-row span:last-child{font-weight:600}
.pcbd-iva{opacity:.7}
.loc-rev{padding:6px 14px;background:var(--paper2);font-size:.7rem;color:var(--ink3);text-align:right;font-weight:500;border-top:1px solid var(--line)}
.loc-cur-display{display:flex;align-items:center;gap:.5rem;padding:5px 12px 7px;font-size:.78rem}
.loc-cur-usd{color:var(--ink3)}
.loc-cur-local{color:var(--blue);font-weight:600}
.loc-cur-arrow{color:var(--ink3);font-size:.65rem}
.color-hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.empty-st{background:var(--paper);border:1.5px dashed var(--line2);border-radius:var(--r);padding:2.5rem 2rem;text-align:center;color:var(--ink3);box-shadow:none}
.empty-st p{font-size:.85rem;margin-top:.4rem}

/* ── SIDEBAR ── */
.sidebar{position:sticky;top:102px}
.sb{border-radius:980px;padding:8px 16px;font-size:.78rem;font-weight:500;margin-bottom:10px;text-align:center}
.sb-ok{background:var(--green-bg);color:var(--green-dark);border:1px solid rgba(52,199,89,.2)}
.sb-warn{background:var(--gold-bg);color:#8a6000;border:1px solid var(--gold-line)}
.sb-bad{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,59,48,.2)}
.avg-card{background:var(--ink);color:#fff;border-radius:var(--r);padding:0;margin-bottom:10px;display:flex;overflow:hidden;box-shadow:var(--shadow)}
.avg-half{flex:1;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:3px}
.avg-half-right{text-align:right}
.avg-divider{width:1px;background:rgba(255,255,255,.1);flex-shrink:0;margin:12px 0}
.avg-lbl{font-size:.62rem;font-weight:600;color:rgba(255,255,255,.45);letter-spacing:.04em;text-transform:uppercase}
.avg-sub{font-size:.6rem;color:rgba(255,255,255,.3);margin-bottom:4px}
.avg-val{font-size:1.8rem;font-weight:700;color:#2997ff;line-height:1;margin-top:auto;letter-spacing:-.02em}
.avg-val-pub{color:#30d158}
.afo-card{background:var(--paper);border-radius:var(--r);padding:9px 14px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.afo-card .l{font-size:.68rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}
.afo-card .v{font-size:.88rem;font-weight:600;color:var(--ink)}
.res-card{background:var(--paper);border-radius:var(--r);overflow:hidden;margin-bottom:10px;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.rs{background:var(--paper2);padding:5px 14px;font-size:.62rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.rr{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);font-size:.82rem}
.rr:last-child{border-bottom:none}
.rr .l{color:var(--ink2)}.rr .v{font-weight:600;color:var(--ink)}
.rsub{display:flex;justify-content:space-between;align-items:center;padding:5px 14px 5px 24px;border-bottom:1px solid var(--line);font-size:.74rem}
.rsub .l{color:var(--ink3)}.rsub .v{color:var(--ink2);font-weight:600}
.rr.em{background:var(--paper2)}.rr.em .l{font-weight:600;color:var(--ink)}
.util-row{padding:11px 14px;display:flex;justify-content:space-between;align-items:center;background:var(--paper2);border-top:1px solid var(--line)}
.util-lbl{font-size:.9rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.util-val{font-size:1.4rem;font-weight:700;letter-spacing:-.02em}
.ocu-card{background:var(--paper);border-radius:var(--r);padding:11px 14px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;text-align:center;margin-bottom:10px;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.ocu-lbl{font-size:.62rem;font-weight:600;color:var(--ink3);margin-bottom:3px;letter-spacing:.02em;text-transform:uppercase}
.ocu-val{font-size:.88rem;font-weight:600}
.spl-card{background:var(--paper);border-radius:var(--r);overflow:hidden;margin-bottom:10px;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.spl-tr{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}
.spl-tl{font-size:.78rem;color:var(--ink2)}.spl-tv{font-size:.95rem;font-weight:600}
.spl-sw{padding:9px 14px 7px;border-bottom:1px solid var(--line)}
.spl-sc{position:relative;height:24px;display:flex;align-items:center;margin-bottom:5px}
.spl-tr-bg{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:5px;border-radius:3px;background:var(--paper3);display:flex;overflow:hidden;pointer-events:none}
.spl-fl{height:100%;transition:width .05s}.spl-fr{height:100%;flex:1}
.spl-rng{-webkit-appearance:none;appearance:none;position:absolute;left:0;width:100%;height:24px;background:transparent;outline:none;cursor:pointer;margin:0;padding:0}
.spl-rng::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--line);box-shadow:0 1px 4px rgba(0,0,0,.15);cursor:grab}
.spl-labels{display:flex;justify-content:space-between;font-size:.68rem;color:var(--ink3);font-weight:500}
.spl-boxes{display:grid;grid-template-columns:1fr 1fr}
.spl-box{padding:9px 14px;border-right:1px solid var(--line)}
.spl-box:last-child{border-right:none}
.spl-bl{font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px}
.spl-bp{font-size:.62rem;color:var(--ink3);margin-bottom:4px;font-weight:500}
.spl-bv{font-size:.95rem;font-weight:700}
.spl-breakdown{margin-top:6px;border-top:1px solid rgba(0,113,227,.12);padding-top:5px;display:flex;flex-direction:column;gap:3px}
.spbd-row{display:flex;justify-content:space-between;align-items:center;gap:4px}
.spbd-lbl{font-size:.64rem;color:var(--blue);opacity:.8;line-height:1.3}
.spbd-val{font-size:.68rem;font-weight:600;color:var(--blue);white-space:nowrap}
.sf-fixed-row{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);gap:10px;background:var(--blue-bg)}
.sf-fixed-lbl{font-size:.75rem;color:var(--blue);flex:1;line-height:1.4;font-weight:500}
.sf-fixed-inp-wrap{display:flex;align-items:center;background:#fff;border:1.5px solid var(--blue-line);border-radius:var(--rxs);overflow:hidden;flex-shrink:0}
.sf-fixed-sym{font-size:.76rem;color:var(--ink3);padding:0 6px;background:var(--paper2);border-right:1px solid var(--line);align-self:stretch;display:flex;align-items:center}
.sf-fixed-inp{width:62px;border:none;outline:none;background:transparent;font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;color:var(--ink);padding:6px 7px;text-align:right;-moz-appearance:textfield}
.sf-fixed-inp::-webkit-outer-spin-button,.sf-fixed-inp::-webkit-inner-spin-button{-webkit-appearance:none}
.foot-note{background:var(--paper);border-radius:var(--r);padding:9px 14px;font-size:.7rem;color:var(--ink3);line-height:1.7;margin-bottom:10px;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.foot-note strong{color:var(--ink2)}

/* venue selector */
.venue-selector-bar{background:var(--paper);border-radius:var(--r);padding:.8rem 1rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.vs-left{display:flex;flex-direction:column;gap:2px}
.vs-lbl{font-size:.62rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}
.vs-current{font-size:.88rem;font-weight:600;color:var(--ink)}
.vs-select{background:var(--paper3);border:1.5px solid var(--line);border-radius:var(--rsm);padding:6px 10px;font-family:'Inter',sans-serif;font-size:.82rem;color:var(--ink);outline:none;cursor:pointer;min-width:200px;font-weight:500}
.vs-select:focus{border-color:var(--blue)}

/* CURRENCY BAR */
.currency-bar{background:linear-gradient(135deg,var(--blue-bg),rgba(0,113,227,.04));border:1px solid var(--blue-line);border-radius:var(--r);padding:.8rem 1rem;margin-bottom:1rem;display:flex;align-items:center;gap:1.5rem}
.cur-left{flex:1}
.cur-label{font-size:.62rem;font-weight:600;color:var(--blue);letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px}
.cur-name{font-size:.9rem;font-weight:600;color:var(--ink)}
.cur-middle{display:flex;align-items:center;gap:.5rem}
.cur-rate-label{font-size:.72rem;color:var(--ink3);font-weight:500;white-space:nowrap}
.cur-symbol{font-size:.9rem;font-weight:700;color:var(--blue);min-width:12px}
.cur-rate-inp{width:90px;background:#fff;border:1.5px solid var(--blue-line);border-radius:var(--rxs);padding:5px 8px;font-family:'Inter',sans-serif;font-size:.9rem;font-weight:600;color:var(--ink);outline:none;text-align:right}
.cur-rate-inp:focus{border-color:var(--blue)}
.cur-right{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.cur-toggle{display:flex;background:var(--paper3);border-radius:980px;padding:2px;gap:2px}
.cur-toggle-btn{padding:4px 14px;border:none;background:transparent;font-family:'Inter',sans-serif;font-size:.76rem;font-weight:500;color:var(--ink3);cursor:pointer;border-radius:980px;transition:all .15s}
.cur-toggle-btn.active{background:#fff;color:var(--blue);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.1)}

/* ── CANVAS ── */
.canvas-wrap{background:var(--paper);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.canvas-tb{padding:.65rem 1rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;background:var(--paper2)}
.tb-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:980px;font-family:'Inter',sans-serif;font-size:.74rem;font-weight:500;cursor:pointer;border:1.5px solid var(--line);background:#fff;color:var(--ink2);transition:all .15s}
.tb-btn:hover{border-color:var(--blue);color:var(--blue)}
.tb-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.tb-btn.danger{color:var(--red);border-color:rgba(255,59,48,.3)}
.tb-btn.danger:hover{background:var(--red-bg)}
.tb-divider{width:1px;height:20px;background:var(--line);margin:0 2px;flex-shrink:0}
.canvas-hint{padding:.45rem 1rem;background:var(--gold-bg);border-bottom:1px solid var(--gold-line);font-size:.7rem;color:#8a6000;font-weight:500}
canvas{display:block;cursor:crosshair;width:100%;touch-action:none}
.assign-panel{background:var(--paper);border-radius:var(--r);padding:.9rem;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.assign-title{font-size:.68rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.5rem}
.assign-sel{width:100%;background:var(--paper2);border:1.5px solid var(--line);border-radius:var(--rsm);padding:7px 9px;font-family:'Inter',sans-serif;font-size:.82rem;color:var(--ink);outline:none;cursor:pointer;font-weight:500}
.assign-sel:focus{border-color:var(--blue)}

/* VM TABLE */
.vm-table-hd{display:grid;grid-template-columns:1fr 90px 140px 36px;background:var(--paper2);border:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;border-bottom:none;padding:7px 12px;font-size:.65rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;gap:8px}
.vm-loc-row{display:grid;grid-template-columns:1fr 90px 140px 36px;background:var(--paper);border:1px solid var(--line);border-top:none;align-items:center;gap:8px;transition:background .15s}
.vm-loc-row:last-child{border-radius:0 0 var(--r) var(--r)}
.vm-loc-row:hover{background:var(--paper2)}
.vm-cell{padding:9px 12px;font-size:.85rem;color:var(--ink)}
.vm-cell input,.vm-cell select{background:transparent;border:none;outline:none;font-family:'Inter',sans-serif;font-size:.85rem;color:var(--ink);width:100%;padding:0;cursor:text}
.vm-cell select{cursor:pointer;color:var(--ink2)}
.vm-del-btn{background:none;border:none;cursor:pointer;color:var(--ink3);display:flex;align-items:center;justify-content:center;padding:0 9px;height:100%;transition:color .15s}
.vm-del-btn:hover{color:var(--red)}
.vm-empty{background:var(--paper);border:1px solid var(--line);border-top:none;border-radius:0 0 var(--r) var(--r);padding:2rem;text-align:center;color:var(--ink3);font-size:.8rem}
.vm-empty p{margin-top:.3rem;font-size:.72rem}

/* COSTOS */
.costos-layout{max-width:860px;margin:0 auto;padding:1.5rem}
.costo-total-card{background:var(--ink);color:#fff;border-radius:var(--r);padding:1.2rem 1.4rem;margin-bottom:1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:var(--shadow-lg)}
.ct-left{flex:1}
.ct-label{font-size:1rem;font-weight:700;margin-bottom:4px;letter-spacing:-.01em}
.ct-sub{font-size:.7rem;color:rgba(255,255,255,.35);line-height:1.5}
.ct-right{text-align:right}
.ct-amount{font-size:2.2rem;font-weight:700;color:#2997ff;line-height:1;margin-bottom:5px;letter-spacing:-.03em}
.ct-sync{display:inline-flex;align-items:center;gap:5px;font-size:.65rem;color:rgba(255,255,255,.35)}
.costos-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}
.costos-hd-left{display:flex;align-items:center;gap:.75rem}
.costos-count{font-size:.72rem;font-weight:500;color:var(--ink3);background:var(--paper);padding:2px 10px;border-radius:980px;border:1px solid var(--line)}
.costo-table-hd{display:grid;grid-template-columns:200px 1fr 150px 40px;background:var(--paper2);border:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;border-bottom:none;font-size:.65rem;font-weight:600}
.cth{padding:8px 14px;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}
.cth-valor{text-align:right}
.costo-row{display:grid;grid-template-columns:200px 1fr 150px 40px;background:var(--paper);border:1px solid var(--line);border-top:none;transition:background .15s}
.costo-row:last-child{border-radius:0 0 var(--r) var(--r)}
.costo-row:hover{background:var(--paper2)}
.cr-cell{padding:0;border-right:1px solid var(--line);display:flex;align-items:stretch}
.cr-cell:last-child{border-right:none}
.cr-input{width:100%;border:none;outline:none;background:transparent;font-family:'Inter',sans-serif;font-size:.85rem;color:var(--ink);padding:10px 14px;line-height:1.4}
.cr-input::placeholder{color:var(--ink3)}
.cr-input:focus{background:var(--blue-bg)}
.cr-valor{text-align:right;font-weight:600}
.cr-del{background:none;border:none;cursor:pointer;color:var(--ink3);display:flex;align-items:center;justify-content:center;width:100%;transition:color .15s}
.cr-del:hover{color:var(--red);background:var(--red-bg)}
.costos-empty-standalone{background:var(--paper);border:1px solid var(--line);border-top:none;border-radius:0 0 var(--r) var(--r);padding:2.5rem 2rem;text-align:center;color:var(--ink3)}
.costos-empty-standalone p{font-size:.82rem;margin-top:.4rem}

/* COUNTRY MANAGER */
.country-card-full{background:var(--paper);border-radius:var(--r);overflow:hidden;margin-bottom:1rem;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.country-card-hd{padding:1rem 1.1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;background:var(--paper2)}
.cc-title{font-size:.92rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.cc-sub{font-size:.72rem;color:var(--ink3);margin-top:2px}
.cc-del-btn{background:none;border:none;cursor:pointer;color:var(--ink3);transition:color .15s;padding:4px}
.cc-del-btn:hover{color:var(--red)}
.country-fields{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}
.cobros-section{padding:.9rem 1.1rem}
.cobros-title{font-size:.68rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.7rem}
.cobro-row{display:grid;grid-template-columns:1fr 100px 34px;gap:.5rem;align-items:center;margin-bottom:.5rem}
.cobro-row:last-child{margin-bottom:0}
.cobro-inp{background:var(--paper2);border:1.5px solid var(--line);border-radius:var(--rxs);padding:6px 10px;font-family:'Inter',sans-serif;font-size:.85rem;color:var(--ink);outline:none;width:100%}
.cobro-inp:focus{border-color:var(--blue)}
.cobro-del{background:none;border:none;cursor:pointer;color:var(--ink3);display:flex;align-items:center;justify-content:center;transition:color .15s}
.cobro-del:hover{color:var(--red)}
.btn-add-cobro{display:inline-flex;align-items:center;gap:5px;background:none;border:1.5px dashed var(--line2);border-radius:var(--rxs);padding:6px 13px;font-family:'Inter',sans-serif;font-size:.76rem;font-weight:500;color:var(--ink3);cursor:pointer;margin-top:.6rem;transition:all .15s}
.btn-add-cobro:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-bg)}
.country-new-empty{background:var(--paper);border:1.5px dashed var(--line);border-radius:var(--r);padding:2.5rem 2rem;text-align:center;color:var(--ink3)}
.country-new-empty p{font-size:.85rem;margin-top:.4rem}

/* VENTAS & PROYECCION */
.ventas-layout{max-width:1100px;margin:0 auto;padding:90px 1.5rem 2rem;display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}
@media(max-width:900px){.ventas-layout{grid-template-columns:1fr}}
.ventas-sidebar{position:sticky;top:102px;display:flex;flex-direction:column;gap:.75rem}
.vs-loc-row{background:var(--paper);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:.6rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;transition:box-shadow .2s;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.vs-loc-row:hover{box-shadow:var(--shadow)}
.vs-loc-row.alert{border:1.5px solid var(--red);background:var(--red-bg)}
.vs-loc-name{font-size:.92rem;font-weight:600;color:var(--ink);margin-bottom:3px;letter-spacing:-.01em}
.vs-loc-meta{font-size:.72rem;color:var(--ink3);font-weight:400}
.vs-loc-alert{font-size:.72rem;color:var(--red);font-weight:600;margin-top:3px;display:none}
.vs-loc-row.alert .vs-loc-alert{display:block}
.vs-input-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.vs-input-inner{display:flex;align-items:center;gap:.5rem}
.vs-inp-lbl{font-size:.7rem;color:var(--ink3);font-weight:500}
.vs-inp{width:90px;background:var(--paper2);border:1.5px solid var(--line);border-radius:var(--rsm);padding:7px 10px;font-family:'Inter',sans-serif;font-size:1rem;font-weight:600;color:var(--ink);text-align:right;outline:none;transition:border-color .15s}
.vs-inp:focus{border-color:var(--blue)}
.vs-loc-row.alert .vs-inp{border-color:var(--red)}
.vs-pct-badge{font-size:.7rem;font-weight:500;color:var(--ink3);background:var(--paper3);padding:2px 9px;border-radius:980px}
.proy-loc-row{background:var(--paper);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:.6rem;transition:box-shadow .2s;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.proy-loc-row:hover{box-shadow:var(--shadow)}
.proy-loc-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem}
.proy-loc-name{font-size:.9rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.proy-loc-badge{display:flex;gap:.5rem;align-items:center}
.proy-pct-val{font-size:1rem;font-weight:700;color:var(--blue);min-width:42px;text-align:right}
.proy-sold-val{font-size:.75rem;color:var(--ink3);font-weight:400}
.proy-loc-slider{display:flex;align-items:center;gap:.8rem}
.proy-loc-meta{font-size:.7rem;color:var(--ink3);margin-top:5px;font-weight:400}
.vs-summary-card{background:var(--paper);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.vss-row{padding:9px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.vss-row:last-child{border-bottom:none}
.vss-row.vss-big{background:var(--paper2);padding:12px 14px}
.vss-label{font-size:.65rem;font-weight:600;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}
.vss-val{font-size:.95rem;font-weight:700;color:var(--ink)}
.vss-neg{color:var(--red)}
.vss-usd{font-size:.7rem;color:var(--ink3);font-weight:500}
.vss-divider{height:1px;background:var(--line)}
.vss-subrow{padding:5px 14px 5px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:.74rem}
.vss-subrow .l{color:var(--ink3)}.vss-subrow .v{font-weight:600;color:var(--red)}
.vs-ocu-card{background:var(--paper);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}
.vs-ocu-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}
.vs-ocu-label{font-size:.72rem;color:var(--ink3);font-weight:500}
.vs-ocu-val{font-size:.88rem;font-weight:600;color:var(--ink)}
.vs-ocu-bar-wrap{background:var(--paper3);border-radius:980px;height:6px;overflow:hidden;margin:.6rem 0 .4rem}
.vs-ocu-bar{height:100%;border-radius:980px;background:var(--blue);transition:width .4s}
.vs-ocu-pct{font-size:.72rem;font-weight:500;color:var(--ink3);text-align:right}
.vs-be-card{background:var(--ink);border-radius:var(--r);padding:1rem 1.1rem;color:#fff;box-shadow:var(--shadow)}
.vs-be-label{font-size:.65rem;font-weight:600;color:rgba(255,255,255,.45);letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px}
.vs-be-val{font-size:1.4rem;font-weight:700;color:#2997ff;line-height:1.2;letter-spacing:-.02em}
.vs-be-sub{font-size:.72rem;color:rgba(255,255,255,.4);margin-top:5px}

/* ── EVENT BANNER ── */
.event-banner{padding:2rem 0 1.5rem;border-bottom:1px solid var(--line);margin-bottom:1.5rem}
.eb-name{font-size:42px;font-weight:700;color:var(--ink);letter-spacing:-.03em;line-height:1.1;margin-bottom:.35rem}
.eb-date{font-size:18px;font-weight:400;color:var(--ink3);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:color .15s}
.eb-date:hover{color:var(--blue)}
.eb-date-inp{font-size:18px;font-family:'Inter',sans-serif;color:var(--ink2);border:none;border-bottom:1.5px solid var(--blue);background:transparent;outline:none;padding:0 2px 1px;min-width:220px;font-weight:400}

/* Adjust pane top padding — no banner offset needed anymore */
#pane-pricer .app-layout{padding-top:90px !important}
#pane-costos .costos-layout{padding-top:90px !important}
#pane-ventas .ventas-layout,#pane-proyeccion .ventas-layout{padding-top:90px !important}
#pane-map>div{padding-top:90px !important}
/* ── FAB SAVE ── */
.fab-save{position:fixed;bottom:2rem;right:2rem;z-index:400;display:flex;align-items:center;gap:.5rem;background:var(--blue);color:#fff;border:none;border-radius:980px;padding:.75rem 1.4rem;font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;box-shadow:0 4px 20px rgba(0,113,227,.35);transition:all .2s}
.fab-save:hover{background:var(--blue-hover);transform:translateY(-1px);box-shadow:0 6px 24px rgba(0,113,227,.45)}
.fab-save.saving{background:var(--ink3);cursor:wait;pointer-events:none}
.fab-save.saved{background:#248a3d}
.fab-save.dirty{animation:fab-pulse 2s infinite}
@keyframes fab-pulse{0%,100%{box-shadow:0 4px 20px rgba(0,113,227,.35)}50%{box-shadow:0 4px 28px rgba(0,113,227,.6)}}

.tb-user-menu{position:relative}
.tb-user-btn{display:flex;align-items:center;gap:4px;background:var(--paper3);border:none;border-radius:980px;padding:5px 10px 5px 8px;cursor:pointer;color:var(--ink2);transition:background .15s;font-size:.78rem;font-weight:500;font-family:'Inter',sans-serif}
.tb-user-btn:hover{background:var(--line)}
.tb-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--paper);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);min-width:180px;overflow:hidden;z-index:400;border:1px solid rgba(0,0,0,.06)}
.tb-dd-item{display:flex;align-items:center;gap:.6rem;padding:10px 14px;font-size:.82rem;font-weight:500;color:var(--ink2);cursor:pointer;transition:background .12s;font-family:'Inter',sans-serif}
.tb-dd-item:hover{background:var(--paper2);color:var(--ink)}
.tb-dd-label{color:var(--ink3);cursor:default}
.tb-dd-label:hover{background:transparent;color:var(--ink3)}
.tb-dd-divider{height:1px;background:var(--line);margin:2px 0}
.tb-dd-danger{color:var(--red)}
.tb-dd-danger:hover{background:var(--red-bg);color:var(--red)}

/* ── FOOTER ── */
.app-footer{background:var(--bg);border-top:1px solid var(--line);padding:2rem 1.5rem 1.5rem;margin-top:3rem}
.footer-inner{max-width:1020px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.25rem}
.footer-brand img{height:28px;width:auto;opacity:.6;display:block}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}
.footer-links a{font-size:.78rem;color:var(--ink3);text-decoration:none;font-weight:500;transition:color .15s}
.footer-links a:hover{color:var(--blue)}
.footer-copy{font-size:.72rem;color:var(--line2);text-align:center}
