@font-face{font-family:LocalUI;src:local('Segoe UI')}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:#f3f5f5;color:#202f2b;font-family:LocalUI,'Segoe UI',Arial,sans-serif;line-height:1.5}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;letter-spacing:-1px;line-height:1.25;margin-bottom:10px;font-weight:650}h2{font-size:1.2rem;letter-spacing:-.3px;font-weight:650;margin-bottom:12px}h3{font-size:1rem;font-weight:650;margin-bottom:8px}p{margin-bottom:16px}small{font-size:.8125rem;color:#687872;display:block;line-height:1.5}.muted{color:#687872}.eyebrow{font-size:.75rem;font-weight:650;letter-spacing:1.5px;display:block;margin-bottom:14px;color:#6b7c75}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:8px;padding:11px 18px;font-size:.875rem;font-weight:600;min-height:44px;white-space:nowrap}.primary{background:#234b3c;color:white;border:1px solid #234b3c}.primary:hover{background:#163e2f}.secondary{background:white;color:#294638;border:1px solid #d5ded9}.secondary:hover{background:#f0f5f2}.plain,.text-button{font-size:.875rem;color:#426452;padding:8px 0}.text-button{font-weight:600}.plain:hover,.text-button:hover{text-decoration:underline}.full{width:100%}.danger{color:#a44235}input,select{background:#fff;border:1px solid #cdd7d2;border-radius:7px;padding:10px 12px;min-height:44px;max-width:100%;color:#20382b}input:focus,select:focus{outline:2px solid #779c66;outline-offset:1px}button:focus-visible,a:focus-visible{outline:3px solid #9cb879;outline-offset:4px}input::placeholder{color:#7c8a83}label{display:block;font-size:.875rem;font-weight:600;margin:16px 0}label input,label select{display:block;width:100%;margin-top:7px}label small{font-weight:400;margin-top:7px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-error{color:#aa392e;font-size:.875rem;margin:12px 0;min-height:1px}.loading{margin:20vh auto;text-align:center;max-width:500px;padding:30px}.brand{display:flex;align-items:center;gap:12px;font-size:1.3rem;font-weight:650;letter-spacing:-.3px}.brand-mark{display:flex;align-items:center;justify-content:center;background:#cbee87;color:#1d392d;border-radius:9px;width:46px;height:46px;font-size:1.4rem;letter-spacing:-2px}.brand-mark span{font-size:1rem;align-self:flex-start;margin-top:5px;margin-left:1px}.brand-sub{display:block;font-size:.625rem;letter-spacing:1.6px;font-weight:500;margin-top:2px;color:#adbbb4}.layout{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;background:#162f28;color:#edf3ef;padding:30px 21px 16px;display:flex;flex-direction:column}.sidebar .brand{margin:0 5px 36px}.course{padding:0 10px 25px;margin-bottom:18px;border-bottom:1px solid #3a4d44}.course .eyebrow{color:#98afa1;font-size:.6875rem;letter-spacing:1.5px;margin-bottom:10px}.course p{font-size:.875rem;color:#d1dcd5;line-height:1.55}.course-tag{font-size:.75rem;border:1px solid #526b5e;padding:3px 8px;border-radius:4px;color:#d1e2d6}.nav-item{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:13px 15px;font-size:.875rem;border-radius:7px;margin:4px 0;color:#c7d5cc}.nav-item span{font-size:1.3rem;width:23px;line-height:1}.nav-item.active{color:#173a28;background:#ccee91;font-weight:650}.nav-item:hover:not(.active){background:#294438;color:white}.sidebar-bottom{margin-top:auto;padding-top:30px}.term{font-size:.875rem;padding:12px;color:#dde5df}.term span{display:block;font-size:.75rem;color:#9bada2}.user-card{display:flex;align-items:center;gap:10px;text-align:left;border-top:1px solid #3a4d44;padding:20px 3px 6px;width:100%;font-size:.8125rem}.user-card small{color:#adbbb3;font-size:.75rem;margin-top:3px}.avatar{display:inline-flex;align-items:center;justify-content:center;background:#e7ede7;color:#436345;width:44px;height:44px;border-radius:50%;font-size:.875rem;font-weight:650;flex-shrink:0}.avatar.small{height:34px;width:34px;font-size:.6875rem}.avatar.large{height:76px;width:76px;font-size:1.5rem;margin-bottom:20px}.user-card .avatar{background:#3c5545;color:#d6e8cb}.main{min-width:0}.topbar{height:78px;border-bottom:1px solid #dfe5e1;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fafbfa;font-size:.8125rem;color:#738077}.breadcrumb{color:#334b3c;margin-left:15px}.content{padding:34px 40px 18px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-heading .eyebrow{font-size:.6875rem;letter-spacing:1.2px;margin-bottom:10px}.page-heading p{margin:0;font-size:.9375rem}.overview-top{display:grid;grid-template-columns:minmax(0,2.45fr) minmax(240px,1fr);gap:22px}.feature{border-radius:12px;background:#e4eddf;display:flex;justify-content:space-between;overflow:hidden;padding:30px 32px;min-height:249px;border:1px solid #dce6d5;gap:15px}.feature>div:first-child{max-width:450px;position:relative;z-index:1}.feature .eyebrow{color:#546c4f;font-size:.6875rem}.feature h2{font-size:1.6rem;line-height:1.25;margin:10px 0 16px;letter-spacing:-.7px}.feature p{font-size:.875rem;color:#536b54;max-width:410px;line-height:1.65}.feature-bottom{display:flex;gap:8px;margin-top:24px}.pill{font-size:.75rem;padding:5px 10px;border:1px solid #aebe9f;border-radius:20px;color:#456144}.feature-number{font-size:6.5rem;line-height:.95;letter-spacing:-8px;font-weight:750;color:#b5c9a5;align-self:center;text-align:right;min-width:115px;user-select:none}.feature-number span{display:block;font-size:1.5rem;letter-spacing:7px;margin-top:17px}.leader-card{background:white;border:1px solid #dde4df;border-radius:12px;padding:23px 25px}.leader-card .eyebrow{font-size:.6875rem;margin-bottom:10px}.leader-symbol{font-size:2.5rem;line-height:1;font-weight:650;letter-spacing:-2px;color:#648642;margin:12px 0}.leader-card h3{margin:12px 0 3px}.leader-card p{font-size:.8125rem;margin-bottom:6px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.stat{background:white;border:1px solid #dde4df;border-radius:10px;padding:20px 22px}.stat>span{font-size:.8125rem;color:#5d7064}.stat strong{display:block;font-size:2rem;line-height:1.4;font-weight:600;letter-spacing:-1px;margin:6px 0}.stat em{font-size:1.125rem;font-style:normal;color:#94a097;font-weight:400;letter-spacing:0}.stat small{font-size:.75rem}.two-col{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.panel{background:white;border:1px solid #dde4df;border-radius:11px;overflow:hidden;min-width:0}.panel-heading{padding:24px 26px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-heading h2{margin:0}.panel-heading p{font-size:.8125rem;color:#7a887f;margin:6px 0 0}.panel-heading .text-button{font-size:.8125rem}.empty{text-align:center;padding:32px 25px 38px;max-width:460px;margin:auto}.empty-mark{display:flex;align-items:center;justify-content:center;margin:0 auto 16px;border:1px solid #e0e6e1;border-radius:10px;background:#f5f8f4;font-size:1.5rem;color:#89a177;width:47px;height:47px}.empty h3{font-size:1rem}.empty p{font-size:.875rem;color:#7d8981;max-width:330px;margin:0 auto 18px}.lesson-list{width:calc(100% - 44px);margin:0 22px;display:flex;align-items:center;gap:12px;text-align:left;border-top:1px solid #edf0ed;padding:16px 0}.lesson-list:hover{background:#f7faf5}.lesson-list>span:nth-child(2){flex:1}.lesson-list strong{font-size:.875rem;font-weight:600;display:block}.lesson-list small{font-size:.75rem;margin-top:3px}.lesson-list b{text-align:right;font-size:1.125rem;font-weight:600}.type-icon{display:flex;align-items:center;justify-content:center;width:36px;height:40px;border-radius:7px;flex-shrink:0}.lecture{background:#edf2f8!important;color:#466580!important}.practice{background:#eef3e3!important;color:#5d722e!important}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:15px;flex-wrap:wrap}.toolbar-right{display:flex;gap:10px;align-items:center}.toolbar input{font-size:.875rem;max-width:220px}.toolbar select{font-size:.875rem}.tabs{display:flex;gap:4px;background:#e7ece8;padding:4px;border-radius:8px;font-size:.875rem}.tabs button,.tabs>span{padding:8px 14px;border-radius:5px;color:#5f7264;white-space:nowrap}.tabs .selected{background:#fff;color:#263f2c;box-shadow:0 1px 4px #23382812;font-weight:600}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:.875rem}th{font-weight:550}th,td{padding:16px 22px;border-bottom:1px solid #e8ede9}thead{background:#f8faf7;color:#73816f;font-size:.75rem}tbody tr:last-child>*{border-bottom:0}tbody tr:hover{background:#fafcf9}td strong{font-size:.875rem;font-weight:600}td small{font-size:.75rem;margin-top:4px}td b{font-size:1.1rem}code{font-size:.875rem;background:#f1f4ef;padding:3px 6px;border-radius:4px;white-space:normal;overflow-wrap:anywhere}.badge{display:inline-block;background:#edf1ee;color:#5e7162;font-size:.6875rem;font-weight:500;padding:4px 8px;border-radius:5px;white-space:nowrap}.badge.disabled{background:#faece8;color:#a2513d}.student-name{display:flex;gap:10px;align-items:center;font-size:.8125rem;line-height:1.5}.student-name small{font-size:.75rem;font-weight:400}.journal-table th,.journal-table td{padding:13px 18px}.journal-table thead th:not(:first-child){min-width:155px;max-width:220px}.journal-table .student-col{position:sticky;left:0;background:#f8faf7;z-index:2;min-width:245px}.journal-table tbody th{position:sticky;left:0;background:white;z-index:1;border-right:1px solid #e8ede9}.column-button{text-align:left;display:block;max-width:185px;white-space:normal;min-height:84px}.column-button strong{display:block;line-height:1.4;color:#41563f;font-size:.8125rem;margin:8px 0 5px;font-weight:600}.column-button small{font-size:.75rem}.score{position:relative;min-width:48px;min-height:36px;border:1px solid #e3e9e3;border-radius:6px;color:#b2bcb2}.score.filled{background:#eff5e8;border-color:#d9e5ce;color:#4c692f;font-weight:600}.score:hover{border-color:#5e8145}.note-dot{position:absolute;right:4px;top:4px;width:4px;height:4px;background:#a37235;border-radius:50%}.total{font-weight:650}.table-footer{border-top:1px solid #e3e9e3;padding:15px 22px;display:flex;justify-content:space-between;gap:15px;font-size:.75rem;color:#7e897d}.rating-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:22px}.rank{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#768371;background:#f1f4ef;font-weight:650}.rank.first{color:#4d631e;background:#e6f1c7}.ranking-table td:nth-child(4){text-align:right}.ranking-table th:nth-child(4){text-align:right}.my-row{background:#f3f8e9}.you{font-size:.6875rem;background:#d8edb7;color:#526a31;padding:2px 6px;border-radius:4px}.bar-chart{padding:10px 25px 25px}.bar-row{display:flex;align-items:center;gap:12px;margin:19px 0}.bar-rank{font-size:.8125rem;color:#95a08e;width:14px}.bar-main{flex:1;min-width:0}.bar-main>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:.8125rem}.bar-main b{white-space:nowrap;font-size:.875rem}.bar-main small{display:inline;font-weight:400;font-size:.6875rem}.bar-track{height:7px;border-radius:5px;background:#f0f3ed;overflow:hidden}.bar-fill{display:block;height:100%;background:#4e7342;border-radius:5px;min-width:0}.bar-fill.color-1{background:#89a868}.bar-fill.color-2{background:#b9cd8b}.chart-note{font-size:.75rem;color:#7c8878;margin:23px 0 0}.rules{padding:27px 8px}.rules h3{font-size:.875rem}.rules p{font-size:.8125rem;color:#75816e;line-height:1.7}.student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.student-card{padding:23px;background:#fff;border:1px solid #dfe5dd;border-radius:10px;position:relative}.student-card .badge{position:absolute;right:20px;top:26px}.student-card h3{font-size:1.125rem;margin:20px 0 12px}.student-card h3 span{display:block;font-size:.875rem;font-weight:400;margin-top:4px}.student-card p{font-size:.75rem;color:#8a9584;margin-bottom:0}.row-actions{display:flex;gap:16px}.row-actions button{font-size:.8125rem}.section-gap{margin-top:24px}.audit{padding:0 26px 20px;max-height:440px;overflow:auto}.audit>div{display:flex;gap:13px;border-bottom:1px solid #eef1eb;padding:15px 0}.audit p{font-size:.8125rem;margin:0}.audit small{font-size:.75rem;margin-top:6px}.audit-dot{height:6px;width:6px;background:#a8b990;flex-shrink:0;border-radius:50%;margin-top:8px}.integration{padding:26px}.integration p{font-size:.875rem;line-height:1.7}.integration hr{border:0;border-top:1px solid #e3e9df;margin:25px 0}.profile-grid{display:grid;grid-template-columns:1fr 1.7fr;gap:24px}.profile-card{padding:40px 25px;text-align:center;align-self:start}.password-panel{padding:30px}.password-panel form{max-width:500px}.password-panel p{font-size:.875rem}.personal{margin-top:24px;padding:26px;display:flex;align-items:center;gap:40px}.personal h2{margin-bottom:4px}.personal p{margin:0;font-size:.875rem}.progress{height:10px;background:#edf2e5;flex:1;border-radius:8px;overflow:hidden}.progress>div{height:100%;background:#779a4e}footer{margin-top:36px;padding-top:16px;border-top:1px solid #dce3d8;display:flex;justify-content:space-between;gap:15px;font-size:.6875rem;color:#929c8b}footer span{max-width:70%;text-align:right}.auth{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:#fcfdfb}.auth-story{background:#162f28;color:#eef5ec;padding:50px 65px;display:flex;flex-direction:column}.auth-title{margin:auto 0;padding:70px 0}.auth-title .eyebrow{color:#afc0a9;font-size:.75rem}.auth-title h1{font-size:clamp(2.5rem,4.1vw,4.8rem);line-height:1.13;letter-spacing:-2px;font-weight:600;margin:26px 0}.auth-title h1 span{color:#c8ec8a}.auth-title p{font-size:1rem;max-width:380px;line-height:1.8;color:#a3b7a6}.auth-foot{display:flex;justify-content:space-between;font-size:.75rem;color:#a3b7a6;border-top:1px solid #3b5042;padding-top:25px;gap:15px}.auth-form{display:flex;align-items:center;justify-content:center;padding:45px}.auth-form-inner{width:100%;max-width:380px}.auth-form h2{font-size:2rem;letter-spacing:-1px;margin:10px 0 14px}.auth-form .muted{font-size:.9375rem;line-height:1.7}.auth-form form{margin-top:30px}.auth-form form>.primary{margin-top:14px}.auth-note{font-size:.8125rem;color:#8d9687;border-top:1px solid #e1e6dc;padding-top:22px;margin-top:30px;line-height:1.7}.password-field{position:relative}.password-field input{padding-right:87px}.password-field button{position:absolute;right:12px;top:7px;font-size:.75rem}dialog{border:1px solid #d5dfce;border-radius:13px;padding:26px 30px;width:min(720px,calc(100vw - 32px));max-height:90vh;color:#26382b;box-shadow:0 20px 100px #18352933}dialog::backdrop{background:#172a2066;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.modal-heading h2{font-size:1.35rem;line-height:1.4;margin:0}.close{font-size:1.6rem;color:#738068;min-width:36px;min-height:36px}.modal-bottom{position:sticky;bottom:-26px;background:white;border-top:1px solid #e1e8d9;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0 4px}.modal-bottom .muted{font-size:.75rem}.grade-list{margin:20px 0}.grade-row{display:grid;grid-template-columns:1.35fr 82px 1.2fr;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #edf1e6}.grade-row input{min-width:0;font-size:.8125rem}.grade-row p{grid-column:1/-1;font-size:.875rem;color:#6f7e63;margin:0}.grade-person strong{font-size:.8125rem;font-weight:600}.grade-person small{font-size:.6875rem}.grade-row input[type=number]{text-align:center}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);z-index:1000;background:#244c37;color:white;box-shadow:0 6px 30px #142b2225;border-radius:9px;padding:13px 22px;max-width:90vw;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:.875rem}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#983e33}[hidden]{display:none!important}
@media(min-width:1600px){.content{padding-top:42px}.overview-top{grid-template-columns:2.5fr 1fr}.feature{min-height:275px}}
@media(max-width:1200px){.layout{grid-template-columns:216px minmax(0,1fr)}.sidebar{padding:25px 15px 15px}.content{padding:28px 25px 16px}.topbar{padding:0 25px}.feature-number{display:none}.stats{gap:10px}.stat{padding:18px 16px}.two-col{grid-template-columns:1fr 1fr}.student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rating-grid{grid-template-columns:1fr}.rating-grid>div{display:grid;grid-template-columns:1fr 1fr;gap:25px}.rules{padding-top:16px}.auth-story{padding:45px 40px}}
@media(max-width:900px){.layout{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:24px 12px 12px}.sidebar .brand{font-size:1.1rem;gap:8px;margin-left:0}.brand-mark{width:38px;height:38px}.brand-sub{font-size:.55rem;letter-spacing:1px}.course{padding-left:5px;padding-right:5px}.course p{font-size:.8125rem}.nav-item{font-size:.8125rem;padding:12px 9px;gap:7px}.content{padding:26px 20px}.page-heading{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.overview-top{grid-template-columns:1fr}.leader-card{display:grid;grid-template-columns:auto 1fr;gap:4px 18px}.leader-card .eyebrow{grid-column:1/-1}.leader-symbol{grid-row:2/4;margin:3px 0}.leader-card h3{margin:0}.leader-card .text-button{grid-column:2;text-align:left;justify-self:start}.two-col{grid-template-columns:1fr}.feature{min-height:220px}.feature-number{display:block}.profile-grid{grid-template-columns:1fr}.profile-card{padding:24px}.breadcrumb{display:none}.auth-story{padding:35px}.auth-form{padding:32px}.auth-title h1{font-size:2.6rem}.auth-title{padding:60px 0}.auth-foot{flex-direction:column}}
@media(max-width:640px){.layout{display:block}.sidebar{position:relative;height:auto;padding:16px 18px 0}.sidebar .brand{margin:0;font-size:1.2rem}.brand-mark{width:35px;height:35px}.brand-sub{font-size:.5rem}.course,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:6px;overflow-x:auto;margin-top:17px;padding-bottom:13px}.nav-item{width:auto;white-space:nowrap;padding:9px 12px;font-size:.8125rem;flex-shrink:0}.nav-item span{display:none}.topbar{height:54px;padding:0 20px}.topbar:before{display:none}.content{padding:25px 17px 16px}.page-heading{gap:18px;margin-bottom:23px}.page-heading .primary{width:100%}h1{font-size:1.7rem}.page-heading .eyebrow{font-size:.625rem}.page-heading p{font-size:.875rem}.overview-top{gap:15px}.feature{padding:25px 23px;min-height:240px}.feature h2{font-size:1.5rem}.feature-number{display:none}.feature p{font-size:.8125rem}.feature-bottom{flex-wrap:wrap}.leader-card{padding:21px 23px}.stats{margin:16px 0;gap:10px}.stat{padding:16px 13px}.stat>span{font-size:.75rem}.stat small{font-size:.6875rem}.stat strong{font-size:1.8rem}.stat em{font-size:.875rem}.two-col{gap:16px}.panel-heading{padding:21px 20px 12px}.panel-heading h2{font-size:1.05rem}.panel-heading .text-button{font-size:.75rem}.empty{padding:25px 20px 32px}.toolbar{gap:15px}.toolbar-right{width:100%}.toolbar-right input{flex:1;max-width:none;min-width:0}.tabs{max-width:100%;gap:2px}.tabs button,.tabs>span{font-size:.8125rem;padding:8px 11px}.toolbar select{width:100%}.rating-grid>div{display:block}.ranking-table td,.ranking-table th{padding:13px 12px}.ranking-table td:nth-child(2){min-width:170px}.journal-table .student-col{min-width:185px}.journal-table th,.journal-table td{padding:12px}.student-name .avatar{display:none}.table-footer{flex-direction:column;font-size:.6875rem;padding:13px 16px}.student-grid{gap:10px}.student-card{padding:16px}.student-card .badge{right:12px;top:20px;font-size:.625rem}.student-card h3{font-size:1rem;overflow-wrap:anywhere}.student-card h3 span{font-size:.8125rem}.student-card .avatar{width:35px;height:35px;font-size:.6875rem}.student-card p{font-size:.6875rem}.rating-grid{gap:16px}.personal{flex-direction:column;align-items:stretch;gap:20px}.progress{min-height:10px}.password-panel{padding:22px}.auth{display:block}.auth-story{padding:22px 25px}.auth-title{padding:22px 0 10px}.auth-title .eyebrow{display:none}.auth-title h1{font-size:2rem;letter-spacing:-1px;margin:0 0 16px}.auth-title h1 br{display:none}.auth-title h1 span{display:block}.auth-title p{font-size:.8125rem;margin:0}.auth-foot{display:none}.auth-form{padding:32px 25px 42px}.auth-form h2{font-size:1.7rem}.auth-form .eyebrow{font-size:.625rem}.auth-form .muted{font-size:.875rem}.auth-form form{margin-top:20px}dialog{padding:22px 20px}.modal-heading h2{font-size:1.1rem}.grade-row{grid-template-columns:1fr 75px}.grade-row input[data-note]{grid-column:1/-1}.grade-person strong{font-size:.875rem}.modal-bottom{bottom:-22px;flex-direction:column;align-items:stretch}.form-row{grid-template-columns:1fr;gap:0}.integration{padding:22px}footer{font-size:.625rem;margin-top:28px}footer span{max-width:60%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.topbar-actions{display:flex;align-items:center;gap:20px}.integration #sheets-revoke{display:block;margin-top:10px}.stat>span,.student-name,.column-button strong,.bar-main>div:first-child,.grade-person strong{font-size:.875rem}@media(max-width:640px){.topbar-actions{gap:15px}.topbar>span{font-size:.75rem}.topbar-actions .plain{font-size:.75rem}.student-name{font-size:.8125rem}}

.preview-banner{padding:10px 25px;background:#fff4cf;color:#786120;font-size:.8125rem;border-bottom:1px solid #eddeae}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 11px;border:1px solid #cbd7ce;border-radius:7px;font-size:.8125rem;white-space:nowrap;background:#fff;color:#35543e}.theme-toggle:hover{background:#eaf1e6}.auth-theme{display:flex;justify-content:flex-end;margin-bottom:25px}
html[data-theme=dark] body{background:#121b18;color:#e2ebe5}
html[data-theme=dark] .muted,html[data-theme=dark] small,html[data-theme=dark] .eyebrow,html[data-theme=dark] .stat>span,html[data-theme=dark] .rules p,html[data-theme=dark] .chart-note,html[data-theme=dark] .empty p,html[data-theme=dark] .student-card p,html[data-theme=dark] .panel-heading p,html[data-theme=dark] .table-footer{color:#a5b6aa}
html[data-theme=dark] .panel,html[data-theme=dark] .leader-card,html[data-theme=dark] .stat,html[data-theme=dark] .student-card,html[data-theme=dark] dialog,html[data-theme=dark] .journal-table tbody th,html[data-theme=dark] .modal-bottom{background:#1c2923;color:#e2ebe5;border-color:#37473d}
html[data-theme=dark] .topbar,html[data-theme=dark] thead,html[data-theme=dark] .journal-table .student-col{background:#18231e;border-color:#37473d;color:#b4c6b6}
html[data-theme=dark] .breadcrumb,html[data-theme=dark] .column-button strong{color:#cfdfce}
html[data-theme=dark] .sidebar,html[data-theme=dark] .auth-story{background:#0d2019}
html[data-theme=dark] input,html[data-theme=dark] select{background:#13201a;color:#e3ede5;border-color:#4b6251}
html[data-theme=dark] input::placeholder{color:#94a598}
html[data-theme=dark] .primary{background:#c4e991;color:#16321f;border-color:#c4e991}
html[data-theme=dark] .primary:hover{background:#d6f4ad}
html[data-theme=dark] .secondary,html[data-theme=dark] .theme-toggle{background:#26392c;color:#d6eacb;border-color:#506b4e}
html[data-theme=dark] .secondary:hover,html[data-theme=dark] .theme-toggle:hover{background:#344b39}
html[data-theme=dark] .plain,html[data-theme=dark] .text-button{color:#b8d994}
html[data-theme=dark] .danger,html[data-theme=dark] .form-error{color:#ffb1a4}
html[data-theme=dark] .feature{background:#283d2b;border-color:#425839}
html[data-theme=dark] .feature p,html[data-theme=dark] .feature .eyebrow{color:#b9cdb0}
html[data-theme=dark] .feature-number{color:#789665}
html[data-theme=dark] .pill{border-color:#6c8559;color:#d0e2bd}
html[data-theme=dark] .leader-symbol{color:#b9dc83}
html[data-theme=dark] .avatar,html[data-theme=dark] .badge,html[data-theme=dark] code,html[data-theme=dark] .rank,html[data-theme=dark] .empty-mark{background:#304132;color:#c5d6bd;border-color:#52634b}
html[data-theme=dark] .lecture{background:#253b4e!important;color:#b3d8f6!important}
html[data-theme=dark] .practice{background:#38482a!important;color:#d2e9a7!important}
html[data-theme=dark] .badge.disabled{background:#4b2f2b;color:#ffc1b4}
html[data-theme=dark] .tabs{background:#17241c}
html[data-theme=dark] .tabs button{color:#aabb9f}
html[data-theme=dark] .tabs .selected{background:#3b4e32;color:#e8f2dd;box-shadow:none}
html[data-theme=dark] th,html[data-theme=dark] td,html[data-theme=dark] .journal-table tbody th,html[data-theme=dark] .audit>div,html[data-theme=dark] .grade-row,html[data-theme=dark] .lesson-list,html[data-theme=dark] .integration hr,html[data-theme=dark] .auth-note,html[data-theme=dark] footer{border-color:#384638}
html[data-theme=dark] tbody tr:hover,html[data-theme=dark] .lesson-list:hover{background:#25372a}
html[data-theme=dark] .score{border-color:#4e6148;color:#a3b19b}
html[data-theme=dark] .score.filled,html[data-theme=dark] .rank.first,html[data-theme=dark] .you{background:#405831;color:#e1f2c7;border-color:#6c8655}
html[data-theme=dark] .score:hover{border-color:#b9d895}
html[data-theme=dark] .my-row{background:#2b3b25}
html[data-theme=dark] .bar-track,html[data-theme=dark] .progress{background:#34452d}
html[data-theme=dark] .bar-fill{background:#aad475}
html[data-theme=dark] .bar-fill.color-1{background:#86ad69}
html[data-theme=dark] .bar-fill.color-2{background:#70955e}
html[data-theme=dark] .bar-rank,html[data-theme=dark] .stat em,html[data-theme=dark] .auth-note,html[data-theme=dark] footer,html[data-theme=dark] .close{color:#a6b19b}
html[data-theme=dark] .auth{background:#17221c}
html[data-theme=dark] .preview-banner{background:#463e24;color:#f5e6ab;border-color:#6a5b2b}
html[data-theme=dark] dialog::backdrop{background:#030805b3}
@media(max-width:900px){.topbar{height:auto;min-height:78px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:10px}.topbar-actions{flex-wrap:wrap;gap:14px}}
@media(max-width:640px){.topbar{align-items:flex-start}.topbar>span{width:100%}.topbar-actions{width:100%;justify-content:space-between;gap:8px}.theme-toggle{font-size:.75rem;padding:6px 8px}.auth-theme{margin-bottom:20px}}

/* Compact theme control, motion and leaderboard. */
.theme-toggle{width:40px;height:40px;min-height:40px;padding:8px;border-radius:50%;flex-shrink:0;border-color:transparent;background:transparent;position:relative;transition:background .2s,transform .2s}
.theme-toggle:hover{transform:rotate(12deg);background:#e7eee6}
.theme-toggle svg{width:21px;height:21px;position:absolute;inset:9px;transition:opacity .2s,transform .25s}
.theme-sun{opacity:0;transform:rotate(-70deg) scale(.6)}.theme-moon{opacity:1;transform:rotate(0)}
html[data-theme=dark] .theme-sun{opacity:1;transform:rotate(0) scale(1)}html[data-theme=dark] .theme-moon{opacity:0;transform:rotate(70deg) scale(.6)}
html[data-theme=dark] .theme-toggle{border-color:transparent;background:transparent;color:#d3decf}html[data-theme=dark] .theme-toggle:hover{background:#343c39}
html[data-theme=dark] body{background:#14191b}html[data-theme=dark] .panel,html[data-theme=dark] .leader-card,html[data-theme=dark] .stat,html[data-theme=dark] .student-card,html[data-theme=dark] dialog,html[data-theme=dark] .journal-table tbody th,html[data-theme=dark] .modal-bottom{background:#202729;border-color:#384244}html[data-theme=dark] .topbar,html[data-theme=dark] thead,html[data-theme=dark] .journal-table .student-col{background:#1a2022;border-color:#384244}html[data-theme=dark] .sidebar,html[data-theme=dark] .auth-story{background:#111c19}html[data-theme=dark] .auth{background:#1a2022}
.primary,.secondary,.nav-item,.student-card,.score{transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}.primary:active,.secondary:active{transform:scale(.97)}.student-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px #1830220c}
.password-actions{display:flex;gap:12px;flex-wrap:wrap}.password-actions .secondary{min-width:130px}
dialog[open]{animation:dialog-enter .2s ease-out}@keyframes dialog-enter{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.bar-fill,.stacked-track span,.podium-meter span{transform-origin:left;animation:bar-enter .65s cubic-bezier(.2,.8,.2,1) both}@keyframes bar-enter{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.podium-section{margin-bottom:24px;padding:26px;background:linear-gradient(120deg,#193e30,#294b36);border-radius:14px;color:#f3f8eb;overflow:hidden}.podium-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.podium-heading .eyebrow{color:#c1d49c;font-size:.7rem}.podium-heading h2{font-size:1.6rem;margin-bottom:8px}.podium-heading p{margin:0;font-size:.875rem;color:#cbdbc5}.podium-trophy{color:#d7e999;width:60px;height:60px;flex-shrink:0}.podium-trophy svg{width:100%;height:100%}.podium-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.podium-card{background:#ffffff0d;border:1px solid #ffffff29;padding:20px;border-radius:10px;animation:dialog-enter .4s both;animation-delay:calc(var(--step) * 60ms)}.podium-card.is-leader{background:#d5ec9d;color:#223718;border-color:#d5ec9d}.podium-person{display:flex;gap:10px;align-items:center}.podium-avatar{width:34px;height:34px;border-radius:50%;background:#ffffff18;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}.is-leader .podium-avatar{background:#28461a15}.podium-person h3{font-size:.875rem;margin:0;line-height:1.4}.podium-person small{color:inherit;opacity:.75;font-size:.75rem}.podium-place{margin-left:auto;font-size:1.1rem;font-weight:650;white-space:nowrap}.podium-value{font-size:2.2rem;letter-spacing:-1px;margin:19px 0 12px;line-height:1}.podium-value span{font-size:.8125rem;letter-spacing:0;margin-left:8px;opacity:.75}.podium-meter{height:5px;background:#ffffff18;border-radius:6px;overflow:hidden;margin-bottom:12px}.podium-meter span{height:100%;display:block;background:#c8e19d}.is-leader .podium-meter{background:#2647161c}.is-leader .podium-meter span{background:#426729}.podium-card>small{color:inherit;opacity:.8;font-size:.75rem}.podium-foot{font-size:.8125rem;margin:16px 0 0;color:#c9d8bf}.podium-empty{padding:30px;border:1px dashed #bccab5;background:#edf3e5;border-radius:12px;margin-bottom:24px}.podium-empty h2{font-size:1.4rem}.podium-empty p{font-size:.875rem;margin:0;color:#637857}
.breakdown-panel{margin-top:20px}.chart-legend{display:flex;gap:20px;padding:4px 25px;font-size:.75rem;color:#64745f}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-lecture,.stack-lecture{background:#5f8ca4}.legend-practice,.stack-practice{background:#91af62}.breakdown-chart{padding:5px 25px 25px}.breakdown-row{margin-top:20px}.breakdown-row>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:.75rem;margin-bottom:8px;flex-wrap:wrap}.breakdown-row strong{font-weight:500;font-size:.8125rem}.breakdown-row>div>span{color:#718068}.stacked-track{height:10px;border-radius:6px;background:#edf1e8;display:flex;overflow:hidden}.stacked-track span{display:block;height:100%}.rating-notes{margin-top:20px;padding:24px;border-radius:11px;background:#eaf0e4;border:1px solid #dbe5d2}.rating-notes .eyebrow{font-size:.6875rem;color:#68844a}.rating-notes h3{font-size:1.05rem;line-height:1.45}.rating-notes>p,.rating-notes details p{font-size:.8125rem;line-height:1.75;color:#637557}.rule-chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.rule-chips span{font-size:.6875rem;padding:5px 8px;background:#ffffff99;border-radius:6px;white-space:nowrap}.rule-chips b{margin-right:5px;font-size:.875rem;color:#587e38}.rating-notes summary{font-size:.8125rem;cursor:pointer;color:#426338;padding:7px 0}.rating-notes details p{margin:9px 0 0}html[data-theme=dark] .rating-notes,html[data-theme=dark] .podium-empty{background:#252f29;border-color:#3e4e3c}html[data-theme=dark] .rating-notes>p,html[data-theme=dark] .rating-notes details p,html[data-theme=dark] .podium-empty p,html[data-theme=dark] .chart-legend,html[data-theme=dark] .breakdown-row>div>span{color:#b2c3a7}html[data-theme=dark] .rating-notes summary,html[data-theme=dark] .rating-notes .eyebrow{color:#bdd59b}html[data-theme=dark] .rule-chips span{background:#354233}html[data-theme=dark] .rule-chips b{color:#c2dca1}html[data-theme=dark] .stacked-track{background:#344036}
@media(max-width:1200px){.podium-card{padding:16px}.podium-cards{gap:10px}.podium-person{flex-wrap:wrap}.podium-person>div{flex:1;min-width:80px}.rating-grid>div{display:block}}
@media(max-width:640px){.podium-section{padding:20px}.podium-heading h2{font-size:1.3rem}.podium-trophy{width:43px;height:43px}.podium-cards{grid-template-columns:1fr}.podium-card{padding:17px}.podium-value{font-size:1.8rem;margin:14px 0 10px}.podium-person{flex-wrap:nowrap}.toolbar-right{flex-wrap:wrap}.toolbar-right input{flex-basis:150px}.podium-empty{padding:23px}.theme-toggle{width:38px;height:38px;padding:8px}.rating-notes{padding:21px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.student-card:hover,.theme-toggle:hover{transform:none}}

html[data-theme=dark] .podium-person small,html[data-theme=dark] .podium-card>small{color:inherit;opacity:.82}.podium-cards:has(.podium-card:only-child){grid-template-columns:1fr}

/* Summit chart: a shared baseline and proportional stacked columns. */
.summit{background:var(--surface,#fff);border:1px solid var(--line,#dce4df);border-radius:16px;padding:30px 32px 18px;margin-bottom:24px;overflow:hidden}.summit-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.summit-heading h2{font-size:1.5rem;letter-spacing:-.04em;margin:10px 0}.summit-heading p{font-size:.8rem;color:#6a776e;line-height:1.7;margin:0;max-width:580px}.summit .eyebrow{font-size:.65rem;color:#688358;letter-spacing:.15em}.summit-legend{display:flex;gap:16px;font-size:.75rem;white-space:nowrap;padding-top:10px}.summit-legend span,.summit-split span{display:flex;align-items:center;gap:6px}.summit-legend i,.summit-split i{display:inline-block;width:8px;height:8px;border-radius:3px}.summit-scroll{overflow-x:auto;padding-top:22px}.summit-chart{display:grid;grid-template-columns:repeat(var(--columns),minmax(100px,1fr));gap:24px;max-width:980px;margin:auto}.summit-stage{height:245px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #cbd6cb;background:repeating-linear-gradient(to top,transparent 0,transparent 59px,#87958215 60px,#87958215 61px);padding:45px 8px 0}.summit-tower{height:var(--height);width:min(95px,75%);position:relative;min-height:2px;transform-origin:bottom;animation:tower-rise .65s both cubic-bezier(.2,.7,.2,1);animation-delay:var(--delay)}.tower-body{height:100%;width:100%;position:relative;display:flex;flex-direction:column-reverse;box-shadow:10px 6px 18px #21392812}.tower-segment{display:block;min-height:0;position:relative;background:var(--block)}.tower-segment:after{content:"";position:absolute;top:0;bottom:0;right:-10px;width:10px;background:var(--side);transform:skewY(-30deg);transform-origin:left}.tower-body:before{content:"";position:absolute;top:-6px;left:5px;width:100%;height:6px;transform:skewX(-60deg);background:#b5cfc9;z-index:1}.tower-body:has(.tower-practice[style="flex-grow:0"]):before{background:#b2cfe0}.tower-body:has(.tower-practice:not([style="flex-grow:0"])):before{background:#c7dd9c}.tower-lecture{--block:#739db6;--side:#537b91}.tower-practice{--block:#aac778;--side:#7d9d4e}.tower-zero{background:#c7cfc9}.tower-zero:before,.tower-zero .tower-segment:after{display:none}.summit-score{position:absolute;bottom:calc(100% + 16px);left:50%;transform:translateX(-50%);font-size:1.65rem;line-height:1;font-weight:700;white-space:nowrap;letter-spacing:-.05em}.summit-score small{display:block;font-size:.6rem;color:#778076;font-weight:400;letter-spacing:0;text-align:center;margin-top:4px}.summit-caption{text-align:center;padding:18px 0 8px}.summit-rank{display:inline-block;font-size:.68rem;color:#727c70;border:1px solid #dde4d9;border-radius:20px;padding:3px 10px}.summit-winner .summit-rank{background:#e4eed4;border-color:#c9dba9;color:#45602b}.summit-caption h3{font-size:.82rem;line-height:1.4;margin:10px 0}.summit-caption h3 span{display:block;font-weight:400;color:#798274;font-size:.72rem}.summit-split{display:flex;justify-content:center;gap:12px;font-size:.7rem;color:#6c7969}.summit-note{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid #e4e9e1;padding-top:14px;margin-top:12px;font-size:.65rem;color:#7b8577}.rating-guide{padding:28px;background:#f0f3ec;border:1px solid #dde5d6;border-radius:12px}.rating-guide>.eyebrow{font-size:.64rem;color:#708459}.rating-guide h2{font-size:1.35rem;line-height:1.4;letter-spacing:-.04em;margin:14px 0 22px}.guide-rule{display:flex;align-items:flex-start;gap:16px;padding:19px 0;border-top:1px solid #dce4d5}.guide-rule>b{font-size:.7rem;color:#889779;padding-top:4px}.guide-rule h3{font-size:.85rem;margin:0 0 7px}.guide-rule p,.guide-foot{font-size:.76rem;color:#6f7b65;line-height:1.8;margin:0}.guide-foot{border-top:1px solid #dce4d5;padding-top:17px;font-size:.7rem}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;margin-top:48px}.footer-identity{display:flex;gap:13px;align-items:center}.site-footer .footer-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid #cbd8c0;border-radius:12px;font-size:1rem;color:#567b3b;font-weight:700}.footer-identity strong{font-size:.82rem;font-weight:500;color:#52624b;display:block}.footer-identity small{display:block;font-size:.65rem;margin-top:5px;color:#85907e}.site-footer p{font-size:.65rem;line-height:1.75;text-align:right;margin:0;color:#84907c}.managed-work{display:flex;align-items:center;gap:16px;padding:17px 25px;border-top:1px solid #dfe5df}.managed-work>div{flex:1;min-width:0}.managed-work strong{font-size:.85rem;overflow-wrap:anywhere}.managed-work small{display:block;color:#7c8679;font-size:.72rem;margin-top:5px}.destructive{background:#a8463e!important;color:#fff!important}.row-actions{flex-wrap:wrap}.empty-summit{position:relative;min-height:250px}.empty-summit p{color:#7b8577;max-width:380px;font-size:.85rem}.ghost-columns{display:flex;align-items:flex-end;gap:12px;height:80px;margin:20px 0}.ghost-columns i{width:32px;background:#a8ba8b30;height:25%}.ghost-columns i:nth-child(2){height:60%}.ghost-columns i:nth-child(3){height:100%}.ghost-columns i:nth-child(4){height:75%}.ghost-columns i:nth-child(5){height:40%}
html[data-theme=dark] .summit{background:#1c2224;border-color:#343d3e}html[data-theme=dark] .summit-heading p,html[data-theme=dark] .summit-note,html[data-theme=dark] .summit-caption h3 span,html[data-theme=dark] .summit-split,html[data-theme=dark] .summit-score small{color:#a6b3ad}html[data-theme=dark] .summit .eyebrow{color:#aec68e}html[data-theme=dark] .summit-stage{border-color:#48524a}html[data-theme=dark] .summit-note{border-color:#343d3e}html[data-theme=dark] .summit-rank{border-color:#485344;color:#b5c2ac}html[data-theme=dark] .summit-winner .summit-rank{background:#b9d18e;color:#26341c;border-color:#b9d18e}html[data-theme=dark] .rating-guide{background:#202825;border-color:#36423a}html[data-theme=dark] .guide-rule,html[data-theme=dark] .guide-foot{border-color:#38433a}html[data-theme=dark] .guide-rule p,html[data-theme=dark] .guide-foot{color:#a7b7a1}html[data-theme=dark] .site-footer .footer-mark{color:#b0c895;border-color:#46553d}html[data-theme=dark] .footer-identity strong{color:#bcc8b7}html[data-theme=dark] .site-footer p,html[data-theme=dark] .footer-identity small{color:#98a391}html[data-theme=dark] .managed-work{border-color:#35403b}
@keyframes tower-rise{from{transform:scaleY(.04);opacity:0}to{transform:scaleY(1);opacity:1}}
@media(max-width:900px){.summit-heading{flex-direction:column;gap:5px}.summit{padding:22px}.summit-chart{gap:18px}.site-footer{align-items:flex-start;flex-direction:column}.site-footer p{text-align:left}.managed-work{flex-wrap:wrap}}
@media(max-width:640px){.summit-chart{min-width:540px}.summit-heading h2{font-size:1.25rem}.summit-stage{height:220px}.summit{padding:20px 16px}.summit-note{font-size:.63rem}.rating-guide{padding:22px}.site-footer{margin-top:30px}.managed-work{gap:10px;padding:16px}.managed-work>div{flex-basis:60%}}
@media(prefers-reduced-motion:reduce){.summit-tower{animation:none}}
