:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#1d3239;background:#f4f2eb;font-synthesis:none;--ink:#1d3239;--muted:#58666a;--line:#d6dcd5;--teal:#133c41;--accent:#126653;--paper:#fffefa;--amber:#9c5e16}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{border:1px solid #b9c7bf;border-radius:5px;background:#fffefa;color:var(--ink);font-size:.85rem;font-weight:650;padding:.65rem .85rem;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:#edf4ed;border-color:#5f8175}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--teal);color:#fff;border-color:var(--teal);padding:.9rem 1.15rem;font-size:.96rem}button.primary:hover{background:#1b5657}button.primary span{margin-left:1rem}button.quiet{background:transparent;border-color:transparent;font-weight:500;text-decoration:underline;text-underline-offset:3px}button.small{font-size:.8rem;padding:.5rem .65rem}input,select{min-width:0;border:1px solid #b7c4bd;border-radius:4px;background:#fff;color:var(--ink);padding:.5rem .55rem;min-height:38px}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;min-height:17px;cursor:pointer}input[type=number]{font-variant-numeric:tabular-nums}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #bd751f;outline-offset:3px}input:invalid{border-color:#b76a37}a{color:var(--teal)}[hidden]{display:none!important}.skip-link{position:fixed;left:1rem;top:-80px;background:#fff;padding:.7rem;z-index:10}.skip-link:focus{top:1rem}.masthead{display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:auto;padding:1.5rem 2.5rem;border-bottom:1px solid var(--line);gap:1rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink);font-size:1.3rem;font-weight:750;letter-spacing:-.04em}.brand small{display:block;font-size:.55rem;letter-spacing:.16em;font-weight:600;margin-top:.3rem;color:var(--muted)}.brand-mark{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--teal);color:#f5ca84;border-radius:9px;letter-spacing:-.13em;font-size:1.3rem;padding-right:.18em}.brand-mark span{color:#b5d9cb}.privacy-note{font-size:.76rem;color:var(--muted)}.privacy-note span{margin-right:.35rem;color:var(--accent)}main{max-width:1320px;margin:auto;padding:0 2.5rem}.intro{display:flex;justify-content:space-between;align-items:center;gap:3rem;padding:3.3rem 0 2.5rem}.eyebrow,.step-label{font-size:.65rem;font-weight:750;letter-spacing:.13em;color:var(--accent);margin:0 0 .7rem}.intro h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.3rem,3.6vw,3.65rem);line-height:1.06;letter-spacing:-.04em;margin:0 0 1rem}.lede{font-size:.98rem;max-width:600px;color:var(--muted);line-height:1.6;margin:0}.boundary-note{flex:0 0 220px;border-left:2px solid #c3d0c2;padding-left:1.7rem;font-size:.8rem;color:var(--muted);line-height:1.6}.note-number{font-family:Georgia,serif;font-size:2.1rem;color:var(--teal)}.boundary-note p{margin:.5rem 0}.plan-bar{background:#e7ece3;border:1px solid #d3dccf;border-radius:7px;padding:1.1rem 1.3rem;display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1.4rem;margin-bottom:1.5rem}.plan-name{flex:1 1 290px;font-size:.6rem;letter-spacing:.1em;font-weight:750;color:var(--muted)}.plan-name input{display:block;width:100%;margin-top:.35rem;font-size:1rem;font-weight:650;letter-spacing:normal;background:#f7f9f3}.file-actions{display:flex;gap:.35rem;flex-wrap:wrap}.save-state{flex-basis:100%;font-size:.7rem;margin:0;color:#526457}.save-state[data-dirty=true]{color:#7c4a11}.setup-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:1.5rem;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:1.4rem;min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.section-heading h2{font-size:1.15rem;font-weight:700;letter-spacing:-.025em;margin:0}.step-label{font-size:.58rem;margin-bottom:.45rem;color:#788175}.section-help{font-size:.78rem;color:var(--muted);line-height:1.6;margin:.75rem 0 1.1rem}.volunteer-row{display:grid;grid-template-columns:minmax(100px,1fr) 85px auto;align-items:end;gap:.65rem;padding:.8rem 0;border-bottom:1px solid #e5e8df}.volunteer-row:first-child{padding-top:.2rem}label>span{display:block;font-size:.65rem;color:var(--muted);font-weight:600;margin-bottom:.3rem}label input{width:100%}.remove-button{font-size:.68rem;font-weight:500;padding:.6rem .25rem;border:0;background:transparent;color:#866048;text-decoration:underline;text-underline-offset:3px}.counter{font-size:.66rem;color:#6a786d;margin:1rem 0 0}.shift-card{background:#f7f7f1;border:1px solid #e0e5da;border-radius:5px;padding:.7rem .85rem;margin-bottom:.6rem}.shift-title-row{display:flex;align-items:end;gap:.8rem;margin-bottom:.65rem}.shift-title-row>label{flex:1}.shift-title-row input{background:#fffefa}.shift-fields{display:grid;grid-template-columns:1.1fr 1fr .8fr .8fr;gap:.5rem}.shift-fields input,.shift-fields select{width:100%;font-size:.75rem;padding:.45rem .4rem}.shift-fields label>span{font-size:.6rem}.preferences-panel{margin-top:1.5rem}.text-badge{display:inline-block;background:#edf2e9;color:#375947;border:1px solid #d5e0d0;border-radius:20px;padding:.38rem .65rem;font-size:.62rem;font-weight:650;white-space:nowrap}.table-scroll{max-width:100%;overflow-x:auto;border:1px solid #d7dfd2;border-radius:5px;overscroll-behavior-x:contain}table{border-collapse:collapse;width:100%;text-align:left;font-size:.76rem}th{font-weight:650}thead{background:#edf1e9;color:#506052}thead th{font-size:.65rem;padding:.85rem .8rem;white-space:nowrap;border-bottom:1px solid #d7dfd2}tbody th,tbody td{padding:.8rem;border-bottom:1px solid #e3e8dd}tbody tr:last-child>*{border-bottom:0}tbody th{min-width:115px;background:#fafbf5;overflow-wrap:anywhere}tbody td{font-variant-numeric:tabular-nums}.preference-cell{display:flex;flex-direction:column;gap:.45rem;min-width:130px}.check-field{display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer}.check-field>span{margin:0;font-size:.67rem}.check-field input{flex:0 0 17px;margin:0}.weight-field{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.weight-field>span{margin:0;font-size:.64rem}.weight-field input{width:48px;min-height:29px;height:29px;padding:.2rem;font-size:.75rem;text-align:center}.lock-field>span{font-weight:500;color:#7f6f55}.locked-cell{background:#fff1d6}.formula-note{display:flex;gap:1.5rem;background:#f3f4ec;border-left:3px solid #b3bfa7;margin-top:1rem;padding:.8rem 1rem;font-size:.74rem;line-height:1.6;color:var(--muted)}.formula-note strong{flex:0 0 150px;color:#385847}.solve-bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.8rem .1rem 1rem}.solve-bar h2{font-size:1rem;margin:0 0 .4rem;letter-spacing:-.02em}.solve-bar p{margin:0;color:var(--muted);font-size:.75rem;line-height:1.5}.solve-actions{display:flex;gap:.5rem;flex-shrink:0}.status{border:1px solid #c8d5c8;background:#e9eee3;padding:.9rem 1rem;border-radius:5px;font-size:.8rem;line-height:1.6;color:#3c5546;margin-bottom:1.5rem;overflow-wrap:anywhere}.status[data-tone=success]{border-color:#a4c2b4;background:#e3f1e8;color:#20583e}.status[data-tone=warning]{border-color:#dfc8a2;background:#fff2da;color:#795021}.results{margin-bottom:1.5rem}.results h3{font-size:1rem;letter-spacing:-.025em;margin:0 0 .8rem}#result-explanation{margin:1rem 0;font-size:.83rem;line-height:1.65}#result-explanation p{margin:.7rem 0}.result-reasons{padding-left:1.2rem;color:var(--muted)}.result-reasons:empty{display:none}.fine-print{font-size:.71rem;color:var(--muted);line-height:1.55}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.2rem 0 1.6rem}.comparison-card{border:1px solid #d3dcd0;border-radius:5px;padding:1.1rem;background:#f9faf4}.comparison-card.selected{border:2px solid #528572;padding:calc(1.1rem - 1px);background:#f0f6eb}.comparison-card .eyebrow{font-size:.57rem;margin-bottom:.55rem}.comparison-card h3{font-size:.95rem}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:1rem .8rem;margin:1rem 0}.metric{display:flex;flex-direction:column;gap:.3rem}.metric span{font-size:.65rem;color:var(--muted)}.metric strong{font-family:Georgia,serif;font-size:1.65rem;font-weight:500;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--teal)}.comparison-card button{font-size:.74rem;width:100%;margin-top:.25rem}.selected-button{border-color:#8aaa94;color:#2d6449;background:#e4efde}.schedule-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-top:1.8rem}.schedule-heading h3{margin-bottom:.4rem}.schedule-heading .section-help{margin:.4rem 0 1rem}.export-actions{display:flex;gap:.5rem;flex-shrink:0;margin-bottom:1rem}.export-actions button{font-size:.73rem}.lock-button{font-size:.65rem;white-space:nowrap;padding:.45rem .6rem}.lock-button.locked{background:#fff0d4;border-color:#d7b77d;color:#805315}#schedule-table td{font-size:.72rem}#schedule-table td:nth-child(2){min-width:180px}.empty-state{font-size:.8rem;color:var(--muted);background:#f5f6ef;padding:1rem;border:1px dashed #c5d0bf;border-radius:5px;line-height:1.6}footer{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1.2rem 0 2rem;color:#677466;font-size:.65rem;line-height:1.5}#print-root{display:none}
@media(max-width:980px){.masthead{padding:1.2rem 1.5rem}main{padding:0 1.5rem}.intro{gap:2rem}.setup-grid{grid-template-columns:1fr}.volunteer-row{grid-template-columns:1fr 110px 70px}.shift-fields{grid-template-columns:1.1fr 1fr 1fr 1fr}.solve-bar{align-items:start;flex-direction:column;gap:1rem}.solve-actions{align-self:stretch}.solve-actions .primary{flex:1}.section-heading{align-items:start}.text-badge{white-space:normal;text-align:center}.formula-note{gap:.75rem}.formula-note strong{flex-basis:120px}.schedule-heading{flex-direction:column;align-items:start;gap:0}}
@media(max-width:560px){.masthead{padding:1rem}.brand{font-size:1.15rem}.brand-mark{width:35px;height:35px}.privacy-note{max-width:110px;text-align:right;font-size:.63rem;line-height:1.5}main{padding:0 1rem}.intro{display:block;padding:2rem 0 1.7rem}.intro h1{font-size:2.5rem}.lede{font-size:.88rem}.boundary-note{display:none}.eyebrow{font-size:.57rem}.plan-bar{padding:.85rem;gap:.65rem}.plan-name{flex-basis:100%}.file-actions{gap:.3rem}.file-actions button{font-size:.7rem;padding:.55rem .6rem}.save-state{font-size:.64rem}.panel{padding:1rem}.section-heading h2{font-size:1rem}.step-label{font-size:.53rem}.section-help{font-size:.72rem}.volunteer-row{grid-template-columns:minmax(0,1fr) 70px 48px;gap:.45rem}.volunteer-row input{font-size:.8rem}.remove-button{font-size:.61rem}.shift-card{padding:.65rem}.shift-fields{grid-template-columns:1fr 1fr;gap:.6rem}.shift-fields input,.shift-fields select{font-size:.8rem}.preferences-panel .section-heading{display:block}.preferences-panel .text-badge{margin-top:.7rem}.formula-note{display:block;font-size:.7rem;padding:.7rem}.formula-note strong{display:block;margin-bottom:.3rem}.solve-bar h2{font-size:.96rem;line-height:1.35}.solve-bar p{font-size:.7rem}.solve-actions{flex-wrap:wrap}.solve-actions .primary{font-size:.85rem;white-space:normal}.status{font-size:.74rem;padding:.8rem}.results>.section-heading{display:block}.results .text-badge{margin-top:.7rem}.comparison{grid-template-columns:1fr;gap:.7rem}.comparison-card{padding:1rem}.comparison-card.selected{padding:calc(1rem - 1px)}.metric strong{font-size:1.55rem}.schedule-heading h3{font-size:.95rem}footer{display:block;font-size:.61rem}footer span{display:block;margin-bottom:.5rem}}
@media print{body{background:#fff;color:#000;font-family:Arial,sans-serif}#app,.skip-link{display:none!important}#print-root{display:block!important}#print-root h1{font-size:22px}#print-root h2{font-size:15px}#print-root p{font-size:11px;line-height:1.5}#print-root table{width:100%;font-size:10px;border-collapse:collapse}#print-root th,#print-root td{padding:6px;border:1px solid #bbb;background:#fff;color:#000;min-width:0}#print-root tr{break-inside:avoid}#print-root thead{display:table-header-group}#print-root section{break-inside:auto}@page{size:A4 landscape;margin:12mm}}
