:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#18283b;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}main{max-width:680px;margin:auto;padding:20px 16px 90px}.top,.between,.controls,.legend,.dots,.tabs{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.top{justify-content:space-between;margin-bottom:22px}h1{font-size:26px;margin:0}h2{font-size:18px;margin:0 0 12px}.muted{color:#6b7585;font-size:13px}.card{background:#fff;border-radius:20px;padding:18px;margin-bottom:16px;box-shadow:0 2px 14px #1b35510b}.week,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.week{text-align:center;color:#778294;font-size:12px;margin:16px 0 9px}.day{border:1px solid #edf0f5;background:#f8fafd;border-radius:11px;min-height:58px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;gap:8px;color:inherit;font:inherit;cursor:pointer}.day.active{border:2px solid #345b9b}.day.off{opacity:.35}.dots{gap:4px;min-height:12px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.morning{background:#3485dd}.evening{background:#e7a444}.sub{border:2px solid currentColor;border-radius:50%;width:13px;height:13px;display:inline-flex;align-items:center;justify-content:center}.sub:after{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}.blue{color:#3485dd}.amber{color:#e7a444}.legend{flex-wrap:wrap;margin-top:15px;font-size:12px;color:#637084}.legend>span{display:flex;align-items:center;gap:5px}button,input,select,textarea{font:inherit}button{cursor:pointer}.btn{border:0;border-radius:12px;background:#243f65;color:white;padding:12px 16px;font-weight:600}.btn.alt{background:#edf2f8;color:#243f65}.btn.warn{background:#fff0ee;color:#a93434}.controls{flex-wrap:wrap}label{display:block;font-size:13px;font-weight:600;margin:12px 0 5px}input,select,textarea{width:100%;border:1px solid #dce3ec;border-radius:11px;padding:12px;background:#fff;color:inherit}input[type=checkbox]{width:auto}textarea{min-height:65px}.tabs{margin-bottom:15px}.tabs button{flex:1}.balance{font-size:23px;font-weight:700}.positive{color:#16835d}.negative{color:#b34b4b}.entry{border-top:1px solid #edf0f5;padding:12px 0}.entry:first-child{border-top:0}.hidden{display:none}.pill{font-size:11px;background:#eef3f9;border-radius:8px;padding:4px 7px}.note{padding:12px;border-radius:12px;background:#fff6df;font-size:13px;margin-bottom:16px}body.dark{background:#101823;color:#e7ecf4}body.dark .card{background:#1d2a3b}body.dark .day{background:#263449;border-color:#3b4a60}body.dark input,body.dark select,body.dark textarea{background:#263449;color:#fff;border-color:#45566d}body.dark .btn.alt{background:#354761;color:#fff}body.dark .note{background:#493c21}@media(max-width:390px){main{padding:13px 10px 80px}.card{padding:12px}.day{min-height:51px}.week,.calendar{gap:3px}}
/* PIN authentication, shared light/dark palette */
body:has(.auth-screen){background:#edf2f8;color:#243f65}
body.dark:has(.auth-screen){background:#111b2a;color:#e8eef8}
main:has(.auth-screen){max-width:520px;min-height:100dvh;padding:env(safe-area-inset-top) 24px env(safe-area-inset-bottom);display:flex;align-items:center;justify-content:center}
.auth-screen{width:100%;padding:26px 0}.auth-center{width:100%;text-align:center}
.auth-title{font-size:36px;letter-spacing:.11em;font-weight:500}.auth-rule{height:1px;background:#6a8fba;margin:18px 0 24px;opacity:.65}
.auth-hint{font-size:12px;letter-spacing:.27em;color:#7891b2;margin:0 0 27px}
.auth-label{text-align:left;color:#6a7d96;margin:12px 0 7px}.auth-field{margin-bottom:12px;background:#fff}
.pin-dots{display:flex;justify-content:center;gap:17px;margin:23px 0 29px}
.pin-dot{width:15px;height:15px;border:2px solid #5380b7;border-radius:50%}.pin-dot.filled{background:#5380b7}
.pin-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pin-key{height:64px;border:1px solid #8ca8c8;border-radius:18px;background:#ffffff99;color:#243f65;font-size:30px;font-weight:300}
.pin-key:active{background:#bed4ee}.pin-secondary{font-size:23px;color:#4772a5}
.auth-submit{width:100%;margin-top:18px;padding:18px 8px;border-radius:16px;background:#345b8b;color:white;border:0;letter-spacing:.2em;font-size:14px}
.auth-submit:disabled{opacity:.38}.auth-error{min-height:22px;color:#c74a55;font-size:13px}
.auth-switch{border:0;background:none;color:#4776ac;padding:12px;font-size:14px}
body.dark .pin-key{background:#1e2c40;color:#e8eef8;border-color:#405b7b}
body.dark .pin-secondary{color:#90b5e1}
body.dark .auth-field{background:#263449;color:#fff}
@media(max-height:720px){.auth-screen{padding:10px 0}.pin-key{height:54px}.pin-dots{margin:16px 0}.auth-hint{margin-bottom:16px}}

.auth-person{font-size:20px;font-weight:600;margin:0 0 16px;color:inherit}

.choice-row{display:flex;gap:7px;flex-wrap:wrap}.choice{flex:1;min-width:80px;padding:12px 8px;border:1px solid #59718f;border-radius:12px;background:transparent;color:inherit;font-weight:600}.choice.chosen{background:#345b8b;color:#fff;border-color:#345b8b}.day-edit .between h2{margin:0;text-align:right}.day-edit [hidden]{display:none!important}body:has(.day-edit) main{padding-bottom:env(safe-area-inset-bottom,20px)}@media(max-width:390px){.choice{min-width:70px;font-size:13px}}

/* Compact, light typography and one-screen monthly calendar */
:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;font-weight:300}
h1,h2,.btn,.choice,label,.day,.tabs button{font-weight:400}
.day{font-weight:300;gap:4px;min-height:0;justify-content:space-around}
body:has(.calendar) main{min-height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,10px);padding-bottom:env(safe-area-inset-bottom,10px)}
body:has(.calendar) .top{margin-bottom:8px}
body:has(.calendar) .note{display:none}
body:has(.calendar) .tabs{margin-bottom:8px}
body:has(.calendar) .card{flex:1;display:flex;flex-direction:column;min-height:0;margin-bottom:0;padding:12px}
body:has(.calendar) .calendar{flex:1;grid-template-rows:repeat(6,minmax(0,1fr));min-height:0}
body:has(.calendar) .week{margin:8px 0 5px}
body:has(.calendar) .legend{margin-top:8px;font-size:10px;gap:5px 9px}
body:has(.calendar) .card .between{min-height:40px}
body:has(.calendar) .card .between .btn{padding:7px 13px}
body:has(.calendar) .card .between h2{font-size:17px;font-weight:400}
body:has(.calendar) .day{font-size:14px;padding:2px}
body:has(.calendar) .dot{width:7px;height:7px}
@media(max-height:750px){body:has(.calendar) .legend{font-size:9px}body:has(.calendar) .top{display:none}body:has(.calendar) .tabs button{padding:8px 5px}}

.status-grid{display:grid;gap:8px}.status-working .choice{width:100%}.status-reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.status-reasons .choice{min-width:0;padding:12px 4px;font-size:clamp(11px,3.4vw,15px)}

/* Calendar: morning marker above evening marker, date at bottom. */
.calendar .day{display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:0;padding:4px 2px 3px;overflow:hidden}
.day-signals{display:flex;flex:1;min-height:0;flex-direction:column;align-items:center;justify-content:space-around;width:100%}
.day-top,.day-bottom{height:12px;display:flex;align-items:center;justify-content:center}
.day-middle{flex:1;min-height:0}
.slot,.slot-empty{display:block;width:9px;height:9px;flex-shrink:0}
.slot{border-radius:50%}
.slot-sub{background:transparent!important;border:2px solid currentColor;border-radius:50%;width:11px;height:11px}
.slot-sub.morning{color:#3485dd}.slot-sub.evening{color:#e7a444}
.day-number{font-size:14px;line-height:1.1;font-weight:300;margin-top:2px}
.day-absence{font-size:17px;line-height:1;font-weight:500;color:#c96666;margin:auto 0}
.day-absent{background:#4a3540!important;border-color:#80505b!important}
body:not(.dark) .day-absent{background:#fff0ef!important;border-color:#eac5c3!important}
body:not(.dark) .day-absence{color:#ae4242}
@media(max-height:740px){.day-top,.day-bottom{height:10px}.slot,.slot-empty{width:7px;height:7px}.slot-sub{width:9px;height:9px}.day-number{font-size:12px}.day-absence{font-size:14px}}

/* Symmetrical morning/evening markers; date remains at the bottom. */
.calendar .day{position:relative}
.calendar .day-signals{position:absolute;inset:0;display:block;pointer-events:none}
.calendar .day-top,.calendar .day-bottom{position:absolute;left:0;right:0;height:12px;display:flex;justify-content:center;align-items:center}
.calendar .day-top{top:12px}
.calendar .day-bottom{bottom:12px}
.calendar .day-middle{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);text-align:center}
.calendar .day-absence{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);margin:0;text-align:center}
.calendar .day-number{position:absolute;bottom:2px;right:5px;margin:0;font-size:12px}
.pin-face{font-size:29px;color:#8fb7ed}

/* Date remains centered at the bottom of each calendar cell. */
.calendar .day-number{left:0;right:0;bottom:2px;text-align:center}

/* Mirror the existing lower shift dot without moving the date. */
.calendar .day-top{top:28%;bottom:auto}
.calendar .day-bottom{bottom:28%;top:auto}
.calendar .day-number{left:0;right:0;bottom:2px;text-align:center}

/* Fixed symmetrical inset for shift markers. */
.calendar .day-top{top:20px;bottom:auto}
.calendar .day-bottom{bottom:20px;top:auto}

/* Keep the entire PWA viewport in the selected theme, including short tabs. */
html{min-height:100%;background:#f5f7fb}
html:has(body.dark){background:#101823;color-scheme:dark}
html:has(body:not(.dark)){color-scheme:light}
body{min-height:100dvh}
body:not(:has(.calendar)):not(:has(.auth-screen)) main{min-height:100dvh}

/* Compact settings: prevent iOS date inputs from stretching the layout. */
.settings-card{padding:14px 16px 18px}
.settings-card h2{font-size:17px;font-weight:400;margin:16px 0 9px}
.settings-card h2:first-child{margin-top:0}
.settings-card label{font-size:12px;font-weight:400;margin:10px 0 4px}
.settings-card input,.settings-card select,.settings-card textarea{display:block;min-width:0;max-width:100%;width:100%;min-height:42px;padding:8px 11px;border-radius:10px;font-size:15px}
.settings-card input[type=date]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;height:44px;line-height:24px}
.settings-card input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}
.settings-card .muted{font-size:12px;line-height:1.35;margin:8px 0 12px}
.settings-card .btn{padding:9px 13px;border-radius:10px;font-size:14px;font-weight:400}
.settings-card #saveSettings,.settings-card #saveAbsenceRange{margin-top:10px}
.settings-card #logout,.settings-card #switchAccount{margin-top:10px}
.pin-face{display:flex;align-items:center;justify-content:center}
.pin-face svg{display:block}

/* iPhone compact settings, scoped only to settings. */
body:has(.settings-card) main{padding-top:8px;padding-bottom:calc(env(safe-area-inset-bottom) + 12px)}
body:has(.settings-card) .top{display:none}
body:has(.settings-card) .note{display:none}
body:has(.settings-card) .tabs{gap:7px;margin:0 0 10px}
body:has(.settings-card) .tabs .btn{padding:9px 4px;font-size:14px;border-radius:10px}
body:has(.settings-card) .settings-card{padding:12px 14px;border-radius:17px}
body:has(.settings-card) .settings-card h2{font-size:17px;line-height:1.25;margin:19px 0 8px!important}
body:has(.settings-card) .settings-card h2:first-child{margin-top:0!important}
body:has(.settings-card) .settings-card label{font-size:13px;line-height:1.2;margin:9px 0 5px}
body:has(.settings-card) .settings-card input,
body:has(.settings-card) .settings-card select{height:38px!important;min-height:38px!important;padding:5px 10px!important;font-size:15px!important;line-height:22px!important;border-radius:9px}
body:has(.settings-card) .settings-card input[type=date]{display:block;-webkit-appearance:none;appearance:none;max-width:100%;min-width:0}
body:has(.settings-card) .settings-card .muted{font-size:12px;line-height:1.3;margin:8px 0}
body:has(.settings-card) .settings-card .btn{font-size:14px;padding:9px 12px;border-radius:10px}
body:has(.settings-card) .settings-card #saveSettings,
body:has(.settings-card) .settings-card #saveAbsenceRange{margin-top:9px}

/* Keep primary navigation visible while scrolling long settings and day forms. */
.tabs{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:#f5f7fb;padding:7px 0;margin-top:-7px}
body.dark .tabs{background:#101823}
body:has(.settings-card) .tabs{margin-top:0;padding:7px 0 9px}
.tabs .btn{white-space:nowrap;min-width:0}

/* Partner chat */
.tabs{gap:5px}.tabs .btn{padding:10px 5px;font-size:clamp(11px,3.3vw,15px)}
.partner-messages{display:flex;flex-direction:column;gap:8px;max-height:48dvh;overflow:auto;margin:12px 0;padding:8px 0}
.partner-message{max-width:86%;align-self:flex-start;padding:9px 12px;border-radius:12px;background:#e7edf5;overflow-wrap:anywhere}
.partner-message.mine{align-self:flex-end;background:#c9ddf6}
.partner-message small{display:block;opacity:.7;font-size:11px;margin-bottom:3px}
body.dark .partner-message{background:#34445c}body.dark .partner-message.mine{background:#284c78}
.partners-card h2:not(:first-child){margin-top:20px}.partners-card .controls{margin:10px 0}.partners-card textarea{margin-top:12px}
#partnerCode{overflow-wrap:anywhere;font-size:12px;margin:10px 0}

/* Pair ledger mobile layout */
.pair-entry{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:12px 0;border-bottom:1px solid #8090a033;overflow-wrap:anywhere}
.pair-entry small{font-size:12px}.pair-entry .controls{display:flex;flex-wrap:wrap;gap:8px}
body:has(.partners-card) .top,body:has(.partners-card) .note{display:none}
body:has(.partners-card) main{padding-top:8px}

/* Calendar legend: working statuses first, absences second. */
.legend-grouped{display:flex;flex-direction:column;gap:9px}
.legend-grouped .legend-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px 15px}
.legend-grouped .legend-row span{display:inline-flex;align-items:center;gap:5px}

.linked-shifts{margin:12px 0;padding:10px 0;border-top:1px solid #8090a055;border-bottom:1px solid #8090a055}
.linked-shifts h3{font-size:15px;font-weight:600;margin:4px 0 8px}
.linked-shifts .entry{font-size:13px;padding:6px 0;overflow-wrap:anywhere}

/* Persistent top navigation on every authenticated screen. */
#app>.tabs{position:sticky!important;top:0!important;z-index:100!important;align-self:stretch;flex-shrink:0;margin:0 0 10px!important;padding:calc(env(safe-area-inset-top,0px) + 8px) 0 9px!important;background:#f5f7fb;isolation:isolate}
body.dark #app>.tabs{background:#101823}
#app>.tabs .btn{min-width:0;white-space:nowrap;padding:10px 3px;font-size:clamp(11px,3.2vw,14px)}
.sync-alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;margin:0 0 10px;border:1px solid #c78d50;border-radius:10px;font-size:13px}
.sync-alert .btn{font-size:13px;padding:7px 10px}

.money-mode-switch{display:flex;gap:8px;margin:0 0 12px}
.money-mode-switch .btn{flex:1;min-width:0;font-size:14px;padding:10px 6px}

.slot-covered{background:transparent!important;border:2px solid #d58b2c!important;box-sizing:border-box}
.legend .covered{display:inline-block;width:10px;height:10px;border:2px solid #d58b2c;border-radius:50%;vertical-align:middle}

/* Calendar: open ring = covered shift; ring around dot = substitution worked. */
.slot.slot-sub{position:relative;box-shadow:0 0 0 3px var(--calendar-bg,#253247),0 0 0 5px currentColor!important}
.slot.slot-sub.morning{color:#3485dd}
.slot.slot-sub.evening{color:#e7a444}
.slot.slot-covered{background:transparent!important;border:3px solid #e7a444!important;box-shadow:none!important}
.legend-grouped .sub.covered{color:#e7a444;border:3px solid #e7a444;background:transparent;width:14px;height:14px}
.legend-grouped .sub.covered::after{content:none}
.legend-grouped .sub.blue{width:14px;height:14px}
.finance-person{border-top:1px solid #8190a044}
.finance-person summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 0;cursor:pointer}
.finance-person summary::-webkit-details-marker{display:none}
.finance-person summary span{font-weight:500}
.finance-person summary::before{content:"›";font-size:20px;opacity:.65}
.finance-person[open] summary::before{transform:rotate(90deg)}
.finance-person summary span{flex:1}
.finance-history{padding:0 0 8px 20px}
.finance-history-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-top:1px solid #8190a033;padding:10px 0;font-size:13px}
.finance-history-row small{display:block;opacity:.7;margin-top:4px}
.finance-history-row .muted{margin-top:3px}

/* Exact calendar symbols from legend: blue ring with blue dot; amber empty ring. */
.calendar .slot.slot-sub{position:relative!important;width:14px!important;height:14px!important;background:transparent!important;border:3px solid #3485dd!important;border-radius:50%!important;box-shadow:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.calendar .slot.slot-sub::after{content:""!important;display:block!important;width:5px!important;height:5px!important;flex:0 0 5px!important;background:#3485dd!important;border-radius:50%!important}
.calendar .slot.slot-covered{position:relative!important;width:14px!important;height:14px!important;background:transparent!important;border:3px solid #e7a444!important;border-radius:50%!important;box-shadow:none!important}
.calendar .slot.slot-covered::after{content:none!important}

/* Shift color always determines ring color; shape determines substitution direction. */
.calendar .slot.slot-sub.morning,.calendar .slot.slot-covered.morning{border-color:#3485dd!important}
.calendar .slot.slot-sub.evening,.calendar .slot.slot-covered.evening{border-color:#e7a444!important}
.calendar .slot.slot-sub.morning::after{background:#3485dd!important}
.calendar .slot.slot-sub.evening::after{background:#e7a444!important}

/* Equal inset from the top and bottom edges of each calendar cell. */
.calendar .day-top{top:18px!important;bottom:auto!important}
.calendar .day-bottom{bottom:18px!important;top:auto!important}
.calendar .day-top,.calendar .day-bottom{height:14px!important}

/* Compact day editor: keep the complete form usable on a phone viewport. */
body:has(.day-edit) main{padding-top:8px!important;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important}
.day-edit.card{padding:12px 14px!important;margin-bottom:8px!important;border-radius:16px}
.day-edit>.between{gap:8px;margin-bottom:8px!important}
.day-edit>.between .btn{padding:8px 10px!important;font-size:13px!important;white-space:nowrap}
.day-edit>.between h2{font-size:15px!important;line-height:1.2!important}
.day-edit label{font-size:12px!important;line-height:1.15!important;margin:9px 0 4px!important;font-weight:400!important}
.day-edit .choice-row{gap:6px!important;flex-wrap:nowrap!important}
.day-edit .choice{min-width:0!important;padding:8px 5px!important;min-height:38px!important;border-radius:9px!important;font-size:clamp(12px,3.4vw,15px)!important;line-height:1.2!important}
.day-edit .status-grid{gap:5px!important}
.day-edit .status-reasons{gap:6px!important}
.day-edit .status-reasons .choice{padding:7px 2px!important;font-size:clamp(11px,3.1vw,14px)!important}
.day-edit #subSection>.choice-row+.choice-row{margin-top:6px}
.day-edit input,.day-edit textarea{width:100%;min-width:0;max-width:100%;border-radius:9px!important;font-size:16px!important;padding:7px 10px!important}
.day-edit input{height:39px!important;min-height:39px!important}
.day-edit textarea{height:44px!important;min-height:44px!important;resize:vertical}
.day-edit .controls{display:flex;gap:8px!important;margin-top:9px!important}
.day-edit .controls .btn{padding:9px 10px!important;min-height:38px!important;font-size:clamp(11px,3.1vw,14px)!important;border-radius:9px!important}
.day-edit #save{flex:1}
.day-edit #clear{flex:1.5}
.day-edit .linked-shifts{margin:7px 0;padding:6px 0}

/* Compact settings and partner screens; do not alter calendar or editor. */
.settings-card,.partners-card{padding:14px!important;border-radius:17px!important}
.settings-card h2,.partners-card h2{font-size:17px!important;line-height:1.25!important;margin:0 0 9px!important}
.settings-card h2:not(:first-child),.partners-card h2:not(:first-child){margin-top:17px!important}
.settings-card label,.partners-card label{font-size:12px!important;font-weight:400!important;margin:8px 0 4px!important;line-height:1.25!important}
.settings-card input,.settings-card select,.partners-card input,.partners-card select,.partners-card textarea{min-height:39px!important;height:39px!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:7px 10px!important;border-radius:10px!important;font-size:16px!important}
.settings-card input[type=date]{height:39px!important;min-height:39px!important;line-height:24px!important}
.settings-card .muted,.partners-card .muted{font-size:12px!important;line-height:1.4!important;margin:6px 0 10px!important}
.settings-card .btn,.partners-card .btn{min-height:37px!important;padding:8px 11px!important;border-radius:10px!important;font-size:14px!important}
.settings-card .absence-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.settings-card .absence-dates>div{min-width:0}
.settings-card .absence-dates input{display:block;width:100%!important;min-width:0!important;max-width:100%!important}
.settings-card #saveAbsenceRange,.settings-card #saveProfile{margin-top:9px!important}
.settings-card #logout{margin-top:12px}
.partners-card .controls{gap:8px!important;margin:9px 0!important}
.partners-card .partner-join-row{display:flex;gap:8px;align-items:stretch;margin:0 0 14px}
.partners-card .partner-join-row input{flex:1;width:0!important}
.partners-card .partner-join-row .btn{flex:0 0 auto;white-space:nowrap}
.partners-card #partnerCode:not(:empty){margin:8px 0;overflow-wrap:anywhere}
.partners-card .partner-messages{margin-top:8px}
.partners-card textarea{height:65px!important;min-height:65px!important}
@media(max-width:365px){.partners-card .partner-join-row{flex-wrap:wrap}.partners-card .partner-join-row input{flex-basis:100%;width:100%!important}}

/* Compact native accordions for settings. */
.settings-card{padding:8px 12px!important}
.settings-fold{border-bottom:1px solid #8090a044}
.settings-fold:last-child{border-bottom:0}
.settings-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:13px 6px;font-size:16px;font-weight:500;line-height:1.3;min-height:45px}
.settings-fold>summary::-webkit-details-marker{display:none}
.settings-fold>summary::after{content:"⌄";font-size:22px;line-height:1;opacity:.7;transition:transform .15s}
.settings-fold[open]>summary::after{transform:rotate(180deg)}
.settings-fold-body{padding:2px 6px 14px}
.settings-fold-body>label:first-child{margin-top:2px!important}
.settings-fold-body .muted{margin:7px 0!important}

/* One navigation baseline for every authenticated screen. */
body:has(#app>.tabs) main,
body:has(.calendar):has(#app>.tabs) main,
body:has(.settings-card):has(#app>.tabs) main,
body:has(.partners-card):has(#app>.tabs) main,
body:has(.day-edit):has(#app>.tabs) main{
 padding-top:8px!important;
}
#app>.tabs{
 position:sticky!important;
 top:0!important;
 z-index:100!important;
 margin:0 0 10px!important;
 padding:8px 0 9px!important;
 flex-shrink:0!important;
 align-self:stretch!important;
}

/* Today is outlined independently of the selected day. */
.day.day-today{outline:3px solid #e3a23c;outline-offset:-3px;opacity:1}
.day.day-today.active{outline-color:#e3a23c;border-color:#345b9b}
.today-controls{display:flex;justify-content:center;margin-top:16px}
.today-controls .btn{min-width:140px}
