/* ===== TOKENS ===== */
:root{
  --ink:#123526; --ink-soft:#5b6b60; /* texto secundario: debe ser legible sobre blanco */ --gold:#feb523; --gold-soft:#e6faee;
  --coral:#123526; --green:#123526; --bg:#faf8f4; --card:#ffffff;
  --radius:16px; --shadow:0 1px 2px rgba(17,24,20,.04),0 6px 20px rgba(17,24,20,.05); --line:#ebeeeb; --text:#1c211e; --muted:#6b746e;
  --ease:cubic-bezier(.22,1,.36,1);
  --brand-dark:#123526; --brand-mint:#b98c50; --brand-mint-soft:#e6faee;
  /* Paleta propia de Vandlyn (splash + selector de universidad), distinta del verde de ITAMarket */
  --vandlyn-ink:#3d4a5c; --vandlyn-ink-soft:#7c8a9a; --vandlyn-gold:#c9a97e; --vandlyn-gold-soft:#efe7d8; --vandlyn-bg:#f5f2ec;
}
/* Todo lo que esté dentro de #splash o #step-uni usa la paleta de Vandlyn en vez del verde de ITAMarket */
#splash, #step-uni, #landing{
  --ink:var(--vandlyn-ink); --ink-soft:var(--vandlyn-ink-soft);
  --gold:var(--vandlyn-gold); --gold-soft:var(--vandlyn-gold-soft);
  --coral:var(--vandlyn-ink); --bg:var(--vandlyn-bg);
}
*{box-sizing:border-box;}
img{max-width:100%;}
body{margin:0;font-family:'Inter',sans-serif;background:#fff;color:var(--text);-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Inter',sans-serif;font-weight:500;color:var(--text);margin:0 0 8px;letter-spacing:-.015em;}
.hidden{display:none !important;}
.screen{width:100%;min-height:100vh;min-height:100dvh;}

.brand-mark{font-family:'Fraunces',serif;font-weight:500;font-size:28px;color:var(--ink);}
.brand-mark span{color:var(--coral);}
.brand-mark.small{font-size:20px;}

/* Dentro de la app (post-login) el logo usa la identidad verde de ITAMarket */
.app-topbar .brand-mark, .app-footer .brand-mark{font-family:'Inter',sans-serif;font-weight:600;letter-spacing:-.02em;color:var(--brand-dark);}
.app-topbar .brand-mark span, .app-footer .brand-mark span{font-weight:400;color:var(--brand-dark);}

/* ===== ANIMATIONS ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.fade-in-up{animation:fadeInUp .55s var(--ease) both;}
@keyframes floaty{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-18px) scale(1.04);}}
@keyframes drift{0%{transform:translate(0,0);}50%{transform:translate(20px,-10px);}100%{transform:translate(0,0);}}
@keyframes pulseBar{0%{transform:scaleX(.15);}100%{transform:scaleX(1);}}
@keyframes growUp{from{transform:scaleY(0);}to{transform:scaleY(1);}}
@keyframes drawLine{to{stroke-dashoffset:0;}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes chipPop{0%{transform:scale(.82);}55%{transform:scale(1.14);}100%{transform:scale(1);}}
@keyframes ringOut{from{box-shadow:0 0 0 0 rgba(31,92,67,.35);}to{box-shadow:0 0 0 12px rgba(31,92,67,0);}}
@keyframes bump{0%{transform:scale(1);}40%{transform:scale(1.35);}100%{transform:scale(1);}}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,16px);}to{opacity:1;transform:translate(-50%,0);}}
@keyframes popIn{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:scale(1);}}
@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}

/* ===== SPLASH ===== */
.splash-screen{position:relative;overflow:hidden;background:linear-gradient(160deg,#30406a,#1f2c4d);display:flex;align-items:center;justify-content:center;}
.splash-orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.5;animation:drift 9s ease-in-out infinite;}
.o1{width:280px;height:280px;background:var(--gold);top:10%;left:8%;}
.o2{width:220px;height:220px;background:var(--coral);bottom:8%;right:10%;animation-duration:12s;}
.o3{width:180px;height:180px;background:#7d97e0;top:50%;right:25%;animation-duration:7s;}
.splash-content{position:relative;text-align:center;color:#fff;animation:fadeInUp .8s var(--ease) both;}
.splash-content .brand-mark{color:#fff;font-size:44px;font-weight:400;letter-spacing:-.01em;}
.splash-content .brand-mark span{color:var(--gold);}
.splash-tag{color:#c9d3ee;font-family:'IBM Plex Mono',monospace;letter-spacing:.03em;margin-top:6px;}
.splash-loader{width:180px;height:4px;background:rgba(255,255,255,.15);border-radius:6px;margin:26px auto 0;overflow:hidden;}
.splash-loader-bar{height:100%;background:var(--gold);border-radius:6px;transform-origin:left;animation:pulseBar 1.4s var(--ease) forwards;}

/* ===== LOGO PROVISIONAL VANDLYN ===== */
.vlogo-mark{width:32px;height:32px;display:block;flex:0 0 auto;}
.vlogo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:'Fraunces',serif;font-weight:500;font-size:22px;color:var(--vandlyn-ink);}
.vlogo-light{color:#fff;}
.vlogo-inline{display:inline-flex;align-items:center;gap:8px;}
.vlogo-inline .vlogo-mark{width:26px;height:26px;}
.splash-content .vlogo-mark{width:64px;height:64px;margin:0 auto 14px;}

/* ===== PÁGINA PRINCIPAL (VANDLYN) ===== */
.landing{background:var(--vandlyn-bg);color:var(--vandlyn-ink);}
.landing h1,.landing h2,.landing h3{color:var(--vandlyn-ink);}
.ld-wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 24px;}
.ld-center{text-align:center;}
.ld-nav{position:sticky;top:0;z-index:20;background:rgba(245,242,236,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid #e6e0d4;}
.ld-nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;}
.ld-btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;padding:15px 28px;background:#30406a;color:#fff;font:500 14px 'Inter',sans-serif;cursor:pointer;text-decoration:none;transition:transform .15s var(--ease),background .15s;}
.ld-btn:hover{background:#1f2c4d;transform:translateY(-1px);}
.ld-btn-sm{padding:10px 20px;font-size:13px;}
.ld-btn-ghost{background:transparent;color:#30406a;box-shadow:inset 0 0 0 1.5px #30406a;}
.ld-btn-ghost:hover{background:#30406a;color:#fff;}
.ld-hero{padding:96px 0 64px;background:radial-gradient(ellipse at 50% 0%,var(--vandlyn-gold-soft),transparent 70%);}
.ld-hero .ld-wrap{max-width:760px;}
.ld-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#a0835a;margin:0 0 14px;}
.ld-title{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(34px,5.4vw,56px);line-height:1.1;letter-spacing:-.02em;margin:0 0 20px;}
.ld-title em{font-style:italic;color:#a0835a;}
.ld-lead{font-size:17px;line-height:1.6;color:var(--vandlyn-ink-soft);max-width:600px;margin:0 auto 32px;}
.ld-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.ld-section{padding:80px 0;}
.ld-alt{background:#fff;}
.ld-h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(26px,3.4vw,36px);line-height:1.2;letter-spacing:-.01em;max-width:640px;margin:0 auto 44px;}
.ld-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ld-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:720px;margin:0 auto;}
.ld-card,.ld-step{background:#fff;border:1px solid #ebe5d9;border-radius:20px;padding:32px 26px;text-align:center;}
.ld-alt .ld-step{background:var(--vandlyn-bg);border-color:transparent;}
.ld-card h3,.ld-step h3{font-size:17px;font-weight:500;margin:16px 0 8px;}
.ld-card p,.ld-step p{font-size:14.5px;line-height:1.55;color:var(--vandlyn-ink-soft);margin:0;}
.ld-ico{width:52px;height:52px;margin:0 auto;border-radius:16px;background:var(--vandlyn-gold-soft);color:#30406a;display:flex;align-items:center;justify-content:center;}
.ld-ico svg{width:26px;height:26px;}
.ld-num{width:44px;height:44px;margin:0 auto;border-radius:50%;background:#30406a;color:#fff;font:500 16px 'Inter',sans-serif;display:flex;align-items:center;justify-content:center;}
.ld-comm{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:1.5px solid #ebe5d9;border-radius:20px;padding:32px 20px;font-family:inherit;color:inherit;cursor:pointer;transition:transform .18s var(--ease),border-color .18s,box-shadow .18s;}
.ld-comm:hover{transform:translateY(-3px);border-color:var(--vandlyn-gold);box-shadow:0 12px 30px rgba(48,64,106,.10);}
.ld-comm.off{cursor:default;opacity:.6;}
.ld-comm.off:hover{transform:none;box-shadow:none;border-color:#ebe5d9;}
.ld-comm-name{font-family:'Fraunces',serif;font-weight:500;font-size:22px;color:var(--vandlyn-ink);}
.ld-comm-desc{font-size:14px;color:var(--vandlyn-ink-soft);}
.ld-pill{margin-top:10px;font-size:12px;font-weight:500;padding:6px 14px;border-radius:999px;background:#ece8df;color:var(--vandlyn-ink-soft);}
.ld-pill.on{background:#30406a;color:#fff;}
.ld-foot{background:linear-gradient(160deg,#30406a,#1f2c4d);color:#c9d3ee;padding:56px 0 40px;}
.ld-foot-inner{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;}
.ld-credit{margin:6px 0 0;font-size:14px;}
.ld-credit a{color:#fff;font-weight:500;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid var(--vandlyn-gold);}
.ld-foot-cta{color:var(--vandlyn-gold);font-size:14px;font-weight:500;text-decoration:none;}
.ld-foot-cta:hover{text-decoration:underline;}
.ld-copy{margin:14px 0 0;font-size:12px;opacity:.6;}
@media(max-width:720px){
  .ld-wrap{padding:0 16px;}
  .ld-hero{padding:64px 0 56px;}
  .ld-section{padding:56px 0;}
  .ld-h2{margin-bottom:28px;}
  .ld-grid3{grid-template-columns:1fr;gap:14px;}
  .ld-grid2{grid-template-columns:1fr 1fr;gap:12px;}
  .ld-comm{padding:24px 12px;}
  .ld-comm-name{font-size:18px;}
  .ld-actions .ld-btn{flex:1 1 100%;}
}

/* ===== ONBOARDING ===== */
.onboarding-screen{display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% 20%,var(--gold-soft),transparent 60%),var(--bg);}
.onb-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px;max-width:420px;width:100%;text-align:center;}
.onb-card.wide{max-width:620px;}
.onb-card h1{font-size:24px;line-height:1.25;font-weight:500;}
.with-ico{display:flex;align-items:center;justify-content:center;gap:8px;}
.with-ico .ico{flex:0 0 auto;}
.contact-lock .with-ico{text-align:left;align-items:flex-start;}
.contact-lock .with-ico .ico{margin-top:2px;}
.onb-sub{color:var(--ink-soft);margin-bottom:20px;font-size:14px;}
.onb-input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #dfe3e0;margin-bottom:14px;font-size:15px;transition:border-color .2s,box-shadow .2s;font-family:inherit;}
select.onb-input{-webkit-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235b6b60' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:38px;cursor:pointer;color:#111;}
textarea.onb-input{resize:vertical;}
.onb-input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(48,64,106,.12);}
.onb-error{color:var(--coral);font-size:13px;margin:-8px 0 12px;}
.mail-input-row{display:flex;align-items:center;border:1px solid #dfe3e0;border-radius:10px;overflow:hidden;margin-bottom:14px;}
.mail-input-row:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(48,64,106,.12);}
.mail-input-row .mail-left{border:none;margin:0;flex:1;}
.mail-input-row .mail-left:focus{box-shadow:none;}
.mail-suffix{padding:0 14px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;}
.mail-sent-box{background:var(--gold-soft);border-radius:12px;padding:16px;margin-top:12px;animation:popIn .4s var(--ease) both;}
.mail-sent-note{margin:8px 0 0;}
.team-login-box{margin-top:12px;animation:popIn .3s var(--ease) both;}

.btn{border:none;border-radius:10px;padding:13px 20px;font-weight:500;font-size:14px;letter-spacing:0;cursor:pointer;transition:transform .12s var(--ease),filter .12s,background .12s;font-family:'Inter',sans-serif;}
.btn:hover{filter:brightness(1.12);}
.btn:active{transform:scale(.98);}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none;}
.btn.full{width:100%;}
.btn.gold{background:var(--gold);color:var(--ink);}
.btn.coral{background:var(--ink);color:#fff;}
.btn.ink{background:var(--ink);color:#fff;}
.btn.green{background:#111;color:#fff;}
a.btn{text-decoration:none;display:inline-block;text-align:center;}
.link-btn{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:13px;margin-top:12px;display:block;width:100%;transition:color .15s;}
.link-btn:hover{color:var(--ink);}
.link-btn.faint{opacity:.5;font-size:11px;}

.onb-card > .brand-mark{margin-bottom:12px;}
.uni-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:6px;}
.uni-card{background:#fff;border:1px solid #eee5d6;border-radius:14px;padding:16px 4px;font-family:inherit;color:#111;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s;}
.uni-card:hover:not(.disabled){transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold);}
.uni-card.disabled{opacity:.4;cursor:not-allowed;}
.uni-emoji{font-size:26px;line-height:1;}
.uni-name{font-size:11.5px;margin-top:6px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.price-box{background:var(--gold-soft);border-radius:14px;padding:20px;margin-bottom:18px;text-align:left;}
.price-amount{font-family:'Inter',sans-serif;font-size:30px;font-weight:600;letter-spacing:-.02em;}
.price-amount span{font-size:15px;font-weight:400;color:var(--ink-soft);}
.price-list{margin:10px 0 0;padding-left:18px;font-size:14px;color:var(--ink-soft);}

.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px;}
.role-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:#fff;border:1px solid #eee5d6;border-radius:16px;padding:24px 14px;font-family:inherit;color:#111;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s;}
.role-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow);border-color:var(--gold);}
.role-emoji{color:var(--ink);height:30px;}
.role-title{font-weight:500;font-size:17px;margin-top:10px;}
.role-desc{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}

/* ===== APP SHELL ===== */
#app{background:#fff;}
.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:20;}
.topbar-actions{display:flex;align-items:center;gap:22px;}
.switch-role-btn{background:none;border:none;padding:6px 0;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--muted);font-family:inherit;border-bottom:1px solid transparent;transition:color .15s,border-color .15s;}
.switch-role-btn:hover{color:var(--text);border-color:var(--text);}
.cart-trigger{position:relative;background:none;color:var(--text);border:none;padding:0;cursor:pointer;display:flex;}
.cart-count{position:absolute;top:-8px;right:-10px;min-width:18px;height:18px;line-height:18px;text-align:center;background:#111;color:#fff;border-radius:9px;font-size:10px;padding:0 5px;font-weight:600;}
.profile-wrap{position:relative;}
.profile-btn{width:38px;height:38px;border-radius:50%;background:#f3f5f3;border:1px solid var(--line);cursor:pointer;color:var(--text);display:flex;align-items:center;justify-content:center;}
#pdAvatar{display:flex;}
.profile-dropdown{position:absolute;right:0;top:46px;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:16px;width:220px;z-index:30;animation:popIn .18s var(--ease) both;}
.pd-email{word-break:break-all;}
.pd-name{font-weight:500;}
.pd-email{font-size:12px;color:var(--ink-soft);margin-bottom:8px;}
.pd-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.pd-badge{font-size:10px;background:var(--gold-soft);border-radius:8px;padding:3px 8px;}

.app-body{display:flex;min-height:calc(100vh - 75px);}
#buyerView.app-body{flex-direction:column;}
.sidebar{width:220px;background:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--line);}
.side-tab{display:flex;align-items:center;gap:10px;background:none;border:none;text-align:left;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:400;cursor:pointer;color:var(--muted);font-family:inherit;transition:background .15s,color .15s;}
.side-tab:hover{color:var(--text);background:#f6f7f6;}
.side-tab.active{background:#f1f4f2;color:var(--text);font-weight:500;}
.main-panel{flex:1;min-width:0;padding:32px 36px;}
.main-panel.full{padding:20px 34px;width:100%;max-width:1200px;margin:0 auto;}
.tab-pane{animation:fadeInUp .35s var(--ease) both;}
.tab-pane > h2{margin-bottom:18px;font-size:24px;}
.pane-head h2, .stats-head h2{font-size:24px;}
.pane-sub{margin:2px 0 0;font-size:14px;color:var(--muted);}
.pane-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;}
.pane-head h2{margin:0;}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:18px;max-width:480px;}
.card label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:4px;margin-top:10px;}
.card h3{margin-bottom:6px;}
.card p{margin:0 0 14px;font-size:14px;color:#555;}
.card > label:first-child{margin-top:0;}
.card .btn + label{margin-top:16px;}

.table-wrap{width:100%;overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);}
.products-table{width:100%;min-width:640px;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.products-table th{text-align:left;font-size:12px;font-weight:500;color:var(--muted);padding:12px 14px;border-bottom:1px solid #f0ece2;}
.products-table td{padding:12px 14px;border-bottom:1px solid #f5f2ea;font-size:14px;vertical-align:middle;}
.products-table td .link-btn{display:inline;width:auto;margin:0 10px 0 0;}
.products-table .tag + .tag{margin-left:6px;}
.table-empty{text-align:center;color:#999;padding:20px;}
.products-table tr{transition:background .15s;}
.products-table tr:hover{background:#faf7f0;}
.prod-thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;background:#f4f4f4;display:block;}
.tag{font-size:11px;padding:3px 9px;border-radius:8px;font-weight:500;}
.tag.on{background:#e2f4ea;color:var(--green);}
.tag.off{background:#f3e6e5;color:var(--coral);}
.tag.hot{background:var(--gold-soft);color:#8a6d1f;}

.demo-banner{display:flex;align-items:center;gap:8px;background:#f6f8f6;border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:10px 14px;font-size:13px;margin-bottom:18px;}
.stats-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.seg{display:inline-flex;background:#f1f3f1;border-radius:10px;padding:3px;}
.seg-btn{border:none;background:none;padding:7px 14px;border-radius:8px;font:400 13px 'Inter',sans-serif;color:var(--muted);cursor:pointer;transition:background .15s,color .15s;}
.seg-btn.active{background:#fff;color:var(--text);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.06);}
.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;}
.kpi-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;cursor:pointer;font-family:inherit;color:var(--text);transition:border-color .15s,box-shadow .15s;animation:fadeInUp .4s var(--ease) both;}
.kpi-card:hover{border-color:#cfd6d1;}
.kpi-card.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);}
.kpi-label{font-size:13px;color:var(--muted);}
.kpi-value{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:2px 0;}
.kpi-note{font-size:12px;color:var(--muted);margin-top:4px;}
.delta{font-size:12.5px;font-weight:500;}
.delta.up{color:#1a7f4b;} .delta.down{color:#b4452f;} .delta.flat{color:var(--muted);font-weight:400;}
.delta-vs{color:var(--muted);font-weight:400;}
.chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px;}
.chart-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 18px 10px;}
.chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;}
.chart-head h4, .detail-head h4{font-size:15px;margin:0;}
.chart-sub{margin:2px 0 0;font-size:12.5px;color:var(--muted);}
.chart-total{font-size:20px;font-weight:600;letter-spacing:-.02em;}
.chart-plot{width:100%;}
.chart-plot svg{display:block;overflow:visible;}
.chart-plot .grid{stroke:#eef0ee;stroke-width:1;}
.chart-plot .tick{font:400 11px 'Inter',sans-serif;fill:#8a928c;font-variant-numeric:tabular-nums;}
.chart-plot .val{font:500 11.5px 'Inter',sans-serif;fill:var(--text);}
.chart-plot .bar{fill:#1f5c43;transform-box:fill-box;transform-origin:50% 100%;animation:growUp .6s var(--ease) both;transition:fill .15s,opacity .15s;}
.chart-plot .bar.hover{fill:#2f7a5a;}
.chart-plot .bar.dim{opacity:.3;}
.chart-plot .line{fill:none;stroke:#1f5c43;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:drawLine 1s var(--ease) forwards;}
.chart-plot .area{fill:#1f5c43;fill-opacity:.08;animation:fadeIn 1s var(--ease) both;}
.chart-plot .dot{fill:#1f5c43;stroke:#fff;stroke-width:2;}
.chart-plot .cross{stroke:#c9d1cb;stroke-width:1;}
.chart-plot .hit{fill:transparent;cursor:pointer;outline:none;}
.chart-plot .hit:focus-visible{fill:rgba(31,92,67,.06);}
.chart-plot .hidden{display:none;}
.chart-tip{position:absolute;z-index:5;pointer-events:none;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(17,24,20,.10);padding:9px 12px;min-width:140px;}
.tip-value{font-size:16px;font-weight:600;letter-spacing:-.01em;}
.tip-label{font-size:12px;color:var(--muted);}
.tip-extra{font-size:12px;color:var(--text);margin-top:4px;}
.tip-cta{font-size:11px;color:#1f5c43;margin-top:6px;}
.detail-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;}
.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;}
.text-btn{background:none;border:none;padding:4px 0;font:500 13px 'Inter',sans-serif;color:#1f5c43;cursor:pointer;}
.text-btn:hover{text-decoration:underline;}
.table-wrap.flat{box-shadow:none;border-radius:0;}
.data-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.data-table th{text-align:left;font-weight:500;font-size:12px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.data-table td{padding:10px;border-bottom:1px solid #f3f4f3;vertical-align:top;}
.data-table tr:last-child td{border-bottom:none;}
.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.data-table .strong{font-weight:500;}
.data-table .muted{color:var(--muted);}
.data-table .nowrap{white-space:nowrap;}
.data-table .star-off{color:#dde1de;}
.table-more{text-align:center;color:var(--muted);font-size:12.5px;}

.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0;}
.plan-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;cursor:pointer;text-align:center;font-family:inherit;transition:transform .15s,border-color .15s;}
.plan-card:hover{transform:translateY(-3px);border-color:var(--gold);}
.plan-card.selected{border-color:var(--coral);background:var(--gold-soft);}
.plan-price{font-weight:600;font-size:19px;letter-spacing:-.02em;}
.plan-days{font-size:12px;color:var(--ink-soft);}

.policy-box{max-width:560px;display:flex;flex-direction:column;gap:14px;}
.policy-row{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:14px;line-height:1.5;align-items:flex-start;color:var(--muted);}
.policy-row b{font-weight:500;color:var(--text);}
.policy-icon{flex:0 0 20px;color:var(--ink);padding-top:1px;}

/* ===== BUYER FEED ===== */
.feed-search-row{display:flex;align-items:center;gap:10px;background:#f5f6f4;border:1px solid #e7ebe6;border-radius:12px;padding:12px 16px;margin-bottom:20px;}
.feed-search-row .feed-search-icon{color:#8a948c;flex:0 0 auto;}
.feed-search-row input{flex:1;border:none;background:none;font-size:14px;font-family:'Inter',sans-serif;color:#111;outline:none;}
.feed-search-row input::placeholder{color:#9aa39b;}

.cat-chips{display:flex;gap:22px;margin:-8px -6px 20px;padding:10px 6px 6px;overflow-x:auto;}
.chip{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:none;padding:4px 2px 10px;font-size:11.5px;font-weight:400;font-family:inherit;color:#5b6b60;cursor:pointer;flex:0 0 auto;transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s;}
.chip-ico{width:48px;height:48px;border-radius:50%;background:var(--brand-mint-soft);display:flex;align-items:center;justify-content:center;color:var(--brand-dark);transition:background .25s,color .25s,box-shadow .25s,transform .35s cubic-bezier(.34,1.56,.64,1);}
.chip:hover{transform:translateY(-3px);color:var(--brand-dark);}
.chip:hover .chip-ico{background:#d7f5e2;transform:scale(1.08) rotate(-6deg);box-shadow:0 8px 18px rgba(18,53,38,.14);}
.chip:active{transform:scale(.93);}
.chip::after{content:"";position:absolute;bottom:0;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--brand-dark);transform:scale(0);transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
.chip.active::after{transform:scale(1);}
.chip.active{color:var(--brand-dark);font-weight:500;}
.chip.active .chip-ico{background:var(--brand-dark);color:#fff;box-shadow:0 8px 20px rgba(18,53,38,.28);animation:chipPop .45s cubic-bezier(.34,1.56,.64,1), ringOut .7s ease-out;}
.chip.active:hover .chip-ico{transform:scale(1.05);}
.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:28px 20px;}
.feed-empty{grid-column:1/-1;text-align:center;color:#999;padding:40px 0;margin:0;}
.prod-card{position:relative;background:#fff;border-radius:14px;overflow:hidden;box-shadow:none;cursor:pointer;animation:fadeInUp .5s var(--ease) both;animation-delay:calc(var(--i, 0) * 45ms);transition:transform .3s var(--ease);}
.prod-img-wrap{position:relative;overflow:hidden;border-radius:14px;}
.prod-card:hover{transform:translateY(-4px);}
.prod-card:active{transform:scale(.98);}
.prod-card img{width:100%;aspect-ratio:3/4;height:auto;object-fit:cover;display:block;background:#f4f4f4;transition:transform .35s var(--ease);}
.prod-card:hover img{transform:scale(1.06);}
.prod-card:hover .prod-name{color:var(--brand-dark);}
.prod-contact-btn{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;background:var(--brand-dark);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.18);transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s;}
.prod-contact-btn:hover{transform:scale(1.12);}
.prod-contact-btn:active{transform:scale(.9);}
.prod-contact-btn .qa-check{display:none;}
.prod-contact-btn.added{background:#2f7a5a;animation:chipPop .45s cubic-bezier(.34,1.56,.64,1);}
.prod-contact-btn.added .qa-plus{display:none;}
.prod-contact-btn.added .qa-check{display:block;}
.prod-card .prod-body{padding:10px 2px 0;}
.prod-card .prod-cat{font-size:11.5px;color:#8a928c;}
.prod-card .prod-name{font-family:'Inter',sans-serif;font-weight:400;font-size:13.5px;margin:3px 0;color:#111;}
.prod-card .prod-price{color:var(--text);font-weight:500;font-size:13.5px;}

/* ===== NAV INFERIOR MOBILE (estilo app) ===== */
.mobile-bottom-nav{display:none;}
@media (max-width: 720px){
  #buyerView .app-footer{display:none;}
  #buyerView{padding-bottom:78px;}
  .mobile-bottom-nav{
    display:grid; grid-template-columns:repeat(5,1fr); align-items:center; justify-items:center;
    position:fixed; left:0; right:0; bottom:0; height:calc(64px + env(safe-area-inset-bottom));
    background:#fff; border-top:1px solid #ececec; z-index:40;
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mnav-btn{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:#9aa39b;font-size:10px;font-weight:500;font-family:inherit;cursor:pointer;width:100%;padding:6px 0;}
  .mnav-btn.active{color:var(--brand-dark);}
  .mnav-publish{width:48px;height:48px;border-radius:50%;background:var(--brand-dark);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:-18px;box-shadow:0 4px 12px rgba(18,53,38,.35);}
}
.featured-flag{position:absolute;top:0;left:0;z-index:2;background:rgba(255,255,255,.92);color:var(--text);font-size:11px;font-weight:500;padding:4px 9px;border-radius:999px;margin:8px;}

.app-footer{display:flex;justify-content:space-between;align-items:center;padding:26px max(34px, calc((100% - 1200px) / 2 + 34px));border-top:1px solid #eee;margin-top:auto;}
#buyerView .main-panel.full{flex:0 0 auto;margin-bottom:40px;}
.footer-links a{color:var(--muted);margin-left:20px;text-decoration:none;font-size:13px;}

/* ===== DETALLE DEL PRODUCTO (recuadros + secciones) ===== */
.pdet-hero-wrap{position:relative;border-radius:14px;overflow:hidden;background:#f2efe7;}
.pdet-hero-wrap .pdet-hero{border-radius:0;animation:fadeIn .35s var(--ease) both;}
.hero-nav{position:absolute;top:50%;margin-top:-18px;width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.9);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.12);transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s;}
.hero-nav:hover{transform:scale(1.1);background:#fff;}
.hero-nav.prev{left:10px;} .hero-nav.next{right:10px;}
.hero-count{position:absolute;right:10px;bottom:10px;background:rgba(17,24,20,.62);color:#fff;font-size:11.5px;padding:3px 9px;border-radius:999px;}
.pd-thumb-item{transition:border-color .15s,transform .2s;}
.pd-thumb-item:hover{transform:translateY(-2px);}
.pdet-price-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 4px;}
.pdet-price-row .pdet-price{margin:0;}
.pdet-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#1f5c43;background:#eef6f1;border-radius:999px;padding:4px 10px;}
.pdet-stock{font-size:13px;color:#b4452f;margin:2px 0 6px;}
.opt-box{margin:16px 0 4px;}
.opt-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--muted);margin-bottom:8px;}
.opt-error{color:#b4452f;font-size:12.5px;}
.opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));border-top:1px solid #d9ddda;border-left:1px solid #d9ddda;}
.opt-cell{background:#fff;border:none;border-right:1px solid #d9ddda;border-bottom:1px solid #d9ddda;min-height:52px;padding:10px 8px;font:400 14px 'Inter',sans-serif;color:var(--text);cursor:pointer;transition:background .15s,box-shadow .15s;}
.opt-cell:hover{background:#f6f7f6;}
.opt-cell.selected{box-shadow:inset 0 0 0 2px var(--text);font-weight:500;animation:chipPop .3s cubic-bezier(.34,1.56,.64,1);}
@keyframes shake{0%,100%{transform:translateX(0);}20%,60%{transform:translateX(-6px);}40%,80%{transform:translateX(6px);}}
.opt-grid.shake{animation:shake .4s ease;}
.pdet-actions{display:flex;flex-direction:column;gap:10px;margin:18px 0 6px;}
.pdet-actions .btn{padding:15px 20px;}
.pdet-trust{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;color:var(--muted);margin:2px 0 0;}
.pdet-trust .ico{color:#1f5c43;}
.pdet-unavailable{margin:18px 0 6px;padding:14px;border-radius:12px;background:#f6f7f6;color:var(--muted);font-size:14px;text-align:center;}
.pdet-reviews-row{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;padding:16px 0;margin-top:8px;font:400 14px 'Inter',sans-serif;color:var(--text);cursor:pointer;}
.pdet-reviews-row .u{text-decoration:underline;text-underline-offset:3px;}
.pdet-stars{display:inline-flex;align-items:center;gap:8px;font-size:13px;}
.stars span{color:#d9ddda;letter-spacing:1px;} .stars span.on{color:var(--text);}
.acc{border-top:1px solid var(--line);}
.acc-item{border-bottom:1px solid var(--line);}
.acc-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-size:14.5px;cursor:pointer;}
.acc-item summary::-webkit-details-marker{display:none;}
.acc-plus{position:relative;width:14px;height:14px;flex:0 0 14px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
.acc-plus::before,.acc-plus::after{content:"";position:absolute;background:var(--text);left:0;top:50%;width:14px;height:1.5px;margin-top:-.75px;}
.acc-plus::after{transform:rotate(90deg);}
.acc-item[open] .acc-plus{transform:rotate(45deg);}
.acc-body{padding:0 0 16px;font-size:14px;line-height:1.6;color:var(--muted);animation:fadeInUp .3s var(--ease) both;}
.acc-body p{margin:0 0 10px;} .acc-body p:last-child{margin-bottom:0;}
.acc-body b{color:var(--text);font-weight:500;}
.acc-body a{color:#1f5c43;}
.pdet-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0;}
.pdet-dl dt{color:var(--muted);} .pdet-dl dd{margin:0;color:var(--text);}
.review-item{padding:10px 0;border-bottom:1px solid #f1f3f1;}
.review-item p{margin:4px 0 0;color:var(--text);}
.review-stars{color:var(--text);letter-spacing:1px;font-size:13px;}
.review-stars .star-off{color:#d9ddda;}

/* Formulario de producto: opciones y fotos */
.label-hint{font-weight:400;color:#9aa19c;font-size:12px;margin-left:4px;}
.field-hint{font-size:12px;color:#8a928c;margin:-6px 0 12px;}
.opt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.opt-chips:empty{display:none;}
.opt-chip{display:inline-flex;align-items:center;gap:6px;background:#f1f4f2;border-radius:999px;padding:6px 8px 6px 12px;font-size:13px;animation:chipPop .3s cubic-bezier(.34,1.56,.64,1);}
.opt-chip button{border:none;background:none;color:var(--muted);cursor:pointer;font-size:11px;padding:0 2px;}
.opt-add{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;}
.opt-add .btn{padding:12px 16px;}
.thumb-cover{position:absolute;left:4px;bottom:4px;background:rgba(17,24,20,.7);color:#fff;font-size:9.5px;padding:2px 6px;border-radius:999px;}
.cell-sub{font-size:12px;color:var(--muted);}

/* Tarjetas: contador de fotos y agotado */
.photo-count{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.9);color:var(--text);font-size:11px;padding:3px 8px;border-radius:999px;}
.soldout-flag{position:absolute;right:10px;bottom:10px;background:rgba(17,24,20,.75);color:#fff;font-size:11.5px;padding:5px 10px;border-radius:999px;}
.prod-card.sold-out img{filter:grayscale(.6);opacity:.75;}

/* Perfil, cuenta del vendedor y compras */
.pd-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;border-radius:8px;padding:9px 8px;margin:2px 0;font:400 14px 'Inter',sans-serif;color:var(--text);cursor:pointer;text-align:left;}
.pd-item:hover{background:#f4f6f5;}
.account-status{max-width:480px;background:#fbf7ee;border:1px solid #f0e4c8;color:#6b5a2e;border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.5;margin-bottom:18px;}
.account-status b{font-weight:500;}
.modal-intro{font-size:13.5px;color:var(--muted);margin:0 0 14px;line-height:1.5;}
.order-card{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px;animation:fadeInUp .35s var(--ease) both;}
.order-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.order-date{font-size:13px;color:var(--muted);}
.order-items{font-size:14px;line-height:1.5;color:var(--text);}
.order-meta{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);margin-top:8px;}
.order-meta b{color:var(--text);font-weight:500;}
.order-report{margin-top:10px;font-size:13px;color:#6b5a2e;background:#fbf7ee;border-radius:8px;padding:8px 10px;}
.order-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.order-actions:empty{display:none;}
.order-actions .btn{flex:1;padding:11px 14px;font-size:13.5px;}
.tag.wait{background:#f3f1ea;color:#6b5a2e;}
.ci-variant{font-size:12.5px;color:var(--muted);margin-top:2px;}
.muted{color:var(--muted);}

/* ===== AVISO FLOTANTE ===== */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:16px;background:#16241d;color:#fff;border-radius:999px;padding:10px 12px 10px 20px;font-size:14px;box-shadow:0 12px 30px rgba(0,0,0,.25);animation:toastIn .35s var(--ease) both;}
.toast button{background:rgba(255,255,255,.14);color:#fff;border:none;border-radius:999px;padding:7px 14px;font:500 13px 'Inter',sans-serif;cursor:pointer;}
.toast button:hover{background:rgba(255,255,255,.24);}
@media(max-width:720px){ .toast{bottom:88px;} }
.cart-count.bump{animation:bump .45s cubic-bezier(.34,1.56,.64,1);}

/* ===== MODALS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(30,38,64,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;backdrop-filter:blur(2px);}
.modal-box{background:#fff;border-radius:20px;max-width:480px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 30px 70px rgba(0,0,0,.25);}
.modal-box.wide{max-width:780px;}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #f0ece2;position:sticky;top:0;background:#fff;z-index:1;}
.modal-head h3{margin:0;font-size:17px;}
.modal-body label{display:block;font-size:12.5px;color:var(--ink-soft);margin:10px 0 4px;}
.modal-body label:first-child{margin-top:0;}
.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--ink-soft);width:32px;height:32px;border-radius:50%;transition:background .15s;}
.modal-close:hover{background:#f4f2ec;}
.modal-body{padding:20px 22px;}
.modal-foot{padding:16px 22px;border-top:1px solid #f0ece2;display:flex;justify-content:flex-end;gap:10px;}

.thumbs-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.thumb-item{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;}
.thumb-item img{width:100%;height:100%;object-fit:cover;}
.thumb-remove{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:10px;cursor:pointer;}
.file-input{width:100%;font-size:13px;margin-bottom:14px;font-family:inherit;}
.file-input::file-selector-button{border:1.5px solid #e4e0d6;background:#fff;border-radius:10px;padding:8px 14px;margin-right:12px;font:inherit;font-weight:600;cursor:pointer;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.modal-body .switch-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-top:14px;color:#111;}
.switch{flex:0 0 auto;width:38px;height:22px;background:#e4e0d6;border-radius:20px;position:relative;cursor:pointer;transition:background .2s;}
.switch.on{background:var(--green);}
.switch-dot{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s var(--ease);}
.switch.on .switch-dot{left:18px;}

.pdet-body{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;}
.pdet-hero{width:100%;height:clamp(180px,26vw,300px);object-fit:cover;border-radius:14px;background:#f2efe7;display:block;}
.pdet-info h2{margin:4px 0 0;}
.pd-thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;}
.pd-thumb-item{width:56px;height:56px;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .15s;}
.pd-thumb-item.active{border-color:var(--coral);}
.pd-thumb-item img{width:100%;height:100%;object-fit:cover;}
.pdet-cat{font-size:12.5px;color:var(--muted);}
.pdet-price{font-size:20px;font-weight:500;color:var(--ink);margin:6px 0 18px;}
.variant-grid{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px;}
.variant-chip{border:1px solid #ddd;border-radius:8px;padding:10px 16px;font-size:13px;cursor:pointer;background:#fff;transition:border-color .15s;}
.variant-chip:hover{border-color:var(--ink);}
.variant-chip.selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);font-weight:500;}
.qty-stepper{display:inline-flex;align-items:center;border:1px solid #ddd;border-radius:8px;margin-top:6px;}
.qty-stepper button{background:none;border:none;width:34px;height:34px;font-size:16px;cursor:pointer;}
.qty-stepper span{width:30px;text-align:center;font-size:14px;}
.buy-box{display:flex;flex-direction:column;gap:12px;background:#f6f9f7;border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0;}
.buy-row{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.5;color:var(--muted);}
.buy-row .ico{flex:0 0 18px;color:var(--brand-dark);margin-top:1px;}
.buy-row b{font-weight:500;color:var(--text);}
.modal-foot.two-btn{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.btn.ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px #cfd6d1;}
.btn.ghost:hover{filter:none;background:#f4f6f5;}
.contact-lock{background:var(--gold-soft);border-radius:14px;padding:16px;margin:14px 0;text-align:center;}
.contact-revealed{background:#e2f4ea;border-radius:14px;padding:16px;margin:14px 0;}
.pdet-reviews{margin-top:18px;}
.star-input{font-size:22px;color:#ccc;cursor:pointer;margin-bottom:10px;letter-spacing:2px;user-select:none;display:inline-block;}
.reviews-empty{color:#999;font-size:13px;}
.star-input .on{color:var(--gold);}
.review-item{border-bottom:1px solid #f0ece2;padding:10px 0;font-size:13px;}

.cart-row{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid #eee;}
.cart-thumb{width:72px;height:88px;border-radius:10px;object-fit:cover;background:#f4f4f4;}
.cart-info{flex:1;}
.cart-info .ci-name{font-weight:500;font-size:14px;}
.cart-info .ci-unit{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.cart-price{font-weight:500;font-size:14px;white-space:nowrap;}
.cart-remove{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:15px;padding:0 0 0 4px;}
.cart-empty{text-align:center;color:var(--ink-soft);padding:30px 0;}
.order-summary-row{display:flex;justify-content:space-between;font-size:14px;padding:6px 0;color:var(--ink-soft);}
.cart-total{display:flex;justify-content:space-between;font-weight:600;font-size:17px;margin-top:14px;padding-top:14px;border-top:1.5px solid #eee;}
.cart-multi-seller-note{display:flex;align-items:center;gap:8px;background:#fbf7ee;border:1px solid #f0e4c8;color:#6b5a2e;border-radius:10px;padding:10px 14px;font-size:12.5px;margin-top:10px;}
.discounts-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #eee;margin-bottom:8px;font-size:13px;}
.discounts-row a{color:var(--ink);text-decoration:underline;font-size:12px;}

@media(max-width:720px){
  .app-topbar{padding:14px 16px;}
  .topbar-actions{gap:16px;}
  .app-body{flex-direction:column;}
  .sidebar{width:100%;flex-direction:row;overflow-x:auto;padding:10px 16px;gap:6px;border-right:none;border-bottom:1px solid var(--line);}
  .side-tab{white-space:nowrap;padding:8px 12px;}
  .kpi-card{padding:14px;}
  .kpi-value{font-size:22px;}
  .kpi-note, .delta-vs{display:none;}
  .chart-row{grid-template-columns:1fr;}
  .stats-head{align-items:flex-start;}
  .seg{width:100%;}
  .seg-btn{flex:1;}
  .data-table .hide-sm{display:none;}
  .opt-grid{grid-template-columns:repeat(3,1fr);}
  .pdet-info h2{font-size:22px;}
  .data-table td, .data-table th{padding-left:6px;padding-right:6px;}
  .main-panel, .main-panel.full{padding:20px 16px;}
  .card{max-width:none;}
  .results-grid{grid-template-columns:repeat(2,1fr);gap:22px 12px;}
  .cat-chips{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;overflow:visible;}
  .chip{font-size:11px;min-width:0;}
  .pdet-body{grid-template-columns:1fr;}
  .kpi-row{grid-template-columns:repeat(2,1fr);gap:12px;}
  .onb-card{padding:28px 20px;}
  .modal-overlay{padding:12px;}
  .modal-head, .modal-body, .modal-foot{padding-left:16px;padding-right:16px;}
}

/* Quien pidió menos movimiento en su sistema no ve animaciones */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}

/* ===== AVISO DE PRIVACIDAD ===== */
.onb-legal{font-size:12.5px;color:var(--muted);text-align:center;margin:10px 0 0;}
.onb-legal a{color:inherit;text-decoration:underline;}
.ld-copy a{color:inherit;}
