/* Shared readable layout. Loaded after legacy, screenshot-sized styles. */
:root { --ui-body:14px; --ui-label:13px; --ui-caption:12px; }
body { font-size:var(--ui-body); line-height:1.4; }
button { line-height:1.3; }
.app-version,.progress-top { font-size:12px; }
.nav-item,.sidebar-status { font-size:14px; padding:10px 12px; }
.view-header h1 { font-size:28px; }
.view-section { margin-top:16px; }
.task-row { padding:12px; }
.task-row-title,.mini-title { font-size:15px; line-height:1.4; overflow-wrap:anywhere; }
.task-row-notes { font-size:14px; }
.day-column { min-height:360px; }
.day-header { padding:10px; }
.day-add { font-size:14px; }
.task-card-mini { padding:10px; }
.empty-state { padding:32px 16px; }

/* The dialog and its scrolling card must both fit the viewport. */
dialog.modal,dialog#settingsDialog {
  width:fit-content; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px);
  padding:0; margin:auto; overflow:visible;
}
dialog.modal .modal-card {
  max-width:calc(100vw - 24px)!important; max-height:calc(100dvh - 24px)!important;
  padding:16px!important; overflow:auto; min-width:0; font-size:14px;
}
.modal .modal-head { align-items:flex-start; padding-bottom:12px!important; margin-bottom:12px!important; }
.modal .modal-head h2 { font-size:22px!important; line-height:1.25!important; }
.modal .modal-subtitle { font-size:13px!important; line-height:1.4; }
.modal .plain-icon-btn { flex:0 0 32px; width:32px; min-height:32px; font-size:24px; }
.modal :is(.secondary-btn,.primary-btn,.danger-outline-btn,.dialog-delete-btn,.link-btn,.icon-mini-btn) {
  font-size:14px; min-height:34px; padding:7px 10px;
}
.modal .modal-actions { position:static!important; margin-top:12px!important; padding:12px 0 0!important; bottom:auto!important; flex-wrap:wrap; }
.modal :is(input,select,textarea) { min-width:0; }
.modal .muted-fine { font-size:12px!important; }

/* Task editor: legible controls instead of shrinking the entire form. */
#taskDialog .task-card-modal { width:920px; font-size:14px; }
#taskDialog .task-core-grid-approved { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 12px; }
#taskDialog .task-title-field { grid-column:1/-1; }
#taskDialog .task-core-grid label { font-size:13px; margin-bottom:4px; }
#taskDialog .task-core-grid :is(input,select,.picker-display),
#taskDialog :is(.checklist-add-row,.update-entry) input {
  font-size:14px; min-height:38px; height:auto; padding:8px 10px;
}
#taskDialog .compact-urgent { gap:10px; margin:12px 0; }
#taskDialog .switch-line { padding:10px; min-height:0; }
#taskDialog .switch-line strong { font-size:14px; }
#taskDialog .switch-line small { font-size:12px; line-height:1.4; }
#taskDialog .task-detail-layout { grid-template-columns:minmax(0,1.8fr) minmax(230px,1fr); gap:12px; }
#taskDialog .task-detail-layout:has(.updates-section.hidden) { grid-template-columns:minmax(0,1fr); }
#taskDialog .task-detail-side:has(.updates-section.hidden) { display:none; }
#taskDialog :is(.task-detail-main,.task-detail-side) { gap:12px; }
#taskDialog .workspace-section { padding:12px; margin:0; border-radius:10px; background:var(--panel-2); border-color:var(--border); }
#taskDialog .section-head { margin-bottom:8px; }
#taskDialog .section-head h3 { font-size:15px; line-height:1.35; }
#taskDialog .section-head p { font-size:12px; line-height:1.4; }
#taskDialog .advanced-toolbar { height:auto; flex-wrap:wrap; gap:4px; padding:4px; overflow:visible; margin-bottom:6px; }
#taskDialog .advanced-toolbar select { font-size:13px; width:110px!important; height:32px; padding:4px!important; }
#taskDialog .advanced-toolbar #editorFontSize { width:58px!important; }
#taskDialog .advanced-toolbar button { font-size:14px; width:32px; min-width:32px; height:32px; flex:0 0 32px; padding:2px; }
#taskDialog .advanced-toolbar .toolbar-divider { height:26px; }
#taskDialog .rich-editor { font-size:14px; line-height:1.5; min-height:120px; max-height:280px; padding:10px; }
#taskDialog :is(.attachment-row,.pending-file,.pending-file .file-open,.attachment-row .link-btn) { font-size:14px; }
#taskDialog .pending-file { min-height:36px; padding:6px 8px; }
#taskDialog .file-open { overflow-wrap:anywhere; min-width:0; }
#taskDialog .pending-files { gap:6px; max-height:180px; }
#taskDialog .file-delete { font-size:20px; min-width:30px; min-height:30px; }
#taskDialog .checklist-items { gap:6px; max-height:240px; }
#taskDialog .checklist-item { min-height:38px; padding:5px 7px; gap:8px; }
#taskDialog .checklist-item input[type="text"] { font-size:14px!important; }
#taskDialog .checklist-item input[type="checkbox"] { width:17px; height:17px; }
#taskDialog .checklist-item button { font-size:20px; min-width:30px; min-height:30px; }
#taskDialog :is(.checklist-head-actions,.checklist-add-row,.update-entry,.task-actions,.updates-section,.attachment-row) :is(button,.link-btn) { font-size:14px; padding:6px 9px; min-height:34px; }
#taskDialog .checklist-progress:not(.hidden) { display:block!important; }
#taskDialog .progress-top { font-size:12px; }
#taskDialog .checklist-add-row { margin-top:8px; gap:8px; }
#taskDialog .updates-section { min-height:0; height:auto; }
#taskDialog .update-history { max-height:320px; gap:8px; }
#taskDialog .update-item { font-size:14px; padding:8px; }
#taskDialog .update-time { font-size:12px; }
#taskDialog .update-text { line-height:1.4; }
#taskDialog .update-actions button { font-size:12px; }
#taskDialog .update-entry { grid-template-columns:1fr; gap:6px; }

/* Settings uses the same scale, with content-sized sections. */
#settingsDialog .settings-card-reference { width:920px!important; }
#settingsDialog .settings-card-reference .settings-modal-head .modal-subtitle { font-size:13px!important; }
#settingsDialog .setting-panel { padding:12px!important; }
#settingsDialog .setting-panel strong { font-size:15px!important; }
#settingsDialog .setting-panel p { font-size:13px!important; }
#settingsDialog :is(.settings-checklist label,.secondary-btn,.danger-outline-btn,.custom-theme-actions .primary-btn) { font-size:14px!important; }
#settingsDialog :is(.setting-value,.storage-line,.muted-fine,.theme-rights-note,.theme-preview-title) { font-size:12px!important; }
#settingsDialog .settings-footer-reference { grid-template-columns:180px minmax(0,1fr)!important; }
#settingsDialog .theme-choice-row { grid-template-columns:repeat(6,minmax(0,1fr))!important; }
#settingsDialog .theme-choice-row button { font-size:12px!important; min-height:52px!important; }
#settingsDialog .theme-builder-copy strong { font-size:14px!important; }
#settingsDialog :is(.theme-builder-copy p,.theme-builder-grid label,.builder-label,.builder-label small,.color-control input[type="text"],.approved-logo-actions button,.background-image-control .secondary-btn) { font-size:12px!important; }
#settingsDialog .color-control { grid-template-columns:32px minmax(0,1fr)!important; }
#settingsDialog .color-control input { height:34px!important; }
#settingsDialog .approved-theme-bottom-row { grid-template-columns:40px minmax(0,1fr) 110px!important; }

/* All Smart Import stages inherit theme colors; analysis logic is untouched. */
.smart-modal .smart-card { min-width:0; }
.smart-modal .smart-dropzone { min-height:150px; padding:16px; gap:6px; }
.smart-modal .smart-dropzone strong { font-size:17px; }
.smart-modal .smart-dropzone :is(span,small) { font-size:13px; overflow-wrap:anywhere; }
.smart-modal .smart-upload-icon { font-size:30px; }
.smart-modal .smart-upload-actions { grid-template-columns:repeat(3,minmax(0,1fr)); }
.smart-modal .smart-upload-actions button { font-size:14px; padding:10px 8px; }
.smart-modal :is(.smart-local-note,.smart-recent-list>div,.smart-analysis-status,.smart-summary-strip span) { font-size:13px; }
.smart-modal :is(.smart-section-title,label) { font-size:14px; }
.smart-modal :is(input,textarea) { font-size:14px; }
.smart-modal .smart-document-panel>strong { font-size:13px; white-space:normal; overflow-wrap:anywhere; }
.smart-modal .smart-review-layout { grid-template-columns:minmax(0,210px) minmax(0,1fr); }
.smart-modal .smart-date-reminder-grid { grid-template-columns:minmax(0,180px) minmax(0,1fr); }
.smart-modal .smart-reminder-presets label { font-size:13px; }
.smart-modal .smart-card :is(.smart-action-row,.smart-create-row) { min-width:0; }
#pickerDialog .picker-weekdays { font-size:12px; }
#pickerDialog .picker-day { font-size:14px; }
#pickerDialog :is(label,select) { font-size:14px; }
#importReviewDialog .import-row { grid-template-columns:32px minmax(0,1fr) 120px 110px 32px; }
#importReviewDialog .import-row :is(input,select) { font-size:14px; }

@media(max-width:900px) {
  #taskDialog .task-detail-layout { grid-template-columns:minmax(0,1fr); }
  #taskDialog .task-core-grid-approved { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .topbar { flex-wrap:wrap; gap:8px; }
  .search-wrap { min-width:0; }
}
@media(max-width:760px) {
  .app-shell { display:block; }
  .sidebar { position:static; height:auto; padding:12px; gap:10px; }
  .sidebar .brand-wrap { min-width:0; }
  .brand { font-size:21px; }
  .brand-logo { max-width:46px; height:36px; }
  .sidebar-add { font-size:14px; padding:10px; }
  .nav-list { gap:4px; }
  .sidebar .sidebar-footer { position:static; padding-top:6px; }
  .workspace { padding:0 12px 20px; }
  .search-wrap { flex:1 1 100%; max-width:none; }
  .theme-select { max-width:140px; }
  .view-header { align-items:flex-start; gap:8px; flex-wrap:wrap; }
  .view-header h1 { font-size:24px; }
  .planner-board { grid-template-columns:repeat(7,minmax(240px,80vw)); }
  .planner-board.day-mode { grid-template-columns:minmax(0,1fr); }
  .day-column { min-height:300px; }
  .task-row-actions { flex-wrap:wrap; }
  dialog.modal .modal-card { padding:12px!important; }
  #taskDialog .task-core-grid-approved { grid-template-columns:minmax(0,1fr); }
  #taskDialog .compact-urgent { grid-template-columns:minmax(0,1fr); }
  #taskDialog .advanced-toolbar { gap:5px; }
  #taskDialog :is(input:not([type="checkbox"]),select,.rich-editor) { font-size:16px; }
  #taskDialog .task-actions button { min-height:40px; }
  #settingsDialog .settings-card-reference { width:calc(100vw - 24px)!important; }
  #settingsDialog :is(.settings-grid-reference,.settings-footer-reference) { grid-template-columns:minmax(0,1fr)!important; }
  #settingsDialog .theme-choice-row { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  #settingsDialog .approved-theme-builder { grid-template-columns:minmax(0,1fr)!important; }
  #settingsDialog .approved-theme-bottom-row { grid-template-columns:40px minmax(0,1fr)!important; }
  #settingsDialog .theme-preview-card { grid-column:1/-1!important; }
  .smart-modal :is(.smart-review-layout,.smart-date-reminder-grid,.smart-upload-actions) { grid-template-columns:minmax(0,1fr); }
  .smart-modal .smart-dropzone { min-height:140px; }
  .smart-modal .smart-card { width:calc(100vw - 24px); }
  .smart-modal .smart-document-panel { grid-template-columns:80px minmax(0,1fr); }
  #importReviewDialog .import-row { grid-template-columns:30px minmax(0,1fr) 32px; }
  #importReviewDialog .import-row :is([data-import-date],.import-priority) { grid-column:2; }
}

/* Desktop navigation and calendar polish. */
@media(min-width:761px) {
 .app-shell { grid-template-columns:235px minmax(0,1fr); }
 .sidebar { padding:18px 14px; }
 .planner-board { grid-template-columns:repeat(7,minmax(0,1fr)); }
 .planner-board.day-mode { grid-template-columns:minmax(0,760px); }
 .day-column { min-width:0; min-height:300px; }
}
.sidebar-add { font-size:20px; font-weight:600; padding:12px 10px; }
.sidebar-add span { font-size:24px; }
.sidebar :is(.nav-item,.sidebar-status) { border:1px solid var(--border); border-radius:10px; min-height:44px; }
.sidebar .nav-item.active { border-color:var(--accent-2); font-weight:600; }
.sidebar :is(.nav-item,.sidebar-status):hover { border-color:var(--accent-2); background:color-mix(in srgb,var(--accent-2) 8%,var(--panel)); }
.sidebar :is(button):focus-visible { outline:2px solid var(--accent-2); outline-offset:3px; }
.topbar .search-wrap { max-width:none; }
.day-label { flex-wrap:wrap; gap:4px; font-size:14px; }
.day-label>span { margin-left:auto; }
.today-badge { font-size:10px; font-weight:600; color:var(--text); border:1px solid var(--accent-2); border-radius:4px; padding:1px 3px; }
.day-add { padding:8px 2px; font-size:13px; }
@media(min-width:761px) and (max-width:1100px) { .planner-board { grid-template-columns:repeat(7,minmax(145px,1fr)); } }
@media(max-width:760px) { .sidebar .sidebar-footer { display:block; margin-top:0; border:0; } .sidebar-add { font-size:18px; } }
/* Keep selected navigation on the theme surface, with a clear accent outline. */
body[data-theme] .sidebar .nav-item.active {
  background:color-mix(in srgb,var(--accent-2) 4%,var(--panel));
  border-color:var(--accent-2);
  box-shadow:none;
  color:var(--text);
  font-weight:600;
}

/* Aligned navigation icons and distinct calendar action footers. */
.sidebar .sidebar-add { display:grid; grid-template-columns:28px minmax(0,1fr); gap:8px; align-items:center; text-align:left; padding:12px; }
.sidebar .sidebar-add span { margin:0; text-align:center; }
.sidebar :is(.nav-item,.sidebar-status)>span:first-child { align-self:stretch; display:flex; align-items:center; justify-content:center; border-right:1px solid var(--border); padding-right:8px; }
.day-tasks { padding:0; gap:0; }
.day-tasks .task-card-mini { margin:8px 8px 0; }
.day-tasks .day-add { margin-top:auto; border-top:1px solid var(--border); border-radius:0; padding:10px 8px; width:100%; min-height:40px; }
@media(max-width:760px) { .sidebar .nav-item>span:first-child { display:flex; } }
/* Primary action follows the same sidebar geometry as navigation. */
.sidebar .sidebar-add {
  grid-template-columns:28px minmax(0,1fr);
  gap:8px;
  border:1px solid var(--accent-2);
  border-radius:10px;
  min-height:44px;
  padding:10px 12px;
  font-size:14px;
  line-height:1.4;
}
.sidebar .sidebar-add span {
  display:flex;
  align-self:stretch;
  align-items:center;
  justify-content:center;
  border-right:1px solid var(--border);
  padding-right:8px;
  font-size:14px;
  margin:0;
}
@media(min-width:761px) { .sidebar .nav-list { padding-right:0; } }
/* Calm calendar headings and an even current-day outline. */
body[data-theme] .day-column.today { box-shadow:none; }
.view-header h1, .day-label, .today-badge { font-weight:400; }
.sidebar .nav-item.active { font-weight:400; }
/* Compact date selection and a more proportionate task editor. */
#pickerDialog .picker-card { width:360px; }
#pickerDialog .picker-day { aspect-ratio:auto; height:34px; padding:4px; font-weight:400; }
#pickerDialog .picker-month-nav { grid-template-columns:34px 1fr 34px; }
#pickerDialog .picker-month-nav button { width:34px; padding:6px; }
#pickerDialog .modal-head h2 { font-size:20px!important; font-weight:400; }
#taskDialog .task-card-modal { width:820px; }
#taskDialog .rich-editor { min-height:90px; }
#taskDialog .workspace-section { padding:10px; }

#cloudAuth input { display:block; width:100%; margin:4px 0 8px; padding:8px; font-size:14px; }
.cloud-actions { display:flex; gap:8px; flex-wrap:wrap; margin:10px 0; }
#cloudConflicts>div { border:1px solid var(--border); padding:8px; margin-top:8px; }
#cloudConflicts button { margin:4px; }
#cloudTransfer { margin-top:12px; border-top:1px solid var(--border); padding-top:10px; }
#cloudTransfer input { margin-right:6px; }
#cloudIdentity { overflow-wrap:anywhere; }
#cloudAuthFeedback:not(:empty) { padding:8px 10px; border:1px solid var(--accent-2); border-radius:6px; color:var(--text); }
.cloud-actions button:disabled { opacity:.65; cursor:wait; }

/* Clear search and password controls, with theme-aware icon dividers. */
.search-wrap .search-icon { display:flex; align-items:center; justify-content:center; flex:0 0 32px; height:28px; padding-right:10px; border-right:1px solid var(--border); }
.search-icon svg { width:22px; height:22px; flex-shrink:0; }
.password-control { position:relative; }
#cloudAuth .password-control input { padding-right:48px; }
#toggleCloudPassword { position:absolute; right:3px; top:3px; bottom:3px; width:40px; display:flex; align-items:center; justify-content:center; padding:6px; border:0; border-left:1px solid var(--border); border-radius:0 6px 6px 0; color:var(--text); background:transparent; }
#toggleCloudPassword svg { width:22px; height:22px; }
#toggleCloudPassword .eye-slash { display:none; }
#toggleCloudPassword[aria-pressed="true"] .eye-slash { display:block; }
#toggleCloudPassword:focus-visible { outline:2px solid var(--accent-2); outline-offset:1px; }
