/* Kiiwis merchant panel — shared page styles (Overview, Customers, …).
   Neutral grays, one green accent: green = action / good news, dark = text,
   gray = support. Pages add class "kp-page" to <body>. Sizes in px: root is 18px. */
.kp-page{
  --ov-page:#f7f7f7; --ov-accent:var(--k-green, #23812e); --ov-accent-h:var(--k-green-hover, #1e6a27);
  --ov-soft:#ecfbe9; --ov-icon:var(--k-green, #23812e); --ov-pos:var(--k-green-hover, #1e6a27);
  --ov-div:#f0f0f0; --ov-btn-line:#d4d4d4; --ov-av:#f5f5f5; --ov-av-t:#404040;
  --ov-sec:#525252; --ov-mut:#636363; --ov-chev:#a3a3a3; --ov-track:#f0f0f0; --ov-bar:var(--k-green, #23812e);
  background:var(--ov-page);
}
:root[data-theme="dark"] .kp-page{
  --ov-page:var(--bg); --ov-soft:rgba(124, 187, 16,.12); --ov-icon:#7ed321; --ov-pos:#b2e976;
  --ov-div:var(--line); --ov-btn-line:var(--line-strong); --ov-av:var(--panel-2); --ov-av-t:var(--text-2);
  --ov-sec:#b8b8b8; --ov-mut:#9a9a9a; --ov-chev:#7a7a7a; --ov-track:var(--panel-2); --ov-bar:#7cbb10;
}
.kp-page .app-footer{background:var(--ov-page)}
.ov{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:24px;color:var(--text)}
.ov a{text-decoration:none}

/* Greeting */
.ov-top{max-width:1120px !important;margin:0 auto 28px !important;align-items:flex-end !important}
.ov-date{font-size:14px;color:var(--ov-mut);font-weight:500}
.ov-hello{margin:4px 0 0;font-size:30px;line-height:1.2;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.ov-hello-mob{display:none}
.ov-btn-line{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text);font-weight:600;font-size:15px;white-space:nowrap;text-decoration:none;transition:background-color .15s}
.ov-btn-line:hover{background:var(--panel-2)}
.ov-top .ov-bell{width:44px;height:44px;border-radius:12px;border-color:var(--ov-btn-line)}
.ov-top .ov-bell svg{width:20px;height:20px}

/* Cards */
.ov-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.ov-h2{margin:0;font-size:18px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.ov-today>.ov-h2{padding:18px 24px 6px}
.ov-h2-list{padding:20px 24px 8px}
.ov-h2-bar{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 8px}
.ov-more{font-size:14px;font-weight:700;color:var(--ov-accent)}
.ov-more:hover{color:var(--ov-accent-h)}
:root[data-theme="dark"] .ov-more{color:#7ed321}

/* Rows (today, strategies) */
.ov-row{display:flex;align-items:center;gap:16px;padding:16px 24px;border-top:1px solid var(--ov-div);color:var(--text)}
a.ov-row:hover{background:var(--panel-2)}
.ov-row:last-child{padding-bottom:18px}
.ov-ic{width:44px;height:44px;border-radius:12px;background:var(--ov-soft);color:var(--ov-icon);display:grid;place-items:center;flex-shrink:0}
.ov-row-txt{flex:1;min-width:0}
.ov-row-t{font-size:16px;font-weight:700;color:var(--text)}
.ov-row-s{font-size:14px;color:var(--ov-sec);margin-top:2px;line-height:1.4}
.ov-chev{color:var(--ov-chev);flex-shrink:0}
.ov-row-btn{display:inline-flex;align-items:center;height:44px;padding:0 18px;border:1px solid var(--ov-btn-line);border-radius:12px;font-weight:700;font-size:15px;white-space:nowrap;color:var(--text);background:var(--panel)}
.ov-row-btn:hover{background:var(--panel-2)}
.ov-row .ov-chev{display:none}
a.ov-row .ov-chev{display:block}
.ov-today .ov-row .ov-chev{display:none}
.ov-ok .ov-ic{background:var(--panel-2);color:var(--ov-mut)}

/* New business: first customers */
.ov-first{padding:18px 24px 22px;text-align:center;border-top:1px solid var(--ov-div)}
.ov-first-ic{width:56px;height:56px;border-radius:16px;background:var(--ov-soft);color:var(--ov-icon);display:grid;place-items:center;margin:0 auto}
.ov-first-t{margin:14px 0 6px;font-size:20px;font-weight:700;color:var(--text)}
.ov-first-d{margin:0 auto;font-size:15px;color:var(--ov-sec);line-height:1.5;max-width:460px}
.ov-btn-main{display:flex;align-items:center;justify-content:center;height:52px;max-width:360px;margin:18px auto 0;border-radius:14px;background:var(--ov-accent);color:#fff !important;font-weight:700;font-size:16px}
.ov-btn-main:hover{background:var(--ov-accent-h)}
.ov-link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:6px;font-size:15px;font-weight:700;color:var(--ov-accent)}
:root[data-theme="dark"] .ov-link-btn{color:#7ed321}

/* Numbers */
.ov-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ov-kpi{padding:22px 24px}
.ov-kpi-l{font-size:14px;color:var(--ov-sec);font-weight:600}
.ov-kpi-n{font-size:34px;font-weight:700;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.15;color:var(--text)}
.ov-kpi-s{font-size:13px;color:var(--ov-pos);font-weight:600;margin-top:4px;min-height:18px}
.ov-kpi-s-mut{color:var(--ov-mut);font-weight:500}

/* Quick actions */
.ov-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ov-act{display:flex;align-items:center;gap:14px;height:64px;padding:0 20px;border-radius:14px;background:var(--panel);border:1px solid var(--line);color:var(--text) !important;font-weight:700;font-size:16px;transition:background-color .15s,transform .1s}
.ov-act:hover{background:var(--panel-2)}
.ov-act:active{transform:scale(.98)}
.ov-act svg{color:var(--ov-icon);flex-shrink:0}
.ov-act-main{background:var(--ov-accent);border-color:var(--ov-accent);color:#fff !important}
.ov-act-main:hover{background:var(--ov-accent-h)}
.ov-act-main svg{color:#fff}
.ov-narrow{display:none}
.ov-new .ov-kpis,.ov-new .ov-actions{display:none}

/* Two columns */
.ov-cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start}
.ov-colmain,.ov-colside{display:flex;flex-direction:column;gap:24px;min-width:0}

/* Activity */
.ov-ev{display:flex;align-items:center;gap:14px;padding:14px 24px;border-top:1px solid var(--ov-div)}
.ov-ev:last-child{padding-bottom:18px}
.ov-av{width:36px;height:36px;border-radius:50%;background:var(--ov-av);color:var(--ov-av-t);display:grid;place-items:center;font-size:13px;font-weight:700;flex-shrink:0}
.ov-ev-t{flex:1;min-width:0;font-size:15px;color:var(--text);line-height:1.4}
.ov-ev-t strong{font-weight:700}
.ov-ev-t span{color:var(--ov-sec)}
.ov-ev-time{font-size:13px;color:var(--ov-mut);white-space:nowrap}
.ov-empty{padding:4px 24px 20px;margin:0;font-size:15px;color:var(--ov-sec);line-height:1.5}

/* Next steps */
.ov-steps{padding:20px 24px}
.ov-steps-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ov-steps-n{font-size:14px;color:var(--ov-sec);font-weight:600;white-space:nowrap}
.ov-track{height:6px;border-radius:6px;background:var(--ov-track);margin:14px 0 6px;overflow:hidden}
.ov-track-fill{height:100%;width:0;background:var(--ov-bar);border-radius:6px;transition:width .4s ease}
.ov-step{display:flex;align-items:center;gap:12px;padding:12px 0;font-size:15px;color:var(--text);font-weight:600;border-top:1px solid var(--ov-div)}
.ov-step:first-child{border-top:none}
.ov-step:last-child{padding-bottom:2px}
.ov-step svg{flex-shrink:0}
.ov-step .ov-chev{margin-left:auto}
.ov-step.done{color:var(--ov-mut);font-weight:400}
.ov-step.done span{text-decoration:line-through}
a.ov-step:hover span{color:var(--ov-accent)}
:root[data-theme="dark"] a.ov-step:hover span{color:#7ed321}

/* Tablet: side column drops under the main one */
@media(max-width:1100px){
  .ov-cols{grid-template-columns:minmax(0,1fr)}
  .ov-colside{order:-1}
}
/* Phones */
@media(max-width:960px){
  .ov-hello-mob{display:block;margin:6px 0 22px}
  .ov-hello{font-size:26px}
  .ov{gap:20px}
}
@media(max-width:768px){
  .ov-today>.ov-h2{padding:18px 20px 6px}
  .ov-h2-list,.ov-h2-bar{padding:18px 20px 6px}
  .ov-row{gap:14px;padding:14px 20px}
  .ov-ic{width:40px;height:40px}
  .ov-today .ov-row-btn{display:none}
  .ov-today .ov-row .ov-chev{display:block}
  .ov-first{padding:18px 20px 20px}
  .ov-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .ov-kpi{padding:16px 18px}
  .ov-kpi-n{font-size:28px;margin-top:4px}
  .ov-kpi-main{grid-column:span 2;padding:18px 20px}
  .ov-kpi-main .ov-kpi-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .ov-kpi-main .ov-kpi-n{font-size:34px}
  .ov-kpi-main .ov-kpi-s{font-size:14px;font-weight:700}
  .ov-kpi:not(.ov-kpi-main) .ov-kpi-s{font-size:12px;line-height:1.3}   /* "últimos 30 días": the period left the label so it doesn't break */
  .ov-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ov-act{justify-content:center;gap:8px;height:52px;padding:0 12px;font-size:15px}
  .ov-act-main{grid-column:span 2;height:56px;font-size:17px;gap:10px}
  .ov-wide{display:none}.ov-narrow{display:inline}
  .ov-ev{padding:14px 20px}
  .ov-empty{padding:4px 20px 18px}
  .ov-steps{padding:18px 20px}
}

/* ── Shared: numbers in four columns ───────────────────────── */
.ov-kpis-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.ov-kpis-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.ov-kpis-4 .ov-kpi-s{display:none}}

/* ── Status tags: gray for what a customer is, color only for what needs you ── */
.kp-tag{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;line-height:1;padding:5px 9px;border-radius:999px;background:var(--panel-2);color:var(--ov-sec);white-space:nowrap}
.kp-tag-risk{background:#fffbeb;color:#92400e}
.kp-tag-close{background:var(--ov-soft);color:var(--ov-pos)}
:root[data-theme="dark"] .kp-tag-risk{background:rgba(245,158,11,.14);color:#fcd34d}

/* ── Customers list ────────────────────────────────────────── */
.kp-page .content-pad-full{max-width:1120px;margin-left:auto;margin-right:auto}
.cl-tools{padding:18px 24px 14px;display:flex;flex-direction:column;gap:14px;border-bottom:1px solid var(--ov-div)}
.cl-search{position:relative}
.cl-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ov-mut);pointer-events:none}
.cl-search input{width:100%;height:46px;padding:0 16px 0 44px !important;border:1px solid var(--line) !important;border-radius:12px !important;background:var(--panel) !important;font-size:15px !important;color:var(--text);box-shadow:none !important}
.cl-search input:focus{border-color:var(--ov-bar) !important;outline:none;box-shadow:0 0 0 3px var(--ov-soft) !important}
.cl-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -24px;padding:0 24px 2px}
.cl-chips::-webkit-scrollbar{display:none}
.cl-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text-2);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .15s,border-color .15s}
.cl-chip:hover{background:var(--panel-2)}
.cl-chip .chip-count{font-size:13px;font-weight:500;color:var(--ov-mut)}
.cl-chip.active{background:var(--ov-soft);border-color:var(--ov-bar);color:var(--ov-pos);font-weight:700}
.cl-chip.active .chip-count{color:var(--ov-pos)}

.cl-table{width:100%;border-collapse:collapse;text-align:left}
.cl-table th{font-size:13px;font-weight:600;color:var(--ov-mut);padding:12px 24px;border-bottom:1px solid var(--ov-div);background:none;text-transform:none;letter-spacing:0}
.cl-table td{padding:14px 24px;border-bottom:1px solid var(--ov-div);vertical-align:middle;font-size:15px;color:var(--text)}
.cl-table tbody tr{cursor:pointer}
.cl-table tbody tr:hover td{background:var(--panel-2)}
.cl-table tbody tr:last-child td{border-bottom:none}
.cl-table tbody tr:focus-visible{outline:2px solid var(--ov-bar);outline-offset:-2px}
.cl-cust{display:flex;align-items:center;gap:14px;min-width:0}
.cl-av{width:40px;height:40px;border-radius:50%;background:var(--ov-av);color:var(--ov-av-t);display:grid;place-items:center;font-size:14px;font-weight:700;flex-shrink:0}
.cl-name{font-size:15px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-sub{font-size:13px;color:var(--ov-mut);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-who{min-width:0}
.cl-stage{display:flex;flex-wrap:wrap;gap:6px}
.cl-prog{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ov-sec);white-space:nowrap}
.cl-bar{width:72px;height:6px;border-radius:6px;background:var(--ov-track);overflow:hidden;flex-shrink:0}
.cl-bar span{display:block;height:100%;background:var(--ov-bar);border-radius:6px}
.cl-last{font-size:14px;color:var(--ov-sec);white-space:nowrap}
.cl-last small{display:block;font-size:13px;color:var(--ov-mut);margin-top:2px}
.cl-mmeta{display:none}
.cl-msg{text-align:center;padding:40px 20px;color:var(--ov-sec);font-size:15px;line-height:1.5}
.cl-msg strong{display:block;color:var(--text);font-size:16px;margin-bottom:4px}
.cl-msg a,.cl-msg button{display:inline-flex;margin-top:12px}
.cl-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:var(--ov-mut)}

@media(max-width:768px){
  .cl-tools{padding:16px 16px 12px}
  .cl-chips{margin:0 -16px;padding:0 16px 2px}
  .cl-table thead{display:none}
  .cl-table td{padding:14px 16px}
  .cl-table td.cl-c2,.cl-table td.cl-c3,.cl-table td.cl-c4{display:none}
  .cl-mmeta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:6px;font-size:13px;color:var(--ov-mut)}
  .cl-mmeta .cl-bar{width:48px}
}

/* ── Customer detail (drawer) ──────────────────────────────── */
.kp-page .drawer{width:420px;max-width:100vw}
.kp-page .drawer-head h3{font-size:16px;font-weight:700}
.kp-page .drawer-close{color:var(--text-2)}
.kp-page .drawer-av{width:64px;height:64px;border-radius:50%;background:var(--ov-av);color:var(--ov-av-t);font-size:20px}
.kp-page .drawer-section-title{font-size:16px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text);margin-bottom:12px}
.kp-page .drawer-stat{background:var(--panel);border:1px solid var(--line);border-radius:12px}
.cl-dact{display:flex;align-items:center;justify-content:center;height:50px;border-radius:14px;background:var(--ov-accent);color:#fff !important;font-weight:700;font-size:15px;text-decoration:none;margin-top:4px}
.cl-dact:hover{background:var(--ov-accent-h)}
.cl-dnote{font-size:14px;color:var(--ov-sec);line-height:1.5;margin:0 0 12px}
.cl-empty .ov-kpis,.cl-empty .cl-tools,.cl-empty .cl-table thead,.cl-empty .cl-pager{display:none}

/* ── Automations: the customer journey ─────────────────────── */
.kp-tag-on{background:var(--ov-soft);color:var(--ov-pos)}
.au-tag-off{background:none;border:1px dashed var(--line-strong);color:var(--ov-mut)}
.au-tag-next{background:var(--ov-soft);color:var(--ov-accent)}
.au-lede{display:block !important;margin:6px 0 0 !important;font-size:15px !important;color:var(--ov-sec) !important;max-width:560px}
.au-head{padding:20px 24px 12px}
.au-head p{margin:4px 0 0;font-size:14px;color:var(--ov-sec);line-height:1.5}
.au-row{display:flex;align-items:center;gap:16px;padding:18px 24px;border-top:1px solid var(--ov-div)}
.au-rail{flex-shrink:0;align-self:flex-start}
.au-row-off .ov-ic{background:var(--panel-2);color:var(--ov-mut)}
.au-main{flex:1;min-width:0}
.au-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:16px;font-weight:700;color:var(--text)}
.au-n{color:var(--ov-mut);font-weight:600}
.au-when{font-size:14px;color:var(--ov-sec);margin-top:4px;line-height:1.45}
.au-when strong{color:var(--text);font-weight:600}
.au-info{font-size:14px;margin-top:6px;line-height:1.45}
.au-info-res{color:var(--text);font-weight:600}
.au-info-opp{color:#92400e;font-weight:600}
:root[data-theme="dark"] .au-info-opp{color:#fcd34d}
.au-info-mut{color:var(--ov-mut)}
.au-link{color:var(--ov-accent);font-weight:700;text-decoration:none;white-space:nowrap}
:root[data-theme="dark"] .au-link{color:#7ed321}
.au-acts{display:flex;gap:8px;flex-shrink:0}
.au-btn{display:inline-flex;align-items:center;height:40px;padding:0 16px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
.au-btn:hover{background:var(--panel-2)}
.au-btn-main{background:var(--ov-accent);border-color:var(--ov-accent);color:#fff}
.au-btn-main:hover{background:var(--ov-accent-h)}
@media(max-width:768px){
  .au-head{padding:18px 20px 10px}
  .au-row{flex-wrap:wrap;padding:16px 20px;gap:12px 14px}
  .au-rail .ov-ic{width:40px;height:40px}
  .au-main{flex-basis:calc(100% - 54px)}
  .au-acts{width:100%;padding-left:54px}
  .au-btn{flex:1;justify-content:center;height:44px}
  .au-lede{font-size:14px !important}
}
/* The journey comes first; activity follows it when the columns stack */
.au-cols .ov-colside{order:0}
@media(max-width:768px){
  .au-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .au-kpis .ov-kpi{padding:14px 14px}
  .au-kpis .ov-kpi-l{font-size:13px}
  .au-kpis .ov-kpi-n{font-size:24px}
}

/* ── Promotions list ───────────────────────────────────────── */
.cp-create{display:inline-flex !important;align-items:center;gap:8px;height:44px !important;margin:0 !important;padding:0 18px;border:none;cursor:pointer;font:inherit;font-size:15px !important}
.cp-create-mob{display:none}
.cp-sec{padding:14px 24px 0;font-size:13px;font-weight:700;color:var(--ov-mut);border-top:1px solid var(--ov-div)}
.cp-sec span{font-weight:500}
.cp-sec + .au-row{border-top:none;padding-top:10px}
.cp-more{display:block;width:100%;padding:14px 24px;border:none;border-top:1px solid var(--ov-div);background:none;color:var(--ov-accent);font:inherit;font-size:14px;font-weight:700;text-align:left;cursor:pointer}
.cp-more:hover{background:var(--panel-2)}
:root[data-theme="dark"] .cp-more{color:#7ed321}
.cp-go{color:var(--text);font-weight:700}
.cp-when{font-weight:500;color:var(--ov-mut)}
.cp-ic-done{background:var(--panel-2);color:var(--ov-mut)}
.cp-row .au-title{font-size:16px}
@media(max-width:960px){
  .cp-create-mob{display:flex;width:100%;max-width:none;margin:0 0 20px;border:none;cursor:pointer;font:inherit;font-weight:700}
}
#campListPrimary.campaigns-list{display:block;gap:0}
.cp-empty .ov-kpis{display:none}
.cp-cols .ov-colside{order:0}
/* Automations: the post customers see, inside each configured row */
.au-ver{font-size:13px !important;color:var(--ov-mut) !important}
.au-post{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--ov-page);max-width:520px}
.au-post img{width:64px;height:64px;border-radius:10px;object-fit:cover;flex-shrink:0}
.au-post-t{min-width:0;font-size:14px;line-height:1.45;color:var(--text)}
.au-post-k{font-size:12px;font-weight:600;color:var(--ov-mut);margin-bottom:2px}
.au-post-t strong{display:block;font-weight:700}
.au-post-t p{margin:2px 0 0;color:var(--ov-sec)}

/* ── Analytics ─────────────────────────────────────────────── */
.an-period{margin:0;padding:0;flex-wrap:wrap;overflow:visible}
.an-hero{padding:22px 24px 20px}
.an-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.an-hero-n{font-size:44px;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}
.an-hero-l{font-size:15px;color:var(--ov-sec);margin-top:8px}
.an-delta{font-size:13px;font-weight:700;color:var(--ov-mut);padding:6px 10px;border-radius:999px;background:var(--panel-2)}
.an-delta:empty{display:none}
.an-delta.up{color:var(--ov-pos);background:var(--ov-soft)}
.an-delta.down{color:#991b1b;background:#fef2f2}
:root[data-theme="dark"] .an-delta.down{color:#fda4a5;background:rgba(244,63,94,.14)}
.an-chart-h{display:flex;justify-content:space-between;align-items:baseline;margin:22px 0 10px;font-size:14px;font-weight:700;color:var(--text)}
.an-chart-tot{font-weight:500;color:var(--ov-mut)}
.an-chart{display:flex;align-items:flex-end;gap:2px;height:120px;border-bottom:1px solid var(--line)}
.an-bar{flex:1;min-width:1px;background:var(--ov-bar);border-radius:3px 3px 0 0;opacity:.85}
.an-bar:hover{opacity:1}
.an-chart-empty{align-self:center;margin:auto;font-size:14px;color:var(--ov-mut)}
.an-chart-x{display:flex;justify-content:space-between;margin-top:6px;font-size:12px;color:var(--ov-mut)}
.an-gap{margin-top:16px;padding-top:14px;border-top:1px solid var(--ov-div);font-size:15px;color:var(--ov-sec)}
.an-gap strong{color:var(--text)}
.kp-page .anl-mini-trend{margin-top:6px;font-size:13px}
.an-perf{display:flex;align-items:center;gap:14px;padding:14px 24px;border-top:1px solid var(--ov-div)}
.an-perf-txt{flex:1;min-width:0}
.an-perf-t{font-size:15px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-perf-s{font-size:13px;color:var(--ov-mut);margin-top:2px}
.an-perf-r{display:flex;align-items:center;gap:10px;flex-shrink:0}
.an-perf-r strong{min-width:42px;text-align:right;font-size:15px;color:var(--text)}
.an-say{list-style:none;margin:0;padding:4px 24px 8px}
.an-say li{position:relative;padding:10px 0 10px 18px;font-size:15px;line-height:1.5;color:var(--text-2);border-top:1px solid var(--ov-div)}
.an-say li:first-child{border-top:none}
.an-say li::before{content:'';position:absolute;left:2px;top:19px;width:7px;height:7px;border-radius:50%;background:var(--ov-bar)}
.an-ai-h{margin:0;padding:14px 24px 2px;font-size:17px;font-weight:700;line-height:1.4;color:var(--text)}
.an-say li.an-ai-watch::before{background:#d97706}
.an-say li.an-ai-tip::before{background:var(--ov-chev)}
.an-ai-act{padding:4px 24px 4px}
.an-ai-act .ov-btn-line{white-space:normal;height:auto;min-height:44px;padding:10px 16px;line-height:1.35}
.an-ai-by{margin:0;padding:10px 24px 16px;font-size:12px;color:var(--ov-mut)}
.an-next{display:block;margin:4px 16px 16px;padding:14px 16px;border-radius:12px;background:var(--ov-soft);color:var(--ov-pos) !important;font-size:15px;font-weight:700;text-decoration:none}
.an-next span{display:block;font-size:12px;font-weight:600;color:var(--ov-mut);margin-bottom:2px}
.an-cols .ov-colside{order:0}
@media(max-width:768px){
  .an-hero{padding:18px 20px}
  .an-hero-n{font-size:38px}
  .an-perf{padding:14px 20px}
  .an-say{padding:4px 20px 8px}
  .an-chart{height:96px}
}
#anlBody.ov,#anlData.ov{width:100%}

/* ── Counter (Canjear reward) ──────────────────────────────── */
/* Escanear: the customer's card and search */
.ctv-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px 22px;text-align:center}
.ctv-t{display:block;font-size:1.05rem;font-weight:700;color:var(--text)}
.ctv-s{margin-top:4px;font-size:.85rem;color:var(--muted)}
.ctv-in{width:100%;margin-top:16px;font-size:1.1rem;padding:14px;text-align:center;border:2px solid var(--line-strong);border-radius:12px;background:var(--panel);color:var(--text)}
.ctv-in:focus{border-color:var(--text-2);outline:none}
.ctv-list{display:flex;flex-direction:column;gap:8px;margin-top:14px;text-align:left}
.ctv-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;cursor:pointer;text-align:left}
.ctv-row:hover{background:var(--panel-2)}
.ctv-row-n{font-size:.98rem;font-weight:700;overflow-wrap:anywhere}
.ctv-row-m{flex:none;font-size:.82rem;color:var(--muted)}
.ctv-empty{padding:10px 4px;font-size:.88rem;color:var(--muted);text-align:center}
.ctv-name{font-size:1.4rem;font-weight:700;color:var(--text);overflow-wrap:anywhere}
.ctv-meta{margin-top:4px;font-size:.92rem;color:var(--text-2)}
/* What the counter tells the cashier: visits left for the goal, what the visit won */
.ctv-goal{margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--panel-2);font-size:.92rem;line-height:1.4;color:var(--text);text-align:left;overflow-wrap:anywhere}
.ctv-goal[hidden]{display:none}
.ctv-goal.hot{background:var(--surface-green);border:1px solid var(--k-green,#23812e)}
.ctv-goal-t{font-weight:700}
.ctv-rw{margin-top:14px;text-align:left}
.ctv-rw:empty{display:none}
.ctv-rw-t{font-size:.85rem;font-weight:700;color:var(--text)}
.ctv-rw-i{margin-top:6px;padding:8px 12px;border-radius:10px;background:var(--panel-2);font-size:.9rem;color:var(--text)}
.ctv-rw-h{margin-top:6px;font-size:.8rem;color:var(--muted)}
.ctv-lbl{display:block;margin-top:18px;font-size:.85rem;font-weight:600;color:var(--text-2);text-align:left}
.ctv-lbl+.ctv-in{margin-top:6px}
.ctv-go{width:100%;margin-top:16px;padding:14px;border:0;border-radius:12px;background:var(--text);color:var(--panel);font:inherit;font-size:.98rem;font-weight:700;cursor:pointer}
.ctv-go:disabled{opacity:.6;cursor:progress}
.ctv-link{width:100%;min-height:44px;margin-top:8px;padding:10px;border:0;background:none;color:var(--muted);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.counter-page.kp-page{background:var(--ov-page)}
.counter-page.kp-page .counter-topbar{background:var(--panel)}
.ct-back{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.ct-back:hover{background:var(--panel-2)}
.ct-menu{position:relative}
.ct-menu-btn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text-2);cursor:pointer}
.ct-menu-btn:hover{background:var(--panel-2)}
.ct-menu-list{position:absolute;right:0;top:46px;z-index:60;min-width:200px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 10px 30px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:2px}
.ct-menu-list[hidden]{display:none}
.ct-menu-list .theme-toggle{width:100%;border:none !important;justify-content:flex-start;padding:10px 12px !important;border-radius:8px;color:var(--text)}
.ct-menu-list .theme-toggle span{display:inline !important;font-size:var(--k-fs-btn,15px) !important;font-weight:500 !important}
.ct-title{display:none;margin:4px 0 2px;font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--text);text-align:center}
#previewRedeemBtn:focus{outline:none}
#previewRedeemBtn:focus-visible{outline:2px solid var(--ov-bar);outline-offset:3px}
#codeInput::placeholder{color:var(--line-strong);letter-spacing:.3em}
@media(min-width:768px){
  .counter-page.kp-page .counter-body{max-width:520px;padding-top:32px}
  .ct-title{display:block}
  #ctrHome button[onclick="startQrScan()"]{width:150px !important;height:150px !important}
}
@media(max-width:600px){
  .ct-back span{display:none}
  .ct-back{width:40px;padding:0;justify-content:center}
}
.counter-page.kp-page .counter-topbar,.counter-page.kp-page .counter-topbar-inner{overflow:visible}

/* ── Receipt review ────────────────────────────────────────── */
.kp-page .rev-wrap{max-width:760px}
.kp-page .content-pad-full>.topbar{max-width:1120px}
.kp-page .rev-card{border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:14px}
.kp-page .rev-top{gap:18px}
.kp-page .rev-thumb{flex:0 0 120px;width:120px;height:150px;border-radius:12px;border:1px solid var(--line);cursor:zoom-in;position:relative}
.kp-page .rev-thumb-none{cursor:default}
.kp-page .rev-av{width:28px;height:28px;font-size:12px;background:var(--ov-av);color:var(--ov-av-t)}
.kp-page .rev-name{font-size:16px}
.kp-page .rev-ago{font-size:13px;color:var(--ov-mut)}
.kp-page .rev-fields{font-size:14px;color:var(--ov-sec);margin-top:8px;align-items:center}
.kp-page .rev-amt-l{font-weight:500;color:var(--ov-mut);margin-right:4px}
.kp-page .rev-amt input{width:96px;padding:5px 8px;border-radius:8px;font-size:15px}
.kp-page .rev-old{font-size:12px}
.rev-status{display:flex;align-items:flex-start;gap:6px;margin-top:10px;font-size:14px;font-weight:600;line-height:1.4;color:#92400e}
.rev-status svg{margin-top:2px}
.rev-status-ai{color:#991b1b}
:root[data-theme="dark"] .rev-status{color:#fcd34d}
:root[data-theme="dark"] .rev-status-ai{color:#fda4a5}
.rev-guide{margin-top:4px;font-size:14px;color:var(--ov-sec);line-height:1.5}
.kp-page .rev-actions{margin-top:14px;padding-top:14px;border-top:1px solid var(--ov-div);gap:10px}
.kp-page .rev-approve{background:var(--ov-accent);border-radius:12px;padding:12px;font-size:15px;min-height:46px}
.kp-page .rev-approve:hover:not(:disabled){background:var(--ov-accent-h)}
.kp-page .rev-reject{border-radius:12px;padding:12px 18px;font-size:15px;color:var(--text);border-color:var(--ov-btn-line);min-height:46px}
.kp-page .rev-tabs{border-bottom-color:var(--line);margin-bottom:16px}
.kp-page .rev-tab{font-size:15px;color:var(--ov-mut)}
.kp-page .rev-tab.active{color:var(--text);border-bottom-color:var(--ov-accent)}
.kp-page .rev-chip.on{background:var(--ov-soft);border-color:var(--ov-bar);color:var(--ov-pos)}
.kp-page .rev-modal-box input:focus{outline:none;border-color:var(--ov-bar);box-shadow:0 0 0 3px var(--ov-soft)}
@media(max-width:600px){
  .kp-page .rev-top{flex-direction:column;gap:12px}
  .kp-page .rev-thumb{flex:none;width:100%;height:180px}
  .kp-page .rev-long{display:none}
  .kp-page .rev-short{display:inline}
  .kp-page .rev-card{padding:14px}
}
.kp-page .rev-card-h .rev-thumb{flex:0 0 64px;width:64px;height:80px}
@media(max-width:600px){ .kp-page .rev-card-h .rev-top{flex-direction:row} .kp-page .rev-card-h .rev-thumb{flex:0 0 56px;width:56px;height:70px} }

/* ── Business profile ──────────────────────────────────────── */
.st-sec-t{margin:24px 0 12px}
.kp-page .link-btn-main{background:var(--ov-accent) !important;border-color:var(--ov-accent) !important;color:#fff !important}
.kp-page .link-btn-main:hover{background:var(--ov-accent-h) !important}
.kp-page .acc-badge.pending{background:#fffbeb;color:#92400e;border-color:#fde68a}
.kp-page .acc-save-btn{background:var(--ov-accent);color:#fff;border-radius:12px;padding:11px 22px;font-size:15px;font-weight:700}
.kp-page .acc-save-btn:hover:not(:disabled){background:var(--ov-accent-h)}
.kp-page .acc-save-btn:disabled{background:var(--panel-2);color:var(--ov-mut);opacity:1}
:root[data-theme="dark"] .kp-page .acc-save-btn:not(:disabled){background:var(--ov-accent);color:#fff}
.st-unsaved{display:none;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--ov-soft);color:var(--ov-pos);white-space:nowrap;flex-shrink:0}
.acc-step.st-dirty .st-unsaved{display:inline-block}
.st-copy{margin-top:10px;padding:0;border:none;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--ov-accent);cursor:pointer}
:root[data-theme="dark"] .st-copy{color:#7ed321}
.kp-page .acc-body .input,.kp-page .acc-body .select{max-width:none}
.kp-page .acc-body .form-row > .input,.kp-page .acc-body .form-row > .select{width:100%}
.kp-page #handleWrap{max-width:none !important}
.st-prev-btn{width:100%;justify-content:center;margin:0 0 4px}
/* Preview card (desktop column + phone sheet) */
.st-prev{padding:0 0 18px}
.st-prev-h{padding:18px 20px 12px}
.st-prev-h p{margin:4px 0 0;font-size:13px;color:var(--ov-mut)}
.st-prev-card{margin:0 16px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.st-pv-cover{height:120px;background:var(--panel-2) center/cover no-repeat}
.st-pv-body{padding:0 16px 16px;position:relative}
.st-pv-logo{width:64px;height:64px;border-radius:16px;margin-top:-32px;border:3px solid var(--panel);background:var(--ov-soft);color:var(--ov-pos);display:grid;place-items:center;font-size:24px;font-weight:700;overflow:hidden}
.st-pv-logo img{width:100%;height:100%;object-fit:cover}
.st-pv-name{margin-top:10px;font-size:19px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.st-pv-cat{font-size:13px;color:var(--ov-mut);margin-top:2px}
.st-pv-desc{margin-top:10px;font-size:14px;line-height:1.5;color:var(--text-2)}
.st-pv-empty{color:var(--ov-mut);font-style:italic}
.st-pv-row{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:14px;color:var(--text-2)}
.st-pv-row svg{flex-shrink:0;margin-top:2px;color:var(--ov-mut)}
.st-pv-join{margin-top:14px;height:42px;border-radius:12px;background:var(--ov-accent);color:#fff;font-weight:700;font-size:15px;display:grid;place-items:center}
.st-pv-link{display:flex;justify-content:center;margin:14px 16px 0}
.st-sheet{position:fixed;inset:0;z-index:9990;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center}
.st-sheet.open{display:flex}
.st-sheet-box{width:100%;max-width:460px;max-height:90vh;overflow-y:auto;background:var(--panel);border-radius:20px 20px 0 0;padding:18px 0 calc(20px + env(safe-area-inset-bottom,0px))}
.st-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 14px}
.st-sheet-head .ov-btn-line{height:38px}
/* Desktop: all sections open as one page, preview on the right */
@media(min-width:961px){
  .kp-page .content-pad-full{max-width:1120px}
  .kp-page .set-desk-grid{grid-template-columns:minmax(0,1fr) 360px !important;gap:32px !important;justify-content:stretch !important}
  .kp-page .st-steps .acc-step .acc-body{display:block}
  .kp-page .st-steps .acc-chevron{display:none}
  .kp-page .st-steps .acc-header{cursor:default}
  .kp-page .st-steps .acc-step{background:var(--panel)}
  .st-prev-btn{display:none}
}
@media(min-width:1100px){
  .kp-page .set-desk-panel{display:flex !important;position:sticky;top:24px;align-self:start;margin-top:0}
}
@media(max-width:1099px){
  .kp-page .set-desk-grid{grid-template-columns:minmax(0,1fr) !important}
  .kp-page .set-desk-panel{display:none !important}
  .st-prev-btn{display:flex !important}
}
.kp-page .set-desk-cards{max-width:none;min-width:0}

/* ── Receipt training ──────────────────────────────────────── */
.rec-src-up{margin-top:10px;height:36px;padding:0 14px;border:1px solid var(--ov-btn-line);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.rec-src-up:hover{background:var(--panel-2)}
.kp-page .source-card-head{flex-wrap:wrap;gap:8px}
.kp-page .source-card-head > div:first-child{flex:1 1 140px}
.kp-page .source-name{font-size:15px;word-break:normal;overflow-wrap:normal}
.kp-page #recSaveSources:not(:disabled){background:var(--ov-accent) !important}
.kp-page #recSaveSources:not(:disabled):hover{background:var(--ov-accent-h) !important}
.kp-page .rec-desk-grid .rec-upload-pad{border-radius:16px}
@media(min-width:961px){ .kp-page .content-pad-full{max-width:1120px} }

/* ── Billing ───────────────────────────────────────────────── */
.bl-plan{display:flex;gap:16px;align-items:flex-start;padding:22px 24px}
.bl-plan .ov-ic{width:48px;height:48px}
.bl-plan h2{margin:10px 0 6px;font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--text)}
.bl-plan p{margin:0;font-size:15px;line-height:1.55;color:var(--ov-sec);max-width:620px}
.bl-kpis{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.bl-pay{padding:20px 24px}
.bl-pay-row{display:flex;gap:14px;align-items:center;margin-top:14px}
.bl-pay-note{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--ov-div);font-size:14px;color:var(--ov-sec);line-height:1.5}
.bl-cols .ov-colside{order:0}
@media(max-width:768px){ .bl-plan{padding:18px 20px} .bl-plan h2{font-size:20px} .bl-pay{padding:18px 20px} }
/* Facturación: plans */
.bl-plan-acts:empty{display:none}
.bl-plan-acts{margin-top:14px}
.kp-tag.bl-tag-warn{background:#fef3c7;color:#92400e}
#blPlans{display:flex;flex-direction:column;gap:16px}
#blPlans[style*="none"]{display:none !important}
.bl-value-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:6px 24px 20px}
.bl-value-n{font-size:28px;font-weight:700;color:var(--text);letter-spacing:-.02em}
.bl-value-l{margin-top:2px;font-size:13px;line-height:1.4;color:var(--text-2)}
.bl-rc{padding:20px 24px}
.bl-rc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.bl-rc-n{font-size:15px;font-weight:700;color:var(--text)}
.bl-rc-bar{height:8px;margin-top:12px;border-radius:999px;background:var(--ov-track);overflow:hidden}
.bl-rc-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--text-2);transition:width .3s}
.bl-rc-bar i.bl-rc-warn{background:#d97706}
.bl-rc-s{margin:10px 0 0;font-size:14px;line-height:1.5;color:var(--text-2)}
.bl-offers-s{margin:-8px 0 0;font-size:14px;color:var(--text-2)}
.bl-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bl-offer{display:flex;flex-direction:column;padding:20px}
.bl-offers.bl-offers-one{grid-template-columns:minmax(0,460px)}
.bl-offer.bl-offer-cur{border-color:var(--text-2)}
.bl-offer h3{margin:0;font-size:17px;font-weight:700;color:var(--text)}
.bl-offer-p{margin-top:6px;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--text)}
.bl-offer-p span{font-size:14px;font-weight:600;color:var(--text-2);letter-spacing:0}
.bl-offer-r{margin-top:8px;font-size:15px;font-weight:700;color:var(--text)}
.bl-offer-d{margin-top:2px;font-size:13px;color:var(--text-2)}
.bl-offer ul{margin:14px 0 16px;padding:0;list-style:none;display:grid;gap:6px;font-size:14px;color:var(--text-2)}
.bl-offer li{position:relative;padding-left:20px}
.bl-offer li::before{content:'✓';position:absolute;left:0;color:var(--text);font-weight:700}
.bl-offer-btn{margin-top:auto;width:100%;justify-content:center;min-height:48px;font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.bl-offer-go{border:0;border-radius:12px;background:var(--text);color:var(--panel)}
.bl-offer-btn:disabled{opacity:.6;cursor:progress}
.bl-offer-mine{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;background:var(--panel-2);font-size:15px;font-weight:700;color:var(--text)}
.bl-offer-note{margin:auto 0 0;font-size:13px;color:var(--text-2);text-align:center}
.bl-toast{position:fixed;left:50%;bottom:24px;z-index:200;max-width:min(520px,calc(100% - 32px));padding:12px 18px;border-radius:12px;background:var(--text);color:var(--panel);font-size:14px;font-weight:600;line-height:1.4;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s}
.bl-toast.on{transform:translate(-50%,0);opacity:1}
.bl-fine{margin:0;font-size:13px;line-height:1.5;color:var(--ov-mut)}
@media(max-width:768px){.bl-offers{grid-template-columns:1fr}.bl-value-row{grid-template-columns:1fr;gap:10px;padding:4px 20px 18px}.bl-rc{padding:18px 20px}}
.bl-kpis .ov-kpi{display:flex;flex-direction:column;justify-content:space-between;gap:6px}

/* ── Help center ───────────────────────────────────────────── */
.hp{max-width:760px}
.hp .help-section{border:1px solid var(--ov-div);border-radius:16px;background:var(--panel);margin-bottom:10px}
.hp .hs-header{padding:16px 20px}
.hp .hs-icon{width:40px;height:40px;border-radius:12px;background:var(--ov-soft);border:0;color:var(--ov-accent)}
.hp .hs-icon svg{stroke:currentColor}
.hp .hs-title{font-size:16px;font-weight:700}
.hp .hs-desc{font-size:14px;color:var(--ov-sec);margin-top:2px}
.hp .hs-body{border-top:1px solid var(--ov-div)}
.hp .art-q{font-size:15px}
.hp .art-p,.hp .art-li{font-size:14px;line-height:1.6;color:var(--ov-sec)}
.hp .art-p strong,.hp .art-li strong{color:var(--text)}
.hp .art-tip{background:var(--ov-soft);border:0;border-radius:12px;padding:12px 14px}
.hp .art-tip p{font-size:14px;color:var(--text)}
.hp .art-tip strong{color:var(--ov-pos)}
.hp .chapter{margin:28px 0 10px}
.hp .chapter:first-child{margin-top:8px}
.hp .chapter-line{display:none}
.hp .chapter h2{font-size:13px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--ov-mut)}
.hp .search-box{border-radius:12px}
/* Clientes: "Para revisar" (signs of abuse) */
.cl-alerts-sub{margin:-6px 24px 6px;font-size:14px;line-height:1.45;color:var(--text-2)}
.cl-alert{padding:14px 24px;border-top:1px solid var(--ov-div)}
.cl-alert-t{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text)}
.cl-alert-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:12px;font-weight:700}
.cl-alert-s{margin-top:4px;font-size:14px;line-height:1.45;color:var(--text-2)}
.cl-alert-ppl{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cl-alert-who{min-height:36px;padding:0 12px;border:1px solid var(--ov-btn-line);border-radius:999px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.cl-alert-who:hover{background:var(--panel-2)}
.cl-alert-more{display:block;width:100%;min-height:48px;border:0;border-top:1px solid var(--ov-div);background:none;color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
@media(max-width:768px){.cl-alerts-sub{margin:-6px 20px 6px}.cl-alert{padding:14px 20px}}
/* Lo que Kiiwis sabe (memory.html) */
.mem{display:flex;flex-direction:column;gap:16px}
.mem-status{margin:-6px 0 0;font-size:13px;color:var(--ov-mut)}
.mem-status:empty{display:none}
.mem-empty,.mem-soon{padding:20px 22px}
.mem-empty h2,.mem-soon h2{margin:0;font-size:18px;font-weight:700;color:var(--text)}
.mem-empty p,.mem-soon p{margin:6px 0 0;font-size:15px;line-height:1.5;color:var(--text-2)}
.mem-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.mem-main,.mem-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.mem-card{padding:18px 20px;display:flex;flex-direction:column;gap:10px}
.mem-card h2,.mem-card label,.mem-card h3{margin:0;font-size:16px;font-weight:700;color:var(--text)}
.mem-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.mem-sub{margin-top:6px}
.mem-tag{font-size:12px;color:var(--text-2);background:var(--panel-2);border-radius:999px;padding:4px 10px}
.mem-tag button{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--text);text-decoration:underline;cursor:pointer}
.mem-in{width:100%;min-width:0;box-sizing:border-box;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;font-size:15px;line-height:1.45}
textarea.mem-in{resize:vertical;min-height:72px}
.mem-in:focus{outline:none;border-color:var(--text-2)}
.mem-chips{display:flex;flex-wrap:wrap;gap:8px}
.mem-chips:empty{display:none}
.mem-chip{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 4px 0 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);font-size:14px;color:var(--text)}
.mem-chip button{width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--text-2);font-size:18px;cursor:pointer}
.mem-price-t{color:var(--text-2)}
.mem-add{display:flex;gap:8px}
.mem-add .ov-btn-line{flex:none;cursor:pointer;font-family:inherit}
.mem-price{max-width:150px}
.mem-switch{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;border-top:1px solid var(--ov-div);cursor:pointer}
.mem-switch strong{display:block;font-size:15px}
.mem-switch small{display:block;margin-top:2px;font-size:13px;font-weight:400;color:var(--text-2)}
.mem-switch input{width:22px;height:22px;flex:none}
.mem-tone{min-height:38px;padding:0 14px;border:1px solid var(--ov-btn-line);border-radius:999px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;cursor:pointer}
.mem-tone.on{background:var(--text);border-color:var(--text);color:var(--panel);font-weight:700}
.mem-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mem-two>div{display:flex;flex-direction:column;gap:8px}
.mem-list{display:flex;flex-direction:column}
.mem-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--ov-div);font-size:15px;color:var(--text)}
.mem-row:first-child{border-top:0}
.mem-row button,.mem-doc button{flex:none;min-height:40px;padding:0 10px;border:0;background:none;color:var(--text-2);font:inherit;font-size:14px;cursor:pointer}
.mem-note{margin:0;font-size:13px;line-height:1.45;color:var(--text-2)}
.mem-note:empty{display:none}
.mem-save{position:sticky;bottom:12px;display:none;justify-content:flex-end;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--panel);border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.06)}
.mem-save.on{display:flex}
.mem-side .mem-add{flex-direction:column}
.mem-side .mem-add .ov-btn-line{justify-content:center}
.mem-save span{font-size:14px;color:var(--text-2)}
.mem-save-btn{height:44px;padding:0 20px;border:0;border-radius:12px;background:var(--text);color:var(--panel);font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.mem-save-btn:disabled{opacity:.45;cursor:default}
.mem-count{font-size:13px;color:var(--ov-mut)}
.mem-drop{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px;border:2px dashed var(--line-strong);border-radius:14px;background:var(--panel-2);color:var(--text);text-align:center;cursor:pointer}
.mem-drop strong{font-size:15px}
.mem-drop small{font-size:13px;color:var(--text-2)}
.mem-docs{display:flex;flex-direction:column;gap:8px}
.mem-doc{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px}
.mem-doc-ic{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--panel-2);font-size:11px;font-weight:700;color:var(--text-2)}
.mem-doc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mem-doc-t strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mem-doc-s{font-size:13px;color:var(--text-2)}
.mem-doc-failed{border-color:#fde68a;background:#fffbeb}
.mem-doc-failed .mem-doc-s{color:#92400e}
.mem-learn{display:flex;flex-direction:column}
.mem-learn-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-top:1px solid var(--ov-div);font-size:15px;color:var(--text)}
.mem-learn-row:first-child{border-top:0}
.mem-learn-row strong{flex:none;color:var(--ov-pos)}
.mem-learn-when{flex:none;font-size:13px;color:var(--text-2)}
.mem-rebuild{align-self:flex-start;cursor:pointer;font-family:inherit}
@media(max-width:900px){.mem-cols{grid-template-columns:1fr}}
@media(max-width:560px){.mem-two{grid-template-columns:1fr}.mem-add{flex-wrap:wrap}.mem-price{max-width:none}}
/* Suggested designs for a post (js/designs.js) */
.kd{margin:0 0 16px;min-height:1px}
.kd-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.kd-head strong{font-size:15px;color:var(--text)}
.kd-more{min-height:40px;padding:0 14px;border:1px solid var(--ov-btn-line);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.kd-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kd-tile{display:block;padding:0;aspect-ratio:4/5;border:2px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel-2);cursor:pointer}
.kd-tile img{display:block;width:100%;height:100%;object-fit:cover}
.kd-tile.on{border:3px solid var(--text)}
.kd-wait{animation:kdPulse 1.2s ease-in-out infinite}
@keyframes kdPulse{50%{opacity:.5}}
.kd-note{margin:8px 0 0;font-size:13px;color:var(--text-2)}
.kd-head .kd-note{margin:0}
/* Help chat ("Pregúntale a Kiiwis") */
.hp-ask{padding:20px;margin:0 0 20px}
.hp-ask h2{margin:0;font-size:18px;font-weight:700;color:var(--text)}
.hp-ask-sub{margin:4px 0 0;font-size:14px;line-height:1.45;color:var(--text-2)}
.hp-ask-log{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.hp-ask-log:empty{display:none}
.hp-msg{max-width:92%;padding:10px 14px;border-radius:14px;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.hp-me{align-self:flex-end;background:var(--panel-2);color:var(--text);border-bottom-right-radius:4px}
.hp-ai{align-self:flex-start;border:1px solid var(--ov-div);background:var(--panel);color:var(--text);border-bottom-left-radius:4px}
.hp-ai p{margin:0}
.hp-ai p+p,.hp-ai p+ul,.hp-ai ul+p{margin-top:8px}
.hp-ai ul{margin:6px 0 0;padding-left:20px}
.hp-ai li+li{margin-top:4px}
.hp-err{color:var(--text-2)}
.hp-wait{color:var(--ov-mut)}
.hp-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hp-links .ov-btn-line{white-space:normal;height:auto;min-height:44px;padding:8px 14px;font-size:14px;line-height:1.3}
.hp-ask-sugg{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.hp-ask-sugg:empty{display:none}
.hp-ask-chip{min-height:40px;padding:8px 14px;border:1px solid var(--ov-btn-line);border-radius:999px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.hp-ask-chip:hover{background:var(--panel-2)}
.hp-ask-form{display:flex;gap:8px;align-items:flex-end;margin-top:14px}
.hp-ask-form textarea{flex:1;min-width:0;min-height:48px;max-height:140px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;font-size:16px;line-height:1.4;resize:none;outline:none}
.hp-ask-form textarea:focus{border-color:var(--text-2)}
.hp-ask-send{flex:none;height:48px;padding:0 18px;border:0;border-radius:12px;background:var(--text);color:var(--panel);font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.hp-ask-send:disabled{opacity:.6;cursor:progress}
.hp-ask-note{margin:10px 0 0;font-size:12px;color:var(--ov-mut)}
.hp-contact{display:flex;gap:14px;align-items:center;margin-top:24px;padding:18px 20px}
.hp-contact a{color:var(--ov-accent);font-weight:700;text-decoration:none}
.hp-contact a:hover{text-decoration:underline}

/* ── Dark-mode pass ────────────────────────────────────────── */
/* Modal backdrops: neutral, never navy */
.kp-page .rev-modal,.kp-page #exportConfirm,.kp-page #idConfirmModal{background:rgba(17,17,17,.45) !important}
.kp-page .rev-lightbox{background:rgba(0,0,0,.8) !important}
:root[data-theme="dark"] .kp-page .rev-modal,:root[data-theme="dark"] .kp-page #exportConfirm,:root[data-theme="dark"] .kp-page #idConfirmModal{background:rgba(0,0,0,.6) !important}
@media(min-width:769px){ .kp-page .wiz-overlay{background:rgba(17,17,17,.45)} :root[data-theme="dark"] .kp-page .wiz-overlay{background:rgba(0,0,0,.6)} }
/* Help icons follow the panel icon colour */
.hp .hs-icon{color:var(--ov-icon)}
/* Date countdown chips (upcoming dates) */
:root{--up-red-bg:#fef2f2;--up-red:#a3423a;--up-amb-bg:#fffbeb;--up-amb:#b45309}
:root[data-theme="dark"]{--up-red-bg:rgba(239,68,68,.14);--up-red:#fca5a5;--up-amb-bg:rgba(245,158,11,.14);--up-amb:#fcd34d}
/* Reject: disabled until a reason is picked */
.kp-page .rev-btn-danger:disabled{background:var(--panel-2);border-color:var(--line);color:var(--ov-mut);opacity:1}
/* Export buttons wait until there is something to export */
.kp-noexport [data-export]{display:none !important}

/* ── Onboarding (Inicio, new accounts) ────────────────────── */
.ob2-title{margin:8px 0 0;font-size:22px;line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text)}
.ob2-lede{margin:4px 0 16px !important}
.ob2-card{padding:0;overflow:hidden}
.ob2-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 0}
.ob2-head .ov-h2{margin:0}
.ob2-count{font-size:14px;font-weight:700;color:var(--ov-sec);white-space:nowrap}
.ob2-bar{height:6px;margin:12px 20px 4px;border-radius:999px;background:var(--ov-track);overflow:hidden}
.ob2-bar>div{height:100%;width:0;border-radius:999px;background:var(--ov-accent);transition:width .4s ease}
.ob2-step{padding:18px 20px;border-top:1px solid var(--ov-div)}
.ob2-step:first-of-type{border-top:0}
.ob2-stephead{display:flex;gap:12px;align-items:flex-start}
.ob2-num{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--panel-2);color:var(--ov-sec)}
.ob2-next .ob2-num{background:var(--ov-soft);color:var(--ov-pos)}
.ob2-step.done .ob2-num{background:var(--ov-accent);color:#fff}
.ob2-step h3{margin:3px 0 2px;font-size:16px;font-weight:700;line-height:1.3;color:var(--text)}
.ob2-step p{margin:0;font-size:14px;line-height:1.5;color:var(--ov-sec)}
.ob2-step.done p{color:var(--ov-pos);font-weight:600}
.ob2-list{list-style:none;margin:12px 0 0 40px;padding:0;display:grid;gap:6px}
.ob2-list li{position:relative;padding-left:16px;font-size:14px;line-height:1.45;color:var(--ov-sec)}
.ob2-list li::before{content:'';position:absolute;left:2px;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--ov-icon)}
.ob2-cta{display:flex;align-items:center;justify-content:center;height:46px;margin:16px 0 0 40px;border-radius:12px;border:1px solid var(--ov-btn-line);background:var(--panel);color:var(--text) !important;font-size:15px;font-weight:700;text-decoration:none}
.ob2-cta:hover{background:var(--panel-2)}
.ob2-next .ob2-cta{background:var(--ov-accent);border-color:var(--ov-accent);color:#fff !important}
.ob2-next .ob2-cta:hover{background:var(--ov-accent-h)}
@media(max-width:768px){ .ob2-list,.ob2-cta{margin-left:0} .ob2-title{font-size:20px} }
.ob2-cel{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(17,17,17,.45)}
:root[data-theme="dark"] .ob2-cel{background:rgba(0,0,0,.6)}
.ob2-cel-box{width:100%;max-width:400px;padding:28px 24px 20px;border-radius:20px;background:var(--panel);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.ob2-cel-box h2{margin:14px 0 6px;font-size:20px;font-weight:700;color:var(--text)}
.ob2-cel-box p{margin:0;font-size:15px;line-height:1.5;color:var(--ov-sec)}
.ob2-cel-box .ov-btn-main{max-width:none;margin-top:20px;text-decoration:none}
.ob2-cel-skip{margin-top:8px;padding:10px;border:0;background:none;font:inherit;font-size:15px;font-weight:700;color:var(--ov-sec);cursor:pointer}
/* Business profile: next onboarding step once the profile is complete */
.st-obnext{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:900;width:calc(100% - 32px);max-width:560px;display:flex;align-items:center;gap:16px;padding:14px 16px 14px 20px;border-radius:16px;background:var(--panel);border:1px solid var(--ov-div);box-shadow:0 12px 40px rgba(0,0,0,.18)}
.st-obnext>div{flex:1;min-width:0}
.st-obnext strong{display:block;font-size:15px;color:var(--text)}
.st-obnext span{display:block;font-size:14px;line-height:1.4;color:var(--ov-sec)}
.st-obnext .ov-btn-main{flex-shrink:0;height:44px;margin:0;padding:0 18px;font-size:15px;text-decoration:none}
@media(max-width:600px){ .st-obnext{flex-direction:column;align-items:stretch;gap:12px} }
@media(min-width:961px){ .kp-page #welcomeHero,.kp-page #obWrap{max-width:640px !important;margin-left:0 !important} }
/* Business profile: "Tu enlace" lights up when arriving from "Descargar mi QR" */
.st-flash{box-shadow:0 0 0 3px var(--ov-accent) !important;transition:box-shadow .3s}
/* Automations: state filters over the journey */
.au-filter{margin:0;padding:2px 24px 14px}
.au-filter:empty{display:none}
@media(max-width:768px){ .au-filter{margin:0;padding:2px 20px 12px} }

/* ── Phone density (≤768px): more on screen, same type size as iOS apps ──
   Numbers in a strip of three (a fourth one becomes a slim full-width row),
   tighter card padding and gaps, a smaller greeting. Desktop is unchanged. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}   /* iOS must not inflate text on rotation */
@media(max-width:768px){
  .ov{gap:16px}
  .ov-hello-mob{margin:2px 0 14px}
  .ov-hello{font-size:22px}
  .ov-date{font-size:13px}
  .ov-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ov-kpi{padding:12px}
  .ov-kpi-l{font-size:13px;line-height:1.25}
  .ov-kpi-n{font-size:22px;margin-top:4px}
  .ov-kpi-main{grid-column:auto;padding:12px}
  .ov-kpi-main .ov-kpi-row{gap:4px}
  .ov-kpi-main .ov-kpi-n{font-size:22px}
  .ov-kpi-main .ov-kpi-s{font-size:12px;font-weight:600}
  .ov-kpis-4>.ov-kpi:nth-child(4){grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}
  .ov-kpis-4>.ov-kpi:nth-child(4) .ov-kpi-n{margin:0;font-size:20px}
  .au-kpis{gap:8px}
  .au-kpis .ov-kpi{padding:12px}
  .au-kpis .ov-kpi-n{font-size:22px}
  .ov-today>.ov-h2,.ov-h2-list,.ov-h2-bar{padding:16px 16px 6px}
  .ov-row{gap:12px;padding:12px 16px}
  .ov-ev{padding:12px 16px}
  .ov-empty{padding:4px 16px 16px}
  .ov-first{padding:16px}
  .ov-steps{padding:16px}
  .ov-actions{gap:8px}
}
/* Automations: the journey title folds its explanation */
.au-head-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:32px}
.au-head-chev{flex-shrink:0;color:var(--ov-mut);transition:transform .2s}
.au-folded .au-head-chev{transform:rotate(-90deg)}
.au-folded #auHeadInfo{display:none}
.au-folded{padding-bottom:6px}
@media(max-width:768px){ .an-period{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 2px} }

/* ── Post cards (Automations, Promotions): each one shows the post as customers see
   it — the photo in 4:5 like the customer app, title, message, results — with its
   actions underneath. As many columns as fit (3 on large screens, 1 on phones). ── */
.pc-stack{display:flex;flex-direction:column;gap:24px}
.pc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:20px;align-items:start}
.pc{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.pc-head{display:flex;align-items:center;gap:12px;padding:14px 16px}
.pc-h{flex:1;min-width:0}
.pc-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:700;line-height:1.35;color:var(--text)}
.pc-when{margin-top:2px;font-size:13px;line-height:1.4;color:var(--ov-sec)}
.pc-media{aspect-ratio:4/5;background:var(--panel-2);overflow:hidden}
.pc-media img{display:block;width:100%;height:100%;object-fit:cover}
.pc-off .pc-media{opacity:.72}
/* Promotions list: the whole photo at a lower height, the same photo blurred behind it
   (nothing the owner uploaded is cropped; same as the customer app on desktop) */
.pc-media-fit{aspect-ratio:auto;height:210px;position:relative;background:#111;display:flex;justify-content:center}
.pc-media-fit .pc-blur{position:absolute;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(18px) saturate(1.2);opacity:.75}
.pc-media-fit img:not(.pc-blur){position:relative;width:auto;max-width:100%;height:100%;object-fit:contain}
@media (min-width:768px){.pc-media-fit{height:280px}}
.pc-body{padding:14px 16px 2px}
.pc-head+.pc-body{padding-top:0}
.pc-body>.pc-msg:first-child{margin-top:0}
.pc-t{margin:0;font-size:17px;font-weight:700;line-height:1.3;color:var(--text)}
.pc-msg{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--ov-sec);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pc-res{margin-top:8px;font-size:13px;line-height:1.45}
.pc-acts{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;margin-top:auto;padding:12px 16px 16px}
.pc-acts .au-btn.cp-end{border-color:transparent;background:none;color:var(--ov-sec)}
.pc-acts .au-btn.cp-end:hover{color:var(--text);background:var(--panel-2)}
.pc-acts .au-btn{justify-content:center;height:42px;padding:0 6px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-sec{margin:0;font-size:15px;font-weight:700;color:var(--text)}
.pc-sec span{font-weight:500;color:var(--ov-mut)}
.pc-sec-row{display:flex;flex-direction:column;gap:12px}
.pc-list .au-row:first-child{border-top:0}
.pc-more{align-self:flex-start;border:0;background:none;padding:6px 0;font:inherit;font-size:14px;font-weight:700;color:var(--ov-accent);cursor:pointer}
:root[data-theme="dark"] .pc-more{color:#7ed321}
/* The journey / promotions heading sits on the page, the cards under it */
.au-journey .au-head{padding:0 0 10px}
.au-journey .au-filter{padding:0 0 4px;margin:0}
.au-journey .au-folded{padding-bottom:0}
@media(max-width:768px){
  .pc-grid{gap:14px}
  .pc-head{padding:12px 14px}
  .pc-body{padding:12px 14px 2px}
  .pc-acts{padding:12px 14px 14px}
}
.cp-promos,.au-journey{display:flex;flex-direction:column}
.cp-promos-t{margin:0 0 14px}
#campListPrimary,#statusList{display:flex;flex-direction:column;gap:22px}
#statusList{margin-top:16px}
/* No photo: the post shows as it is (no media area); cards keep their own height */
.pc-grid{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));align-items:start}
/* The cards come first everywhere; activity / ideas follow them */
.pc-stack .ov-colside{order:0}
/* Promotions: tabs over the cards (same pattern as Automations) */
.cp-filter{margin:0 0 16px;padding:0 0 2px}
@media(max-width:768px){ .cp-filter{margin:0 -16px 14px;padding:0 16px 2px} }

/* ── Phones: the side menu scrolls on its own, the page behind stays put ──
   100vh is taller than what a phone shows (the browser bar takes room), so "Log out"
   and "Dark mode" sat under it; the page behind scrolled once the menu reached its end
   (or when dragging the dimmed area); and squeezed items made the menu think there was
   nothing below. */
@media(max-width:960px){
  .sidebar{height:100vh;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .sidebar > *{flex-shrink:0}
  html:has(.sidebar.open),html:has(.sidebar.open) body{overflow:hidden;overscroll-behavior:none}
  .overlay.open{touch-action:none}
}
/* "Así te ven tus clientes": the app's business page — gift coupon, Call/Website/Directions, Happy Hour */
.st-pv-cp{margin-top:14px;border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px}
.st-pv-cp-top{display:flex;gap:10px;align-items:center;padding-bottom:12px;border-bottom:2px dashed var(--line)}
.st-pv-cp-ic{font-size:26px;line-height:1}
.st-pv-cp-k{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ov-accent,var(--k-green-ink, #23812e))}
.st-pv-cp-g{font-size:15px;font-weight:700;color:var(--text);line-height:1.35}
.st-pv-cp .st-pv-join{margin-top:0}
.st-pv-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.st-pv-acts>div{background:var(--panel-2);border-radius:12px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--text-2);text-align:center}
.st-pv-acts svg{color:var(--ov-accent,var(--k-green-ink, #23812e))}
.st-pv-hh{margin-top:12px;border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.st-pv-hh-t{font-size:15px;font-weight:700;color:var(--text)}
.st-pv-hh-s{font-size:13px;color:var(--ov-mut)}
.st-pv-days{display:flex;gap:5px;margin:10px 0 8px}
.st-pv-days span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--panel-2);color:var(--ov-mut)}
.st-pv-days span.on{background:#fff7ed;color:#c2410c}
:root[data-theme="dark"] .st-pv-days span.on{background:rgba(234,88,12,.16);color:#fb923c}
.st-pv-hh-h{font-size:13px;font-weight:700;color:var(--text)}
/* Business profile map: "Find my address on the map" and "View on Google Maps" */
.st-geo-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:44px;margin:0 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.st-geo-btn:hover:not(:disabled){border-color:var(--k-green, #23812e)}
.st-geo-btn:disabled{opacity:.6;cursor:default}
.st-geo-btn svg{color:var(--k-green-ink, #23812e)}
.st-geo-link{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:var(--k-green-ink, #23812e);text-decoration:none}
.st-geo-link:hover{text-decoration:underline}

/* Interest level chip (engagement): very active · active · lukewarm · cold */
.kp-lv{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;line-height:1;padding:5px 10px 5px 8px;border-radius:999px;white-space:nowrap}
.kp-lv::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.kp-lv-very_active{background:#cdeec6;color:#145a1d}   /* the scale reads by tint: deeper than "active", not a solid block */
.kp-lv-active{background:#ecfbe9;color:#1e6a27}
.kp-lv-lukewarm{background:#fef3c7;color:#b45309}
.kp-lv-cold{background:#f1f1f1;color:#5b5b5b}
:root[data-theme="dark"] .kp-lv-very_active{background:rgba(124, 187, 16,.28);color:#d4f7a8}
:root[data-theme="dark"] .kp-lv-active{background:rgba(124, 187, 16,.12);color:#b2e976}
:root[data-theme="dark"] .kp-lv-lukewarm{background:rgba(251,191,36,.14);color:#fbbf24}
:root[data-theme="dark"] .kp-lv-cold{background:#262626;color:#b0b0b0}
/* Automations: a plain journey title with its one line always shown; only the note on
   versions folds, behind a small link (the old '›' on the title read as a link elsewhere) */
.au-journey .au-head{padding:0 0 16px}
.au-head-sub{margin:4px 0 0;font-size:.9rem;line-height:1.45;color:var(--ov-mut)}
.au-ver-btn{display:inline-flex;align-items:center;min-height:32px;margin:2px 0 0;padding:0;border:0;background:none;font:inherit;font-size:.82rem;font-weight:600;color:var(--k-green-ink,#23812e);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#auHeadInfo .au-ver{margin:2px 0 0}
/* Automations and promotions on a phone: the photo becomes a thumbnail (tap → full size) so several
   fit on one screen; the message (160 characters at most) stays; buttons in one row */
.au-thumb{display:none}
@media(max-width:768px){
  .pc.pc-has-photo .pc-media{display:none}
  .pc.pc-has-photo .pc-head .ov-ic{display:none}
  .au-thumb{display:block;position:relative;flex-shrink:0;width:64px;height:64px;padding:0;border:0;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--panel-2)}
  .au-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .au-thumb-zoom{position:absolute;right:4px;bottom:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center}
  .au-journey .pc .pc-acts,.cp-promos .pc .pc-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .au-journey .pc .pc-acts .au-btn,.cp-promos .pc .pc-acts .au-btn{min-height:44px;width:100%}
}
/* The photo at full size */
.au-pv{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.82);align-items:center;justify-content:center;padding:16px}
.au-pv.open{display:flex}
.au-pv-box{width:100%;max-width:520px;display:flex;flex-direction:column;gap:10px}
.au-pv-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.au-pv-t{margin:0;color:#fff;font-size:1rem;font-weight:700}
.au-pv-x{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.au-pv-box img{width:100%;max-height:78vh;object-fit:contain;border-radius:14px;background:#000}

/* Ideas para ti (Overview): what to launch now and why — openspec marketing-ideas-library */
.ov-ideas-sub{margin:0;padding:0 24px 10px;font-size:14px;color:var(--ov-sec)}
.ov-idea{display:flex;flex-direction:column;gap:6px;padding:16px 24px;border-top:1px solid var(--ov-div)}
.ov-idea-tag{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ov-pos)}
.ov-idea-tag svg{flex-shrink:0}
.ov-idea-tag.is-date{color:#9a3412}
.ov-idea-tag.is-idle{color:#1e40af}
:root[data-theme="dark"] .ov-idea-tag.is-date{color:#fdba74}
:root[data-theme="dark"] .ov-idea-tag.is-idle{color:#93c5fd}
/* Ideas phase 1: the welcome gift nobody came for (violet), the slow day (blue, like idle) */
.ov-idea-tag.is-welcome{color:#6d28d9}
.ov-idea-tag.is-slow{color:#1e40af}
:root[data-theme="dark"] .ov-idea-tag.is-welcome{color:#c4b5fd}
:root[data-theme="dark"] .ov-idea-tag.is-slow{color:#93c5fd}
/* Ideas phase 2: repeat what worked (brand green), close to their reward (amber) */
.ov-idea-tag.is-repeat{color:var(--k-green-ink, #23812e)}
.ov-idea-tag.is-close{color:#b45309}
:root[data-theme="dark"] .ov-idea-tag.is-close{color:#fbbf24}
/* "Ideas para ti" folds: the header (title, how many, the first idea) opens it with the arrow */
.ov-ideas-h{padding:0}
.ov-ideas-head{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;padding:18px 24px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ov-ideas-head:focus-visible{outline:2px solid var(--ov-accent);outline-offset:-4px;border-radius:14px}
.ov-ideas-head-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ov-ideas-head-t{display:flex;align-items:center;gap:8px}
.ov-ideas-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:700;letter-spacing:0}
.ov-ideas-peek{font-size:14px;font-weight:500;letter-spacing:0;color:var(--ov-sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-ideas.is-open .ov-ideas-peek{display:none}
.ov-ideas-chev{flex-shrink:0;color:var(--ov-sec);transition:transform .2s ease}
.ov-ideas.is-open .ov-ideas-chev{transform:rotate(180deg)}
.ov-ideas.is-open .ov-ideas-head{padding-bottom:6px}
.ov-ideas-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:14px 24px 18px;border-top:1px solid var(--ov-div)}
.ov-ideas-empty p{margin:0;font-size:14px;line-height:1.5;color:var(--ov-sec)}
@media(max-width:768px){ .ov-ideas-head{padding:16px} .ov-ideas-empty{padding:14px 16px 16px} }
@media(prefers-reduced-motion:reduce){ .ov-ideas-chev{transition:none} }
.ov-idea-t{font-size:17px;font-weight:700;line-height:1.35;color:var(--text)}
.ov-idea-s{font-size:14px;line-height:1.45;color:var(--ov-sec)}
.ov-idea-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
/* Neutral, not green: the page keeps one solid green action ("Scan reward") */
.ov a.ov-idea-go{display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:12px;background:var(--panel);border:1.5px solid var(--text);color:var(--text);font-weight:700;font-size:15px}
.ov a.ov-idea-go:hover{background:var(--panel-2)}
.ov-idea-alt{height:44px;padding:0 12px;border:0;border-radius:12px;background:none;color:var(--ov-sec);font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.ov-idea-alt:hover{background:var(--panel-2);color:var(--text)}
.ov-idea-no{height:44px;margin-left:auto;padding:0 8px;border:0;background:none;color:var(--ov-sec);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.ov-idea-no:hover{color:var(--text)}
@media(max-width:768px){ .ov-idea{padding:14px 20px} .ov-ideas-sub{padding:0 20px 10px} }
@media(max-width:600px){ .ov-idea{padding:14px 16px} .ov-ideas-sub{padding:0 16px 10px} .ov-idea-t{font-size:16px} }

/* ── Weekly plan (js/plan.js): the week's reward and promotion, approved with one tap ── */
.ov-plan{border-color:var(--ov-accent);box-shadow:0 0 0 1px var(--ov-accent) inset}
.pl-head{padding:20px 24px 8px}
.pl-eyebrow{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ov-pos);margin-bottom:4px}
.pl-sub{margin:4px 0 0;font-size:14px;line-height:1.45;color:var(--ov-sec)}
.pl-items,.pl-rows{list-style:none;margin:0;padding:6px 24px 0;display:flex;flex-direction:column;gap:10px}
.pl-item{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:12px;background:var(--ov-soft)}
.pl-item.is-opt,.pl-item.is-off{background:var(--panel);border:1px dashed var(--ov-btn-line)}
.pl-ic{width:36px;height:36px;flex:none;border-radius:10px;background:var(--ov-accent);color:#fff;display:flex;align-items:center;justify-content:center}
.pl-ic.is-off{background:var(--panel-2);color:var(--text-2)}
.pl-ic.is-done{width:44px;height:44px;border-radius:22px}
.pl-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.pl-kick{font-size:12px;font-weight:700;color:var(--ov-pos)}
.pl-item.is-off .pl-kick,.pl-item.is-opt .pl-kick{color:var(--ov-sec)}
.pl-t{font-size:15px;font-weight:700;line-height:1.35;color:var(--text)}
.pl-reward{font-size:14px;font-weight:600;color:var(--text)}
.pl-why{font-size:13px;line-height:1.45;color:var(--ov-sec)}
.pl-sug{display:inline-block;margin-left:2px;padding:2px 8px;border-radius:999px;background:#fef3c7;color:#78350f;font-size:11px;font-weight:700;vertical-align:2px;white-space:nowrap}
:root[data-theme="dark"] .pl-sug{background:rgba(251,191,36,.18);color:#fcd34d}
.pl-acts{display:flex;flex-direction:column;gap:8px;padding:16px 24px 0}
.pl-go{height:50px;border:0;border-radius:12px;background:var(--ov-accent);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.pl-go:hover{background:var(--ov-accent-h)}
.pl-go:disabled{opacity:.55;cursor:default}
.pl-rev,.pl-btn2,.pl-retry{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text) !important;font:inherit;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none}
.pl-rev:hover,.pl-btn2:hover,.pl-retry:hover{background:var(--panel-2)}
.pl-err{margin:12px 24px 0;padding:10px 12px;border-radius:10px;background:var(--surface-rose, #fdecec);color:#991b1b;font-size:14px;font-weight:600}
:root[data-theme="dark"] .pl-err{color:#fca5a5}
.pl-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:12px 24px 18px}
.pl-note{margin:0;flex:1 1 220px;font-size:13px;line-height:1.45;color:var(--ov-sec)}
.pl-no,.ov a.pl-link,.pl-self{min-height:44px;padding:0 4px;border:0;background:none;color:var(--ov-sec);font:inherit;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center}
.pl-no:hover{color:var(--text)}
.ov a.pl-link,.pl-self{color:var(--ov-accent) !important;font-weight:700}
:root[data-theme="dark"] .ov a.pl-link,:root[data-theme="dark"] .pl-self{color:#7ed321 !important}
.pl-done-head{display:flex;gap:14px;align-items:flex-start}
.pl-done-head .pl-ic{flex:none}
.pl-row{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--ov-div)}
.pl-row:last-child{border-bottom:0}
.pl-when{width:64px;flex:none;font-size:13px;font-weight:700;color:var(--ov-pos)}
.pl-row.is-off{opacity:.7}
.pl-row.is-failed .pl-why{color:#b91c1c;font-weight:600}
:root[data-theme="dark"] .pl-row.is-failed .pl-why{color:#fca5a5}
.pl-row-acts{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px}
/* Review and "Otra idea": the Happy Hour sheet's shell */
.hh-sheet.pl-sheet{padding-bottom:0}
.pl-sh-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.pl-sh-t{margin:0;font-size:19px;font-weight:700;color:var(--text)}
.pl-x{width:44px;height:44px;flex:none;border:0;background:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px}
.pl-x:hover{background:var(--panel-2)}
.pl-cards,.pl-alts{display:flex;flex-direction:column;gap:12px}
.pl-card{border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
.pl-card.is-off{opacity:.75;border-style:dashed}
.pl-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pl-card-top .pl-kick{text-transform:uppercase;letter-spacing:.04em}
.pl-pub{font-size:12px;font-weight:700;color:var(--ov-pos)}
.pl-switch{width:48px;height:30px;flex:none;border:0;border-radius:15px;background:var(--line-strong);padding:3px;cursor:pointer;display:flex}
.pl-switch span{width:24px;height:24px;border-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s}
.pl-switch[aria-checked="true"]{background:var(--ov-accent)}
.pl-switch[aria-checked="true"] span{transform:translateX(18px)}
.pl-prev{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.pl-msg{font-size:14px;line-height:1.45;color:var(--ov-sec)}
.pl-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pl-chips>span:not(.pl-sug){font-size:12px;padding:5px 9px;border-radius:999px;background:var(--panel-2);color:var(--text-2)}
.pl-card-acts{display:flex;gap:8px}
.pl-card-acts>*{flex:1}
.pl-sh-foot{position:sticky;bottom:0;background:var(--panel);padding:12px 0 24px;margin-top:12px;border-top:1px solid var(--line)}
.pl-sh-foot .pl-go{width:100%}
.pl-alt{display:flex;flex-direction:column;gap:3px;width:100%;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);font:inherit;text-align:left;cursor:pointer;color:var(--text)}
.pl-alt:hover{background:var(--panel-2)}
.pl-alt.is-cur{border:2px solid var(--ov-accent);background:var(--ov-soft)}
.pl-self-link{margin:12px 0 24px}
@media(max-width:768px){ .pl-head{padding:18px 20px 6px} .pl-items,.pl-rows{padding:6px 20px 0} .pl-acts{padding:14px 20px 0} .pl-foot{padding:12px 20px 16px} .pl-err{margin:12px 20px 0} }
@media(max-width:600px){ .pl-head{padding:16px 16px 6px} .pl-items,.pl-rows{padding:6px 16px 0} .pl-acts{padding:14px 16px 0} .pl-foot{padding:10px 16px 14px} .pl-err{margin:12px 16px 0} .hh-sheet.pl-sheet{padding:0 16px} }

/* ── "2 · Esta semana": the week's promotion with its design (js/plan.js, plWeekHtml) ── */
.pl-wk{padding:6px 24px 0;display:flex;flex-direction:column;gap:12px}
.pl-now{margin:0;padding:12px 14px;border-radius:12px;background:var(--ov-soft);font-size:14px;line-height:1.45;color:var(--text)}
.pl-wk-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.pl-wk-img{flex:0 0 200px;width:200px;aspect-ratio:4/5;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.pl-wk-info{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:10px}
.pl-wk-dl{margin:0;display:flex;flex-direction:column;gap:8px}
.pl-wk-r{display:flex;flex-direction:column;gap:2px}
.pl-wk-r dt{font-size:12px;color:var(--ov-sec)}
.pl-wk-r dd{margin:0;font-size:14px;line-height:1.45;color:var(--text)}
.pl-wk-r dd.is-quote{font-style:italic}
.pl-acts.pl-wk-acts{flex-direction:row;flex-wrap:wrap}
.pl-wk-acts .pl-go{flex:1 1 200px;padding:0 20px}

/* ── "Tu plan de lealtad": 1 · Tu base and 3 · Cómo va (js/loyalty.js) ── */
.lp{border-color:var(--ov-accent);box-shadow:0 0 0 1px var(--ov-accent) inset}
.lp-top{padding:22px 24px 4px}
.lp-title{margin:0;font-size:24px;font-weight:700;line-height:1.2;color:var(--text)}
.lp-sub{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--ov-sec)}
#lpBase{padding:12px 24px 20px}
.lp-loading{margin:4px 0 12px;font-size:14px;color:var(--ov-sec)}
.lp-bhead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.lp-count{font-size:18px;font-weight:700;color:var(--text)}
.lp-all,.lp-b1{min-height:44px;padding:0 16px;border:0;border-radius:12px;background:var(--ov-accent);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.lp-all:hover,.lp-b1:hover{background:var(--ov-accent-h)}
.lp-b2{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text) !important;font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}
.lp-b2:hover{background:var(--panel-2)}
.lp-all:disabled,.lp-b1:disabled,.lp-b2:disabled{opacity:.55;cursor:default}
.lp-bar{height:6px;border-radius:3px;background:var(--ov-track);overflow:hidden;margin-bottom:12px}
.lp-bar i{display:block;height:100%;background:var(--ov-bar);border-radius:3px}
.lp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.lp-row{display:flex;gap:12px;padding:14px;border-bottom:1px solid var(--ov-div)}
.lp-row:last-child{border-bottom:0}
.lp-row.is-open{background:var(--ov-page)}
.lp-wait{height:72px;background:var(--panel-2);animation:kdPulse 1.2s ease-in-out infinite}
.lp-thumb{width:56px;height:70px;flex:none;border-radius:8px;object-fit:cover;background:var(--panel-2)}
.lp-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.lp-rtop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lp-name{font-size:15px;font-weight:700;color:var(--text)}
.lp-chip{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.lp-chip.is-on{background:var(--ov-soft);color:var(--ov-pos)}
.lp-chip.is-prop{background:#fdf0dc;color:#7a4106}
.lp-chip.is-paused{background:var(--panel-2);color:var(--text-2)}
:root[data-theme="dark"] .lp-chip.is-prop{background:rgba(251,191,36,.18);color:#fcd34d}
.lp-rule{font-size:13px;line-height:1.45;color:var(--ov-sec)}
.lp-quote{font-size:13px;line-height:1.45;color:var(--text);font-style:italic}
.lp-acts{display:flex;flex-wrap:wrap;gap:8px;padding-top:2px}
.lp-msg{margin:10px 0 0;font-size:14px;font-weight:600;color:var(--ov-pos)}
.lp-msg:empty{display:none}
/* Reviewing one proposal (in the plan's sheet) */
.lp-why{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:var(--ov-soft);font-size:14px;line-height:1.45;color:var(--text)}
.lp-f{display:flex;flex-direction:column;gap:8px;margin:0 0 18px}
.lp-fl{font-size:14px;font-weight:700;color:var(--text)}
.lp-fl.lp-sub{font-weight:600;margin:4px 0 0}
.lp-note{font-size:12px;color:var(--text-2)}
.lp-pchips{display:flex;flex-wrap:wrap;gap:8px}
.lp-pchip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--ov-btn-line);background:var(--panel);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.lp-pchip.on{background:var(--text);border-color:var(--text);color:var(--panel)}
.lp-pchip.is-other{border-style:dashed}
.lp-in{width:100%;box-sizing:border-box;border:1px solid var(--ov-btn-line);border-radius:12px;padding:12px;font:inherit;font-size:15px;line-height:1.45;color:var(--text);background:var(--panel)}
textarea.lp-in{resize:vertical}
.lp-f.lp-step{flex-direction:row;align-items:center;justify-content:space-between}
.lp-stepper{display:flex;align-items:center;gap:4px}
.lp-stepper button{width:44px;height:44px;border-radius:12px;border:1px solid var(--ov-btn-line);background:var(--panel);color:var(--text);font-size:20px;cursor:pointer}
.lp-stepper output{min-width:36px;text-align:center;font-size:20px;font-weight:700;color:var(--text)}
.lp-photo img{display:block;width:96px;aspect-ratio:4/5;object-fit:cover;border-radius:10px;border:3px solid var(--text)}
.lp-upload{position:relative;align-self:flex-start}
.lp-file{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}
.lp-upload:focus-within{outline:2px solid var(--ov-accent);outline-offset:2px}
.lp-notif{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px}
.lp-notif-ic{width:40px;height:40px;flex:none;border-radius:10px;background:var(--ov-accent)}
.lp-notif div{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13px;line-height:1.4;color:var(--ov-sec)}
.lp-notif b{color:var(--text)}
.lp-wiz{margin:0 0 4px}
.pl-no.lp-no{width:100%;justify-content:center;margin-top:4px}
/* 3 · Cómo va */
#lpHowBody{padding:4px 24px 20px;display:flex;flex-direction:column;gap:14px}
.lp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lp-stat{background:var(--ov-page);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}
.lp-stat b{font-size:24px;font-weight:700;color:var(--text)}
.lp-stat b.is-pos{color:var(--ov-pos)}
.lp-stat span{font-size:12px;line-height:1.35;color:var(--ov-sec)}
.lp-res{list-style:none;margin:0;padding:0}
.lp-res li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--ov-div);font-size:14px}
.lp-res li:last-child{border-bottom:0}
.lp-res li span:first-child{font-weight:600;color:var(--text)}
.lp-res li span:last-child{color:var(--ov-sec);text-align:right}
.lp-rec{background:#141414;color:#fff;border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
:root[data-theme="dark"] .lp-rec{background:var(--panel-2)}
.lp-rec-k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#86efac}
.lp-rec p{margin:0;font-size:15px;font-weight:700;line-height:1.45}
.lp-rec-b{align-self:flex-start;min-height:44px;padding:0 16px;border:0;border-radius:12px;background:#fff;color:#141414;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
/* Kiiwis proposes the Happy Hour (index.html, hhAiRender) */
.hh-ai{margin:0 0 20px}
.hh-ai-h{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:14px;font-weight:700;color:var(--ov-pos)}
.hh-ai-cards{display:flex;flex-direction:column;gap:10px}
.hh-ai-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px;background:var(--panel)}
.hh-ai-card.on{border:2px solid var(--ov-accent);background:var(--ov-soft)}
.hh-ai-offer{font-size:16px;font-weight:700;color:var(--text)}
.hh-ai-when{font-size:13px;font-weight:700;color:var(--text)}
.hh-ai-why{font-size:13px;line-height:1.45;color:var(--ov-sec)}
.hh-ai-use{align-self:flex-start;margin-top:6px;min-height:40px;padding:0 16px;border:0;border-radius:10px;background:var(--ov-accent);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.hh-ai-card.on .hh-ai-use{background:var(--panel);color:var(--ov-pos);border:1px solid var(--ov-accent)}
.hh-ai-more,.hh-ai-ask{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:8px;padding:0 14px;border:1px solid var(--ov-btn-line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.hh-ai-ask{margin-top:0;width:100%;justify-content:center;color:var(--ov-pos)}
.hh-ai-note{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--ov-sec)}
.hh-ai-note:empty{display:none}
.hh-ai-wait{height:120px;border-radius:14px;margin-top:10px;background:var(--panel-2);animation:kdPulse 1.2s ease-in-out infinite}

/* "Tu mes en Kiiwis" (js/loyalty.js, lpRenderReport) */
#mrBody{padding:20px 24px 22px;display:flex;flex-direction:column;gap:14px}
.mr-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.mr-top .pl-x{margin:-10px -10px 0 0}
.mr-per{font-size:13px;color:var(--ov-sec)}
.mr-h{margin:0;font-size:20px;font-weight:700;line-height:1.35;color:var(--text)}
.mr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.mr-list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--text)}
.mr-ic{width:24px;height:24px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-top:-1px}
.mr-ic.is-ok{background:var(--ov-soft);color:var(--ov-pos)}
.mr-ic.is-watch{background:#fdf0dc;color:#7a4106}
:root[data-theme="dark"] .mr-ic.is-watch{background:rgba(251,191,36,.18);color:#fcd34d}
.mr-dh{margin:6px 0 0;font-size:15px;font-weight:700;color:var(--text)}
.mr-dec{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.mr-dec li{display:flex;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--ov-page)}
.mr-n{width:28px;height:28px;flex:none;border-radius:14px;background:var(--ov-accent);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.mr-dt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.mr-dt b{font-size:15px;line-height:1.35;color:var(--text)}
.mr-dt p{margin:0;font-size:13px;line-height:1.5;color:var(--ov-sec)}
.mr-dt .lp-acts{padding-top:6px}
.pl-self.mr-open{align-self:flex-start;padding:0}
@media(max-width:600px){ #mrBody{padding:16px 16px 18px} .mr-h{font-size:18px} }
/* Onboarding step 2 as "Tu plan de lealtad" (index.html, obPlanRender) */
.ob-plan{margin:14px 0 0 40px}
.ob-plan .lp-loading{margin:0 0 10px}
.ob2-cta.ob-pl-go{width:100%;margin:16px 0 0;font-family:inherit;cursor:pointer}
.ob2-cta.ob-pl-go:disabled{opacity:.6;cursor:progress}
.ob-pl-self{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:14px;font-weight:600;color:var(--ov-sec) !important}
.lp-row.ob-pl-off{opacity:.6}
.lp-msg.ob-pl-msg{color:var(--text)}
@media(max-width:768px){ .ob-plan{margin-left:0} }
@media(max-width:768px){ .lp-top{padding:18px 20px 4px} #lpBase{padding:10px 20px 16px} #lpHowBody{padding:4px 20px 18px} .pl-wk{padding:6px 20px 0} }
@media(max-width:600px){ .lp-top{padding:16px 16px 4px} #lpBase{padding:10px 16px 14px} #lpHowBody{padding:4px 16px 16px} .pl-wk{padding:6px 16px 0} .pl-wk-img{flex-basis:100%;width:100%} .lp-stat b{font-size:20px} }
