/* Precio Justo · app */
body{background:var(--off)}
.app-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--line)}
.head-right{display:flex;align-items:center;gap:12px;font-size:14px}
.pro-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pro-mail{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
html.is-pro .only-free{display:none!important}
.toolbar{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 20px;background:rgba(243,249,245,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.prod-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.prod-pick select{width:auto;min-width:220px;max-width:320px;min-height:40px;padding:8px 12px;font-weight:600}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.quota{font-size:13px;color:var(--muted)}
.layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(320px,440px);gap:24px;padding:20px;max-width:1180px;margin:0 auto;align-items:start}
@media (max-width:900px){.layout{grid-template-columns:1fr}.results{position:static!important}}
.panel fieldset{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px 18px 6px;margin:0 0 16px}
.panel legend{font:700 16px var(--font-head);padding:0 6px;margin-left:-6px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}
@media (max-width:520px){.row2{grid-template-columns:1fr}.row3{grid-template-columns:1fr 1fr}}
.mats{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.mat{display:grid;grid-template-columns:1fr 120px 44px;gap:8px;align-items:end}
.mat label{font-size:12px}
.mat .del{width:44px;height:44px;border-radius:10px;border:1.5px solid var(--line-strong);background:#fff;cursor:pointer;font-size:18px}
.mat .del:hover{border-color:var(--danger);color:var(--danger)}
.helper{margin:-4px 0 14px;font-size:14px}
.helper summary{cursor:pointer;font-weight:600;color:var(--brand-text);padding:6px 0}
.range{padding:0;min-height:auto;height:32px;accent-color:var(--brand);border:0}
output{color:var(--brand-text);font-weight:700}
.pro-field{opacity:.85}
html.is-pro .pro-field{opacity:1}
.results{position:sticky;top:76px;display:flex;flex-direction:column;gap:14px}
.res-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px}
.res-card .h3{font-size:17px;margin-bottom:12px}
.hero-res{background:var(--ink);color:#fff;border-color:var(--ink)}
.res-label{margin:0;font:600 13px var(--font-head);letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-muted)}
.big{font:700 clamp(40px,6vw,56px)/1 var(--font-head);margin:8px 0 6px;letter-spacing:-.03em;color:var(--accent)}
.res-sub{margin:0 0 14px;color:var(--on-dark-muted);font-size:14px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kpis.two{grid-template-columns:1fr 1fr}
.kpis div{background:rgba(255,255,255,.07);border-radius:10px;padding:10px}
.res-card:not(.hero-res) .kpis div{background:var(--off)}
.kpis span{display:block;font-size:12px;line-height:1.3;color:inherit;opacity:.85}
.kpis b{font:700 19px var(--font-head)}
.hero-res .ok{color:#7EE2A0}
.warn{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#FDECEA;color:#8A1C12;font-size:14px}
.stack{display:flex;height:18px;border-radius:999px;overflow:hidden;background:var(--off)}
.stack i{display:block;height:100%}
.legend{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:14px}
.legend li{display:flex;align-items:center;gap:8px}
.legend .sw{width:12px;height:12px;border-radius:3px;flex:none}
.legend b{margin-left:auto;font-family:var(--font-head)}
.market-res{margin:10px 0 0;font-size:15px}
.market-res .pill{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:700;font-size:13px}
.pill.good{background:var(--soft-green);color:var(--green)}
.pill.bad{background:#FDECEA;color:#8A1C12}
.pill.mid{background:#FFF3CF;color:#7A5200}
.scen{width:100%;border-collapse:collapse;font-size:14px}
.scen th{text-align:right;font:700 11px var(--font-head);letter-spacing:.05em;text-transform:uppercase;padding:6px;border-bottom:2px solid var(--ink)}
.scen th:first-child,.scen td:first-child{text-align:left}
.scen td{text-align:right;padding:7px 6px;border-bottom:1px solid var(--line)}
.scen tr.cur td{background:#FFF3CF;font-weight:700}
.whole{margin:12px 0 0;font-size:14px}
.locked-wrap{position:relative}
.locked{transition:filter .2s}
html:not(.is-pro) .locked{filter:blur(5px);pointer-events:none;user-select:none}
.lock-cta{position:absolute;inset:48px 0 0;display:grid;place-items:center}
.app-foot{text-align:center;padding:24px;font-size:14px;color:var(--muted)}

/* Ficha imprimible */
.sheet{display:none}
@media print{
  @page{size:letter;margin:16mm}
  body{background:#fff}
  body>*:not(.sheet){display:none!important}
  .sheet{display:block;font-size:12px;color:#111}
  .sheet h1{font-size:26px;margin:0 0 4px}
  .sheet .meta{color:#4A4A4A;margin-bottom:18px}
  .sheet table{width:100%;border-collapse:collapse;margin-bottom:16px}
  .sheet th,.sheet td{padding:6px 8px;border-bottom:1px solid #E3DED5;text-align:left}
  .sheet td.r,.sheet th.r{text-align:right}
  .sheet .box{border:2px solid #047857;border-radius:10px;padding:14px;display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}
  .sheet .box b{display:block;font:700 22px var(--font-head)}
  .sheet .foot{margin-top:24px;color:#4A4A4A;font-size:10px;display:flex;justify-content:space-between}
}

/* Ajustes móviles */
fieldset{min-width:0}
.layout>*{min-width:0}
@media (max-width:560px){
  .app-head{padding:10px 16px}
  .toolbar,.layout{padding-left:16px;padding-right:16px}
  .pro-mail{display:none}
  .app-head .brand .wm{font-size:16px}
  .app-head .brand img{width:32px;height:32px}
  .pro-status>span:first-child{display:none}
  .head-right{gap:6px}
  .pro-status .link-btn{white-space:nowrap}
  .head-right .install-btn span{display:none}
    .head-right .btn{padding:8px 12px}
}

/* v2: pestañas, ejemplos, redondeo, mis productos */
.tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px}
.tab{border:0;background:none;padding:8px 16px;border-radius:999px;font:600 14px var(--font-head);cursor:pointer;min-height:38px;color:var(--ink)}
.tab.active{background:var(--brand);color:var(--on-brand)}
.count{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--off);color:var(--ink);font-size:12px}
.tab.active .count{background:var(--accent);color:var(--on-accent)}
.save-state{font-weight:600;color:#7A5200}
.head-right .lang-link{min-height:38px;min-width:38px}
.presets{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.presets-lbl{font:600 14px var(--font-head);margin-right:2px}
.chip-btn{border:1.5px solid var(--line-strong);background:#fff;border-radius:999px;padding:8px 14px;font:600 14px var(--font-head);color:var(--ink);cursor:pointer;min-height:40px}
.chip-btn:hover{border-color:var(--brand);color:var(--brand-text)}
.mat input[data-m=cost],.row2 input[inputmode],.row3 input[inputmode]{text-align:left}
.mk-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px}
.mk-row .field{margin:0;flex:1 1 160px}
.mk-out{font-weight:700;color:var(--brand-text);padding-bottom:12px;min-width:120px}
.kpis4{grid-template-columns:repeat(4,1fr)}
@media (max-width:420px){.kpis4{grid-template-columns:1fr 1fr}}
.mx{font-size:14.5px;margin:0 0 8px}
.mx:last-child{margin:0}
.products{max-width:1100px;margin:0 auto;padding:24px 20px 60px}
.h2{font-size:32px}
.hist-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.hist-empty{background:#fff;border:1.5px dashed var(--line-strong);border-radius:var(--r);padding:40px;text-align:center;color:var(--muted)}
.tbl-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:auto}
.plist{width:100%;border-collapse:collapse;font-size:15px}
.plist th{text-align:left;font:700 11px var(--font-head);letter-spacing:.05em;text-transform:uppercase;padding:12px;border-bottom:2px solid var(--ink);white-space:nowrap}
.plist td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.plist .r{text-align:right;white-space:nowrap}
.plist tr.cur td{background:var(--soft)}
.plist td b{overflow-wrap:anywhere}
.plist .acts{display:flex;gap:6px;justify-content:flex-end}
.btn-del:hover{background:var(--danger);border-color:var(--danger)}
.pl-tools{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end;margin-top:18px}
.pl-tools .field{flex:1 1 260px;margin:0}
.pl-btns{display:flex;gap:8px;flex-wrap:wrap}
.file-btn{margin:0}
@media (max-width:640px){
  .plist thead{display:none}
  .plist,.plist tbody,.plist tr,.plist td{display:block;width:100%}
  .plist tr{border-bottom:1px solid var(--line);padding:8px 4px}
  .plist td{border:0;padding:4px 10px;display:flex;justify-content:space-between;gap:10px;text-align:right}
  .plist td::before{content:attr(data-l);font-weight:600;color:var(--muted);text-align:left}
  .plist td.acts::before{content:none}
  .plist td:first-child{font-size:16px}
  .actions{width:100%}.actions .btn{flex:1 1 auto}
}
@media (pointer:coarse){.tab{min-height:44px}.chip-btn{min-height:44px}}
@media print{
  .sheet .pl td,.sheet .pl th{padding:10px 8px;font-size:14px}
  .sheet h1{color:#06352A}
}
/* Montos muy largos */
.big,.kpis b,.legend b{overflow-wrap:anywhere}
.locked{overflow-x:auto}
.kpis div{min-width:0}

/* v3 Pro: simulador de subida, ventas del mes y catálogo con pedido por WhatsApp */
#raiseRes .kpis b{font-size:17px}
.link-dlg{border:0;border-radius:var(--r-lg);padding:22px;width:min(560px,calc(100vw - 32px));box-shadow:var(--shadow);color:var(--ink)}
.link-dlg::backdrop{background:rgba(6,30,24,.55)}
.ld-head{position:relative;padding-right:48px}
.ld-head .h3{font-size:20px;margin:6px 0 4px}
.link-dlg input{font-size:13px;margin:10px 0 12px;color:var(--muted)}
.ld-btns{display:flex;gap:8px;flex-wrap:wrap}
.ld-btns .btn{flex:1 1 auto}
.sale-month{display:flex;align-items:center;gap:8px}
.sale-month label{margin:0;font-weight:600}
.sale-month input{width:auto;min-width:170px}
.sales .locked-wrap{margin-top:14px}
.sales .lock-cta{inset:0;align-items:start;padding-top:120px}
.sale-form{margin-bottom:14px}
.sale-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr 1.3fr;gap:0 12px}
@media (max-width:760px){.sale-grid{grid-template-columns:1fr 1fr}.sale-grid .field:first-child{grid-column:1/-1}}
.sale-sum{margin-bottom:14px}
.sale-sum .kpis small{display:block;font-size:12px;opacity:.85;margin-top:2px}
@media (max-width:760px){.sale-sum .kpis4{grid-template-columns:1fr 1fr}}
.sale-sum .real-ok{background:var(--soft-green)!important;outline:2px solid #9fd4b0}
.sale-sum .real-bad{background:#FDECEA!important;outline:2px solid #f3b8b1}
.sale-sum .real-bad b{color:var(--danger)}
.sale-sum .pill{display:inline-block;margin:12px 0 0}
.sale-fixed{margin:14px 0 0;max-width:340px}
.sale-top-h{font-size:15px;margin:16px 0 6px}
.sale-top{margin:0;padding-left:20px}
.sale-top li{padding:4px 0}
.sale-top li span{font-weight:600}
.sale-top li b{margin-left:8px}
.sale-top li small{margin-left:6px;color:var(--muted)}
/* Catálogo público */
.catalog-page{background:var(--off)}
.catalog{max-width:640px;margin:0 auto;padding:24px 16px 120px}
.cat-head h1{font-size:clamp(28px,6vw,40px);margin:10px 0 6px;overflow-wrap:anywhere}
.cat-list{list-style:none;margin:18px 0;padding:0;display:flex;flex-direction:column;gap:10px}
.cat-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.cat-info{min-width:0}
.cat-info b{display:block;font:600 16px var(--font-head);overflow-wrap:anywhere}
.cat-info span{color:var(--brand-text);font-weight:700}
.stepper{display:flex;align-items:center;gap:6px;flex:none}
.stepper button{width:44px;height:44px;border-radius:50%;border:2px solid var(--brand);background:#fff;color:var(--brand-text);font:700 20px var(--font-head);cursor:pointer}
.stepper button:hover{background:var(--brand);color:#fff}
.stepper output{min-width:28px;text-align:center;font:700 17px var(--font-head)}
.cat-form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 4px}
.cat-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px max(16px,calc((100vw - 640px)/2 + 16px));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(6,53,42,.08)}
.cat-bar span{display:block;font-size:13px;color:var(--muted)}
.cat-bar b{font:700 20px var(--font-head);overflow-wrap:anywhere}
.cat-bar small{display:block;color:var(--muted);font-size:12px}
.cat-foot{text-align:center;color:var(--muted);font-size:13px;margin-top:20px}
.sale-sum .pill{padding:4px 12px;border-radius:999px;font-weight:700;font-size:14px}
.ld-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-right:0}.ld-head .pro-close{position:static;flex:none}
@media (max-width:420px){.toolbar .tabs{width:100%}.tab{flex:1 1 auto;padding:8px 8px;font-size:13px}.tab .badge-pro{font-size:10px;padding:1px 5px}}
