@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--ink:#171a18;--muted:#727973;--line:#d9ded8;--paper:#f5f6f1;--panel:#fff;--lime:#c8ee54;--coral:#ff765f;--blue:#cedfff;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}#app{min-height:100svh}.page-shell{max-width:1180px;margin:0 auto;padding:32px 42px 26px}.hero{border-bottom:1px solid var(--line);padding:12px 0 62px}.eyebrow,.section-label,.kicker,.total-label,footer{text-transform:uppercase;letter-spacing:.09em;font-family:DM Mono,monospace;font-size:11px}.eyebrow{color:var(--muted);align-items:center;gap:9px;display:flex}.status-dot{background:#6bb536;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #dcedcb}.hero-copy{justify-content:space-between;align-items:end;gap:40px;margin-top:50px;display:flex}.kicker,.section-label{color:var(--muted);margin:0 0 10px}h1,h2,p{margin-top:0}h1{letter-spacing:-.08em;margin:0 0 27px;font-family:Space Grotesk,sans-serif;font-size:clamp(3.8rem,9vw,8.7rem);font-weight:700;line-height:.88}h1 span{color:var(--coral)}.intro{max-width:420px;color:var(--muted);margin:0;font-size:16px;line-height:1.55}.total-display{border-left:1px solid var(--line);min-width:170px;padding:20px 0 7px 27px}.total-number{letter-spacing:-.08em;font-family:Space Grotesk,sans-serif;font-size:76px;line-height:.85;display:block}.total-label{color:var(--muted);margin-top:15px;display:block}.panel,.module-panel{background:var(--panel);border:1px solid var(--line)}.add-module{grid-template-columns:1fr 1.65fr;align-items:center;gap:20px 40px;margin:30px 0 40px;padding:25px 28px;display:grid}h2{letter-spacing:-.04em;margin:0;font-family:Space Grotesk,sans-serif;font-size:25px}.inline-form,.professor-form{gap:10px;display:flex}input{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fafbf8;outline:none;padding:13px 15px;transition:border .2s,background .2s}input:focus{border-color:var(--ink);background:#fff}input::placeholder{color:#a3aaa3}.primary-button{background:var(--ink);color:#fff;white-space:nowrap;border:0;align-items:center;gap:8px;padding:0 19px;font-weight:700;display:flex}.primary-button span{color:var(--lime);font-size:21px;font-weight:400}.form-error{color:#c24431;margin:8px 0 0;font-size:12px}.add-module .form-error{grid-column:2}.error-banner{color:#a23e2f;background:#ffe4de;margin:-18px 0 24px;padding:13px 16px;font-size:13px}.module-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.module-panel{padding:26px 28px 22px}.module-heading{grid-template-columns:45px 1fr auto;align-items:start;gap:15px;padding-bottom:24px;display:grid}.module-index{color:var(--coral);padding-top:3px;font-family:DM Mono,monospace;font-size:13px}.module-total{letter-spacing:-.05em;font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:600}.module-total span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;text-align:right;margin-top:2px;font:10px DM Mono,monospace;display:block}.professor-list{border-top:1px solid var(--line)}.professor-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;min-height:66px;display:flex}.professor-name{overflow-wrap:anywhere;align-items:center;gap:10px;min-width:0;font-weight:500;display:flex}.person-mark{color:var(--coral);font-size:24px;line-height:1}.counter-controls{flex-shrink:0;align-items:center;gap:12px;display:flex}.counter-controls strong{text-align:center;min-width:25px;font:20px Space Grotesk,sans-serif}.count-button{border:1px solid var(--line);width:31px;height:31px;color:var(--ink);background:#fff;place-items:center;font-size:19px;line-height:1;transition:transform .15s,background .15s;display:grid}.count-button:hover{transform:translateY(-2px)}.count-button:disabled{cursor:not-allowed;opacity:.35;transform:none}.count-button.increase:hover{background:var(--lime);border-color:var(--lime)}.count-button.decrease:hover{background:var(--blue);border-color:var(--blue)}.module-empty{color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0;padding:17px 0;font-size:13px}.professor-form{margin-top:18px}.professor-form input{padding:10px 12px;font-size:13px}.text-button{color:var(--ink);white-space:nowrap;background:0 0;border:0;padding:0 0 0 4px;font-size:13px;font-weight:700}.text-button span{color:var(--coral);margin-left:4px;font-size:17px}.loading-state,.empty-state{text-align:center;color:var(--muted);padding:85px 20px}.loader{border:2px solid var(--line);border-top-color:var(--coral);vertical-align:-3px;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}.empty-mark{color:var(--coral);margin-bottom:12px;font:60px/1 Space Grotesk,sans-serif}.empty-state h2{color:var(--ink)}.empty-state p{font-size:14px}footer{color:#9ba19a;align-items:center;gap:12px;padding:48px 0 0;display:flex}.footer-divider{background:var(--line);width:22px;height:1px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.page-shell{padding:24px 18px}.hero{padding-bottom:40px}.hero-copy{margin-top:38px;display:block}h1{font-size:clamp(3.4rem,18vw,6rem)}.intro{max-width:310px}.total-display{border-left:0;border-top:1px solid var(--line);align-items:end;gap:13px;margin-top:32px;padding:18px 0 0;display:flex}.total-number{font-size:57px}.total-label{margin:0 0 7px}.add-module{margin:23px 0 28px;padding:21px;display:block}.inline-form{grid-template-columns:1fr auto;margin-top:18px;display:grid}.primary-button{padding:0 14px}.add-module .form-error{margin-top:8px}.module-list{grid-template-columns:1fr}.module-panel{padding:22px 20px 20px}}@media (width<=430px){.inline-form{grid-template-columns:1fr}.primary-button{justify-content:center;min-height:44px}.professor-form{grid-template-columns:1fr auto;display:grid}.module-heading{grid-template-columns:35px 1fr auto;gap:9px}}
