@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{color:#1e302c;font-synthesis:none;--green:#173f36;--green-2:#24594b;--cream:#f6f3ec;--gold:#e9a23b;--coral:#d96c52;--ink:#1e302c;--muted:#6d7772;--line:#dedbd1;background:#f6f3ec;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Fraunces,serif;line-height:1.05}h1{letter-spacing:-.04em;font-size:clamp(2.4rem,5vw,4.8rem)}h2{font-size:clamp(1.7rem,3vw,2.4rem)}a{color:inherit}.shell{width:min(1180px,100% - 40px);margin-inline:auto}.narrow{width:min(1000px,100% - 40px)}.eyebrow{color:#af671d;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.65rem;font-size:.74rem;font-weight:700}.eyebrow.light{color:#f1b85f}.muted{color:var(--muted)}.brand{align-items:center;gap:.7rem;font-family:Fraunces,serif;font-size:1.1rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3e%3crect%20width='100'%20height='100'%20rx='22'%20fill='%23173f36'%20/%3e%3crect%20x='14'%20y='30'%20width='17'%20height='50'%20rx='3'%20fill='%23d96c52'%20/%3e%3crect%20x='35'%20y='22'%20width='17'%20height='58'%20rx='3'%20fill='%23e9a23b'%20/%3e%3crect%20x='56'%20y='28'%20width='17'%20height='52'%20rx='3'%20fill='%23f6f3ec'%20transform='rotate(13%2073%2080)'%20/%3e%3c/svg%3e") 50%/contain no-repeat;flex:none;width:36px;height:36px}.button{border:0;border-radius:8px;padding:.85rem 1.15rem;font-weight:700;transition:transform .15s,background .15s,opacity .15s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{color:#fff;background:var(--green)}.button.accent{color:#24342e;background:var(--gold)}.button.subtle{color:var(--green);background:#e9efeb}.button.text{color:var(--muted);background:0 0}.button.danger{color:#9c3c2a}.button.small{padding:.6rem .9rem}.button.large{padding:1rem 1.5rem}.button.full{width:100%}.button-row{gap:.4rem;display:flex}label{color:#33443f;gap:.42rem;font-size:.83rem;font-weight:700;display:grid}.field-hint{color:var(--muted);font-size:.76rem;font-weight:400}input,textarea{width:100%;color:var(--ink);resize:vertical;background:#fff;border:1px solid #cbcfc9;border-radius:7px;outline:none;padding:.78rem .85rem}input:focus,textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px #24594b1c}.message{border-radius:7px;padding:.75rem .9rem;font-size:.87rem}.message.error{color:#8f3525;background:#fae4de}.center-page{place-items:center;min-height:100vh;padding:2rem;display:grid}.center-block{place-items:center;min-height:300px;display:grid}.loader{border:3px solid #ccd5d0;border-top-color:var(--green);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.light-loader{border-color:#fff #ffffff4d #ffffff4d}@keyframes spin{to{transform:rotate(360deg)}}.local-topbar{border-bottom:1px solid var(--line);background:#ffffffb8;justify-content:space-between;align-items:center;height:76px;padding:0 max(20px,50vw - 590px);display:flex}.privacy-pill{color:#276047;background:#dcecdf;border-radius:999px;padding:.45rem .7rem;font-size:.75rem;font-weight:700}.local-home{background:radial-gradient(circle at 12% 8%, #e9a23b2e, transparent 31rem), var(--cream);min-height:calc(100vh - 150px)}.local-hero{grid-template-columns:1fr minmax(380px,.72fr);align-items:center;gap:clamp(2.5rem,7vw,7rem);padding-block:clamp(60px,10vw,125px);display:grid}.local-hero h1{max-width:760px;margin-bottom:1.2rem}.local-lede{color:#52605b;max-width:650px;font-size:1.12rem;line-height:1.65}.local-promises{flex-wrap:wrap;gap:.55rem;margin-top:1.8rem;display:flex}.local-promises span{color:#34564b;background:#ffffffbf;border:1px solid #d6dbd5;border-radius:7px;padding:.55rem .75rem;font-size:.78rem;font-weight:700}.local-start-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:clamp(1.4rem,3vw,2rem);scroll-margin-top:24px;box-shadow:0 18px 45px #2239311a}.local-start-card h2{margin-bottom:.75rem;font-size:2rem}.local-start-card>p:not(.eyebrow){color:var(--muted);line-height:1.55}.local-start-card textarea{background:#f7f6f2;margin-top:.4rem}.local-awaiting{margin:.65rem 0 0;font-size:.75rem}.import-actions{flex-wrap:wrap;gap:.55rem;margin-top:.75rem;display:flex}.file-button{cursor:pointer;align-items:center;display:inline-flex}.file-button input{display:none}.local-note{font-size:.74rem;margin:.75rem 0 0!important}.import-errors{color:#793c2d;background:#fff0eb;border:1px solid #edc7bb;border-radius:12px;grid-template-columns:.8fr 1.2fr;gap:2rem;margin-bottom:4rem;padding:1.5rem;display:grid}.import-errors h2{margin-bottom:.5rem;font-size:1.7rem}.import-errors p:last-child{color:#845b50;margin:0}.import-errors ul{margin:0;padding-left:1.3rem;line-height:1.8}.conflict-panel{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:4rem;padding:1.6rem;box-shadow:0 8px 28px #22393112}.conflict-heading h2{margin-bottom:.5rem;font-size:1.8rem}.conflict-heading p:last-child{color:var(--muted)}.conflict-list{gap:.8rem;margin:1.2rem 0;display:grid}.conflict-list fieldset{border:1px solid var(--line);border-radius:9px;margin:0;padding:1rem}.conflict-list legend{color:#44534e;max-width:760px;padding:0 .4rem;font-size:.9rem;line-height:1.5}.conflict-list legend strong{color:var(--ink)}.conflict-list fieldset>div{flex-wrap:wrap;gap:.55rem;margin-top:.5rem;display:flex}.conflict-list label{border:1px solid var(--line);cursor:pointer;border-radius:7px;grid-template-columns:auto 1fr;align-items:center;gap:.55rem;padding:.7rem .85rem;display:flex}.conflict-list label.chosen{border-color:var(--green-2);background:#edf4ef}.conflict-list input{width:auto;accent-color:var(--green);margin:0}.local-workspace{padding-block:1rem 100px}.workspace-heading{justify-content:space-between;align-items:start;gap:2rem;margin-bottom:1.5rem;display:flex}.workspace-heading h2{margin-bottom:.6rem}.workspace-heading p:last-child{max-width:700px;color:var(--muted);line-height:1.55}.text-book-limits{margin-bottom:1rem}.text-limit-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem;display:grid}.text-limit-grid label{background:#f7f6f2;border-radius:7px;grid-template-columns:1fr 58px;align-items:center;gap:.8rem;min-height:58px;padding:.65rem .75rem}.text-limit-grid span{overflow-wrap:anywhere}.text-limit-grid input{text-align:center;padding:.55rem .35rem}.text-group header{grid-template-columns:72px minmax(0,1fr) auto;gap:1rem;min-height:92px;padding:.85rem 1rem}.text-group header .group-number{border-right:1px solid #d9d5ca;place-content:center;align-self:stretch;justify-items:center;padding-right:1rem;display:grid}.text-group header .group-number span,.text-group header .group-book span,.text-group header .group-size span{color:#8a653b;letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:700}.text-group header .group-number strong{color:var(--green);font:700 2rem/1 Fraunces,serif}.text-group header .group-book{min-width:0}.text-group header .group-book h3{overflow-wrap:anywhere;margin-top:.3rem;font-size:1.15rem;line-height:1.2}.text-group header .group-size{background:#fff;border:1px solid #dedbd1;border-radius:8px;align-content:center;justify-items:center;min-width:64px;padding:.55rem .65rem;display:grid}.text-group header .group-size strong{color:var(--green);font:700 1.55rem/1 Fraunces,serif}.text-group header .group-size span{color:var(--muted);letter-spacing:.04em;text-transform:none;margin-top:.2rem}.text-group>ul{padding:.45rem 1.1rem .7rem}.instruction-guide{border-top:1px solid var(--line);padding-block:85px 100px;scroll-margin-top:20px}.instruction-guide>header{max-width:760px;margin-bottom:2.2rem}.instruction-guide>header h2{margin-bottom:.7rem}.instruction-guide>header>p:last-child{color:var(--muted);font-size:1rem;line-height:1.65}.guide-steps{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.guide-step{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:1.2rem;padding:1.5rem;display:grid;box-shadow:0 4px 16px #2938320a}.guide-step.highlighted{background:#f5f9f6;border-color:#b9cbbf}.guide-number{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:48px;height:48px;font:700 1.35rem Fraunces,serif;display:grid}.guide-copy{max-width:900px}.guide-copy .eyebrow{margin-bottom:.35rem}.guide-copy h3{margin:0 0 .55rem;font:700 1.35rem Fraunces,serif}.guide-copy>p:not(.eyebrow){max-width:820px;color:var(--muted);margin-bottom:0;line-height:1.65}.guide-copy aside{color:#6d501f;border-left:4px solid var(--gold);background:#fff4dc;border-radius:0 7px 7px 0;max-width:800px;margin-top:1rem;padding:.8rem 1rem;font-size:.85rem;line-height:1.55}.guide-copy aside strong{color:#503812;display:block}.guide-copy aside.edit-warning{color:#842f25;background:#fff0ed;border-left-color:#c94f3d}.guide-copy aside.edit-warning strong{color:#842f25}.template-counts{grid-template-columns:repeat(10,minmax(64px,1fr));gap:.45rem;margin-top:1.2rem;display:grid}.template-counts button{color:var(--muted);background:#faf9f5;border:2px solid #0000;border-radius:8px;justify-items:center;gap:.15rem;padding:.7rem .25rem;display:grid}.template-counts button:hover{background:#f1f3ee}.template-counts button.chosen{color:var(--green);border-color:var(--green-2);background:#e9f2ec}.template-counts strong{font:700 1.25rem Fraunces,serif}.template-counts span{font-size:.67rem;font-weight:700}.template-result{border-radius:9px;justify-content:space-between;align-items:center;gap:1rem;margin-top:.8rem;padding:1rem;display:flex}.template-result.ready{background:#edf4ef;border:1px solid #c5d9ca}.template-result.pending{color:#725321;background:#fff4dc;border:1px solid #ead5a7}.template-result>div{gap:.2rem;display:grid}.template-result span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:700}.template-result strong{font-family:Fraunces,serif}.template-result small{color:var(--muted);line-height:1.4}.method-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1.2rem;display:grid}.method-options button{text-align:left;color:var(--ink);background:#faf9f5;border:2px solid #0000;border-radius:10px;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:.8rem;padding:1rem;display:grid}.method-options button:hover{background:#f3f4ef}.method-options button.chosen{border-color:var(--green-2);background:#edf4ef}.method-options button>span:nth-child(2){gap:.22rem;display:grid}.method-options small{color:var(--muted);font-weight:400;line-height:1.4}.method-options button>b{color:var(--green-2);text-align:center;font-size:1.1rem}.method-icon{color:#fff;background:var(--coral);letter-spacing:.04em;border-radius:6px;place-items:center;width:46px;height:42px;font-size:.7rem;font-weight:800;display:grid}.method-icon.sheet-icon{background:#39815c;font-size:1.35rem}.method-instructions{color:#3d4e48;background:#f5f3ed;border-radius:9px;margin-top:.8rem;padding:1rem 1.1rem}.method-instructions>strong{font-family:Fraunces,serif}.method-instructions ol{color:var(--muted);gap:.4rem;margin:.65rem 0 0;padding-left:1.25rem;font-size:.88rem;line-height:1.5;display:grid}.guide-action{margin-top:1rem;text-decoration:none;display:inline-block}.shortcut-row{color:#44534e;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-top:1rem;display:flex}.shortcut-row kbd{text-align:center;background:#fff;border:1px solid #bec7c1;border-bottom-width:3px;border-radius:5px;min-width:31px;padding:.28rem .42rem;font:700 .75rem DM Sans,sans-serif;display:inline-block}.shortcut-row small{color:var(--muted)}.results-head{justify-content:space-between;align-items:center;gap:1rem;margin:2rem 0;display:flex}.results-head h2{margin:0}.browser-saved{color:#276047;background:#dcecdf;border-radius:999px;margin-top:.6rem;padding:.35rem .55rem;font-size:.7rem;font-weight:700;display:inline-block}.result-buttons{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.group-settings{grid-template-columns:.7fr 1.3fr;gap:1rem;display:grid}.size-settings,.strategy-settings,.book-limits{border:1px solid var(--line);background:#fff;border-radius:10px;padding:1.3rem}.size-settings{grid-template-columns:1fr 1fr;align-content:start;gap:1rem;display:grid}.strategy-settings{gap:.6rem;margin:0;display:grid}.strategy-settings legend{padding:0 .25rem;font-weight:700}.strategy-settings label{cursor:pointer;border:1px solid var(--line);border-radius:8px;grid-template-columns:20px 1fr;align-items:start;padding:.8rem}.strategy-settings label.chosen{border-color:var(--green-2);background:#f0f5f1}.strategy-settings input{width:auto;accent-color:var(--green);margin-top:.2rem}.strategy-settings span{gap:.2rem;display:grid}.strategy-settings small{color:var(--muted);font-weight:400;line-height:1.4}.book-limits{margin-top:1rem}.section-row{justify-content:space-between;align-items:start;gap:1rem;display:flex}.section-row h3{margin-bottom:.3rem;font:700 1.2rem Fraunces,serif}.section-row p{color:var(--muted);font-size:.83rem}.generate-bar{color:#fff;background:var(--green);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 2.5rem;padding:1.2rem 1.4rem;display:flex}.generate-bar div{gap:.25rem;display:grid}.generate-bar span{color:#c5d5cf;font-size:.77rem}.group-results{border-top:1px solid var(--line);padding-top:.3rem}.export-note{color:var(--muted);margin:-1.2rem 0 1.2rem;font-size:.8rem}.placement-summary{grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.placement-summary span{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:8px;align-items:baseline;gap:.4rem;padding:.9rem;font-size:.75rem;display:flex}.placement-summary strong{color:var(--ink);font:700 1.5rem Fraunces,serif}.placement-summary .attention{color:#8f3525;background:#fff0eb;border-color:#edc7bb}.generated-groups{grid-template-columns:repeat(2,1fr);gap:.8rem;display:grid}.generated-group{border:1px solid var(--line);background:#fff;border-radius:9px;overflow:hidden}.generated-group header{background:#eeece5;grid-template-columns:50px 1fr auto;align-items:center;gap:.8rem;padding:.7rem;display:grid}.generated-group header span{color:#a86525;letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:700}.generated-group header h3{margin:.2rem 0 0;font:700 1.05rem Fraunces,serif}.generated-group ul,.unplaced-card ul{margin:0;padding:.3rem 1rem .6rem;list-style:none}.generated-group li{border-bottom:1px solid #eceae4;justify-content:space-between;gap:1rem;padding:.7rem 0;font-size:.85rem;display:flex}.generated-group li:last-child{border:0}.generated-group small{color:#256044;background:#e1eee5;border-radius:4px;padding:.2rem .45rem;font-weight:700}.generated-group .last-rank{color:#8f4d28;background:#f8e6da}.unplaced-card{color:#6e3c2e;background:#fff0eb;border:1px solid #edc7bb;border-radius:9px;grid-template-columns:1.5fr 1fr;gap:2rem;margin-top:1rem;padding:1.3rem;display:grid}.unplaced-card h3{margin-bottom:.4rem;font:700 1.2rem Fraunces,serif}.unplaced-card p:last-child{margin:0;font-size:.83rem;line-height:1.5}.unplaced-card ul{flex-wrap:wrap;align-content:start;gap:.4rem;padding:0;display:flex}.unplaced-card li{background:#fff;border-radius:5px;padding:.4rem .6rem;font-size:.8rem;font-weight:700}.edtech-logo{flex:none;width:44px;height:44px}.edtech-logo.small{width:26px;height:26px}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:1rem;height:76px;padding:0 max(20px,50vw - 590px);display:flex}.text-link{color:var(--muted);text-underline-offset:3px;font-size:.86rem;font-weight:600}.info-page{min-height:calc(100vh - 150px);padding-block:55px 90px}.info-page h1{margin-bottom:.8rem;font-size:clamp(2.3rem,4.5vw,3.6rem)}.info-lede{max-width:680px;color:var(--muted);margin-bottom:2.2rem;font-size:1.08rem;line-height:1.6}.info-card{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:1rem;padding:1.6rem 1.8rem;box-shadow:0 4px 16px #2938320a}.info-card h2{margin-bottom:.8rem;font-size:1.5rem}.info-card h3{margin-bottom:.25rem;font:700 1.1rem Fraunces,serif}.info-card p{color:#44534e;max-width:760px;font-size:.95rem;line-height:1.65}.info-card p:last-of-type{margin-bottom:0}.info-card a:not(.button){color:#a86d32;text-underline-offset:3px;font-weight:700}.info-card .button{margin-top:1.1rem;text-decoration:none;display:inline-block}.info-card .table-wrap{margin-bottom:1.2rem}.info-card th,.info-card td{vertical-align:top}.info-card tbody th{width:27%;font-weight:700}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:9px;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid #e7e5de;padding:1rem;font-size:.84rem;line-height:1.5}thead th{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;background:#f0eee8;font-size:.7rem}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}.info-steps,.promise-list{gap:1rem;margin:0 0 1.2rem;padding:0;list-style:none;display:grid}.info-steps li,.promise-list li{grid-template-columns:28px 1fr;align-items:start;gap:.9rem;display:grid}.info-steps p,.promise-list span{color:var(--muted);margin:0;font-size:.92rem;line-height:1.6}.info-steps .step{color:#fff;background:var(--coral);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.78rem;font-weight:800;display:grid}.promise-list div{gap:.2rem;display:grid}.promise-list strong{font-family:Fraunces,serif;font-size:1.05rem}.tick{width:28px;height:28px;color:var(--green);background:#dcecdf;border-radius:50%;place-items:center;font-size:.8rem;font-weight:800;display:grid}.card-heading{align-items:center;gap:.8rem;margin-bottom:.8rem;display:flex}.card-heading h2{margin-bottom:0}.polaroid{background:#fffdf7;border:1px solid #e6e1d4;width:min(660px,100%);margin:1.8rem auto .5rem;padding:14px 14px 0;transform:rotate(-1.4deg);box-shadow:0 12px 26px #2938322e}.polaroid img{background:#ded9cd;width:100%;height:auto;display:block}.polaroid figcaption{color:#5b6560;text-align:center;padding:.9rem .3rem 1.15rem;font:600 1rem Fraunces,serif}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem 1.5rem;padding:1.4rem max(20px,50vw - 590px);font-size:.82rem;display:flex}.site-footer p{margin:0}.footer-credit{align-items:center;gap:.6rem;display:flex}.site-footer nav{flex-wrap:wrap;gap:1.2rem;display:flex}.site-footer a{text-underline-offset:3px;font-weight:600}@media (width<=850px){.local-hero,.method-options{grid-template-columns:1fr}.template-counts{grid-template-columns:repeat(5,1fr)}.generated-groups,.group-settings{grid-template-columns:1fr}}@media (width<=600px){.privacy-pill{display:none}.import-errors{grid-template-columns:1fr;gap:1rem}.workspace-heading{flex-direction:column}.guide-step{grid-template-columns:40px minmax(0,1fr);gap:.8rem;padding:1rem}.guide-number{width:38px;height:38px;font-size:1.05rem}.method-options button{grid-template-columns:42px minmax(0,1fr) 20px;padding:.8rem}.method-icon{width:40px;height:38px}.template-counts{grid-template-columns:repeat(2,1fr)}.template-result{flex-direction:column;align-items:stretch}.shell,.narrow{width:min(100% - 24px,1180px)}.results-head{flex-direction:column;align-items:flex-start}.result-buttons{justify-content:flex-start;width:100%}.generate-bar,.section-row{flex-direction:column;align-items:stretch}.size-settings{grid-template-columns:1fr}.placement-summary{grid-template-columns:repeat(2,1fr)}.unplaced-card{grid-template-columns:1fr;gap:1rem}.site-footer{padding:1.2rem 12px}.topbar{height:66px;padding:0 12px}.topbar .text-link{font-size:.78rem}.info-page{padding-block:34px 60px}.info-card{padding:1.2rem 1.1rem}.info-card tbody th{width:auto}}
