/* Shared sizing for actions and forms; reading cards and timeline geometry stay independent. */
:root {
  --control-height: 40px;
  --control-pad-x: 14px;
  --control-radius: 10px;
  --icon-control-size: 36px;
  --space-inline: 8px;
  --space-field: 16px;
  --space-section: 24px;
  --surface-padding: 20px;
}
body :is(.modal, dialog, .auth-form, .settings-section, .filters-bar,
  .calendar-nav, .pw-calendar-views, .planner-quick, .wiki-actions, .wiki-file,
  .note-top, .note-format, .note-footer, .saved-link-actions, .list-actions,
  .fw-toolbar, .fp-card-actions, .fw-settings, #linksQuickForm,
  .wiki-section-actions, .note-folder-actions) button,
body :is(.add-btn, .add-task-btn, .create-list-btn, .form-submit, .auth-button,
  .filter-btn, .clear-btn, .desk-button, .pw-button, .task-view-tabs button,
  .planner-tabs button, .fw-section-head button, .fp-shopping button, .trash-row button, .saved-link-actions a,
  #wikiNew, #wikiSave, #wikiAllArticles, #wikiShare, #wikiSectionNew, #wikiBrowseToggle,
  #noteNew, #noteDelete, #noteBrowseToggle, #folderAdd, #fwMore) {
  box-sizing: border-box;
  min-height: var(--control-height) !important;
  padding: 9px var(--control-pad-x) !important;
  border-radius: var(--control-radius) !important;
  line-height: 20px;
  vertical-align: middle;
  max-width: 100%;
}
body :is(.page, .modal, dialog, .auth-form) :is(input, select):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]) {
  box-sizing: border-box;
  min-width: 0;
  min-height: var(--control-height) !important;
  height: var(--control-height);
  padding: 8px 12px !important;
  border-radius: var(--control-radius) !important;
  line-height: 22px;
}
body :is(.page, .modal, dialog, .auth-form) textarea {
  box-sizing: border-box;
  min-width: 0;
  padding: 12px !important;
  border-radius: var(--control-radius) !important;
  min-height: 96px;
  line-height: 1.6;
}
body :is(#wikiBody, #wikiScriptBody) { min-height: 240px; }
body #transactionAmount, body .fp-dialog input.fp-amount {
  height: 64px;
  min-height: 64px !important;
  line-height: 1.3;
}
body :is(.page, .modal, dialog) input[type=file] {
  max-width: 100%;
  font-size: 14px;
}
body :is(.page, .modal, dialog) input[type=file]::file-selector-button {
  min-height: var(--control-height);
  padding: 8px 12px;
  margin-right: 8px;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  background: var(--bg2);
  color: var(--text);
  font: inherit;
  cursor: pointer;
}
body :is(.modal-close, .fp-close, .wiki-star, .edit-btn, .delete-btn, .delete-list-btn, .pin-btn),
body .task-actions > summary {
  box-sizing: border-box;
  min-width: var(--icon-control-size) !important;
  min-height: var(--icon-control-size) !important;
  padding: 8px !important;
  border-radius: var(--control-radius) !important;
}
body .task-actions-panel button { width:100%; min-height:var(--control-height)!important; padding:10px 12px!important; }
body .saved-link-actions a { display:inline-flex; align-items:center; }
body :is(button, input, select, textarea):focus-visible { outline:2px solid var(--accent)!important; outline-offset:2px; }
body :is(#wikiTree, #noteFolderTree) button { min-height:var(--icon-control-size); padding-block:8px; }
body .form-group { margin-bottom: var(--space-field) !important; }
body .form-group > label { margin-bottom: 6px !important; }
body :is(.fp-dialog, .fw-dialog) label:not(.fp-check) { margin:0 0 var(--space-field); }
body :is(.fp-dialog, .fw-dialog) label input,
body :is(.fp-dialog, .fw-dialog) label select { margin-top:6px; margin-bottom:0; }
body :is(.filters-bar, .list-actions, .wiki-actions, .note-top, .note-format,
  .note-footer, .saved-link-actions, .fp-card-actions, .fw-actions, .task-view-tabs,
  .planner-tabs, .planner-quick, .pw-calendar-views) { gap:var(--space-inline) !important; }
body :is(.list-actions, .wiki-actions, .saved-link-actions, .fp-card-actions) { flex-wrap:wrap; }
body :is(.filters-bar, .planner-quick, .task-view-tabs, .wiki-actions, .note-top) {
  margin-bottom:var(--space-field);
}
body :is(.shopping-list-card, .settings-section, .fp-card, .note-editor, .note-welcome) {
  padding:var(--surface-padding) !important;
  border-radius:14px;
}
body :is(.wiki-library, .wiki-nav, .notes-library) { padding:16px; }
body :is(.wiki-meta-fields, #wikiFields, #noteFields) { gap:var(--space-field); }
body :is(.fw-header, .fw-toolbar, .calendar-nav) { margin-bottom:var(--space-field); }
body .workspace-caption { margin-bottom:var(--space-section); }
body .modal, body :is(.fp-dialog, .fw-dialog) { padding:24px; }
body :is(.modal, .fp-dialog, .fw-dialog) :is(h2, header) { margin-bottom:20px; }
body :is(.fp-dialog, .fw-dialog) footer { gap:var(--space-inline); margin-top:var(--space-section); }
body .modal .form-submit { margin-top:8px; }
body .fw-toolbar nav { gap:4px; }
body .fw-toolbar nav button { padding-inline:12px!important; }
body .fw-month button { min-width:var(--control-height); min-height:var(--control-height); padding:8px; }
body .fw-month input { width:172px; }
body #page-wiki .wiki-article-row { grid-template-columns:minmax(0,1fr) var(--icon-control-size); }
@media(min-width:901px) {
  body .main-content { padding:24px 24px 48px; }
  body.pw-detail-open .main-content { padding-inline:24px; }
}
@media(max-width:900px), (pointer:coarse) {
  :root { --control-height:44px; --icon-control-size:44px; --control-pad-x:12px; --surface-padding:16px; }
  body .main-content { padding-inline:16px; }
  body .modal, body :is(.fp-dialog, .fw-dialog) { padding:20px 16px; }
  body :is(.page, .modal, dialog, .auth-form) :is(input, select, textarea):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]) { font-size:16px; }
  body .fw-toolbar nav button { padding-inline:5px!important; }
  body .fw-month input { width:140px; }
  body .pw-calendar-views { flex-wrap:wrap; }
  body .calendar-nav button { padding-inline:8px!important; }
  body .planner-quick { flex-wrap:wrap; align-items:center; }
  body #page-wiki .wiki-article-row { grid-template-columns:minmax(0,1fr) 44px; }
  body .fp-dialog { padding-bottom:calc(20px + env(safe-area-inset-bottom)); }
  body #addTransactionModal .fw-entry { padding:20px 16px calc(20px + env(safe-area-inset-bottom)); }
}
