@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{color:#25342d;font-synthesis:none;text-rendering:optimizelegibility;--ink:#25342d;--muted:#75817a;--faint:#9da8a1;--line:#e4e9e4;--line-strong:#d6dfd7;--paper:#fff;--canvas:#f5f7f4;--mint:#ddf3e7;--mint-strong:#52a77b;--mint-deep:#19734b;--lavender:#ece8fa;--lavender-strong:#8876bf;--coral:#fce8e1;--coral-deep:#c2664e;--shadow:0 18px 50px #233a2c14, 0 2px 5px #233a2c08;background:#f5f7f4;font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--canvas);min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button,input,select,textarea{outline-color:var(--mint-strong)}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffc7;justify-content:space-between;align-items:center;height:74px;padding:0 42px;display:flex}.brand-lockup,.header-actions,.calendar-status,.month-actions,.month-picker,.save-status,.setup-progress,.progress-step,.button,.legend,.schedule-tip,.modal-callout{align-items:center;display:flex}.brand-lockup{min-width:0}.brand-logo{width:215px;max-width:100%;height:auto;display:block}.header-actions{gap:23px}.save-status{color:var(--muted);gap:7px;font-size:12px}.save-dot{background:var(--mint-strong);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #52a77b1f}.app-main{max-width:1660px;margin:0 auto;padding:39px 42px 65px}.page-intro{justify-content:space-between;align-items:end;gap:30px;margin:0 0 31px;display:flex}.eyebrow{color:var(--mint-deep);letter-spacing:.15em;text-transform:uppercase;margin:0 0 7px;font-size:10px;font-weight:700;line-height:1}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink);font-family:Manrope,sans-serif}.page-intro h1{letter-spacing:-.045em;max-width:620px;margin:0;font-size:clamp(26px,3vw,38px);line-height:1.08}.intro-copy{max-width:570px;color:var(--muted);margin:13px 0 0;font-size:14px;line-height:1.55}.setup-progress{border:1px solid var(--line);color:var(--faint);white-space:nowrap;background:#ffffffa6;border-radius:14px;gap:11px;padding:10px 14px;font-size:11px}.progress-step{gap:6px}.progress-step span{border:1px solid var(--line-strong);border-radius:50%;place-items:center;width:19px;height:19px;font-size:10px;display:grid}.progress-step.active{color:var(--ink);font-weight:700}.progress-step.active span{color:var(--mint-deep);border-color:var(--mint-strong);background:var(--mint)}.progress-step.complete{color:var(--mint-deep)}.progress-step.complete span{color:#fff;border-color:var(--mint-strong);background:var(--mint-strong)}.progress-line{background:var(--line-strong);width:22px;height:1px}.workspace-layout{grid-template-columns:342px minmax(0,1fr);align-items:start;gap:25px;display:grid}.control-rail{gap:17px;display:grid}.control-card,.calendar-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:18px}.control-card{padding:21px 20px 20px}.card-heading{align-items:center;gap:10px;display:flex}.heading-icon{border-radius:11px;place-items:center;width:33px;height:33px;display:grid}.heading-icon.mint{color:var(--mint-deep);background:var(--mint)}.heading-icon.lavender{color:var(--lavender-strong);background:var(--lavender)}.card-heading h2{letter-spacing:-.02em;margin:0;font-size:15px}.card-heading .eyebrow{margin-bottom:3px;font-size:9px}.count-pill{min-width:24px;color:var(--mint-deep);text-align:center;background:#eff8f2;border-radius:8px;margin-left:auto;padding:4px 7px;font-size:11px;font-weight:700}.card-copy{color:var(--muted);margin:13px 0 15px;font-size:12px;line-height:1.48}.add-row{gap:7px;display:flex}input,select,textarea{color:var(--ink);border:1px solid var(--line-strong);background:#fff;border-radius:9px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--mint-strong);outline:none;box-shadow:0 0 0 3px #52a77b1f}.add-row input{flex:1;min-width:0;padding:10px 11px;font-size:12px}.icon-button{width:34px;height:34px;color:var(--muted);border:1px solid var(--line-strong);background:#fff;border-radius:9px;flex:none;place-items:center;padding:0;transition:all .15s;display:inline-grid}.icon-button:hover{color:var(--ink);background:#f9fbf9;border-color:#aebbb1}.icon-button.filled{color:#fff;border-color:var(--ink);background:var(--ink)}.icon-button.filled:hover{background:#405248}.form-error{color:var(--coral-deep);margin:8px 0 0;font-size:11px;line-height:1.4}.empty-mini,.empty-panel{color:var(--faint);border:1px dashed var(--line-strong);border-radius:10px;align-items:center;gap:9px;font-size:11px;line-height:1.45;display:flex}.empty-mini{margin-top:14px;padding:11px}.empty-dot{background:var(--line-strong);border-radius:50%;flex:none;width:7px;height:7px}.employee-list{gap:5px;margin-top:13px;display:grid}.employee-row{background:#fbfcfb;border:1px solid #0000;border-radius:9px;align-items:center;gap:6px;min-height:38px;padding:4px 5px 4px 6px;display:flex}.employee-row:hover{border-color:var(--line)}.drag-handle{color:#bdc7c0;display:grid}.employee-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.row-actions,.entry-actions{align-items:center;gap:1px;display:flex}.small-action{color:#96a29a;background:0 0;border:0;border-radius:6px;place-items:center;width:26px;height:26px;padding:0;display:grid}.small-action:hover{color:var(--ink);background:#edf3ee}.small-action.danger:hover{color:var(--coral-deep);background:var(--coral)}.small-action.accent{color:var(--mint-deep)}.inline-input{flex:1;min-width:0;padding:6px 7px;font-size:12px}.template-card{padding-bottom:17px}.weekday-tabs{background:#f2f5f2;border-radius:10px;grid-template-columns:repeat(7,1fr);gap:3px;margin:18px 0 17px;padding:3px;display:grid}.weekday-tab{min-width:0;color:var(--faint);background:0 0;border:0;border-radius:8px;padding:7px 2px 6px;font-size:10px;font-weight:600;position:relative}.weekday-tab:hover{color:var(--ink)}.weekday-tab.active{color:var(--ink);background:#fff;box-shadow:0 2px 6px #22362a14}.weekday-tab b{color:#0000;background:var(--mint-strong);border-radius:50%;width:5px;height:5px;position:absolute;top:3px;right:3px;overflow:hidden}.template-day-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px;display:flex}.template-day-head h3{letter-spacing:-.015em;margin:0 0 3px;font-size:13px}.template-day-head p{color:var(--muted);margin:0;font-size:10px}.button{border:1px solid #0000;border-radius:9px;justify-content:center;gap:7px;min-height:35px;padding:0 13px;font-size:12px;font-weight:700;transition:all .15s}.button.primary{color:#fff;border-color:var(--ink);background:var(--ink);box-shadow:0 5px 12px #25342d1f}.button.primary:hover{background:#415249}.button.secondary{color:var(--ink);border-color:var(--line-strong);background:#fff}.button.secondary:hover{background:#fafcfb;border-color:#aebbb1}.button.ghost{color:var(--muted);background:0 0;padding-left:7px;padding-right:7px}.button.ghost:hover{color:var(--ink);background:#eef3ef}.button.compact{min-height:30px;padding:0 9px;font-size:10px}.danger-text{color:var(--coral-deep)!important}.empty-panel{text-align:center;justify-content:center;min-height:71px;margin-bottom:16px;padding:13px}.template-entries{gap:6px;margin-bottom:15px;display:grid}.template-entry{grid-template-columns:1.15fr .7fr 1.45fr auto;align-items:center;gap:4px;display:grid}.summary-entry{border:1px solid var(--line);background:#fbfcfb;border-radius:10px;justify-content:space-between;min-width:0;padding:6px 6px 6px 9px;display:flex}.entry-summary{align-items:center;gap:7px;min-width:0;font-size:11px;display:flex;overflow:hidden}.entry-summary strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.entry-kind{color:var(--mint-deep);background:var(--mint);text-transform:uppercase;border-radius:5px;flex:none;padding:3px 6px;font-size:8px;font-weight:700}.entry-kind.off-kind{color:var(--coral-deep);background:var(--coral)}.entry-label{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.template-entry select,.template-entry input,.modal-entry select,.modal-entry input{width:100%;min-width:0;height:32px;padding:0 7px;font-size:10px}.template-entry .kind-select,.modal-entry .kind-select{color:var(--muted)}.time-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;min-width:0;display:grid}.time-picker select{padding-left:5px;padding-right:3px}.field-label{color:var(--ink);justify-content:space-between;margin:0 0 6px;font-size:10px;font-weight:700;display:flex}.field-label span{color:var(--faint);font-weight:500}.note-input{resize:vertical;width:100%;padding:8px 9px;font-size:11px;line-height:1.4}.schedule-area{min-width:0}.month-toolbar{justify-content:space-between;align-items:end;gap:20px;margin:0 0 17px;display:flex}.month-title-group h2{letter-spacing:-.035em;margin:0;font-size:22px}.month-title-group .eyebrow{margin-bottom:6px}.month-actions{gap:8px}.month-picker{border:1px solid var(--line-strong);background:#fff;border-radius:10px;gap:4px;padding:3px}.month-picker .icon-button{border:0;width:28px;height:28px}.month-picker select,.month-picker input{background:0 0;border:0;border-radius:6px;height:28px;padding:0 5px;font-size:11px;font-weight:700}.month-picker select{max-width:84px}.month-picker input{width:53px}.calendar-card{overflow:hidden}.calendar-toolbar{justify-content:space-between;align-items:center;padding:21px 24px 18px;display:flex}.calendar-toolbar h2{letter-spacing:-.03em;margin:0;font-size:18px}.calendar-toolbar .eyebrow{margin-bottom:5px}.calendar-status{color:var(--muted);gap:7px;font-size:11px}.status-dot{background:var(--mint-strong);border-radius:50%;width:7px;height:7px}.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekday{color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);letter-spacing:.07em;text-transform:uppercase;background:#f9fbf9;padding:10px 12px;font-size:10px;font-weight:700}.calendar-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:153px;padding:11px 11px 24px;transition:background .15s;position:relative}.calendar-cell[role=button]{cursor:pointer}.calendar-cell[role=button]:hover{z-index:1;background:#fcfefc;box-shadow:inset 0 0 0 2px #52a77b30}.calendar-cell:focus-visible{z-index:2;outline:2px solid var(--mint-strong);outline-offset:-2px}.weekend-cell{background:#fdfdfc}.custom-cell{background:#fbfefc}.cell-topline{justify-content:space-between;align-items:center;min-height:19px;display:flex}.date-number{color:var(--ink);font-family:Manrope,sans-serif;font-size:13px;font-weight:800}.edited-label{color:var(--mint-deep);align-items:center;gap:3px;font-size:8px;font-weight:700;display:flex}.cell-content{align-content:start;gap:4px;margin-top:10px;display:grid}.calendar-entry{align-items:baseline;gap:4px;min-width:0;font-size:10px;line-height:1.22;display:flex}.calendar-employee{color:#33453b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.calendar-employee:after{content:":";margin-left:1px}.calendar-value{color:#4f5e55;white-space:nowrap}.off-entry .calendar-value{color:var(--coral-deep);font-weight:700}.calendar-note{color:#65746b;border-top:1px dashed var(--line-strong);margin-top:5px;padding-top:6px;font-size:9px;font-style:italic;line-height:1.3}.cell-placeholder{color:#bdc7c0;padding-top:8px;font-size:10px;display:block}.cell-edit-hint{color:#b3beb6;opacity:0;align-items:center;gap:3px;font-size:8px;transition:opacity .15s;display:flex;position:absolute;bottom:8px;right:10px}.calendar-cell:hover .cell-edit-hint,.calendar-cell:focus-visible .cell-edit-hint{opacity:1}.calendar-footer{justify-content:space-between;gap:15px;padding:14px 22px;display:flex}.legend{color:var(--faint);gap:7px;font-size:10px}.legend-swatch{background:#b5dcc5;border-radius:50%;width:7px;height:7px}.legend-dot{border:1px solid var(--line-strong);background:#fff;border-radius:50%;width:7px;height:7px}.schedule-tip{color:var(--muted);background:#f2faf5;border:1px solid #dcebe1;border-radius:12px;gap:10px;margin-top:16px;padding:12px 15px;font-size:11px}.tip-icon{width:28px;height:28px;color:var(--mint-deep);background:var(--mint);border-radius:8px;flex:none;place-items:center;display:grid}.schedule-tip strong{color:var(--ink);margin-right:4px}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1b272061;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.day-modal{background:#fff;border:1px solid #fff9;border-radius:19px;flex-direction:column;width:min(620px,100%);max-height:min(750px,100vh - 40px);display:flex;overflow:hidden;box-shadow:0 30px 80px #182a1e3d}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:20px;padding:24px 25px 18px;display:flex}.modal-header h2{letter-spacing:-.035em;margin:0;font-size:19px}.modal-header .eyebrow{margin-bottom:7px}.modal-body{padding:20px 25px 24px;overflow-y:auto}.modal-callout{color:var(--mint-deep);background:#f2faf5;border:1px solid #dcebe1;border-radius:9px;gap:8px;margin-bottom:17px;padding:10px 12px;font-size:11px}.modal-entries{gap:7px;margin-bottom:19px;display:grid}.modal-entry{grid-template-columns:1.2fr .7fr 1.45fr 29px;align-items:center;gap:6px;display:grid}.template-entry-modal{width:min(460px,100%)}.template-entry-modal-body{padding-bottom:20px}.template-modal-fields{gap:16px;display:grid}.modal-full-select,.modal-full-input{width:100%;height:38px;padding:0 10px;font-size:12px}.template-modal-fields .time-picker{gap:6px;width:100%}.template-modal-fields .time-picker select{height:38px;padding:0 10px;font-size:12px}.add-modal-row{justify-self:start;min-height:30px;margin-top:2px;font-size:10px}.modal-footer{border-top:1px solid var(--line);background:#fcfdfc;justify-content:space-between;align-items:center;gap:15px;padding:15px 25px;display:flex}.footer-actions{gap:7px;display:flex}.toast{z-index:20;color:#fff;background:var(--ink);border-radius:10px;align-items:center;gap:8px;padding:11px 14px;font-size:12px;font-weight:600;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 30px #192b2033}.toast svg{color:#a4e1be}.print-only{display:none}@media (width<=1180px){.app-header,.app-main{padding-left:25px;padding-right:25px}.workspace-layout{grid-template-columns:300px minmax(0,1fr);gap:17px}.calendar-cell{min-height:137px;padding-left:8px;padding-right:8px}.calendar-entry{font-size:9px}}@media (width<=930px){.page-intro{flex-direction:column;align-items:start}.setup-progress{justify-content:center;align-self:stretch}.workspace-layout{grid-template-columns:1fr}.control-rail{grid-template-columns:minmax(270px,.8fr) minmax(360px,1.2fr);align-items:start}.calendar-cell{min-height:132px}}@media (width<=680px){.app-header{align-items:start;gap:15px;height:auto;padding:16px 17px}.brand-logo{width:170px}.header-actions{flex-direction:column;align-items:end;gap:8px}.header-actions .button{min-height:31px;padding:0 9px;font-size:10px}.save-status{font-size:9px}.app-main{padding:27px 12px 40px}.page-intro{margin-bottom:22px}.page-intro h1{font-size:28px}.intro-copy{font-size:12px}.control-rail{grid-template-columns:1fr}.month-toolbar{flex-direction:column;align-items:start;gap:13px}.month-actions{flex-wrap:wrap;width:100%}.month-picker{flex:1;justify-content:space-between}.month-picker select{flex:1;max-width:none}.calendar-toolbar{padding:16px 14px}.calendar-footer{padding:11px 13px}.calendar-footer .legend:last-child{display:none}.calendar-weekday{text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:8px 3px;font-size:8px;overflow:hidden}.calendar-cell{min-height:100px;padding:7px 5px 20px}.date-number{font-size:11px}.calendar-entry{text-overflow:ellipsis;white-space:nowrap;font-size:8px;line-height:1.3;display:block;overflow:hidden}.calendar-employee,.calendar-value{display:inline}.calendar-note{text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.cell-edit-hint{display:none}.edited-label{font-size:0}.edited-label svg{width:10px;height:10px}.template-entry{border:1px solid var(--line);background:#fbfcfb;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"employee actions""kind time";gap:6px;padding:7px}.template-entry>select:first-child{grid-area:employee}.template-entry>.kind-select{grid-area:kind;max-width:92px}.template-entry>input,.template-entry>.time-picker{grid-area:time}.template-entry>.entry-actions{grid-area:actions;justify-self:end}.time-picker{gap:2px}.time-picker select{padding-left:3px;padding-right:2px;font-size:9px}.entry-actions{gap:0}.modal-backdrop{padding:9px}.modal-header,.modal-body,.modal-footer{padding-left:17px;padding-right:17px}.modal-entry{border:1px solid var(--line);background:#fbfcfb;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"employee remove""kind time";gap:6px;padding:7px}.modal-entry>select:first-child{grid-area:employee}.modal-entry>.kind-select{grid-area:kind;max-width:92px}.modal-entry>input,.modal-entry>.time-picker{grid-area:time}.modal-entry>.small-action{grid-area:remove;justify-self:end}.modal-footer{flex-direction:column;align-items:end}.modal-footer>span,.modal-footer>button{align-self:start}}@media (width<=480px){.app-header{gap:8px;padding:12px}.brand-logo{width:150px}.header-actions{gap:5px}.save-status{display:none}.header-actions .button{white-space:nowrap}.setup-progress{gap:6px;padding-left:8px;padding-right:8px;font-size:9px}.progress-line{width:12px}.progress-step{gap:4px}.progress-step span{width:17px;height:17px}}@media print{@page{size:landscape;margin:.22in}:root{background:#fff}html,body,#root,.app-shell{background:#fff;min-width:0;height:auto;min-height:0}body{overflow:visible}.no-print{display:none!important}.print-only{display:block}.app-main{max-width:none;padding:0}.workspace-layout,.schedule-area{display:block}.calendar-card{width:100%;box-shadow:none;break-inside:avoid;page-break-inside:avoid;border:0;border-radius:0;overflow:visible}.print-heading{justify-content:space-between;align-items:flex-start;height:.72in;margin:0 0 4px;padding-top:.03in;display:flex}.print-kicker{color:#4d6758;letter-spacing:.11em;text-transform:uppercase;margin:0 0 4px;font-size:9pt;font-weight:700;line-height:1.1}.print-heading h1{letter-spacing:-.04em;margin:0;font-size:23pt;line-height:1.02}.print-generated{color:#819087;margin:.18in 0 0;font-size:8pt}.calendar-grid{break-inside:avoid;page-break-inside:avoid;border-top:.75pt solid #aebbb1;border-left:.75pt solid #aebbb1;grid-template-rows:.32in repeat(6,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));height:6.2in}.calendar-weekday{color:#536159;background:#f3f6f3;border-bottom:.75pt solid #aebbb1;border-right:.75pt solid #aebbb1;min-height:0;padding:5px 8px;font-size:7pt}.calendar-cell{cursor:default;border-bottom:.75pt solid #aebbb1;border-right:.75pt solid #aebbb1;height:auto;min-height:0;padding:5px 6px 4px;overflow:hidden}.calendar-cell[role=button]:hover{box-shadow:none}.date-number{font-size:8.5pt}.calendar-entry{gap:2px;font-size:6.5pt;line-height:1.12}.calendar-note{-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-top:3px;font-size:6pt;line-height:1.15;display:-webkit-box;overflow:hidden}.cell-topline{min-height:12px}.edited-label{display:none!important}.weekend-cell{background:#fdfdfc}}
