

/* =========================================================
   v1.19 — reliability pass over the v1.18 visual baseline
   Target/state coherence, focus/keyboard, truthful demo data
   ========================================================= */

/* Mail: switching is atomic and mobile uses list -> detail. */
.mail-detail-v118.mail-switching-v119 .mail-detail-body-v118{opacity:.42;pointer-events:none}
.mail-detail-v118 .mail-detail-body-v118{transition:opacity .12s ease}
.mail-back-v119{display:none}
.mail-thread-v118[role="button"]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.mail-thread-v118[aria-pressed="true"]{background:var(--surface-hover);box-shadow:inset 2px 0 0 var(--accent)}
.mail-thread-v118 .mail-thread-state-v119{font-size:10.5px;color:var(--text-faint)}
@media(max-width:900px){
  #mail-center:not(.mail-detail-open-v119) .mail-detail-v118{display:none}
  #mail-center.mail-detail-open-v119 .mail-list-v118{display:none}
  #mail-center.mail-detail-open-v119 .mail-detail-v118{display:block}
  .mail-back-v119{display:inline-flex;align-items:center;justify-content:center}
  .mail-list-v118{max-height:none!important}
}

/* Community: never let the send action escape the 320px useful width. */
.reply-footer{flex-wrap:wrap;min-width:0}
.reply-footer>span{min-width:0;max-width:100%}
@media(max-width:430px){
  .reply-footer{align-items:stretch}
  .reply-footer .toolset{margin-left:0!important;width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:5px}
  .reply-footer .toolset .btn{width:100%;min-width:0;padding-left:6px;padding-right:6px}
  .community-intent-v118{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
  .community-intent-v118>*{flex:0 0 auto}
}

/* Drawers are non-modal dialogs: visible focus and predictable keyboard target. */
.drawer[role="dialog"]:focus{outline:none}
.drawer[role="dialog"] .drawer-close-v117:focus-visible,
.drawer[role="dialog"] button:focus-visible,
.drawer[role="dialog"] input:focus-visible,
.drawer[role="dialog"] select:focus-visible,
.drawer[role="dialog"] textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Theme Studio: candidate state is explicit; warnings do not prevent saving. */
.theme-candidate-state-v119{
  min-height:26px;display:inline-flex;align-items:center;padding:0 7px;border:1px solid var(--stroke-subtle);
  border-radius:7px;background:var(--surface-inset);color:var(--text-muted);font-size:10.5px
}
.theme-candidate-state-v119.saved{color:var(--good);border-color:rgba(89,214,164,.26)}
.theme-candidate-state-v119.warning{color:var(--warn);border-color:rgba(243,201,105,.28)}

/* Dock: compact demo state and keyboard-accessible six-position menu. */
.ai-capacity-foot-v117 b{font-size:9px;letter-spacing:.08em;color:var(--ai-text-strong)}
.dock-position-grid-v119{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;padding-top:4px;margin-top:3px;border-top:1px solid var(--stroke-subtle)}
.dock-position-grid-v119 b{grid-column:1/-1;font-size:9.5px;color:var(--text-muted);padding:3px 5px}
.dock-position-grid-v119 button{min-height:28px!important;font-size:9.5px!important;text-align:center!important;padding:0 4px!important}
@media(max-width:780px){
  .ai-capacity-dock-v117{left:12px!important;right:auto!important;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;transform:none!important}
  body:not(.drawer-open-v117) .main{padding-bottom:64px}
  .ai-mobile-summary-v117{max-width:165px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
