@font-face{font-family:Fraunces;src:url('/fonts/fraunces-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Source Sans;src:url('/fonts/source-sans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Source Sans;src:url('/fonts/source-sans-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--ink:#302430;--muted:#766773;--wine:#6f304d;--plum:#48293d;--paper:#fffdf9;--cream:#f6efe8;--line:#e7dcd6;--shadow:0 18px 48px rgba(61,37,52,.11);font-family:'Source Sans',system-ui,sans-serif;color:var(--ink);background:#f7f1eb}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#f3d8dc 0,transparent 28%),linear-gradient(180deg,#faf5ef,#f3ece6);font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.shift-skip{position:fixed;z-index:100;top:10px;left:10px;padding:9px 13px;border-radius:9px;background:var(--plum);color:#fff;transform:translateY(-160%)}.shift-skip:focus{transform:none}
.shift-header{max-width:1500px;margin:auto;padding:18px 30px;display:flex;align-items:center;justify-content:space-between;gap:25px}.shift-brand{display:flex;align-items:center;gap:11px}.shift-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#fff;background:linear-gradient(145deg,var(--wine),#a25e77);font-family:Fraunces,serif;font-size:22px;transform:rotate(-3deg)}.shift-brand b,.shift-brand small{display:block}.shift-brand b{font-family:Fraunces,serif;font-size:20px;line-height:1}.shift-brand small{margin-top:5px;color:#93687c;font-family:'Source Sans',sans-serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.shift-header nav{display:flex;align-items:center;gap:10px}.shift-header nav a,.shift-header nav button{padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.72);font-size:13px;font-weight:600;cursor:pointer}.shift-header nav a:hover,.shift-header nav button:hover{border-color:#b88296;background:#fff}
.shift-shell{max-width:1500px;margin:auto;padding:25px 30px 70px}.shift-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin:25px 0 35px;padding:0 6px}.shift-eyebrow{margin:0 0 8px;color:var(--wine);font-size:11px;font-weight:600;letter-spacing:.17em;text-transform:uppercase}.shift-intro h1{max-width:800px;margin:0;font-family:Fraunces,serif;font-size:clamp(46px,5.4vw,78px);line-height:1.03;letter-spacing:-.03em}.shift-intro>div:first-child>p:last-child{max-width:730px;margin:20px 0 0;color:var(--muted);font-size:19px}.shift-private{display:flex;align-items:center;gap:12px;max-width:330px;padding:15px 17px;border:1px solid #d6dfd2;border-radius:18px;background:#f5faf3;box-shadow:0 10px 30px rgba(61,37,52,.05)}.shift-private>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#668364;color:#fff}.shift-private p,.shift-private b,.shift-private small{display:block;margin:0}.shift-private small{margin-top:2px;color:#657064;font-size:11px;line-height:1.35}
.shift-workspace{display:grid;grid-template-columns:275px minmax(600px,1fr) 260px;gap:16px;align-items:start}.shift-tools,.shift-calendar-card,.shift-day-card{border:1px solid rgba(87,54,70,.1);border-radius:26px;background:rgba(255,253,249,.94);box-shadow:var(--shadow)}.shift-tools{position:sticky;top:16px;padding:20px}.shift-step{display:flex;gap:11px;align-items:center}.shift-step>span{display:grid;place-items:center;flex:0 0 29px;height:29px;border-radius:50%;background:var(--plum);color:#fff;font-weight:600}.shift-step b,.shift-step small{display:block}.shift-step small{color:var(--muted);font-size:11px}.shift-palette{display:grid;gap:7px;margin:18px 0 12px}.shift-chip{position:relative;display:grid;grid-template-columns:39px 1fr 28px;align-items:center;width:100%;min-height:48px;padding:5px 5px 5px 7px;border:2px solid transparent;border-radius:15px;background:#f7f3f0;text-align:left;cursor:pointer}.shift-chip[aria-pressed=true]{border-color:var(--wine);background:#fff;box-shadow:0 5px 15px rgba(111,48,77,.12)}.shift-chip-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;font-size:18px}.shift-chip-name{min-width:0;padding-left:6px}.shift-chip-name b,.shift-chip-name small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shift-chip-name b{font-size:13px}.shift-chip-name small{color:var(--muted);font-size:10px}.shift-chip-edit{display:grid;place-items:center;width:27px;height:27px;border:0;border-radius:9px;background:transparent;color:#866f7d;cursor:pointer}.shift-chip-edit:hover{background:#eee6e8}.shift-tool-actions{display:grid;grid-template-columns:1fr auto;gap:7px}.shift-tool-actions button,.shift-wide-button,.shift-data-buttons button{border:1px solid var(--line);border-radius:12px;background:#fff;font-size:12px;font-weight:600;cursor:pointer}.shift-add{padding:9px}.shift-erase{padding:9px 11px}.shift-erase[aria-pressed=true]{border-color:#b24e54;background:#fbe9e8;color:#87343b}.shift-selected{min-height:34px;margin:10px 2px 0;color:var(--muted);font-size:11px}.shift-rule{height:1px;margin:19px 0;background:var(--line)}.shift-wide-button{width:100%;margin-top:14px;padding:11px;color:var(--wine)}.shift-settings{display:grid;gap:6px}.shift-settings label{font-size:11px;font-weight:600}.shift-settings select{width:100%;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fff}.shift-data-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.shift-data-buttons button{padding:8px;font-size:10px}
.shift-calendar-card{padding:22px}.shift-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center}.shift-calendar-head>button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:28px;cursor:pointer}.shift-calendar-head>button:hover{background:#f3e8ec}.shift-calendar-head>div{text-align:center}.shift-calendar-head p{margin:0;color:var(--muted);font-size:11px;letter-spacing:.12em}.shift-calendar-head h2{margin:0;font-family:Fraunces,serif;font-size:35px}.shift-calendar-actions{display:flex;justify-content:space-between;align-items:center;margin:15px 3px 10px}.shift-calendar-actions button{padding:6px 11px;border:0;border-radius:999px;background:#f0e6e9;color:var(--wine);font-size:11px;font-weight:600;cursor:pointer}.shift-calendar-actions p{margin:0;color:var(--muted);font-size:11px}.shift-weekdays,.shift-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.shift-weekdays{padding-bottom:6px}.shift-weekdays span{padding:4px;text-align:center;color:#988693;font-size:10px;font-weight:600;text-transform:uppercase}.shift-day{position:relative;min-width:0;min-height:91px;padding:7px;border:1px solid #eee5e0;border-radius:14px;background:#fff;text-align:left;overflow:hidden;cursor:pointer}.shift-day:hover,.shift-day:focus-visible{border-color:#ba8297;outline:0;box-shadow:0 0 0 2px rgba(184,112,139,.14)}.shift-day.outside{opacity:.35}.shift-day.today{border-color:#8f5069}.shift-day.selected{box-shadow:0 0 0 3px rgba(111,48,77,.18)}.shift-day-number{display:block;color:#6f5f69;font-size:11px;font-weight:600}.shift-day.today .shift-day-number{display:grid;place-items:center;width:22px;height:22px;margin:-2px 0 1px -2px;border-radius:50%;background:var(--wine);color:#fff}.shift-day-badge{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px;margin-top:4px;padding:6px;border-radius:10px;font-size:11px;font-weight:600;line-height:1.1}.shift-day-badge .emoji{font-size:15px}.shift-day-time{display:block;margin:4px 2px 0;color:#6d5c67;font-size:8px}.shift-note-dot{position:absolute;right:7px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--gold,#bd8740)}.shift-calendar-help{margin:12px 3px 0;color:var(--muted);font-size:11px;text-align:center}
.shift-day-card{position:sticky;top:16px;padding:20px}.shift-day-card h2{margin:0 0 8px;font-family:Fraunces,serif;font-size:27px;line-height:1.15}.shift-day-card>p:nth-of-type(2){min-height:45px;color:var(--muted);font-size:13px}.shift-day-card label{display:block;margin:18px 0 6px;font-size:11px;font-weight:600}.shift-day-card textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;resize:vertical}.shift-day-card textarea:focus{outline:2px solid rgba(111,48,77,.2);border-color:var(--wine)}.shift-day-card>button{width:100%;margin-top:8px;padding:9px;border:0;border-radius:11px;background:var(--wine);color:#fff;font-size:12px;font-weight:600;cursor:pointer}.shift-day-card>button:disabled{opacity:.38;cursor:not-allowed}.shift-day-card .shift-remove-day{background:#f5e9e8;color:#8d3c42}
.shift-next{margin:45px 0 0;padding:55px;border-radius:32px;color:#fff;background:linear-gradient(135deg,var(--plum),#74445c)}.shift-next h2{max-width:800px;margin:0;font-family:Fraunces,serif;font-size:43px;line-height:1.1}.shift-next .shift-eyebrow{color:#f0c3d0}.shift-next>div{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px}.shift-next span{padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:17px;background:rgba(255,255,255,.07)}.shift-next b,.shift-next small{display:block}.shift-next small{margin-top:5px;color:#e1cdd7;font-size:11px}
.shift-dialog{width:min(680px,calc(100% - 24px));max-height:90vh;padding:0;border:0;border-radius:27px;background:var(--paper);box-shadow:0 28px 100px rgba(39,22,34,.38);overflow:auto}.shift-dialog::backdrop{background:rgba(45,29,40,.5);backdrop-filter:blur(4px)}.shift-dialog form{padding:25px}.shift-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.shift-dialog h2{margin:0;font-family:Fraunces,serif;font-size:35px}.shift-close{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#f1e8e8;font-size:24px;cursor:pointer}.shift-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.shift-form-grid label,.shift-own-emoji{display:grid;gap:5px;font-size:11px;font-weight:600}.shift-form-grid input,.shift-own-emoji input{min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fff}.shift-dialog fieldset{margin:17px 0;padding:15px;border:1px solid var(--line);border-radius:16px}.shift-dialog legend{padding:0 7px;font-size:11px;font-weight:600}.shift-emojis,.shift-colors{display:flex;flex-wrap:wrap;gap:7px}.shift-emoji-button,.shift-color-button{display:grid;place-items:center;width:38px;height:38px;border:2px solid transparent;border-radius:12px;background:#f5efeb;cursor:pointer}.shift-emoji-button{font-size:20px}.shift-emoji-button[aria-pressed=true],.shift-color-button[aria-pressed=true]{border-color:var(--wine);box-shadow:0 0 0 2px rgba(111,48,77,.12)}.shift-color-button{border-radius:50%}.shift-own-emoji{grid-template-columns:auto 75px;align-items:center;margin-top:12px}.shift-preview{display:flex;align-items:center;gap:15px;margin:16px 0;padding:13px 16px;border-radius:15px;background:#f6f0ec}.shift-preview small{color:var(--muted)}.shift-preview span{padding:8px 13px;border-radius:11px;font-weight:600}.shift-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.shift-dialog-actions button{padding:10px 16px;border:0;border-radius:12px;font-weight:600;cursor:pointer}.shift-save{background:var(--wine);color:#fff}.shift-delete{margin-right:auto;background:#f8e9e8;color:#963d44}.rotation-help{color:var(--muted)}.rotation-options{display:flex;flex-wrap:wrap;gap:7px}.rotation-option{padding:7px 10px;border:0;border-radius:11px;font-size:12px;font-weight:600;cursor:pointer}.rotation-sequence{min-height:78px;margin:17px 0;padding:13px;border:1px dashed #cdbbc3;border-radius:15px;background:#faf7f4}.rotation-sequence p{margin:13px;text-align:center;color:var(--muted);font-size:12px}.rotation-sequence-list{display:flex;flex-wrap:wrap;gap:6px}.rotation-sequence-list span{display:grid;place-items:center;min-width:39px;height:39px;padding:0 6px;border-radius:11px;font-size:12px;font-weight:600}.rotation-edit{display:flex;gap:8px}.rotation-edit button{padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11px;cursor:pointer}.rotation-dates{margin-bottom:8px}.rotation-warning{min-height:22px;margin:0;color:#9a4147;font-size:12px}.shift-toast{position:fixed;z-index:120;left:50%;bottom:25px;padding:11px 18px;border-radius:999px;background:var(--plum);color:#fff;box-shadow:0 14px 40px rgba(45,29,40,.25);font-size:13px;font-weight:600;opacity:0;pointer-events:none;transform:translate(-50%,20px);transition:.2s}.shift-toast.show{opacity:1;transform:translate(-50%,0)}
.tone-rose{background:#f0c9d5;color:#6d2c45}.tone-coral{background:#f4c5bc;color:#7b352d}.tone-orange{background:#f4cfaa;color:#784719}.tone-gold{background:#ead39d;color:#6b5015}.tone-lemon{background:#f3e7a7;color:#5e5516}.tone-sage{background:#d4e1c8;color:#405d3d}.tone-mint{background:#cce6da;color:#315d50}.tone-teal{background:#bfe0dd;color:#285c5a}.tone-sky{background:#cce3ed;color:#315a6e}.tone-blue{background:#cbd8ee;color:#344f78}.tone-lavender{background:#ddd3ec;color:#52406d}.tone-plum{background:#d9c4d8;color:#653c61}.tone-berry{background:#e8c4d3;color:#76324f}.tone-slate{background:#d8dde1;color:#43505a}
@media(max-width:1160px){.shift-workspace{grid-template-columns:250px 1fr}.shift-day-card{position:static;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px 20px}.shift-day-card .shift-eyebrow,.shift-day-card h2,.shift-day-card>p{grid-column:1/-1}.shift-day-card label{grid-column:1/2}.shift-day-card textarea{grid-column:1/2;grid-row:5/8}.shift-day-card>button{grid-column:2}.shift-next>div{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.shift-header{padding:14px 16px}.shift-header nav a{display:none}.shift-header nav button{font-size:11px}.shift-shell{padding:15px 10px 50px}.shift-intro{display:block;margin:22px 7px}.shift-intro h1{font-size:48px}.shift-intro>div:first-child>p:last-child{font-size:17px}.shift-private{margin-top:20px}.shift-workspace{display:flex;flex-direction:column}.shift-tools,.shift-calendar-card,.shift-day-card{position:static;width:100%;border-radius:21px}.shift-calendar-card{order:1;padding:11px}.shift-tools{order:2}.shift-day-card{order:3;display:block}.shift-calendar-head h2{font-size:29px}.shift-day{min-height:68px;padding:4px;border-radius:10px}.shift-day-badge{display:block;margin-top:2px;padding:3px;text-align:center}.shift-day-badge .emoji{font-size:14px}.shift-day-badge .label{display:none}.shift-day-time{display:none}.shift-note-dot{right:4px;top:5px}.shift-calendar-help{font-size:10px}.shift-next{padding:35px 20px}.shift-next h2{font-size:34px}.shift-next>div{grid-template-columns:1fr}.shift-dialog form{padding:20px}.shift-form-grid{grid-template-columns:1fr}.rotation-dates{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.shift-brand b{font-size:17px}.shift-header nav button{padding:7px 9px}.shift-intro h1{font-size:42px}.shift-calendar-head{grid-template-columns:36px 1fr 36px}.shift-calendar-head>button{width:36px;height:36px}.shift-calendar-head h2{font-size:26px}.shift-weekdays,.shift-month{gap:3px}.shift-day{min-height:61px}.shift-day-number{font-size:10px}.shift-tool-actions{grid-template-columns:1fr 1fr}}
@media print{body{background:#fff}.shift-header,.shift-intro,.shift-tools,.shift-day-card,.shift-next,.shift-calendar-help,.shift-toast{display:none!important}.shift-shell{padding:0}.shift-workspace{display:block}.shift-calendar-card{border:0;box-shadow:none}.shift-day{min-height:90px;break-inside:avoid}.shift-calendar-actions button{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.shift-toast{transition:none}}
.shift-chip{grid-template-columns:1fr 28px;padding:5px;cursor:default}.shift-chip.active{border-color:var(--wine);background:#fff;box-shadow:0 5px 15px rgba(111,48,77,.12)}.shift-chip-select{display:grid;grid-template-columns:39px 1fr;align-items:center;min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.shift-full-moon,.shift-moon-art{display:block;border-radius:50%;background:radial-gradient(circle at 35% 32%,#fffde6 0 10%,#f4e9b8 45%,#d8c07d 100%);box-shadow:0 0 0 1px rgba(119,91,41,.22),0 0 9px rgba(218,186,104,.8)}.shift-full-moon{position:absolute;right:7px;top:7px;width:15px;height:15px}.shift-note-dot{top:auto;bottom:7px;background:#bd8740}.shift-moon-note{display:flex;align-items:center;gap:11px;margin:4px 0 15px;padding:11px;border:1px solid #eadfb8;border-radius:15px;background:linear-gradient(135deg,#fffced,#f7efd4)}.shift-moon-note[hidden]{display:none}.shift-moon-art{flex:0 0 35px;width:35px;height:35px}.shift-moon-note p,.shift-moon-note b,.shift-moon-note small{display:block;margin:0}.shift-moon-note b{font-size:12px}.shift-moon-note small{margin-top:2px;color:#71644f;font-size:10px;line-height:1.3}
@media(max-width:1160px){.shift-moon-note{grid-column:1/-1}}
@media(max-width:780px){.shift-full-moon{right:4px;top:4px;width:12px;height:12px}.shift-note-dot{right:4px;bottom:4px}}
.shift-colors{max-height:190px;padding:2px;overflow:auto}.shift-color-button{box-shadow:inset 0 0 0 1px rgba(48,36,48,.16)}.shift-color-button[aria-pressed=true]{box-shadow:0 0 0 2px rgba(111,48,77,.18),inset 0 0 0 1px rgba(48,36,48,.16)}
.shift-fuel-mark{position:absolute;left:6px;bottom:4px;font-size:13px;line-height:1}.shift-fuel{margin:5px 0 16px;border:1px solid #dce6d3;border-radius:16px;background:#f6faf2;overflow:hidden}.shift-fuel summary{display:flex;align-items:center;gap:9px;padding:11px;list-style:none;cursor:pointer}.shift-fuel summary::-webkit-details-marker{display:none}.shift-fuel summary>span:first-child{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#dcebcf;font-size:17px}.shift-fuel summary b,.shift-fuel summary small{display:block}.shift-fuel summary b{font-size:12px}.shift-fuel summary small{color:#69745f;font-size:9px}.shift-fuel summary:after{content:'+';margin-left:auto;color:#547047;font-size:20px}.shift-fuel[open] summary:after{content:'−'}.shift-fuel-body{padding:0 11px 12px;border-top:1px solid #dce6d3}.shift-fuel-body label{margin:11px 0 4px}.shift-fuel-body>input,.shift-fuel-body>textarea{width:100%;padding:8px 9px;border:1px solid #d6dfcf;border-radius:10px;background:#fff;resize:vertical}.fuel-idea-button,.fuel-save{width:100%;margin-top:11px;padding:8px;border:1px solid #bdd1af;border-radius:10px;background:#fff;color:#48633f;font-size:11px;font-weight:600;cursor:pointer}.fuel-idea-button:disabled,.fuel-save:disabled{opacity:.4;cursor:not-allowed}.fuel-idea-text{margin:8px 0 0;padding:9px;border-radius:10px;background:#e5f0dc;color:#43573d;font-size:10px;line-height:1.35}.shift-fuel-body fieldset{margin:13px 0 0;padding:9px;border:1px solid #d6dfcf;border-radius:11px}.shift-fuel-body legend{padding:0 4px;font-size:10px;font-weight:600}.shift-fuel-body fieldset>small{display:block;margin-bottom:7px;color:#6f786a;font-size:9px}.fuel-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.fuel-macros label{position:relative;margin:0;font-size:9px}.fuel-macros input{width:100%;margin-top:3px;padding:6px 15px 6px 5px;border:1px solid #d6dfcf;border-radius:8px;background:#fff}.fuel-macros label span{position:absolute;right:5px;bottom:6px;color:#7b8276;font-size:9px}.shift-fuel output{display:block;margin-top:8px;color:#4c6145;font-size:9px;line-height:1.3}.fuel-save{border:0;background:#557949;color:#fff}
@media(max-width:1160px){.shift-fuel{grid-column:1/-1}}
@media(max-width:780px){.shift-fuel-mark{left:3px;bottom:2px;font-size:11px}}
.shift-fuel-body fieldset>.fuel-formula{margin:4px 0 0;font-size:8px}
.shift-colors{max-height:none;overflow:visible}.shift-color-button[hidden]{display:none}.shift-more-colors{width:100%;margin-top:12px;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--wine);font-size:11px;font-weight:600;cursor:pointer}.shift-more-colors:after{content:' ↓'}.shift-more-colors[aria-expanded=true]:after{content:' ↑'}
.shift-fuel-body>select{width:100%;padding:8px 9px;border:1px solid #d6dfcf;border-radius:10px;background:#fff;font-size:11px}.fuel-use-idea,.fuel-target-button{width:100%;margin-top:7px;padding:8px;border:0;border-radius:9px;background:#6b8e5e;color:#fff;font-size:10px;font-weight:600;cursor:pointer}.fuel-target-button{margin-top:9px;background:#e3eedc;color:#45603e;border:1px solid #c9dcc0}.fuel-use-idea[hidden]{display:none}.fuel-target-button:disabled{opacity:.4;cursor:not-allowed}
/* Keep the calendar visible as the main app surface. */
.shift-intro, .shift-next { display:none; }
.shift-shell { padding:0 24px 90px; }
.shift-header { padding:12px 24px; }
.shift-pay-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 18px; margin:0 0 12px; border:1px solid #dac9d0; border-radius:14px; background:#fffaf7; }
.shift-pay-summary h2 { display:inline; margin:0 8px 0 0; font-size:15px; }
#next-pay-date { display:inline; margin:0; font-size:14px; }
#pay-settings-button { display:block; border:0; padding:0; background:transparent; color:var(--wine); font-size:11px; text-decoration:underline; cursor:pointer; }
.shift-pay-hours { display:flex; align-items:baseline; justify-content:flex-end; flex-wrap:wrap; gap:5px; }
.shift-pay-hours b { color:var(--wine); font-size:28px; line-height:1; }
.shift-pay-hours span { font-size:12px; }
.shift-pay-hours small { flex-basis:100%; text-align:right; font-size:11px; color:var(--muted); }
.shift-pay-settings { margin-top:18px; padding-top:12px; border-top:1px solid var(--line); }
.shift-pay-settings summary { color:var(--wine); font-size:13px; font-weight:600; cursor:pointer; }
.shift-pay-settings>div { display:grid; gap:9px; margin-top:10px; }
.shift-pay-settings label { display:grid; gap:5px; font-size:12px; }
.shift-pay-settings input { min-width:0; max-width:100%; padding:8px; border:1px solid var(--line); border-radius:8px; background:white; }
.shift-pay-settings button { padding:9px; border:0; border-radius:8px; background:var(--wine); color:white; cursor:pointer; }
.shift-pay-settings small, .shift-device-note { font-size:11px; color:var(--muted); }
.shift-month { gap:0; border:1px solid #9b8590; border-radius:5px; overflow:hidden; }
.shift-day { border:0; border-right:1px solid #b9a6af; border-bottom:1px solid #b9a6af; border-radius:0; padding:7px; min-height:100px; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; }
.shift-day:nth-child(7n) { border-right:0; }
.shift-day.outside { opacity:1; background:#f1eeed; color:#a499a1; }
.shift-day.outside .shift-day-number { color:#a499a1; }
.shift-day.selected { box-shadow:inset 0 0 0 2px var(--wine); }
.shift-day.today .shift-day-number { margin:0; }
.shift-day-number { color:inherit; font-size:14px; }
.shift-day-badge { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px; padding:2px 0; margin:8px 0 0; background:transparent; font-size:16px; line-height:1.2; overflow-wrap:anywhere; }
.shift-day-badge .emoji { font-size:17px; }
.shift-day-time { color:inherit; font-size:10px; text-align:center; }
.shift-day-preview { display:-webkit-box; margin-top:5px; font-size:12px; line-height:1.2; text-align:center; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; overflow-wrap:anywhere; }
.shift-pay-marker { position:absolute; right:3px; top:3px; padding:1px 3px; border-radius:3px; background:#fff7e2; color:#76500e; font-size:9px; font-weight:700; }
.shift-day:has(.shift-full-moon) .shift-pay-marker { top:21px; }
.shift-day-card>select, .shift-day-card>input { width:100%; padding:10px; border:1px solid var(--line); border-radius:10px; background:white; }
.shift-day-color-row { display:flex; align-items:center; gap:10px; }
.shift-day-color-row input { width:64px; height:42px; padding:2px; border:1px solid var(--line); border-radius:8px; background:white; }
.shift-day-color-row button, .shift-day-card .shift-edit-type { padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--wine); font-size:12px; cursor:pointer; }
.shift-day-card .shift-day-close, #close-shifts { display:none; }
.shift-day-scrim[hidden] { display:none; }
.shift-bottom-nav { position:fixed; z-index:35; bottom:12px; left:50%; display:flex; width:350px; padding:5px; border:1px solid var(--line); border-radius:14px; background:#fffdf9; box-shadow:0 8px 25px #30243022; transform:translateX(-50%); }
.shift-bottom-nav button { display:flex; align-items:center; justify-content:center; gap:8px; flex:1; min-height:44px; border:0; border-radius:8px; background:transparent; color:var(--wine); font-size:14px; font-weight:600; cursor:pointer; }
.shift-bottom-nav button span { font-size:20px; }
.shift-bottom-nav button[aria-pressed=true] { background:var(--wine); color:white; }
.shift-toast { bottom:78px; }
.shift-skip { left:-9999px; transform:none; }
.shift-skip:focus { left:10px; transform:none; }
@media(max-width:1160px) {
  .shift-day-card { display:block; }
  .shift-day-card textarea { grid-row:auto; }
}
@media(max-width:780px) {
  body.shift-app { height:100dvh; display:flex; flex-direction:column; overflow:hidden; background:#faf6f1; }
  .shift-header { flex:none; padding:7px 12px; gap:8px; }
  .shift-brand>span { width:32px; height:32px; border-radius:9px; font-size:19px; }
  .shift-brand b { font-size:18px; }
  .shift-brand small { display:none; }
  .shift-header nav #print-button { display:none; }
  .shift-header nav button { padding:7px 9px; font-size:11px; }
  .shift-shell { display:flex; flex-direction:column; flex:1; min-height:0; width:100%; padding:0 6px 0; }
  .shift-pay-summary { flex:none; padding:7px 10px; margin:0 0 6px; border-radius:8px; gap:8px; }
  .shift-pay-summary h2 { font-size:12px; margin-right:4px; }
  #next-pay-date { font-size:12px; }
  #pay-settings-button { font-size:10px; margin-top:2px; }
  .shift-pay-hours { flex:none; max-width:160px; gap:3px; }
  .shift-pay-hours b { font-size:24px; }
  .shift-pay-hours span { font-size:10px; }
  .shift-pay-hours small { font-size:10px; }
  .shift-workspace { display:flex; flex:1; min-height:0; gap:0; }
  .shift-calendar-card { display:flex; flex-direction:column; flex:1; min-height:0; width:100%; padding:5px 0 0; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .shift-calendar-head { flex:none; grid-template-columns:40px 1fr 40px; }
  .shift-calendar-head>div { display:flex; align-items:baseline; justify-content:center; gap:8px; }
  .shift-calendar-head h2 { order:-1; font-family:'Source Sans',sans-serif; font-size:27px; line-height:1.2; text-transform:uppercase; }
  .shift-calendar-head p { font-size:15px; letter-spacing:0; }
  .shift-calendar-head>button { width:36px; height:34px; border:0; background:transparent; font-size:33px; }
  .shift-calendar-actions { flex:none; margin:3px 4px 2px; }
  .shift-calendar-actions button { padding:2px 9px; font-size:11px; }
  .shift-calendar-actions p { font-size:10px; }
  .shift-weekdays { flex:none; gap:0; padding-bottom:2px; }
  .shift-weekdays span { padding:3px 0; color:#60505b; font-size:12px; }
  .shift-month { flex:1; min-height:0; gap:0; border:1px solid #8a717e; border-radius:3px; }
  .shift-day { min-height:0; padding:4px; border-radius:0; }
  .shift-day-number { font-size:14px; line-height:19px; }
  .shift-day-badge { display:flex; gap:3px; padding:0; margin-top:5px; font-size:14px; }
  .shift-day-badge .emoji { font-size:15px; }
  .shift-day-badge .label { display:block; font-size:13px; }
  .shift-day-time { display:none; }
  .shift-day-preview { font-size:10px; margin-top:3px; -webkit-line-clamp:3; }
  .shift-note-dot { display:none; }
  .shift-full-moon { width:11px; height:11px; top:4px; right:4px; }
  .shift-pay-marker { font-size:8px; }
  .shift-calendar-help { flex:none; margin:3px 0; min-height:15px; font-size:10px; }
  .shift-tools, .shift-day-card { display:none; }
  .shift-day-scrim:not([hidden]) { position:fixed; z-index:45; inset:0; background:#27192288; }
  body.day-open .shift-day-card, body[data-mode=shifts] .shift-tools { display:block; position:fixed; z-index:46; top:auto; bottom:0; left:0; right:0; width:100%; max-height:82dvh; overflow:auto; padding:24px 20px calc(20px + env(safe-area-inset-bottom)); border:0; border-radius:20px 20px 0 0; background:#fffdf9; box-shadow:0 -12px 40px #27192233; }
  .shift-day-card .shift-day-close, #close-shifts { display:grid; place-items:center; position:absolute; right:14px; top:12px; width:34px; height:34px; margin:0; padding:0; border:0; border-radius:50%; background:#f0e4e9; color:var(--wine); font-size:25px; cursor:pointer; }
  .shift-tools .shift-step:first-of-type { padding-right:28px; }
  .shift-bottom-nav { flex:none; position:static; z-index:35; left:auto; bottom:auto; transform:none; width:100%; margin:0; padding:4px 6px calc(4px + env(safe-area-inset-bottom)); border:0; border-top:1px solid #c6b2bd; border-radius:0; box-shadow:none; }
  .shift-bottom-nav button { min-height:43px; font-size:14px; }
  .shift-toast { bottom:65px; max-width:90%; text-align:center; }
  .shift-day-card input, .shift-day-card select, .shift-day-card textarea, .shift-dialog input { font-size:16px; }
}
@media(max-width:360px) {
  .shift-pay-summary { padding:6px; }
  .shift-pay-hours { max-width:130px; }
  #next-pay-date { display:block; }
  .shift-calendar-head h2 { font-size:23px; }
}
@media(max-height:550px) and (max-width:780px) {
  body.shift-app { height:auto; min-height:100dvh; overflow:auto; }
  .shift-month { min-height:340px; }
}
@media print {
  .shift-bottom-nav,.shift-day-scrim,.shift-pay-summary { display:none!important; }
  body.shift-app { height:auto; display:block; overflow:visible; }
}

/* A small seasonal banner; the month grid keeps the remaining screen space. */
.shift-calendar-head {
  --season-ink:#633b28;
  --season-paper:linear-gradient(110deg,#f5d4a6,#fff0d9 48%,#edd9c8);
  position:relative;
  min-height:65px;
  padding:4px;
  border:1px solid #9c766533;
  border-radius:10px;
  background:var(--season-paper);
  color:var(--season-ink);
  overflow:hidden;
}
.shift-calendar-head[data-season=winter] { --season-ink:#294b66; --season-paper:linear-gradient(110deg,#d7e8f5,#f5fbff,#d5e6f0); }
.shift-calendar-head[data-season=hearts] { --season-ink:#863d5b; --season-paper:linear-gradient(110deg,#f6d7e0,#fff1f4,#eadfe9); }
.shift-calendar-head[data-season=thaw] { --season-ink:#476341; --season-paper:linear-gradient(110deg,#dde9cc,#f8f6e8,#ecdfea); }
.shift-calendar-head[data-season=rain] { --season-ink:#435b70; --season-paper:linear-gradient(110deg,#dceaf3,#f2f8ed,#e4e1f1); }
.shift-calendar-head[data-season=blossom] { --season-ink:#76435f; --season-paper:linear-gradient(110deg,#f6dce9,#fff4ed,#e1eccf); }
.shift-calendar-head[data-season=summer] { --season-ink:#56612d; --season-paper:linear-gradient(110deg,#e3eebc,#fff8d6,#e1f1ed); }
.shift-calendar-head[data-season=sunshine] { --season-ink:#86501f; --season-paper:linear-gradient(110deg,#ffe4a2,#fff7de,#f6d9cb); }
.shift-calendar-head[data-season=harvest] { --season-ink:#795326; --season-paper:linear-gradient(110deg,#efcf88,#fff1ce,#ecdab1); }
.shift-calendar-head[data-season=autumn] { --season-ink:#82402f; --season-paper:linear-gradient(110deg,#efc59e,#fff0d5,#f0cdbb); }
.shift-calendar-head[data-season=halloween] { --season-ink:#683725; --season-paper:linear-gradient(110deg,#f2bd78,#ffedcc 48%,#dcd0e6); }
.shift-calendar-head[data-season=late-fall] { --season-ink:#5f5246; --season-paper:linear-gradient(110deg,#ddc4aa,#f2ece3 48%,#dce7ed); }
.shift-calendar-head[data-season=christmas] { --season-ink:#fff5db; --season-paper:linear-gradient(110deg,#244d3a,#345d43 50%,#234b3a); }
.shift-calendar-head>div { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; }
.shift-calendar-head h2 { order:-1; color:inherit; line-height:1.1; }
.shift-calendar-head p { color:inherit; opacity:.85; font-size:12px; }
.shift-calendar-head>button { position:relative; color:inherit; border:0; background:transparent; }
.shift-season-art { position:absolute; top:50%; transform:translateY(-50%); font-size:30px; line-height:1; pointer-events:none; }
.shift-season-left { left:54px; transform:translateY(-50%) rotate(-9deg); }
.shift-season-right { right:54px; transform:translateY(-50%) rotate(8deg); }
.shift-pay-marker { background:#e1f0df; color:#254e2e; border:1px solid #9dbf9d; font-size:10px; line-height:1.2; }
.shift-pay-note { padding:10px 12px; border:1px solid #c6dabe; border-radius:10px; background:#eef6e9; color:#35572e; font-size:13px; }
.shift-pay-note[hidden] { display:none; }
@media(max-width:780px) {
  .shift-calendar-head { min-height:59px; flex:none; }
  .shift-calendar-head h2 { font-size:26px; }
  .shift-calendar-head p { font-size:11px; }
  .shift-season-art { font-size:26px; }
  .shift-season-left { left:44px; }
  .shift-season-right { right:44px; }
  .shift-pay-marker { padding:1px 2px; font-size:9px; right:2px; top:3px; }
}
@media(max-width:360px) {
  .shift-calendar-head h2 { font-size:23px; }
  .shift-season-art { font-size:22px; }
  .shift-season-left { left:39px; }
  .shift-season-right { right:39px; }
}
.shift-season-symbols { display:none; }
.shift-season-art { width:34px; height:34px; }
@media(max-width:780px) { .shift-season-art { width:29px; height:29px; } }
@media(max-width:360px) { .shift-season-art { width:24px; height:24px; } }
