/* Dialogs, global search and login in the approved board concept. */

/* Form dialog (new task, project, tag, rule, ...) */
#modal { width: min(600px, calc(100vw - 32px)) !important; max-height: calc(100vh - 48px) !important; padding: 0 !important; border: 1px solid #eae5f3 !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 24px 60px #2b20480f, 0 4px 14px #2b20480a !important; }
#modal::backdrop { background: #1d17294d !important; backdrop-filter: blur(2px); }
#modalForm { display: flex !important; flex-direction: column !important; max-height: calc(100vh - 48px) !important; }
#modalTitle { margin: 0 !important; padding: 20px 24px 12px !important; color: #24202c !important; font-size: 20px !important; font-weight: 600 !important; letter-spacing: -.2px !important; }
#modalFields { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 14px 16px !important; padding: 4px 24px 20px !important; overflow-y: auto !important; }
#modalFields > * { grid-column: 1 / -1; min-width: 0 !important; margin: 0 !important; }
#modalFields > .field:has(> select),#modalFields > .field:has(> input:is([type='date'],[type='number'],[type='color'])) { grid-column: auto; }
#modal .field { display: grid !important; gap: 6px !important; }
#modal .field > span { color: #746c84 !important; font-size: 12px !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; }
#modal :is(input:not([type='checkbox']):not([type='radio']):not([type='color']),select,textarea) { width: 100% !important; min-height: 40px !important; padding: 8px 12px !important; border: 1px solid #ddd7e7 !important; border-radius: 7px !important; background-color: #fff !important; box-shadow: none !important; color: #24202c !important; font-size: 14px !important; }
#modal textarea { min-height: 96px !important; resize: vertical !important; line-height: 1.45 !important; }
#modal :is(input,select,textarea):focus { outline: none !important; border-color: #9a7be6 !important; box-shadow: 0 0 0 3px #7954d626 !important; }
#modal menu { display: flex !important; justify-content: flex-end !important; gap: 8px !important; margin: 0 !important; padding: 14px 24px !important; border-top: 1px solid #f0edf5 !important; background: #fbfaff !important; }
#modal menu button { min-height: 40px !important; padding: 8px 18px !important; border: 1px solid #ddd7e7 !important; border-radius: 7px !important; background: #fff !important; box-shadow: none !important; color: #514a60 !important; font-size: 14px !important; font-weight: 500 !important; }
#modal menu button.primary { border-color: #7954d6 !important; background: #7954d6 !important; color: #fff !important; }
#modal menu button.primary:hover { background: #6a45cc !important; }
#modal menu #modalSubmit { order: 2; }
#modal menu button.danger-confirm-button { border-color: #d64545 !important; background: #d64545 !important; color: #fff !important; }
#modal menu button.danger-confirm-button:hover { border-color: #bb3434 !important; background: #bb3434 !important; }

/* Global search */
#globalSearchDialog { width: min(640px, calc(100vw - 32px)) !important; padding: 0 !important; border: 1px solid #eae5f3 !important; border-radius: 12px !important; box-shadow: 0 24px 60px #2b20480f !important; }
#globalSearchDialog::backdrop { background: #1d17294d !important; }
#globalSearchDialog .global-search-modal { padding: 20px 24px 16px !important; background: #fff !important; }
#globalSearchDialog header p { margin: 0 !important; color: #898397 !important; font-size: 12px !important; font-weight: 500 !important; text-transform: uppercase !important; }
#globalSearchDialog header h2 { margin: 4px 0 0 !important; color: #24202c !important; font-size: 20px !important; font-weight: 600 !important; }
#globalSearchDialog header button { width: 34px !important; height: 34px !important; border: 1px solid #ddd7e7 !important; border-radius: 7px !important; background: #fff !important; color: #746c84 !important; }
#globalSearchDialog .global-search-modal-field { margin-top: 16px !important; border: 1px solid #ddd7e7 !important; border-radius: 8px !important; background: #fff !important; box-shadow: none !important; }
#globalSearchDialog .global-search-modal-field:focus-within { border-color: #9a7be6 !important; box-shadow: 0 0 0 3px #7954d626 !important; }
#globalSearchDialog .global-search-modal-field input { font-size: 15px !important; }
#globalSearchDialog kbd { border: 1px solid #e3def0 !important; border-radius: 5px !important; background: #f8f6fc !important; color: #898397 !important; }

/* Session recovery */
#sessionRecovery { width: min(420px, calc(100vw - 32px)) !important; border: 1px solid #eae5f3 !important; border-radius: 12px !important; box-shadow: 0 24px 60px #2b20480f !important; }
#sessionRecovery h2 { color: #24202c !important; font-size: 20px !important; font-weight: 600 !important; }
#sessionRecovery .primary { border: 0 !important; border-radius: 7px !important; background: #7954d6 !important; box-shadow: none !important; }

/* Login */
.login-screen { background: #f8f6fc !important; }
.login-screen .login-panel { width: min(420px, calc(100vw - 32px)) !important; padding: 32px !important; border: 1px solid #eae5f3 !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 24px 60px #2b20480d !important; }
.login-screen .login-brand { display: flex !important; align-items: center !important; gap: 12px !important; margin-bottom: 20px !important; color: #191823 !important; font-size: 24px !important; font-weight: 600 !important; letter-spacing: -.5px !important; }
.login-screen .login-brand .brand-logo { width: 34px !important; height: 34px !important; }
.login-screen h1 { margin: 0 0 6px !important; color: #24202c !important; font-size: 20px !important; font-weight: 600 !important; }
.login-screen .login-panel > p { margin: 0 0 20px !important; color: #746c84 !important; font-size: 14px !important; }
.login-screen .field > span { color: #746c84 !important; font-size: 12px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; }
.login-screen :is(input,select) { min-height: 44px !important; border: 1px solid #ddd7e7 !important; border-radius: 7px !important; background-color: #fff !important; box-shadow: none !important; font-size: 15px !important; }
.login-screen :is(input,select):focus { outline: none !important; border-color: #9a7be6 !important; box-shadow: 0 0 0 3px #7954d626 !important; }
.login-screen button.primary { min-height: 46px !important; border: 0 !important; border-radius: 7px !important; background: #7954d6 !important; box-shadow: none !important; font-size: 15px !important; font-weight: 500 !important; }

/* Toast */
.toast { border-radius: 8px !important; background: #24202c !important; box-shadow: 0 8px 24px #1d172933 !important; font-size: 14px !important; }

@media (max-width: 560px) {
  #modalFields { grid-template-columns: minmax(0,1fr) !important; padding: 4px 16px 16px !important; }
  #modalTitle { padding: 16px 16px 10px !important; }
  #modal menu { padding: 12px 16px !important; }
  .login-screen .login-panel { padding: 24px 20px !important; }
}

/* Login form modes: local (demo accounts list), login (email) and signup. */
.login-panel:not([data-mode='local']) .login-local-only,
.login-panel[data-mode='local'] .login-saas-only,
.login-panel:not([data-mode='signup']) .login-signup-only { display: none !important; }
.login-screen .login-switch { margin: 16px 0 0 !important; color: #746c84 !important; font-size: 14px !important; text-align: center !important; }
.login-screen .login-switch button { min-height: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; color: #7954d6 !important; font-size: 14px !important; font-weight: 500 !important; cursor: pointer !important; }
.login-screen .login-switch button:hover { text-decoration: underline !important; }

/* Account card in Settings (SaaS mode) */
.settings-view .account-card-grid { display: grid !important; gap: 12px !important; }
.settings-view .account-identity { display: grid !important; gap: 2px !important; }
.settings-view .account-identity strong { color: #24202c !important; font-size: 15px !important; font-weight: 600 !important; }
.settings-view .account-identity span { color: #898397 !important; font-size: 13px !important; }
.settings-view .account-actions { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; }
#modalFields textarea[name="message"] { min-height: 220px !important; font-size: 14px !important; line-height: 1.5 !important; }
.login-screen .login-forgot { margin: 12px 0 0 !important; color: #898397 !important; font-size: 13px !important; line-height: 1.45 !important; text-align: center !important; }
.login-panel[data-mode='signup'] .login-forgot { display: none !important; }
html[data-theme="dark"] .login-screen .login-forgot { color: #938ca5 !important; }
/* Password by email: «Забыли пароль?» asks only for the email; the link from a letter asks only for a new password */
.login-panel:is([data-mode='forgot'], [data-mode='set-password']) .login-forgot,
.login-panel[data-mode='forgot'] .login-password-field { display: none !important; }
.login-screen #loginForgotButton { min-height: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; color: #7954d6 !important; font-size: 13px !important; font-weight: 500 !important; cursor: pointer !important; }
.login-screen #loginForgotButton:hover { text-decoration: underline !important; }
.login-panel #loginEmail[readonly] { background: #f6f5f8 !important; color: #6d6680 !important; }
html[data-theme="dark"] .login-screen #loginForgotButton { color: #c9b8ff !important; }
html[data-theme="dark"] .login-panel #loginEmail[readonly] { background: var(--d-surface) !important; color: var(--d-muted) !important; }
#modalFields > .field:has(> select[name="template"]) { grid-column: 1 / -1 !important; }
#modalFields select[name="template"] { width: 100% !important; }
/* Password with a «Показать» switch and a length hint on sign-up */
.login-panel .password-field { position: relative; display: block; }
.login-panel .password-field input { width: 100%; padding-right: 92px !important; }
.login-panel .password-toggle { position: absolute; top: 50%; right: 6px; transform: translateY(-50%); min-height: 30px !important; padding: 0 10px !important; border: 0 !important; border-radius: 6px !important; background: transparent !important; box-shadow: none !important; color: #6a45cc !important; font-size: 13px !important; font-weight: 500 !important; cursor: pointer; }
.login-panel .password-toggle:hover { background: #f3effc !important; }
.login-panel .field-hint { color: #8a8299; font-size: 12px; }
html[data-theme="dark"] .login-panel .password-toggle { color: #c9b8ff !important; }
html[data-theme="dark"] .login-panel .password-toggle:hover { background: var(--d-hover) !important; }

/* CSV import: field mapping in two columns, a live summary below */
#modal.csv-import-dialog #modalFields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
#modal.csv-import-dialog .csv-import-intro, #modal.csv-import-dialog .csv-import-summary, #modal.csv-import-dialog .modal-submit-error { grid-column: 1 / -1; }
#modal.csv-import-dialog .csv-import-intro { margin: 0; color: #6b6480; font-size: 14px; }
#modal.csv-import-dialog .csv-import-summary { display: grid; gap: 6px; padding: 12px 14px; border-radius: 8px; background: #f8f6fc; font-size: 13px; line-height: 1.45; color: #4a4358; }
#modal.csv-import-dialog .csv-import-summary p { margin: 0; }
#modal.csv-import-dialog .csv-import-summary strong { color: #24202c; font-size: 14px; }
#modal.csv-import-dialog .csv-import-preview { color: #857d92; }
@media (max-width: 560px) { #modal.csv-import-dialog #modalFields { grid-template-columns: 1fr; } }
html[data-theme="dark"] #modal.csv-import-dialog .csv-import-summary { background: var(--d-surface-2); color: var(--d-text-2); }
html[data-theme="dark"] #modal.csv-import-dialog .csv-import-summary strong { color: var(--d-text); }
