:root{color:#17211d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#eef2ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:progress;opacity:.72}.app-shell{width:min(1280px,100vw - 32px);margin:0 auto;padding:24px 0 48px}.public-shell{width:min(1180px,100vw - 32px);min-height:100vh;margin:0 auto;padding:22px 0 48px}.public-topbar{justify-content:space-between;align-items:center;gap:20px;min-height:52px;display:flex}.brand-mark{color:#1d4434;align-items:center;gap:9px;font-size:1.05rem;font-weight:900;display:inline-flex}.topbar{border-bottom:1px solid #cad5ce;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px;padding-bottom:16px;display:flex}.topbar-link{color:#234f3d;white-space:nowrap;background:#f8faf8;border:1px solid #a9beb4;border-radius:6px;justify-content:center;align-items:center;min-height:38px;padding:0 14px;font-weight:800;display:inline-flex}.eyebrow{color:#4e675d;letter-spacing:0;text-transform:uppercase;margin:0 0 5px;font-size:.78rem;font-weight:700}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.05}.landing-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:center;gap:42px;min-height:calc(100vh - 132px);padding:34px 0 20px;display:grid}.poll-grid{grid-template-columns:minmax(320px,.7fr) minmax(0,1.3fr);gap:16px;padding:28px 0 20px;display:grid}.landing-copy{max-width:700px}.landing-copy h1{max-width:760px;margin-bottom:18px;font-size:clamp(2.25rem,5vw,4.8rem);line-height:.98}.landing-copy p:last-child{color:#40584e;max-width:620px;margin-bottom:0;font-size:1.08rem;line-height:1.55}.auth-panel{background:#fff;border:1px solid #d3ded7;border-radius:8px;min-width:0;padding:22px;box-shadow:0 14px 34px #14231d1a}.tabs{background:#f8faf8;border:1px solid #c8d3cd;border-radius:8px;gap:8px;padding:4px;display:flex}.tabs button{color:#30433b;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-weight:700;display:inline-flex}.tabs button.active{color:#f7fbf8;background:#234f3d}.workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.teacher-home{grid-template-columns:minmax(320px,.7fr) minmax(0,1.3fr);gap:16px;display:grid}.results-grid{grid-template-columns:.6fr 1.4fr}.panel{background:#fff;border:1px solid #d3ded7;border-radius:8px;min-width:0;padding:18px;box-shadow:0 8px 24px #14231d0f}.panel.wide{grid-column:1/-1}.detail-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.detail-header strong{color:#17211d;font-size:1.3rem;display:block}.poll-heading{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.poll-heading>div{background:#f8fbf9;border:1px solid #d8e3dd;border-radius:8px;padding:12px}.poll-heading strong{overflow-wrap:anywhere;color:#17211d;font-size:1.18rem;display:block}.panel-heading{color:#234f3d;align-items:center;gap:9px;margin-bottom:14px;display:flex}.panel-heading h2{color:#17211d;margin:0;font-size:1rem}.form-grid{gap:12px;margin-bottom:14px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.book-entry{grid-template-columns:minmax(0,1fr) 120px auto;align-items:end}label{color:#40584e;gap:6px;font-size:.86rem;font-weight:700;display:grid}input{color:#17211d;background:#fbfdfb;border:1px solid #b8c7bf;border-radius:6px;width:100%;min-height:40px;padding:8px 10px}input:focus{border-color:#27644d;outline:3px solid #27644d29}.button-row{flex-wrap:wrap;gap:10px;display:flex}.action-button{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-weight:800;display:inline-flex}.class-list{gap:10px;display:grid}.list-toolbar{justify-content:flex-end;margin-bottom:12px;display:flex}.class-row{color:#17211d;text-align:left;background:#fbfdfb;border:1px solid #d7e1dc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.class-row:hover{background:#f1f7f4;border-color:#9fb8ad}.class-open{min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.class-open span{gap:4px;display:grid}.class-open strong{font-size:1rem}.class-open small{color:#61746c;font-weight:800}.inline-edit{flex:1}.empty-state{color:#61746c;background:#fbfdfb;border:1px dashed #b9c8c0;border-radius:8px;margin:0;padding:12px}.inline-notice{color:#493b0a;background:#fff8d9;border:1px solid #d8c27a;border-radius:8px;margin-bottom:14px;padding:12px;font-weight:700}.auth-panel .action-button{width:100%}.action-button.primary{color:#fff;background:#234f3d}.action-button.secondary{color:#234f3d;background:#f6faf7;border-color:#a9beb4}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.metric-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid.one{grid-template-columns:minmax(0,1fr)}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.metric{background:#f8fbf9;border:1px solid #d8e3dd;border-radius:8px;min-height:70px;padding:11px;position:relative}.metric span{color:#61746c;margin-bottom:8px;font-size:.78rem;font-weight:800;display:block}.metric strong{overflow-wrap:anywhere;color:#17211d;font-size:1.25rem;display:block}.metric-input{color:#40584e;gap:7px}.metric-input-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:9px;display:grid}.metric-input input{border-radius:6px;min-width:0;min-height:38px;padding:5px 8px}.metric-save-button{color:#fff;cursor:pointer;background:#234f3d;border:1px solid #234f3d;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-width:0;height:38px;font-weight:800;display:inline-flex}.metric-save-button:disabled{cursor:not-allowed;opacity:.55}.danger-text{font-weight:900;color:#b42318!important}.copyable-metric{padding-right:42px}.copyable-metric button{color:#234f3d;background:#fff;border:1px solid #c7d6cf;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex;position:absolute;top:8px;right:8px}.spreadsheet-wrap{background:linear-gradient(#fff 0%,#fbfdfb 100%);border:1px solid #d5e0da;border-radius:8px;width:100%;overflow-x:auto}.spreadsheet-meta{border-bottom:1px solid #dfe8e3;grid-template-columns:1fr 150px minmax(220px,1fr);gap:10px;padding:12px;display:grid}.spreadsheet-search{border-bottom:1px solid #dfe8e3;padding:12px}.spreadsheet-search label{color:#40584e;gap:6px;max-width:360px;font-size:.82rem;font-weight:800;display:grid}.spreadsheet-search input{min-height:40px}.spreadsheet-table{border:0;border-radius:0;min-width:680px}.spreadsheet-table th{z-index:1;position:sticky;top:0}.spreadsheet-table th:first-child{z-index:2;border-right:1px solid #d5e0da;min-width:220px;position:sticky;left:0}.spreadsheet-table td:first-child{min-width:220px}.spreadsheet-table tbody th{color:#17211d;text-transform:none;background:#fff;font-size:.9rem}.spreadsheet-table td{white-space:pre-wrap;min-width:160px}.spreadsheet-table tbody tr:nth-child(2n) td,.spreadsheet-table tbody tr:nth-child(2n) th{background:#f8fbf9}.teacher-spreadsheet td{height:48px}.student-cell{color:#173c2e;background:#e8f6ee;border:1px solid #bfdbcf;border-radius:999px;align-items:center;min-height:28px;padding:4px 9px;font-weight:800;display:inline-flex}.student-chip-list{flex-wrap:wrap;gap:4px;display:flex}.student-chip-list span{color:#173c2e;font-weight:700}.student-chip-list span.student-search-match{color:#0f2f23;background:#dff3e7;font-weight:900;box-shadow:inset 0 -2px #2c7a4a}.student-chip-list .student-separator{color:#8a9a93;font-weight:700}.empty-cell{color:#7a8d85;font-style:italic}.assigned-ranking-cell{color:#173c2e;background:#e8f6ee;font-weight:900}.assignment-select{color:#18372a;background:0 0;border:0;border-radius:0;width:100%;min-height:28px;padding:0 22px 0 0;font-weight:700}.assignment-select:focus{outline-offset:2px;outline:2px solid #9fcbb7}.assignment-select:disabled{opacity:.72}.assignment-results-table{table-layout:fixed}.assignment-results-table th:first-child,.assignment-results-table td:first-child{width:140px}.assignment-results-table th:nth-child(2),.assignment-results-table td:nth-child(2){width:180px}table{border-collapse:collapse;border:1px solid #d7e1dc;border-radius:8px;width:100%;overflow:hidden}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e9e5;padding:10px 12px}th{color:#40584e;text-transform:uppercase;background:#f0f5f2;font-size:.78rem}.sort-button{min-height:28px;color:inherit;font:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:900;display:inline-flex}.sort-button svg{color:#61746c}.sort-button.active{color:#234f3d}tr:last-child td{border-bottom:0}.table-actions{flex-wrap:wrap;gap:8px;display:flex}.table-actions button{color:#234f3d;background:#f8faf8;border:1px solid #c7d6cf;border-radius:6px;align-items:center;gap:6px;min-height:32px;padding:0 10px;font-weight:800;display:inline-flex}.section-actions{justify-content:flex-end;margin-bottom:12px;display:flex}.compact-list{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.compact-list li{background:#fbfdfb;border:1px solid #d7e1dc;border-radius:6px;padding:8px 10px}.ranking-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.ranking-column{background:#f8fbf9;border:1px solid #d7e1dc;border-radius:8px;align-content:start;gap:10px;min-height:260px;padding:12px;display:grid}.ranking-dropzone.over{background:#eef7f1;border-color:#234f3d}.ranking-column-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.ranking-column-heading h3{color:#17211d;margin:0;font-size:1rem}.ranking-column-heading span{color:#234f3d;background:#e5f1ea;border-radius:999px;place-items:center;min-width:28px;min-height:28px;font-weight:900;display:inline-grid}.ranking-list{align-content:start;gap:10px;min-height:180px;display:grid}.ranking-card{color:#17211d;text-align:left;background:#fff;border:1px solid #d7e1dc;border-radius:8px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:58px;padding:10px;display:grid;box-shadow:0 8px 20px #0e1a150f}.ranking-card.ranked{grid-template-columns:22px 32px minmax(0,1fr)}.ranking-card.dragging{opacity:.32}.drag-overlay-card{cursor:grabbing;width:min(360px,100vw - 40px);box-shadow:0 18px 40px #0e1a1533}.ranking-card span{gap:4px;min-width:0;display:grid}.ranking-card strong{overflow-wrap:anywhere}.ranking-card small{color:#657970}.ranking-card svg{color:#61746c}.ranking-position{color:#fff;background:#234f3d;border-radius:999px;place-items:center;width:32px;height:32px;font-weight:900;display:grid!important}.modal-backdrop{z-index:20;background:#0c181261;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog,.notice-dialog{background:#fff;border:1px solid #d3ded7;border-radius:8px;gap:18px;width:min(420px,100%);padding:18px;display:grid;box-shadow:0 20px 50px #0a141040}.notice-dialog{width:min(480px,100%);position:relative}.notice-dialog.success{border-color:#91bea0}.notice-dialog.error{background:#fff0f3;border-color:#dc9a91}.notice-heading{align-items:center;gap:10px;padding-right:34px;display:flex}.notice-heading svg{flex:none}.notice-dialog.success .notice-heading svg{color:#2c7a4a}.notice-dialog.error .notice-heading svg{color:#a83f35}.confirm-dialog h2,.notice-dialog h2{color:#17211d;margin:0 0 8px;font-size:1.08rem}.notice-dialog h2{margin:0}.confirm-dialog p,.notice-dialog p{color:#40584e;margin:0;line-height:1.45}.notice-details{color:#3c5248;background:#f8faf8;border:1px solid #dce7e1;border-radius:8px;gap:6px;max-height:180px;margin:0;padding:12px 12px 12px 30px;font-size:.92rem;display:grid;overflow:auto}.icon-button.notice-close{color:#40584e;background:0 0;border:1px solid #0000;border-radius:999px;place-items:center;width:30px;height:30px;padding:0;display:grid;position:absolute;top:12px;right:12px}.icon-button.notice-close:hover{background:#f2f6f4;border-color:#c7d6cf}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-actions button{color:#234f3d;background:#f8faf8;border:1px solid #c7d6cf;border-radius:6px;min-height:38px;padding:0 14px;font-weight:800}.confirm-actions button.danger{color:#fff;background:#a83f35;border-color:#a83f35}.confirm-actions button.warning{color:#fff;background:#b8761f;border-color:#c5892f}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=880px){.app-shell{width:min(100vw - 20px,760px);padding-top:14px}.topbar{flex-direction:column;align-items:stretch;gap:14px}.public-shell{width:min(100vw - 20px,760px);padding-top:12px}.landing-grid{grid-template-columns:1fr;align-items:start;gap:24px;min-height:auto;padding-top:28px}.poll-grid,.poll-heading,.ranking-board{grid-template-columns:1fr}.landing-copy h1{font-size:2.4rem}.tabs{overflow-x:auto}.workspace-grid,.teacher-home,.results-grid,.form-grid.two,.book-entry,.metric-grid,.metric-grid.four,.metric-grid.five,.metric-grid.six,.spreadsheet-meta{grid-template-columns:1fr}}
