:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19332f;background:#f4f6f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:inherit}button,input,select{font:inherit}button,.button-link{border:1px solid #bdd0c8;background:#fff;color:#21433d;border-radius:10px;padding:.66rem .9rem;font-weight:650;cursor:pointer;text-decoration:none;white-space:nowrap}button:hover,.button-link:hover{border-color:#5d8b7e;background:#f1f7f3}.primary{background:#176554;border-color:#176554;color:white}.primary:hover{background:#104d40;color:white}input,select{border:1px solid #c9d6ce;border-radius:9px;background:#fff;color:#19332f;padding:.64rem .7rem;min-width:0}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #b2d9ba;outline-offset:2px}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:650}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em;margin-bottom:.4rem}h2{font-size:1.35rem;letter-spacing:-.025em;margin-bottom:0}h3{font-size:1rem;margin:1rem 0 .6rem}p{line-height:1.5}.site-header{background:#163b36;color:#f4fbf7;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(1.3rem,calc((100vw - 1160px)/2));box-shadow:0 3px 12px #183c3216}.brand{display:flex;align-items:center;gap:.65rem;font-weight:800;letter-spacing:-.02em;line-height:1.08}.brand small{display:block;color:#b9d4ca;font-size:.72rem;font-weight:500;letter-spacing:0;margin-top:.18rem}.brand-mark{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:11px;background:#d4ead9;color:#174b3d;font-size:1.2rem}nav{display:flex;align-items:center;gap:.12rem}nav a,nav button{display:block;color:#d6e9df;background:transparent;border:0;border-radius:8px;padding:.62rem .7rem;text-decoration:none;font-size:.89rem;font-weight:600}nav a:hover,nav button:hover,nav .active{background:#2d584e;color:white}nav form{margin-left:.6rem}main{max-width:1160px;margin:auto;padding:2.2rem 1.3rem 5rem;min-height:calc(100vh - 160px)}footer{text-align:center;color:#83958c;font-size:.78rem;padding:1rem}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-heading p{color:#647a70;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.69rem;font-weight:800;color:#438372;margin-bottom:.45rem}.panel{background:#fff;border:1px solid #dce6de;border-radius:17px;padding:1.25rem 1.4rem;margin-bottom:1.1rem;box-shadow:0 4px 18px #163b3608}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.pill{font-size:.76rem;font-weight:700;background:#e8f2ec;color:#366c58;padding:.3rem .62rem;border-radius:999px;white-space:nowrap}.status-banner{padding:.78rem 1rem;border-radius:10px;background:#e3efe8;color:#215741;font-weight:700;margin-bottom:1.1rem}.status-banner.free,.status-banner.ended{background:#e9eeeb;color:#60766c}.status-banner.upcoming{background:#f8edce;color:#735e28}.task,.stock-row{display:flex;align-items:center;gap:1rem;justify-content:space-between;border-top:1px solid #edf1ec;padding:.84rem 0}.task:first-child,.stock-row:first-child{border-top:0}.task>div:first-child,.stock-row>div:first-child{margin-right:auto}.task strong,.stock-row strong{display:block}.task small,.stock-row small{display:block;color:#809087;margin-top:.2rem}.muted{color:#84948b;font-size:.9rem}.empty{padding:1.5rem;border:1px dashed #d0dbd3;border-radius:12px;background:#f9fbf8}.empty p{color:#74847b;margin:.4rem 0 0}.editor{border-top:1px solid #edf1ec;margin-top:.8rem;padding-top:1rem}.editor summary{cursor:pointer;color:#397965;font-size:.9rem;font-weight:700}.editor-body{padding-top:1rem}.setting-row{display:flex;align-items:center;gap:.5rem;padding:.55rem 0;border-top:1px solid #edf1ec}.setting-row input:first-of-type{flex:1}.setting-row select{max-width:12rem}.setting-row button{margin-left:auto}.number{font-weight:800;color:#438372;min-width:1.7rem}.form-grid{display:flex;align-items:end;flex-wrap:wrap;gap:.65rem}.form-grid label{min-width:160px;flex:1}.form-grid button{margin-bottom:0}.form-grid.compact{margin-top:1rem}.form-grid.compact input{max-width:230px}.stock-row form{flex-shrink:0}.inline{display:flex;align-items:center;gap:.35rem}.inline input[type=number]{width:5.8rem}.shopping-list{border:1px solid #e0e9e2;border-radius:12px;padding:1rem;margin:1rem 0;background:#fbfcfa}.list-title{display:flex;align-items:center;justify-content:space-between}.list-title h3{margin:0 0 .5rem}.shopping-form{margin:.25rem 0}.shopping-item{width:100%;display:flex;align-items:center;gap:.65rem;text-align:left;border:0;background:transparent;padding:.5rem .2rem;font-weight:500;white-space:normal}.shopping-item.checked{color:#86978b;text-decoration:line-through}.shopping-item small{color:#71877a;margin-left:.4rem}.checkbox{width:1.3rem;height:1.3rem;border:1.5px solid #8ba99a;border-radius:5px;display:grid;place-items:center;color:#176554;flex-shrink:0}.missing-add{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:1rem;border-top:1px solid #edf1ec;padding-top:.75rem;font-size:.82rem;color:#71877a}.missing-add button{font-size:.76rem;padding:.4rem .55rem}.month-grid{background:white;border:1px solid #dce6de;border-radius:16px;overflow:hidden}.month-row{display:grid;grid-template-columns:145px minmax(0,1fr) 105px;gap:1rem;align-items:center;padding:.7rem 1rem;border-top:1px solid #edf1ec}.month-row:first-child{border-top:0}.month-row.current{background:#f0f7f1}.month-date strong,.month-date span{display:block}.month-date span{font-size:.73rem;color:#87978e;margin-top:.1rem}.shift-form{display:flex;gap:.4rem;align-items:center}.shift-form select{flex:1}.shift-form input{width:115px}.text-link{font-size:.83rem;font-weight:700;color:#327a65;text-decoration:none}.text-link:hover{text-decoration:underline}.period-form{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap;margin-bottom:1.3rem}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}.stat-grid>div{background:#fff;border:1px solid #dce6de;border-radius:12px;padding:1.1rem}.stat-grid strong{display:block;font-size:2rem;letter-spacing:-.04em;color:#1d604e}.stat-grid span{font-size:.78rem;color:#6e8176}.bar-list>div,.history a{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid #edf1ec;padding:.7rem 0}.bar-list strong{color:#2b705c}.history a{text-decoration:none}.history a:hover{color:#176554}.history span{color:#708477;font-size:.84rem}.notice,.error{padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem;background:#e1f2e6;color:#1d604e}.error{background:#fae7e1;color:#8f3c2c}.login-card{background:#fff;border:1px solid #dce6de;border-radius:18px;padding:2rem;max-width:420px;margin:7vh auto;box-shadow:0 20px 50px #173d3213}.login-card p{color:#63796d}.login-card form{display:grid;gap:1rem}.login-card button{width:100%}.check-label{display:flex;align-items:center;flex-direction:row;white-space:nowrap;font-size:.8rem}.check-label input{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.site-header{display:block;padding:.8rem 1rem}.brand{margin-bottom:.7rem}nav{overflow-x:auto;padding-bottom:.1rem}nav a,nav button{font-size:.81rem;padding:.48rem .52rem}nav form{margin-left:auto}main{padding:1.35rem .85rem 4rem}.page-heading{align-items:start}.panel{padding:1rem}.month-row{display:block;padding:1rem}.month-date{display:flex;gap:.6rem;align-items:baseline;margin-bottom:.6rem}.shift-form{flex-wrap:wrap}.shift-form select{flex-basis:100%}.shift-form input{flex:1;width:0}.month-row .text-link{display:inline-block;margin-top:.6rem}.stock-row{flex-wrap:wrap}.stock-row>div:first-child{flex-basis:100%}.setting-row{flex-wrap:wrap}.setting-row input:first-of-type{flex-basis:100%}.stat-grid{grid-template-columns:repeat(2,1fr)}.history a{display:block}.history span{display:block;margin-top:.15rem}.form-grid.compact input{max-width:none;width:100%}.page-heading .inline{align-self:start}}@media(max-width:430px){.stat-grid{grid-template-columns:repeat(2,1fr)}.task{align-items:start}.task button{font-size:.81rem}.period-form label{flex:1}.period-form input{width:100%}}

.upcoming-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.7rem}
.upcoming-day{display:flex;flex-direction:column;gap:.45rem;min-height:145px;padding:1rem;background:#fff;border:1px solid #dce6de;border-radius:14px;text-decoration:none}
.upcoming-day.current,.month-row.current{background:#eaf4ed;border-color:#93c3a8}
.upcoming-day span{font-size:.8rem;color:#5e786a}.upcoming-day strong{font-size:1.1rem}.upcoming-day small{color:#6f8478}
.upcoming-day:hover{border-color:#5d8b7e}
.month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin-bottom:.35rem;text-align:center;color:#60766c;font-size:.8rem;font-weight:700}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;background:transparent;border:0;border-radius:0;overflow:visible}
.month-row{display:block;min-width:0;padding:.75rem;border:1px solid #dce6de;border-radius:12px;background:#fff}
.month-date{margin-bottom:.6rem}.month-date strong{font-size:.85rem}
.shift-form{display:grid;gap:.35rem}.shift-form select{width:100%}.time-pair{display:flex;gap:.3rem}.shift-form input[type=time]{width:50%;padding:.5rem .2rem;font-size:.78rem}
.shift-form input:disabled{opacity:.45}.month-row .text-link{display:inline-block;margin-top:.45rem}
.save-status{display:inline-block;min-height:1em;color:#5d806d;font-size:.72rem}.save-status.failed{color:#a43b2f;font-weight:700}
.setting-row .save-status{min-width:5.5rem}
.setting-row input[name=name],.setting-row input[name=title]{flex:1;min-width:150px}
.time-pair{display:grid;grid-template-columns:1fr}.shift-form input[type=time]{width:100%}
@media(max-width:950px){.upcoming-grid,.month-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.month-weekdays,.month-gap{display:none}}
@media(max-width:600px){.upcoming-grid,.month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{flex-wrap:wrap}.month-row{padding:.75rem}.setting-row .save-status{width:100%}}
@media(max-width:380px){.upcoming-grid,.month-grid{grid-template-columns:1fr}}

.calendar-day{display:flex;flex-direction:column;gap:.4rem;min-height:105px;text-decoration:none}
.calendar-day:hover{border-color:#5d8b7e}.calendar-day small,.shift-hours{color:#71877a;font-size:.76rem}
.task-panel progress{width:100%;height:.45rem;accent-color:#176554;margin:0 0 .8rem}
.task-panel h3{font-size:.88rem;color:#507162;margin:.6rem 0}
.task-items{display:grid;gap:.35rem}
.task-complete{margin:0}.task-tap,.task-static{width:100%;display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border:1px solid #e0e9e2;border-radius:10px;background:#fff;text-align:left;white-space:normal;font-weight:500}
.task-tap{cursor:pointer}.task-tap:hover{background:#eaf4ed;border-color:#89b69c}.task-tap:disabled{opacity:.55;cursor:wait}
.task-mark{width:1.35rem;height:1.35rem;border:1.5px solid #8ba99a;border-radius:5px;display:grid;place-items:center;flex:none;color:#176554;font-weight:800}
.task-copy{min-width:0}.task-copy strong{display:block;font-size:.93rem}.task-copy small{display:block;color:#71877a;font-size:.76rem;margin-top:.15rem}
.task-group{margin-top:.8rem;border-top:1px solid #e8eee8;padding-top:.65rem}.task-group summary{cursor:pointer;font-weight:700;color:#345f4d}.task-group summary span{color:#74877a;margin-left:.3rem}.task-group .task-items{margin-top:.6rem}
.task-error{background:#fae7e1;color:#8f3c2c;padding:.6rem;border-radius:8px}
.weekday-group{border-top:1px solid #e4ebe5}.weekday-group summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:.85rem .2rem;color:#275844}.weekday-group summary span{font-size:.78rem;color:#71877a}.weekday-body{padding:.2rem 0 1rem}
.task-template{gap:.45rem}.task-template input[name=title]{flex:2;min-width:180px}.task-template select{max-width:11rem}.task-template input[name=interval_hours]{width:6rem}
textarea{font:inherit;color:#19332f;border:1px solid #c9d6ce;border-radius:9px;padding:.64rem .7rem;resize:vertical;min-width:0}
.bulk-form{background:#f4f8f4;border-radius:12px;padding:1rem;margin-top:.8rem;align-items:end}.bulk-form .bulk-label{flex:2;min-width:230px}.bulk-form textarea{width:100%}.bulk-form label:not(.bulk-label){flex:1;min-width:130px}
@media(max-width:760px){.task-template input[name=title]{flex-basis:100%}.task-template select{flex:1;max-width:none}.task-template .save-status{width:100%}.bulk-form .bulk-label{flex-basis:100%}}

.task-hint{font-size:.84rem;color:#526e60;margin:.1rem 0 .8rem}
.task-static{background:#f8faf8;color:#627568}.task-state{margin-left:auto;font-size:.76rem;font-weight:700;white-space:nowrap}
.task-action-label{margin-left:auto;color:#176554;font-size:.8rem;font-weight:800;white-space:nowrap}
.task-template-row{display:flex;align-items:center;gap:.5rem;border-top:1px solid #edf1ec}
.task-template-row .task-template{flex:1;min-width:0;border-top:0}.task-remove button{font-size:.77rem;padding:.5rem .65rem;color:#8b4b3d}
.archived-tasks{margin-top:1rem;border-top:1px solid #e0e9e2;padding-top:.7rem}.archived-tasks summary{cursor:pointer;font-size:.84rem;font-weight:700;color:#60766c}
.archived-task{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem 0;border-top:1px solid #edf1ec}.archived-task:first-of-type{margin-top:.5rem}.archived-task span{overflow-wrap:anywhere}
@media(max-width:760px){.task-template-row{align-items:flex-start;flex-wrap:wrap;padding-bottom:.6rem}.task-template-row .task-template{flex-basis:100%;padding-bottom:0}.task-remove{margin-left:auto}.task-action-label{font-size:.75rem}}
.task-row{display:flex;align-items:stretch;gap:.4rem;border:1px solid #e0e9e2;border-radius:10px;overflow:hidden;background:#fff}.task-info{flex:1;min-width:0;text-align:left;border:0;border-radius:0;white-space:normal;padding:.65rem .75rem}.task-info strong,.task-info small{display:block}.task-info small{font-size:.76rem;color:#71877a;margin-top:.15rem}.task-complete{display:flex;align-items:stretch}.task-check{border:0;border-left:1px solid #e0e9e2;border-radius:0;color:#176554;padding:.45rem .8rem}.task-state{align-self:center;padding:0 .8rem}.task-dialog{width:min(92vw,540px);border:1px solid #dce6de;border-radius:16px;padding:1.4rem;box-shadow:0 16px 50px #163b3633}.task-dialog::backdrop{background:#10292199}.task-dialog p{white-space:pre-wrap;overflow-wrap:anywhere;margin:1rem 0}.task-dialog form{text-align:right}
.task-template{flex-wrap:wrap}.task-template .description-label{width:100%;font-size:.76rem;color:#60766c}.description-label textarea,.wide-label textarea,.import-form textarea,.import-help textarea{width:100%}.wide-label{flex-basis:100%!important}.import-help{margin:1rem 0;padding:.8rem;background:#f4f8f4;border-radius:10px}.import-help summary{cursor:pointer;font-weight:700}.import-help textarea{background:white}.import-form{display:grid;gap:.65rem;margin-top:.8rem;padding:1rem;background:#f4f8f4;border-radius:12px}.import-form button{justify-self:start}.import-preview li{padding:.65rem 0;border-bottom:1px solid #edf1ec}.import-preview p{white-space:pre-wrap;margin:.3rem 0}.import-preview small{color:#71877a}
.stock-row{position:relative;padding:.75rem;border-radius:10px;gap:.65rem}.stock-row.stock-ok{background:#e3f3e8;border:1px solid #9ccbaf}.stock-row.stock-low{background:#fff2e4;border:1px solid #e5be91}.stock-info{min-width:0}.stock-status{display:inline-block;margin-top:.3rem;padding:.2rem .55rem;border-radius:999px;font-size:.8rem;font-weight:800}.stock-status.ok{color:#11583f;background:#c9ebd2}.stock-status.missing{color:#8a4a20;background:#ffe1bf}.stock-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.stock-actions .selected{background:#176554;border-color:#176554;color:white}.stock-missing{position:relative}.stock-missing summary{list-style:none;cursor:pointer;border:1px solid #bdd0c8;background:white;color:#21433d;border-radius:10px;padding:.66rem .9rem;font-weight:650;white-space:nowrap}.stock-missing summary::-webkit-details-marker{display:none}.stock-missing summary:hover{background:#f1f7f3}.stock-missing-form{position:absolute;z-index:3;right:0;top:calc(100% + .35rem);width:min(320px,calc(100vw - 2rem));display:grid;gap:.7rem;padding:1rem;background:#fff;border:1px solid #c9d6ce;border-radius:12px;box-shadow:0 10px 28px #163b3633}.stock-missing-form input{width:100%}.stock-missing-form button{white-space:normal}@media(max-width:760px){.stock-row .stock-info{flex-basis:100%}.stock-actions{width:100%}.stock-actions form.inline,.stock-actions details{flex:1}.stock-actions form.inline button,.stock-missing summary{width:100%;text-align:center}}
.stock-category{border:1px solid #dce6de;border-radius:12px;margin:.7rem 0;padding:.2rem .85rem}.stock-category>summary{cursor:pointer;font-weight:750;padding:.65rem 0}.stock-category-items{padding-bottom:.4rem}.stock-entry select{max-width:11rem}.stock-check-category{margin-top:1.2rem}.stock-check-category h3{margin:0 0 .45rem;color:#245f50}.stock-check-category .stock-row{margin:.4rem 0}@media(max-width:760px){.stock-entry select{max-width:none;flex:1}.stock-entry .check-label{flex:0 0 auto}}
.month-picker{display:flex;align-items:center;gap:.35rem}.month-picker select{min-width:10.5rem;max-width:13rem}.month-picker .button-link{font-size:1.25rem;line-height:1;padding:.55rem .8rem}@media(max-width:760px){.month-picker{width:100%;flex-wrap:wrap}.month-picker select{flex:1;max-width:none}.month-picker button{flex:0 0 auto}}
.service-progress{padding:1.15rem 1.3rem;margin-bottom:1.3rem;border-radius:17px;background:#e5f2e9;border:1px solid #bfdfca}.service-progress-head{display:flex;align-items:end;justify-content:space-between;gap:.6rem}.service-progress-head strong{display:block;font-size:1.55rem;letter-spacing:-.03em;color:#175842}.service-progress-head>span{font-size:.9rem;font-weight:700;color:#39755f}.service-progress progress{display:block;width:100%;height:.4rem;margin:.7rem 0 .45rem;accent-color:#176554}.service-progress small{color:#547665}@media(max-width:430px){.service-progress{padding:1rem}.service-progress-head strong{font-size:1.35rem}.service-progress-head>span{font-size:.78rem}}

.day-hero{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:clamp(1.5rem,4vw,2.5rem);margin-bottom:1rem;border-radius:18px;background:#163b36;color:#f4fbf7}.day-hero.free{background:#e6eee8;color:#21433d}.day-hero-label{font-size:1rem;font-weight:700}.day-hero strong{font-size:clamp(2.3rem,7vw,4.5rem);line-height:1.05;letter-spacing:-.05em}.day-hero strong small{font-size:.35em;letter-spacing:0}.day-hero-status{font-size:.85rem;color:#b9d4ca}.day-hero.free .day-hero-status{color:#526e60}
.day-links{display:grid;gap:.75rem;margin-top:1.1rem}.day-links a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:86px;padding:1.1rem 1.25rem;background:#fff;border:1px solid #dce6de;border-radius:15px;text-decoration:none;box-shadow:0 4px 18px #163b3608}.day-links a:hover{background:#f1f7f3;border-color:#5d8b7e}.day-links strong,.day-links small{display:block}.day-links strong{font-size:1.1rem;color:#21433d}.day-links small{font-size:.83rem;color:#647a70;margin-top:.25rem}.day-link-arrow{font-size:1.6rem;color:#176554;flex:none}.day-back{display:inline-block;margin:0 0 1rem;color:#176554;font-size:.9rem;font-weight:700;text-decoration:none}.day-back:hover{text-decoration:underline}.day-links a:focus-visible,.day-back:focus-visible{outline:3px solid #b2d9ba;outline-offset:2px}
@media(max-width:760px){.day-hero strong{overflow-wrap:anywhere}.day-links a{min-height:92px;padding:1rem}}

.list-remove{margin-left:auto;position:relative}.list-remove summary{cursor:pointer;color:#8b4b3d;font-size:.8rem;font-weight:700}.list-remove form{position:absolute;z-index:2;right:0;top:1.5rem;padding:.6rem;background:#fff;border:1px solid #dce6de;border-radius:10px;box-shadow:0 8px 24px #163b3622}.list-remove button{color:#8b4b3d;white-space:nowrap}.new-list-form{margin-top:1rem}.shopping-error:not(:empty){display:block;margin:.2rem 0;color:#a43b2f;font-size:.8rem}.shopping-form button:disabled{opacity:.65;cursor:wait}
.stock-missing summary.selected{background:#b45d29;border-color:#b45d29;color:#fff}.stock-missing summary.selected:hover{background:#91491e}
@media(max-width:760px){.stock-row{flex-wrap:nowrap;padding:.4rem .5rem;gap:.4rem;min-height:52px}.stock-row .stock-info{flex:1 1 auto;flex-basis:auto;min-width:0;display:flex;align-items:center;gap:.3rem;margin-right:0}.stock-info strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.stock-info small,.stock-row.editable .stock-status{display:none}.stock-row:not(.editable) .stock-status{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50%}.stock-actions{width:auto;gap:.3rem}.stock-actions form.inline,.stock-actions details{flex:none}.stock-actions form.inline button,.stock-missing summary{width:auto;min-height:40px;padding:.45rem .6rem;font-size:.82rem;text-align:center}.stock-missing-form{right:0}}
.stock-swipe-hint,.stock-swipe-back,.stock-missing-cancel,.stock-error:empty{display:none}.stock-swipe-window,.stock-swipe-face{display:contents}.stock-error:not(:empty){color:#9b3e30;font-size:.8rem}.stock-missing-buttons{display:flex;gap:.4rem;flex-wrap:wrap}@media(min-width:761px){.stock-row .stock-info{margin-right:auto}}
@media(max-width:760px){.stock-swipe-ready .stock-swipe-hint{display:block;color:#526e60;font-size:.78rem;margin:-.2rem 0 .8rem}.stock-row .stock-info strong{flex:1}.stock-row.editable .stock-info .stock-status{display:inline-flex;flex:none;max-width:47%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-swipe-ready .stock-row.editable{display:block;padding:.4rem .5rem;background:transparent;border:0;touch-action:pan-y}.stock-swipe-ready .stock-swipe-window{display:block;position:relative;overflow:hidden;border-radius:10px}.stock-swipe-ready .stock-swipe-back{display:flex;position:absolute;inset:0;align-items:center;justify-content:space-between;padding:0 1rem;color:#fff;font-size:.9rem;font-weight:800;background:#176554}.stock-swipe-ready .stock-row[data-swipe="missing"] .stock-swipe-back{background:#b45d29}.stock-swipe-ready .stock-swipe-back span:last-child,.stock-swipe-ready .stock-row[data-swipe="missing"] .stock-swipe-back span:first-child{visibility:hidden}.stock-swipe-ready .stock-row[data-swipe="missing"] .stock-swipe-back span:last-child{visibility:visible}.stock-swipe-ready .stock-swipe-face{display:flex;position:relative;align-items:center;min-height:54px;padding:.55rem .7rem;background:#fff;border:1px solid #dce6de;border-radius:10px;transition:transform .18s ease;touch-action:pan-y}.stock-swipe-ready .stock-row.stock-ok .stock-swipe-face{background:#e3f3e8;border-color:#9ccbaf}.stock-swipe-ready .stock-row.stock-low .stock-swipe-face{background:#fff2e4;border-color:#e5be91}.stock-swipe-ready .stock-row.swiping .stock-swipe-face{transition:none}.stock-swipe-ready .stock-row .stock-info{width:100%}.stock-swipe-ready .stock-row.editable .stock-actions{display:none}.stock-swipe-ready .stock-row.missing-open .stock-actions{display:block;position:absolute;right:.5rem;left:.5rem;top:calc(100% - .1rem);z-index:5;width:auto;padding:0;background:transparent}.stock-swipe-ready .stock-row.missing-open .stock-actions>form,.stock-swipe-ready .stock-row.missing-open .stock-missing summary{display:none}.stock-swipe-ready .stock-row.missing-open .stock-missing{display:block}.stock-swipe-ready .stock-row.missing-open .stock-missing-form{position:static;width:100%}.stock-swipe-ready .stock-missing-cancel{display:inline-block}.stock-row .stock-error:not(:empty){position:absolute;top:100%;left:.5rem;right:.5rem;z-index:6;padding:.35rem;background:#fae7e1;border-radius:6px}}
.shopping-board .shopping-list{margin:.7rem 0}.shopping-board .list-title{gap:.6rem}.shopping-board .list-title h3{margin:0;overflow-wrap:anywhere}.shopping-entry{display:flex;align-items:start;gap:.3rem;border-top:1px solid #edf1ec}.shopping-entry:first-of-type{border-top:0}.shopping-entry .shopping-form{flex:1;min-width:0;margin:0}.shopping-entry .shopping-item{min-height:44px}.shopping-entry .shopping-edit{flex:none}.shopping-edit summary,.shopping-menu>summary{list-style:none;display:grid;place-items:center;width:38px;height:38px;border-radius:9px;color:#416c5c;cursor:pointer;font-weight:700}.shopping-edit summary::-webkit-details-marker,.shopping-menu>summary::-webkit-details-marker{display:none}.shopping-edit summary:hover,.shopping-menu>summary:hover{background:#e8f2ec}.shopping-edit-body{position:absolute;z-index:4;right:0;left:0;padding:.8rem;background:#fff;border:1px solid #dce6de;border-radius:10px;box-shadow:0 8px 24px #163b3622}.shopping-entry{position:relative}.shopping-edit-form,.shopping-rename,.shopping-add,.shopping-new-list{display:flex;gap:.45rem;align-items:center}.shopping-edit-form input:first-of-type,.shopping-add input:first-of-type{flex:2;min-width:0}.shopping-edit-form input[name=amount],.shopping-add input[name=amount]{flex:1;min-width:0}.shopping-edit-body .shopping-delete{margin-top:.55rem}.shopping-delete button{color:#944636;border-color:#e8cbc4}.shopping-menu{position:relative;margin-left:auto;flex:none}.shopping-menu-body{position:absolute;right:0;top:100%;z-index:5;width:min(360px,calc(100vw - 3rem));padding:.8rem;background:#fff;border:1px solid #dce6de;border-radius:10px;box-shadow:0 8px 24px #163b3622}.shopping-rename{margin-bottom:.65rem}.shopping-rename input{flex:1;min-width:0}.shopping-archive{border-top:1px solid #edf1ec;padding:.55rem 0}.shopping-archive summary,.shopping-history summary{cursor:pointer;color:#276f58;font-weight:700}.shopping-archive-body{padding:.5rem 0}.shopping-archive-body p{font-size:.85rem;margin:.25rem 0}.shopping-archive-body ul{max-height:8rem;overflow:auto;padding-left:1.2rem;margin:.4rem 0}.shopping-archive-body label{display:flex;flex-direction:row;align-items:center;font-size:.85rem;font-weight:500;margin:.4rem 0}.shopping-archive-body input{margin:0 .4rem 0 0}.shopping-archive-form{margin-top:.65rem}.shopping-add,.shopping-new-list{margin-top:.8rem}.shopping-add input,.shopping-new-list input{min-width:0}.shopping-new-list input{flex:1}.shopping-history{margin-top:1.2rem;border-top:1px solid #dce6de;padding-top:1rem}.shopping-history>.shopping-list{opacity:.85}.shopping-page-error:not(:empty){color:#a43b2f;font-size:.85rem;margin:.7rem 0}.shopping-action button:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){.shopping-edit-form,.shopping-add{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr)}.shopping-edit-form button,.shopping-add button{grid-column:1/-1}.shopping-new-list{display:grid;grid-template-columns:minmax(0,1fr) auto}.shopping-menu-body{right:-.2rem}.shopping-item small{display:inline;margin-left:.35rem}.shopping-board .shopping-item>span:last-child{min-width:0;overflow-wrap:anywhere}}
.shopping-board{max-width:900px;margin-inline:auto}.shopping-add{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;max-width:720px;align-items:start}.shopping-add input[name=name],.shopping-add input[name=amount]{width:100%}.shopping-note-entry{grid-column:1/-1;font-size:.82rem;color:#397965}.shopping-note-entry summary{cursor:pointer;width:max-content;font-weight:650}.shopping-note-entry textarea{display:block;width:100%;max-width:600px;margin-top:.5rem}.shopping-create{margin-top:1rem;padding-top:.8rem;border-top:1px solid #e0e9e2}.shopping-create>summary{cursor:pointer;list-style:none;width:max-content;color:#276f58;font-size:.9rem;font-weight:700}.shopping-create>summary::-webkit-details-marker{display:none}.shopping-new-list{max-width:480px}.shopping-item .shopping-note{display:block;margin:.15rem 0 0;color:#657b70;white-space:pre-wrap;overflow-wrap:anywhere;text-decoration:none}.shopping-edit-form{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;align-items:start}.shopping-edit-form input[name=name],.shopping-edit-form input[name=amount]{width:100%}.shopping-edit-form textarea{grid-column:1/-1;width:100%}.shopping-edit-form button{grid-column:3;grid-row:1}.shopping-edit-body{max-width:720px}.shopping-delete-confirm{border-top:1px solid #edf1ec;padding-top:.55rem}.shopping-delete-confirm summary{cursor:pointer;color:#944636;font-size:.85rem}.shopping-delete-confirm form{margin-top:.5rem}
@media(max-width:600px){.shopping-add,.shopping-edit-form{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}.shopping-add button,.shopping-edit-form button{grid-column:1/-1;grid-row:auto}.shopping-note-entry,.shopping-edit-form textarea{grid-column:1/-1}.shopping-board{max-width:none}.shopping-item .shopping-note{display:block}.shopping-create>summary{padding:.45rem 0}}
.brand{font-size:1.15rem}.brand small{font-size:.75rem}.person-picker{display:flex;align-items:end;gap:.6rem;margin:-.5rem 0 1rem}.person-picker select{min-width:180px}.roster-list{background:#fff;border:1px solid #dce6de;border-radius:16px;overflow:hidden;margin-bottom:1.1rem}.roster-day{display:grid;grid-template-columns:125px minmax(0,1fr);gap:1rem;padding:.85rem 1rem;border-top:1px solid #edf1ec}.roster-day:first-child{border-top:0}.roster-day>strong{color:#275844}.roster-day>div{display:flex;flex-wrap:wrap;gap:.4rem}.roster-entry{display:flex;align-items:baseline;gap:.4rem;padding:.35rem .55rem;background:#e8f2ec;border-radius:8px}.roster-entry small{color:#4c7162}.roster-import summary,.user-create summary,.user-password summary{cursor:pointer;color:#276f58;font-weight:700}.roster-import form{display:grid;gap:.7rem;margin-top:.8rem}.roster-import textarea{width:100%}.roster-import button{justify-self:start}.import-rows>div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-top:1px solid #edf1ec}.import-rows>div:first-child{border-top:0}.import-rows{margin-bottom:1rem}.user-card{max-width:860px}.user-card.inactive{opacity:.7}.user-card .section-head small{color:#71877a}.user-form{display:grid;gap:.8rem}.user-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.user-permissions{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}.user-form>button{justify-self:start}.user-password{margin-top:1rem;padding-top:.8rem;border-top:1px solid #edf1ec}.user-password form{display:flex;align-items:end;gap:.6rem;margin-top:.7rem}.user-password label{flex:1;max-width:320px}.user-create{max-width:860px}.user-create .user-form{margin-top:1rem}
@media(max-width:600px){.brand{font-size:1.05rem}.roster-day{display:block}.roster-day>strong{display:block;margin-bottom:.5rem}.roster-entry{width:100%;justify-content:space-between}.user-fields{grid-template-columns:1fr}.user-permissions{display:grid;grid-template-columns:1fr 1fr}.user-password form{display:grid}.import-rows>div{display:block}.import-rows span{display:block;margin-top:.2rem}.person-picker select{min-width:0;max-width:100%}}

.history>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid #edf1ec;padding:.7rem 0}
@media(max-width:760px){.history>div{display:block}}
.calendar-actions{display:flex;align-items:center;gap:.6rem;min-width:0}.calendar-actions .month-picker{width:auto;flex-wrap:nowrap}
.calendar-grid+.service-progress{margin-top:1.3rem}
@media(max-width:760px){.calendar-heading{display:block}.calendar-actions{width:100%;margin-top:1rem;gap:.4rem}.calendar-actions>.button-link{font-size:.82rem;padding:.58rem .6rem}.calendar-actions .month-picker{flex:1;min-width:0;width:auto;gap:.2rem}.calendar-actions .month-picker select{min-width:0;width:100%;font-size:.85rem;padding:.58rem .35rem}.calendar-actions .month-picker .button-link{font-size:1rem;padding:.5rem .55rem}}
