/**
 * Sistema de responsividade — Mesa do Sócio (#mesaAppShell + modais globais).
 * Breakpoints: mobile <480px | tablet 480–767px | desktop ≥768px.
 * Carregar por último (após desktop-wide / mesa-seleto-modal-premium).
 */

@keyframes mesaSheetSlideUp{
  from{
    opacity:0;
    transform:translateY(100%);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* ── ≤767px: base (inputs 16px, recheio, sem overflow-x na shell) ───────── */
@media (max-width:767px){
  #mesaAppShell{
    overflow-x:clip;
    min-height:100dvh;
  }

  #mesaAppShell .container{
    padding-left:max(20px, env(safe-area-inset-left, 0px));
    padding-right:max(20px, env(safe-area-inset-right, 0px));
    padding-bottom:max(24px, env(safe-area-inset-bottom, 0px));
  }

  #mesaAppShell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  #mesaAppShell select,
  #mesaAppShell textarea,
  #mesaAppShell .mesa-password-input{
    font-size:16px !important;
  }

  #mesaAppShell .date-display-btn,
  #mesaAppShell .mobile-select-trigger{
    font-size:16px;
    min-height:52px;
  }

  #mesaAppShell .form-row.cols-3,
  #mesaAppShell .form-row.cols-2{
    grid-template-columns:1fr !important;
  }

  #mesaAppShell .toggle{
    min-height:48px;
  }

  #mesaAppShell .toggle-btn{
    min-height:48px;
    font-size:15px;
  }

  /* Contribuição: 3 colunas com scroll se apertado */
  .contrib-cards{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:12px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding-bottom:4px;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .contrib-cards::-webkit-scrollbar{display:none}
  .contrib-card{
    flex:0 0 min(100%, 280px);
    scroll-snap-align:start;
    min-width:min(280px, 85vw);
  }

  .mesa-month-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  /* Scoreboard tablet: 2×2 */
  #headerStatsMaster.header-stats--scoreboard:not(:has(.stat--guest-dashboard)){
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
    overflow:visible;
    scroll-snap-type:none;
  }
  #headerStatsMaster.header-stats--scoreboard:not(:has(.stat--guest-dashboard)) > .stat{
    min-width:0;
  }
}

/* ── ≤767px: layout móvel (KPIs em grelha 2×2; hero só em ecrãs estreitos) ─ */
@media (max-width:767px){
  @media (max-width:479px){
    #headerKpiHero{
      display:block;
      width:100%;
      padding:0 0 12px;
      margin:0 0 4px;
      border-bottom:1px solid var(--border-subtle, var(--border));
    }
    #headerKpiHero .app-header__kpi-hero-label{
      font-size:10px;
      font-weight:600;
      letter-spacing:0.1em;
      text-transform:uppercase;
      color:var(--text-dim);
      margin-bottom:4px;
    }
    #headerKpiHero .app-header__kpi-hero-value{
      font-size:28px;
      font-weight:700;
      line-height:1.1;
      font-variant-numeric:tabular-nums;
      color:var(--text);
    }
  }

  .app-header{
    padding:max(32px, env(safe-area-inset-top, 0px) + 16px) 24px 24px;
    margin-bottom:24px;
  }

  .app-header__scoreboard{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }

  .app-header__scoreboard__primary .logo-title{
    font-size:22px;
    line-height:1.15;
  }

  .app-header__scoreboard__kpis{
    width:100%;
    min-width:0;
  }

  .header-patrimonio-executive__metrics.mesa-kpi-scroll{
    position:relative;
    overflow-x:visible;
    overflow-y:visible;
    scroll-snap-type:none;
    padding:0;
    margin:0;
    mask-image:none;
    -webkit-mask-image:none;
  }

  #headerStatsMaster.header-stats--scoreboard:not(:has(.stat--guest-dashboard)){
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    width:100%;
    min-width:0;
  }
  #headerStatsMaster.header-stats--scoreboard:not(:has(.stat--guest-dashboard)) > .stat{
    min-width:0;
    max-width:none;
    width:auto;
    padding:12px;
    scroll-snap-align:none;
  }

  #headerStatsMaster.header-stats--scoreboard:has(.stat--guest-dashboard) > .stat{
    min-width:0;
    width:100%;
  }

  .app-header__scoreboard__tools{
    width:100%;
    justify-content:flex-start;
  }

  .mesa-header-session{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    width:100%;
  }

  .mesa-header-btn{
    min-height:44px;
    min-width:44px;
    padding:10px 14px;
  }

  /* Carteiras no header: scroll horizontal */
  .wallet-strip{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:12px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding:4px 0 8px;
    mask-image:linear-gradient(
      to right,
      transparent,
      black 24px,
      black calc(100% - 24px),
      transparent
    );
    -webkit-mask-image:linear-gradient(
      to right,
      transparent,
      black 24px,
      black calc(100% - 24px),
      transparent
    );
  }
  .wallet-strip::-webkit-scrollbar{display:none}
  .wallet-strip .wallet-mini{
    flex:0 0 auto;
    min-width:220px;
    max-width:min(320px, 88vw);
    scroll-snap-align:start;
    min-height:200px;
  }

  .wallet-panel__summary{
    padding:16px 14px;
    min-height:44px;
  }
  .wallet-panel__caret{
    min-width:44px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* Patrimônio: grelha 1 coluna */
  .summary-grid{
    grid-template-columns:1fr !important;
  }
  .summary-card--span-2{
    grid-column:1 / -1 !important;
  }

  /* Cartão premium: compactar zonas; performance junto ao bloco de cotação */
  .summary-card.summary-card--premium .summary-card__z1{
    padding:14px 16px 10px;
  }
  .summary-card.summary-card--premium .summary-card__identity .card-logo-badge,
  .summary-card.summary-card--premium .summary-card__logo-wrap svg{
    width:32px;
    height:32px;
  }
  .summary-card.summary-card--premium .summary-card__ticker{
    font-size:16px;
  }
  .summary-card.summary-card--premium .summary-card__z2{
    padding:12px 16px;
  }
  .summary-card.summary-card--premium .summary-card__position-row{
    grid-template-columns:1fr;
    gap:10px;
  }
  .summary-card.summary-card--premium .summary-card__z3{
    margin-top:0;
    padding:12px 16px 14px;
    border-top:1px solid var(--border-subtle, var(--border));
  }
  .summary-card.summary-card--premium:active{
    transform:scale(0.992);
    transition:transform 0.1s ease;
  }

  /* Mesa de Decisão: navegação horizontal com snap (nunca colapsada) */
  .mesa-decision-deck__title{
    font-size:20px;
    margin-bottom:16px;
  }
  .mesa-decision-deck__tabs.mesa-decision-deck__tools{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:4px;
    padding:0 16px;
    margin:0 -4px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    -ms-overflow-style:none;
    border:none;
    border-radius:0;
    background:transparent;
    position:relative;
  }
  .mesa-decision-deck__tabs.mesa-decision-deck__tools::-webkit-scrollbar{
    display:none;
  }
  .mesa-decision-deck__tabs.mesa-decision-deck__tools::after{
    content:'';
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    width:32px;
    background:linear-gradient(to left, var(--bg-root), transparent);
    pointer-events:none;
    z-index:2;
  }
  .mesa-decision-deck .tab.mesa-tool-card{
    display:inline-flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex:0 0 auto;
    width:auto;
    min-width:44px;
    height:40px;
    min-height:40px;
    padding:10px 16px;
    border-radius:0;
    border:none;
    border-bottom:2px solid transparent;
    box-shadow:none;
    text-align:center;
    transform:none;
    scroll-snap-align:start;
    white-space:nowrap;
  }
  .mesa-decision-deck .tab.mesa-tool-card:last-child{
    border-bottom:2px solid transparent;
  }
  .mesa-decision-deck .tab.mesa-tool-card:active{
    opacity:0.75;
    transition:opacity 100ms ease;
  }
  .mesa-decision-deck .tab.mesa-tool-card.active{
    border-bottom-color:var(--accent);
    color:var(--text);
    font-weight:600;
  }
  [data-theme="dark"] .mesa-decision-deck .tab.mesa-tool-card.active{
    border-bottom-color:var(--gold);
    color:var(--gold-soft);
  }
  .mesa-decision-deck .tab.mesa-tool-card:not(.active){
    color:var(--text-muted, var(--text-mid));
  }
  .mesa-decision-deck .tab .tab__pin{
    display:none;
  }
  .mesa-decision-deck .mesa-tool-card__icon{
    width:20px;
    height:20px;
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .mesa-decision-deck .mesa-tool-card__icon svg{
    width:18px;
    height:18px;
  }
  .mesa-decision-deck .mesa-tool-card__body{
    min-width:0;
    display:inline-flex;
    align-items:center;
  }
  .mesa-decision-deck .mesa-tool-card__body .mesa-tool-card__desc,
  .mesa-decision-deck .mesa-tool-card__body .mesa-tool-card__desc--mobile,
  .mesa-decision-deck .mesa-tool-card__cta,
  .mesa-decision-deck .mesa-decision-deck__hero-preview{
    display:none !important;
  }
  .mesa-decision-deck .tab__title{
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    font-weight:600;
  }
  #tabCdiSocio,
  #tabPatrimonioSocio,
  #tabLivroSocio,
  #tabRadarSocio{
    order:0 !important;
    max-height:none !important;
    overflow:visible !important;
  }
  [data-theme="clean"] #tabCdiSocio.tab.mesa-tool-card{
    background:var(--surface, var(--bg-surface)) !important;
    color:var(--text-muted, var(--text-mid));
  }
  [data-theme="clean"] #tabCdiSocio.tab.mesa-tool-card.active{
    color:var(--text);
  }

  /* Livro: CTA sticky + fade */
  #mainFormCard{
    position:relative;
    padding-bottom:max(88px, calc(72px + env(safe-area-inset-bottom, 0px)));
  }
  #mainFormCard .btn-add{
    position:sticky;
    bottom:max(16px, env(safe-area-inset-bottom, 0px));
    z-index:6;
    height:52px;
    min-height:52px;
    font-size:15px;
    font-weight:600;
    border-radius:8px;
    box-shadow:
      0 -16px 20px color-mix(in srgb, var(--bg) 88%, transparent),
      var(--shadow-sm);
  }
  #mainFormCard .btn-add:active:not(:disabled){
    transform:scale(0.99);
    opacity:0.95;
  }

  /* Contribuição: stack vertical + ícone + grelha de texto */
  .contrib-cards{
    flex-direction:column;
    overflow:visible;
    scroll-snap-type:none;
    gap:10px;
  }
  .contrib-card{
    flex:none;
    min-width:0;
    width:100%;
    display:grid;
    grid-template-columns:28px 1fr;
    column-gap:12px;
    row-gap:4px;
    padding:14px 16px;
    border-left:3px solid var(--border);
    align-items:start;
  }
  .contrib-card--best{border-left-color:var(--positive);}
  .contrib-card--worst{border-left-color:var(--negative);}
  .contrib-card--concentration{border-left-color:var(--accent);}
  [data-theme="dark"] .contrib-card--concentration{border-left-color:var(--gold-dim);}
  .contrib-card__icon{
    margin:0;
    grid-column:1;
    grid-row:1 / -1;
    align-self:start;
  }
  .contrib-card__kicker{grid-column:2;grid-row:1;margin:0;}
  .contrib-card__ticker{grid-column:2;grid-row:2;margin:0;}
  .contrib-card__amount{
    grid-column:2;
    grid-row:3;
    font-size:20px;
    margin:0;
  }
  .contrib-card__note{grid-column:2;grid-row:4;margin-top:4px;}

  /* Resultado realizado / encerradas: tabela → lista */
  .mesa-fin-card-total{
    font-size:28px;
    width:100%;
    text-align:left;
  }
  .mesa-table-wrap{
    overflow:visible;
    border:none;
  }
  .mesa-fin-table,
  .mesa-fin-table thead,
  .mesa-fin-table tbody,
  .mesa-fin-table tr,
  .mesa-fin-table th,
  .mesa-fin-table td{
    display:block;
    width:100%;
  }
  .mesa-fin-table thead{
    display:none;
  }
  .mesa-fin-table tbody tr{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      'tk dt'
      'num num'
      'note note';
    padding:12px 16px;
    border-bottom:1px solid var(--border-subtle, var(--border));
    gap:2px 12px;
  }
  .mesa-fin-table tbody tr:last-child{
    border-bottom:none;
  }
  .mesa-fin-table tbody td{
    border:none;
    padding:0;
  }
  .mesa-fin-table tbody td.mesa-fin-td--ticker{
    grid-area:tk;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    font-size:14px;
  }
  .mesa-fin-table tbody td.mesa-fin-td--date{
    grid-area:dt;
    font-size:12px;
    color:var(--text-mid);
    text-align:right;
    align-self:start;
    white-space:nowrap;
  }
  .mesa-fin-table tbody td.mesa-fin-td--num{
    grid-area:num;
    text-align:right;
    font-size:16px;
    font-weight:700;
    padding-top:4px;
  }
  .mesa-fin-table tbody td.mesa-fin-td--note{
    grid-area:note;
    font-size:12px;
    color:var(--text-mid);
    padding-top:2px;
  }

  /* Fechamento mensal: 2 colunas, esconder sublinha aportes/vendas */
  .mesa-month-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
  }
  .mesa-month-cell{
    aspect-ratio:1;
    min-height:0;
  }
  .mesa-month-cell__sub{
    display:none;
  }
  .mesa-month-cell__result{
    font-size:16px;
  }
  .mesa-month-cell--current{
    outline:2px solid var(--accent);
    outline-offset:1px;
  }
  [data-theme="dark"] .mesa-month-cell--current{
    outline-color:var(--gold-dim);
  }

  /* Tabs secundárias (Relatórios, etc.): scroll horizontal */
  .mesa-reports-tabs{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:8px;
    overflow-x:auto;
    scrollbar-width:none;
    padding-bottom:6px;
    mask-image:linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);
    -webkit-mask-image:linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);
  }
  .mesa-reports-tabs::-webkit-scrollbar{display:none}
  .mesa-reports-tab{
    flex:0 0 auto;
    white-space:nowrap;
    padding:12px 16px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    border-bottom:2px solid transparent;
  }
  .mesa-reports-tab--active{
    border-bottom-color:var(--accent);
  }
  [data-theme="dark"] .mesa-reports-tab--active{
    border-bottom-color:var(--gold);
  }

  .reports-card__actions .btn-seleto,
  .reports-card__actions .btn-seleto-ghost{
    width:100%;
    min-height:52px;
  }

  /* Jornal: título até 3 linhas */
  .jornal-modal__item-title{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    line-clamp:3;
    overflow:hidden;
  }

  /* Bottom sheets — modais centrados */
  .seleto-modal.open,
  .reports-modal.open,
  .jornal-modal.open,
  .confirm-modal.open,
  .calendar-modal.open{
    align-items:flex-end;
    justify-content:center;
    padding:0;
    padding-bottom:env(safe-area-inset-bottom, 0px);
    background:color-mix(in srgb, var(--bg-inverse) 55%, transparent);
  }
  [data-theme="dark"] .seleto-modal.open,
  [data-theme="dark"] .reports-modal.open,
  [data-theme="dark"] .jornal-modal.open,
  [data-theme="dark"] .confirm-modal.open,
  [data-theme="dark"] .calendar-modal.open{
    background:color-mix(in srgb, var(--bg-inverse) 78%, transparent);
  }

  .seleto-modal__card,
  .reports-card,
  .jornal-modal__card,
  .confirm-modal__card,
  .calendar-card{
    position:relative;
    width:100%;
    max-width:100%;
    max-height:90dvh;
    margin:0;
    border-radius:16px 16px 0 0;
    animation:mesaSheetSlideUp 320ms cubic-bezier(0.16, 1, 0.3, 1) both;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-height:0;
    padding-top:18px;
    box-shadow:var(--shadow-md);
  }
  .calendar-modal.open{
    display:flex !important;
  }

  .seleto-modal__card::after,
  .reports-card::after,
  .jornal-modal__card::after,
  .confirm-modal__card::after,
  .calendar-card::after{
    content:'';
    position:absolute;
    top:10px;
    left:50%;
    transform:translateX(-50%);
    width:36px;
    height:4px;
    border-radius:2px;
    background:var(--border);
    z-index:8;
    pointer-events:none;
  }

  .seleto-modal__body-scroll,
  .reports-card__scroll,
  .jornal-modal__body,
  .confirm-modal__scroll{
    overflow-y:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
    flex:1;
    min-height:0;
    padding-left:24px;
    padding-right:24px;
    padding-bottom:max(24px, env(safe-area-inset-bottom, 0px));
  }
  .seleto-modal__footer-cta,
  .reports-card__footer-sticky,
  .confirm-modal__footer{
    padding-left:24px;
    padding-right:24px;
    padding-bottom:max(20px, env(safe-area-inset-bottom, 0px));
  }
  .calendar-card{
    overflow-y:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
    flex:1;
    min-height:0;
    max-height:90dvh;
    padding-left:24px;
    padding-right:24px;
    padding-bottom:max(32px, env(safe-area-inset-bottom, 0px));
  }
  .seleto-modal__body-scroll::-webkit-scrollbar,
  .reports-card__scroll::-webkit-scrollbar,
  .jornal-modal__body::-webkit-scrollbar,
  .confirm-modal__scroll::-webkit-scrollbar,
  .calendar-card::-webkit-scrollbar{
    display:none;
  }

  .seleto-modal__header,
  .reports-card__header,
  .jornal-modal__header,
  .confirm-modal__header{
    padding-left:24px;
    padding-right:24px;
    flex-shrink:0;
  }
  .calendar-modal.open .calendar-topbar,
  .calendar-modal.open .calendar-nav,
  .calendar-modal.open .calendar-weekdays,
  .calendar-modal.open .calendar-grid,
  .calendar-modal.open .calendar-footer{
    padding-left:24px;
    padding-right:24px;
  }

  /* Anula animação de escala dos modais premium em mobile */
  .seleto-modal__card,
  .reports-card,
  .jornal-modal__card{
    animation:mesaSheetSlideUp 320ms cubic-bezier(0.16, 1, 0.3, 1) both !important;
  }

  #seletoModal.open{
    align-items:flex-end;
  }

  .mobile-select-sheet__panel{
    max-height:90dvh;
    padding-bottom:max(20px, env(safe-area-inset-bottom, 0px));
  }

  .section-header .header-actions{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:8px;
    overflow-x:auto;
    scrollbar-width:none;
    padding-bottom:4px;
  }
  .section-header .header-actions::-webkit-scrollbar{display:none}
  .section-header .header-actions .btn-ghost{
    flex:0 0 auto;
    white-space:nowrap;
    min-height:44px;
  }

  /* :active em cartões e tabs comuns */
  .summary-card.summary-card--premium:active,
  .wallet-mini:active,
  .contrib-card:active{
    opacity:0.94;
  }
}

/* Desktop / tablet largo: esconder hero de patrimônio móvel */
@media (min-width:768px){
  #headerKpiHero{
    display:none !important;
  }
}

@media (prefers-reduced-motion: reduce){
  .seleto-modal__card,
  .reports-card,
  .jornal-modal__card,
  .confirm-modal__card,
  .calendar-card{
    animation:none !important;
  }
}
