/* Shared compact geometry. Family colours, calendar cells and status bars stay unchanged. */
.widget-quick-menu .widget-quick-clipboard{grid-column:1/-1;background:#e6e5f3;color:#4c4665;}
.clipboard-import-tools,.clipboard-import-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.clipboard-import-dialog{width:min(480px,calc(100vw - 28px));box-sizing:border-box;}
.clipboard-import-dialog textarea,.clipboard-import-dialog input,.clipboard-import-dialog select{box-sizing:border-box;max-width:100%;min-width:0;}
.clipboard-import-dialog [data-photo]{max-width:100%;max-height:160px;object-fit:contain;}
.clipboard-import-dialog [data-review]{margin-top:16px;border-top:1px solid #e5ebe7;padding-top:12px;}
.clipboard-import-dialog [data-keep]{display:flex;align-items:center;gap:10px;font-size:14px;}
.clipboard-import-dialog [data-keep][hidden]{display:none;}
.clipboard-import-dialog [data-keep] input{width:18px;min-height:18px;flex:0 0 18px;margin:0;}
html body .work-rhythm-toggle,html body .work-rhythm-settings>label{display:flex;align-items:center;gap:12px;margin:12px 0;line-height:1.4;}
html body :is(.work-rhythm-dialog,.work-rhythm-settings,.family-settings-dialog,.settings-page) input[role=switch]{appearance:none!important;position:relative;display:inline-block!important;flex:0 0 38px;width:38px!important;min-width:38px!important;height:23px!important;min-height:23px!important;margin:0!important;padding:0!important;border:0!important;border-radius:20px;background:#aab6ae;cursor:pointer;}
html body :is(.work-rhythm-dialog,.work-rhythm-settings,.family-settings-dialog,.settings-page) input[role=switch]::after{content:'';position:absolute;top:3px;left:3px;width:17px;height:17px;background:white;border-radius:50%;transition:transform .15s;}
html body :is(.work-rhythm-dialog,.work-rhythm-settings,.family-settings-dialog,.settings-page) input[role=switch]:checked{background:#285347;}
html body :is(.work-rhythm-dialog,.work-rhythm-settings,.family-settings-dialog,.settings-page) input[role=switch]:checked::after{transform:translateX(15px);}
html body :is(.work-rhythm-dialog,.work-rhythm-settings,.family-settings-dialog,.settings-page) input[role=switch]:focus-visible{outline:2px solid #285347;outline-offset:3px;}
.work-rhythm-dialog{width:min(440px,calc(100vw - 28px));box-sizing:border-box;}
html body .work-rhythm-day{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,1.4fr);gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid #e6ece8;}
html body .work-rhythm-day select{width:100%;min-width:0;margin:0;}
html body .work-rhythm-times{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
html body .work-rhythm-times[hidden]{display:none!important;}
html body .work-rhythm-times label{display:block;margin:0;font-size:12px;color:#586b61;}
html body .work-rhythm-times input{width:100%;min-width:0;box-sizing:border-box;margin:4px 0 0;min-height:40px;font-size:16px;}
html body .work-rhythm-settings .work-rhythm-setting-heading{margin:0 0 8px;font-weight:600;font-size:16px;}
html body .work-rhythm-settings>p{font-size:14px;line-height:1.5;color:#586b61;margin:0 0 10px;}
html body .work-rhythm-settings>button{margin-top:4px;}
.work-time-shifts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;}
.work-time-shifts button{font-size:14px;margin:0;min-width:0;}
.widget-quick-menu{margin:auto!important;inset:0;width:min(360px,calc(100vw - 32px));box-sizing:border-box;text-align:center;padding:24px!important;border-radius:20px;}
.widget-quick-menu h2{margin:0 0 20px;}
.widget-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.widget-quick-menu button{width:100%;min-width:0;min-height:48px;margin:0;padding:12px 8px;border-radius:12px;font-weight:600;}
.widget-quick-menu .widget-quick-appointment{background:#dcebe4;color:#244d40;}
.widget-quick-menu .widget-quick-task{background:#fce4c9;color:#63451f;}
.widget-quick-menu .widget-quick-loan{background:#e6e5f3;color:#4c4665;}
.widget-quick-menu .widget-quick-note{background:#dfedf2;color:#35525e;}
.widget-quick-footer{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px;margin-top:26px;padding-top:16px;border-top:1px solid #e5ebe7;}
.widget-quick-menu .widget-quick-open{background:#285347;color:white;}
.widget-quick-menu .widget-quick-close{background:#f0f3ef;color:#43554c;}
:root {
  --ui-gap: 8px;
  --ui-control: 40px;
  --ui-radius: 8px;
  --ui-ink: #233b32;
  --ui-muted: #586b61;
  --ui-border: #d4ded7;
}
html body dialog:modal {
  padding: 18px;
  width: min(540px, calc(100vw - 24px));
  color: var(--ui-ink);
  line-height: 1.45;
}
/* Long editors start inside the viewport, never above its scrollable area. */
html body dialog.agenda-edit-dialog:modal {
 inset:12px 0 auto; margin:0 auto; transform:none;
 height:auto; max-height:calc(100dvh - 24px); overflow-y:auto;
 overscroll-behavior:contain; scroll-padding:12px;
}
html body dialog.agenda-edit-dialog h2:focus { outline:none; }
.appointment-chip.checklist-complete{opacity:.65}
.appointment-chip.checklist-complete::after{content:'✓';display:block;font-size:13px;font-weight:800;color:#204e3b}
.row.checklist-complete .content{opacity:.65}
.status-dock>.global-work-clock.is-paused{min-height:54px;padding:6px 8px;gap:8px}
.global-work-clock.is-paused [data-work-open]{font-size:13px;white-space:normal;line-height:1.3;text-align:left}
.global-work-clock.is-paused [data-work-pause]{min-height:40px;padding:7px 10px;background:#285347;color:#fff;border:0;font-size:13px}
/* More useful text without allowing long titles to stretch a week indefinitely. */
html body .month-day button.appointment-chip{white-space:normal;padding-right:5px;padding-top:25px}
html body .month-day .appointment-chip .appointment-label,
html body .month-day .month-check>span:last-child{
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
 white-space:normal;overflow:hidden;text-overflow:ellipsis;
 overflow-wrap:anywhere;word-break:normal;line-height:1.3;
}
html body .month-day div.month-check{align-items:flex-start}
html body .month-day div.month-check>span:last-child{flex:1;font-size:11px}
@media(max-width:700px){html body .month-day button.appointment-chip{font-size:11px}}
html body dialog form {
  min-width: 0;
  max-width: 100%;
  gap: var(--ui-gap);
}
html body dialog :is(h2,h3,p,label,details,fieldset,.fields) { min-width: 0; }
html body dialog h2 { font-size: 20px; line-height: 1.25; overflow-wrap: anywhere; }
html body dialog h3 { font-size: 15px; line-height: 1.35; margin: 12px 0 6px; }
html body dialog :is(form>p,details>p) {
  font-size: 14px;
  line-height: 1.5;
  margin: 4px 0 8px;
  overflow-wrap: anywhere;
}
html body dialog label:not(.agenda-people label):not(.agenda-icon-picker label) {
  font-size: 13px;
  line-height: 1.4;
  margin: 3px 0;
  gap: 5px;
}
html body dialog :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]) {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  min-height: var(--ui-control);
  padding: 8px 10px;
  border-radius: var(--ui-radius);
  font-size: 16px;
  line-height: 1.35;
}
html body dialog textarea { width: 100%; resize: vertical; }
html body dialog.photo-zoom { width: fit-content; max-width: calc(100vw - 24px); }
html body dialog.photo-zoom img { max-width: 100%; }
html body dialog.where-editor>h2 { margin: 0 44px 12px 0; }
html body dialog.where-editor.personal-today .where-add form>label:nth-of-type(n) { grid-column: 1/-1; }
html body dialog.where-editor .where-add form>button {
  grid-column: 1/-1;
  grid-row: auto;
  justify-self: end;
  order: 1;
  padding: 8px 14px;
}
html body dialog input[type=file] { width: 100%; font-size: 13px; }
html body dialog input[type=file]::file-selector-button {
  font: inherit;
  padding: 6px 8px;
  margin-right: 8px;
  border: 1px solid var(--ui-border);
  border-radius: 6px;
  background: #edf2ed;
  color: var(--ui-ink);
}
html body dialog .fields {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: var(--ui-gap);
  align-items: start;
}
html body dialog .fields[hidden] { display: none; }
html body dialog .dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
html body dialog .dialog-head>div { min-width: 0; }
html body dialog .dialog-head h2 { margin: 0; }
html body dialog .dialog-head .eyebrow { margin: 0 0 4px; font-size: 11px; }
html body dialog :is(.dialog-actions,.work-actions) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-gap);
  margin: 10px 0 0;
}
html body dialog :is(.dialog-actions,.work-actions)>button {
  width: auto;
  max-width: 100%;
  min-height: var(--ui-control);
  margin: 0;
  padding: 8px 12px;
  border-radius: var(--ui-radius);
  font-size: 14px;
  line-height: 1.3;
  white-space: normal;
}
html body dialog details { margin: 8px 0; }
html body dialog details>summary {
  min-height: 36px;
  padding: 7px 0;
  font-size: 14px;
  line-height: 1.4;
  cursor: pointer;
  overflow-wrap: anywhere;
}
html body dialog :is([role=alert],[role=status]):empty { display: none; }
html body dialog :is([role=alert],[role=status]) { overflow-wrap: anywhere; }
html body dialog :is(.appointment-top-close,.dialog-head>button) {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  font-size: 23px;
  line-height: 1;
}
html body dialog .agenda-people { margin: 8px 0; }
html body .new-appointment-flow .appointment-scope-switch { display:flex; gap:4px; margin:0; align-self:end; padding-bottom:1px; }
html body .new-appointment-flow .appointment-scope-switch button { min-height:34px; padding:5px 12px; font-size:13px; }
html body .new-appointment-flow .appointment-scope-switch [aria-pressed=true] { background:#28564a; color:white; }
html body dialog.new-appointment-flow .fields { display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 10px; align-items:end; }
html body dialog.new-appointment-flow .fields>.appointment-time-pair{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
html body dialog.new-appointment-flow .fields>.appointment-time-pair[hidden]{display:none}
html body dialog .appointment-time-pair[hidden],html body dialog .appointment-time-pair>label[hidden]{display:none}
html body dialog.new-appointment-flow .appointment-top-row{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
html body dialog.new-appointment-flow .appointment-top-row>label:not(.all-day-toggle){flex:0 1 135px;min-width:120px;margin:0}
html body dialog.new-appointment-flow .appointment-top-row .all-day-toggle{flex:0 0 auto;margin:0;min-height:34px;white-space:nowrap}
html body dialog.new-appointment-flow .appointment-top-row .appointment-scope-switch{align-self:center}
html body dialog.new-appointment-flow .fields label{margin:0;font-size:12px}
html body dialog.new-appointment-flow .typed-clock{min-height:36px}
html body dialog.new-appointment-flow :is(.all-day-toggle,.tentative-toggle){display:flex;align-items:center;gap:6px;margin:6px 0;font-size:12px}
html body dialog.new-appointment-flow :is(.all-day-toggle,.tentative-toggle)>input{appearance:none;position:relative;display:inline-block;flex:0 0 32px;width:32px;height:20px;min-height:20px;padding:0;margin:0;border:0;border-radius:20px;background:#aab6ae;cursor:pointer}
html body dialog.new-appointment-flow :is(.all-day-toggle,.tentative-toggle)>input:before{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:white;transition:transform .15s}
html body dialog.new-appointment-flow :is(.all-day-toggle,.tentative-toggle)>input:checked{background:#28564a}
html body dialog.new-appointment-flow :is(.all-day-toggle,.tentative-toggle)>input:checked:before{transform:translateX(12px)}
html body dialog.new-appointment-flow :is(.all-day-toggle,.tentative-toggle)>input[type=hidden]{display:none}
html body dialog.new-appointment-flow .call-appointment-toggle{grid-column:1/-1}
html body dialog.new-appointment-flow .agenda-people{margin:8px 0}
html body dialog.new-appointment-flow .agenda-people legend{font-size:12px;margin-bottom:5px}
html body dialog.new-appointment-flow .agenda-people>div{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;padding-bottom:3px}
html body dialog.new-appointment-flow .agenda-people>div>label{flex:0 0 auto;white-space:nowrap;gap:3px;padding:5px;min-height:34px;font-size:12px;border-radius:6px}
html body dialog.new-appointment-flow .agenda-people input{width:14px;height:14px;min-height:14px;flex:none}
html body dialog.new-appointment-flow .fields label { min-width:0; }
html body dialog.new-appointment-flow .fields input[type=date] { width:100%; min-width:0; padding:7px 3px; font-size:13px; }
html body dialog.new-appointment-flow .typed-clock { padding:7px 2px; gap:0; }
html body dialog.new-appointment-flow .typed-clock input { min-width:0; width:2ch; padding:0; font-size:15px; }
html body dialog.new-appointment-flow .new-title-button { padding:4px 0; min-height:32px; background:transparent; border:0; font-size:13px; margin:0; }
html body dialog.new-appointment-flow .agenda-people>small { display:none; }
/* One parent, compact child rows; secondary actions stay folded. */
html body dialog.event-dialog h3 { margin: 14px 0 6px; font-size: 14px; }
html body dialog.event-dialog .event-check {
  display: flex; align-items: center; gap: 8px; margin: 0;
  padding: 5px 0; border-bottom: 1px solid #dce4df; background: transparent;
}
html body dialog.event-dialog .event-check>span { flex: 1; min-width: 0; }
html body dialog.event-dialog .event-check small { display: block; font-size: 11px; }
html body dialog.event-dialog .event-check input { flex: 0 0 20px; width: 20px; height: 20px; }
html body dialog.event-dialog .task-open {
  text-align: left; background: transparent; border: 0; box-shadow: none;
  padding: 5px 0; min-height: 34px; font-size: 14px; line-height: 1.35;
}
html body dialog.event-dialog .event-check:has(input:checked) .task-open { text-decoration: line-through; opacity: .65; }
html body dialog.event-dialog .event-secondary>summary,
html body dialog.event-dialog .event-mail-fold>summary { font-size: 12px; }
html body dialog.event-dialog .event-moment { display: block; width: 100%; text-align: left; margin: 4px 0; padding: 8px; font-size: 13px; }
html body dialog .agenda-people>div { gap: 6px; }
html body dialog .agenda-people label { font-size: 13px; padding: 5px 8px; border-radius: 7px; }
html body dialog .mail-attachments { margin-top: 10px; }
html body dialog .mail-attachments p { font-size: 13px; line-height: 1.45; }
/* Page cards share spacing; leave the calendar grid, coloured docks and people strip alone. */
main #app .panel-head { padding: 12px 14px; gap: 8px; align-items: center; }
main #app .panel-head h2 { font-size: 16px; line-height: 1.35; }
main #app .panel-head button { min-height: 36px; line-height: 1.3; }
main #app .panel>.row { padding: 12px 14px; gap: 8px; flex-wrap: wrap; }
main #app .panel>.row>.content { flex: 1 1 140px; min-width: 0; overflow-wrap: anywhere; }
main #app .panel>.row>button { max-width: 100%; }
@media(max-width:600px) {
  html body dialog:modal { padding: 16px; }
  html body dialog h2 { font-size: 19px; }
  main #app .panel-head { padding: 10px 12px; }
  main #app .panel>.row { padding: 10px 12px; }
}
@media(pointer:coarse) {
  html body dialog :is(.dialog-actions,.work-actions)>button { min-height: 44px; }
}
@media(max-width:350px) {
  html body dialog .fields:not(.appointment-time-pair) { grid-template-columns: minmax(0,1fr); }
  html body dialog.where-editor.personal-today .where-add form>.fields { grid-template-columns: minmax(0,1fr); }
}
/* A single compact launcher; composing happens in the readable dialog. */
.capture:has(.note-launcher)>h2,.capture:has(.note-launcher)>p,.capture:has(.note-launcher)>small,.capture:has(.note-launcher)>form,.capture:has(.note-launcher)>.spark{display:none!important}
.note-launcher{min-height:40px;border:1px solid #b7c7bd;border-radius:9px;padding:8px 12px;box-shadow:0 2px 5px #173d3020}
.note-composer{width:min(440px,calc(100vw - 24px));box-sizing:border-box}
.note-composer h2{padding-right:48px}
.note-composer textarea{width:100%;box-sizing:border-box;min-height:120px;resize:vertical;font-size:16px}
.open-notes-notice{display:block;width:fit-content;max-width:100%;margin:6px 0 10px;padding:8px 12px;border:1px solid #d9c79d;background:#fff4d8;color:#493b20;border-radius:8px;font-size:13px}
.open-notes-notice[hidden]{display:none}
.appointment-actions .shared-action-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;min-height:42px;padding:8px;border-radius:50%}
.appointment-actions .action-danger{color:#b42318!important;background:#fff1f0!important;border:1px solid #edc4be}
.dialog-actions .shared-action-icon,.task-extra .shared-action-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;min-height:42px;padding:8px;border-radius:50%}
.dialog-actions .action-danger,.task-extra .action-danger{color:#b42318!important;background:#fff1f0!important;border:1px solid #edc4be}
.task-extra .shared-action-icon[hidden]{display:none}
.shared-action-icon svg{pointer-events:none}
.task-pin-switch{display:flex!important;align-items:center;gap:8px;font-size:13px;margin:8px 0}
.task-pin-switch input[role=switch]{appearance:none!important;display:inline-block!important;position:relative;width:32px!important;min-width:32px!important;height:19px!important;min-height:19px!important;padding:0!important;border:0!important;border-radius:12px;background:#b5bdb8;cursor:pointer}
.task-pin-switch input:checked{background:#285347}
.task-pin-switch input::after{content:'';position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:white;transition:transform .15s}
.task-pin-switch input:checked::after{transform:translateX(13px)}
.open-notes-notice{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pinned-task-row{display:block;width:100%;text-align:left;margin:6px 0}
.open-notes-notice{width:100%;box-sizing:border-box;white-space:normal}
.task-bar-items{display:flex;gap:14px;overflow-x:auto}
.task-bar-item{display:flex;align-items:center;gap:8px;flex:0 0 auto;max-width:100%}
.task-bar-item input[type=checkbox]{appearance:auto!important;flex:0 0 20px;width:20px!important;height:20px!important;min-height:20px!important;margin:0;accent-color:#285347}
.task-bar-item button{background:none;border:0;padding:5px 0;min-height:32px;text-align:left;color:inherit;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.completed-tasks{margin:12px 0}
.task-bar-item input[role=switch]{appearance:none!important;position:relative;flex:0 0 32px;width:32px!important;min-width:32px!important;height:19px!important;min-height:19px!important;padding:0!important;border:0!important;border-radius:12px;background:#b5bdb8;cursor:pointer}
.task-bar-item input[role=switch]::after{content:'';position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:white;transition:transform .15s}
.task-bar-item input[role=switch]:checked{background:#285347}
.task-bar-item input[role=switch]:checked::after{transform:translateX(13px)}
.completed-tasks>summary{padding:8px 0;font-size:13px}
.completed-task-row{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:7px 4px;background:transparent;border:0;border-bottom:1px solid #dce3dc;border-radius:0;text-align:left;color:#29463b}
.completed-task-row>span:nth-child(2){flex:1;min-width:0}
.completed-task-row strong{display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.completed-task-row small{display:block;font-size:11px;color:#68796e;line-height:1.4}
.completed-task-search{width:100%;box-sizing:border-box;min-height:36px;padding:7px 10px;margin:6px 0;border:1px solid #dce3dc;border-radius:8px;font-size:14px}
.note-save-hint{font-size:13px;line-height:1.45;color:#52685d;margin:6px 0 12px}
.appointment-photo-edit{margin:8px 0;font-size:13px}
.appointment-photo-edit>img{display:block;max-width:110px;max-height:90px;object-fit:contain;margin:8px 0;border-radius:6px}
.appointment-photo-edit>[hidden]{display:none}
.appointment-photo-edit .action-danger{color:#b42318;background:#fff1f0}
.appointment-tabs{display:flex;gap:4px;border-bottom:1px solid #dce3dc;margin:12px 0 8px}
.appointment-tabs [role=tab]{flex:1;min-width:0;min-height:38px;padding:7px 5px;border:0;border-radius:7px 7px 0 0;background:transparent;font-size:13px;color:#52685d;white-space:nowrap}
.appointment-tabs [aria-selected=true]{background:#e6eee8;color:#214e40;box-shadow:inset 0 -2px #285347;font-weight:600}
.appointment-tabs [hidden],.appointment-tab-panels [role=tabpanel][hidden]{display:none!important}
.appointment-tab-panels [role=tabpanel]{min-width:0}
.appointment-tab-panels .appointment-photo-preview{max-width:120px!important;margin:8px 0}
.appointment-tab-panels .appointment-photo-preview{display:inline-flex!important;flex-direction:column;align-items:center;gap:4px;max-width:140px!important;padding:6px}
.appointment-tab-panels .appointment-photo-preview img{display:block!important;flex:none;width:120px;height:100px;max-width:100%;object-fit:contain}
.appointment-tab-panels .appointment-photo-preview small{max-width:none;font-size:11px}
html body .appointment-dialog>h2{font-size:22px;line-height:1.2;margin-bottom:8px}
html body .appointment-dialog:has(.appointment-header-tools)>h2{margin-bottom:8px}
html body .appointment-dialog .appointment-when{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:3px 10px;margin-bottom:10px}
html body .appointment-dialog .appointment-when strong{font-size:14px;line-height:1.4}
html body .appointment-dialog .appointment-when span{font-size:19px;line-height:1.3;letter-spacing:0}
html body .appointment-dialog .appointment-actions{margin-top:12px;margin-bottom:0}
html body .appointment-dialog .appointment-tabs,html body .event-dialog .appointment-tabs{margin-top:28px}
.appointment-heading-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 8px;background:#f0f4ef;border:1px solid #dce5dc;border-radius:12px;padding:12px;margin:0 0 14px}
html body .appointment-dialog .appointment-heading-card>h2{grid-column:1;grid-row:1;font-size:24px;line-height:1.2;margin:0;padding:0;min-height:0;overflow-wrap:anywhere;align-self:center}
html body .appointment-dialog .appointment-heading-card>.appointment-header-tools{grid-column:2;grid-row:1;float:none;margin:0;gap:5px}
html body .appointment-dialog .appointment-heading-card>.appointment-when{grid-column:1/-1;flex-direction:column;align-items:flex-start;gap:4px;margin:0;clear:none}
html body .appointment-dialog .appointment-heading-card .appointment-when strong{font-size:17px}
html body .appointment-dialog .appointment-heading-card .appointment-when span{font-size:26px;line-height:1.2}
html body .appointment-dialog .appointment-heading-card>.appointment-for{grid-column:1/-1;justify-self:end;max-width:100%;box-sizing:border-box;margin:0;padding:4px 7px;font-size:12px;line-height:1.5;background:#e5ede6}
html body .appointment-dialog .appointment-heading-card .agenda-person-change{max-width:100%;font-size:12px;min-height:30px;padding:4px 7px}
html body .appointment-dialog .appointment-heading-card{margin-bottom:20px}
.account-identity>small,.account-identity>strong{display:block}
.account-identity>small{font-size:12px;line-height:1.4;color:#52685d}
.account-identity>strong{font-size:15px;margin:3px 0}
.member-invite-button{background:#285347!important;color:#fff!important;border:1px solid #1d4036!important;border-radius:9px;padding:10px 14px;min-height:44px;margin-bottom:10px;box-shadow:0 2px 5px #18392c25;font-weight:600}
.password-feedback{font-size:13px;line-height:1.4;color:#805325}
.password-feedback[data-valid=true]{color:#285347}
.member-account-dialog label{display:block;margin:12px 0 6px}
.member-account-dialog small{display:block;font-size:12px;line-height:1.45;color:#52685d}
.member-account-dialog label{font-weight:400}
.member-account-dialog label>select{display:block;margin-top:7px;font-weight:400;border:1px solid #dce3dd;box-shadow:none}
.member-recovery-footer{margin-top:16px;padding-top:12px;border-top:1px solid #dce3dd}
.member-recovery-footer>button{font-size:13px;font-weight:400;max-width:100%;white-space:normal}
.family-settings-dialog{width:min(480px,calc(100vw - 24px));padding:18px;max-height:85dvh;overflow:auto;box-shadow:0 18px 65px #16352c55}
.family-settings-dialog::backdrop{background:#183a3055;backdrop-filter:blur(5px)}
.family-settings-dialog h2{font-size:21px;padding-right:45px}
.family-help,.family-settings-dialog small{font-size:12px;line-height:1.45;color:#52685d;display:block}
.family-member-card{border:1px solid #dce3dd;border-radius:12px;padding:11px;margin:10px 0;background:#fff}
.family-member-summary{display:grid;grid-template-columns:12px minmax(0,1fr) 36px;gap:9px;align-items:center}
.family-member-summary strong{font-size:15px}.family-member-dot{width:12px;height:12px;border-radius:50%;background:var(--member-color)}
.family-member-summary button{min-width:34px;min-height:34px;padding:4px;border-radius:50%}
.family-member-form{margin-top:12px}.family-member-form label{display:block;font-size:12px;font-weight:400;margin:9px 0}
.family-member-form input,.family-member-form select,.family-member-form button{font-size:14px;min-height:38px;padding:7px;max-width:100%;box-sizing:border-box}
.family-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}.family-field-row input{width:100%}
.family-field-row>*{min-width:0}.family-member-form input,.family-member-form select{width:100%}
.family-settings-dialog .appointment-top-close{width:36px;height:36px;min-width:36px;min-height:36px;padding:4px}
.family-age-advice{background:#eff4ef;padding:8px;border-radius:8px}.family-age-advice button{margin-top:5px;font-size:12px}
.family-settings-launcher{font-size:14px;margin-bottom:10px}
.work-block-launcher{font-size:13px;padding:8px 12px;margin:8px 0;min-height:38px}
.work-block-dialog{width:min(460px,calc(100vw - 24px));max-height:88dvh;overflow:auto;padding:16px}
.work-block-dialog h2{font-size:20px}.work-block-dialog small{display:block;font-size:12px;margin:9px 0;color:#52685d}
.work-block-row{min-width:0;border:1px solid #dce3dd;border-radius:10px;margin:10px 0;padding:10px}
.work-block-row legend{font-size:12px;padding:0 5px}.work-block-type{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:8px;align-items:center}
.work-block-row label{font-size:12px;font-weight:400}.work-block-row input,.work-block-row select{font-size:14px;min-height:36px;padding:6px;box-sizing:border-box;max-width:100%}
.work-block-row>[data-note]{width:100%}.work-block-type button{min-width:30px;min-height:30px;padding:3px}
.work-block-row [hidden]{display:none!important}.work-block-row .appointment-time-pair{margin:8px 0}.work-block-row .typed-clock{min-width:0}
.pdf-label{padding:9px 0;overflow-wrap:anywhere}.pdf-label>a{display:block;font-size:14px}.pdf-label small{display:block;font-size:11px;color:#64756d;margin:4px 0}.pdf-label small[hidden]{display:none}.pdf-label summary{font-size:12px;margin-top:6px}.pdf-label label{display:block;font-size:12px;font-weight:400}.pdf-label input{width:100%;box-sizing:border-box;font-size:14px;min-height:36px}.pdf-label button{font-size:12px;min-height:32px;padding:5px 10px}
body.member-account nav [data-view=inbox]{display:flex!important}
body.member-account:not(.member-can-plan) [data-day-kind=appointments],body.member-account:not(.member-can-plan) [data-day-kind=birthday]{display:none!important}
body.member-account.member-can-plan .quick-new-appointment{display:inline-block!important}
body.member-account .day-event-child button{pointer-events:none}
html body dialog.new-appointment-flow .appointment-identity{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin:8px 0}
html body dialog.new-appointment-flow .appointment-identity>label{margin:0}
html body dialog.new-appointment-flow .appointment-icon-options{margin:0;font-size:13px;max-width:100%}
html body dialog.new-appointment-flow .appointment-icon-options[open]{grid-column:1/-1}
html body dialog.new-appointment-flow .appointment-mode-row{display:flex;flex-wrap:wrap;gap:3px 12px;align-items:center;margin:6px 0}
html body dialog.new-appointment-flow .appointment-mode-row .all-day-toggle{margin:2px 0;min-height:34px;font-weight:400;white-space:nowrap}
html body dialog.new-appointment-flow .appointment-extra-fields{margin:8px 0;font-size:13px}
html body dialog.new-appointment-flow .appointment-repeat{margin:8px 0;font-size:13px}
html body dialog.new-appointment-flow .appointment-top-row>label:not(.all-day-toggle){flex:1 1 130px;min-width:0}
html body dialog.new-appointment-flow [hidden]{display:none!important}
html body dialog.new-appointment-flow .appointment-repeat>summary::marker{color:var(--rhythm-color,#9faea8)}
html body dialog.new-appointment-flow .appointment-identity{grid-template-columns:minmax(0,1fr)}
html body dialog.new-appointment-flow .appointment-icons-visible>summary{display:none}
html body dialog.new-appointment-flow .appointment-icons-visible .agenda-icon-picker{padding:0;border:0;margin:4px 0}
html body dialog.new-appointment-flow .appointment-icons-visible .agenda-icon-picker>legend{font-size:12px;margin-bottom:5px}
html body dialog.new-appointment-flow .appointment-icons-visible .agenda-icon-picker>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:230px;overflow:auto;padding:3px;max-width:100%;scrollbar-width:thin}
html body dialog.new-appointment-flow .appointment-icons-visible .agenda-icon-picker>div>label{min-width:0;min-height:58px;margin:0;padding:5px 2px;border-radius:10px;box-sizing:border-box}
html body dialog.new-appointment-flow .appointment-icons-visible .agenda-icon-picker>small{display:none}
html body dialog.new-appointment-flow .appointment-time-options{border-top:1px solid #e5eae6;padding-top:6px;margin-top:2px}
html body dialog.new-appointment-flow .appointment-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
html body dialog.new-appointment-flow .appointment-editor-heading h2{margin:0;min-width:0;font-size:19px}
html body dialog.new-appointment-flow .appointment-editor-heading .call-appointment-toggle{flex-shrink:0;margin:0;font-size:11px;white-space:nowrap}
html body dialog.new-appointment-flow .appointment-mode-row>.pdf-where-toggle{margin-left:auto}
html body dialog.new-appointment-flow .appointment-time-options{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:5px}
html body dialog.new-appointment-flow .appointment-time-options .all-day-toggle{font-size:10px;gap:3px;min-width:0;white-space:nowrap}
html body dialog.new-appointment-flow .appointment-time-options .all-day-toggle>input{flex-basis:26px;width:26px;height:17px;min-height:17px}
html body dialog.new-appointment-flow .appointment-time-options .all-day-toggle>input:before{width:11px;height:11px}
html body dialog.new-appointment-flow .appointment-time-options .all-day-toggle>input:checked:before{transform:translateX(9px)}
/* Shared typed times: equal space for hours/minutes, including narrow dialogs. */
html body .typed-clock,html body dialog.new-appointment-flow .typed-clock{display:flex;justify-content:center;align-items:center;gap:3px;width:100%;max-width:112px;min-width:0;min-height:40px;box-sizing:border-box;padding:2px 8px;border:1px solid #cbd6ce;border-radius:9px;background:#fff;box-shadow:0 2px 6px #234b3d12,0 1px 2px #234b3d0a}
html body .typed-clock>input,html body dialog.new-appointment-flow .typed-clock>input{flex:0 0 2.7ch!important;width:2.7ch!important;max-width:2.7ch;min-width:0!important;min-height:34px;height:34px;box-sizing:border-box;margin:0!important;padding:4px 0!important;border:0!important;border-radius:0;background:transparent;text-align:center;font-size:16px;font-variant-numeric:tabular-nums;box-shadow:none!important}
html body .typed-clock>span{flex:0 0 auto;text-align:center;line-height:1;font-size:16px;padding:0;margin:0;color:#667c70}
html body .typed-clock:focus-within{outline:2px solid #497465;outline-offset:1px;box-shadow:0 3px 9px #234b3d20}
html body .task-dialog>.appointment-header-tools{float:right;display:flex;justify-content:flex-end;gap:6px;margin:0 0 6px 8px}
html body .task-dialog>.appointment-header-tools>button{position:static;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:40px;flex:0 0 40px;border-radius:50%;border:1px solid #d3ded6;background:#f0f4f0;color:#234d40;margin:0;padding:0;font-size:22px}
html body .task-dialog:has(>.appointment-header-tools)>h2{padding-right:0;min-height:40px;margin-top:0;display:flow-root;overflow-wrap:anywhere}
html body .task-dialog:has(>.appointment-header-tools)>.task-pin-switch{clear:both}
html body .task-dialog .task-reopen-button{width:auto;max-width:100%;display:inline-flex;gap:7px;padding:8px 12px;font-size:13px;white-space:normal}
html body .task-dialog .task-reopen-button svg{flex:0 0 20px;width:20px;height:20px}
.status-dock>.upcoming-bar{display:flex;align-items:center;gap:7px;width:100%;min-height:34px;padding:6px 12px;border:0;border-top:1px solid #d4e4df;border-radius:0;background:#e1efea;color:#244f43;text-align:left;box-sizing:border-box;font-size:12px}
.upcoming-person{display:inline-block;flex:0 0 10px;width:10px;height:10px;border-radius:50%;border:1px solid #0002;box-sizing:border-box}
.upcoming-title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-bar small{font-size:10px;white-space:nowrap;font-weight:400}
.upcoming-dialog{width:min(460px,calc(100vw - 24px));max-height:85dvh;overflow:auto}.upcoming-dialog h2{font-size:19px;padding-right:40px}.upcoming-dialog h3{font-size:13px;margin:16px 0 5px}.upcoming-navigation{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:10px 0}.upcoming-navigation button{padding:4px 10px;min-height:32px}.upcoming-help{font-size:11px;line-height:1.5;color:#63766c}
html body .upcoming-dialog .upcoming-row{display:flex;align-items:center;gap:8px;width:100%;padding:9px 0;background:transparent;border:0;border-bottom:1px solid #e7ede8;border-radius:0;text-align:left;color:#263e34}.upcoming-row time{flex:0 0 48px;font-size:12px}.upcoming-description{min-width:0;flex:1}.upcoming-description strong{display:block;font-size:13px;font-weight:600;overflow-wrap:anywhere}.upcoming-description small{display:block;font-size:11px;font-weight:400;margin-top:3px;color:#64756b}
.month-day .multi-day-group{order:10;margin-top:auto;flex:0 0 auto!important}
.month-day .multi-day-group~.multi-day-group{margin-top:3px}
.month-day .multi-day-group .appointment-chip{min-height:0!important;flex:0 0 auto!important;padding:4px 5px!important;border-radius:5px;border-left:3px solid rgba(0,0,0,.18);gap:2px}
.month-day .multi-day-group .appointment-label{font-size:10px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.month-day .multi-day-group .appointment-icon{position:static!important;font-size:12px;float:right}
.month-day .multi-day-group .appointment-chip>small:last-child{display:none}
.month-day .multi-day-group .appointment-time{font-size:10px}
.dynamic-appointment-bars{width:100%;max-height:190px;overflow-y:auto;flex-shrink:0}
.dynamic-appointment-bar{position:relative;isolation:isolate;display:flex;align-items:center;gap:7px;width:100%;min-height:30px;margin:0;padding:6px 12px;border:0;border-bottom:1px solid #ffffffa0;border-radius:0;background:color-mix(in srgb,var(--appointment-color) 23%,#fff);color:#233e36;text-align:left;font-size:12px;overflow:hidden}
.dynamic-appointment-bar>*{position:relative;z-index:1}
.dynamic-appointment-bar time{font-size:11px;min-width:35px;font-variant-numeric:tabular-nums}
.dynamic-appointment-bar small{font-size:10px;max-width:85px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dynamic-appointment-bar.is-upcoming .upcoming-arrows{display:block;flex:1 0 44px;height:26px;opacity:.25;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='32' viewBox='0 0 44 32'%3E%3Cpath d='m14 7 9 9-9 9m10-18 9 9-9 9' fill='none' stroke='%23244f43' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:44px 32px;background-repeat:repeat-x;background-position:0 center;animation:appointment-sweep 2s linear infinite;pointer-events:none}
.dynamic-appointment-bar .upcoming-title{flex:0 1 auto;min-width:0}
.dynamic-appointment-bar .upcoming-arrows{display:none}
.dynamic-appointment-bar.is-upcoming{box-shadow:inset 3px 0 var(--appointment-color)}
@keyframes appointment-sweep{to{background-position:44px center}}
@media(prefers-reduced-motion:reduce){.dynamic-appointment-bar.is-upcoming .upcoming-arrows{animation:none;opacity:.2}}
.dynamic-bars-setting{display:flex;align-items:center;gap:9px;font-weight:500}
.dynamic-bars-setting input{appearance:none;width:34px;height:20px;flex:0 0 34px;background:#a8b4ae;border-radius:20px;padding:2px;margin:0;border:0}
.dynamic-bars-setting input::before{content:'';display:block;width:16px;height:16px;background:white;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .15s}
.dynamic-bars-setting input:checked{background:#285848}
.dynamic-bars-setting input:checked::before{transform:translateX(14px)}
html body .appointment-dialog .appointment-heading-card>.appointment-when.appointment-range-blocks{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px!important;width:100%;box-sizing:border-box}
.appointment-range-blocks{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
.appointment-range-blocks .appointment-range-block{display:flex!important;min-width:0;box-sizing:border-box;flex-direction:column;gap:3px;padding:9px 11px;background:#ffffffa6;border:1px solid #dbe5df;border-radius:9px}
.appointment-range-blocks .appointment-range-block small{font-size:11px;font-weight:400;color:#586c62}
.appointment-range-blocks .appointment-range-block strong{font-size:14px!important;line-height:1.3}
.appointment-range-blocks .appointment-range-block>span{font-size:19px!important;font-weight:650;line-height:1.3}
.inline-task-links{display:flex;align-items:center;gap:8px;margin:6px 0;min-width:0}
.inline-task-links .shared-action-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;min-height:34px;color:#285448;text-decoration:none}
.inline-task-address{font-size:12px;line-height:1.35;overflow-wrap:anywhere;color:#354e43}
.dynamic-appointment-line{display:flex;align-items:stretch;background:color-mix(in srgb,var(--appointment-color) 23%,#fff)}
.dynamic-appointment-line .dynamic-appointment-bar{flex:1;min-width:0;width:auto}
.dynamic-appointment-line>.shared-action-icon{display:flex;align-items:center;justify-content:center;flex:0 0 34px;min-height:34px;color:#285448;text-decoration:none;border-left:1px solid #ffffffa0}
.dynamic-appointment-line>.shared-action-icon svg{width:20px;height:20px}
.detail-delete-footer{display:flex!important;justify-content:flex-start!important;clear:both;margin-top:16px;padding-top:8px;width:100%}
.detail-delete-footer>.shared-action-icon{position:static!important;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;padding:8px;border:1px solid #edcccc;border-radius:50%;background:#fff5f4;color:#b33232;margin:0!important}
.appointment-memo-card,.memo-editor{border:1px solid #dce4de;border-radius:12px;padding:12px;margin:10px 0;background:#fafcf9}.memo-text{white-space:pre-wrap;overflow-wrap:anywhere}.memo-actions,.memo-check,.memo-check-add,.memo-draw-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.memo-actions{justify-content:space-between;margin-top:10px}.memo-check{margin:7px 0}.memo-check input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px;flex:none;accent-color:#285347}.memo-check span,.memo-check input[type=text],.memo-check-add input{flex:1;min-width:0}.memo-editor textarea{width:100%;font:inherit;resize:vertical;min-height:85px}.memo-editor label{font-weight:400}.memo-editor button,.memo-add{min-height:36px;padding:7px 10px}.memo-editor details{margin-top:12px}.memo-draw-tools{margin:8px 0}.memo-draw-tools label{flex:1;min-width:90px}.memo-draw-tools select{width:100%;padding:6px}.memo-canvas{display:block;width:100%;height:auto;aspect-ratio:2;border:1px solid #d3ddd6;border-radius:8px;background:white;margin-top:8px}.memo-drawing{touch-action:none;cursor:crosshair}.memo-delete{color:#a13d36;background:#fff4f2}.memo-editor [role=alert]{color:#a13d36}.appointment-memo-card small{font-size:12px;color:#53675e}
.follow-up-dialog{width:min(470px,calc(100vw - 24px));max-height:90dvh;overflow:auto}.follow-up-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}.follow-up-dialog header h2{margin:0}.follow-up-dialog [data-title]{margin:8px 0;font-weight:600}.follow-up-fields{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;margin:16px 0}.follow-up-fields input{max-width:100%;min-width:0}.follow-up-dialog .dialog-actions{display:flex;flex-wrap:wrap;gap:8px}.follow-up-dialog .dialog-actions button{flex:1;padding:9px;font-size:14px}.appointment-history{padding:10px;border:1px solid #dce4de;border-radius:10px;margin:10px 0}.appointment-history>details{margin-top:12px;padding-top:8px;border-top:1px solid #e0e7e2}.appointment-history a{display:block;padding:8px;overflow-wrap:anywhere}.memo-palette,.memo-widths{display:flex;gap:7px;flex-wrap:wrap}.memo-palette button{width:30px;height:30px;min-height:30px;border:2px solid white;border-radius:50%;padding:0}.memo-palette [aria-pressed=true]{outline:2px solid #234e40;outline-offset:2px}.memo-draw-tools [aria-pressed=true]:not(.memo-palette button){box-shadow:inset 0 0 0 2px #234e40}.memo-drawing-dialog{width:min(1000px,calc(100vw - 16px));max-width:none;max-height:96dvh;padding:16px;overflow:auto}.memo-drawing-dialog>button[aria-label]{position:absolute;right:12px;top:12px}.memo-drawing-dialog h2{font-size:18px;margin:0 40px 10px 0}.memo-drawing-dialog .memo-canvas{max-height:65dvh;object-fit:contain}.memo-drawing-dialog .memo-draw-tools{margin-top:14px}
.memo-drawing-dialog .memo-canvas{width:min(100%,130dvh);max-height:none;object-fit:fill;margin-left:auto;margin-right:auto}
html body dialog.new-appointment-flow .appointment-time-options{display:flex;gap:5px;flex-wrap:nowrap}html body dialog.new-appointment-flow .appointment-time-options>label{flex:1;min-width:0;display:flex;align-items:center;gap:4px;padding:5px;border-radius:8px;font-size:10px;background:#eaf0e5}html body dialog.new-appointment-flow .appointment-time-options>.tentative-toggle{background:#faf0d8}html body dialog.new-appointment-flow .appointment-time-options>.multiple-days-toggle{background:#e9e5f3}html body dialog.new-appointment-flow .optional-end-time{font-size:11px;padding:4px 7px;min-height:28px;background:transparent;color:#52675b}
.android-startup-cover{position:fixed;inset:0;z-index:2147483647;background:#f7f9f1;color:#285347;display:flex;flex-direction:column;align-items:center;justify-content:center}
.android-loading .session-login{visibility:hidden}
.android-loading .session-login::backdrop{background:transparent;backdrop-filter:none}
.session-login{width:min(420px,calc(100vw - 32px));padding:24px;box-sizing:border-box;border-radius:22px}
.session-login #authTitle{font-size:22px;line-height:1.25;margin:0 0 8px}
.session-login #authHelp{font-size:14px;line-height:1.45;color:#63736b;margin:0 0 20px}
.session-login .fingerprint-login,.session-login .password-fallback>summary{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;box-sizing:border-box;padding:12px 16px;border-radius:13px;font-size:16px;font-weight:650;line-height:1.3;margin:0;border:1px solid #dbe4df;cursor:pointer}
.session-login .fingerprint-login{background:#285347;border-color:#285347;color:#fff;margin-bottom:10px}
.session-login .fingerprint-login[hidden]{display:none}
.session-login .fingerprint-login svg,.session-login .password-fallback>summary svg{width:24px;height:24px;flex:none}
.session-login .password-fallback{margin:0}
.session-login .password-fallback>summary{list-style:none;background:#f1f5f2;color:#285347}
.session-login .password-fallback>summary::-webkit-details-marker{display:none}
.session-login .password-fallback[open]>summary{margin-bottom:16px}
.session-login .password-fallback label{font-size:14px;text-align:left;margin:12px 0 6px}
.session-login .password-fallback input{width:100%;box-sizing:border-box;min-height:48px;font-size:16px}
.session-login .password-fallback button.primary{width:100%;min-height:48px;font-size:16px;margin:14px 0 0}
.session-login #authError:empty{display:none}
.session-login .login-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:22px;padding-top:14px;border-top:1px solid #e5ebe7}
.session-login .login-footer button,.session-login .login-footer a{background:transparent;border:0;border-radius:8px;color:#63736b;padding:8px 2px;min-height:40px;font-size:12px;font-weight:500;line-height:1.3;text-decoration:none;margin:0}
.session-login button:focus-visible,.session-login summary:focus-visible,.session-login a:focus-visible{outline:2px solid #285347;outline-offset:3px}
.help-center-tools small{display:block;margin-top:8px;color:#63736b}
.help-center-dialog{width:min(480px,calc(100vw - 28px))}
.help-center-dialog details{padding:12px 0;border-bottom:1px solid #e5ebe7}
.help-center-dialog summary{min-height:32px;font-weight:600;cursor:pointer}
.help-center-dialog p{white-space:pre-wrap;font-size:14px;line-height:1.5}
.help-center-dialog form{display:grid;gap:12px;margin-top:14px}
.help-center-dialog form label{display:grid;gap:6px;font-size:14px}
.help-center-dialog input,.help-center-dialog textarea,.help-center-dialog select{width:100%;box-sizing:border-box;min-height:44px;font-size:16px}
.help-center-dialog small{color:#63736b;font-size:12px;line-height:1.5}
.help-center-dialog [data-preview]{max-width:100%;max-height:160px;object-fit:contain}
.help-center-dialog [hidden]{display:none!important}
.startup-spinner{width:32px;height:32px;border:3px solid #d5e2dc;border-top-color:#285347;border-radius:50%;animation:startup-spin .9s linear infinite}
@keyframes startup-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.startup-spinner{animation:none}}
.shared-proposal-dialog [data-warning]:not(:empty){background:#fff1d7;border-radius:10px;padding:10px;font-size:13px;color:#604a26}
.shared-proposal-dialog [data-results]{display:grid;gap:6px;margin:8px 0}
.shared-proposal-dialog [data-results] button{text-align:left;white-space:normal}
.appointment-share{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;margin:8px 0;border-radius:12px}
.detail-share-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:0;border:1px solid #d3ded6;border-radius:50%;background:#f0f4f0;color:#234d40}
.agenda-edit-dialog>.appointment-header-tools{float:right;display:flex;gap:6px;margin:0 0 8px 8px}
.agenda-edit-dialog>.appointment-header-tools>.appointment-top-close{position:static;margin:0}
.task-detail-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:16px;background:#f0f4ef;border:1px solid #dce5dc;border-radius:14px;margin-bottom:16px}
.task-detail-header h2{grid-column:1;margin:0!important;padding:0!important;overflow-wrap:anywhere}.task-detail-header>p{grid-column:1;margin:0;font-size:12px;color:#52675b}.task-detail-header .appointment-header-tools{grid-column:2;grid-row:1/3;display:flex;gap:5px;align-items:start}.task-detail-header .appointment-header-tools button{position:static!important;width:36px;height:36px;min-height:36px;padding:6px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.task-detail-dialog section{clear:both;margin:14px 0}.task-detail-dialog h3{font-size:14px;margin:8px 0}.task-detail-dialog .task-note{white-space:pre-wrap;margin:8px 0}.task-detail-dialog .appointment-actions:empty,.task-detail-dialog [data-task-photo]:empty{display:none}
.task-subtask-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid #e3e8e1;padding:4px 0}.task-subtask-row input{width:20px;height:20px;flex:0 0 20px}.task-subtask-row button:nth-child(2){flex:1;text-align:left;background:transparent;border:0;overflow-wrap:anywhere}.task-subtask-row .is-done{text-decoration:line-through;color:#768079}.task-subtask-add{display:flex;gap:8px;margin-top:10px}.task-subtask-add input{min-width:0;flex:1;font-size:16px}.task-subtask-add button{white-space:nowrap}.task-detail-dialog [role=status]:empty{display:none}
html body .task-detail-dialog .task-complete-label{width:auto;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#285347;color:white;border-radius:10px}.task-complete-label svg{flex:0 0 24px}
.email-login-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.email-login-actions button{font-size:13px;background:transparent;padding:8px;min-height:40px}.email-account-tools small{display:block;margin-top:10px}.password-feedback ul{padding-left:0;list-style:none;margin:8px 0}.password-feedback li{font-size:13px;margin:5px 0}.email-account-dialog{width:min(440px,94vw)}
html body .status-dock .personal-today .where-quick-add{position:fixed;top:auto;left:auto;right:16px;bottom:var(--where-launcher-bottom,108px);z-index:50;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;box-sizing:border-box;margin:0;padding:0;border:1px solid #cfdbd2;border-radius:50%;background:#f0f4ef;color:#285347;text-align:center;box-shadow:0 3px 12px #203d2520}
html body .status-dock .personal-today .where-quick-add:hover{background:#e4ece3}
html body:has(dialog[open]) .where-quick-add{visibility:hidden}
html body .settings-items :is(.google-account-tools,.drive-account-tools){padding:14px 0;margin:0;border:0;border-top:1px solid #e6ebe5;border-radius:0;box-shadow:none;background:transparent}
html body .settings-items :is(.google-account-tools,.drive-account-tools) h3{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 6px}
html body .settings-items :is(.google-account-tools,.drive-account-tools) h3:before{content:'G';display:grid;place-items:center;width:24px;height:24px;flex:none;border:1px solid #dde5df;border-radius:7px;background:#fff;color:#285347;font-size:15px;font-weight:650}
html body .settings-items :is(.google-account-tools,.drive-account-tools) p{font-size:12px;line-height:1.5;color:#63766a;margin:4px 0;overflow-wrap:anywhere}
html body .settings-items :is(.google-account-tools,.drive-account-tools)>button{min-height:40px;padding:8px 0;border:0;background:transparent;font-size:12px;color:#285347;text-decoration:underline;text-underline-offset:3px}
html body .connection-status{margin-left:auto;color:#285347;font-size:11px;font-weight:500;white-space:nowrap}
html body .settings-items .trusted-device-tools p{font-size:12px;line-height:1.5;margin:8px 0;overflow-wrap:anywhere}
html body .settings-items .trusted-device-tools button{min-height:40px;padding:8px 6px;background:transparent;font-size:12px;text-decoration:underline;text-underline-offset:3px}

/* First use and returning-account login are separate choices. */
.session-login .login-welcome{display:none;text-align:center}
.session-login.show-welcome #authForm> :not(.login-welcome):not(#authError){display:none!important}
.session-login.show-welcome .login-welcome{display:block}
.session-login.show-welcome> :not(#authForm){display:none!important}
.session-login .login-welcome img{display:block;margin:0 auto 16px}
.session-login .login-welcome h2{font-size:24px;line-height:1.25;margin:0 0 12px;overflow-wrap:normal}
.session-login .login-welcome p{font-size:15px;line-height:1.5;margin:0 0 24px;opacity:.8}
.session-login .login-welcome button{display:block;width:100%;min-height:52px;box-sizing:border-box;margin:12px 0 0;padding:12px;font-size:16px;line-height:1.4;border-radius:13px}
.session-login .welcome-start{background:#285347;color:#fff;border:1px solid #285347;font-weight:650}
.session-login .welcome-signin,.session-login .welcome-back{background:transparent;color:inherit;border:1px solid currentColor}
.session-login .welcome-back{min-height:44px;margin:0 0 16px;padding:8px 12px}

.session-login.login-preparing{visibility:hidden}
.session-login.login-preparing::backdrop{background:transparent;backdrop-filter:none}

.app-branding img,.login-welcome img,.tour-brand-logo,.member-link-dialog>img{border-radius:14px}.tour-brand-logo{display:block;margin:auto}.tour-example .tour-person{margin:6px 0}

/* Shared account geometry: passkeys, e-mail, Google and member invitations. */
html body dialog.account-access-dialog{position:fixed;width:min(480px,calc(100vw - 28px));max-height:88dvh;overflow:auto;padding:24px;border-radius:22px;box-sizing:border-box;}
.account-dialog-header{display:flex;align-items:center;gap:12px;margin-bottom:18px;min-width:0;}.account-dialog-header h2{flex:1;min-width:0;padding:0!important;margin:0!important;font-size:23px;line-height:1.25;overflow-wrap:anywhere;}.account-dialog-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;}.account-dialog-icon svg{width:36px;height:36px;}.account-dialog-icon img{border-radius:10px;}.account-dialog-close{flex:0 0 44px;width:44px;height:44px;padding:0;font-size:26px;line-height:1;}
.account-access-dialog p{line-height:1.5;margin:12px 0;}.account-access-dialog label{display:grid;gap:7px;margin:14px 0;min-width:0;}.account-access-dialog input:not([type=checkbox]){width:100%;min-width:0;}.account-access-dialog .dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:18px;}.account-access-dialog .account-connection{padding:14px;border-radius:14px;background:color-mix(in srgb,currentColor 5%,transparent);margin:14px 0;}.account-connection strong{display:block;overflow-wrap:anywhere;}.account-connection small{display:block;margin-top:5px;}.account-passkey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);}.account-passkey-row span{min-width:0;overflow-wrap:anywhere;}.account-passkey-row button{flex-shrink:0;}.account-access-dialog [data-connected=true]{font-weight:600;}.account-access-dialog [hidden]{display:none!important;}

html body .settings-items :is(.google-account-tools,.drive-account-tools){padding:14px 0;margin:0;border:0;border-top:1px solid #e6ebe5;border-radius:0;box-shadow:none;background:transparent}
html body .settings-items :is(.google-account-tools,.drive-account-tools) h3{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 6px}
html body .settings-items :is(.google-account-tools,.drive-account-tools) h3:before{content:'';display:block;width:22px;height:22px;flex:none;background:url('./google-account-icon.svg') center/contain no-repeat}
html body .settings-items .drive-account-tools h3:before{background-image:url('./google-drive-icon.svg')}
html body .settings-items :is(.google-account-tools,.drive-account-tools) p{font-size:12px;line-height:1.5;color:#63766a;margin:4px 0;overflow-wrap:anywhere}
html body .settings-items :is(.google-account-tools,.drive-account-tools)>button{min-height:40px;padding:8px 0;border:0;background:transparent;font-size:12px;color:#285347;text-decoration:underline;text-underline-offset:3px}
html body .connection-status{margin-left:auto;color:#285347;font-size:11px;font-weight:500;white-space:nowrap}

html body .settings-items .passkey-account-tools{padding:14px 0;border:0;border-top:1px solid #e6ebe5;border-radius:0;box-shadow:none;background:transparent}.passkey-account-tools h3{display:flex;align-items:center;gap:8px}.passkey-account-tools p{font-size:13px;line-height:1.5;margin:8px 0}

html body dialog.account-access-dialog .account-passkey-row{padding:14px 0 0;margin-top:4px;align-items:center}.account-passkey-row>span{display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.4}.account-passkey-row small{display:block;font-size:12px;opacity:.7;line-height:1.4}.account-passkey-row button{min-height:40px;font-size:13px;padding:8px 12px}.account-access-dialog #passkeyAdd{min-height:44px;padding:10px 18px;font-size:14px}.account-access-dialog #passkeyList{margin-top:18px}

html body .settings-items .passkey-account-tools h3{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 6px}html body .settings-items .passkey-account-tools h3:before{content:'';display:block;width:22px;height:22px;flex:none;background:url('./fingerprint-icon.svg') center/contain no-repeat}html body .settings-items .passkey-account-tools p{font-size:12px;line-height:1.5;color:#63766a;margin:4px 0;overflow-wrap:anywhere}html body .settings-items .passkey-account-tools>button{min-height:44px;padding:8px 0;border:0;background:transparent;font-size:12px;color:#285347;text-decoration:underline;text-underline-offset:3px}

.pet-profile-icon{width:28px;height:28px;object-fit:contain;vertical-align:middle;flex:none}.pet-breed-preview{width:84px;height:84px;object-fit:contain;margin:8px auto}html body [data-dog-breed][hidden]{display:none!important}#people button:has(.pet-profile-icon){display:flex;align-items:center;justify-content:center;gap:5px}.agenda-people span:has(.pet-profile-icon){display:inline-flex;align-items:center;gap:5px}

.pet-breed-picker{min-width:0;max-width:100%;border:0;padding:0;margin:14px 0}.pet-breed-strip{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:5px 2px 10px;scrollbar-width:thin}.pet-breed-strip button{flex:0 0 58px;width:58px;height:58px;min-height:58px;padding:6px;border:2px solid transparent;border-radius:14px;background:color-mix(in srgb,currentColor 5%,transparent)}.pet-breed-strip button[aria-pressed=true]{border-color:currentColor;background:color-mix(in srgb,currentColor 10%,transparent)}.pet-breed-strip img{display:block;width:42px;height:42px}.pet-breed-chosen{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0}.pet-breed-chosen .pet-breed-preview{width:104px;height:104px;margin:0}.pet-breed-chosen strong{font-size:14px;text-align:center}

.pet-breed-picker>[data-breed-name]{display:block;font-size:15px;margin:5px 0 8px}.pet-profile-form [name=name]{scroll-margin-top:180px}.pet-profile-preferences{margin:12px 0}.pet-profile-preferences summary{cursor:pointer;padding:8px 0}.pet-profile-form>.dialog-actions{margin-top:14px}

html body .appointment-chip{position:relative}html body .appointment-cost-badge{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:16px;height:16px;border-radius:4px;background:#285347;color:#f3d660;font-size:12px;font-weight:750;line-height:1;z-index:1;pointer-events:none}html body .appointment-chip:has(.appointment-cost-badge) .appointment-time{padding-right:18px}.appointment-cost-info{font-size:14px;padding:10px;border-radius:10px;background:#edf2ed;line-height:1.5}.appointment-icon-search{width:100%;margin:6px 0 10px}html body .agenda-icon-picker label[hidden]{display:none!important}.appointment-cost-fields [data-cost-suggestion]{text-align:left;line-height:1.5;white-space:normal}.appointment-cost-fields label:has([data-cost-check]){display:flex;align-items:center;gap:8px}.appointment-cost-fields [data-cost-check]{width:18px;min-height:18px}

html body #people .pet-agenda-filter{display:flex;align-items:center;justify-content:center;gap:0;padding:8px;font-size:26px}#people .pet-agenda-filter .pet-profile-icon{width:34px;height:34px}

html body #people.people-multirow,html body .sticky-people.people-multirow{display:grid;grid-template-columns:repeat(var(--people-columns),minmax(0,1fr));gap:6px;flex-wrap:wrap}
html body #people.people-multirow button,html body .sticky-people.people-multirow button{min-width:0;min-height:44px;padding:8px 6px;border-radius:11px;font-size:13px;white-space:nowrap}
html body .sticky-people .pet-agenda-filter{display:flex;align-items:center;justify-content:center}
html body .sticky-people .pet-profile-icon,html body #people.people-multirow .pet-profile-icon{width:28px;height:28px}

/* Shared disclosure and popup treatment across the app. */
html body dialog{border-radius:22px}
html body dialog h2{color:#285347}
html body dialog details,html body .panel details{border:1px solid #e1e7e2;border-radius:12px;background:#f5f7f2;padding:10px 12px;margin-block:10px}
html body dialog details>summary,html body .panel details>summary{cursor:pointer;min-height:24px;font-weight:600;color:#285347;line-height:1.5}
html body dialog details[open]>summary,html body .panel details[open]>summary{margin-bottom:10px}
html body .settings-options-dialog{width:min(440px,calc(100vw - 32px));box-sizing:border-box;padding:20px;max-height:85dvh;overflow:auto}
.settings-options-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.settings-options-header h2{margin:0;font-size:21px}
html body .settings-options-header .appointment-top-close{position:static;flex:0 0 44px;width:44px;height:44px}
.settings-options-content{display:grid;gap:14px}
.settings-options-content label{display:flex;align-items:center;gap:10px;line-height:1.5}
.settings-options-content input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;accent-color:#285347}
.settings-options-dialog>small{display:block;margin:18px 0 12px;color:#67766f}
.settings-options-dialog>.primary{display:block;margin-left:auto;min-height:44px}
.settings-popup-trigger{min-height:44px;text-align:left;margin-block:12px}

html body .appointment-actions{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:6px;scrollbar-width:thin}
html body .appointment-actions>button,html body .appointment-actions>a{flex:0 0 44px;min-width:44px;width:44px;height:44px;padding:9px;border-radius:12px}
.rhythm-popup-actions{display:grid;gap:10px}
.rhythm-popup-actions button{min-height:44px;text-align:left;border-radius:12px}
.rhythm-popup-actions .rhythm-action-danger{color:#a13d36;background:#faf0ed}

html body .appointment-cost-fields,html body .clipboard-photo-options{border:0;background:transparent;padding:0;margin-block:10px}
html body .appointment-cost-fields>.settings-popup-trigger,html body .clipboard-photo-options>.settings-popup-trigger{width:100%;margin:0;border-radius:12px;text-align:left}
.appointment-cost-fields [data-cost-suggestion]{white-space:normal;text-align:left;line-height:1.5}
.appointment-cost-fields>.settings-popup-trigger[data-suggestion=true]::after{content:' · herkend';font-weight:400}

.clipboard-scope{border:0;padding:0;margin:12px 0;display:flex;gap:8px}
.clipboard-scope legend{font-weight:600;margin-bottom:6px}
.clipboard-scope label{display:flex;align-items:center;gap:6px;border:1px solid #dce5de;border-radius:12px;padding:10px 14px;min-height:44px;box-sizing:border-box}
.clipboard-scope label:has(input:checked){background:#e3efe7;border-color:#285347;color:#285347}
.clipboard-scope input{accent-color:#285347}

html body .login-welcome [hidden],html body .email-login-actions[hidden],html body .welcome-back[hidden]{display:none!important}

/* Memo checks: text and attachments stay together. */
.memo-check-editor{padding:12px;border:1px solid #dce4de;border-radius:12px;background:#fff;margin:10px 0}
.memo-check-editor .memo-check{flex-wrap:nowrap;align-items:flex-start;margin:0}
.memo-check-editor textarea{flex:1;min-width:0;min-height:72px;line-height:1.45}
.memo-check span{white-space:pre-wrap;overflow-wrap:anywhere}
.memo-check-tools{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0 28px}
.memo-check-tools button{font-size:14px;min-height:44px}
.memo-check-add{align-items:flex-end;flex-wrap:nowrap}
.memo-check-add textarea{flex:1;min-width:0;min-height:70px}
.memo-check-media{margin:8px 0 12px 28px;display:flex;flex-direction:column;gap:8px;overflow-wrap:anywhere}
.memo-check-media>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.memo-check-photo{display:block;max-width:160px;max-height:120px;border-radius:8px;object-fit:contain}
.memo-check-media button:has(img){padding:4px;background:#edf2eb}
.memo-check-media a{color:#285347;text-decoration:underline}

html[data-private-files-enabled=true] .task-photo-pickers{display:none!important}.private-file-panel label{display:block}.private-file-panel button{margin:4px 6px 4px 0}.private-file-panel input[type=file]{max-width:100%}.private-file-panel [hidden]{display:none!important}

.private-attachment-viewer{width:min(760px,94vw);max-height:92dvh;overflow:auto}.private-attachment-viewer header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.private-attachment-viewer h2{font-size:18px;overflow-wrap:anywhere}.private-attachment-viewer header button{flex:none;min-width:44px;min-height:44px}.private-attachment-viewer img,.private-attachment-viewer canvas{display:block;max-width:100%;height:auto;margin:auto}.private-pdf-pages{display:flex;justify-content:center;gap:12px;align-items:center;margin:12px 0}.private-attachment-viewer .dialog-actions{margin-top:14px}

.dynamic-appointment-bar .upcoming-people-label{flex:0 1 auto;min-width:0;max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border-radius:7px;font-size:12px;font-weight:500;color:#182b25;position:relative;z-index:1}
.dynamic-appointment-line.has-notice{flex-wrap:wrap}.dynamic-appointment-line>.upcoming-notice{flex:0 0 100%;display:flex;align-items:flex-start;gap:9px;min-width:0;width:100%;margin:0;padding:8px 12px;border:0;border-left:4px solid #d59a34;border-bottom:1px solid #e7cd99;border-radius:0;background:#fff0ce;color:#654617;text-align:left;font-size:12px;line-height:1.5}.upcoming-notice strong{flex:none;font-size:11px;font-weight:750;white-space:nowrap}.upcoming-notice span{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.appointment-extra-notice{position:static;width:auto;height:auto;display:block;inset:auto}

/* ICS review: use the same family colours as agenda chips. */
dialog.ics-import{width:min(540px,94vw);padding:20px;max-height:90dvh;overflow:auto;color:#285347}
dialog.ics-import h2{font-size:21px;margin:0;line-height:1.3}
dialog.ics-import .ics-progress{font-size:13px;color:#697a72;margin:14px 0}
dialog.ics-import .ics-body>p{font-size:14px;line-height:1.5;margin:12px 0}
dialog.ics-import .ics-card{padding:14px;border:1px solid #dce4dc;border-radius:14px;background:#f5f7f2;margin:12px 0}
dialog.ics-import .ics-card h3{font-size:17px;line-height:1.4;margin:0 0 7px}
dialog.ics-import .ics-card p{font-size:14px;line-height:1.5;margin:4px 0}
dialog.ics-import .ics-suggestion{padding:8px 13px;min-height:40px;font-size:14px;margin:0 0 14px}
dialog.ics-import .ics-people{display:flex;flex-wrap:wrap;gap:9px;border:0;padding:0;margin:12px 0 4px;min-width:0}
dialog.ics-import .ics-people legend{font-size:13px;color:#697a72;padding:0;margin-bottom:10px;width:100%}
dialog.ics-import .ics-people label.ics-person{display:flex;flex-direction:row;align-items:center;gap:7px;width:auto;min-width:0;max-width:100%;margin:0;padding:9px 12px;min-height:42px;box-sizing:border-box;border-radius:9px;border:2px solid transparent;background:var(--person-color);color:#20332c;cursor:pointer;font-size:14px;font-weight:600;line-height:1.3}
dialog.ics-import .ics-people label.is-selected{border-color:#285347;box-shadow:0 0 0 1px #fff inset}
dialog.ics-import .ics-people label:has(input:focus-visible){outline:2px solid #285347;outline-offset:3px}
dialog.ics-import .ics-people label span{overflow-wrap:anywhere}
dialog.ics-import .ics-people input[type=checkbox]{width:17px;height:17px;min-width:17px;max-width:17px;flex:0 0 17px;margin:0;padding:0;accent-color:#285347}
dialog.ics-import label.ics-mode{display:flex;flex-direction:row;align-items:center;gap:10px;margin:8px 0;padding:12px;border:1px solid #dce4dc;border-radius:10px;font-size:14px}
dialog.ics-import .ics-mode input[type=radio]{width:18px;height:18px;flex:0 0 18px;margin:0;padding:0}
dialog.ics-import .dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid #e5e9e2}
dialog.ics-import [role=status]:empty{display:none}

dialog.ics-import .ics-date-time{display:flex;flex-wrap:wrap;gap:12px 24px;margin:10px 0}
dialog.ics-import .ics-date-time>div{display:flex;flex-direction:column;gap:3px}
dialog.ics-import .ics-date-time small{font-size:11px;color:#697a72}
dialog.ics-import .ics-date-time strong{font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
dialog.ics-import .ics-comparison{display:grid;gap:12px}
dialog.ics-import .ics-comparison-block{padding:12px;border:1px solid #dce4dc;border-radius:11px;background:#fff}
dialog.ics-import .ics-comparison-block:last-child{background:#edf5ef;border-color:#b8d0bd}
dialog.ics-import .ics-comparison-block>small{display:block;font-size:12px;margin-bottom:8px;color:#697a72}

dialog.ics-import[open]{display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}
dialog.ics-import .ics-body{min-height:0;overflow:auto;overscroll-behavior:contain}
dialog.ics-import>.ics-progress,dialog.ics-import>.dialog-actions,dialog.ics-import>div:first-child{flex-shrink:0}

.appointment-dialog .detail-delete-footer>.appointment-delete-labeled{width:auto!important;min-width:0!important;height:auto!important;min-height:44px;display:inline-flex!important;gap:8px;padding:8px 10px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#98635d!important;font-size:13px;line-height:1.3;white-space:nowrap;flex:0 1 auto}.appointment-dialog .detail-delete-footer>.appointment-delete-labeled svg{width:18px;height:18px;flex:0 0 18px}.appointment-dialog .detail-delete-footer>.appointment-delete-labeled:hover{background:#fbefec!important}

/* A continuous, quiet holiday landscape lives behind the empty calendar space. */
.dynamic-day-column.vacation-panorama-day{position:relative;isolation:isolate;background:#fffaf7}
.dynamic-day-column.vacation-panorama-day:before{content:'';position:absolute;z-index:0;left:-1px;right:-4px;bottom:0;height:180px;background-image:var(--vacation-scene-image,url('/gezin_os/vacation-landscape.svg'));background-size:720px 180px;background-position:var(--vacation-scene-x,0px) bottom;background-repeat:repeat-x;pointer-events:none}
.dynamic-day-column.vacation-panorama-day>.dynamic-period{position:relative;z-index:1;background:transparent!important}
.dynamic-day-column.vacation-panorama-day>.dynamic-day-heading{position:relative;z-index:1}
.dynamic-day-column.vacation-panorama-day .vacation-day-chip{border:0!important;border-top:2px solid #ce9d8e!important;border-radius:0!important;background:#f6e4dd!important;box-shadow:none;color:#704a40}
.dynamic-day-column.vacation-panorama-day .vacation-day-chip>small:last-child{display:none}
.dynamic-day-column.vacation-panorama-day .month-event-group:has(>.vacation-day-chip){margin-left:-4px;margin-right:-4px}
@media(prefers-contrast:more){.dynamic-day-column.vacation-panorama-day:before{opacity:.3}}