/* Mon salaire — V49 ergonomie, lisibilité et tablette */
:root{
  --accent-action:color-mix(in srgb,var(--orange-strong) 84%,#111 16%);
  --focus-ring:color-mix(in srgb,var(--orange) 48%,transparent);
  --ui-radius:18px;
}

html{font-size:16px}
body{line-height:1.45;text-rendering:optimizeLegibility}
button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button,summary{touch-action:manipulation}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--focus-ring)!important;
  outline-offset:2px;
}

/* Actions principales : contraste renforcé, quel que soit le thème. */
.empty-state button,.primary-button,.onboarding-submit,.planning-primary{
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent-action) 92%,var(--orange) 8%),var(--accent-action))!important;
  color:#fff!important;
  box-shadow:0 9px 22px color-mix(in srgb,var(--accent-action) 22%,transparent)!important;
}
.planning-file-icon{background:var(--accent-action)!important;color:#fff!important}

/* Résultat principal : conserve la couleur choisie mais sécurise les petits textes blancs. */
.result-hero{
  background-image:
    radial-gradient(circle at 96% 6%,color-mix(in srgb,var(--orange-soft) 34%,transparent),transparent 26%),
    linear-gradient(145deg,color-mix(in srgb,var(--accent-action) 88%,var(--orange) 12%) 0%,var(--accent-action) 62%,color-mix(in srgb,var(--accent-action) 90%,#000 10%) 100%)!important;
  border-color:color-mix(in srgb,var(--accent-action) 40%,transparent)!important;
}
.result-meta{font-size:13px}
.result-hero>p{font-size:15px;margin-top:22px}
.result-main{font-size:clamp(38px,10vw,50px)}
.result-footer{font-size:12px;line-height:1.35}
.live-badge{font-size:11px;padding:7px 10px}
.eur-pill{font-size:13px;padding:8px 11px}
.save-month-button{min-height:48px;font-size:13px}

/* Hiérarchie générale. */
.app-header{padding-inline:16px;gap:11px}
.app-header p,.section-heading p{font-size:11.5px;letter-spacing:.075em}
.app-header h1{font-size:22px}
.section-heading{margin-bottom:14px}
.section-heading h2{font-size:26px;line-height:1.08}
.section-heading button{font-size:13px;min-height:44px}
.screen-content{padding:0 14px}
.input-card,.breakdown-card{border-radius:24px;margin-bottom:16px}
.card-title-row{padding:17px 16px 13px;gap:12px}
.card-title-row h3,.breakdown-card h3{font-size:17px}
.card-title-row p{font-size:12.5px;line-height:1.4}
.clear-primes-button{font-size:11px;min-height:40px;padding-inline:12px}

/* Saisie : cibles tactiles plus confortables. */
.stepper-row,.money-field-row{min-height:70px;padding-block:11px}
.stepper-copy strong{font-size:14.5px}
.stepper-copy span{font-size:11.5px;line-height:1.35}
.stepper-control{grid-template-columns:44px 52px 44px;border-radius:14px}
.stepper-control button{width:44px;height:44px}
.stepper-control input{width:52px;height:44px;font-size:16px}
.money-field-row label{font-size:13.5px}
.money-field-row label small{font-size:11px;line-height:1.35}
.money-input{height:46px;width:148px}
.money-input span{font-size:11.5px}
.small-number-input{height:46px}

/* Détails et écrans secondaires. */
.breakdown-row,.breakdown-total{min-height:52px;font-size:13px}
.breakdown-row span small{font-size:10.5px;line-height:1.35}
.breakdown-row strong{font-size:13px}
.notice-card p{font-size:11.5px;line-height:1.55}
.empty-state p{font-size:13px}
.empty-state button,.primary-button{min-height:50px;font-size:14px}
.history-card-head p{font-size:15px}
.history-card-head small,.history-meta{font-size:11px}
.secondary-button{min-height:46px;font-size:13px}
.privacy-note p{font-size:11px}
.install-card p{font-size:11px}
.install-card>button{min-height:42px;font-size:11px}

/* Réglages / profil. */
.settings-accordion summary{min-height:62px;font-size:14px}
.settings-accordion summary small{font-size:10.5px;line-height:1.3;text-align:right}
.setting-field-row{min-height:66px}
.setting-field-row label{font-size:13px}
.setting-field-row label small{font-size:10.5px;line-height:1.35}
.settings-subgroup h4{font-size:12px}
.profile-section label{font-size:12.5px}
.profile-section label>small{font-size:10.5px;line-height:1.35}
.profile-section legend{font-size:11.5px}
.profile-proposal span{font-size:11px}
.profile-proposal small{font-size:10px}
.profile-warning{font-size:11.5px}
.profile-summary-card p,.profile-summary-card small{font-size:10.5px}
.profile-summary-card h3{font-size:15px}
.profile-summary-card button{min-height:44px;font-size:11px}
.access-secure{font-size:10.5px}
.install-steps p{font-size:12px}
.android-note{font-size:11px!important}

/* Navigation : libellés plus faciles à lire. */
.bottom-nav{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));gap:5px}
.bottom-nav button{min-height:52px;font-size:10.5px;gap:3px}
.bottom-nav button svg{width:21px;height:21px}

/* Choix de couleur. */
.theme-picker-trigger{height:46px;font-size:11px}
.theme-picker-kicker{font-size:10px}
.theme-picker-title{font-size:21px}
.theme-picker-copy{font-size:11.5px}
.theme-choice{min-height:55px;font-size:12px}

/* Objectif mensuel. */
.goal-body-v26{padding:15px;gap:13px}
.goal-target-field{font-size:13px}
.goal-commission-choice strong{font-size:13px}
.goal-commission-choice small{font-size:11px;line-height:1.35}
.goal-days-wrap>label,.goal-days-wrap>strong{font-size:12px}
.goal-days-wrap>small,.goal-month-field small{font-size:10.5px;line-height:1.45}
.goal-days-control span{font-size:11px}
.goal-planning-empty span,.goal-planning-head span{font-size:12px}
.goal-planning-empty button,.goal-planning-head button{min-height:38px;font-size:10.5px}
.goal-planning-stats small{font-size:10px}
.goal-planning-stats strong{font-size:13px}
.goal-planning-summary p{font-size:10.5px}
.goal-loading,.goal-placeholder{font-size:12px}
.goal-metrics small,.goal-metrics-v43 small{font-size:10.5px}
.goal-metrics strong{font-size:16px}
.goal-metrics-v43 strong{font-size:19px}
.goal-commission-line{font-size:11px}
.goal-best-combo small{font-size:10.5px}
.goal-best-combo span{font-size:11px}
.goal-alternatives-title strong{font-size:12px}
.goal-alternatives-title small{font-size:10px}
.goal-sector-grid span{font-size:10px}
.goal-sector-grid small{font-size:9.5px}
.goal-standby-advice strong{font-size:12px}
.goal-standby-advice p{font-size:10.5px}
.goal-footnote{font-size:10px}
.goal-verdict span{font-size:11px}
.goal-plan-head small{font-size:10px}
.goal-plan-head strong{font-size:13.5px}
.goal-plan-head>span{font-size:10.5px}
.goal-plan-card li,.goal-plan-card p{font-size:10.5px}
.goal-plan-card li small{font-size:9.5px}
.goal-plan-total span{font-size:10.5px}
.goal-day-pattern-grid span{font-size:11px}
.goal-day-pattern-grid strong{font-size:12px}
.goal-day-pattern-grid small{font-size:9.5px}
.goal-swap-grid span{font-size:10px}
.goal-swap-grid strong{font-size:11px}
.goal-swap-grid small{font-size:9px}
.goal-max-box span{font-size:10px}
.goal-max-box small{font-size:9.5px}
.goal-pdf-button{min-height:48px;font-size:12px}
.month-switcher-head-v31 p{font-size:10.5px}
.month-switcher-head-v31 h2{font-size:22px}
.month-switcher-badge-v31{font-size:10px;min-height:30px}
.month-picker-v31>span{font-size:10.5px}
.month-picker-v31 input{font-size:14px}
.month-switcher-actions-v31 button{min-height:36px;font-size:10.5px}
.month-switcher-actions-v31 small{font-size:10.5px}
.goal-compact-plan-v43 small{font-size:10.5px}
.goal-compact-plan-v43 strong{font-size:15.5px}
.goal-plan-details-v43>summary,.goal-tech-details-v43>summary{min-height:52px;font-size:12px}
.goal-tech-metric-v43 small{font-size:10.5px}
.goal-commission-level-title-v46{font-size:11.5px}
.goal-commission-level-grid-v46 strong{font-size:10.5px}
.goal-commission-level-grid-v46 small{font-size:10px}

/* Commissions quotidiennes. */
.commission-ledger-v33{padding:15px;border-radius:19px;gap:13px}
.commission-ledger-head-v33 p{font-size:10.5px}
.commission-ledger-head-v33 h4{font-size:16px}
.commission-ledger-head-v33>span{font-size:10.5px}
.commission-intro-v33{font-size:11.5px}
.commission-summary-v33 small{font-size:10px}
.commission-summary-v33 strong{font-size:13px}
.commission-info-v33{font-size:10.5px}
.commission-day-v33{padding:12px}
.commission-day-head-v33 strong{font-size:12.5px}
.commission-day-head-v33 small{font-size:10px}
.commission-source-v33{font-size:9px;padding:5px 8px}
.commission-fields-v33 label>span,.commission-add-grid-v33 label>span{font-size:10px}
.commission-fields-v33 input,.commission-fields-v33 select,.commission-add-v33 input,.commission-add-v33 select{height:42px;font-size:12.5px}
.commission-money-v33 b{font-size:10.5px}
.commission-super-v33 strong{font-size:10.5px}
.commission-super-v33 small{font-size:9.5px}
.commission-calc-v33 span,.commission-future-line-v33 span{font-size:10px}
.commission-calc-v33 strong,.commission-future-line-v33 strong{font-size:12px}
.commission-day-note-v33,.commission-add-v33>small{font-size:9.5px}
.commission-remove-v33{font-size:10px;min-height:32px}
.commission-add-v33 summary{font-size:11.5px;min-height:40px;display:flex;align-items:center}
.commission-add-v33 button{min-height:42px;font-size:10.5px}
.commission-inline-message-v33,.commission-empty-v33{font-size:10.5px}
.commission-validate-v38{min-height:40px;font-size:10.5px;padding-inline:17px}
.commission-validated-row-v38{min-height:52px}
.commission-validated-row-v38 span{font-size:11.5px}
.commission-validated-row-v38 strong{font-size:12px}

/* Import planning. */
.planning-import-button{min-height:44px;font-size:12.5px}
.planning-field span{font-size:12.5px}
.planning-file-drop small{font-size:11.5px}
.planning-category-card small{font-size:10.5px}
.planning-privacy{font-size:11px}

/* Texte du badge hors-ligne. */
#offline-status{font-size:11px!important;padding:8px 12px!important}

/* Téléphones étroits : on protège l'espace sans revenir aux textes minuscules. */
@media(max-width:520px){
  .planning-import-button{font-size:0}
  .goal-metrics-v43 small{font-size:10px}
  .goal-metrics-v43 strong{font-size:16px}
  .goal-compact-plan-v43 strong{font-size:14px}
  .goal-compact-plan-total-v43 strong{font-size:15px}
  .commission-ledger-v33{padding:13px}
}

/* Tablettes : la v48 était bloquée à 480 px. La v49 exploite réellement l'écran. */
@media(min-width:560px){
  body{padding:22px 0}
  .app-frame{
    max-width:min(820px,calc(100vw - 36px));
    min-height:calc(100svh - 44px);
    border-radius:30px;
  }
  .app-header{padding:calc(18px + env(safe-area-inset-top)) 24px 16px;grid-template-columns:48px 1fr auto}
  .brand-mark{width:46px;height:46px;border-radius:15px}
  .screen-content{padding:0 22px}
  .result-hero{margin:6px 22px 28px;padding:24px;border-radius:28px}
  .result-main{font-size:50px}
  .section-heading{margin-left:2px;margin-right:2px}
  .input-card,.breakdown-card{border-radius:24px}
  .card-title-row{padding-inline:18px}
  .card-body{padding-inline:0}
  .bottom-nav{max-width:700px;left:50%;right:auto;width:calc(100% - 56px);transform:translateX(-50%);bottom:18px}
  .theme-picker-trigger{right:max(24px,calc((100vw - 820px)/2 + 24px));bottom:94px}
  .theme-picker-sheet{width:min(100%,620px)}
  .planning-import-sheet{width:min(720px,calc(100% - 28px));border-radius:28px 28px 0 0}
  .salary-month-switcher-v31{padding:18px;border-radius:20px}
  .goal-body-v26{padding:18px}
  .goal-metrics-v43>div{min-height:82px}
  .goal-commission-level-grid-v46 label>span{min-height:62px}
  .commission-ledger-v33{padding:17px}
}

@media(min-width:900px){
  .app-frame{max-width:860px}
  .screen-content{padding-inline:26px}
  .result-hero{margin-inline:26px}
  .bottom-nav{max-width:720px}
  .theme-picker-trigger{right:max(24px,calc((100vw - 860px)/2 + 24px))}
}

@media(prefers-reduced-motion:no-preference){
  .input-card,.settings-accordion,.history-card{transition:box-shadow .16s ease,border-color .16s ease}
}
