/* September 8 review: readable controls, stable calendar cells and contained cards. */
#deleteSchedule,.notification-read-all{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:10px}
#deleteSchedule svg,.notification-read-all svg{width:22px;height:22px}
.expand-button,.editor-title-toggle,[data-toggle-title]{display:inline-grid;place-items:center;width:32px!important;height:32px!important;min-width:32px;padding:6px!important;border-radius:50%!important;aspect-ratio:1}
.expand-button svg,.editor-title-toggle svg,[data-toggle-title] svg{width:18px;height:18px}
.review-chevron-up svg{transform:rotate(180deg)}
[data-toggle-plan-details],[data-toggle-task-details],[data-overview-expand]{display:inline-grid!important;place-items:center!important;width:32px!important;height:32px!important;min-width:32px!important;padding:6px!important;border-radius:50%!important;aspect-ratio:1;border:1px solid var(--line,#ddd);background:transparent;box-sizing:border-box}
[data-toggle-plan-details] svg,[data-toggle-task-details] svg,[data-overview-expand] svg{width:18px;height:18px}
.summary{position:relative;display:grid!important;grid-template-columns:1fr;justify-items:center;text-align:center;gap:4px}
#storageStatus{font-size:11px;opacity:.7}
.summary-alignment button{display:grid;place-items:center;padding:9px!important;width:36px;height:36px}
.summary-alignment button span{transform:scale(.78);transform-origin:center}
.split-month-grid{grid-template-rows:repeat(6,minmax(0,1fr))!important;row-gap:1px!important;min-height:0;overflow:hidden!important}
.split-month-grid>span{min-height:0!important;padding:0 0 4px!important;box-sizing:border-box;line-height:13px!important;font-size:10px}
.split-month-grid span i{left:50%!important;right:auto!important;bottom:1px!important;transform:translateX(-50%);margin:0!important;width:3px;height:3px}
.monthly-cover-calendar{min-height:0!important;padding:12px 12px 8px!important;box-sizing:border-box;grid-template-rows:auto minmax(0,1fr);gap:2px}

.android-week-row>.week-date-button,.week-date-button{text-align:center!important;justify-content:center!important;align-items:center!important;min-width:64px;padding-inline:8px!important;box-sizing:border-box}
.timeline-canvas{box-sizing:border-box;max-width:100%}
.timeline-block{right:18px!important;max-width:calc(100% - 70px)!important;box-sizing:border-box}
.timeline-card{width:auto!important;min-width:0;box-sizing:border-box}
.timeline-anchor{overflow:visible}
.collaboration-summary{display:flex;flex-wrap:wrap;gap:12px}
.collaborator-chip{display:inline-flex;align-items:center;gap:8px}
.collaborator-avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:750;flex-shrink:0}
.review-file-picker,.review-date-picker{display:flex;align-items:center;gap:10px;position:relative;min-width:0;min-height:48px;box-sizing:border-box;border-radius:24px;background:var(--surface);padding:4px 10px}
.review-file-picker button{flex-shrink:0;min-height:38px;border-radius:999px;padding:6px 12px}
.review-file-label{min-width:0;overflow-wrap:anywhere;font-size:13px}
.review-native-control{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;opacity:0!important;padding:0!important;border:0!important;pointer-events:none}
.review-date-picker>input:not(.review-native-control){flex:1;min-width:0;width:100%;border:0!important;background:transparent!important;padding:8px!important}
.review-date-picker>button{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;padding:7px;border:0;background:transparent}
.review-date-picker svg{width:20px;height:20px}
.subtask-optional>summary{font-size:15px!important;line-height:1.5}
#settingsPanel input[type=checkbox],#settingsPanel input[type=radio],#editor input[type=checkbox]{width:22px!important;height:22px!important;flex-shrink:0;accent-color:var(--accent)}
.subtask-row select,.subtask-row .review-file-picker{min-height:48px!important}
@media(max-width:700px){.timeline-block{right:12px!important}.review-file-picker{flex-wrap:wrap}.review-file-label{width:100%}}
html[lang^="en"] .shared-schedule::before{content:"Shared"}

#editor [data-close="editor"]{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important;text-indent:0!important}

#editor [data-close="editor"] svg{width:24px;height:24px;display:block}

/* r54: date links are metadata beneath the title, never native boxed controls. */
.readonly-template-paper li>span,.schedule-subtask>span{min-width:0}
.readonly-template-paper .subtask-date,.schedule-subtask .subtask-date{display:block!important;width:fit-content!important;max-width:100%;min-height:0!important;margin:3px 0 7px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--category-color,var(--accent))!important;font-family:inherit;font-size:12px!important;font-weight:500;line-height:1.5;text-align:left;cursor:pointer;text-decoration:none!important}
.readonly-template-paper .subtask-date{font-size:12px!important;line-height:1.5!important;font-weight:500!important}
.occurrence-task.current small,.weekly-card-subtasks li:not(.other-date-task) .subtask-date{color:var(--ink)!important}
.occurrence-task.other small,.weekly-card-subtasks li.other-date-task .subtask-date,.other-date-task .subtask-date{color:var(--muted)!important}
.readonly-template-paper li.complete span{ text-decoration:none!important }
.readonly-template-paper li.complete>span>strong{ text-decoration:line-through }
.nested-template-paper>header>time{display:none}
.review-file-picker{flex-wrap:wrap}
.review-file-label{flex:1;min-width:100px}
.review-file-previews{display:flex;flex-wrap:wrap;gap:10px;width:100%;flex-basis:100%;padding:4px 0}
.review-file-previews:empty{display:none}
.review-file-preview{position:relative;display:flex;flex-direction:column;gap:4px;width:76px;min-width:0;text-align:center}
.review-file-preview img,.review-document-icon{display:block;width:76px;height:76px;object-fit:cover;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.review-document-icon{font-size:30px;line-height:76px}
.review-file-preview small{display:block;font-size:10px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:76px}
.review-file-remove{position:absolute!important;top:-7px;right:-7px;display:grid!important;place-items:center;width:24px!important;height:24px!important;min-height:24px!important;padding:0!important;border:1px solid var(--line)!important;border-radius:50%!important;background:var(--surface)!important;color:var(--ink)!important;font-size:17px!important;line-height:1!important;z-index:2}

/* r56 cross-platform form language. Editable regions inherit the active
   theme and remain visually distinct without changing rendered content. */
:root{
  --input-fill:color-mix(in srgb,var(--accent) 9%,var(--surface));
  --input-fill-focus:color-mix(in srgb,var(--accent) 14%,var(--surface));
  --input-edge:color-mix(in srgb,var(--accent) 24%,transparent);
}
:is(dialog,.planner-main,.settings-detail,.notification-center-dialog) :is(input,select):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"]){
  box-sizing:border-box;min-height:48px!important;padding:11px 18px!important;border:1px solid transparent!important;border-radius:999px!important;
  background:var(--input-fill)!important;color:var(--ink);font-size:clamp(14px,.92rem,16px);line-height:1.45;
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease;
}
:is(dialog,.planner-main,.settings-detail,.notification-center-dialog) textarea:not(.period-summary){
  box-sizing:border-box;min-height:44px!important;padding:10px 14px!important;border:1px solid transparent!important;border-radius:12px!important;
  background:var(--input-fill)!important;color:var(--ink);font-size:clamp(14px,.92rem,16px);line-height:1.45;resize:none;overflow-y:hidden;
}
:is(dialog,.planner-main,.settings-detail,.notification-center-dialog) textarea.period-summary{
  min-height:44px!important;border-radius:8px!important;resize:none;overflow-y:hidden;
}
:is(dialog,.planner-main,.settings-detail,.notification-center-dialog) :is(input,textarea,select):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"]):focus{
  outline:none;border-color:var(--input-edge)!important;background:var(--input-fill-focus)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent);
}
dialog,dialog>form,.notification-center-dialog>section,.attachment-preview-dialog{
  color:var(--ink);background:var(--paper);border-color:color-mix(in srgb,var(--accent) 18%,transparent);
  border-radius:var(--v3-panel-radius);
}

/* Cross-device density and control parity. Calendar cells use the theme's
   page background as one continuous field instead of separate filled tiles. */
.template-paper,.template-item,.template-editor-section{gap:10px!important}
.template-paper section,.template-section{padding-block:12px!important;margin-block:6px!important}
.month-day,.weekly-day,.daily-opening,.calendar-day,.month-cell,.week-day-card{background:transparent!important}
#foldEmptyPeriods,.period-fold,.collapse-all,.expand-all{
  min-height:32px!important;padding:0 14px!important;border-radius:999px!important;
  border:0!important;
  background:var(--mist)!important;color:var(--accent)!important;font-weight:700!important
}

.android-template-paper,.readonly-template-paper{gap:8px!important;padding:14px!important}
.android-template-paper .template-section,.readonly-template-paper>section{margin:0!important;padding-block:4px!important}
.android-template-paper .template-section>header,.readonly-template-paper>section>header{padding:8px 0!important;line-height:1.2!important}
.android-template-paper .template-item,.readonly-template-paper li{padding-block:7px!important;gap:7px!important}
.readonly-template-paper .subtask-date,.schedule-subtask .subtask-date{
  margin:1px 0 4px!important;font-size:10px!important;line-height:1.2!important
}
.readonly-template-paper li>span,.schedule-subtask>span{gap:1px!important}
@media(max-width:700px){
  :is(dialog,.planner-main,.settings-detail,.notification-center-dialog) :is(input,select):not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"]){
    min-height:46px!important;padding:10px 15px!important;font-size:14px;
  }
}

/* r56 final specificity guard: app.css contains editor-specific field radii. */
html body #editor input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"]),
html body #editor select,
html body #loginDialog input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"]),
html body .settings-detail input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"]),
html body .settings-detail select{
  min-height:48px!important;padding:11px 18px!important;border:1px solid transparent!important;border-radius:999px!important;background:var(--input-fill)!important;
}
html body #editor textarea,
html body .settings-detail textarea{
  min-height:44px!important;padding:10px 14px!important;border:1px solid transparent!important;border-radius:12px!important;background:var(--input-fill)!important;resize:none;overflow-y:hidden;
}
html body #editor :is(input,textarea,select):focus,
html body #loginDialog :is(input,textarea,select):focus,
html body .settings-detail :is(input,textarea,select):focus{
  border-color:var(--input-edge)!important;background:var(--input-fill-focus)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)!important;
}

html body #loginDialog.auth-dialog {
  width:min(94vw, 680px); max-width:680px; border:0; border-radius:34px; padding:0;
  color:var(--ink); background:color-mix(in srgb,var(--paper) 94%,white);
  box-shadow:0 28px 90px rgb(28 35 34 / .24);
}
html body #loginDialog.auth-dialog form { width:100%; margin:0; padding:42px 52px; background:color-mix(in srgb,var(--paper) 94%,white); border-radius:34px; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:5px; margin:22px 0 16px; border-radius:999px; background:color-mix(in srgb,var(--accent) 10%,transparent); }
.auth-tabs button { border:0; border-radius:999px; padding:11px; background:transparent; font-weight:750; }
.auth-tabs button.active { background:var(--paper); box-shadow:0 3px 14px rgb(0 0 0 / .08); }
#loginDialog .social-stack { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
#loginDialog .social-stack button { min-height:48px; border:1px solid color-mix(in srgb,var(--ink) 16%,transparent); border-radius:999px; background:transparent; font-weight:650; }
#loginDialog label { gap:7px; margin-top:13px; }
#loginDialog [hidden] { display:none!important; }
#loginDialog label > span { font-weight:700; }
#loginDialog .auth-consent { display:flex; align-items:center; }
#loginDialog .auth-consent input { width:20px; height:20px; }
#loginDialog .auth-link { border:0; background:transparent; padding:12px 0; color:var(--accent); text-align:left; }
#loginDialog .auth-requirements { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.4; }
.account-profile-form { display:flex; gap:12px; align-items:end; margin:20px 0; }
.account-profile-form label { flex:1; display:grid; gap:6px; }
.account-profile-form input { width:100%; border:0; border-radius:999px; padding:14px 18px; background:color-mix(in srgb,var(--accent) 9%,var(--paper)); }
.account-device-list { display:grid; gap:0; }
.account-device-list article { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 16px; margin-top:6px; border-radius:18px; background:color-mix(in srgb,var(--accent) 6%,var(--surface)); border:1px solid color-mix(in srgb,var(--accent) 10%,transparent); }
.account-device-list article div { display:grid; gap:4px; }
.account-device-list article small { color:color-mix(in srgb,var(--ink) 58%,transparent); }
.account-device-list article button { border:0; border-radius:999px; padding:9px 14px; color:var(--friend); }
@media(max-width:720px){html body #loginDialog.auth-dialog{background:var(--paper)}html body #loginDialog.auth-dialog form{width:auto;margin:0;padding:28px 22px;border-radius:30px}#loginDialog .social-stack{grid-template-columns:1fr}.account-profile-form{align-items:stretch;flex-direction:column}}

/* Reviews are readable secondary content, not tiny metadata. */
.subtask-reflection,.subtask-reflection textarea,.schedule-subtask .subtask-reflection,.readonly-template-paper .subtask-reflection,.readonly-template-paper .template-row-review{
  font-size:15px!important;line-height:1.5!important;
}
.schedule-review,.schedule-review strong,.schedule-review p{color:var(--review-color,var(--accent))!important}
.readonly-template-paper .template-row-note{display:block;margin-top:5px;font-size:14px!important;line-height:1.5!important;color:var(--muted)}
.readonly-template-paper .template-quantity-total{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:12px 0 2px;border-top:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));font-size:15px}
.readonly-template-paper .template-quantity-total span{font-weight:700;color:var(--accent)}
.readonly-template-paper li>i:last-child,.readonly-template-paper li>b:last-child{min-width:56px;text-align:right;justify-self:end;white-space:nowrap}
.readonly-template-paper>section>ul{padding-inline-start:42px!important}
#scheduleForm .nested-item-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;flex:0 0 calc(100% - 26px);margin-left:26px}
#scheduleForm .nested-item-details details{border-radius:var(--editor-item-radius)}
#scheduleForm .nested-item-details summary{cursor:pointer;color:var(--accent);padding:6px 10px}
#scheduleForm .nested-item-details textarea,#scheduleForm .nested-item-details input{width:100%;box-sizing:border-box}
@media(max-width:720px){#scheduleForm .nested-item-details{grid-template-columns:1fr}}
.subtask-resource-stacked{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
.subtask-attachment-picker{display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:8px!important}
.subtask-attachment-picker>input[type=file],.subtask-attachment-picker>input[type=file][hidden]{display:none!important;position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;opacity:0!important;pointer-events:none}
.subtask-file-button{grid-column:1/-1;width:max-content;padding:9px 15px;border:1px solid var(--line);border-radius:999px;background:var(--input-fill);color:var(--ink);font-weight:700}
.subtask-file-previews{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:10px}
.subtask-file-previews:empty{display:none}
.subtask-file-previews>span{display:grid;width:120px;gap:4px}
.subtask-file-previews img,.subtask-file-previews i{width:120px;height:80px;object-fit:cover;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.subtask-file-previews i{display:grid;place-items:center;font-style:normal;font-size:26px}
.subtask-file-previews small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;color:var(--muted)}
.attachment-thumbnail,#editor .editor-attachment-block .attachment-thumbnail{width:120px;height:80px;object-fit:cover}

.account-avatar-picker{display:block!important;flex:0 0 auto!important;cursor:pointer}.account-avatar-picker i{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);font-style:normal;font-weight:800}.account-avatar-picker img{width:100%;height:100%;object-fit:cover}.account-device-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 4px;border:0;background:transparent;text-align:left}.account-device-toggle span{display:grid;gap:4px}.account-device-toggle small{color:var(--muted);font-weight:400}.account-device-list[hidden]{display:none!important}
