/* One modal language across the shell and independently deployed role hosts. */
dialog.page-account-dialog {
  inset: 0; margin: auto; width: min(540px, calc(100vw - 32px));
  max-width: none; max-height: calc(100dvh - 48px); padding: 0; overflow: auto;
  color: #17212f; background: #fff; border: 1px solid #e3e9f0;
  border-radius: 18px; box-shadow: 0 24px 80px #1422382e;
  font: 500 17px/1.6 -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif;
}
dialog.page-account-dialog:not([open]) { display: none; }
dialog.page-account-dialog::backdrop { background: #14223866; backdrop-filter: blur(5px); }
.page-dialog-card { padding: 26px; }
.page-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 20px; }
.page-dialog-heading h2 { margin: 0; color: #17212f; font-size: 24px; line-height: 1.3; font-weight: 700; }
.page-dialog-heading .page-dialog-close { flex: 0 0 36px; width: 36px; min-height: 36px; padding: 0; border: 0; border-radius: 10px; color: #66758a; background: #f3f6fa; font-size: 23px; line-height: 1; text-align: center; }
.page-dialog-heading .page-dialog-close:hover { background: #e8edf4; }
.page-dialog-message { margin: 0 0 18px; color: #66758a; font-size: 16px; overflow-wrap: anywhere; }
.page-dialog-status { margin: 0; color: #b42318; font-size: 15px; }
.page-dialog-status:empty { display: none; }
.page-dialog-field { display: grid; gap: 8px; margin: 16px 0; }
.page-dialog-field textarea { width: 100%; box-sizing: border-box; min-height: 120px; padding: 12px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; color: #17212f; background: #fff; resize: vertical; }
.page-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; flex-wrap: wrap; }
.page-dialog-actions button { min-height: 44px; padding: 9px 20px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #17212f; font: inherit; font-size: 16px; font-weight: 650; cursor: pointer; }
.page-dialog-actions .is-primary { border-color: #1769d2; background: #1769d2; color: #fff; }
.page-dialog-actions .is-danger { border-color: #c3343d; background: #c3343d; color: #fff; }
.page-dialog-actions button:disabled { cursor: not-allowed; opacity: .55; }
.page-security-identity { margin: -6px 0 18px; color: #66758a; font-size: 15px; }
.page-security-items, .account-hub-items { display: grid; gap: 10px; }
.page-security-items > button, dialog.account-hub .account-hub-items > button {
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 56px; margin: 0;
  padding: 13px 16px; color: #17212f; background: #f8fafc; border: 1px solid #e3e9f0;
  border-radius: 12px; text-align: left; font: inherit; font-weight: 650; cursor: pointer;
}
.page-security-items > button:hover, dialog.account-hub .account-hub-items > button:hover { background: #eef5ff; border-color: #bed6fa; }
.page-security-items > button::after, dialog.account-hub .account-hub-items > button::after { content: "›"; margin-left: auto; color: #8390a2; font-size: 22px; }
.page-security-items > button.is-danger { color: #b42318; }
.page-security-items > button.is-danger:hover { background: #fff3f3; border-color: #f0c7cb; }
button.task-auth-account { min-height: 42px; padding: 8px 14px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #17212f; font: inherit; font-size: 15px; font-weight: 650; cursor: pointer; }
button.task-auth-account:hover { background: #f3f6fa; }
dialog.page-account-dialog > section { padding: 26px; }
dialog.page-account-dialog header > div > p { display: none; }
dialog.page-account-dialog .task-session-intro { margin: 14px 0; padding: 0; color: #66758a; background: none; font-size: 15px; }
dialog.page-account-dialog .task-session-status { font-size: 15px; }
dialog.page-account-dialog .task-session-row { flex-wrap: wrap; }
dialog.page-account-dialog .task-session-row > div { flex: 1 1 220px; }
dialog.page-account-dialog .task-session-row strong { font-size: 17px; }
dialog.page-account-dialog .task-session-row small, dialog.page-account-dialog .task-session-row span { font-size: 15px; }
.page-security-nav { display: flex; gap: 12px; align-items: center; }
.page-security-back { min-height: 36px; padding: 6px 10px; border: 1px solid #e3e9f0; border-radius: 9px; color: #1769d2; background: #fff; font: inherit; font-size: 15px; cursor: pointer; }
dialog.page-account-dialog .page-dialog-heading .page-security-back { flex: 0 0 auto; width: auto; height: auto; padding: 6px 10px; border: 1px solid #e3e9f0; border-radius: 9px; color: #1769d2; background: #fff; font-size: 15px; line-height: 1.4; white-space: nowrap; }
dialog.page-account-dialog .task-auth-primary { min-height: 44px; border-radius: 10px !important; background: #1769d2 !important; font-size: 16px; }
dialog.page-account-dialog .account-backdrop { position: static; display: block; padding: 0; background: none; backdrop-filter: none; }
dialog.page-account-dialog .account-dialog { width: 100%; min-width: 0; max-width: none; max-height: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; box-sizing: border-box; }
dialog.page-account-dialog .account-brand { display: none; }
dialog.page-account-dialog .account-section-heading { margin-top: 22px; }
dialog.page-account-dialog .account-section-heading strong { font-size: 18px; }
dialog.page-account-dialog .security-action-form { padding: 18px; border: 1px solid #e3e9f0; border-radius: 12px; }
dialog.page-account-dialog .account-dialog > .page-dialog-heading { margin-bottom: 16px; }
dialog.page-account-dialog .account-dialog[data-security-view="action"] > :not(.page-dialog-heading):not(.security-action-form) { display: none; }
dialog.page-account-dialog .account-dialog[data-security-view="action"] .security-action-form > div:first-child { display: none; }
dialog.page-account-dialog .account-dialog { padding: 26px; font-size: 17px; }
dialog.page-account-dialog .account-dialog :is(small, .session-time, .account-inline-note) { font-size: 15px; }
dialog.page-account-dialog .account-dialog :is(input, label, .session-device, .account-identity strong, .button) { font-size: 17px; }
dialog.page-account-dialog .account-dialog[data-security-view="menu"] > :not(.page-dialog-heading):not(.operator-security-menu) { display: none; }
dialog.page-account-dialog .account-dialog[data-security-view="sessions"] > :not(.page-dialog-heading):not(.session-heading):not(.session-list):not(.session-loading):not(.session-error):not(.session-empty) { display: none; }
dialog.page-account-dialog .account-dialog[data-security-view="factors"] > :not(.page-dialog-heading):not(.security-factors-panel) { display: none; }
dialog.page-account-dialog .security-factors-panel { display: grid; gap: 16px; }
dialog.page-account-dialog .security-factors-panel :is(.factor-summary, .passkey-list) { margin: 0; }
dialog.page-account-dialog .operator-security-menu [data-account-feedback]:empty { display: none; }
dialog.page-account-dialog .security-action-form { background: #f8fafc; }
dialog.page-account-dialog .security-form-actions .primary { background: #1769d2 !important; border-color: #1769d2 !important; color: #fff; }
dialog.page-account-dialog :is(input, textarea, select):focus { border-color: #1769d2; outline-color: #1769d2; box-shadow: 0 0 0 3px #1769d224; }
dialog.page-account-dialog .page-security-items > button:disabled { color: #8390a2; background: #f3f5f7; cursor: not-allowed; }
dialog.page-account-dialog button:focus-visible { outline: 3px solid #1769d2; outline-offset: 3px; }
@media (max-width: 600px) {
  dialog.page-account-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border-radius: 16px; }
  dialog.page-account-dialog > section, .page-dialog-card { padding: 20px; }
  dialog.page-account-dialog .account-dialog { padding: 20px; }
  .page-dialog-heading h2 { font-size: 22px; }
  .page-dialog-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-dialog-actions button { min-width: 0; padding-inline: 10px; }
  button.task-auth-account { font-size: 15px; }
}
@media (prefers-reduced-transparency: reduce) { dialog.page-account-dialog::backdrop { backdrop-filter: none; } }

/* Existing task/profile/support forms retain their own width and recovery state. */
dialog[class]:not(#task-auth-dialog) { color: #17212f; background-color: #fff; border-color: #e3e9f0; border-radius: 18px; box-shadow: 0 24px 80px #1422382e; }
dialog[class]:not(#task-auth-dialog)::backdrop { background: #14223866; backdrop-filter: blur(5px); }
dialog[class] button[aria-label^="关闭"] { width: 36px; height: 36px; min-height: 36px; flex: 0 0 36px; padding: 0; border: 0; border-radius: 10px; background: #f3f6fa; color: #66758a; font-size: 23px; }
dialog.account-hub .account-hub-items > * { order: 0; }
body dialog.personal-settings-dialog.account-settings-dialog:not(#task-auth-dialog) { box-sizing: border-box; color: #29232c; border-color: #dfd5de; border-radius: 26px; box-shadow: 0 32px 100px #20132240; overflow: hidden; }
dialog.personal-settings-dialog .account-settings-header > div > small, dialog.personal-settings-dialog .account-settings-header > div > p { display: block; }
dialog.personal-settings-dialog .account-settings-header h2 { margin: 0; font-size: 27px; color: #29232c; }
dialog.personal-settings-dialog .account-settings-header { padding: 22px 34px 19px 40px; border-bottom-color: #eee9ed; }
dialog.personal-settings-dialog :is(input, textarea, select):focus { border-color: #9b6c8f; outline-color: #9b6c8f; box-shadow: 0 0 0 4px #8c5f8318; }
dialog.personal-settings-dialog [data-save] { color: #fff; background: #452540; border-color: #452540; }
dialog.personal-settings-dialog [data-reload] { color: #6f6470; border-color: transparent; background: transparent; }
dialog.role-picker { inset: 0; margin: auto; max-height: calc(100dvh - 32px); width: min(460px, calc(100vw - 24px)); }
/* Account/profile/support panels share neutral surfaces and a single action color. */
dialog.personal-settings-dialog .account-settings-heading > div > small { display: block; }
dialog.personal-settings-dialog .account-settings-section { border-color: #eee9ed; background: #fff; }
dialog.personal-settings-dialog .account-settings-scope { color: #71415f; background: #f8f0f5; }
dialog.personal-settings-dialog .account-settings-scope.is-private { color: #46596f; background: #f1f5f8; }
dialog.personal-settings-dialog .account-public-preview { background: radial-gradient(circle at 82% 0%, #e89ab066, transparent 36%), linear-gradient(135deg, #3c2238 0%, #61354f 58%, #a55672 100%); }
dialog.personal-settings-dialog .account-public-preview > [data-public-avatar] { color: #5a304b; background: #ffffffdd; }
dialog.personal-settings-dialog .account-public-preview-copy > small { color: #e7ccd8; }
dialog.personal-settings-dialog .account-settings-view { color: #493041 !important; background: #fff !important; border-color: #e2dbe1 !important; }
dialog.personal-settings-dialog [data-save] { background: #452540 !important; border-color: #452540 !important; color: #fff !important; }
dialog.personal-settings-dialog .account-settings-header [data-close] { width: 42px; height: 42px; min-height: 42px; padding: 0; border-radius: 50%; background: #f4f1f3; color: #746a72; }
dialog.personal-settings-dialog .account-settings-visibility input { accent-color: #70415f; }
dialog.personal-settings-dialog :focus-visible { outline-color: #b27b9e; }
@media (max-width: 900px) {
  dialog.personal-settings-dialog.account-settings-dialog .account-settings-header { padding-inline: 28px; }
}
@media (max-width: 600px) {
  body dialog.personal-settings-dialog.account-settings-dialog:not(#task-auth-dialog) { border: 0; border-radius: 0; }
  dialog.personal-settings-dialog.account-settings-dialog .account-settings-header { padding: 16px 18px 14px; }
  dialog.personal-settings-dialog.account-settings-dialog .account-settings-header h2 { font-size: 24px; }
  dialog.personal-settings-dialog.account-settings-dialog .account-settings-header > div > p { display: none; }
}
dialog.support-dialog header button[aria-label^="关闭"] { font-size: 0; }
dialog.support-dialog header button[aria-label^="关闭"]::after { content: "×"; color: #66758a; font-size: 23px; }
dialog.profile-panel { --profile-line: #e3e9f0; --profile-muted: #66758a; --profile-ink: #17212f; }
dialog.profile-panel :is(.public-profile-preview, .collaboration-identity) { border-color: #e3e9f0; background: #f3f6fa; }
dialog.profile-panel .collaboration-avatar { background: #e5efff; color: #1769d2; }
dialog.profile-panel :focus-visible { outline-color: #1769d2; }
dialog.profile-panel .profile-panel-footer [data-save] { background: #1769d2; border-color: #1769d2; }
/* Task details and operating forms use the same native modal interaction. */
dialog.page-workbench-dialog { inset: 0; margin: auto; width: min(920px, calc(100vw - 48px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; overflow: auto; }
dialog.page-workbench-dialog:not([open]) { display: none; }
dialog.page-workbench-dialog > :is(.modal, .drawer) { position: static; width: 100%; height: auto; max-width: none; max-height: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff; }
dialog.page-workbench-dialog :is(.modal-head, .drawer-head) { position: sticky; top: 0; z-index: 3; padding: 24px 26px; border-color: #e3e9f0; background: #fff; }
dialog.page-workbench-dialog :is(.modal-head h2, .drawer-head h2, .drawer-head > strong) { min-width: 0; margin: 0; font-size: 24px; color: #17212f; overflow-wrap: anywhere; }
dialog.page-workbench-dialog :is(.modal-body, .drawer-body) { padding: 24px 26px; }
dialog.page-workbench-dialog .modal-actions { position: sticky; bottom: 0; padding: 18px 26px; border-top: 1px solid #e3e9f0; background: #fff; }
dialog.page-workbench-dialog button[aria-label^="关闭"] { width: 36px; height: 36px; padding: 0; border: 0; border-radius: 10px; color: #66758a; background: #f3f6fa; font-size: 23px; }
@media (max-width: 600px) {
  dialog.page-workbench-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); }
  dialog.page-workbench-dialog :is(.modal-head, .drawer-head, .modal-body, .drawer-body, .modal-actions) { padding: 20px; }
  dialog.page-workbench-dialog :is(.modal-head h2, .drawer-head h2, .drawer-head > strong) { font-size: 22px; }
}
@media (max-width: 600px) {
  dialog.personal-settings-dialog .account-settings-header { padding: 20px; }
  dialog.support-dialog { inset: 0; margin: auto; width: calc(100vw - 24px); max-width: none; max-height: calc(100dvh - 24px); }
  dialog.personal-settings-dialog .account-settings-header h2 { font-size: 22px; }
  dialog[class]:not(#task-auth-dialog) { border-radius: 16px; }
}
