/* Tidy table: one customer and their message share one visual group. */
html:root .main .records table:has(.schedule-customer-row){width:100%;table-layout:fixed;white-space:normal}
html:root .main .records table:has(.schedule-customer-row) th:first-child{width:44px}
html:root .main .records table:has(.schedule-customer-row) th:nth-child(2){width:36%}
html:root .main .records table:has(.schedule-customer-row) th:nth-child(3){width:23%}
html:root .main .records table:has(.schedule-customer-row) th:nth-child(4){width:23%}
html:root .main .records table:has(.schedule-customer-row) th:last-child{width:auto}
html:root .main .records tbody tr.schedule-customer-row>td{height:auto;padding:var(--customer-row-padding,14px) 16px 8px;border-bottom:0;vertical-align:middle;overflow-wrap:anywhere}
html:root .main .records tbody tr.schedule-customer-row>td:first-child{padding-left:16px;padding-right:8px}
html:root .main .schedule-customer-row .customer-name-line{display:flex;flex-direction:column;align-items:flex-start;gap:4px;white-space:normal}
html:root .main .schedule-customer-row .customer-name-identity{display:flex;align-items:center;gap:7px}
html:root .main .schedule-customer-row .customer-birth-summary{font-size:.722222rem;font-weight:400;color:var(--muted);white-space:normal}
html:root .main .schedule-customer-row .customer-select{font-size:1rem;font-weight:650}
html:root .main .schedule-customer-row .status{font-size:.722222rem;white-space:normal;line-height:1.5;padding:4px 7px}
html:root .main .schedule-customer-row .date{font-size:.833333rem;font-variant-numeric:tabular-nums}
html:root .main .schedule-customer-row .due-tag{display:block;margin:3px 0 0;font-size:.777778rem;font-weight:600;color:var(--accent)}
.schedule-event-reason{display:inline-flex;align-items:center;gap:8px;font-size:.833333rem;line-height:1.5}
.schedule-event-icon{display:inline-flex;width:19px;height:19px;flex:0 0 19px;align-items:center;justify-content:center;color:#7665a6}
.schedule-event-icon svg{width:19px;height:19px;stroke-width:1.7}
.schedule-event-icon.schedule-event-icon--cake{color:#b16236}.schedule-event-icon.schedule-event-icon--heart{color:#b74e74}.schedule-event-icon.schedule-event-icon--shield{color:#41735f}.schedule-event-icon.schedule-event-icon--tree{color:#42794e}.schedule-event-icon.schedule-event-icon--message{color:#4879a6}
html:root .main .records tbody tr.schedule-message-row{cursor:default;background:var(--white)}
html:root .main .records tbody tr.schedule-message-row.is-selected{background:var(--selected)}
html:root .main .records tbody tr.schedule-message-row>td{height:auto;width:auto;border:0;border-bottom:1px solid var(--line);padding:2px 16px var(--customer-row-padding,16px) 60px;white-space:normal;vertical-align:top}
.schedule-message{max-width:900px;min-width:0;width:100%;border:0;border-radius:6px;background:var(--soft);overflow:hidden}
.schedule-message-heading{display:flex;align-items:center;gap:7px;font-size:.722222rem;color:var(--muted);padding:12px 16px 0}
.schedule-message-heading svg{width:16px;height:16px;flex-shrink:0}
.schedule-message-text{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.833333rem;line-height:1.8;color:var(--ink);padding:8px 16px 0;min-height:0;margin:0;max-height:none;overflow:visible}
.schedule-message-text[hidden]{display:none}
.schedule-message-empty{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:.722222rem;color:var(--muted);padding:3px 0;line-height:1.6;min-height:0}
.schedule-message-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;border:0;background:transparent}
.schedule-message-button{min-height:32px;padding:6px 10px;font-size:.722222rem;line-height:1.4;box-shadow:none}
.schedule-message-button[data-schedule-message-action="copy"],.schedule-message-button[data-schedule-message-action="save"]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.schedule-message-button:disabled{opacity:.45;cursor:default}
.schedule-message-editor{width:calc(100% - 32px);display:block;margin:10px 16px 0;border:1px solid var(--line);border-radius:5px;padding:12px;resize:vertical;min-height:180px;background:var(--white);color:var(--ink);font:inherit;font-size:.833333rem;line-height:1.8}
.schedule-message-editor:focus{outline:2px solid var(--accent);outline-offset:-2px}
@media(max-width:800px){html:root .main .records table:has(.schedule-customer-row){min-width:620px}html:root .main .records tbody tr.schedule-customer-row>td{padding-left:10px;padding-right:10px}html:root .main .records tbody tr.schedule-message-row>td{padding-left:54px;padding-right:12px}}
/* Keep the same click target above the changing message body. */
.schedule-message-heading{min-height:52px;padding:10px 16px;flex-wrap:nowrap}
.schedule-message-heading [data-schedule-message-action="fold"]{margin-left:auto;flex:0 0 76px;width:76px;min-height:32px;white-space:nowrap}

.selected-message-status{margin:0;padding:0 22px 12px;color:var(--muted);font-size:.722222rem;line-height:1.6;overflow-wrap:anywhere}
.schedule-message-text.is-folding{overflow:hidden;box-sizing:border-box;will-change:height,opacity}
html:root .main .toolbar:has(#prepare-selected-messages){height:auto;min-height:58px;flex-wrap:wrap;row-gap:8px;padding-top:10px;padding-bottom:10px}

.schedule-message-fold-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

.message-length-info{display:flex;align-items:center;justify-content:flex-end;text-align:right;gap:8px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:.722222rem;line-height:1.6}
.schedule-message>.message-length-info{padding:0 16px}
.message-length-count{font-variant-numeric:tabular-nums}
.message-length-type{display:inline-flex;align-items:center;border-radius:4px;padding:2px 7px;background:var(--white);border:1px solid var(--line);color:var(--ink);font-weight:600}
.message-length-type.over,.message-length-type.unknown{color:#a12c3a;border-color:#d7a5ac}
.message-length-info small{flex-basis:100%;font-size:.666667rem;line-height:1.5}

.short-message-preview{margin:12px 16px;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);font-size:.833333rem;line-height:1.7}
.detail>.short-message-preview{margin-left:0;margin-right:0}
.short-message-preview>p{margin:8px 0;overflow-wrap:anywhere}
.short-message-preview>[role=status]{color:var(--muted);font-size:.722222rem}
.short-message-result{white-space:pre-wrap}
.short-message-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
