:root{font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182d31;background:#f3f5f1;--accent:#12664e;--muted:#647570;--line:#dce3dc}*{box-sizing:border-box}body{margin:0}header{height:80px;padding:0 4vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#fff}header strong{font-size:21px;letter-spacing:-.6px}.mark{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--accent);color:white;border-radius:9px;margin-right:12px;font-weight:800}main{max-width:1360px;margin:auto;padding:48px 4vw 30px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}h1{font-size:clamp(30px,3.5vw,46px);line-height:1.15;letter-spacing:-1.7px;margin:10px 0 15px;font-weight:650}h2{font-size:20px;margin:0 0 18px;letter-spacing:-.5px}h3{font-size:16px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:750;color:var(--accent);margin:0}.muted{color:var(--muted);font-size:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:26px;margin-bottom:24px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.tag{font-size:10px;letter-spacing:.7px;background:#edf4ed;padding:6px 9px;border-radius:6px;white-space:nowrap}.columns{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.columns>.panel{height:fit-content}label{display:block;font-size:12px;font-weight:650;margin-bottom:15px}input,textarea,select{display:block;width:100%;padding:11px 12px;border:1px solid #ccd6ce;background:#fcfdfb;border-radius:7px;font:inherit;color:inherit;margin-top:6px}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #85b8a6;outline-offset:1px}button{background:var(--accent);border:1px solid var(--accent);color:white;border-radius:7px;padding:11px 16px;font:600 12px system-ui;cursor:pointer}button:hover{filter:brightness(.93)}button:disabled{opacity:.5;cursor:wait}.secondary{color:#274b40;background:#fff;border-color:#ccd8d0}.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:#e8eee7;padding:20px 24px;border-radius:12px}.stat strong{display:block;font-size:32px;font-weight:550;letter-spacing:-1px}.stat span{color:var(--muted);font-size:12px}.stat:last-child{background:#e2eee6}.import{border-top:1px solid var(--line);margin-top:26px;padding-top:8px}.import input{font-size:12px;margin-bottom:10px}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}.actions{display:flex;align-items:center;gap:10px}.actions select{margin:0}details{margin:15px 0}summary{font-size:12px;cursor:pointer;font-weight:650}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:16px 12px;border-bottom:1px solid var(--line)}td{padding:17px 12px;border-bottom:1px solid #edf0eb;max-width:340px;overflow-wrap:anywhere;vertical-align:top}td strong{display:block}td .muted{font-size:11px}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.row-actions button{padding:6px 9px;font-size:10px}.status{display:inline-block;border-radius:5px;padding:4px 8px;background:#edf1ed}.status.held,.status.uncertain{background:#fff0d6;color:#8e5a13}.status.sent{background:#ddf2e8;color:#1b7152}.status.failed{background:#ffe6df;color:#9e3f29}#notice{position:fixed;bottom:24px;right:24px;max-width:min(520px,90vw);padding:18px 24px;background:#173f32;color:white;box-shadow:0 8px 30px #0002;border-radius:10px;white-space:pre-line}#notice.error{background:#8d362a}#login{max-width:560px}footer{text-align:center;color:var(--muted);font-size:11px;padding:20px}pre{white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:850px){.columns{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}header .muted{display:none}.intro{align-items:flex-start;gap:16px}main{padding-top:30px}}@media(max-width:480px){.pair{grid-template-columns:1fr;gap:0}.panel{padding:20px}.queue>.panel-title{display:block}.actions{margin-bottom:15px}.stats{gap:10px}.stat{padding:14px}.intro{display:block}.intro button{margin-top:10px}}
.test-send{display:flex;align-items:center;padding-bottom:15px}#testEmailResult{font-size:13px;padding:14px;background:#edf4ed;border-radius:7px;overflow-wrap:anywhere}
.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.calendar-day{background:#f4f7f2;border-radius:9px;padding:10px;min-height:120px}.calendar-day h3{font-size:11px;margin:0 0 12px}.calendar-mail{background:white;border:1px solid var(--line);border-radius:7px;padding:9px;margin:8px 0;font-size:10px;overflow-wrap:anywhere}.calendar-mail strong{display:block}.calendar-mail .muted{font-size:9px}.health-alert{border-left:3px solid #d39b40;padding:10px 15px;margin:12px 0;background:#fff8eb}.health-alert p{margin:6px 0;font-size:13px}.calendar-entry{border-top:1px solid var(--line);padding:14px 0;font-size:12px}.calendar-entry pre{font-size:11px}.calendar-entry button{margin-right:8px}#recoveryRows button{margin:3px}#safety{border-color:#d4a764;background:#fff8e9}.status.suppressed,.status.expired{background:#ece8e2;color:#625446}button{white-space:normal}dialog{max-width:min(700px,90vw);border:1px solid var(--line);border-radius:12px;padding:28px}dialog::backdrop{background:#102b2255}@media(max-width:1100px){.week-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:650px){.week-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}}
.header-actions,.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.form-actions label{margin-bottom:0}button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;line-height:1.35}.panel-title{align-items:center;flex-wrap:wrap}form>button{margin-top:6px}.row-actions{align-items:flex-start}.test-send{align-items:flex-end}#pageNav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}#pageNav [aria-current=page]{background:var(--accent);color:#fff;border-color:var(--accent)}.dashboard-page{display:grid;gap:22px}.dashboard-page>.panel{margin-bottom:0}.dashboard-page>.import{background:#fff;border:1px solid var(--line);padding:26px;border-radius:15px;margin:0}.week-calendar{align-items:start}.calendar-day{max-height:360px;overflow:hidden}.calendar-day>button{width:100%;margin-top:8px;font-size:11px}.day-dialog{width:min(800px,94vw);max-height:88vh}.day-list{max-height:55vh;overflow:auto}.day-dialog .form-actions{justify-content:space-between;margin:14px 0}#previewPanel .table-wrap{max-height:60vh;overflow:auto}th{position:sticky;top:0;background:#fff}button:focus-visible{outline:2px solid #82bfa9;outline-offset:3px}:root[data-theme=dark]{color-scheme:dark;color:#e4e5e7;background:#1c1d20;--accent:#58616d;--muted:#b0b2b8;--line:#404247}:root[data-theme=dark] header,:root[data-theme=dark] .panel,:root[data-theme=dark] .dashboard-page>.import,:root[data-theme=dark] dialog,:root[data-theme=dark] th{background:#27282c}:root[data-theme=dark] input,:root[data-theme=dark] textarea,:root[data-theme=dark] select{background:#222327;border-color:#4c4f56;color:#e4e5e7}:root[data-theme=dark] .secondary{background:#33353a;color:#e1e2e5;border-color:#53565e}:root[data-theme=dark] .stat,:root[data-theme=dark] .calendar-day{background:#303136}:root[data-theme=dark] .calendar-mail,:root[data-theme=dark] .tag,:root[data-theme=dark] #testEmailResult{background:#34363b;color:#e4e5e7}:root[data-theme=dark] .health-alert,:root[data-theme=dark] #safety{background:#39352d;color:#e3d6b9}:root[data-theme=dark] .status{background:#3c3e44;color:#e0e1e4}:root[data-theme=dark] .status.held,:root[data-theme=dark] .status.uncertain{background:#494034;color:#ead4aa}:root[data-theme=dark] .status.failed{background:#493638;color:#e9c0bd}:root[data-theme=dark] td{border-color:#3c3e44}:root[data-theme=dark] .eyebrow{color:#bcc5d0}@media(max-width:600px){.form-actions{align-items:stretch}.form-actions>button{flex:1}.header-actions{gap:7px}.dashboard-page>.import{padding:20px}}

.calendar-day .calendar-mail div,.calendar-day .calendar-mail strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root[data-theme=dark]{--accent:#515b68}

.display-controls{display:flex;align-items:center;gap:24px;padding:18px 24px}.display-controls label{min-width:240px;margin:0}.display-controls p{margin:0;max-width:640px}:root[data-theme=dark] .stat:last-child{background:#35363c}:root[data-theme=dark] .status.sent{background:#35433c;color:#c5ded0}:root[data-theme=dark] .status.suppressed,:root[data-theme=dark] .status.expired{background:#3b3b40;color:#d3d2d7}:root[data-theme=dark] input:focus,:root[data-theme=dark] select:focus,:root[data-theme=dark] textarea:focus,:root[data-theme=dark] button:focus-visible{outline-color:#9eaabb}:root[data-theme=dark] #notice{background:#3b414b;color:#f1f2f4}:root[data-theme=dark] #notice.error{background:#644448}:root[data-theme=dark] dialog::backdrop{background:#10111499}:root[data-theme=dark] button:hover{filter:brightness(1.12)}@media(max-width:650px){.display-controls{align-items:stretch;flex-direction:column;gap:12px}.display-controls label{min-width:0}}
/* Notifications fade after their display timer expires. */
#notice{transition:opacity 300ms ease}
@media(prefers-reduced-motion:reduce){#notice{transition:none}}

#securityPanel h3{margin-top:28px}#reauthDialog{width:min(520px,92vw)}#loginResult,#reauthResult{color:var(--muted);white-space:pre-line}#authSetup{padding:14px;border:1px solid var(--line);border-radius:8px}#totpSetup{padding:18px;margin-top:18px;border:1px solid var(--line);border-radius:9px}#totpSecret{font-size:17px;letter-spacing:1px;user-select:all}

.brand-logo{width:48px;height:48px;object-fit:contain;vertical-align:middle;margin-right:10px}.login-logo{width:92px;height:92px;object-fit:contain}#composeCalendarInfo{white-space:pre-line}.brand-logo,.login-logo{background:#eef1ed;border-radius:9px}html[data-theme="dark"]{color-scheme:dark}html[data-theme="light"]{color-scheme:light}
