:root{--primary:#3157d5;--ink:#18233d;--muted:#69748b;--line:#e3e8f0}*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:var(--ink);font:15px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:30px;line-height:1.2;margin:8px 0 16px;letter-spacing:-.8px}h2{font-size:22px;margin:6px 0 15px}h3{font-size:17px;font-weight:600}p{color:var(--muted)}aside{position:fixed;inset:0 auto 0 0;width:240px;background:#101d3a;color:white;padding:30px 18px}.brand{display:flex;align-items:center;gap:12px;font-size:27px;font-weight:800;color:var(--primary);letter-spacing:-1px}.brand span{font-size:21px;letter-spacing:.3px}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:.5px;color:#9eacc7}aside .brand{color:white;margin:0 12px 40px}.nav-label{font-size:10px;letter-spacing:2px;color:#9eacc7;padding:0 14px 12px}.nav{display:block;color:#cbd4e7;padding:12px 16px;border-radius:9px;margin-bottom:5px}.nav.active{background:#293a61;color:white}.aside-note{margin:40px 14px;color:#9eacc7;font-size:12px}.workspace{margin-left:240px}header{background:white;border-bottom:1px solid var(--line);padding:22px 40px;display:flex;justify-content:space-between;align-items:center;gap:20px}.year-select{display:flex;gap:8px;align-items:center;margin-top:8px}.year-select select{padding:6px 10px;font-size:12px}.year-select button{padding:6px 10px;font-size:12px}.account{display:flex;gap:12px;align-items:center}.avatar{display:grid;place-items:center;border-radius:50%;background:#e9efff;width:40px;height:40px;font-weight:700}main{padding:36px 40px;max-width:1400px}.eyebrow{letter-spacing:2px;font-size:11px;font-weight:700;color:var(--primary);margin:0 0 10px}section{background:white;border:1px solid var(--line);border-radius:14px;padding:25px;margin:20px 0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cards section{margin:0}.cards h2{font-size:32px;margin:12px 0}.cards p{font-size:13px}.cards span{font-size:13px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:850px}.full{grid-column:1/-1}label{display:block;font-size:13px;font-weight:600;color:#36425a}input,select,textarea{font:inherit;display:block;width:100%;padding:11px 12px;border:1px solid #cbd4e2;border-radius:7px;color:var(--ink);background:white;margin-top:7px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:2px}input[type=color]{height:46px}textarea{min-height:95px}.check{display:flex;gap:10px;align-items:center}.check input{width:auto;margin:0}button{font:inherit;background:var(--primary);color:white;border:0;border-radius:7px;padding:11px 18px;cursor:pointer;font-weight:600;align-self:end}.secondary{background:#f1f4f9;color:#36425a;border:1px solid var(--line)}.alert{padding:14px 18px;background:#eef3ff;border:1px solid #ccd9ff;border-radius:9px;margin:20px 0}.small{font-size:12px}.steps{display:flex;flex-wrap:wrap;gap:25px}footer{padding:0 40px 30px;color:var(--muted);font-size:11px}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top left,#dce6ff,transparent 60%),#f4f6fa}.auth-card{margin:40px 20px;padding:40px;background:white;border:1px solid var(--line);border-radius:20px;width:100%;max-width:520px;box-shadow:0 20px 70px #16234310}.auth-card .brand{margin-bottom:30px}.auth-card label{margin:18px 0}.auth-card button{width:100%;margin-top:10px}.auth-card hr{border:0;border-top:1px solid var(--line);margin:25px 0}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{background:#f6f8fc;color:#69748b;font-weight:600}td,th{padding:14px 12px;border-bottom:1px solid var(--line)}.table-wrap{overflow-x:auto}.report-actions{display:flex;justify-content:flex-end;align-items:center;gap:20px}.badge{display:inline-block;background:#f1f4f9;padding:3px 10px;border-radius:20px;font-size:11px!important}.roadmap{grid-template-columns:repeat(3,minmax(0,1fr))}.roadmap section{padding:20px}@media(max-width:950px){aside{position:static;width:auto;padding:18px}aside .brand{margin:0 0 16px}.nav-label,.aside-note{display:none}.nav{display:inline-block;padding:7px 10px;font-size:12px}.workspace{margin-left:0}.cards,.roadmap{grid-template-columns:1fr 1fr}header,main{padding:22px}header{align-items:flex-start}.year-select{flex-wrap:wrap}}@media(max-width:600px){.cards,.roadmap,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}header{flex-direction:column}h1{font-size:26px}.auth-card{padding:28px;width:calc(100% - 40px)}}@media print{aside,header,footer,.report-actions,.eyebrow{display:none}.workspace{margin:0}body{background:white;color:black}main{padding:0;max-width:none}section{border:0;padding:0}table{font-size:10px}tr{break-inside:avoid}}
/* Georgia Hill identity */
:root{--primary:#c50929;--ink:#191b23;--muted:#737581;--line:#ececf1;--blue:#279be9;--warm:#ffb36b}body{background:#f6f5f7}.brand img{width:50px;height:50px;object-fit:contain}.auth-card .brand img{width:64px;height:64px}aside{background:radial-gradient(circle at 15% 90%,#65132377,transparent 45%),#16171e;border-right:1px solid #ffffff0a}.nav{transition:background .25s,transform .25s,color .25s}.nav:hover{background:#ffffff0c;transform:translateX(4px);text-decoration:none;color:white}.nav.active{background:linear-gradient(110deg,var(--primary),#950b24);box-shadow:0 8px 22px #c5092925}.nav-label{color:#92929f}.aside-note{border-top:1px solid #ffffff14;padding-top:20px;color:#9a99a7}header{background:#ffffffed;backdrop-filter:blur(16px)}.avatar{background:#fff0f1;color:var(--primary);transition:transform .25s}.avatar:hover{transform:translateY(-3px);text-decoration:none}section{box-shadow:0 4px 20px #23202e04;transition:transform .3s,box-shadow .3s,border-color .3s}.cards section:hover{transform:translateY(-7px);box-shadow:0 18px 36px #3a203016;border-color:#e5bac2}.cards>section{position:relative;overflow:hidden;padding-top:28px}.cards>section:before{content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:var(--primary)}.cards>section:nth-child(2):before{background:var(--blue)}.cards>section:nth-child(3):before{background:var(--warm)}.cards h2{letter-spacing:-1px}.welcome-banner{display:grid;grid-template-columns:1.25fr 1fr;position:relative;overflow:hidden;background:radial-gradient(circle at 80% 0%,#ef5574aa,transparent 42%),linear-gradient(120deg,#aa0828,#d5193b);border-radius:22px;padding:36px 40px;color:white;margin:24px 0;box-shadow:0 18px 40px #b9142e20;min-height:290px}.welcome-banner h2{font-size:37px;line-height:1.12;letter-spacing:-1.3px;margin:18px 0}.welcome-banner p{color:#ffe0e7;font-size:14px;max-width:390px}.hero-tag{display:inline-block;font-size:10px;letter-spacing:2px;font-weight:700;background:#ffffff15;border:1px solid #ffffff27;border-radius:20px;padding:6px 12px}.hero-link{color:white;display:inline-flex;gap:30px;align-items:center;font-size:13px;font-weight:600;border-bottom:1px solid #ffffff50;padding-bottom:6px;margin-top:8px}.hero-link:hover{text-decoration:none}.hero-link span{transition:transform .25s}.hero-link:hover span{transform:translate(3px,-3px)}.hero-art{position:relative;min-height:240px;display:grid;place-items:center}.hero-art>img{width:178px;height:178px;border-radius:50%;filter:drop-shadow(0 20px 20px #4b001850);animation:float 6s ease-in-out infinite}.orbit{position:absolute;width:230px;height:230px;border:1px solid #ffffff24;border-radius:50%;transform:rotate(-20deg)}.orbit-two{width:290px;height:290px;border-style:dashed;opacity:.6}.float-tag{position:absolute;backdrop-filter:blur(12px);background:#ffffffee;border:1px solid white;color:#722238;box-shadow:0 15px 30px #640a2830;padding:10px 17px;border-radius:12px;font-size:12px;font-weight:600;animation:float 5s ease-in-out infinite}.tag-one{top:10px;right:0;transform:rotate(5deg)}.tag-two{bottom:5px;left:0;animation-delay:-2s}button{transition:transform .2s,box-shadow .2s,filter .2s}button:hover{transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 6px 16px #c5092920}button:active{transform:translateY(0)}.secondary:hover{box-shadow:0 5px 15px #20202a10}.alert{background:#fff2f4;border-color:#f3c7d0;color:#8e1b33}.steps a{padding:14px 18px;border:1px solid var(--line);border-radius:10px;transition:background .2s,transform .2s}.steps a:hover{background:#fff2f4;transform:translateY(-3px);text-decoration:none}.auth{display:grid;grid-template-columns:1.1fr 1fr;background:#fbf9fa;min-height:100vh;padding:32px;gap:36px;align-items:center}.auth-story{position:relative;overflow:hidden;background:radial-gradient(circle at 0% 100%,#86152a,transparent 55%),#181820;border-radius:28px;min-height:calc(100vh - 64px);padding:80px 55px;display:flex;flex-direction:column;justify-content:center;color:white}.auth-story .hero-tag{align-self:flex-start;color:#ffc7d3}.auth-story h2{font-size:clamp(38px,4.5vw,68px);line-height:1.04;letter-spacing:-3px;margin:35px 0 20px;position:relative;z-index:1}.auth-story em{font-style:normal;color:#ff7c98}.auth-story p{color:#bab7c4;font-size:15px;position:relative;z-index:1}.story-orb{position:absolute;right:-30px;bottom:65px;font-size:230px;color:#ffb36b;line-height:1;opacity:.4;animation:float 9s ease-in-out infinite}.story-footer{position:absolute;bottom:35px;color:#8f8b9c;font-size:11px;letter-spacing:1px}.auth-card{margin:30px auto;box-shadow:0 25px 70px #45212a0a;max-width:470px}.auth-card h1{font-size:31px}.auth-card .eyebrow{font-size:9px}.auth:has(.auth-card form input[name=setup_key]){display:grid;grid-template-columns:1fr}.auth:has(.auth-card form input[name=setup_key]) .auth-card{max-width:600px}.auth:has(.auth-card form input[name=setup_key]){background:radial-gradient(circle at 20% 10%,#ffe0e7,transparent 50%),#f6f5f7}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -9px}}@media(max-width:1000px){.auth{padding:20px;gap:20px}.auth-story{padding:50px 30px}.auth-story h2{letter-spacing:-1.5px}.welcome-banner{padding:30px;grid-template-columns:1.2fr 1fr}.hero-art>img{width:130px;height:130px}.orbit{width:180px;height:180px}.orbit-two{width:220px;height:220px}.float-tag{font-size:10px;padding:8px 10px}}@media(max-width:700px){.auth{display:block;padding:20px}.auth-story{min-height:260px;padding:28px}.auth-story h2{font-size:35px;margin:18px 0}.auth-story p,.story-footer,.story-orb{display:none}.auth-story h2 br{display:none}.auth-story h2 em{display:block}.auth-card{width:100%;margin:20px auto}.welcome-banner{grid-template-columns:1fr;padding:26px}.welcome-banner h2{font-size:32px}.hero-art{display:none}.brand img{width:42px;height:42px}.steps{gap:10px}.steps a{width:100%}.account{width:100%;justify-content:space-between}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.welcome-banner{background:white;color:black;box-shadow:none}.hero-art{display:none}section{box-shadow:none}.cards>section:before{display:none}}

aside{overflow-y:auto}.assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.assignment-grid section{margin:12px 0}.assignment-grid h2{font-size:17px}.assignment-grid label{margin:15px 0}.assignment-grid button{width:100%;font-size:13px}.subtext{display:block;font-size:11px;color:var(--muted)}.inline-form{display:inline-block;margin:4px 0 4px 10px}.small-button{font-size:11px;padding:7px 10px}details{font-size:12px;margin-top:7px}details form{max-width:260px}details button{margin-top:8px}.auth:has(input[name=csrf]):has(form button):not(:has(.auth-story)){grid-template-columns:1fr}.auth:not(:has(.auth-story)) .auth-card{width:calc(100% - 40px)}@media(max-width:1100px){.assignment-grid{grid-template-columns:1fr}}@media print{.editor,.no-print,.alert,.assignment-grid{display:none!important}.report-actions{display:none}h1{font-size:22px}thead{display:table-header-group}}
