﻿:root{--ink:#172b4d;--muted:#72819a;--blue:#315dda;--line:#e7ecf3;--paper:#f5f7fb;--bs-primary:#315dda;--bs-body-color:#263858;--bs-body-font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-size:14px}[v-cloak]{display:none}button,input,select{font:inherit}button:disabled{cursor:wait}.btn{font-weight:550;border-radius:8px;padding:9px 16px}.btn-sm{padding:6px 11px;font-size:12px}.btn-primary{--bs-btn-bg:#315dda;--bs-btn-border-color:#315dda;--bs-btn-hover-bg:#254cc0;--bs-btn-hover-border-color:#254cc0;--bs-btn-disabled-bg:#8299df;--bs-btn-disabled-border-color:#8299df}.btn-outline-primary{--bs-btn-color:#315dda;--bs-btn-border-color:#d1dcfa;--bs-btn-hover-bg:#315dda;--bs-btn-hover-border-color:#315dda}.btn-outline-secondary{--bs-btn-color:#5c6b83;--bs-btn-border-color:#dce3ee;--bs-btn-hover-bg:#eef2f9;--bs-btn-hover-color:#243955;--bs-btn-hover-border-color:#c8d2e2}.btn-light{background:#f1f4f9;border-color:#f1f4f9;color:#51627e}.btn-link{text-decoration:none;color:var(--blue)}.form-control,.form-select{border-color:#dfe5ee;border-radius:8px;font-size:14px;padding:10px 12px}.form-control:focus,.form-select:focus{border-color:#92a9ed;box-shadow:0 0 0 3px #315dda12}.form-control-lg{padding:13px 14px}.form-label{font-size:13px;color:#4e607c}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#8794aa;margin-bottom:12px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-size:23px;font-weight:750;letter-spacing:1px}.brand-icon{width:42px;height:42px;background:var(--blue);border-radius:13px;color:white;display:grid;place-items:center;font-size:23px}.brand small{display:block;font-size:8px;letter-spacing:1.7px;line-height:1.8;font-weight:650;color:#8995a8}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.06fr 1fr;background:white}.login-story{background:#142b55;color:white;padding:52px 64px;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-story:after{content:'';position:absolute;right:-180px;bottom:-330px;border:1px solid #ffffff14;width:750px;height:750px;border-radius:50%;box-shadow:0 0 0 90px #ffffff03,0 0 0 180px #ffffff03;pointer-events:none}.login-story .brand{color:white}.login-story .brand-icon{background:#4770ed}.login-story .brand small{color:#a4b6d5}.story-copy{margin:auto 0;padding:70px 0;position:relative;z-index:1}.story-copy .eyebrow{color:#9fb9f4;letter-spacing:3px}.story-copy h1{font-size:clamp(32px,3.5vw,54px);line-height:1.5;letter-spacing:2px;margin:18px 0 25px;font-weight:650}.story-copy p{color:#acbdd9;font-size:16px;line-height:1.9}.story-path{display:flex;align-items:center;gap:14px;margin-top:50px;flex-wrap:wrap}.path-dot{width:12px;height:12px;background:#83a6ff;border-radius:50%;box-shadow:0 0 0 6px #ffffff0b}.path-dot.light{background:#65c6b6}.story-path b{font-size:13px}.story-path small{display:block;color:#99adce;font-size:10px;margin-top:5px}.path-line{height:1px;width:36px;background:#405a81;margin:0 7px}.story-footer{font-size:11px;color:#879fc3;z-index:1}.login-panel{display:flex;align-items:center;justify-content:center;padding:50px}.login-card{max-width:360px;width:100%}.login-card h2{font-size:29px;font-weight:700;margin-bottom:14px}.login-card>.text-secondary{font-size:13px}.login-note{font-size:11px;color:#93a0b3;line-height:1.9;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.app-shell{display:flex;min-height:100vh}.sidebar{width:228px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:31px 20px 16px;display:flex;flex-direction:column;height:100vh;position:sticky;top:0}.sidebar .brand{padding-left:9px;margin-bottom:49px}.workspace-label{font-size:10px;letter-spacing:1.5px;color:#9ba6b7;padding:0 14px;margin-bottom:14px}.nav-item{background:none;border:0;display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;margin-bottom:7px;text-align:left;border-radius:8px;font-weight:550;color:#6d7d95}.nav-item>span{font-size:19px;width:20px;text-align:center;line-height:20px}.nav-item.active{background:#eef3ff;color:var(--blue)}.nav-item:hover{background:#f2f5fa}.sidebar-note{margin-top:auto;padding:28px 13px;color:#75849b;font-size:11px;line-height:1.9}.sidebar-note b{font-weight:550;color:#5e718c}.sidebar-note p{margin:8px 0 0}.privacy-dot{display:inline-block;width:6px;height:6px;background:#56a594;border-radius:50%;margin-right:7px}.account{border-top:1px solid var(--line);padding:18px 7px 3px;display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:#eaf0ff;color:#4e6cb0;display:grid;place-items:center;font-weight:700;flex-shrink:0}.account b{display:block;max-width:100px;overflow:hidden;text-overflow:ellipsis;font-size:11px}.account small{display:block;font-size:10px;color:#8a98ac;margin-top:3px}.logout{margin-left:auto;border:0;background:none;font-size:20px;color:#9aa7b9}.main-area{flex:1;min-width:0;padding:23px 38px 0;max-width:1700px}.topline{display:flex;justify-content:space-between;font-size:11px;color:#8794a9;align-items:center;margin-bottom:33px}.local-badge{background:#edf6f1;color:#5a8f78;padding:5px 10px;border-radius:20px;font-size:10px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{font-size:28px;letter-spacing:.5px;font-weight:700;margin-bottom:10px;color:var(--ink)}.page-heading p{margin:0;color:#8592a8;font-size:12px}.page-heading .eyebrow{margin-bottom:8px}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:27px}.stat-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 23px;min-width:0}.stat-card>span{display:block;font-size:11px;color:#7d8ca4}.stat-card strong{display:block;font-size:32px;font-weight:650;line-height:1.5;color:#213956;margin:8px 0}.stat-card em{font-size:13px;font-style:normal;font-weight:400;color:#9aa8bc}.stat-card small{font-size:10px;color:#9aa6b8;display:block}.stat-card.accent{background:#edf2ff;border-color:#e2eafa}.stat-card.accent strong{color:var(--blue)}.stat-card .date-stat{font-size:22px;padding:8px 0}.panel{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:21px 24px;border-bottom:1px solid #eef1f6;gap:12px}.panel-title h2{font-size:15px;font-weight:650;color:#334766;margin:0}.panel-title>span{color:#97a3b5;font-size:11px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:23px;gap:20px}.template-card{padding:22px;border:1px solid var(--line);border-radius:10px;transition:border-color .2s;background:linear-gradient(150deg,#fbfcff,white)}.template-card:hover{border-color:#c4d2f5}.template-symbol{background:#edf2ff;color:#5c7ce0;width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-size:24px}.template-card h3{font-size:16px;line-height:1.6;margin-bottom:9px;font-weight:650}.template-card p{font-size:11px;color:#94a0b2;margin-bottom:24px}.template-card-footer{display:flex;flex-wrap:wrap;gap:7px;padding-top:17px;border-top:1px solid var(--line)}.status-pill{border-radius:5px;padding:4px 8px;font-size:10px;white-space:nowrap;align-self:center;font-weight:500}.published{background:#eaf6ee;color:#439469}.draft{background:#fff5dd;color:#b48a30}.retired,.locked{background:#f0f2f6;color:#909aad}.neutral-pill{background:#f1f4f9;color:#6d7c92;padding:4px 8px;border-radius:5px;font-size:11px}.empty-state{text-align:center;padding:58px 24px}.empty-state h3{font-size:19px;font-weight:650;margin:15px 0}.empty-state p{font-size:12px;color:#8693a8;margin-bottom:24px}.empty-icon{font-size:33px;color:#6c86d2;background:#edf2ff;border-radius:16px;display:grid;place-items:center;width:65px;height:65px;margin:auto}.class-toolbar{display:flex;gap:19px;align-items:center;background:white;border:1px solid var(--line);padding:17px 20px;border-radius:11px;margin-bottom:20px;flex-wrap:wrap}.class-choice{display:flex;gap:12px;align-items:center}.class-choice label{font-size:11px;color:#8b98aa;white-space:nowrap}.class-choice select{min-width:180px;padding:8px 33px 8px 12px;font-weight:550}.class-template-caption{font-size:10px;color:#92a0b3;max-width:230px}.class-template-caption span{display:inline-block;background:#f0f4ff;padding:2px 5px;margin-left:7px;color:#7187ba;border-radius:4px}.class-toolbar .btn{font-size:11px;padding:7px 10px}.tabs-row{display:flex;gap:24px;border-bottom:1px solid #dfe6f0;margin-bottom:23px}.tabs-row button{border:0;background:none;color:#8b98ad;font-size:12px;font-weight:550;padding:0 0 13px;position:relative}.tabs-row button.active{color:var(--blue)}.tabs-row button.active:after{content:'';height:3px;background:var(--blue);position:absolute;left:0;bottom:-1px;right:0;border-radius:4px}.tabs-row .refresh-local{font-size:10px;font-weight:400}.overview-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:22px}.import-card{position:relative;overflow:hidden;min-height:310px;background:#eef3ff;border:1px solid #e0e9fb;border-radius:12px;padding:35px 29px}.import-card .eyebrow{color:#7994d0}.import-card h2{font-size:22px;font-weight:650;position:relative;z-index:1}.import-card p{color:#7e90b3;font-size:12px;line-height:1.95;max-width:310px;margin:17px 0 25px;position:relative;z-index:1}.import-card .btn{position:relative;z-index:1}.import-card small{display:block;margin-top:13px;color:#91a2c1;font-size:10px}.import-decoration{position:absolute;right:-10px;bottom:5px;font-size:160px;color:#dce6fb;transform:rotate(-8deg);line-height:1;pointer-events:none}.compact-empty{padding:63px 25px;color:#98a5b7;font-size:12px;text-align:center}.recent-course{display:flex;gap:13px;padding:18px 23px;align-items:center;border-bottom:1px solid #f1f4f8}.recent-course:last-child{border-bottom:0}.unit-code{display:inline-block;background:#f0f4ff;color:#6582c9;border-radius:7px;min-width:42px;padding:7px 8px;font-weight:650;font-size:12px;text-align:center}.recent-course b{font-size:12px;display:block}.recent-course small{font-size:10px;color:#98a5b8;display:block;margin-top:4px}.table{margin:0;font-size:12px;--bs-table-border-color:#eff2f7}.table>:not(caption)>*>*{padding:16px 20px}.table thead th{background:#fbfcfe;color:#8b98ad;font-weight:500;font-size:10px;white-space:nowrap}.student-table th:first-child,.student-table td:first-child{padding-left:25px}.table tbody tr:last-child td{border-bottom:0}.student-uid{display:block;font-size:10px;color:#98a4b6;margin-top:5px}.sort-button{border:0;background:none;color:inherit;padding:0}.mini-progress{height:3px;background:#eff2f9;width:65px;border-radius:4px;margin-top:7px}.mini-progress span{display:block;height:3px;background:#7190e3;border-radius:4px}.count-badge{background:#eff3fa;font-size:10px;color:#7a8dab;border-radius:6px;padding:3px 7px;margin-left:7px}.search-box{width:205px;font-size:11px}.panel-footnote{font-size:10px;color:#92a0b3;padding:17px 24px;background:#fcfdff;border-top:1px solid var(--line)}.stage-select{width:150px;font-size:12px}.stage-block+.stage-block{margin-top:30px}.stage-title{display:flex;align-items:center;gap:12px;margin-bottom:14px}.stage-title h3{font-size:15px;margin:0}.stage-title input{max-width:230px}.stage-index{font-size:12px;color:#7b91be;font-weight:700}.unit-block{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:#fff;overflow:hidden}.unit-block summary{display:flex;align-items:center;gap:13px;padding:13px 16px;cursor:pointer;list-style:none;font-size:13px}.unit-block summary:after{content:'⌄';color:#9aabc2;margin-left:5px}.unit-block[open] summary:after{transform:rotate(180deg)}.unit-block[open] summary{border-bottom:1px solid var(--line);background:#fafcff}.unit-body{padding:15px 20px}.lesson-row{display:flex;align-items:flex-start;gap:16px;padding:17px 0;border-bottom:1px solid #f1f4f8}.lesson-row:last-child{border-bottom:0}.lesson-number{color:#a2b0c4;font-size:11px;padding-top:4px}.lesson-name{font-size:12px;font-weight:550;margin-bottom:8px}.segment-line{display:flex;gap:18px;flex-wrap:wrap}.segment{display:flex;gap:6px;align-items:center;font-size:10px;color:#8190a8}.segment>span:first-child{color:#a4afbf;white-space:nowrap}.segment input{max-width:170px}.min-width-0{min-width:0}.dialog-overlay{position:fixed;inset:0;background:#172b4d66;z-index:1000;display:flex;justify-content:center;align-items:center;padding:25px}.dialog-card{background:white;border-radius:15px;width:620px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 25px 90px #172b4d33;overflow:hidden}.dialog-card.wide{width:980px}.dialog-card.small-dialog{width:440px}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:23px 28px;border-bottom:1px solid var(--line);flex-shrink:0}.dialog-header h2{font-size:20px;font-weight:650;margin:0}.dialog-header .eyebrow{margin-bottom:7px}.dialog-body{padding:24px 28px;overflow:auto;min-height:0;overscroll-behavior:contain}.dialog-footer{padding:18px 28px;display:flex;justify-content:flex-end;align-items:center;gap:13px;border-top:1px solid var(--line);background:#fbfcfe;flex-shrink:0}.dialog-card.small-dialog .form-label{display:block;width:100%}.class-name-field{font-size:11px;color:#8695ab;flex:1;max-width:420px;margin-right:auto}.class-name-field input{margin-top:5px}.info-strip{padding:12px 15px;border-radius:7px;background:#f2f5fb;color:#7b8ba7;font-size:11px;line-height:1.8}.preview-stats{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:22px 0}.preview-stats>div{background:#f4f7fd;border-radius:9px;padding:16px 20px}.preview-stats span,.preview-stats small{display:block;font-size:11px;color:#8898b0}.preview-stats strong{display:block;font-size:30px;margin:5px 0;color:var(--blue)}.page-footer{border-top:1px solid var(--line);padding:21px 0 25px;margin-top:35px;color:#a0aabd;font-size:10px;display:flex;justify-content:space-between;gap:12px}.alert{font-size:12px;border:0;border-radius:9px}.working{position:fixed;right:25px;bottom:20px;display:flex;align-items:center;gap:8px;background:#213b68;color:#fff;padding:11px 16px;border-radius:9px;font-size:12px;z-index:1100;box-shadow:0 5px 20px #172b4d22}:focus-visible{outline:2px solid #7599ff;outline-offset:3px}
@media(min-width:1500px){.main-area{padding-left:52px;padding-right:52px}.template-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1150px){.sidebar{width:198px;padding-left:14px;padding-right:14px}.main-area{padding-left:23px;padding-right:23px}.stat-row{gap:10px}.stat-card{padding:17px 15px}.overview-grid{grid-template-columns:1fr}.stat-card .date-stat{font-size:18px}.class-template-caption{display:none}.login-story{padding:40px}.story-path{gap:10px}.path-line{width:15px}}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-story{padding:25px 30px;min-height:260px}.story-copy{padding:25px 0 10px}.story-copy h1{font-size:28px;line-height:1.4;margin:8px 0 12px}.story-copy h1 br{display:none}.story-copy p,.story-path,.story-footer{display:none}.login-panel{padding:40px 28px}.app-shell{display:block}.sidebar{height:auto;position:static;width:100%;padding:15px 18px;display:flex;flex-direction:row;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0;padding:0;font-size:20px}.sidebar .brand small,.sidebar-note,.workspace-label,.account .min-width-0{display:none}.sidebar .brand-icon{width:34px;height:34px;border-radius:10px;font-size:19px}.sidebar nav{display:flex;gap:5px;flex:1}.nav-item{padding:9px;font-size:11px;gap:5px;margin:0;width:auto;white-space:nowrap}.nav-item>span{display:none}.account{border:0;padding:0;margin-left:auto;gap:4px}.account .avatar{width:26px;height:26px;font-size:11px}.main-area{padding:20px 17px 0}.topline{margin-bottom:25px;font-size:10px}.page-heading{gap:10px}.page-heading h1{font-size:24px}.page-heading p{font-size:11px;max-width:250px;line-height:1.8}.page-heading>.btn{font-size:11px;white-space:nowrap;padding:8px}.stat-row,.stat-row.three{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-row.three .stat-card:last-child{grid-column:span 2}.stat-card strong{font-size:27px}.stat-card .date-stat{font-size:19px;padding:5px 0}.class-toolbar{gap:10px;padding:13px}.class-choice{flex:1}.class-choice select{min-width:120px}.class-toolbar .ms-auto{margin-left:0!important}.tabs-row{gap:18px;flex-wrap:wrap}.tabs-row button{font-size:11px}.tabs-row .refresh-local{display:none}.template-grid{padding:16px;grid-template-columns:1fr}.panel-title{padding:18px}.panel-title .search-box{width:150px}.dialog-overlay{padding:10px}.dialog-card{max-height:95vh}.dialog-header,.dialog-body{padding:18px}.dialog-header h2{font-size:17px}.dialog-footer{padding:14px 18px;flex-wrap:wrap}.dialog-footer .text-secondary{width:100%}.unit-block summary{padding:12px;gap:8px}.unit-block summary .small{font-size:9px!important}.lesson-row{gap:9px}.segment-line{gap:8px}.unit-body{padding:10px 12px}.page-footer span{display:none}.class-name-field{min-width:170px}.table>:not(caption)>*>*{padding:13px 15px}.story-copy .eyebrow{font-size:9px}.info-strip{font-size:10px}}
/* Student profile: preserve the original directory + three-level analysis workflow. */
.profile-dialog{width:1320px;height:92vh;max-height:980px}.profile-topbar{padding:16px 23px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);flex-shrink:0}.profile-topbar>div{display:flex;align-items:center;gap:20px}.profile-topbar .eyebrow{margin:0;font-size:9px}.profile-class{font-size:11px;color:#8393ab}.profile-layout{display:flex;flex:1;min-height:0}.profile-directory{width:208px;flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#fbfcff}.directory-head{display:flex;justify-content:space-between;align-items:center;padding:23px 17px 14px}.directory-head b{font-size:13px}.directory-head span{font-size:10px;color:#9aa7bc}.directory-controls{padding:0 13px 9px}.directory-controls input{font-size:11px;background:white}.directory-sort{border:0;background:none;color:#8395b2;font-size:10px;padding:12px 4px 4px}.directory-list{overflow:auto;flex:1;overscroll-behavior:contain}.directory-student{display:block;width:100%;border:0;border-left:3px solid transparent;border-bottom:1px solid #eef2f8;background:transparent;text-align:left;padding:14px 15px 14px 13px}.directory-student>div{display:flex;gap:10px;justify-content:space-between;align-items:center}.directory-student b{font-size:12px;color:#536682;font-weight:550}.directory-student span{font-size:10px;color:#9aa8bc;white-space:nowrap}.directory-student small{font-size:10px;display:block;color:#a2afc1;margin-top:6px}.directory-student.active{background:#edf3ff;border-left-color:#315dda}.directory-student.active b,.directory-student.active span{color:#315dda}.directory-student:hover{background:#f0f4fb}.profile-main{min-width:0;flex:1;display:flex;flex-direction:column}.profile-identity{display:flex;gap:16px;padding:23px 27px 19px;align-items:center}.profile-avatar{width:49px;height:49px;border-radius:15px;background:#eaf1ff;color:#5276cf;font-size:21px;display:grid;place-items:center;flex-shrink:0}.profile-identity h2{font-size:23px;margin:0;color:#243d61;font-weight:650}.identity-meta{display:flex;gap:17px;flex-wrap:wrap;font-size:10px;color:#91a0b7;margin-top:9px}.identity-meta b{color:#6a7f9f;font-weight:550;margin-left:3px}.profile-pagination{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.profile-pagination span{font-size:10px;color:#96a6bc}.profile-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 27px 16px;border-bottom:1px solid var(--line)}.profile-tabs{display:flex;background:#f2f5fa;border-radius:8px;padding:4px;gap:2px}.profile-tabs button{border:0;background:none;border-radius:6px;color:#8999af;font-size:12px;padding:8px 17px;white-space:nowrap}.profile-tabs button.active{background:white;color:#315dda;box-shadow:0 1px 4px #172b4d0c;font-weight:600}.profile-toolbar select{max-width:240px;font-size:11px;padding-top:9px;padding-bottom:9px}.profile-content{flex:1;min-height:0;overflow:auto;padding:21px 25px;background:#f8faff;overscroll-behavior:contain}.scope-caption{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#95a4b9;margin-bottom:17px}.scope-caption>span:first-child{font-size:12px;color:#6a80a4;font-weight:550}.profile-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.profile-section{padding:18px;background:white;border:1px solid var(--line);border-radius:11px;min-width:0}.profile-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.profile-section-heading h3{font-size:13px;font-weight:650;margin:0;color:#476080}.profile-section-heading>span{font-size:9px;color:#a1aec0}.profile-radar{height:285px;width:100%}.radar-empty{height:230px;display:grid;place-items:center;color:#a1adc0;font-size:12px}.radar-note{font-size:9px;color:#9aabc0;line-height:1.8;margin:10px 0 0}.profile-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-metric{padding:15px 12px;background:#f7f9fd;border-radius:8px;min-width:0}.profile-metric>span{color:#8395b0;font-size:10px;display:block}.profile-metric strong{display:block;font-size:23px;line-height:1.5;color:#365682;font-weight:600;margin:6px 0}.profile-metric em{font-style:normal;font-size:10px;font-weight:400;color:#9bacc3}.profile-metric small{display:block;font-size:9px;color:#a0aec0;line-height:1.65}.dimension-row{display:grid;grid-template-columns:125px minmax(65px,1fr) 64px 82px 70px;gap:13px;align-items:center;padding:11px 0;border-bottom:1px solid #f2f5f9}.dimension-row:last-child{border-bottom:0}.dimension-row b{font-size:11px;color:#657b9b;font-weight:550;display:block}.dimension-row small{font-size:8px;color:#a3b0c2;display:block;margin-top:4px}.dimension-row>strong{font-size:11px;font-weight:600;color:#47638d;text-align:right}.dimension-track{height:7px;border-radius:8px;background:#eef3fb;position:relative;min-width:0}.dimension-track>span{position:absolute;left:0;top:0;height:7px;background:#7192ed;border-radius:8px}.dimension-track>i{position:absolute;top:-3px;transform:translateX(-50%);height:13px;border-left:2px solid #9caeca}.dimension-average{font-size:9px;color:#899cb8;text-align:right}.dimension-diff{font-size:9px;padding:4px 5px;border-radius:5px;text-align:center}.dimension-diff.above{color:#4e9983;background:#eef8f4}.dimension-diff.below{color:#bd8754;background:#fdf5eb}.dimension-diff.unknown{color:#96a4b8;background:#f1f4f9}.profile-summary{margin-top:13px;background:#f5f8ff;padding:11px 13px;border-radius:7px}.profile-summary p{margin:0;font-size:10px;line-height:1.95;color:#8397b8}.profile-footnote{font-size:9px;color:#9facbf;padding:20px 1px 2px;line-height:1.8}.profile-unit-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.profile-unit-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:19px}.profile-unit-card header{display:flex;align-items:center;gap:10px;margin-bottom:17px}.profile-unit-card h3{font-size:12px;margin:0 0 5px;font-weight:600}.profile-unit-card small{font-size:9px;color:#9baac0}.profile-unit-card.locked{background:#fafbfe}.profile-unit-card.locked h3{color:#93a3ba}.unit-metrics{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:0 0 15px}.unit-metrics span{display:block;color:#94a4bc;font-size:10px;margin-bottom:5px}.unit-metrics b{font-size:14px;font-weight:550;color:#617c9f}.unit-completion{font-size:10px;color:#99a9bf;padding:13px 0;border-top:1px solid #f0f3f8;line-height:1.8}.unit-locked-note{font-size:10px;color:#a8b4c5;margin:25px 0 5px}.profile-unit-card>.btn{font-size:10px}.profile-lesson-filters{display:flex;gap:12px;align-items:center;margin-bottom:19px}.profile-lesson-filters select{max-width:235px;font-size:11px}.profile-lesson-filters>span{margin-left:auto;font-size:10px;color:#97a7bd;white-space:nowrap}.profile-lesson-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}.profile-lesson-card>summary{list-style:none;cursor:pointer;padding:17px 19px}.profile-lesson-title{display:flex;align-items:center;gap:11px}.profile-lesson-title b{font-size:12px;font-weight:550;color:#516d92}.profile-lesson-title small{display:block;font-size:9px;color:#a2afc1;margin-top:5px}.lesson-expand{color:#a2b0c5;margin-left:7px}.profile-lesson-card[open] .lesson-expand{transform:rotate(180deg)}.lesson-key-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-top:19px;padding-left:2px}.lesson-key-metrics span{display:block;font-size:9px;color:#9dacc2;margin-bottom:7px}.lesson-key-metrics b{display:block;font-size:12px;color:#607fa7;font-weight:550}.lesson-expanded{border-top:1px solid #ecf1f8;background:#fcfdff}.lesson-expanded .table{font-size:10px}.lesson-expanded .table th{font-size:9px}.lesson-interaction{display:flex;flex-wrap:wrap;gap:17px;padding:15px 19px;background:#f5f8fd;font-size:9px;color:#8ea0b9}.lesson-interaction b{color:#6d87aa;font-weight:500;margin-left:5px}.profile-locked{background:#fff;border:1px solid var(--line);border-radius:11px;min-height:360px}
@media(max-width:1200px){.profile-directory{width:180px}.profile-content{padding:18px}.profile-identity{padding:20px}.profile-toolbar{padding:0 20px 15px}.profile-overview-grid{grid-template-columns:1fr}.profile-radar{height:320px}.profile-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-section-heading>span{font-size:10px}.identity-meta{gap:9px}.profile-pagination{gap:5px}.profile-toolbar select{max-width:215px}.profile-tabs button{padding:8px 13px}}
@media(max-width:760px){.profile-overlay{padding:0}.profile-dialog{height:100dvh;max-height:100dvh;width:100%;border-radius:0}.profile-topbar{padding:15px 17px}.profile-topbar>div{gap:10px}.profile-topbar .eyebrow{font-size:8px;letter-spacing:1px}.profile-class{font-size:10px}.profile-directory{display:none}.profile-identity{padding:19px 15px;gap:10px;flex-wrap:wrap}.profile-avatar{width:38px;height:38px;border-radius:11px;font-size:17px}.profile-identity h2{font-size:20px}.identity-meta{font-size:9px;gap:6px 12px}.profile-pagination{width:100%;justify-content:flex-end;margin-top:0}.profile-toolbar{padding:0 15px 14px;flex-wrap:wrap;gap:11px}.profile-toolbar select{max-width:none;width:100%}.profile-tabs{width:100%}.profile-tabs button{flex:1;padding:9px 10px}.profile-content{padding:17px 13px}.scope-caption{font-size:9px}.profile-section{padding:15px}.profile-radar{height:280px}.profile-metric-grid{grid-template-columns:1fr 1fr;gap:9px}.profile-metric strong{font-size:22px}.dimension-row{grid-template-columns:85px minmax(35px,1fr) 50px 61px;gap:8px}.dimension-row>div:first-child small{display:none}.dimension-diff{display:none}.dimension-row b{font-size:10px}.dimension-row>strong{font-size:10px}.dimension-average{font-size:8px}.profile-unit-grid{grid-template-columns:1fr}.profile-unit-card{padding:16px}.profile-lesson-filters{flex-wrap:wrap;gap:8px}.profile-lesson-filters select{max-width:none;flex:1;min-width:130px}.profile-lesson-filters>span{width:100%;text-align:right}.profile-lesson-card>summary{padding:14px}.profile-lesson-title{gap:8px;flex-wrap:wrap}.profile-lesson-title b{font-size:11px}.profile-lesson-title .status-pill{font-size:8px}.lesson-expand{display:none}.lesson-key-metrics{grid-template-columns:repeat(3,1fr);gap:16px 9px}.lesson-key-metrics b{font-size:11px}.profile-summary p{font-size:9px}.lesson-interaction{gap:12px;font-size:9px}}
.student-table-controls{display:flex;gap:9px;flex-wrap:wrap}.analysis-filter{width:175px;font-size:11px}.student-rules{max-width:160px;min-width:120px}.student-rules>small{font-size:9px;color:#a2afc0}.rule-chip{display:inline-block;border-radius:5px;font-size:9px;padding:4px 7px;margin:2px 4px 2px 0;white-space:nowrap}.rule-chip.tag{background:#edf3ff;color:#6c88c4}.rule-chip.alert{background:#fff2ec;color:#c17d54;margin-bottom:2px}.rule-chip.pending{background:#f1f3f7;color:#95a2b6}.attention-strip{display:flex;gap:25px;align-items:center;padding:22px 25px;margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:11px}.attention-strip>div:first-child{margin-right:auto}.attention-strip b{font-size:13px;color:#607796}.attention-strip p{font-size:10px;color:#98a7bc;margin:7px 0 0}.attention-count{text-align:center;flex-shrink:0}.attention-count strong{display:block;font-size:22px;color:#6c82a5;font-weight:600}.attention-count span{font-size:9px;color:#9dabc0}.attention-strip .btn{font-size:10px}.rules-intro{padding:20px 22px;background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:19px}.rules-intro h3{font-size:15px;font-weight:600;margin-bottom:10px}.rules-intro p{font-size:11px;color:#92a3bb;line-height:1.9}.rule-card{border:1px solid var(--line);background:white;border-radius:10px;overflow:hidden;margin-bottom:13px}.rule-card.matched{border-color:#e9dac9}.rule-card>summary{display:flex;align-items:center;gap:13px;list-style:none;padding:19px;cursor:pointer}.rule-type{background:#f2f5fb;border-radius:6px;font-size:10px;color:#8da0bd;padding:7px;flex-shrink:0}.rule-card summary b{font-size:12px;color:#567093;display:block}.rule-card summary small{font-size:10px;color:#9facc0;display:block;margin-top:7px;line-height:1.75}.rule-status{font-size:10px;border-radius:5px;padding:4px 8px;white-space:nowrap;margin-left:auto;flex-shrink:0}.rule-status.matched{background:#fff1e1;color:#b9864f}.rule-status.not_matched{background:#f0f4fa;color:#8398b5}.rule-status.insufficient{background:#faf5ea;color:#ac9b76}.rule-status.unconfigured,.rule-status.not_applicable{background:#f3f4f7;color:#9ba6b8}.rule-evidence{border-top:1px solid #f0f3f7;padding:15px 20px;background:#fcfdff}.evidence-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.evidence-row>span{font-size:9px;border-radius:4px;min-width:47px;text-align:center;flex-shrink:0;padding:3px 5px}.evidence-row .met{background:#edf7f2;color:#729e8d}.evidence-row .unmet{background:#f1f4f9;color:#92a3bb}.evidence-row .unknown{background:#faf5eb;color:#b39b70}.evidence-row p{font-size:10px;color:#8297b5;margin:0;line-height:1.9}.rule-note{font-size:10px;color:#a0afc3;line-height:1.9;margin:10px 0 0}.profile-tabs button{padding-left:13px;padding-right:13px}
@media(max-width:760px){.attention-strip{flex-wrap:wrap;gap:20px;padding:19px}.attention-strip>div:first-child{width:100%;margin:0}.attention-strip p{line-height:1.8}.attention-strip .btn{margin-left:auto}.student-table-controls{width:100%}.student-table-controls .analysis-filter{width:100%}.student-table-controls .search-box{flex:1;width:0}.profile-tabs button{font-size:11px;padding-left:6px;padding-right:6px}.rule-card>summary{padding:15px;gap:10px;flex-wrap:wrap}.rule-card summary>div{flex:1;min-width:150px}.rule-card summary small{font-size:9px}.rule-status{font-size:9px}.rule-evidence{padding:15px}.rules-intro{padding:17px}.rules-intro p{font-size:10px}}
.report-dialog{width:min(1280px,calc(100vw - 32px));max-width:1280px;height:calc(100dvh - 40px);max-height:1000px;display:flex;flex-direction:column;overflow:hidden}
.report-workspace{display:flex;min-height:0;flex:1}.report-settings{width:316px;flex-shrink:0;padding:22px;overflow:auto;border-right:1px solid #e3eaf4;background:#fff}.report-settings .form-label{display:block;margin-bottom:16px;font-size:12px;font-weight:600}.report-settings .form-select{margin-top:6px;font-size:12px}.report-settings fieldset{min-width:0}.report-theme-options{display:flex;gap:16px;margin-top:10px}.report-theme-options .theme-swatch{width:30px;height:30px;border:3px solid white;border-radius:50%;outline:1px solid #e1e7f0}.report-theme-options .theme-swatch.active{outline:2px solid #354966}.report-batch-settings{border-top:1px solid #e5eaf2;margin-top:24px;padding-top:22px}.report-batch-settings h3{font-size:15px}.report-batch-settings small{font-size:11px;color:#6d809a}.report-task-status{margin-top:16px;background:#f0f5ff;border:1px solid #dce6f8;border-radius:8px;padding:14px;font-size:13px}.report-task-status p{margin:6px 0}.report-task-status progress{width:100%;accent-color:#315dda}.report-preview-pane{flex:1;min-width:0;overflow:auto;background:#edf1f7;padding:24px}.report-preview-caption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;color:#60738e}.report-preview-caption b{color:#30435f}.report-preview-caption span{font-size:11px}.report-preview-scroll{max-width:100%;overflow:auto;border:1px solid #dde4ee;border-radius:8px;background:#fff}.report-preview-empty{padding:64px 20px;text-align:center;color:#71819a;background:#fff;border-radius:8px;font-size:13px}
@media(max-width:760px){.report-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.report-workspace{display:block;overflow:auto}.report-settings{width:100%;overflow:visible;border-right:0;border-bottom:1px solid #e3eaf4}.report-preview-pane{padding:14px;overflow:visible}.report-dialog .dialog-header{padding:18px}.profile-topbar .eyebrow{display:none}}
.lesson-unlocked{background:#f1f8ff;border-color:#d4e8f9}.lesson-locked{background:#f6f7f9;color:#78869a}.lesson-boundary{border-top:2px dashed #b8c9df!important;margin-top:18px;padding-top:18px}.lesson-group-caption{font-size:12px;font-weight:600;margin:18px 0 12px;padding:10px 12px;border-radius:6px}.unlocked-caption{color:#256799;background:#eaf5ff}.locked-caption{color:#69778c;background:#f0f2f6;border-top:2px dashed #bbc9d8;border-radius:0;padding-top:18px;margin-top:28px}.profile-locked-lesson{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:10px;background:#f2f4f7;border:1px solid #e0e5ec;border-radius:10px;color:#788497}.profile-locked-lesson small{display:block;margin-top:5px;font-size:11px}.unit-lesson-directory{margin-top:16px}.unit-lesson-entry{display:flex;justify-content:space-between;padding:8px 10px;margin-top:4px;font-size:12px;background:#f1f3f6;color:#7b8799;border-radius:4px}.unit-lesson-entry.unlocked{background:#eaf5ff;color:#276897}.unit-lesson-entry.boundary{border-top:2px dashed #b9c9db;margin-top:12px;padding-top:12px}
.quiz-badge{display:inline-block;padding:4px 8px;border-radius:5px;font-size:11px;line-height:1.5;background:#edf0f5;color:#6b7a90}.quiz-badge.positive{background:#e6f5ed;color:#21754e}.quiz-badge.attention{background:#fff0e9;color:#ad4b26}.quiz-overview{margin-bottom:16px}.student-quiz-result{margin:7px 0}.student-quiz-result>small{display:block;margin-bottom:4px}.lesson-quiz-observation{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #dce6f1;font-size:12px}.lesson-quiz-observation small{flex-basis:100%;color:#677d98}.profile-lesson-card.lesson-unfinished{border:1px solid #e9b5a6;border-left:4px solid #d36542;background:#fff6f2}.unit-lesson-entry.unfinished{background:#fff0e9;color:#a33e20;border-left:3px solid #d36542}
