/* Unified surfaces share the app palette; existing dialog sizes and spacing stay intact. */
:is(dialog,.catalog-manager,.planning-view){--ui-panel:var(--studio-panel);--ui-field:var(--studio-field);--ui-raised:var(--studio-raised);--ui-edge:var(--studio-edge);--ui-text:var(--studio-text);--ui-secondary:var(--studio-secondary);--ui-muted:var(--studio-muted);--ui-accent:var(--studio-accent);--ui-on-accent:var(--studio-on-accent);--ui-focus:var(--studio-accent);--ui-selected:var(--studio-selected);--ui-selected-text:var(--studio-selected-text);--ui-danger:var(--studio-danger);--ui-shadow:var(--studio-shadow);--ui-dialog-width:640px}
dialog:is(.bank-connections-dialog,#register-settings-dialog) .automatic-sync-receipt{font-size:11px;line-height:1.5;color:var(--ui-muted);margin:10px 0;overflow-wrap:anywhere}
dialog:is(.bank-connections-dialog,#register-settings-dialog) .automatic-sync-receipt[data-error]{color:var(--studio-danger,var(--danger))}
dialog.bank-connections-dialog .bank-connection-card{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--ui-edge)}
dialog.bank-connections-dialog .bank-connection-card:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
dialog.bank-connections-dialog .bank-connection-card[data-focused]{padding-left:12px;border-left:2px solid var(--ui-accent)}
dialog.bank-connections-dialog :is(.bank-connection-heading,.bank-mapping-heading){display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:12px}
dialog.bank-connections-dialog :is(.bank-connection-heading,.bank-mapping-heading) h3{margin:0;min-width:0;font-size:14px;line-height:1.45;font-weight:600;color:var(--ui-text);overflow-wrap:anywhere}
dialog.bank-connections-dialog .bank-connection-heading{flex-wrap:wrap}
dialog.bank-connections-dialog .bank-connection-heading .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
dialog.bank-connections-dialog .bank-connection-accounts{display:grid;gap:9px;margin:0;padding:0;list-style:none}
dialog.bank-connections-dialog .bank-connection-accounts li{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0;font-size:12px;line-height:1.5}
dialog.bank-connections-dialog .bank-connection-account-name{color:var(--ui-secondary);overflow-wrap:anywhere}
dialog.bank-connections-dialog .bank-connection-register-name{text-align:right;color:var(--ui-text);overflow-wrap:anywhere}
dialog.bank-connections-dialog :is(.bank-connection-balance-status,.bank-connection-balance-action){display:block;font:inherit;font-size:11px;line-height:1.5;margin:2px 0 0;color:var(--ui-muted)}
dialog.bank-connections-dialog .bank-connection-balance-action{border:0;background:none;padding:0;text-align:inherit;cursor:pointer;color:var(--ui-accent);margin-left:auto}
dialog.bank-connections-dialog .bank-connection-balance-action:hover{text-decoration:underline}
dialog.bank-connections-dialog :is(.bank-connection-download,.bank-link-allowance,.bank-mapping-currency){font-size:11px;line-height:1.5;color:var(--ui-muted)}
dialog.bank-connections-dialog .bank-connection-download{margin:14px 0 0}
dialog.bank-connections-dialog .bank-link-allowance{margin-right:auto;flex:1 1 auto;min-width:130px}
dialog.bank-connections-dialog .bank-link-institution{margin:0 0 18px;font-size:13px;color:var(--ui-secondary)}
dialog.bank-connections-dialog .bank-link-unfinished{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px;margin-bottom:18px;border:1px solid var(--ui-edge);border-radius:9px;background:var(--ui-raised);font-size:12px}
dialog.bank-connections-dialog .bank-link-unfinished-title{flex-basis:100%;font-weight:600;overflow-wrap:anywhere}
dialog.bank-connections-dialog .bank-link-unfinished-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
dialog.bank-connections-dialog .bank-link-unfinished-actions .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
dialog.bank-connections-dialog :is(.bank-link-status,.bank-link-limit,.bank-connections-empty){margin:0 0 12px;font-size:12px;line-height:1.6;color:var(--ui-secondary)}
dialog.bank-connections-dialog .bank-link-status:empty{display:none}
dialog.bank-connections-dialog .bank-mapping-row{margin:0 0 18px;padding:0 0 4px;border-bottom:1px solid var(--ui-edge)}
dialog.bank-connections-dialog .bank-mapping-new{padding:14px 14px 0;margin:0 0 14px;border:1px solid var(--ui-edge);border-radius:9px;background:var(--ui-raised)}
dialog.bank-connections-dialog .bank-mapping-heading{margin-bottom:8px}
dialog.dialog-form .account-bank-section{display:flex;align-items:center;gap:16px;justify-content:space-between;margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid var(--ui-edge)}
dialog.dialog-form .account-bank-section>div{display:grid;gap:4px;min-width:0}
dialog.dialog-form .account-bank-label{font-size:12px;font-weight:600;color:var(--ui-text)}
dialog.dialog-form .account-bank-status{font-size:11px;color:var(--ui-secondary)}
dialog.dialog-form .account-bank-section>.button{flex:0 1 auto;max-width:100%;white-space:normal}
@media(max-width:680px){
  dialog.bank-connections-dialog .bank-connection-accounts li{grid-template-columns:minmax(0,1fr);gap:1px}
  dialog.bank-connections-dialog .bank-connection-register-name{text-align:left}
  dialog.bank-connections-dialog .bank-connection-balance-action{margin-left:0}
  dialog.bank-connections-dialog .bank-link-allowance{flex-basis:100%;font-size:12px}
  dialog.bank-connections-dialog .bank-mapping-new{padding:12px 12px 0}
}
:is(dialog.dialog-form,dialog.mobile-finance-editor){box-sizing:border-box;width:min(var(--ui-dialog-width),calc(100vw - 32px))!important;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--ui-edge);border-radius:16px;background:var(--ui-panel);color:var(--ui-text);box-shadow:var(--ui-shadow);overflow:hidden;font-size:13px;line-height:1.5}
dialog.dialog-form[open]{display:flex;flex-direction:column}
dialog::backdrop{background:rgb(20 22 31 / .32);backdrop-filter:none}
dialog.dialog-form>:is(form,.dialog-body){display:flex;flex-direction:column;min-height:0;width:100%;max-height:inherit;margin:0;padding:0;overflow:hidden}
dialog.dialog-form .dialog-heading{flex:none;display:flex;align-items:center;gap:16px;min-height:68px;margin:0;padding:20px 24px 18px;border-bottom:1px solid var(--ui-edge);background:var(--ui-panel)}
dialog.dialog-form .dialog-heading h2{margin:0;font-size:18px;line-height:1.35;letter-spacing:-.25px;font-weight:650;color:var(--ui-text)}
dialog.dialog-form .dialog-heading .icon-button{flex:none;display:grid;place-items:center;width:28px;height:28px;min-height:28px;margin-left:auto;padding:0;border:0;border-radius:6px;font-size:23px;font-weight:400;line-height:1;color:var(--ui-secondary);background:transparent}
dialog.dialog-form .dialog-heading .icon-button:hover{background:var(--ui-raised);color:var(--ui-text)}
dialog.dialog-form .dialog-content{flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:22px 24px;scroll-padding:20px}
dialog.dialog-form .dialog-section{padding:0;margin:0 0 24px;min-width:0}
dialog.dialog-form .dialog-section:last-child{margin-bottom:0}
dialog.dialog-form .dialog-section+.dialog-section{padding-top:20px;border-top:1px solid var(--ui-edge)}
dialog.dialog-form .dialog-section-title{font-size:12px;line-height:1.4;font-weight:650;color:var(--ui-secondary);letter-spacing:.25px;margin:0 0 14px}
dialog.dialog-form label{display:block;min-width:0;margin:0 0 16px;color:var(--ui-secondary);font-size:12px;font-weight:550;line-height:1.5}
dialog.dialog-form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;min-height:38px;margin-top:6px;padding:8px 11px;border:1px solid var(--ui-edge);border-radius:7px;background-color:var(--ui-field);color:var(--ui-text);font-family:inherit;font-size:13px;line-height:1.4;box-shadow:0 1px 2px #00000005}
dialog.dialog-form textarea{min-height:82px;resize:vertical}
dialog.dialog-form input[type=date]{appearance:none;-webkit-appearance:none}
dialog.dialog-form input[type=file]{padding:7px 9px}
dialog.dialog-form input::file-selector-button{border:0;border-radius:5px;background:var(--ui-raised);color:var(--ui-text);padding:4px 8px;margin-right:10px;font:inherit}
dialog.dialog-form :is(input,select,textarea):disabled{opacity:.6}
dialog.dialog-form :is(input[type=checkbox],input[type=radio]){width:16px;height:16px;min-height:16px;flex:none;margin:0;accent-color:var(--ui-accent)}
dialog.dialog-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
dialog.dialog-form :is(.field-help,.dialog-description,.schedule-step,.review-summary,.schedule-summary){margin:0 0 16px;font-size:12px;line-height:1.55;color:var(--ui-secondary);overflow-wrap:anywhere}
dialog.dialog-form .field-help:last-child{margin-bottom:0}
dialog.dialog-form :is(.form-message,.review-feedback){font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin:0}
dialog.dialog-form :is(.form-message,.review-feedback):not(:empty){padding:10px 12px;margin:0 0 12px;border:1px solid color-mix(in srgb,var(--ui-danger) 30%,transparent);border-radius:8px;background:color-mix(in srgb,var(--ui-danger) 7%,var(--ui-panel));color:var(--ui-danger)}
dialog.dialog-form :is(.form-message,.review-feedback):empty{display:none}
dialog.dialog-form .dialog-actions{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0;padding:16px 24px;border-top:1px solid var(--ui-edge);background:var(--ui-panel)}
dialog.dialog-form .dialog-actions>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
dialog.dialog-form .dialog-actions.spread{justify-content:space-between}
dialog.dialog-form .dialog-actions>.field-help{margin:0 auto 0 0;flex:1;font-size:11px;min-width:140px}
dialog.dialog-form .button{min-height:34px;min-width:80px;padding:7px 14px;border:1px solid var(--ui-edge);border-radius:7px;background:var(--ui-panel);color:var(--ui-text);font-size:12px;line-height:18px;font-weight:550;white-space:normal;transition:background-color .12s,border-color .12s}
dialog.dialog-form .button:hover:not(:disabled){background:var(--ui-raised);border-color:var(--ui-secondary)}
dialog.dialog-form .button.primary{border-color:var(--ui-accent);background:var(--ui-accent);color:var(--ui-on-accent);box-shadow:0 1px 2px #0002}
dialog.dialog-form .button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--ui-accent) 90%,var(--ui-on-accent))}
dialog.dialog-form .button.danger{color:var(--ui-danger)}
dialog.dialog-form .button.quiet{background:transparent;box-shadow:none}
dialog.dialog-form :is(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}
dialog.dialog-form .button:disabled{opacity:.45}
dialog.dialog-form :is(.settings-actions,.backup-actions){display:flex;flex-wrap:wrap;gap:8px}
dialog.dialog-form .backup-actions>.button{flex:1 1 170px;min-height:44px}
dialog.dialog-form .sync-schedule-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
dialog.dialog-form .sync-schedule-heading .dialog-section-title{margin:0}
dialog.dialog-form .settings-balance-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px;margin-top:12px;font-size:12px;font-weight:500;color:var(--ui-text)}
dialog.dialog-form .sync-schedule-switch{box-sizing:border-box;display:flex;align-items:center;flex:none;width:36px;height:22px;min-height:22px;padding:2px;border:1px solid var(--ui-edge);border-radius:999px;background:var(--ui-raised);cursor:pointer;transition:background-color .15s}
dialog.dialog-form .sync-schedule-switch[aria-checked=true]{background:var(--ui-accent);border-color:var(--ui-accent)}
dialog.dialog-form .sync-schedule-switch-thumb{display:block;width:16px;height:16px;border-radius:50%;background:var(--ui-text);box-shadow:0 1px 2px #0002;transition:transform .15s}
dialog.dialog-form .sync-schedule-switch[aria-checked=true] .sync-schedule-switch-thumb{transform:translateX(14px);background:var(--ui-on-accent)}
dialog.dialog-form .sync-schedule-switch:disabled{opacity:.45;cursor:default}
dialog.dialog-form .sync-schedule-fields{gap:12px}
dialog.dialog-form .sync-schedule-fields label{margin-bottom:12px}
dialog.dialog-form .sync-schedule-fields input[type=time]{appearance:none;-webkit-appearance:none;min-width:0;width:100%;min-height:38px;line-height:20px}
dialog.dialog-form .sync-schedule-day-field{margin-bottom:12px}
dialog.dialog-form .sync-schedule-day-label{display:block;margin-bottom:6px;font-size:12px;font-weight:550;color:var(--ui-secondary)}
dialog.dialog-form .sync-schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--ui-edge);border-radius:9px;background:var(--ui-field)}
dialog.dialog-form .sync-schedule-days button{min-width:0;min-height:30px;padding:4px 0;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ui-secondary);font:inherit;font-size:11px;font-weight:550;cursor:pointer}
dialog.dialog-form .sync-schedule-days button[aria-pressed=true]{background:var(--ui-selected);border-color:color-mix(in srgb,var(--ui-accent) 30%,transparent);color:var(--ui-selected-text)}
dialog.dialog-form .sync-schedule-days button:hover:not(:disabled){border-color:var(--ui-accent)}
dialog.dialog-form .sync-schedule-days button:disabled{opacity:.45;cursor:default}
dialog.dialog-form .sync-schedule-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:34px}
dialog.dialog-form .sync-schedule-status{min-width:0;margin-right:auto;font-size:12px;color:var(--ui-secondary);overflow-wrap:anywhere}
dialog.dialog-form .sync-schedule-status[data-error]{color:var(--ui-danger)}
dialog.dialog-form .sync-schedule-footer .button{min-width:64px;flex:none}
@media(prefers-reduced-motion:reduce){dialog.dialog-form :is(.sync-schedule-switch,.sync-schedule-switch-thumb){transition:none}}
dialog.dialog-form .dialog-details{padding:12px 14px;border:1px solid var(--ui-edge);border-radius:9px;background:var(--ui-field)}
dialog.dialog-form .dialog-details summary{cursor:pointer;font-size:12px;font-weight:550;color:var(--ui-text)}
dialog.dialog-form .dialog-details[open] summary{margin-bottom:10px}
dialog.dialog-form .column-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;margin:0 0 18px}
dialog.dialog-form :is(.column-options label,.checkbox-label){display:flex;align-items:center;gap:10px;min-height:34px;margin:0;color:var(--ui-text);font-weight:400}
dialog.dialog-form .reconciliation-summary{padding:14px 16px;margin:4px 0 16px;border:1px solid var(--ui-edge);border-radius:10px;background:var(--ui-field)}
dialog.dialog-form .reconciliation-summary div{gap:12px;padding:5px 0}
dialog.dialog-form .reconciliation-summary dt{color:var(--ui-secondary);font-size:12px}
dialog.dialog-form .reconciliation-summary dd{font-variant-numeric:tabular-nums;font-size:14px}
dialog.dialog-form .reconciliation-summary .difference{margin-top:8px;padding-top:12px;border-top:1px solid var(--ui-edge)}
dialog.dialog-form .transaction-info-list p{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;margin:0;padding:10px 0;border-bottom:1px solid var(--ui-edge);overflow-wrap:anywhere;font-size:12px}
dialog.dialog-form .transaction-info-list strong{font-weight:550;color:var(--ui-secondary)}
dialog.dialog-form .deleted-entry{padding:14px 0;gap:12px;border-color:var(--ui-edge);align-items:center;flex-wrap:wrap}
dialog.dialog-form .deleted-entry>div{min-width:0;overflow-wrap:anywhere;flex:1 1 260px}
dialog.dialog-form .split-editor-row{gap:10px;margin-bottom:14px}
dialog.dialog-form .split-editor-row label{margin:0}
dialog.dialog-form .split-editor-row button{min-width:0}
#schedule-dialog .schedule-wizard-actions{position:static;bottom:auto;padding:16px 24px;margin:0;z-index:auto;background:var(--ui-panel)}
#schedule-dialog .schedule-field{margin-bottom:16px}
#schedule-dialog .schedule-cadence{grid-template-columns:minmax(0,1fr);gap:20px}
#schedule-dialog .schedule-preview{margin:0;padding:16px;border:1px solid var(--ui-edge);border-radius:10px;background:var(--ui-field)}
#schedule-dialog .schedule-preview h3{margin:0 0 10px;font-size:13px;font-weight:600}
#schedule-dialog .schedule-cadence .schedule-next-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
#schedule-dialog .schedule-grid{gap:0 16px}
#schedule-dialog .schedule-split-panel{border-color:var(--ui-edge);background:var(--ui-field);border-radius:10px;padding:14px}
#schedule-dialog .schedule-source-summary{color:var(--ui-secondary);font-size:12px;line-height:1.5}
#bank-review-dialog{width:min(var(--ui-dialog-width),calc(100vw - 32px))!important}
#bank-review-dialog .dialog-body{padding:0;max-height:inherit}
#bank-review-dialog .dialog-content{display:flex;flex-direction:column;overflow:hidden;min-height:0}
#bank-review-dialog .bank-review-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}
#bank-review-dialog .bank-review-toolbar>label{margin:0;flex:1 1 180px}
#bank-review-dialog .bank-review-toolbar :is(input,select){margin:0}
#bank-review-dialog .bank-review-toolbar .checkbox-label{flex-basis:100%;font-size:12px}
#bank-review-dialog .bank-review-list{min-height:0;overflow:auto;border:1px solid var(--ui-edge);border-radius:9px;background:var(--ui-field)}
#bank-review-dialog .bank-review-list:empty{display:none}
#bank-review-dialog .bank-review-list :is(th,td){border-color:var(--ui-edge);font-size:12px}
#bank-review-dialog .bank-review-list :is(input,select){min-height:32px;margin:0;font-size:12px;border-radius:6px}
#bank-review-dialog .review-empty{padding:36px 16px;text-align:center;color:var(--ui-secondary);font-size:14px}
#bank-review-dialog .dialog-actions{padding:16px 24px}
dialog.confirmation-dialog{--ui-dialog-width:420px}
dialog.confirmation-dialog .dialog-heading{min-height:0;border:0;padding:24px 24px 0}
dialog.confirmation-dialog .dialog-heading h2{font-size:17px;line-height:1.4}
dialog.confirmation-dialog .dialog-content{padding:14px 24px 22px}
dialog.confirmation-dialog .confirmation-question{margin:0;font-size:14px;line-height:1.55;font-weight:400;letter-spacing:0;color:var(--ui-secondary)}
dialog.confirmation-dialog .confirmation-detail{font-size:12px;color:var(--ui-secondary);margin:10px 0 0}
dialog.confirmation-dialog .dialog-actions{padding:16px 24px;gap:8px}
dialog.confirmation-dialog .dialog-actions>.button{flex:1;border-radius:7px;min-height:36px}
/* Preserve the mobile editor's full-screen workflow and native date sizing. */
dialog.mobile-finance-editor{background:var(--ui-panel);height:min(840px,calc(100dvh - 48px))}
dialog.mobile-finance-editor :is(.mf-editor-header,.mf-editor-footer){background:var(--ui-panel);border-color:var(--ui-edge)}
dialog.mobile-finance-editor :is(.mf-editor-header h2,.mf-direction-button[aria-pressed=true]){color:var(--ui-text)}
dialog.mobile-finance-editor :is(.mf-editor-account,.mf-field,.mf-dirty-label){color:var(--ui-secondary)}
dialog.mobile-finance-editor .mf-field :is(input,select,textarea){border-color:var(--ui-edge);background-color:var(--ui-field);color:var(--ui-text);border-radius:7px}
dialog.mobile-finance-editor .mf-field-amount input{background:transparent;font-weight:600}
dialog.mobile-finance-editor .mf-direction{background:var(--ui-field);border-color:var(--ui-edge);border-radius:10px}
dialog.mobile-finance-editor .mf-direction-button{color:var(--ui-secondary)}
dialog.mobile-finance-editor .mf-direction-button[aria-pressed=true]{background:var(--ui-selected);border-color:var(--ui-edge);color:var(--ui-selected-text);box-shadow:none}
dialog.mobile-finance-editor :is(.mf-save-button,.mf-scope-button){border-radius:7px}
dialog.mobile-finance-editor .mf-save-button{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent)}
dialog.mobile-finance-editor .mf-text-button{color:var(--ui-accent)}
:is(.catalog-manager,.planning-view){color:var(--ui-text)}
:is(.catalog-manager,.planning-view) :is(.workspace-button,.planning-button){border-radius:7px;min-height:34px;padding:7px 12px;font-weight:550;border-color:var(--ui-edge);background:var(--ui-field);color:var(--ui-text)}
:is(.catalog-manager,.planning-view) :is(.catalog-primary,.planning-primary){background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent)}
:is(.catalog-manager,.planning-view) :is(input:not([type=checkbox]),select){border-color:var(--ui-edge);background-color:var(--ui-field);color:var(--ui-text);border-radius:7px;min-height:36px}
:is(.catalog-manager,.planning-view) :is(.catalog-editor,.planning-save-report,.planning-confirm){background:var(--ui-panel);border-color:var(--ui-edge);border-radius:12px;padding:20px}
:is(.catalog-manager,.planning-view) :is(.catalog-table-scroll,.planning-scroll){border-color:var(--ui-edge);border-radius:10px}
:is(.catalog-manager,.planning-view) :is(.catalog-heading,.planning-heading) h1{font-size:24px;font-weight:650;letter-spacing:-.4px}
:is(.catalog-manager,.planning-view) :is(button,input,select):focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}
@media(max-width:680px){
 :is(dialog.dialog-form,dialog.confirmation-dialog){width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:12px}
 dialog.confirmation-dialog{width:min(420px,calc(100vw - 24px))!important}
 dialog.dialog-form .dialog-heading{padding:16px 18px;min-height:62px}
 dialog.dialog-form .dialog-heading .icon-button{width:36px;height:36px}
 dialog.dialog-form .dialog-content{padding:18px}
 dialog.dialog-form .dialog-actions,#schedule-dialog .schedule-wizard-actions,#bank-review-dialog .dialog-actions{padding:12px 18px max(14px,env(safe-area-inset-bottom))}
 dialog.dialog-form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-height:44px;font-size:16px}
 dialog.dialog-form .button{min-height:44px;font-size:14px}
 dialog.dialog-form .form-row{grid-template-columns:minmax(0,1fr);gap:0}
 dialog.dialog-form .sync-schedule-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 dialog.dialog-form .sync-schedule-fields input[type=time]{min-height:44px;font-size:16px}
 dialog.dialog-form .sync-schedule-days button{min-height:40px}
 dialog.dialog-form :is(.column-options label,.checkbox-label){min-height:44px;font-size:14px}
 dialog.dialog-form .dialog-actions.spread{display:flex;flex-direction:column-reverse;align-items:stretch}
 dialog.dialog-form .dialog-actions.spread>div{display:flex;justify-content:flex-end}
 dialog.dialog-form .split-editor-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 0}
 dialog.dialog-form .transaction-info-list p{grid-template-columns:minmax(0,1fr);gap:4px}
 dialog.confirmation-dialog .dialog-heading{padding:20px 18px 0}
 dialog.confirmation-dialog .dialog-content{padding:12px 18px 20px}
 #bank-review-dialog .dialog-content{padding:16px}
 #bank-review-dialog .bank-review-toolbar>label{flex-basis:100%}
 #bank-review-dialog .bank-review-toolbar>.button{width:100%}
 #bank-review-dialog .bank-review-list :is(input,select){min-height:44px;font-size:16px}
 #bank-review-dialog .dialog-actions>.field-help{flex-basis:100%}
 #schedule-dialog .schedule-grid{grid-template-columns:minmax(0,1fr)}
 #schedule-dialog .schedule-split-row{grid-template-columns:minmax(0,1fr);gap:10px}
 dialog.mobile-finance-editor{position:fixed;inset:var(--mobile-viewport-top,0px) 0 auto;margin:0;width:100%!important;max-width:100%;height:var(--mobile-app-height,100dvh);max-height:var(--mobile-app-height,100dvh);border:0;border-radius:0}
 :is(.catalog-manager,.planning-view) :is(.workspace-button,.planning-button,input:not([type=checkbox]),select){min-height:44px}
}
@media(prefers-reduced-motion:reduce){dialog.dialog-form .button{transition:none}}
/* Ordinary review feedback is informational, not an error. */
dialog.dialog-form .review-feedback:not(:empty){color:var(--ui-text);background:var(--ui-raised);border-color:var(--ui-edge)}
@media(max-width:680px){
 :is(dialog.dialog-form,dialog.confirmation-dialog){max-height:calc(var(--mobile-app-height,100dvh) - 24px)}
 dialog.dialog-form .dialog-heading .icon-button{width:44px;height:44px;min-height:44px}
 #bank-review-dialog .dialog-content{overflow:auto}
 #bank-review-dialog .bank-review-list{flex:none;max-height:50dvh}
}
/* Retire older per-dialog shell overrides; only content layout may vary. */
#schedule-dialog,#bank-review-dialog{max-height:calc(100dvh - 48px);border-radius:12px;background:var(--ui-panel)}
#schedule-dialog form{padding:0}
#schedule-dialog .dialog-heading h2,#bank-review-dialog .dialog-heading h2{font-size:18px;line-height:1.35;font-weight:650}
#bank-review-dialog .dialog-heading{margin:0}
#bank-review-dialog .dialog-actions{margin:0}
dialog#bank-review-dialog[data-single-review="true"] .bank-review-toolbar{display:none}
#schedule-dialog .schedule-cadence .schedule-preview{padding:16px;border:1px solid var(--ui-edge);border-radius:10px;background:var(--ui-field)}
#schedule-dialog .schedule-step{margin:0 0 18px;color:var(--ui-secondary);font-weight:500}
dialog.dialog-form .dialog-details code{color:var(--ui-text)}
@media(max-width:680px){
 #schedule-dialog,#bank-review-dialog{max-height:calc(var(--mobile-app-height,100dvh) - 24px);border-radius:12px}
 #bank-review-dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)}
 #schedule-dialog .schedule-split-row .button{grid-column:auto;min-height:44px}
 dialog.confirmation-dialog .dialog-actions>.button{min-height:44px}
}
/* Review entries fit the standard form width: fields and actions stay visible
   together instead of hiding the amount and Review action off the right edge. */
#bank-review-dialog .bank-review-table{display:block;width:100%;min-width:0;table-layout:auto}
#bank-review-dialog .bank-review-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#bank-review-dialog .bank-review-table tbody{display:block}
#bank-review-dialog .bank-review-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 174px;gap:10px 12px;padding:16px;border-bottom:1px solid var(--ui-edge);background:var(--ui-field)}
#bank-review-dialog .bank-review-row:last-child{border-bottom:0}
#bank-review-dialog .bank-review-row:focus-within{background:color-mix(in srgb,var(--ui-accent) 5%,var(--ui-field))}
#bank-review-dialog .bank-review-row>td{display:block;width:auto;min-width:0;height:auto;padding:0;border:0;overflow:visible;white-space:normal;text-align:left}
#bank-review-dialog .bank-review-row>td:nth-child(1){grid-column:1;grid-row:1;align-self:center}
#bank-review-dialog .bank-review-row>td:nth-child(2){grid-column:2;grid-row:1;text-align:right;align-self:center;color:var(--ui-secondary)}
#bank-review-dialog .bank-review-row>td:nth-child(3){grid-column:1/3;grid-row:2;color:var(--ui-secondary);font-size:11px;overflow-wrap:anywhere}
#bank-review-dialog .bank-review-row>td:nth-child(4){grid-column:1/3;grid-row:3}
#bank-review-dialog .bank-review-row>td:nth-child(5){grid-column:3;grid-row:3}
#bank-review-dialog .bank-review-row>td:nth-child(6){grid-column:3;grid-row:1/3;align-self:center;text-align:right;font-size:16px;font-weight:600;display:block;padding:0}
#bank-review-dialog .bank-review-row>td:nth-child(7){grid-column:1/3;grid-row:4}
#bank-review-dialog .bank-review-row>td:nth-child(8){grid-column:3;grid-row:4;align-self:end}
#bank-review-dialog .bank-review-row>td:is(:nth-child(4),:nth-child(5),:nth-child(7)):before{display:block;font-size:11px;color:var(--ui-secondary);margin-bottom:5px;line-height:1.4}
#bank-review-dialog .bank-review-row>td:nth-child(4):before{content:'Payee'}
#bank-review-dialog .bank-review-row>td:nth-child(5):before{content:'Category'}
#bank-review-dialog .bank-review-row>td:nth-child(7):before{content:'Notes'}
#bank-review-dialog .bank-review-row>td:nth-child(6):before{display:none}
#bank-review-dialog .bank-review-row input[data-review-field]{height:34px;padding:6px 9px;border:1px solid var(--ui-edge);background:var(--ui-field);color:var(--ui-text)}
#bank-review-dialog .review-row-actions{gap:6px;flex-wrap:wrap}
#bank-review-dialog .review-row-actions .button{min-width:0;min-height:32px;padding:5px 8px;font-size:11px;flex:1}
#bank-review-dialog .bank-review-detail-row,#bank-review-dialog .bank-review-detail-row>td{display:block;width:100%;padding:0}
#bank-review-dialog .bank-review-detail-row .bank-review-card{padding:16px;border-radius:0;background:var(--ui-panel);border-color:var(--ui-accent)}
@media(max-width:680px){
 #bank-review-dialog .bank-review-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:12px}
 #bank-review-dialog .bank-review-row>td:nth-child(2){grid-column:2}
 #bank-review-dialog .bank-review-row>td:nth-child(3){grid-column:1/-1}
 #bank-review-dialog .bank-review-row>td:nth-child(4){grid-column:1/-1;grid-row:3}
 #bank-review-dialog .bank-review-row>td:nth-child(5){grid-column:1;grid-row:4}
 #bank-review-dialog .bank-review-row>td:nth-child(6){grid-column:2;grid-row:4;align-self:end;padding-bottom:12px;font-size:15px}
 #bank-review-dialog .bank-review-row>td:nth-child(7){grid-column:1/-1;grid-row:5}
 #bank-review-dialog .bank-review-row>td:nth-child(8){grid-column:1/-1;grid-row:6}
 #bank-review-dialog .bank-review-row input[data-review-field]{height:44px;min-height:44px;font-size:16px}
 #bank-review-dialog .review-row-actions .button{min-height:44px;font-size:13px}
}

@media(max-width:680px){:is(.catalog-manager,.planning-view) :is(input:not([type=checkbox]),select){font-size:16px}}
#bank-review-dialog .match-confirmation{padding:10px 12px;border:1px solid var(--ui-edge);border-radius:8px;background:var(--ui-field);margin:10px 0}
#bank-review-dialog .match-confirmation label{display:flex;align-items:flex-start;gap:9px;margin:0;color:var(--ui-text);font-weight:400;line-height:1.5}
#bank-review-dialog .bank-review-list input[type=checkbox]{display:inline-block;width:16px;height:16px;min-height:16px;margin:2px 0 0;padding:0;border-radius:3px;flex:none}

dialog.dialog-form .form-message[role=status]:not(:empty){color:var(--ui-text);background:var(--ui-raised);border-color:var(--ui-edge)}
dialog.dialog-form .backup-actions{margin-bottom:14px}
.catalog-manager .catalog-tabs{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--ui-edge);border-radius:10px;background:var(--ui-raised)}
.catalog-manager .catalog-tabs .workspace-button{border:1px solid transparent;background:transparent;box-shadow:none}
.catalog-manager .catalog-tabs [aria-current=page]{background:var(--ui-selected);border-color:var(--ui-edge);color:var(--ui-selected-text);box-shadow:none}
.catalog-manager .catalog-actions .workspace-button{background:transparent;border-color:transparent;min-height:30px;padding:5px 7px;margin:0 0 0 2px;font-size:11px;font-weight:500}
.catalog-manager .catalog-actions .workspace-button:hover:not(:disabled){background:var(--ui-raised);border-color:var(--ui-edge)}
.catalog-manager .catalog-table td{height:42px}
@media(max-width:680px){.catalog-manager .catalog-actions .workspace-button{min-height:44px;font-size:13px}.catalog-manager .catalog-table td{height:auto}}

@media(max-width:680px){#bank-review-dialog .match-confirmation label{min-height:44px;align-items:center}}

/* Supporting states use the same sage palette as the primary form surfaces. */
:is(dialog.dialog-form,dialog.mobile-finance-editor,.catalog-manager,.planning-view) :is(input,textarea)::placeholder{color:var(--ui-muted);opacity:1}
dialog.dialog-form :is(input,textarea)[readonly]{background-color:var(--ui-raised);color:var(--ui-secondary)}
dialog.dialog-form .button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--ui-danger) 8%,var(--ui-panel));border-color:var(--ui-danger)}

/* Card-file onboarding uses the same dialog geometry as the other forms. */
dialog.card-import-dialog .card-import-summary{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--ui-text)}
dialog.card-import-dialog .card-import-table-wrap{border:1px solid var(--ui-edge);border-radius:9px;overflow:hidden}
dialog.card-import-dialog .card-import-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}
dialog.card-import-dialog .card-import-table caption{text-align:left;padding:10px 12px;font-size:12px;font-weight:600;background:var(--ui-raised)}
dialog.card-import-dialog .card-import-table th{padding:8px 10px;text-align:left;color:var(--ui-secondary);background:var(--ui-field);font-size:11px;font-weight:550}
dialog.card-import-dialog .card-import-table th:first-child{width:24%}
dialog.card-import-dialog .card-import-table th:last-child{width:23%;text-align:right}
dialog.card-import-dialog .card-import-table td{padding:8px 10px;vertical-align:top;border-top:1px solid var(--ui-edge);overflow-wrap:anywhere}
dialog.card-import-dialog .card-import-table small{display:block;margin-top:3px;color:var(--ui-secondary);font-size:10px;line-height:1.4}
dialog.card-import-dialog .card-import-table input{min-height:30px;padding:5px 7px;margin:0 0 5px;font-size:12px}
dialog.card-import-dialog .card-import-table input:last-child{margin-bottom:0}
dialog.card-import-dialog .card-import-amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
dialog.card-import-dialog .card-import-duplicate{color:var(--ui-secondary);background:var(--ui-field)}
dialog.card-import-dialog .card-import-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;color:var(--ui-secondary);font-size:12px}
dialog.card-import-dialog .card-import-pagination[hidden],dialog.card-import-dialog [hidden]{display:none!important}
@media(max-width:480px){
 dialog.card-import-dialog .card-import-table th,dialog.card-import-dialog .card-import-table td{padding:7px 6px}
 dialog.card-import-dialog .card-import-table th:first-child{width:24%}
 dialog.card-import-dialog .card-import-table th:last-child{width:26%}
 dialog.card-import-dialog .form-row{grid-template-columns:1fr;gap:0}
}
#schedule-dialog :is(.schedule-split-row,.schedule-source-summary){background:var(--ui-raised);border-color:var(--ui-edge);border-radius:8px}
#schedule-dialog :is(.schedule-help,.schedule-tracking-note,.schedule-interval-unit,.schedule-preview h3){color:var(--ui-secondary)}
#bank-review-dialog :is(.review-card-context,.review-reason,.review-summary){color:var(--ui-secondary)}
#bank-review-dialog .review-row-attention{background:var(--ui-raised);border-color:var(--ui-accent);color:var(--ui-text)}
dialog.mobile-finance-editor .mf-editor-footer{background:var(--ui-panel)}
dialog.mobile-finance-editor .mf-field :is(input,select,textarea):disabled{color:var(--ui-secondary);background-color:var(--ui-raised)}
dialog.mobile-finance-editor .mf-field-amount input:disabled{background-color:transparent}
dialog.mobile-finance-editor :is(.mf-lock-note,.mf-split-note){color:var(--ui-secondary);background:var(--ui-raised);border-color:var(--ui-edge);border-radius:8px}
dialog.mobile-finance-editor :is(.mf-scope-choice,.mf-discard-choice) p{color:var(--ui-secondary)}
dialog.mobile-finance-editor .mf-scope-button{background:var(--ui-panel);border-color:var(--ui-edge);color:var(--ui-text)}
dialog.mobile-finance-editor :is(.mf-editor-error,.mf-destructive){color:var(--ui-danger)}
dialog.mobile-finance-editor :is(button,input,select,textarea):focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}
:is(.catalog-manager,.planning-view) :is(.workspace-button,.planning-button):hover:not(:disabled){background:var(--ui-raised);border-color:var(--ui-secondary)}
:is(.catalog-manager,.planning-view) :is(.catalog-primary,.planning-primary):hover:not(:disabled){background:color-mix(in srgb,var(--ui-accent) 90%,var(--ui-on-accent));border-color:var(--ui-accent)}
:is(.catalog-manager,.planning-view) input[type=checkbox]{accent-color:var(--ui-accent)}
.catalog-manager :is(.catalog-field,.catalog-help,.catalog-state,.catalog-footer,.catalog-empty,.catalog-table small){color:var(--ui-secondary)}
.catalog-manager .catalog-text-button{color:var(--ui-text)}
.catalog-manager .catalog-field input[readonly]{background-color:var(--ui-raised);color:var(--ui-secondary)}
.catalog-manager .catalog-status{background:var(--ui-raised);border-color:var(--ui-accent);color:var(--ui-text)}
.catalog-manager :is(.catalog-status[role=alert],.catalog-form-error){color:var(--ui-danger)}
.catalog-manager .catalog-actions .workspace-button{border-radius:5px}
.planning-view .planning-button.planning-link{background:transparent;border-color:transparent;color:var(--ui-accent)}
.planning-view .planning-danger{color:var(--ui-danger)}
.planning-view :is(.planning-muted,.planning-field,.planning-stat>span,.planning-empty,.planning-pagination){color:var(--ui-secondary)}
.planning-view .planning-accounts>summary{background:var(--ui-field);border-color:var(--ui-edge);border-radius:7px}
.planning-view .planning-accounts>summary:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}
.planning-view .planning-account-options{background:var(--ui-panel);border-color:var(--ui-edge);border-radius:8px}
.planning-view :is(.planning-stats,.planning-drilldown){border-color:var(--ui-edge)}
.planning-view .planning-notice{background:var(--ui-selected);border-color:var(--ui-edge);border-radius:8px;color:var(--ui-selected-text)}
.planning-view .planning-error{color:var(--ui-danger);background:color-mix(in srgb,var(--ui-danger) 8%,var(--ui-panel))}
.planning-view .planning-budget-grid input:invalid{border-color:var(--ui-danger)}
.planning-view .planning-row-actions>.planning-button{border-radius:5px}
@media screen{
 .planning-view{background:var(--studio-canvas)}
 :is(.catalog-manager,.planning-view) :is(.catalog-table,.planning-table) :is(th,td){border-color:var(--ui-edge)}
 :is(.catalog-manager,.planning-view) :is(.catalog-table,.planning-table) th{background:var(--ui-panel);color:var(--ui-secondary)}
 .planning-view .planning-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--ui-raised) 35%,var(--studio-canvas))}
 .planning-view .planning-negative{color:var(--ui-danger)}
}

/* Settings use the shared form width with a denser, self-contained layout. */
dialog#register-settings-dialog .dialog-content{padding:18px 24px}
dialog#register-settings-dialog .dialog-section{margin-bottom:12px}
dialog#register-settings-dialog .dialog-section+.dialog-section{padding-top:12px}
dialog#register-settings-dialog .dialog-section-title{margin-bottom:10px}
dialog#register-settings-dialog .settings-display-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
dialog#register-settings-dialog .settings-display-grid label{margin:0}
dialog#register-settings-dialog .settings-display-wide{grid-column:1/-1}
dialog#register-settings-dialog .settings-data-section{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
dialog#register-settings-dialog .settings-data-section .dialog-section-title{margin:0}
dialog#register-settings-dialog :is(.settings-actions,.backup-actions){gap:6px;margin:0}
dialog#register-settings-dialog :is(.settings-actions,.backup-actions)>.button{flex:0 1 auto;min-width:0;min-height:34px;padding:6px 10px}
dialog#register-settings-dialog .sync-schedule-heading{margin-bottom:10px}
dialog#register-settings-dialog .sync-schedule-heading .dialog-section-title{margin:0 auto 0 0}
dialog#register-settings-dialog .sync-schedule-heading{gap:12px}
dialog#register-settings-dialog .sync-schedule-heading .button{min-width:64px}
dialog#register-settings-dialog .sync-schedule-footer:not(:has(.sync-schedule-status:not(:empty),button:not([hidden]))){display:none}
dialog#register-settings-dialog .sync-schedule-fields{gap:16px}
dialog#register-settings-dialog .sync-schedule-fields label{margin-bottom:8px}
dialog#register-settings-dialog .sync-schedule-time-field{min-width:0;margin-bottom:8px;color:var(--ui-secondary);font-size:12px;font-weight:550;line-height:1.5}
dialog#register-settings-dialog .sync-schedule-time-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
dialog#register-settings-dialog .sync-schedule-time-controls select{padding-left:10px;padding-right:24px;background-position:right 8px center}
dialog#register-settings-dialog .sync-schedule-day-field{margin-bottom:8px}
dialog#register-settings-dialog .backup-settings{margin-bottom:0}
dialog#register-settings-dialog .backup-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
dialog#register-settings-dialog .backup-settings-row .dialog-section-title{margin:0}
dialog#register-settings-dialog .backup-settings .field-help{margin:6px 0 0;font-size:11px}
dialog#register-settings-dialog .backup-settings .form-message:not(:empty){margin:8px 0 0}
dialog#register-settings-dialog .app-release-details{margin:0 auto 0 0;padding:0;border:0;font-size:11px;color:var(--ui-muted)}
@media(max-width:680px){
 dialog#register-settings-dialog .dialog-content{padding:16px 18px}
 dialog#register-settings-dialog .settings-display-grid{gap:10px 12px}
 dialog#register-settings-dialog :is(.settings-actions,.backup-actions)>.button{min-height:44px}
 dialog#register-settings-dialog .sync-schedule-days button{min-height:40px}
 dialog#register-settings-dialog .sync-schedule-fields{gap:12px}
}
@media(max-width:520px){
 dialog#register-settings-dialog .sync-schedule-fields{grid-template-columns:1fr}
 dialog#register-settings-dialog .sync-schedule-time-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
 dialog#register-settings-dialog .backup-settings-row{gap:8px}
}

@media(max-width:380px){dialog#register-settings-dialog .settings-display-grid{grid-template-columns:minmax(0,1fr)}}

/* Allowance details stay collapsed within the shared Settings form. */
dialog#register-settings-dialog .usage-settings{margin-bottom:0}
dialog#register-settings-dialog .usage-settings summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;min-height:26px;color:var(--ui-text)}
dialog#register-settings-dialog .usage-settings summary::-webkit-details-marker{display:none}
dialog#register-settings-dialog .usage-settings summary::before{content:'›';font-size:18px;line-height:1;color:var(--ui-muted);transform:rotate(0deg)}
dialog#register-settings-dialog .usage-settings details[open]>summary::before{transform:rotate(90deg)}
dialog#register-settings-dialog .usage-settings summary:focus-visible{outline:2px solid var(--ui-focus);outline-offset:3px;border-radius:3px}
dialog#register-settings-dialog .usage-settings summary .dialog-section-title{margin:0}
dialog#register-settings-dialog .usage-state{margin-left:auto;color:var(--ui-muted);font-size:11px;font-weight:400}
dialog#register-settings-dialog .usage-table{width:100%;margin-top:10px;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}
dialog#register-settings-dialog .usage-table :is(th,td){padding:7px 5px;text-align:right;border-bottom:1px solid var(--ui-edge);font-weight:400;color:var(--ui-text)}
dialog#register-settings-dialog .usage-table th:first-child{text-align:left;padding-left:0}
dialog#register-settings-dialog .usage-table th:last-child{padding-right:0}
dialog#register-settings-dialog .usage-table thead th{color:var(--ui-muted);font-size:10px;font-weight:500}
dialog#register-settings-dialog .usage-table tbody th>span{display:block;font-weight:500}
dialog#register-settings-dialog .usage-table small{display:block;color:var(--ui-muted);font-size:10px;line-height:1.4}
dialog#register-settings-dialog .usage-table tr[data-status="critical"] td{color:var(--ui-danger)}
/* Native meters keep numbers readable and expose the scale to assistive tech. */
dialog#register-settings-dialog .usage-meter{--usage-meter-color:var(--green);display:block;appearance:none;-webkit-appearance:none;width:64px;max-width:100%;height:5px;margin:5px 0 1px auto;padding:0;border:0;border-radius:99px;background:var(--ui-edge);overflow:hidden}
dialog#register-settings-dialog .usage-meter[data-tone="warning"]{--usage-meter-color:#b9821f}
dialog#register-settings-dialog .usage-meter[data-tone="critical"]{--usage-meter-color:var(--ui-danger)}
dialog#register-settings-dialog .usage-meter::-webkit-meter-inner-element{display:block}
dialog#register-settings-dialog .usage-meter::-webkit-meter-bar{height:5px;border:0;border-radius:99px;background:var(--ui-edge);box-shadow:none}
dialog#register-settings-dialog .usage-meter::-webkit-meter-optimum-value{border-radius:99px;background:var(--usage-meter-color)}
dialog#register-settings-dialog .usage-meter::-webkit-meter-suboptimum-value{border-radius:99px;background:var(--usage-meter-color)}
dialog#register-settings-dialog .usage-meter::-webkit-meter-even-less-good-value{border-radius:99px;background:var(--usage-meter-color)}
dialog#register-settings-dialog .usage-meter::-moz-meter-bar{border-radius:99px;background:var(--usage-meter-color)}

dialog#register-settings-dialog .usage-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:10px;font-size:11px;color:var(--ui-muted)}
dialog#register-settings-dialog .usage-footer>span{margin-right:auto}
dialog#register-settings-dialog .usage-footer a{color:var(--ui-accent);text-underline-offset:3px}
dialog#register-settings-dialog .usage-footer .button{min-height:28px;padding:3px 8px;font-size:11px}
@media(max-width:680px){
 dialog#register-settings-dialog .usage-settings summary{min-height:38px}
 dialog#register-settings-dialog .usage-table :is(th,td){padding:7px 3px;font-size:10px}
 dialog#register-settings-dialog .usage-table small{font-size:9px}
 dialog#register-settings-dialog .usage-meter{width:48px}
 dialog#register-settings-dialog .usage-footer :is(a,button){min-height:36px;display:inline-flex;align-items:center}
}
/* The restore flow shares the standard form shell, with compact read-only counts. */
dialog.backup-restore-dialog .backup-restore-preview{padding:14px 16px;margin:0 0 16px;border:1px solid var(--ui-edge);border-radius:9px;background:var(--ui-field)}
dialog.backup-restore-dialog .backup-restore-date{margin:0 0 10px;font-size:12px;font-weight:600;color:var(--ui-text)}
dialog.backup-restore-dialog .backup-restore-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:0;font-size:12px}
dialog.backup-restore-dialog .backup-restore-counts>div{display:flex;gap:12px;justify-content:space-between;min-width:0}
dialog.backup-restore-dialog .backup-restore-counts dt{color:var(--ui-secondary);overflow-wrap:anywhere}
dialog.backup-restore-dialog .backup-restore-counts dd{margin:0;color:var(--ui-text);font-variant-numeric:tabular-nums}
dialog.backup-restore-dialog .backup-restore-safety{padding:16px 0 0;margin:0 0 18px;border-top:1px solid var(--ui-edge)}
dialog.backup-restore-dialog .backup-restore-safety .dialog-section-title{margin:0 0 10px}
dialog.backup-restore-dialog .backup-restore-safety .checkbox-label{display:flex;align-items:center;gap:8px;margin:12px 0 0}
dialog.backup-restore-dialog .backup-restore-message{margin:0;color:var(--ui-secondary);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
dialog.backup-restore-dialog .backup-restore-message:empty{display:none}
dialog.backup-restore-dialog .backup-restore-message[data-state=error]{color:var(--ui-danger)}
@media(max-width:380px){dialog.backup-restore-dialog .backup-restore-counts{grid-template-columns:minmax(0,1fr)}}

/* Document review stays inside the existing compact card-import dialog. */
dialog.card-import-dialog .card-import-progress{padding:10px 12px;margin:0 0 14px;border:1px solid var(--ui-edge);border-radius:8px;background:var(--ui-raised)}
dialog.card-import-dialog .card-import-progress p{margin:0 0 7px}
dialog.card-import-dialog .card-import-progress progress{display:block;width:100%;height:6px;accent-color:var(--ui-accent)}
dialog.card-import-dialog .card-import-source{margin:0 0 14px;padding:10px 12px;border:1px solid var(--ui-edge);border-radius:8px;background:var(--ui-raised)}
dialog.card-import-dialog .card-import-source>summary{font-size:12px;font-weight:550;cursor:pointer;color:var(--ui-text)}
dialog.card-import-dialog .card-import-source textarea{width:100%;min-height:150px;margin:4px 0 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;resize:vertical}
dialog.card-import-dialog .card-import-source-pages{display:grid;gap:12px;max-height:320px;overflow:auto;margin-top:10px;overscroll-behavior:contain}
dialog.card-import-dialog .card-import-source-pages:empty{display:none}
dialog.card-import-dialog .card-import-source-pages figure{margin:0}
dialog.card-import-dialog .card-import-source-pages img{display:block;max-width:100%;height:auto;margin:auto;border:1px solid var(--ui-edge);border-radius:4px}
dialog.card-import-dialog .card-import-source-pages figcaption{padding-top:4px;text-align:center;font-size:11px;color:var(--ui-secondary)}
dialog.card-import-dialog .card-import-issue{margin:0 0 10px;padding:9px 11px;border:1px solid var(--ui-danger);border-radius:7px;color:var(--ui-danger);font-size:12px;line-height:1.5}
dialog.card-import-dialog .card-import-issue small{display:block;margin-top:4px;overflow-wrap:anywhere;color:var(--ui-secondary);font-size:11px}
dialog.card-import-dialog .card-import-table label{display:block;margin:0 0 5px;font-size:10px;color:var(--ui-secondary)}
dialog.card-import-dialog .card-import-table label input{display:block;margin:3px 0 0;min-width:0;width:100%;font-size:11px}
dialog.card-import-dialog .card-import-table select{min-height:30px;width:100%;padding:5px 7px;font-size:11px;margin:3px 0 0}
dialog.card-import-dialog .card-import-needs-review{background:var(--ui-raised)}
dialog.card-import-dialog .card-import-row-source{margin-top:6px;font-size:10px;color:var(--ui-secondary)}
dialog.card-import-dialog .card-import-row-source summary{cursor:pointer}
dialog.card-import-dialog .card-import-row-source p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px;line-height:1.5}
dialog.card-import-dialog .card-import-verification{display:flex;gap:9px;align-items:flex-start;margin:14px 0 0;padding:10px 12px;border:1px solid var(--ui-edge);border-radius:8px;background:var(--ui-raised);font-size:12px;line-height:1.5;font-weight:400}
dialog.card-import-dialog .card-import-verification input[type=checkbox]{display:inline-block;width:16px;height:16px;min-height:16px;margin:1px 0 0;padding:0;flex:none;accent-color:var(--ui-accent)}
@media(max-width:680px){dialog.card-import-dialog .card-import-verification{min-height:44px;align-items:center}dialog.card-import-dialog .card-import-table :is(input,select),dialog.card-import-dialog .card-import-table label input,dialog.card-import-dialog .card-import-source textarea{font-size:16px}dialog.card-import-dialog .card-import-table input[type=date]{font-size:12px;min-width:0;padding:4px 2px}}
