: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%}}
