/* Socle cohérent pour chaque saisie : modales, réglages et authentification. */
:root { --form-ink:#243229; --form-muted:#6d786e; --form-line:#dbe2d7; --form-well:#f6f8f3; --form-accent:#b34e32; --form-forest:#30472e; }
.app-form { display:grid; gap:20px; }
.app-form-dialog { width:min(660px,calc(100vw - 32px)); border:0; border-radius:22px; overflow:hidden; box-shadow:0 24px 70px rgba(25,37,31,.24); }
.app-form-dialog .dialog-head { padding:22px 26px 18px; border-bottom:1px solid var(--form-line); background:linear-gradient(120deg,#fffdf9,#f5f7f0); }
.app-form-dialog .dialog-head h2 { font-size:22px; letter-spacing:-.02em; color:var(--form-ink); }
.app-form-dialog .dialog-body { padding:24px 26px 26px; background:#fff; }
.app-form .field { margin:0; }
.app-field { display:grid; gap:7px; }
.app-field label, .app-form-section__head span { margin:0; font-size:11px; font-weight:750; letter-spacing:.045em; text-transform:uppercase; color:#536154; }
.app-form input:not([type=checkbox]):not([type=radio]), .app-form select, .app-form textarea, .app-field input:not([type=checkbox]):not([type=radio]), .app-field select { min-height:46px; padding:11px 13px; border:1px solid var(--form-line); border-radius:11px; background:#fff; color:var(--form-ink); font-size:13px; transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease; }
.app-form textarea { min-height:96px; resize:vertical; }
.app-form input:hover, .app-form select:hover, .app-form textarea:hover { border-color:#bfcbb8; }
.app-form input:focus, .app-form select:focus, .app-form textarea:focus { border-color:var(--form-forest); box-shadow:0 0 0 4px rgba(48,71,46,.11); }
.app-field small, .app-form-hint { margin:0; font-size:12px; line-height:1.55; color:var(--form-muted); }
.app-form .form-grid { gap:18px; }
.app-form-section { padding:20px; border:1px solid var(--form-line); border-radius:16px; background:var(--form-well); }
.app-form-section__head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:17px; }
.app-form-section__head small { color:var(--form-muted); font-size:12px; line-height:1.4; text-align:right; }
.app-form-section .form-grid, .app-form-section .app-payment-options { background:#fff; border-radius:12px; padding:16px; }
.app-form-section .image-upload { margin:0; }
.app-form .image-preview { border-radius:12px; border-color:#d4ddd0; background:#f2f5ef; }
.app-form .check-option { min-height:48px; margin:0; padding:12px 14px; border-radius:11px; border-color:var(--form-line); background:#fff; transition:border-color .16s ease, background-color .16s ease; }
.app-form .check-option:hover { border-color:#aab9a3; background:#fbfcf9; }
.app-payment-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.app-form-actions { position:sticky; bottom:-26px; z-index:2; align-items:center; margin:0 -26px -26px; padding:18px 26px max(18px,env(safe-area-inset-bottom)); border-top:1px solid var(--form-line); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.app-form-actions .primary { min-height:46px; padding-inline:18px; border-radius:11px; box-shadow:0 8px 18px -12px rgba(179,78,50,.75); }
.app-form .form-error { margin:0; border:1px solid #f0c9bd; border-radius:11px; background:#fff4f0; color:#9c3f29; font-weight:600; }
.settings-form { gap:18px; }
.app-form-intro { display:flex; gap:13px; align-items:flex-start; margin-bottom:20px; }
.app-form-intro h2 { margin:1px 0 5px; font-size:21px; }
.app-form-intro p { margin:0; }
.app-form-step { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#e6eee1; color:var(--form-forest); font-size:11px; font-weight:800; letter-spacing:.08em; }
.settings-form .app-form-actions { bottom:-1px; margin:4px 0 -1px; border-radius:0 0 14px 14px; }
.ds-login .app-field { gap:6px; }
.ds-login .app-field label { text-transform:none; letter-spacing:0; }
.ds-login .app-field input { min-height:44px; }
@media (max-width:620px) { .app-form-dialog { width:100%; max-width:100%; max-height:94dvh; margin:0; border-radius:22px 22px 0 0; } .app-form-dialog[open] { position:fixed; inset:auto 0 0; } .app-form-dialog .dialog-head { padding:18px 20px 15px; } .app-form-dialog .dialog-body { padding:20px 18px 22px; } .app-form-section { padding:15px; border-radius:14px; } .app-form-section__head { display:block; margin-bottom:13px; } .app-form-section__head small { display:block; margin-top:4px; text-align:left; } .app-form-section .form-grid, .app-form-section .app-payment-options { padding:12px; } .app-payment-options { grid-template-columns:1fr; } .app-form-actions { bottom:-22px; margin:0 -18px -22px; padding:14px 18px max(14px,env(safe-area-inset-bottom)); } .app-form-actions button { flex:1 1 auto; min-height:46px; } .settings-form .app-form-actions { margin:2px 0 -1px; } }
