/* Shared refinements preserve Lumo's warm dark palette and existing layouts. */
:root { color-scheme: dark; --ui-muted: #b8ad9e; }
button, input, textarea, select { font: inherit; }
:where(button,a,input,textarea,select,[tabindex]):focus-visible { outline: 2px solid #f2cf7b; outline-offset: 4px; }
input::placeholder, textarea::placeholder { color: #aaa195; opacity: 1; }
button:disabled { cursor: not-allowed; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.mobile-nav-menu:not(.active) { visibility: hidden; }
.mobile-nav-menu.active { visibility: visible; }
.mobile-nav-link { color: #c7bcad; }
.mobile-menu-btn,.mobile-search-btn,.mobile-nav-close,.user-login-button,.menu-button,.favorite-btn,.preview-close-btn,.wizard-close,.ai-wizard-close,.modal-close { min-width:44px; min-height:44px; }
body.app-nav-open .dashboard-fab,body.app-nav-open .create-recipe-card,body.ui-dialog-open .dashboard-fab,body.ui-dialog-open .create-recipe-card { visibility:hidden; pointer-events:none; }
.mobile-nav-links { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
.recipe-card-roaster,.recipe-card-stat-label,.help,.form-hint { color:var(--ui-muted); }
.recipe-preview-sheet,.wizard-modal,.ai-wizard-modal { background-color:#15110d; }
.edit-tab-button { min-height:48px; }
.pagination-btn,.pagination-page { min-width:40px; min-height:40px; }
.admin-main :is(.page-subtitle,.plan-description,.template-card-subject,.template-card-meta,.prompt-description) { color:var(--ui-muted); }
.admin-main input,.admin-main select,.admin-main textarea { min-height:44px; }
.application-actions { flex-wrap:wrap; }
.application-actions button { min-height:44px; }
.templates-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); }
.template-card-header { align-items:flex-start; gap:12px; }
.template-card-name { min-width:0; overflow-wrap:anywhere; }
.template-card-meta { flex-wrap:wrap; }
.template-open-hint { display:flex; align-items:center; gap:8px; color:#f2cf7b; font-size:.875rem; margin-top:18px; }
.billing-management { padding:20px; margin-bottom:24px; border:1px solid #574933; border-radius:12px; }
.billing-management p { color:var(--ui-muted); line-height:1.6; margin:8px 0 16px; }
.billing-management button { padding:12px 18px; background:#f2cf7b; color:#21180c; border:0; border-radius:8px; cursor:pointer; font-weight:700; }
.billing-management a { color:#f2cf7b; text-underline-offset:3px; }
.billing-management [role=status] { margin-bottom:0; }
.current-plan-price { text-align:right; }
.current-plan-price #currentPlanPrice { font-size:1rem; }
.settings-section-description,.login-subtitle,.login-footer,.auth-subtitle { color:var(--ui-muted); }
@media (max-width:768px) {
    input,select,textarea { font-size:16px; }
    .application-actions button { flex:1 1 100px; padding:12px; }
    .application-actions button:first-child { flex-basis:100%; }
    .template-card-content { padding:20px; }
    .email-editor-modal.active { overflow-y:auto; }
    .email-editor-container { flex-direction:column; height:auto; min-height:100dvh; }
    .editor-sidebar { width:100%; min-height:100dvh; flex-shrink:0; overflow:visible; }
    .editor-sidebar-content { overflow:visible; }
    .editor-sidebar-footer { position:sticky; bottom:0; background:#15110d; z-index:2; }
    .editor-preview { min-height:600px; flex:none; }
    .editor-preview-frame.desktop,.editor-preview-frame.mobile { width:100%; max-width:100%; }
    .editor-preview-frame-container { padding:12px; }
    .template-card-subject { -webkit-line-clamp:3; }
    .edit-tab-text { display:block !important; font-size:10px; }
    .edit-tab-button { padding:8px 4px; gap:4px; }
    .billing-management { padding:16px; }
    .billing-management button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

.plan-offer-note { color:var(--ui-muted); font-size:.8rem; line-height:1.5; margin:12px 0 0; }
.billing-management h2 { font-size:1.15rem; }

body.ui-dialog-open { overflow:hidden; }
.edit-param-card input::placeholder,.form-group input::placeholder,.form-group textarea::placeholder { color:#aaa195 !important; opacity:1; }
.edit-param-label { color:#b8ad9e; }

/* Visibility changes immediately; opacity/position carry the animation. */
.mobile-nav-menu { transition-property:transform,opacity; }
.modal-overlay { transition-property:opacity; }
.modal-container { background-color:#15110d; }
