:root{--ink:#17233d;--muted:#8994a8;--line:#e9edf4;--blue:#4e7bf5;--blue-dark:#3465e8;--pale:#edf3ff;--canvas:#f6f8fc;--white:#fff;--green:#20a879;--amber:#e9a23b;--red:#e16b72;--shadow:0 8px 24px rgba(25,47,89,.055)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.sidebar{width:252px;background:white;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:22px 15px 14px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 23px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#ffc94c,#f5a623);color:#fff;font:800 25px Manrope;box-shadow:0 5px 10px #f5bd4c55}.brand b{display:block;font:800 17px Manrope;letter-spacing:.3px}.brand small{color:#9aa5b6;font-size:8px;letter-spacing:1.55px;font-weight:700}.workspace{margin:0 4px 17px;padding:10px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:10px}.workspace-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:#5678dc;font-weight:700;font-size:11px}.workspace b,.profile b{display:block;font-size:12px}.workspace small,.profile small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.chevron{color:#9ba5b5;margin-left:auto}.nav-label{padding:11px 12px 6px;color:#a7b0c0;font-size:9px;font-weight:700;letter-spacing:1.05px}.nav-item{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;color:#758197;font-size:12px;font-weight:600;padding:10px 12px;border-radius:9px;margin:1px 0;transition:.18s}.nav-item:hover{background:#f6f8fc;color:var(--ink)}.nav-item.active{background:#eef3ff;color:#4775ed}.ico{width:18px;text-align:center;font-size:15px;color:inherit;line-height:1}.nav-count{margin-left:auto;color:#8390a5;font-size:10px;background:#f1f3f8;border-radius:20px;padding:2px 7px}.dot{width:6px;height:6px;background:#f0a43b;border-radius:50%;margin-left:auto}.ai-tag{font-size:8px;color:#8962df;background:#f0eaff;border-radius:5px;padding:3px 5px;margin-left:auto}.sidebar nav{overflow:auto;scrollbar-width:none}.sidebar-bottom{margin-top:auto}.help-card{margin:14px 4px;padding:11px 10px;background:#f7f9fd;border:1px solid #edf0f6;border-radius:11px;display:flex;align-items:center;gap:9px;color:#8390a5;font-size:11px}.help-icon{width:27px;height:27px;border:1px solid #e5eaf4;border-radius:8px;display:grid;place-items:center;color:#63718a;background:white}.help-card b{display:block;color:#41506a;font-size:10px}.help-card small{display:block;margin-top:3px;font-size:9px}.help-card>span:last-child{margin-left:auto}.profile{border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;padding:13px 5px 0}.avatar{display:grid;place-items:center;background:#e8ecff;color:#596ed1;border-radius:50%;width:32px;height:32px;font-weight:700;font-size:10px}.avatar.small{width:28px;height:28px}.more{border:0;background:none;margin-left:auto;color:#8490a4;font-size:18px}.main-area{margin-left:252px;min-height:100vh}.topbar{height:66px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:4}.crumb{display:flex;gap:11px;align-items:center;color:#9ba5b5;font-size:12px}.crumb i{font-style:normal;color:#d4d9e2}.crumb b{color:#34415a;font-weight:600}.top-actions{display:flex;align-items:center;gap:17px}.icon-btn{border:0;background:transparent;width:30px;height:32px;color:#738099;font-size:20px;position:relative}.notification em{position:absolute;top:6px;right:5px;width:6px;height:6px;background:#ee727a;border:1px solid white;border-radius:50%}.top-divider{height:24px;width:1px;background:var(--line)}.top-user{display:flex;align-items:center;gap:9px;color:#48566f;font-size:11px}.mobile-menu{display:none;border:0;background:none;font-size:20px;color:#4d5c77}.page-wrap{max-width:1460px;margin:0 auto;padding:28px 36px 45px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.page-heading h1{font:700 22px Manrope;margin:0 0 6px;letter-spacing:-.45px}.page-heading p{margin:0;color:var(--muted);font-size:12px}.heading-actions{display:flex;gap:9px;align-items:center}.btn{border:1px solid #e5eaf2;background:white;color:#53617a;padding:9px 13px;border-radius:8px;font-weight:600;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.18s}.btn:hover{border-color:#cbd7ef;box-shadow:0 3px 9px #2d4c8210}.btn.primary{background:var(--blue);color:white;border-color:var(--blue);box-shadow:0 5px 12px #4e7bf52b}.btn.primary:hover{background:var(--blue-dark)}.btn.soft{color:#4d76e5;background:#f0f4ff;border-color:#e8efff}.btn.danger{color:#dd656e;background:#fff5f5}.btn.small-btn{padding:7px 10px;font-size:10px}.cards{display:grid;gap:14px}.stats-grid{grid-template-columns:repeat(4,1fr);margin-bottom:18px}.stat-card,.panel,.table-panel,.feature-card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat-card{padding:17px 17px 15px;position:relative}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#8490a4;font-size:11px;font-weight:600}.stat-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-size:15px}.stat-icon.blue{background:#eef3ff;color:#5279e8}.stat-icon.green{background:#e9f8f2;color:#23a77c}.stat-icon.amber{background:#fff5e7;color:#e4a036}.stat-icon.purple{background:#f3edff;color:#8d65d8}.stat-value{font:700 24px Manrope;margin:13px 0 6px}.stat-foot{font-size:10px;color:#99a3b3;display:flex;align-items:center;gap:5px}.trend{color:#22a77b;font-weight:700}.trend.down{color:#df7277}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(260px,.95fr);margin-bottom:16px}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-head h2{font:700 13px Manrope;margin:0}.panel-head p{color:var(--muted);font-size:10px;margin:5px 0 0}.text-link{border:0;background:transparent;color:#4f79e9;font-size:10px;font-weight:600}.chart-legend{display:flex;gap:16px;align-items:center;color:#8994a8;font-size:9px}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#537df2;margin-right:5px}.legend-dot.gold{background:#f2bb5f}.chart{height:188px;position:relative;margin:8px 1px 0;padding:0 4px 19px 32px;display:flex;align-items:end;justify-content:space-around;border-bottom:1px solid #edf0f5;background:repeating-linear-gradient(to bottom,transparent 0 43px,#eef1f6 44px,#eef1f6 45px)}.axis-label{position:absolute;left:0;top:0;bottom:21px;display:flex;flex-direction:column;justify-content:space-between;color:#b0b8c5;font-size:8px}.bar-group{height:100%;display:flex;align-items:end;gap:5px;position:relative}.bar{width:10px;border-radius:4px 4px 0 0;background:#658af3}.bar.alt{background:#f5c468}.month-label{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:8px;color:#9ba5b5;white-space:nowrap}.schedule-list{display:grid;gap:11px}.schedule-item{display:grid;grid-template-columns:44px 3px 1fr;gap:10px;align-items:stretch}.schedule-time{font-size:10px;color:#758198;padding-top:4px}.schedule-line{background:#d6e1ff;border-radius:4px}.schedule-info{padding-bottom:8px}.schedule-info b{font-size:10px;display:block}.schedule-info small{font-size:9px;color:#98a2b2;display:block;margin-top:4px}.schedule-info .room{display:inline-block;margin-top:5px;padding:3px 6px;background:#f2f5fb;color:#76839a;font-size:8px;border-radius:4px}.bottom-grid{grid-template-columns:1.2fr 1fr}.table-panel{padding:0;overflow:hidden}.panel-inner-head{padding:17px 18px 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f0f2f6}.panel-inner-head h2{font:700 13px Manrope;margin:0}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{color:#9aa4b4;font-size:9px;font-weight:600;padding:11px 15px;background:#fcfdff;border-bottom:1px solid #f0f2f6}td{font-size:10px;color:#526078;padding:12px 15px;border-bottom:1px solid #f2f4f7}tbody tr:last-child td{border-bottom:0}.student-cell{display:flex;align-items:center;gap:8px;color:#394760;font-weight:600}.mini-avatar{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#f0f3ff;color:#7182cf;font-size:8px;font-weight:700}.status{font-size:9px;padding:4px 7px;border-radius:20px;display:inline-block;background:#eaf8f2;color:#26a277}.status.warning{background:#fff5e7;color:#d7942f}.status.gray{background:#f0f2f6;color:#8490a3}.status.red{background:#fff0f1;color:#d96d73}.progress{width:70px;height:5px;background:#edf0f5;border-radius:8px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:5px}.progress i{display:block;background:#5d83f1;height:100%;border-radius:8px}.list-stack{display:grid;gap:0}.activity{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid #f1f3f7}.activity:last-child{border-bottom:0}.activity-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#eff3ff;color:#5c7ee6}.activity b{display:block;font-size:10px;font-weight:600}.activity small{display:block;color:#9aa4b4;font-size:9px;margin-top:4px}.section-grid{grid-template-columns:repeat(3,1fr)}.feature-card{padding:18px}.feature-card h3{font:700 13px Manrope;margin:12px 0 7px}.feature-card p{color:#8c97a8;font-size:11px;line-height:1.55;margin:0 0 14px}.feature-top{display:flex;align-items:center;justify-content:space-between}.feature-kpi{font:700 20px Manrope}.search-box{position:relative}.search-box input{width:220px;border:1px solid var(--line);background:white;border-radius:8px;padding:9px 11px 9px 32px;font-size:10px;color:var(--ink);outline:none}.search-box input:focus{border-color:#9bb3f4}.search-box span{position:absolute;left:11px;top:7px;color:#97a2b2;font-size:16px}.toolbar{display:flex;gap:9px;align-items:center}.select{border:1px solid var(--line);border-radius:8px;background:#fff;color:#6e7b91;padding:9px 10px;font-size:10px;outline:none}.table-shell{margin-top:14px}.table-shell .table-panel{min-height:270px}.empty-state{text-align:center;padding:48px 15px;color:#9ba5b4;font-size:11px}.empty-state .empty-icon{font-size:25px;color:#8ba5ef;margin-bottom:8px}.modal-backdrop{position:fixed;inset:0;background:#16233d70;display:grid;place-items:center;z-index:20;padding:20px;animation:fade .15s}.modal{background:white;border-radius:14px;width:min(510px,100%);padding:23px;box-shadow:0 18px 50px #13244835;animation:pop .18s}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.modal-head h2{font:700 17px Manrope;margin:0}.modal-head p{color:#929caf;font-size:10px;margin:5px 0 0}.close{border:0;background:transparent;color:#98a2b2;font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;color:#637089;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #e6eaf1;border-radius:8px;padding:10px;font-size:11px;outline:none;color:#35425a;background:white}.field input:focus,.field textarea:focus{border-color:#95adf1}.field textarea{min-height:75px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.toast{position:fixed;right:26px;bottom:25px;background:#20304f;color:white;padding:11px 15px;border-radius:9px;box-shadow:var(--shadow);font-size:11px;z-index:30;opacity:0;transform:translateY(10px);transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:0 0 15px}.day-chip{padding:10px;border:1px solid var(--line);border-radius:9px;background:white;text-align:center;color:#8995a9;font-size:9px}.day-chip b{display:block;color:#42516b;font:700 13px Manrope;margin-top:5px}.day-chip.today{background:#eef3ff;border-color:#dce6ff;color:#5278e8}.day-chip.today b{color:#416fe7}.calendar-layout{display:grid;grid-template-columns:1fr 250px;gap:14px}.calendar-day{display:grid;grid-template-columns:55px 1fr;min-height:61px;border-bottom:1px solid #f0f2f6}.cal-time{font-size:9px;color:#a1abba;padding-top:12px}.cal-event{align-self:center;padding:9px 12px;border-left:3px solid #6c8cf1;background:#f3f6ff;border-radius:0 8px 8px 0;color:#44516b;font-size:10px}.cal-event b{display:block;font-size:10px}.cal-event small{display:block;color:#8c98aa;margin-top:4px}.chat-window{height:420px;display:flex;flex-direction:column}.chat-messages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:11px;padding:5px 1px}.bubble{max-width:82%;padding:11px 13px;border-radius:11px;background:#f2f5fb;color:#536078;font-size:11px;line-height:1.55}.bubble.me{align-self:flex-end;background:#eaf0ff;color:#4567c9}.bubble small{display:block;color:#9aa4b5;font-size:8px;margin-top:6px}.chat-input{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:12px}.chat-input input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:11px;outline:none}.chat-hints{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.chip{border:1px solid #e7ebf2;border-radius:20px;padding:6px 9px;background:white;font-size:9px;color:#78859a}.progress-line{height:7px;background:#edf1f7;border-radius:10px;overflow:hidden}.progress-line i{display:block;height:100%;background:#5e83ef;border-radius:10px}.money{font:700 14px Manrope;color:#293852}.income{color:#20a879}.expense{color:#df7378}@keyframes fade{from{opacity:0}}@keyframes pop{from{transform:translateY(8px);opacity:.75}}@media(max-width:1120px){.sidebar{width:220px}.main-area{margin-left:220px}.page-wrap{padding:24px}.topbar{padding:0 24px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.section-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.22s;box-shadow:12px 0 24px #182b4b14}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar{height:58px;padding:0 15px}.mobile-menu{display:block}.crumb{margin-right:auto;margin-left:10px;font-size:10px}.top-user>span:not(.avatar){display:none}.top-actions{gap:8px}.page-wrap{padding:21px 14px}.page-heading{gap:12px;flex-direction:column}.page-heading h1{font-size:20px}.heading-actions{width:100%;flex-wrap:wrap}.stats-grid{gap:9px}.stat-card{padding:13px}.stat-value{font-size:20px}.stat-top{font-size:10px}.stat-foot{font-size:8px}.bottom-grid,.calendar-layout{grid-template-columns:1fr}.section-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.search-box{flex:1}.search-box input{width:100%}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.panel{padding:14px}.panel-inner-head{padding:14px}.schedule-list{gap:7px}}
/* Learning path builder */
.student-picker[hidden]{display:none!important}
.modal-backdrop{overflow-y:auto}.modal{max-height:calc(100vh - 40px);overflow:auto}[hidden]{display:none!important}.assignment-modal{width:min(760px,100%)}.assignment-grid{align-items:start}.student-picker{border:1px solid #e7ebf2;background:#fbfcff;border-radius:9px;padding:11px}.student-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.student-picker-head label{font-size:10px;color:#637089;font-weight:600}.student-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.student-check{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid #e9edf4;background:#fff;border-radius:8px;color:#4b5870;font-size:10px;cursor:pointer}.student-check input{accent-color:var(--blue)}.student-check .mini-avatar{flex:none}.no-students{font-size:10px;color:#97a1b0;padding:7px}.form-error{padding:9px 11px;margin-top:11px;border-radius:8px;color:#bb4f59;background:#fff1f2;font-size:10px}.row-buttons{display:flex;align-items:center;gap:5px}
.roadmap-intro{border:1px solid #dce7ff;background:linear-gradient(110deg,#f5f7ff,#eaf1ff);border-radius:18px;padding:25px 32px;display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:center;margin:8px 0 26px;min-height:205px}.roadmap-illustration{height:150px;position:relative;display:grid;place-items:center;color:#4b82f2}.roadmap-illustration:before{content:"";position:absolute;width:190px;height:80px;border:3px dashed #f6b84d;border-radius:50%;transform:rotate(-16deg)}.roadmap-illustration span{font-size:100px;line-height:1;color:#5a8bf3;text-shadow:0 8px #d6e1ff}.roadmap-illustration i,.roadmap-illustration b,.roadmap-illustration small{position:absolute;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid #ffa83b;color:#f29a22;font-style:normal;font-size:18px;box-shadow:0 3px 8px #5671a326}.roadmap-illustration i{left:27px;top:24px}.roadmap-illustration b{right:24px;top:8px}.roadmap-illustration small{left:98px;bottom:10px;border-color:#7bc995;color:#42a56c}.roadmap-intro h2{font:800 26px Manrope;color:#3977ed;margin:0 0 7px}.roadmap-intro p{color:#77849b;font-size:12px;line-height:1.7;max-width:720px;margin:0}.intro-pills{display:flex;gap:9px;margin-top:16px}.intro-pills span{border:1px solid #d8e4ff;background:#fff;border-radius:9px;padding:9px 12px;color:#4c5d79;font-size:10px;font-weight:700}.roadmap-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.roadmap-card{position:relative;background:white;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);min-height:228px;transition:.18s}.roadmap-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #253b6610}.roadmap-card-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.roadmap-symbol{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#eef3ff;color:#4d7af0;font-size:23px}.roadmap-card h3{font:800 16px Manrope;margin:13px 0 8px;position:relative;z-index:1}.roadmap-description{height:30px;color:#8994a5;font-size:11px;margin:0 0 13px;position:relative;z-index:1}.roadmap-metrics{border-top:1px solid #eff1f5;border-bottom:1px solid #eff1f5;padding:11px 0;display:flex;gap:13px;color:#8b96a7;font-size:9px;position:relative;z-index:1;white-space:nowrap}.roadmap-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;position:relative;z-index:2}.card-open{position:absolute;inset:52px 0 80px;width:100%;border:0;background:transparent;cursor:pointer}.roadmap-card[hidden]{display:none}.roadmap-detail-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px 17px;border-bottom:1px solid var(--line);margin:-8px 0 18px}.roadmap-detail-head>div:first-child{display:flex;align-items:center;gap:11px;font-size:14px}.back-link{border:0;background:none;color:#8895a8;font-size:13px;padding:5px 0}.back-link:hover{color:#4777ed}.breadcrumb-arrow{color:#aeb7c4}.roadmap-detail-head b{font:800 16px Manrope}.roadmap-builder{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e4e8ef;border-radius:17px;background:#fff;overflow:hidden;min-height:620px;box-shadow:var(--shadow)}.builder-column{min-width:0}.group-column{border-right:1px solid #e5e8ed}.builder-column-head{height:64px;padding:0 20px;display:flex;align-items:center;justify-content:center;gap:14px;background:#55c5e5;color:#fff}.builder-column-head b{font:800 18px Manrope}.builder-column-head i{font-style:normal;border-radius:7px;padding:9px 13px;background:#ffffffd9;color:#48bfe0;font-weight:700;font-size:15px}.sort-mark{position:absolute;left:calc(25% - 125px);font-size:21px;color:#3988a6}.exercise-head{background:#fafbfc;color:#343d4f}.exercise-head i{background:#fff3f0;color:#e46a55}.builder-add{height:54px;width:calc(100% - 48px);margin:24px 24px 12px;background:#fff;border:1.5px solid #5285ff;border-radius:11px;color:#3978f5;font-size:15px;font-weight:700;box-shadow:0 3px 7px #1939640b}.builder-add:hover{background:#f6f9ff}.exercise-column .builder-add{border-color:#a5bdff;color:#7599f4}.group-list{padding:6px 16px 22px}.group-row{display:flex;align-items:center;border-radius:10px;margin:6px 0;padding:7px 9px;transition:.15s}.group-row:hover,.group-row.selected{background:#f4f7ff}.group-select{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:8px 6px}.group-select b{display:block;font-size:15px;color:#252f43}.group-select small{display:block;color:#929cad;margin-top:6px;font-size:11px}.group-actions{display:flex;gap:3px;opacity:.45}.group-row:hover .group-actions,.group-row.selected .group-actions{opacity:1}.kebab{border:0;background:transparent;color:#808da1;font-size:18px;letter-spacing:1px;padding:5px 8px;border-radius:6px}.kebab:hover{background:#e9effb;color:#4d6fbf}.delete-kebab{font-size:16px}.exercise-list{padding:5px 21px 20px;display:grid;gap:9px}.exercise-card{border:1px solid #e9edf4;border-radius:11px;padding:11px;display:flex;align-items:center;gap:8px;justify-content:space-between}.exercise-main{display:flex;gap:10px;align-items:center;min-width:0;border:0;background:transparent;text-align:left;padding:2px}.exercise-icon{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eef3ff;color:#527deb;font-size:16px;font-weight:700}.exercise-main b{display:block;font-size:11px;color:#36445d}.exercise-main small{display:block;color:#96a0af;font-size:9px;margin-top:5px;white-space:normal}.exercise-actions{display:flex;align-items:center;gap:4px;flex:none}.exercise-actions .btn{padding:6px 8px;font-size:9px}.detail-empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#929dac;padding:20px}.detail-empty>span{font-size:31px;color:#b6c8f4}.detail-empty p{font-size:14px;line-height:1.55;max-width:270px;margin:10px 0 0}.detail-empty small{font-size:10px;margin-top:8px}
@media(max-width:1120px){.roadmap-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roadmap-intro{grid-template-columns:180px 1fr;padding:22px}.roadmap-illustration{transform:scale(.82)}}
@media(max-width:760px){.roadmap-intro{grid-template-columns:1fr;padding:18px;gap:3px}.roadmap-illustration{height:90px;transform:scale(.68);margin:-8px auto}.roadmap-intro h2{font-size:21px}.roadmap-intro p{font-size:10px}.intro-pills{flex-wrap:wrap}.roadmap-card-grid{grid-template-columns:1fr}.roadmap-builder{grid-template-columns:1fr;min-height:0}.group-column{border-right:0;border-bottom:1px solid #e5e8ed}.builder-column-head{height:54px}.builder-add{height:47px;margin:15px 16px 9px;width:calc(100% - 32px)}.group-list{padding:2px 12px 11px}.group-row{padding:3px 7px}.group-select b{font-size:13px}.exercise-column .builder-add{margin-top:14px}.exercise-list{padding:5px 12px}.exercise-card{align-items:flex-start;flex-wrap:wrap}.exercise-actions{margin-left:42px}.detail-empty{min-height:180px}.roadmap-detail-head{align-items:flex-start;gap:12px;flex-direction:column}.roadmap-detail-head>div:first-child{font-size:12px}.roadmap-detail-head b{font-size:13px}.roadmap-detail-head .heading-actions{flex-wrap:nowrap}.sort-mark{display:none}}
/* Google Classroom copy workflow */
.classroom-copy-card{grid-column:1/-1;padding:13px;border:1px solid #dfe7fb;border-radius:10px;background:linear-gradient(120deg,#f8faff,#f2f6ff)}
.classroom-copy-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.classroom-copy-toggle>input{width:auto;flex:none;accent-color:#3978f5;margin:3px 0 0}.classroom-copy-toggle span{display:grid;gap:4px}.classroom-copy-toggle b{font-size:11px;color:#34415a}.classroom-copy-toggle small,.classroom-copy-options>small{font-size:9px;color:#8390a5;line-height:1.5}.classroom-copy-options{display:grid;gap:9px;margin:12px 0 0 23px}.classroom-copy-options>label{display:grid;gap:6px;font-size:10px;color:#637089;font-weight:600}.classroom-copy-options input,.classroom-copy-options select{width:100%;border:1px solid #e1e7f1;border-radius:8px;padding:9px;font-size:10px;color:#34415a;background:white}.classroom-course-row{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}.student-drive-links{display:grid;gap:8px;margin:14px 0;padding:12px;border:1px solid #e6ebf4;border-radius:9px;background:#f8faff}.student-drive-links>b{font-size:11px}.student-drive-links>a{display:flex;justify-content:space-between;gap:10px;padding:8px;background:white;border:1px solid #e7ebf2;border-radius:7px;color:#416fdd;text-decoration:none;font-size:10px}.student-drive-links>a small{color:#8490a4}.student-drive-links>small{color:#828da0;font-size:10px;line-height:1.5}

/* Tổng quan dùng số liệu thật */
.dl-empty { margin: 8px 0 12px; padding: 18px; border: 1px dashed #d6dce8; border-radius: 12px; color: #6b7489; text-align: center; font-size: 14px; }
.trend-flat { color: #6b7489; font-size: 12px; }

/* Danh sách "Bắt đầu" */
.izi-start { background: #fff; border: 1px solid #e3e8f4; border-radius: 18px; padding: 20px 22px; margin-bottom: 18px; display: grid; gap: 14px; }
.izi-start-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.izi-start-head h2 { margin: 0 0 4px; font-size: 18px; }
.izi-start-head p { margin: 0; color: #6b7489; font-size: 14px; }
.izi-start-bar { height: 8px; background: #edf1f8; border-radius: 99px; overflow: hidden; }
.izi-start-bar i { display: block; height: 100%; background: #3a5bd9; border-radius: 99px; }
.izi-start-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.izi-start-list li { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; }
.izi-start-list li.next { background: #f2f5ff; }
.izi-start-list li b { display: block; font-size: 15px; }
.izi-start-list li small { color: #6b7489; font-size: 13px; }
.izi-start-list li.done b { color: #6b7489; text-decoration: line-through; }
.izi-start-list em { font-style: normal; color: #127a4c; font-size: 13px; font-weight: 600; }
.izi-start-num { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: #edf1f8; color: #47506a; }
.izi-start-list li.next .izi-start-num { background: #3a5bd9; color: #fff; }
.izi-start-list li.done .izi-start-num { background: #e8f8ef; color: #127a4c; }
@media (max-width: 640px) { .izi-start-list li { grid-template-columns: 28px 1fr; } .izi-start-list li > .btn, .izi-start-list li > em { grid-column: 2; justify-self: start; } }

/* Điểm danh: Kiểm tra bài cũ + BTVN */
.cc-band { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 12px 0 10px; padding: 10px 14px; border-radius: 10px; background: #f2f5ff; border: 1px solid #dbe4ff; font-size: 12px; color: #34435a; }
.cc-band > b { color: #3a5bd9; font: 800 12px Manrope, sans-serif; }
.cc-band label { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.cc-band input { height: 32px; border: 1px solid #d6dfef; border-radius: 6px; padding: 0 8px; font: inherit; background: #fff; }
.cc-band #ccTopic { width: 200px; } .cc-band #ccMax { width: 70px; }
.cc-band small { flex-basis: 100%; color: #6b7489; }
.cc-score { display: flex; align-items: center; gap: 4px; }
.cc-attendance .attendance-table td .cc-score input { width: 64px; min-width: 64px; }
.cc-score span { color: #6b7489; font-size: 11px; white-space: nowrap; }
.cc-star { font-style: normal; color: #b7791f; font-weight: 800; font-size: 11px; white-space: nowrap; }
.cc-invalid { border-color: #d64545 !important; background: #fff5f5 !important; }
.cc-attendance tr.cc-absent td { color: #98a2b3; }
.cc-attendance footer { align-items: center; flex-wrap: wrap; }
.cc-bonus-btn { color: #8a5a00; border-color: #f0d9a8; background: #fff8e8; }
.cc-summary { margin-right: auto; color: #47506a; font-size: 12px; }
.cc-notice { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; background: rgba(23, 35, 61, .18); transition: opacity .25s; }
.cc-notice.out { opacity: 0; }
.cc-notice-card { display: grid; justify-items: center; gap: 6px; min-width: 280px; max-width: calc(100vw - 48px); padding: 26px 30px; border-radius: 18px; background: #fff; box-shadow: 0 18px 50px rgba(23, 35, 61, .2); text-align: center; }
.cc-notice-card span { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font-size: 24px; font-weight: 800; background: #e8f8ef; color: #127a4c; }
.cc-notice-card.info span { background: #e8f0ff; color: #3a5bd9; }
.cc-notice-card.warn span { background: #fff1e6; color: #c4320a; }
.cc-notice-card b { font-size: 18px; color: #17233d; }
.cc-notice-card small { color: #6b7489; font-size: 13px; }
/* Báo cáo */
.cc-parent-row { display: flex; justify-content: flex-end; margin: 4px 0 -6px; }
.cc-warn { margin: 6px 0 10px; padding: 10px 12px; border-radius: 10px; background: #fff4e5; border: 1px solid #f5d19b; color: #8a4b00; font-size: 13px; }
.cc-trend { display: flex; align-items: flex-end; gap: 14px; margin: 10px 0; font-size: 13px; color: #47506a; }
.cc-bars { display: flex; align-items: flex-end; gap: 4px; height: 56px; padding: 4px 6px; border-bottom: 1px solid #dfe5ef; }
.cc-bars i { width: 12px; border-radius: 3px 3px 0 0; background: #8fa6f0; }
.cc-bars i.high { background: #22b573; } .cc-bars i.low { background: #e5706a; }
.cc-parent-modal { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; }
.cc-parent-tools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin: 6px 0 14px; }
.cc-parent-tools label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: #47506a; }
.cc-parent-tools input { height: 38px; border: 1px solid #d6dfef; border-radius: 8px; padding: 0 10px; font: inherit; }
.cc-parent-tools span { flex: 1; }
.cc-parent-preview { border: 1px solid #e3e8f4; border-radius: 12px; padding: 22px; background: #fff; }
.cc-parent-preview .ccp header { border-bottom: 2px solid #3a5bd9; padding-bottom: 10px; margin-bottom: 14px; }
.cc-parent-preview .ccp header small { color: #3a5bd9; font-weight: 700; }
.cc-parent-preview .ccp h1 { margin: 2px 0; font-size: 22px; }
.cc-parent-preview .ccp header p { margin: 0; color: #47506a; }
.cc-parent-preview .ccp h2 { font-size: 15px; margin: 18px 0 8px; }
.cc-parent-preview .ccp-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cc-parent-preview .ccp-kpis div { border: 1px solid #dfe5ef; border-radius: 10px; padding: 10px; }
.cc-parent-preview .ccp-kpis small { display: block; color: #6b7489; font-size: 12px; }
.cc-parent-preview .ccp-kpis b { font-size: 22px; }
.cc-parent-preview .ccp-kpis b i { font-size: 12px; font-style: normal; color: #6b7489; }
.cc-parent-preview .ccp-kpis span { display: block; font-size: 12px; color: #47506a; margin-top: 2px; }
.cc-parent-preview .ccp table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cc-parent-preview .ccp th, .cc-parent-preview .ccp td { border: 1px solid #e3e8f4; padding: 6px 8px; text-align: left; }
.cc-parent-preview .ccp th { background: #f4f6fb; }
.cc-parent-preview .ccp-note { white-space: pre-wrap; border: 1px solid #e3e8f4; border-radius: 10px; padding: 10px; }
.cc-parent-preview .ccp footer { margin-top: 14px; font-size: 12px; color: #6b7489; }
@media (max-width: 700px) { .cc-parent-preview .ccp-kpis { grid-template-columns: 1fr 1fr; } .cc-band #ccTopic { width: 100%; } }

/* Đăng nhập / kết nối máy chủ */
.izc-booting .app-shell { display: none; }
#cloudGate { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 16px; background: #f4f6fb; overflow: auto; }
.izc-card { width: min(420px, 100%); background: #fff; border: 1px solid #e3e8f4; border-radius: 20px; padding: 28px 26px; box-shadow: 0 16px 40px rgba(23, 35, 61, .08); display: grid; gap: 14px; }
.izc-brand { display: flex; align-items: center; gap: 10px; }
.izc-brand b { display: block; font-family: Manrope, sans-serif; font-size: 17px; }
.izc-brand small { color: #6b7489; font-size: 12px; }
.izc-card h1 { margin: 6px 0 0; font-size: 22px; }
.izc-sub { margin: 0; color: #6b7489; font-size: 14px; line-height: 1.5; }
.izc-msg { padding: 10px 12px; border-radius: 10px; background: #fff1ef; border: 1px solid #f4c5bd; color: #a3341b; font-size: 13px; }
#izcForm { display: grid; gap: 12px; }
#izcForm label { display: grid; gap: 6px; font-size: 13px; font-weight: 600; color: #34435a; }
#izcForm input { height: 44px; border: 1px solid #d6dfef; border-radius: 10px; padding: 0 12px; font: inherit; font-weight: 400; }
#izcForm input:focus { outline: 2px solid #3a5bd9; outline-offset: 1px; border-color: transparent; }
#izcForm .btn { height: 46px; font-size: 15px; }
.izc-foot { margin: 0; font-size: 13px; color: #6b7489; }
.izc-link { border: 0; background: none; padding: 0; color: #3a5bd9; font: inherit; font-weight: 600; cursor: pointer; text-decoration: underline; }
.izc-cloud .role-preview-card { display: none; }
.izc-sync { font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 99px; background: #e8f8ef; color: #127a4c; white-space: nowrap; }
.izc-sync.saving { background: #eef2ff; color: #3a5bd9; }
.izc-sync.error { background: #fff1ef; color: #a3341b; }
.izc-user { position: relative; }
.izc-user-btn { display: flex; align-items: center; gap: 8px; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; padding: 4px; border-radius: 10px; text-align: left; }
.izc-user-btn small { display: block; color: #6b7489; font-size: 11px; }
.izc-user-btn:hover { background: #f2f5fb; }
.izc-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 180px; background: #fff; border: 1px solid #e3e8f4; border-radius: 12px; box-shadow: 0 12px 30px rgba(23, 35, 61, .14); padding: 6px; display: grid; }
.izc-menu button { border: 0; background: none; text-align: left; padding: 10px 12px; border-radius: 8px; font: inherit; cursor: pointer; }
.izc-menu button:hover { background: #f2f5fb; }
.izc-hint { color: #6b7489; font-size: 12px; }
.izc-pw-modal { width: min(440px, calc(100vw - 32px)); display: grid; gap: 12px; }
@media (max-width: 640px) { .izc-sync { display: none; } .izc-user-btn > span:nth-child(2) { display: none; } }

/* Nhắc sao lưu */
.izc-backup-note { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 16px; border-radius: 14px; background: #fff8e8; border: 1px solid #f0d9a8; }
.izc-backup-note > span { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: #ffefc7; color: #8a5a00; font-size: 20px; flex: none; }
.izc-backup-note div { flex: 1; display: grid; gap: 2px; }
.izc-backup-note b { color: #6b4500; }
.izc-backup-note small { color: #7a6233; font-size: 13px; }
@media (max-width: 640px) { .izc-backup-note { flex-wrap: wrap; } .izc-backup-note .btn { width: 100%; } }

/* Đồng bộ Classroom / tạo tài khoản học sinh */
.ct-modal { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; }
.ct-body { display: grid; gap: 12px; margin: 6px 0 4px; font-size: 14px; }
.ct-table { width: 100%; border-collapse: collapse; }
.ct-table th, .ct-table td { text-align: left; padding: 8px; border-bottom: 1px solid #edf0f5; vertical-align: middle; }
.ct-table td small { display: block; color: #6b7489; font-size: 12px; }
.ct-table select { width: 100%; height: 38px; border: 1px solid #d6dfef; border-radius: 8px; padding: 0 8px; font: inherit; }
.ct-sec { border: 1px solid #e3e8f4; border-radius: 12px; padding: 12px 14px; }
.ct-sec h3 { margin: 0 0 4px; font-size: 16px; } .ct-sec h3 small { color: #6b7489; font-weight: 500; }
.ct-sec h4 { margin: 10px 0 4px; font-size: 13px; color: #34435a; }
.ct-line { margin: 0; color: #47506a; } .ct-ok { color: #127a4c; font-weight: 600; }
.ct-list { margin: 4px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.ct-list code { font-size: 12px; background: #f4f6fb; padding: 1px 5px; border-radius: 5px; }
.ct-muted { color: #6b7489; margin: 0; font-size: 13px; }
.ct-err { padding: 10px 12px; border-radius: 10px; background: #fff1ef; border: 1px solid #f4c5bd; color: #a3341b; }
.ct-warn { padding: 10px 12px; border-radius: 10px; background: #fff8e8; border: 1px solid #f0d9a8; color: #6b4500; margin: 0; }
.ct-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ct-stats div { border: 1px solid #e3e8f4; border-radius: 10px; padding: 10px; display: grid; }
.ct-stats b { font-size: 22px; } .ct-stats span { color: #6b7489; font-size: 12px; }
.ct-body details summary { cursor: pointer; font-weight: 600; }
@media (max-width: 640px) { .ct-stats { grid-template-columns: 1fr; } }
.ct-note { font-style: normal; font-size: 12px; color: #8a5a00; background: #fff4dc; padding: 1px 6px; border-radius: 6px; }

/* Nút × cho các hộp thoại trước đây thiếu */
.close.izi-x { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; border: 0; border-radius: 8px; background: transparent; color: #6b7489; font-size: 22px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.close.izi-x:hover { background: #f1f4fa; color: #17233d; }
.close.izi-x:focus-visible { outline: 2px solid #3a5bd9; outline-offset: 1px; }
.gr-sync-modal, .izi-fs-dialog, .tp-overlay-box { position: relative; }
.vocab-set-editor .close.vocab-set-close { position: absolute; top: 10px; right: -8px; width: 36px; height: 36px; border-radius: 8px; color: #6b7489; font-size: 24px; line-height: 1; cursor: pointer; }
.vocab-set-editor .close.vocab-set-close:hover { background: #e9eef8; color: #17233d; }
.vocab-set-editor > header { position: sticky; top: -20px; z-index: 3; background: #f8faff; padding: 14px 0 10px; margin-top: -14px; }
.vocab-set-editor > header h1 { flex: 1 1 auto; margin: 0; }

.vocab-set-editor > header { padding-right: 40px; }
