/* AGLO Negocios — operación diaria del negocio (ops.js, 29-sep-2026, Claude). */
.o-panel { margin-bottom: 1rem; }
.o-panel .ag-panel-head h2 { font-size: 1rem; margin: 0; }
.o-panel .ag-list-item { gap: .75rem; }
.o-panel .ag-list-item .btn { min-height: 42px; flex: none; }
@media (max-width: 575.98px) { .o-panel .ag-list-item { flex-wrap: wrap; } .o-panel .ag-list-item .btn { width: 100%; } }
.o-error { color: var(--ag-danger); font-size: .875rem; margin: .75rem 0 0; }
.o-error:empty { display: none; }
.o-dialog { width: min(620px, calc(100vw - 2rem)); }
.o-dialog .form-label { display: block; width: 100%; font-weight: 600; font-size: .875rem; }
.o-dialog .form-label > .form-control, .o-dialog .form-label > .form-select { margin-top: .35rem; font-weight: 400; }
.o-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.o-grid2 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 992px) { .o-grid2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#content .ag-stats { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.o-packs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .9rem; }
.o-pack .ag-panel-body, .o-recipe .ag-panel-body { display: grid; gap: .45rem; }
.o-pack-top { display: flex; justify-content: space-between; align-items: flex-start; gap: .5rem; }
.o-pack .btn, .o-recipe .btn { justify-self: start; min-height: 42px; }
.o-recipe.is-off { opacity: .6; }
.o-meter svg { display: block; width: 100%; height: 10px; }
.o-meter-track { fill: var(--ag-surface-2); }
.o-pack-nums { margin: 0; font-size: .9rem; }
.o-lines { list-style: none; margin: .25rem 0; padding: 0; display: grid; gap: .3rem; }
.o-lines li { display: flex; justify-content: space-between; gap: .75rem; padding: .4rem .6rem; border-radius: var(--ag-r-sm); background: var(--ag-bg); font-size: .875rem; }
.o-lines b { white-space: nowrap; font-variant-numeric: tabular-nums; }
.o-rline { display: grid; grid-template-columns: minmax(0, 1fr) 130px; gap: .6rem; align-items: center; padding: .35rem 0; border-bottom: 1px solid var(--ag-line); }
.o-rline .form-check { display: flex; gap: .6rem; align-items: flex-start; margin: 0; }
.o-rline .form-check-input { margin-top: .2rem; flex: none; }
.o-rline input.form-control { min-height: 42px; }
.o-day input { min-height: 44px; }
.o-period { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.o-period input { min-height: 44px; }
.o-dialog .acc-row { display: flex; gap: .5rem; align-items: center; margin-bottom: .5rem; }
.o-dialog .acc-row > span { width: 64px; flex: none; font-size: .78rem; font-weight: 700; color: var(--ag-muted); text-transform: uppercase; }
.o-dialog .acc-row code { flex: 1; min-width: 0; padding: .5rem .7rem; border-radius: var(--ag-r-sm); background: var(--ag-bg); border: 1px solid var(--ag-line); overflow-wrap: anywhere; font-size: .82rem; }
.o-promos { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: .9rem; margin-bottom: 1rem; }
.o-promo.is-off { opacity: .6; }
.o-promo h3 { font-size: 1.05rem; margin: .4rem 0 .2rem; }
.o-promo-top { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.o-promo-badge { display: inline-block; padding: .25rem .7rem; border-radius: 999px; background: linear-gradient(135deg, #ffe4ec, #fff1e6); color: #9d2a5a; font-weight: 800; font-size: .82rem; }
.o-coupon { display: inline-flex; align-items: center; gap: .5rem; margin: .4rem 0; padding: .35rem .7rem; border: 2px dashed var(--ag-primary-border); border-radius: 10px; }
.o-coupon span { font-size: .72rem; font-weight: 700; color: var(--ag-muted); text-transform: uppercase; }
.o-coupon b { font-family: ui-monospace, monospace; letter-spacing: .06em; color: var(--ag-primary-text); }
.o-sends { display: grid; gap: .3rem; max-height: 60vh; overflow: auto; }
.o-send.is-sent { opacity: .65; }
.o-hero { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem; padding: 1.5rem; margin-bottom: 1rem; border-radius: 22px; background: linear-gradient(135deg, var(--ag-primary-subtle), var(--ag-surface) 75%); border: 1px solid var(--ag-line); }
.o-hero .ag-pretitle { text-transform: none; }
.o-hero h1 { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; margin: .15rem 0 .3rem; }
.o-hero p { margin: 0; color: var(--ag-ink-2); }
.o-hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.o-hero-actions .btn { min-height: 44px; display: inline-flex; align-items: center; gap: .4rem; }
.o-appt time { width: 76px; flex: none; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--ag-ink-2); }
.o-appt.is-next { background: var(--ag-primary-subtle); border-radius: 12px; }
.o-setup { margin: 0; padding-left: 1.2rem; display: grid; gap: .4rem; }
.o-setup a { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; }
.o-offers { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.o-offer { display: grid; gap: .3rem; padding: .9rem; border-radius: 14px; border: 1px solid #f6d7e1; background: linear-gradient(135deg, #fff5f8, #fff); }
.o-offer .o-promo-badge { justify-self: start; }
.o-offer small { color: var(--ag-muted); }
.o-offer .btn { justify-self: start; display: inline-flex; gap: .35rem; align-items: center; margin-top: .3rem; }

/* Servicios y productos (30-sep-2026) */
.o-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.o-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.o-chip { border: 1px solid var(--ag-line); background: var(--ag-surface); border-radius: 999px; padding: .4rem .85rem; font: inherit; font-weight: 600; font-size: .88rem; color: var(--ag-ink-2); }
.o-chip span { color: var(--ag-muted); font-weight: 500; margin-left: .15rem; }
.o-chip[aria-pressed="true"] { background: var(--ag-primary); border-color: var(--ag-primary); color: #fff; }
.o-chip[aria-pressed="true"] span { color: rgba(255,255,255,.8); }
.o-search { flex: 0 1 260px; }
.o-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.o-item { display: flex; flex-direction: column; border: 1px solid var(--ag-line); border-radius: 18px; background: var(--ag-surface); overflow: hidden; box-shadow: var(--ag-shadow-sm); }
.o-item.is-off { opacity: .6; }
.o-item-img { position: relative; aspect-ratio: 4 / 3; background: linear-gradient(135deg, var(--ag-primary-subtle), #fff); display: flex; align-items: center; justify-content: center; }
.o-item-img img { width: 100%; height: 100%; object-fit: cover; }
.o-item-ph { font-size: 2.6rem; font-weight: 800; color: var(--ag-primary-text); opacity: .55; }
.o-item-kind { position: absolute; top: .6rem; left: .6rem; padding: .2rem .6rem; border-radius: 999px; background: rgba(255,255,255,.92); font-size: .72rem; font-weight: 700; }
.o-item-body { display: flex; flex-direction: column; gap: .3rem; padding: .85rem 1rem 1rem; flex: 1; }
.o-item-body p { margin: 0; font-size: .84rem; color: var(--ag-muted); }
.o-item-cat { font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ag-primary-text); }
.o-item-meta { display: flex; align-items: center; gap: .75rem; margin: .2rem 0 .4rem; }
.o-item-meta b { font-size: 1.05rem; }
.o-item-meta span { display: inline-flex; align-items: center; gap: .25rem; font-size: .82rem; color: var(--ag-muted); }
.o-item .o-actions { margin-top: auto; }
.o-kind { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.o-kind-opt input { position: absolute; opacity: 0; }
.o-kind-opt span { display: grid; gap: .1rem; padding: .75rem .9rem; border: 1.5px solid var(--ag-line); border-radius: 14px; cursor: pointer; }
.o-kind-opt small { color: var(--ag-muted); }
.o-kind-opt input:checked + span { border-color: var(--ag-primary); background: var(--ag-primary-subtle); }
.o-kind-opt input:focus-visible + span { outline: 2px solid var(--ag-primary); outline-offset: 2px; }
.o-photo { display: flex; gap: 1rem; align-items: center; }
.o-photo-prev { flex: 0 0 96px; height: 96px; border-radius: 14px; background: var(--ag-surface-2, #f4f6f8); display: flex; align-items: center; justify-content: center; overflow: hidden; color: var(--ag-muted); }
.o-photo-prev img { width: 100%; height: 100%; object-fit: cover; }
.o-photo .btn { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; }

/* Promociones y bonos v2 (30-sep-2026) */
.o-sec { margin: 1.4rem 0; }
.o-sec-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.o-h2 { font-size: 1.1rem; font-weight: 800; margin: 0 0 .8rem; }
.o-tpls { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .7rem; }
.o-tpl { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; text-align: left; padding: 1rem; border-radius: 18px; border: 1px solid transparent; font: inherit; color: var(--ag-ink); transition: transform .15s, box-shadow .15s; }
.o-tpl:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, .08); }
.o-tpl-ico { font-size: 1.7rem; line-height: 1; margin-bottom: .35rem; }
.o-tpl small { color: var(--ag-muted); font-size: .82rem; }
.o-tpl.is-rose { background: #fdecef; } .o-tpl.is-gold { background: #fdf3dc; } .o-tpl.is-violet { background: #efe9fb; }
.o-tpl.is-teal { background: #e3f5f2; } .o-tpl.is-blue { background: #e7f0fd; } .o-tpl.is-green { background: #e6f6e9; }
.o-tickets { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: .9rem; }
.o-ticket { position: relative; display: flex; border-radius: 18px; background: var(--ag-surface); box-shadow: 0 1px 0 var(--ag-line), 0 10px 26px rgba(0, 0, 0, .06); overflow: hidden; }
.o-ticket.is-off { opacity: .6; }
.o-ticket-main { flex: 1; min-width: 0; padding: 1rem 1.1rem; border-left: 6px solid var(--ag-primary); }
.o-ticket-value { display: inline-block; font-weight: 800; font-size: .8rem; color: var(--ag-primary-text); background: var(--ag-primary-subtle); padding: .2rem .65rem; border-radius: 999px; margin-bottom: .45rem; }
.o-ticket h3 { font-size: 1.05rem; font-weight: 800; margin: 0 0 .2rem; }
.o-ticket p { margin: 0 0 .35rem; font-size: .88rem; color: var(--ag-ink-2); }
.o-ticket small { color: var(--ag-muted); font-size: .8rem; }
.o-ticket .o-actions { margin-top: .5rem; align-items: center; }
.o-ticket-code { flex: 0 0 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: .8rem .5rem; border-left: 2px dashed var(--ag-line); background: var(--ag-primary-subtle); text-align: center; }
.o-ticket-code small { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; }
.o-ticket-code b { font-family: ui-monospace, Menlo, monospace; font-size: .85rem; color: var(--ag-primary-text); overflow-wrap: anywhere; }
.o-ticket.is-preview { box-shadow: 0 10px 26px rgba(0, 0, 0, .1); }
.o-prev { margin-bottom: .2rem; }
.o-prev > small { display: block; text-align: center; margin-top: .35rem; }
.o-vbadge { flex: 0 0 auto; min-width: 72px; text-align: center; font-weight: 800; font-size: .85rem; padding: .45rem .5rem; border-radius: 12px; background: #fdf3dc; color: #8a5a00; }
.o-seg { display: inline-flex; border: 1.5px solid var(--ag-line); border-radius: 999px; padding: 3px; }
.o-seg input { position: absolute; opacity: 0; }
.o-seg span { display: block; padding: .35rem .9rem; border-radius: 999px; font-weight: 700; font-size: .88rem; cursor: pointer; }
.o-seg input:checked + span { background: var(--ag-primary); color: #fff; }
.o-seg input:focus-visible + span { outline: 2px solid var(--ag-primary); outline-offset: 2px; }
.o-gift { position: relative; display: grid; gap: .15rem; padding: 1.2rem 1.3rem; border-radius: 20px; color: #fff; background: radial-gradient(420px 180px at 100% 0%, rgba(255, 255, 255, .25), transparent 60%), linear-gradient(135deg, #d4507a, #8e3fb8); box-shadow: 0 16px 34px rgba(142, 63, 184, .3); overflow: hidden; }
.o-gift::after { content: "🎁"; position: absolute; right: 1rem; top: .8rem; font-size: 2rem; opacity: .9; }
.o-gift span { font-size: .78rem; font-weight: 700; opacity: .9; text-transform: uppercase; letter-spacing: .06em; }
.o-gift strong { font-size: 2.1rem; font-weight: 800; line-height: 1.1; }
.o-gift em { font-style: normal; font-weight: 700; }
.o-gift small { opacity: .9; }
.o-gift b { margin-top: .5rem; justify-self: start; font-family: ui-monospace, Menlo, monospace; letter-spacing: .12em; background: rgba(255, 255, 255, .2); padding: .3rem .7rem; border-radius: 10px; }
.o-gift.is-done b { font-size: 1.2rem; background: #fff; color: #8e3fb8; }
.o-stepk { font-weight: 800; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ag-primary-text); margin: .4rem 0 .5rem; }
.o-cards2 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.o-aud { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.o-card-opt input { position: absolute; opacity: 0; }
.o-card-opt span { display: grid; gap: .1rem; height: 100%; padding: .7rem .85rem; border: 1.5px solid var(--ag-line); border-radius: 14px; cursor: pointer; }
.o-card-opt small { color: var(--ag-muted); font-size: .8rem; }
.o-card-opt input:checked + span { border-color: var(--ag-primary); background: var(--ag-primary-subtle); }
.o-card-opt input:disabled + span { opacity: .5; cursor: not-allowed; }
.o-card-opt input:focus-visible + span { outline: 2px solid var(--ag-primary); outline-offset: 2px; }
.o-vars { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .4rem; }
.o-var { border: 1px dashed var(--ag-line-strong); background: var(--ag-surface); border-radius: 8px; padding: .15rem .45rem; font: inherit; font-size: .75rem; font-family: ui-monospace, Menlo, monospace; color: var(--ag-primary-text); }
.o-wa { margin-top: .6rem; padding: .9rem; border-radius: 16px; background: #efeae2; }
.o-wa-bubble { max-width: 88%; margin-left: auto; padding: .6rem .8rem; border-radius: 12px 12px 2px 12px; background: #d9fdd3; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); white-space: pre-line; font-size: .9rem; }
.o-progress { width: 100%; height: 8px; appearance: none; border: 0; border-radius: 99px; overflow: hidden; background: var(--ag-surface-2, #eef2f5); }
.o-progress::-webkit-progress-bar { background: var(--ag-surface-2, #eef2f5); }
.o-progress::-webkit-progress-value { background: #25d366; border-radius: 99px; }
.o-progress::-moz-progress-bar { background: #25d366; border-radius: 99px; }
.o-more summary { cursor: pointer; font-weight: 600; color: var(--ag-primary-text); }
@media (max-width: 575px) { .o-aud, .o-cards2 { grid-template-columns: 1fr; } .o-tpls { grid-template-columns: 1fr 1fr; } .o-tickets { grid-template-columns: 1fr; } }

.o-hours { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.1rem; margin-bottom: .8rem; border-radius: 16px; background: var(--ag-primary-subtle); }
.o-hours > .ico { width: 1.6rem; height: 1.6rem; color: var(--ag-primary-text); flex: 0 0 auto; }
.o-hours p { margin: .2rem 0 .6rem; font-size: .9rem; }
@media (max-width: 575px) {
  #content .ag-stats, .o-view .ag-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  #content .ag-stat { padding: .8rem .85rem; min-width: 0; }
  #content .ag-stat-value { font-size: 1.3rem; overflow-wrap: anywhere; }
  .o-ticket { flex-direction: column; }
  .o-ticket-code { flex: 0 0 auto; flex-direction: row; gap: .6rem; border-left: 0; border-top: 2px dashed var(--ag-line); padding: .6rem 1rem; justify-content: flex-start; }
}

/* Pedir lo de siempre (30-sep-2026) */
.o-ros { display: grid; gap: .6rem; margin-bottom: 1rem; }
.o-ro { display: grid; grid-template-columns: auto 64px minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .7rem .9rem; border: 1.5px solid var(--ag-line); border-radius: 16px; background: var(--ag-surface); }
.o-ro.is-on { border-color: var(--ag-primary); box-shadow: 0 0 0 3px var(--ag-primary-subtle); }
.o-ro.is-off { opacity: .55; }
.o-ro-check input { width: 1.3rem; height: 1.3rem; accent-color: var(--ag-primary); }
.o-ro-img { width: 64px; height: 64px; border-radius: 12px; background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid var(--ag-line); }
.o-ro-img img { width: 100%; height: 100%; object-fit: contain; }
.o-ro-main { display: grid; gap: .1rem; min-width: 0; }
.o-ro-main strong { font-size: .95rem; }
.o-ro-main small { color: var(--ag-muted); font-size: .8rem; }
.o-ro-tag { justify-self: start; font-size: .72rem; font-weight: 700; color: #a1261a; background: #fde8e5; padding: .1rem .55rem; border-radius: 999px; }
.o-ro-qty { display: flex; align-items: center; border: 1.5px solid var(--ag-line); border-radius: 999px; overflow: hidden; }
.o-ro-qty button { width: 36px; height: 38px; border: 0; background: var(--ag-surface-2, #f4f6f8); font-size: 1.2rem; font-weight: 700; }
.o-ro-qty input { width: 56px; border: 0; text-align: center; font-weight: 700; -moz-appearance: textfield; }
.o-ro-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.o-ro-bar { position: sticky; bottom: 1rem; z-index: 5; display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; justify-content: space-between; padding: .9rem 1.1rem; border-radius: 18px; background: var(--ag-surface); box-shadow: 0 16px 40px rgba(0, 0, 0, .15); border: 1px solid var(--ag-line); }
.o-ro-bar > div { display: grid; }
.o-ro-bar strong { font-size: 1.35rem; }
.o-ro-bar small { color: var(--ag-muted); }
.o-ro-note { flex: 1 1 200px; }
@media (max-width: 575px) { .o-ro { grid-template-columns: auto 52px minmax(0, 1fr); } .o-ro-img { width: 52px; height: 52px; } .o-ro-qty { grid-column: 2 / -1; justify-self: end; } .o-ro-bar { bottom: 5rem; } .o-ro-bar .btn { width: 100%; } }

/* Mi negocio en números (30-sep-2026) */
.o-range { display: flex; gap: .4rem; align-items: center; }
.o-range input { max-width: 170px; }
.o-bars { display: flex; align-items: flex-end; gap: 3px; height: 170px; padding-top: .5rem; overflow-x: auto; }
.o-bar { flex: 1 0 14px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 2px; }
.o-bar i { display: block; width: 100%; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, #3cc4a0, var(--ag-primary)); min-height: 3px; }
.o-bar small { font-size: .62rem; color: var(--ag-muted); }
.o-hb { display: grid; gap: .25rem; margin-bottom: .65rem; }
.o-hb span { display: flex; justify-content: space-between; gap: .6rem; font-weight: 600; font-size: .9rem; }
.o-hb small { color: var(--ag-muted); font-weight: 500; }
.o-hb b { display: block; height: 8px; border-radius: 99px; background: var(--ag-surface-2, #eef2f5); overflow: hidden; }
.o-hb b i { display: block; height: 100%; border-radius: 99px; background: var(--ag-primary); }
.o-mini { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.o-mini span { display: grid; padding: .7rem .8rem; border-radius: 12px; background: var(--ag-surface-2, #f4f6f8); font-size: .8rem; color: var(--ag-muted); }
.o-mini b { font-size: 1.15rem; color: var(--ag-ink); }

/* Reseñas y resultados (30-sep-2026) */
.o-revs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .8rem; }
.o-rev { border: 1px solid var(--ag-border); border-radius: 14px; padding: .9rem 1rem; display: grid; gap: .45rem; background: var(--ag-surface); }
.o-rev.is-new { border-color: var(--ag-warning-border, #f2c46d); box-shadow: 0 0 0 3px rgba(242, 196, 109, .18); }
.o-rev p { margin: 0; }
.o-rev small { color: var(--ag-text-muted); }
.o-rev-top { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.o-rev-act { display: flex; flex-wrap: wrap; gap: .4rem; }
.o-stars { color: #f5a623; letter-spacing: .05em; font-size: 1.05rem; }
.o-inline { display: flex; gap: .5rem; flex-wrap: wrap; }
.o-inline input { flex: 1 1 260px; }
.o-gals { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .9rem; }
.o-gal { margin: 0; border: 1px solid var(--ag-border); border-radius: 14px; overflow: hidden; background: var(--ag-surface); }
.o-gal.is-off img { opacity: .45; }
.o-gal-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.o-gal-pair img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }
.o-gal figcaption { padding: .6rem .75rem; display: grid; gap: .2rem; }
.o-gal figcaption small { color: var(--ag-text-muted); }
.o-gal figcaption span { display: flex; gap: .3rem; flex-wrap: wrap; }

/* Inicio: tarjeta «Tu semana» (1-oct-2026) */
.o-top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-bottom: 1rem; }
@media (min-width: 1100px) { .o-top { grid-template-columns: minmax(0, 1.25fr) minmax(360px, 1fr); } .o-top.is-solo { grid-template-columns: 1fr; } }
.o-top > .o-hero { margin-bottom: 0; flex-direction: column; align-items: flex-start; justify-content: center; }
.o-week { border-radius: 22px; padding: 1.25rem 1.4rem; background: var(--ag-surface); border: 1px solid var(--ag-line); box-shadow: var(--ag-shadow); display: grid; gap: .9rem; }
.o-week-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 1.25rem; }
.o-week-top > div { display: grid; gap: .15rem; }
.o-week-k { font-size: .82rem; font-weight: 600; color: var(--ag-muted); }
.o-week-v { font-size: clamp(1.6rem, 3vw, 2.05rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.o-week-d { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; font-weight: 600; color: var(--ag-muted); }
.o-week-d.is-up { color: var(--ag-success); } .o-week-d.is-down { color: var(--ag-danger); }
.o-week-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; font-size: .86rem; color: var(--ag-ink-2); }
.o-week-facts strong { color: var(--ag-ink); }
.o-wbars { display: grid; grid-template-columns: repeat(7, 1fr); align-items: end; gap: .45rem; height: 96px; }
.o-wb { display: grid; grid-template-rows: 1fr auto; height: 100%; text-align: center; }
.o-wb-bar { align-self: end; width: 100%; min-height: 4px; border-radius: 6px 6px 3px 3px; background: var(--ag-primary-border); transition: height .5s cubic-bezier(.2, .8, .2, 1); }
.o-wb.is-now .o-wb-bar { background: linear-gradient(180deg, #14b8a6, var(--ag-primary)); }
.o-wb small { font-size: .72rem; color: var(--ag-muted); padding-top: .3rem; }
@media (max-width: 575.98px) { .o-stats4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .o-stats4 .ag-stat-value { font-size: 1.25rem; } }

/* Términos y privacidad (1-oct-2026) */
.o-legals { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: .9rem; margin-bottom: 1rem; }
.o-legal { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.2rem; border: 1px solid var(--ag-line); border-radius: 16px; background: var(--ag-surface); color: var(--ag-ink); text-decoration: none; box-shadow: var(--ag-shadow-sm); transition: border-color .15s, transform .15s; }
.o-legal:hover { border-color: var(--ag-primary-border); transform: translateY(-1px); }
.o-legal > span:nth-child(2) { flex: 1; display: grid; gap: .15rem; }
.o-legal small { color: var(--ag-muted); }
.o-legal-ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--ag-primary-subtle); color: var(--ag-primary); flex: none; }
.o-legal-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.o-legal-list li { display: flex; gap: .6rem; align-items: flex-start; }
.o-legal-list .ico { color: var(--ag-success-dot); flex: none; margin-top: .2rem; }

/* Recordatorios automáticos (1-oct-2026) */
.o-auto { display: grid; gap: .9rem; padding: 1.1rem 1.25rem; margin-bottom: 1rem; border: 1px solid var(--ag-line); border-radius: 18px; background: var(--ag-surface); box-shadow: var(--ag-shadow-sm); }
.o-auto.is-on { border-color: var(--ag-success-line); background: linear-gradient(135deg, #f0fdf4, var(--ag-surface) 60%); }
.o-auto-main { display: flex; gap: .9rem; align-items: flex-start; }
.o-auto-main h2 { font-size: 1.05rem; font-weight: 750; margin: 0 0 .2rem; }
.o-auto-main p { margin: 0 0 .2rem; color: var(--ag-ink-2); }
.o-auto-ico { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: #dcfce7; color: #15803d; }
.o-auto-form { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.o-auto-form select { width: auto; min-width: 170px; }
.o-auto-form .form-switch { display: flex; align-items: center; gap: .5rem; font-weight: 650; }
.o-auto-form .form-switch .form-check-input { width: 2.6em; height: 1.4em; margin: 0; }
.o-auto-log { list-style: none; margin: 0; padding: .6rem 0 0; border-top: 1px solid var(--ag-line); display: grid; gap: .35rem; font-size: .88rem; }
.o-auto-log li { display: flex; justify-content: space-between; gap: .5rem; align-items: center; }

/* Validar código y «Deben volver» (1-oct-2026) */
.o-redeem { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; max-width: 640px; }
.o-redeem input { flex: 1 1 260px; font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.o-rcard { display: flex; gap: 1rem; align-items: flex-start; max-width: 640px; padding: 1.25rem; border-radius: 18px; border: 1px solid var(--ag-line); background: var(--ag-surface); box-shadow: var(--ag-shadow); }
.o-rcard.is-valid { border-color: var(--ag-success-line); background: linear-gradient(135deg, #f0fdf4, var(--ag-surface) 60%); }
.o-rcard.is-expired, .o-rcard.is-unknown, .o-rcard.is-cancelled { border-color: var(--ag-danger-line); }
.o-rcard-ico { width: 52px; height: 52px; flex: none; border-radius: 14px; display: grid; place-items: center; background: var(--ag-surface-2); }
.o-rcard.is-valid .o-rcard-ico { background: #dcfce7; color: #15803d; } .o-rcard-ico .ico { width: 26px; height: 26px; }
.o-rcard-main { display: grid; gap: .35rem; } .o-rcard-main h2 { font-size: 1.3rem; margin: .2rem 0 0; } .o-rcard-main p { margin: 0; } .o-rcard-main .btn { justify-self: start; margin-top: .5rem; }
.o-back { gap: .75rem; } .o-back-act { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; } .o-late { color: var(--ag-danger); }
