
/* ==========================================================
   ONIX 9.0 — Ecosistema web
   ========================================================== */
.onix-admin-only{display:none!important}
html.onix-admin-session .onix-admin-only{display:flex!important}
.onix-beta-label{font-size:7px;letter-spacing:.18em;color:#d7b978;display:block;margin-bottom:1px}
.onix-index-admin-link{align-items:center;gap:7px}

/* anuncios */
.onix-announcements{padding:18px 0 56px;overflow:hidden}
.onix-announcements-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}
.onix-announcements-head h2{margin:5px 0 0;font-size:clamp(28px,4vw,46px)}
.onix-announcement-viewport{position:relative;overflow:hidden;border-radius:28px;mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%)}
.onix-announcement-track{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;padding:8px 4vw}
.onix-announcement-track::-webkit-scrollbar{display:none}
.onix-announcement-card{min-width:min(78vw,720px);aspect-ratio:16/7;scroll-snap-align:center;border-radius:24px;position:relative;overflow:hidden;background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.13),transparent 35%),linear-gradient(145deg,#15181d,#070809);box-shadow:0 22px 65px rgba(0,0,0,.35)}
.onix-announcement-card:before{content:"";position:absolute;inset:0;border:1px solid transparent;border-radius:inherit;background:linear-gradient(120deg,rgba(255,255,255,.28),transparent 35%,rgba(255,255,255,.07)) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:.45}
.onix-announcement-card img{width:100%;height:100%;object-fit:cover;display:block}
.onix-announcement-copy{position:absolute;inset:auto 0 0;padding:50px 26px 22px;background:linear-gradient(transparent,rgba(0,0,0,.88))}
.onix-announcement-copy small{letter-spacing:.22em;color:#c6a86a}.onix-announcement-copy h3{margin:6px 0 3px;font-size:24px}.onix-announcement-copy p{margin:0;color:#b4bac1}
.onix-announcement-empty{width:100%;padding:40px;border:1px dashed rgba(255,255,255,.14);border-radius:24px;color:#828a94;text-align:center}

/* Mi Espacio gratuito */
.free-space-body{background:#07090c;color:#f5f6f7;min-height:100dvh}
.free-space-shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100dvh}
.free-space-side{padding:28px 20px;border-right:1px solid rgba(255,255,255,.08);position:sticky;top:0;height:100dvh;background:#090b0e}
.free-space-side .public-brand{margin-bottom:32px}
.free-space-nav{display:grid;gap:7px}.free-space-nav button,.free-space-nav a{border:0;text-align:left;background:transparent;color:#969da5;padding:12px;border-radius:12px;text-decoration:none;cursor:pointer}.free-space-nav .active{background:rgba(216,183,116,.11);color:#e9cc8b;border:1px solid rgba(216,183,116,.17)}
.free-space-main{padding:32px;max-width:1320px;width:100%;margin:auto}
.free-space-hero{padding:24px 0 28px;display:flex;justify-content:space-between;gap:18px;align-items:end}.free-space-hero h1{font-size:clamp(34px,5vw,58px);margin:0}.free-space-hero h1 span{color:#dab978}.free-space-hero p{color:#8e969f}
.free-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.free-kpi{padding:20px;border:1px solid rgba(255,255,255,.09);border-radius:19px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.free-kpi small{color:#7e8790}.free-kpi strong{display:block;font-size:28px;margin:9px 0}.free-kpi.income strong{color:#47d6a4}.free-kpi.expense strong{color:#ff6574}.free-kpi.saving strong{color:#55a8ff}
.free-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:16px;margin-top:16px}.free-card{padding:20px;border:1px solid rgba(255,255,255,.08);border-radius:19px;background:#0c0f13}.free-card h2{font-size:18px;margin:0 0 15px}.free-chart-wrap{height:300px;position:relative}
.free-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.free-actions button{padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:13px;color:#fff;background:#11151a;cursor:pointer}.free-actions button:hover{border-color:#d7b46c}
.free-entries{display:grid;gap:8px}.free-entry{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px;border-radius:13px;background:rgba(255,255,255,.025)}.free-entry small{color:#737b84}.free-entry b.expense{color:#ff6c7a}.free-entry b.income{color:#50d8a8}.free-entry b.saving{color:#58aaff}
.free-toast{position:fixed;right:18px;bottom:18px;padding:16px 18px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:#101419;box-shadow:0 18px 60px rgba(0,0,0,.45);transform:translateY(30px);opacity:0;pointer-events:none;transition:.25s;z-index:99}.free-toast.show{opacity:1;transform:none}
.free-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:18px;z-index:100}.free-modal[hidden]{display:none}.free-modal-card{width:min(460px,100%);background:#101318;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:22px}.free-modal-card form{display:grid;gap:12px}.free-modal-card input,.free-modal-card select{width:100%;padding:12px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:#090b0e;color:white}.free-modal-actions{display:flex;justify-content:flex-end;gap:8px}.free-modal-actions button{padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#171b20;color:#fff;cursor:pointer}.free-modal-actions .primary{background:#eee;color:#111}

/* Dashboard Finanzas Beta */
.finance-beta-shell{display:grid;gap:18px}
.finance-beta-title{display:flex;align-items:center;gap:11px}.finance-beta-title .beta-chip{font-size:8px;letter-spacing:.16em;border:1px solid rgba(216,183,116,.24);color:#d8b776;border-radius:999px;padding:5px 8px}
.finance-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.finance-summary-card{padding:17px;border-radius:17px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08)}.finance-summary-card small{color:#7b848e}.finance-summary-card strong{display:block;font-size:22px;margin:8px 0}.finance-summary-card button{border:0;background:transparent;color:#d2b575;padding:0;cursor:pointer}
.finance-beta-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:14px}.finance-beta-panel{padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(255,255,255,.018)}.finance-beta-panel canvas{max-height:290px}
.finance-module{padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:18px}.finance-module-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}.finance-module-head h2{margin:0}.finance-module-head p{margin:3px 0 0;color:#818a94}.finance-btn{border:1px solid rgba(255,255,255,.1);background:#11151a;color:#fff;padding:10px 12px;border-radius:11px;cursor:pointer}.finance-btn:hover{border-color:#d7b46c}
.fund-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.fund-button{padding:14px;text-align:left;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#0d1014;color:white}.fund-button b{display:block;margin-bottom:4px}.fund-button span{color:#77818b;font-size:10px}
.finance-table{display:grid;gap:8px;margin-top:12px}.finance-row{display:grid;grid-template-columns:1.4fr .8fr .8fr auto;gap:10px;align-items:center;padding:11px;border-radius:12px;background:rgba(255,255,255,.025)}.finance-row small{color:#78818a}
.budget-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.budget-item{padding:12px;background:rgba(255,255,255,.025);border-radius:12px}.budget-bar{height:6px;border-radius:5px;background:#191e24;overflow:hidden;margin-top:8px}.budget-bar i{display:block;height:100%;background:linear-gradient(90deg,#d3ad64,#fff)}
.finance-inline-guide{padding:12px;border-left:2px solid #c7a55f;color:#89929b;background:rgba(199,165,95,.045);font-size:12px}
.session-history{display:grid;gap:9px;margin-top:15px}.session-history-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:13px}.session-history-item small{color:#777f88}.session-history-item button{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:transparent;color:#f08a91;cursor:pointer}

/* Panorama management */
.ceo-badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid rgba(216,183,116,.3);color:#d8b776;font-size:9px;letter-spacing:.12em;margin-left:10px}
.web-manage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}.web-manage-grid .panel{min-height:190px}.web-manager-form{display:grid;gap:9px}.web-manager-form input,.web-manager-form textarea,.web-manager-form select{width:100%;padding:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px}.web-manager-form textarea{resize:vertical;min-height:80px}
.announcement-admin-list{display:grid;gap:8px;margin-top:12px}.announcement-admin-row{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px}.announcement-admin-row img{width:56px;height:40px;object-fit:cover;border-radius:8px}.announcement-admin-row small{color:var(--muted)}
.maintenance-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;border-radius:14px;border:1px solid var(--line)}.maintenance-switch.on{border-color:#d8b776;background:rgba(216,183,116,.06)}
.maintenance-switch button{min-width:150px}

/* Inside ONIX */
.inside-body{background:#060708;color:#f5f5f5}.inside-shell{max-width:1160px;margin:auto;padding:0 24px 80px}.inside-top{height:78px;display:flex;align-items:center;justify-content:space-between}.inside-top a{color:#aab0b6;text-decoration:none;margin-left:22px;font-size:12px}.inside-hero{min-height:68vh;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;border-bottom:1px solid rgba(255,255,255,.08)}.inside-hero h1{font-size:clamp(48px,8vw,95px);line-height:.93;margin:12px 0}.inside-hero h1 span{color:#d0ae69}.inside-hero p{color:#929aa3;max-width:620px;line-height:1.7}.inside-symbol{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(216,183,116,.15),transparent 65%)}.inside-symbol img{width:55%;filter:drop-shadow(0 0 20px rgba(216,183,116,.24))}
.inside-section{padding:70px 0;border-bottom:1px solid rgba(255,255,255,.07)}.inside-section h2{font-size:clamp(30px,4vw,50px)}.inside-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.inside-card{padding:22px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:rgba(255,255,255,.018)}.inside-card small{color:#c7a55f;letter-spacing:.16em}.inside-card p{color:#858e98;line-height:1.6}.ceo-placeholder{min-height:330px;border-radius:22px;border:1px dashed rgba(255,255,255,.14);display:grid;place-items:center;color:#6f7781;background:radial-gradient(circle at center,rgba(216,183,116,.07),transparent 60%)}

@media(max-width:850px){
 .free-space-shell{grid-template-columns:1fr}.free-space-side{position:static;height:auto;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:15px}.free-space-nav{display:flex;overflow:auto}.free-space-main{padding:18px}.free-kpis{grid-template-columns:1fr}.free-grid,.finance-beta-grid{grid-template-columns:1fr}.free-actions{grid-template-columns:1fr 1fr 1fr}.finance-summary-cards{grid-template-columns:1fr 1fr}.fund-buttons{grid-template-columns:1fr 1fr}.inside-hero{grid-template-columns:1fr;min-height:auto;padding:60px 0}.inside-grid{grid-template-columns:1fr}.web-manage-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
 .onix-announcement-card{min-width:90vw;aspect-ratio:4/3}.free-actions{grid-template-columns:1fr}.finance-summary-cards{grid-template-columns:1fr}.fund-buttons{grid-template-columns:1fr}.finance-row{grid-template-columns:1fr auto}.finance-row>*:nth-child(3){display:none}
 .calendar-shell,.session-calendar,.calendar-grid{max-width:100%!important}.session-modal-card{width:min(94vw,420px)!important;max-height:88dvh!important;overflow:auto!important}.calendar-grid button{min-height:36px!important;padding:4px!important;font-size:11px!important}.time-grid{grid-template-columns:repeat(3,1fr)!important}
}


/* ==========================================================
   ONIX 9.1 — Responsive hardening (mobile / tablet / desktop)
   ========================================================== */

/* ---------- Mi Espacio ---------- */
.free-space-body{
  min-width:0;
  overflow-x:hidden;
}
.free-space-shell{
  width:100%;
  min-width:0;
}
.free-space-main,
.free-space-main *{
  min-width:0;
}
.free-space-side{
  z-index:20;
}
.free-space-nav button,
.free-space-nav a{
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
}
.free-space-nav svg{
  width:17px;
  height:17px;
  flex:0 0 auto;
}
.free-space-hero{
  width:100%;
}
.free-space-hero > div{
  min-width:0;
}
.free-space-hero .public-btn{
  white-space:nowrap;
}
.free-kpi{
  overflow:hidden;
}
.free-kpi strong{
  overflow-wrap:anywhere;
}
.free-card{
  min-width:0;
  overflow:hidden;
}
.free-chart-wrap{
  width:100%;
  min-width:0;
}
.free-entry{
  min-width:0;
}
.free-entry > *{
  min-width:0;
}
.free-entry b:first-child,
.free-entry small{
  overflow-wrap:anywhere;
}

/* ---------- Inside ONIX ---------- */
.inside-body{
  min-width:0;
  overflow-x:hidden;
}
.inside-shell{
  width:min(100%,1160px);
}
.inside-top{
  gap:18px;
}
.inside-top .public-brand{
  flex:0 0 auto;
}
.inside-top nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.inside-top nav a{
  margin:0;
}
.inside-hero,
.inside-section,
.inside-grid,
.inside-card{
  min-width:0;
}
.inside-card{
  overflow:hidden;
}
.inside-card p,
.inside-section p,
.inside-hero p{
  overflow-wrap:anywhere;
}
.inside-symbol{
  width:min(100%,430px);
  margin-inline:auto;
}

/* ---------- tablet ---------- */
@media (min-width: 701px) and (max-width: 1100px){
  .free-space-shell{
    grid-template-columns:170px minmax(0,1fr);
  }
  .free-space-side{
    padding:22px 14px;
  }
  .free-space-main{
    padding:24px;
  }
  .free-kpis{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .free-grid{
    grid-template-columns:1fr;
  }
  .free-chart-wrap{
    height:280px;
  }
  .inside-shell{
    padding-inline:28px;
  }
  .inside-top{
    height:auto;
    min-height:74px;
    padding:15px 0;
  }
  .inside-top nav a{
    font-size:11px;
  }
  .inside-hero{
    grid-template-columns:1fr .8fr;
    gap:24px;
    min-height:62vh;
  }
  .inside-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #ceo .inside-grid{
    grid-template-columns:1fr!important;
  }
}

/* ---------- mobile ---------- */
@media (max-width:700px){
  .free-space-shell{
    display:block;
    min-height:100dvh;
  }
  .free-space-side{
    position:sticky;
    top:0;
    height:auto;
    padding:10px 12px;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.08);
    background:rgba(8,10,13,.94);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }
  .free-space-side .public-brand{
    margin:0 0 9px;
  }
  .free-space-side .public-brand img{
    width:28px!important;
    height:28px!important;
  }
  .free-space-side .public-brand strong{
    font-size:11px;
  }
  .free-space-side .public-brand small{
    font-size:7px;
  }
  .free-space-nav{
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .free-space-nav::-webkit-scrollbar{
    display:none;
  }
  .free-space-nav button,
  .free-space-nav a{
    flex:0 0 auto;
    padding:9px 11px;
    font-size:11px;
    border-radius:999px;
  }
  .free-space-main{
    padding:18px 12px 28px;
    width:100%;
  }
  .free-space-hero{
    padding:12px 0 18px;
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    gap:12px;
  }
  .free-space-hero h1{
    font-size:clamp(30px,11vw,46px);
  }
  .free-space-hero p{
    font-size:12px;
    line-height:1.55;
  }
  .free-space-hero .public-btn{
    justify-self:start;
  }
  .free-kpis{
    grid-template-columns:1fr;
    gap:10px;
  }
  .free-kpi{
    padding:16px;
    border-radius:16px;
  }
  .free-kpi strong{
    font-size:25px;
  }
  .free-actions{
    grid-template-columns:1fr;
    gap:8px;
    margin:14px 0;
  }
  .free-actions button{
    min-height:46px;
  }
  .free-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .free-card{
    padding:14px;
    border-radius:16px;
  }
  .free-chart-wrap{
    height:240px;
  }
  .free-entry{
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    padding:10px;
  }
  .free-entry > small:last-child{
    grid-column:1 / -1;
  }
  .free-modal{
    padding:10px;
    align-items:end;
  }
  .free-modal-card{
    width:100%;
    max-height:82dvh;
    overflow:auto;
    border-radius:22px 22px 8px 8px;
  }
  .free-toast{
    left:12px;
    right:12px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    text-align:center;
  }

  .inside-shell{
    padding:0 16px 48px;
  }
  .inside-top{
    min-height:68px;
    height:auto;
    padding:12px 0;
    align-items:flex-start;
  }
  .inside-top .public-brand img{
    width:28px!important;
    height:28px!important;
  }
  .inside-top nav{
    max-width:62%;
    gap:7px 10px;
  }
  .inside-top nav a{
    font-size:9px;
    line-height:1.35;
  }
  .inside-hero{
    min-height:auto;
    padding:56px 0 46px;
    grid-template-columns:1fr;
    gap:28px;
  }
  .inside-hero h1{
    font-size:clamp(44px,15vw,70px);
    line-height:.96;
  }
  .inside-hero p{
    font-size:13px;
  }
  .inside-symbol{
    width:min(74vw,330px);
  }
  .inside-section{
    padding:48px 0;
  }
  .inside-section h2{
    font-size:clamp(29px,9vw,42px);
  }
  .inside-grid,
  #ceo .inside-grid{
    grid-template-columns:1fr!important;
    gap:11px;
  }
  .inside-card{
    padding:18px;
    border-radius:15px;
  }
  .ceo-placeholder{
    min-height:260px;
  }
}

/* Very small phones */
@media (max-width:390px){
  .free-space-main{
    padding-inline:9px;
  }
  .free-space-nav button,
  .free-space-nav a{
    font-size:10px;
    padding:8px 9px;
  }
  .free-chart-wrap{
    height:215px;
  }
  .inside-shell{
    padding-inline:12px;
  }
  .inside-top nav{
    max-width:66%;
  }
}

/* avoid hover-only UX on touch */
@media (hover:none){
  .free-actions button:hover,
  .inside-card:hover,
  .public-btn:hover{
    transform:none!important;
  }
}
