:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#16202b;background:#f3f5f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.6}input,select{width:100%;min-height:2.75rem;padding:.7rem .85rem;border:1px solid #c7d0d9;border-radius:8px;background:#fff;color:#16202b}input:focus,select:focus,button:focus-visible{outline:2px solid #3d6fd6;outline-offset:2px}.app-shell{min-height:100vh;background:#f3f5f7}.app-main{width:min(1120px,calc(100% - 1rem));margin:0 auto;padding:1rem 0 2rem}.page-header{display:grid;gap:.35rem;margin-bottom:1rem}.page-header h1,.section-heading h2{margin:0;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.2}.page-copy,.section-heading p{margin:.35rem 0 0;color:#5c6b79;font-size:.95rem}.state-panel,.login-card,.filters-section,.table-section,.overview-section,.projection-card,.empty-state{background:#fff;border:1px solid #dde3e8;border-radius:8px}.state-panel,.empty-state{display:grid;justify-items:center;gap:.75rem;padding:3rem 1.5rem;color:#4d5c69}.spinner{width:1.5rem;aspect-ratio:1;border-radius:999px;border:2px solid #d1d9e0;border-top-color:#3d6fd6;animation:spin .9s linear infinite}.login-wrap{display:flex;justify-content:center}.login-card{width:min(100%,420px);padding:1.25rem}.field{display:grid;gap:.45rem;margin-top:1rem}.field span{color:#334150;font-size:.95rem}.primary-button,.secondary-button{min-height:2.75rem;padding:.7rem 1rem;border-radius:8px;border:1px solid #bcc7d2;white-space:nowrap}.primary-button{width:100%;margin-top:1.25rem;border-color:#254f9e;background:#2f61c0;color:#fff}.secondary-button{background:#fff;color:#243140}.dashboard-layout{display:grid;gap:.85rem}.overview-section,.filters-section,.projection-card,.table-section{padding:1rem}.toolbar-actions,.filters-actions{display:flex;gap:.75rem;flex-wrap:wrap}.toolbar-actions-wide{width:100%}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.9rem}.summary-card{min-height:5.4rem;display:grid;align-content:space-between;padding:.9rem;border:1px solid #dde3e8;border-radius:8px;background:#fff}.summary-label{color:#5c6b79;font-size:.88rem}.summary-value{font-size:1.35rem;line-height:1.1}.projection-grid,.filters-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem}.projection-actions{margin-top:1rem}.projection-results{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;margin-top:1rem}.projection-metric{display:grid;gap:.35rem;padding:.9rem;border:1px solid #dde3e8;border-radius:8px;background:#f9fafb}.projection-up{color:#12603a}.filters-shell{display:grid;gap:.65rem}.filters-toggle{width:100%;min-height:3rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid #dde3e8;border-radius:8px;background:#fff;color:#16202b;text-align:left}.filters-toggle-meta{color:#5c6b79;font-size:.92rem}.filters-section{display:grid;gap:1rem}.table-scroll{overflow-x:auto}.table-section-header{margin-bottom:.85rem}.score-table{width:100%;border-collapse:collapse;min-width:880px}.score-table th,.score-table td{padding:.9rem 1rem;border-bottom:1px solid #e5e9ed;text-align:left;vertical-align:top;font-size:.95rem}.score-table th{color:#51606d;background:#f9fafb;font-weight:600}.score-high{color:#12603a;font-weight:600}.score-low{color:#9c2f1a;font-weight:600}.inline-error,.inline-notice{margin:0;padding:.8rem .95rem;border-radius:8px;font-size:.95rem}.inline-error{color:#8b2212;background:#fcecea;border:1px solid #f0c2bb}.inline-notice{color:#25445d;background:#edf5fb;border:1px solid #c8dcec}@media(max-width:920px){.filters-grid,.projection-grid,.projection-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.app-main{width:min(100% - .75rem,1120px);padding:1rem 0 2rem}.page-header h1{font-size:1.7rem}.summary-grid,.filters-grid,.projection-grid,.projection-results{grid-template-columns:minmax(0,1fr)}.toolbar-actions,.filters-actions{width:100%}.toolbar-actions .secondary-button,.filters-actions .secondary-button,.projection-actions .secondary-button{flex:1 1 0}.table-section{padding:.85rem}.score-table,.score-table thead,.score-table tbody,.score-table tr,.score-table td{display:block}.score-table{min-width:0}.score-table thead{display:none}.score-table tr{padding:.9rem .15rem;border-bottom:1px solid #e5e9ed}.score-table td{display:grid;grid-template-columns:4.75rem minmax(0,1fr);gap:.65rem;padding:.22rem 0;border:0;font-size:.92rem}.score-table td:before{content:attr(data-label);color:#5c6b79;font-size:.85rem}}@media(hover:none)and (pointer:coarse){.app-main{width:min(100% - .75rem,42rem);padding:1rem 0 2rem}.page-header{display:grid;gap:.35rem;margin-bottom:1rem}.page-header h1{font-size:1.7rem}.login-wrap{display:block}.login-card{width:100%;max-width:none}.summary-grid,.filters-grid,.projection-grid,.projection-results{grid-template-columns:minmax(0,1fr)}.toolbar-actions,.filters-actions{width:100%}.toolbar-actions .secondary-button,.filters-actions .secondary-button,.projection-actions .secondary-button{flex:1 1 0}.table-section{padding:.85rem}.score-table,.score-table thead,.score-table tbody,.score-table tr,.score-table td{display:block}.score-table{min-width:0}.score-table thead{display:none}.score-table tr{padding:.9rem .15rem;border-bottom:1px solid #e5e9ed}.score-table td{display:grid;grid-template-columns:4.75rem minmax(0,1fr);gap:.65rem;padding:.22rem 0;border:0;font-size:.92rem}.score-table td:before{content:attr(data-label);color:#5c6b79;font-size:.85rem}}@media(min-width:921px){.app-main{width:min(1120px,calc(100% - 2rem));padding:2rem 0 3rem}.page-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.projection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projection-results{grid-template-columns:repeat(3,minmax(0,1fr))}.filters-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@keyframes spin{to{transform:rotate(360deg)}}
