:root{--gstk-purple:#5b2a91;--gstk-purple-dark:#47206f;--gstk-purple-soft:#f1ebf7;--gstk-bg:#f6f6f7;--gstk-surface:#fff;--gstk-border:#dedde1;--gstk-muted:#66646b;--gstk-text:#202024;--gstk-success:#2f855a;--gstk-warning:#b7791f}
*{box-sizing:border-box}body{margin:0;background:var(--gstk-bg);color:var(--gstk-text);font-family:Futura,"Century Gothic",Arial,sans-serif}.app-shell{width:min(1420px,calc(100% - 36px));margin-inline:auto}.app-header .navbar{min-height:72px;background:var(--gstk-purple)}.brand-lockup{display:inline-flex;flex-direction:column;line-height:1.03}.brand-title{font-size:1.2rem;font-weight:700}.brand-byline{font-size:.63rem;opacity:.78;margin-top:.25rem}.navbar .nav-link{color:rgba(255,255,255,.9);padding:.55rem .72rem!important;border-bottom:2px solid transparent}.navbar .nav-link:hover,.navbar .nav-link.active{color:#fff;border-bottom-color:#fff}.page-header{max-width:850px;margin-bottom:1.7rem}.page-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--gstk-purple);font-weight:700}.page-header h1,.welcome h1{font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.08;margin:.35rem 0 .55rem}.page-header p,.welcome p{color:var(--gstk-muted);font-size:1.04rem;margin:0}.panel,.kpi-card,.chart-card,.data-card,.group-summary,.action-card,.tool-card{background:#fff;border:1px solid var(--gstk-border);border-radius:3px}.panel{padding:1.25rem}.section-title{font-size:1.28rem;font-weight:700;margin:0 0 .35rem}.section-copy{color:var(--gstk-muted);margin:0 0 1rem}.btn,.form-control,.form-select,.input-group-text{border-radius:2px}.btn-primary{--bs-btn-bg:var(--gstk-purple);--bs-btn-border-color:var(--gstk-purple);--bs-btn-hover-bg:var(--gstk-purple-dark);--bs-btn-hover-border-color:var(--gstk-purple-dark)}.btn-outline-primary{--bs-btn-color:var(--gstk-purple);--bs-btn-border-color:var(--gstk-purple);--bs-btn-hover-bg:var(--gstk-purple);--bs-btn-hover-border-color:var(--gstk-purple)}.welcome{display:flex;justify-content:space-between;align-items:end;gap:2rem;background:#fff;border-bottom:4px solid var(--gstk-purple);padding:2.1rem 2rem}.welcome>div{max-width:850px}.group-summary{padding:1.15rem 1.25rem;display:grid;grid-template-columns:minmax(250px,1fr) 1fr auto;gap:1.5rem;align-items:center}.group-summary h2{font-size:1.35rem;margin:.15rem 0}.meeting-summary{font-size:.85rem;color:var(--gstk-muted)}.snapshot-row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--gstk-border);background:#fff}.snapshot-row>div{padding:1rem 1.2rem;border-right:1px solid var(--gstk-border)}.snapshot-row>div:last-child{border-right:0}.snapshot-row span{display:block;color:var(--gstk-muted);font-size:.78rem}.snapshot-row strong{font-size:1.7rem}.action-card{padding:1.3rem;display:grid;grid-template-columns:1fr minmax(230px,360px);gap:2rem;border-left:5px solid var(--gstk-purple)}.action-card h2{font-size:1.45rem;margin:.1rem 0 .4rem}.action-card p{margin:0;color:var(--gstk-muted)}.action-links{display:flex;flex-direction:column}.action-links a{padding:.45rem 0;color:var(--gstk-purple);font-weight:700;text-decoration:none;border-bottom:1px solid #eee}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.tool-card{padding:1.2rem;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:1rem;text-decoration:none;color:inherit}.tool-card>i:first-child{font-size:1.3rem;color:var(--gstk-purple)}.tool-card h2{font-size:1.05rem;margin:0 0 .2rem}.tool-card p{font-size:.86rem;color:var(--gstk-muted);margin:0}.drop-zone{border:2px dashed #cfc5d8;background:#fbfafc;padding:2rem;text-align:center;cursor:pointer}.drop-zone.dragging{border-color:var(--gstk-purple);background:var(--gstk-purple-soft)}.drop-zone i{font-size:1.8rem;color:var(--gstk-purple)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.7rem}.kpi-card{padding:1rem}.kpi-label{color:var(--gstk-muted);font-size:.78rem}.kpi-value{font-size:2rem;font-weight:700}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.chart-card{padding:.35rem;min-width:0}.chart-card.full{grid-column:1/-1}.plot{min-height:390px}.plot-tall{min-height:480px}.data-card{overflow:hidden}.data-card-header{padding:1rem;border-bottom:1px solid var(--gstk-border)}.data-card-header h2{font-size:1.1rem;margin:0}.data-card .table{margin:0}.data-card th{font-size:.76rem;color:var(--gstk-muted)}.copy-output{min-height:260px;font-family:inherit;line-height:1.55;background:#fbfbfc}.preview-shell{background:#ebe9ee;padding:1rem;min-height:360px;display:grid;place-items:center;border:1px solid var(--gstk-border)}.preview-shell canvas,.preview-shell img{max-width:100%;height:auto;box-shadow:0 4px 18px rgba(0,0,0,.12)}#communityMap{height:570px;border:1px solid var(--gstk-border)}.result-list{max-height:650px;overflow:auto}.result-item{padding:1rem;border-bottom:1px solid var(--gstk-border)}.result-title{font-weight:700}.result-meta{color:var(--gstk-muted);font-size:.8rem;margin-top:.2rem}.empty-state{padding:2rem 1rem;text-align:center;color:var(--gstk-muted)}.warning-note{padding:.8rem 1rem;border-left:4px solid var(--gstk-warning);background:#fff9ec}.simple-section-row{display:grid;grid-template-columns:160px 1fr 130px 22px 130px;gap:.7rem;align-items:center;padding:.55rem 0;border-bottom:1px solid #eee}.simple-section-row:last-child{border-bottom:0}.advanced-panel summary{cursor:pointer;color:var(--gstk-muted);font-size:.9rem}.wizard-progress{display:flex;gap:.45rem;margin-bottom:1rem}.wizard-progress span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--gstk-border);background:#fff;color:var(--gstk-muted)}.wizard-progress span.active{background:var(--gstk-purple);border-color:var(--gstk-purple);color:#fff}.wizard-results{max-height:290px;overflow:auto;border:1px solid var(--gstk-border)}.wizard-result{display:flex;width:100%;justify-content:space-between;text-align:left;border:0;border-bottom:1px solid #eee;background:#fff;padding:.8rem 1rem}.wizard-result:hover{background:#faf8fb}.wizard-result span{font-size:.78rem;color:var(--gstk-muted)}.goal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.goal-grid input{position:absolute;opacity:0}.goal-grid span{display:block;padding:1rem;border:1px solid var(--gstk-border);background:#fff;cursor:pointer}.goal-grid input:checked+span{border-color:var(--gstk-purple);background:var(--gstk-purple-soft);font-weight:700}.site-footer{background:#fff}.form-control:focus,.form-select:focus{border-color:#8b67aa;box-shadow:0 0 0 .2rem rgba(91,42,145,.1)}
@media(max-width:991px){.navbar .nav-link{border:0}.welcome{align-items:start;flex-direction:column}.group-summary{grid-template-columns:1fr}.action-card{grid-template-columns:1fr}.chart-grid{grid-template-columns:1fr}.chart-card.full{grid-column:auto}.tool-grid{grid-template-columns:1fr}.simple-section-row{grid-template-columns:1fr 1fr}.simple-section-row span{display:none}.snapshot-row{grid-template-columns:1fr}.snapshot-row>div{border-right:0;border-bottom:1px solid var(--gstk-border)}}@media(max-width:575px){.app-shell{width:calc(100% - 20px)}.panel{padding:1rem}.goal-grid{grid-template-columns:1fr}#communityMap{height:420px}}
.chart-explainer{padding:.95rem 1rem .1rem}.chart-explainer h3{font-size:1.05rem;font-weight:700;margin:0 0 .3rem}.chart-explainer p{margin:0;color:var(--gstk-muted);font-size:.84rem;line-height:1.45;max-width:900px}.data-card-header p{margin:.25rem 0 0;color:var(--gstk-muted);font-size:.82rem}.photo-choice{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.photo-tile{border:1px solid var(--gstk-border);background:#fff;padding:.4rem;display:flex;flex-direction:column;gap:.4rem;text-align:left;cursor:pointer}.photo-tile img{width:100%;height:120px;object-fit:cover}.photo-tile span{font-size:.8rem;font-weight:700}.photo-tile.selected{border:2px solid var(--gstk-purple);background:var(--gstk-purple-soft)}.upload-tile{min-height:160px;align-items:center;justify-content:center;text-align:center;color:var(--gstk-purple)}.upload-tile i{font-size:1.5rem}.signage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.signage-card{border:1px solid var(--gstk-border);background:#fff}.signage-card img{display:block;width:100%;height:auto}.signage-card>div{padding:.8rem;display:flex;justify-content:space-between;gap:.7rem;align-items:center}.signage-card strong{font-size:.86rem}.finance-stepper{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--gstk-border);background:#fff}.finance-step{border:0;border-right:1px solid var(--gstk-border);background:#fff;padding:.8rem .6rem;font-size:.82rem;display:flex;gap:.45rem;align-items:center;justify-content:center}.finance-step:last-child{border-right:0}.finance-step span{width:24px;height:24px;border:1px solid var(--gstk-border);display:grid;place-items:center;border-radius:50%}.finance-step.active{color:var(--gstk-purple);font-weight:700;background:var(--gstk-purple-soft)}.finance-step.active span{background:var(--gstk-purple);color:#fff;border-color:var(--gstk-purple)}.budget-row-list{max-width:900px}.budget-row{display:grid;grid-template-columns:1fr 220px;gap:1rem;align-items:center;padding:.5rem 0;border-bottom:1px solid #eee}.finance-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border:1px solid var(--gstk-border);background:#fff}.finance-kpis>div{padding:1rem;border-right:1px solid var(--gstk-border)}.finance-kpis>div:last-child{border-right:0}.finance-kpis span{display:block;font-size:.75rem;color:var(--gstk-muted);margin-bottom:.2rem}.finance-kpis strong{font-size:1.35rem}.finance-kpis .negative strong{color:#b42318}.finance-kpis .positive strong{color:#287a4b}.finance-result-note{border-left:4px solid var(--gstk-purple);padding:.8rem 1rem;background:#faf8fc}.finance-result-note p{margin:.2rem 0 0;color:var(--gstk-muted)}
@media(max-width:991px){.finance-stepper{grid-template-columns:1fr}.finance-step{border-right:0;border-bottom:1px solid var(--gstk-border);justify-content:flex-start}.signage-grid{grid-template-columns:1fr}.budget-row{grid-template-columns:1fr}.finance-kpis>div{border-right:0;border-bottom:1px solid var(--gstk-border)}}

/* v2.3 finance + guidance */
.export-instructions{display:flex;flex-wrap:wrap;gap:.45rem 1rem;align-items:center;padding:.8rem 1rem;background:#faf8fc;border-left:4px solid var(--gstk-purple);font-size:.86rem}.export-instructions span{color:var(--gstk-muted)}
.finance-help-note{padding:.85rem 1rem;background:#faf8fc;border-left:4px solid var(--gstk-purple);font-size:.86rem;line-height:1.5}.national-levy-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem;border:1px solid var(--gstk-border);background:#faf8fc}.national-levy-card span,.national-levy-card small{display:block}.national-levy-card span{font-size:.78rem;color:var(--gstk-muted);text-transform:uppercase;letter-spacing:.04em}.national-levy-card strong{display:block;font-size:1.1rem;margin:.15rem 0}.national-levy-card small{color:var(--gstk-muted);max-width:650px}.levy-input{max-width:180px}.fee-equation{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.35fr;gap:.65rem;align-items:stretch}.fee-equation>div{border:1px solid var(--gstk-border);padding:.9rem;background:#fff;display:flex;flex-direction:column;justify-content:center}.fee-equation>b{align-self:center;font-size:1.4rem;color:var(--gstk-muted)}.fee-equation span{font-size:.75rem;color:var(--gstk-muted);margin-bottom:.2rem}.fee-equation strong{font-size:1.2rem}.fee-equation .highlight{border-color:var(--gstk-purple);background:var(--gstk-purple-soft)}.fee-suggestion{height:100%;border-left:5px solid var(--gstk-purple);background:#faf8fc;padding:1rem 1.2rem;display:flex;flex-direction:column}.fee-suggestion>strong{font-size:2.2rem;line-height:1.1;margin:.2rem 0}.fee-suggestion>span{font-weight:700}.fee-suggestion>small{color:var(--gstk-muted);margin-top:.3rem}
@media(max-width:991px){.fee-equation{grid-template-columns:1fr}.fee-equation>b{display:none}.national-levy-card{align-items:flex-start;flex-direction:column}.levy-input{max-width:100%}}

/* v2.4 refinements */
.finance-stepper{grid-template-columns:repeat(4,1fr)}
.finance-pie{min-height:430px}
.school-kit{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:1.25rem 1.4rem;background:#fff;border:1px solid var(--gstk-border);border-left:5px solid var(--gstk-purple)}
.school-kit h2{font-size:1.45rem;margin:.15rem 0 .35rem}.school-kit p{margin:0;color:var(--gstk-muted);max-width:760px}
.school-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.school-plan-grid article{position:relative;border:1px solid var(--gstk-border);padding:1.1rem 1.1rem 1rem 3.4rem;background:#fff}.school-plan-grid article>span{position:absolute;left:1rem;top:1rem;width:28px;height:28px;border-radius:50%;background:var(--gstk-purple);color:#fff;display:grid;place-items:center;font-weight:700}.school-plan-grid h3{font-size:1.02rem;font-weight:700;margin:0 0 .4rem}.school-plan-grid p{margin:0;color:var(--gstk-muted);font-size:.88rem;line-height:1.5}.school-plan-grid a{display:inline-block;margin-top:.6rem;color:var(--gstk-purple);font-weight:700}.school-impact{padding:1rem 1.1rem;background:#faf8fc;border-top:1px solid var(--gstk-border);border-bottom:1px solid var(--gstk-border)}.school-impact p{margin:.35rem 0 0;color:var(--gstk-muted)}
.leader-guide{font-size:.82rem;color:var(--gstk-muted);white-space:nowrap}
@media(max-width:991px){.finance-stepper{grid-template-columns:1fr}.school-kit{align-items:flex-start;flex-direction:column}.school-plan-grid{grid-template-columns:1fr}}

/* v2.4.1 school-plan and capacity refinements */
.school-print-plan section{margin-bottom:1.35rem}.school-print-plan h3{font-size:1.05rem;font-weight:700;margin:0 0 .45rem}.school-print-plan p{color:var(--gstk-muted);line-height:1.55}.school-plan-table th:first-child{width:170px}.school-plan-notes{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:#faf8fc;border:1px solid var(--gstk-border);padding:1rem}.school-plan-notes h3{margin-top:0}.school-plan-notes ul{margin-bottom:0;padding-left:1.2rem}.school-supervision-note{border-left:4px solid var(--gstk-purple);background:var(--gstk-purple-soft);padding:1rem;margin-top:1.25rem;line-height:1.5}.capacity-status{font-size:.82rem;min-width:160px}.capacity-status span,.capacity-status small{display:block}.capacity-status small{color:var(--gstk-muted);margin-top:.15rem}.modal-xl{--bs-modal-width:1080px}
@media(max-width:767px){.school-plan-notes{grid-template-columns:1fr}.school-plan-table th:first-child{width:125px}.capacity-status{min-width:130px}}
