
:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#37352f;background:#fff;line-height:1.4}*{box-sizing:border-box}body{margin:0;background:#fff}button,input,select{font:inherit}button{border:1px solid transparent;border-radius:6px;background:#37352f;color:#fff;padding:.48rem .75rem;cursor:pointer;font-size:.9rem;font-weight:600}button:hover{background:#272622}button.secondary,.secondary{border-color:#deddd9;background:#fff;color:#37352f}button.secondary:hover,.secondary:hover{background:#f7f7f5}.danger{background:#fff1f0!important;color:#b42318!important}.icon-danger{width:32px;height:32px;padding:0;background:transparent;color:#b42318;font-size:1.25rem}.link-button{border:0;background:transparent!important;color:#6b6f76;padding:.25rem;font-weight:500}input,select{width:100%;border:1px solid #d9d9d6;border-radius:6px;padding:.55rem .65rem;background:#fff;color:#37352f}input:focus,select:focus{outline:2px solid #2383e21f;border-color:#2383e2}label{display:grid;gap:.35rem;font-size:.84rem;font-weight:600}.muted,.updated{color:#787774}.alert,.success{margin:0 0 1rem;padding:.7rem .85rem;border-radius:6px;font-size:.9rem}.alert{background:#fff1f0;color:#9f2d24}.success{background:#edf7ed;color:#287333}
.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:#f7f7f5}.login-card{width:min(390px,100%);padding:2rem;background:#fff;border:1px solid #e7e7e4;border-radius:10px;box-shadow:0 10px 30px #0000000d}.login-card form,.dialog-form{display:grid;gap:1rem}.eyebrow{margin:0;color:#787774;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:700}h1{margin:.25rem 0;font-size:1.8rem}h2{margin:0;font-size:1.2rem}h3{margin:1.4rem 0 .5rem;font-size:.85rem;color:#787774;text-transform:uppercase;letter-spacing:.04em}
.topbar{min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem max(1rem,calc((100% - 1500px)/2));border-bottom:1px solid #ededeb;background:#fff;position:sticky;top:0;z-index:10}.week-nav,.user-actions{display:flex;align-items:center;gap:.4rem}.week-nav a{text-decoration:none;color:#37352f}.week-nav>a:not(.week-today){display:grid;place-items:center;width:30px;height:30px;border-radius:5px;font-size:1.5rem}.week-nav>a:not(.week-today):hover{background:#f1f1ef}.week-today{padding:.35rem .5rem;font-weight:700}.history-badge{margin-left:.35rem;padding:.18rem .4rem;border-radius:4px;background:#f1f1ef;color:#787774;font-size:.75rem}.user-actions{font-size:.88rem;color:#787774}.container{width:min(1500px,calc(100% - 2rem));margin:1.25rem auto}.page-tools{min-height:36px;display:flex;align-items:center;gap:.45rem;margin-bottom:.7rem}.page-tools .updated{margin-left:auto;font-size:.8rem}
.schedule-wrap{overflow:auto;border:1px solid #e7e7e4;border-radius:8px}.schedule{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;table-layout:fixed}.schedule th,.schedule td{border-right:1px solid #ededeb;border-bottom:1px solid #ededeb;padding:.55rem;text-align:left;vertical-align:top}.schedule tr:last-child>*{border-bottom:0}.schedule tr>*:last-child{border-right:0}.schedule thead th{height:86px;background:#fafaf9;text-align:center;color:#787774;font-weight:500}.schedule thead th:first-child{text-align:left;vertical-align:bottom}.schedule thead th span{display:block;font-size:.78rem}.schedule thead th strong{display:block;margin:.08rem 0;font-size:1.55rem;line-height:1;color:#37352f}.schedule thead th small{display:block;font-size:.75rem;font-weight:500}.schedule th:first-child{width:180px;position:sticky;left:0;z-index:3;background:#fff}.schedule thead th:first-child{z-index:5;background:#fafaf9}.schedule td{height:112px;position:relative;background:#fff;cursor:default;transition:background .12s}.schedule td.selected-day{background:#eef6ff}.schedule .empty{text-align:center;color:#787774;padding:2.5rem}.my-row th,.my-row td{background:#f2f8f2}.inactive-row{opacity:.6}.row-person{display:flex;align-items:center;gap:.2rem}.row-select-form{min-width:0;flex:1}.row-select-form select{border-color:transparent;background:transparent;font-weight:650;padding-left:.35rem}.row-select-form select:hover{border-color:#d9d9d6}.row-person form[data-remove-row] button{width:28px;height:28px;border:0;background:transparent;color:#9b9a97;padding:0;font-size:1.1rem}.row-person form[data-remove-row] button:hover{background:#fff1f0;color:#b42318}.hours-total{display:flex;align-items:baseline;gap:.3rem;margin-top:.55rem;padding-top:.4rem;border-top:1px solid #e7e7e4;color:#37352f;font-size:.8rem;font-weight:700}.hours-total small{color:#9b9a97;font-size:.65rem;font-weight:500}.week-total{margin:.45rem .35rem 0}.week-total small:last-child{margin-left:auto}
.day-select{position:absolute;right:7px;top:7px;z-index:2;display:block}.day-select input{position:absolute;opacity:0;width:1px;height:1px}.day-select span{display:grid;place-items:center;width:20px;height:20px;border:1px solid #c9c8c4;border-radius:5px;background:#fff}.day-select input:checked+span{border-color:#2383e2;background:#2383e2}.day-select input:checked+span:after{content:"✓";color:#fff;font-size:.8rem;font-weight:800}.shift{display:flex;align-items:stretch;width:100%;min-height:34px;margin:.35rem 0;border:1px solid #d8e7f7;border-left:3px solid #2383e2;border-radius:6px;background:#f4f9fe;color:#2f3437}.day-select+.shift{margin-top:1.55rem}.shift-edit{flex:1;min-width:0;overflow:visible;border:0;background:transparent!important;color:inherit;padding:.48rem .5rem;text-align:left;white-space:normal;text-overflow:clip;line-height:1.25;font-size:.82rem;font-weight:650}.shift-edit:disabled{cursor:default}.remove-shift{display:flex;border-left:1px solid #d8e7f7}.remove-shift button{width:29px;height:100%;border:0;background:transparent;color:#787774;padding:0;font-size:1.05rem}.remove-shift button:hover{background:#e8f2fb;color:#b42318}
.below-schedule{display:flex;align-items:center;gap:.75rem;min-height:52px;padding:.65rem 0}.add-employee{border:0;background:transparent;color:#787774;padding:.4rem}.add-employee:hover{background:#f1f1ef;color:#37352f}.selection-bar{display:flex;align-items:center;gap:.55rem;margin-left:auto;padding:.35rem .4rem .35rem .7rem;border:1px solid #d8e7f7;border-radius:7px;background:#f7fbff;font-size:.86rem}.png-button{display:block;margin:0 0 1.5rem}.is-hidden{display:none!important}
dialog{width:min(620px,calc(100% - 2rem));max-height:calc(100vh - 2rem);overflow:auto;border:1px solid #deddd9;border-radius:10px;padding:1.25rem;background:#fff;box-shadow:0 20px 60px #0003;color:#37352f}dialog::backdrop{background:#0f0f0f33}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.1rem}.dialog-head .close-dialog{border:0;background:transparent;color:#787774;padding:.1rem .4rem;font-size:1.35rem}.employee-list,.template-list{display:grid;gap:.5rem}.employee-list article{display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.75rem;border:1px solid #ededeb;border-radius:8px;background:#fff}.employee-list article div{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.legacy-code{font-size:.75rem;color:#9b9a97}.inline-form,.hidden-form{display:inline}.template-list{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #ededeb}.template-list>form:not(.hidden-form){display:grid;grid-template-columns:1.25fr 1fr 1fr auto auto auto;gap:.4rem;align-items:center}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.custom-fields{display:grid;gap:.8rem}.check-row{display:flex;align-items:center;gap:.45rem;font-weight:500}.check-row input{width:17px;height:17px;margin:0}.time-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.3rem}.time-fields select{min-width:0;padding:.55rem .35rem;text-align:center}.template-time{min-width:0}
@media(max-width:760px){.topbar{position:sticky;padding:.55rem .75rem}.week-nav{min-width:0;flex:1;justify-content:space-between}.week-today{font-size:.88rem}.user-actions>span{display:none}.container{width:calc(100% - 1rem);margin:.7rem auto}.page-tools{flex-wrap:wrap}.page-tools button{flex:1}.page-tools .updated{width:100%;margin:0}.schedule-wrap{scroll-snap-type:x proximity;box-shadow:inset -12px 0 14px -16px #0008}.schedule{min-width:1160px}.schedule th:first-child{width:150px}.schedule thead th{height:76px}.schedule thead th:not(:first-child),.schedule td{width:144px;scroll-snap-align:start}.schedule thead th span{font-size:.7rem}.schedule thead th strong{font-size:1.4rem}.schedule td{height:108px;padding:.48rem}.row-person{align-items:flex-start}.row-select-form select{font-size:.86rem;padding:.45rem .25rem}.week-total{display:grid;grid-template-columns:1fr auto;margin-top:.6rem}.week-total small:last-child{grid-column:1/-1;margin:0}.shift{min-height:40px;margin:.45rem 0;border-radius:7px}.shift-edit{font-size:.82rem;padding:.6rem .5rem}.remove-shift button{width:34px}.hours-total{margin-top:.6rem;padding-top:.45rem}.selection-bar{position:fixed;left:.5rem;right:.5rem;bottom:.5rem;z-index:8;margin:0;box-shadow:0 8px 24px #0002}.png-button{margin-bottom:4.5rem}dialog{width:100%;max-width:none;max-height:90dvh;margin:auto 0 0;border-radius:16px 16px 0 0;padding:1.1rem}dialog::backdrop{background:#0f0f0f66}.employee-list{gap:.7rem}.employee-list article{display:grid;grid-template-columns:1fr;gap:.65rem;padding:.85rem}.employee-list article div{display:grid;grid-template-columns:1fr 1fr;width:100%}.employee-list article div button{width:100%}.employee-list article .legacy-code{grid-column:1/-1}.template-list>form:not(.hidden-form){grid-template-columns:1fr 1fr;padding:.8rem;border:1px solid #ededeb;border-radius:8px}.template-list>form:not(.hidden-form)>input[name="label"]{grid-column:1/-1}.template-list .check-row{grid-column:1/-1}.template-time{display:block}.form-row{gap:.5rem}.time-fields{gap:.2rem}.time-fields select{padding:.65rem .25rem}}
@media(max-width:760px){
  .schedule thead th{height:88px;padding:.6rem .35rem;background:#f7f9fc;border-bottom:2px solid #deddd9}
  .schedule thead th span{font-size:.8rem;font-weight:650}
  .schedule thead th strong{font-size:1.65rem;color:#2383e2}
  .schedule thead th small{font-size:.78rem}
  .row-select-form select{font-size:1.03rem;line-height:1;height:34px;padding:.25rem}
  .hours-total>span{font-size:1.35rem}
  .hours-total small{font-size:.7rem}
}
