:root{--ink:#182230;--muted:#667085;--line:#e7eaf0;--bg:#f5f7fb;--blue:#4f6ef7;--blue-soft:#eef1ff;--orange:#f79009;--green:#12b76a;--purple:#7f56d9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:#101828;color:#d0d5dd;padding:28px 18px;display:flex;flex-direction:column}.brand{font:800 21px Manrope;display:flex;align-items:center;gap:12px;color:white;padding:0 10px 28px}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#7588ff,#4f46e5);display:grid;place-items:center}.sidebar nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#98a2b3;text-align:left;padding:12px;border-radius:9px;font:500 14px 'DM Sans';cursor:pointer;display:flex;gap:13px;align-items:center}.nav-item span{font-size:19px;width:20px;text-align:center}.nav-item:hover,.nav-item.active{background:#1d2939;color:#fff}.nav-badge{margin-left:auto;background:#f04438;color:#fff;border-radius:10px;font-size:11px;padding:2px 7px}.sidebar-bottom{margin-top:auto}.term-card{background:#1d2939;border:1px solid #344054;border-radius:12px;padding:15px;margin-bottom:14px;display:grid;gap:5px}.term-card small{font-size:9px;letter-spacing:1px}.term-card strong{color:#fff}.term-card span{font-size:12px}.profile{border-top:1px solid #344054;margin-top:14px;padding:18px 5px 0;display:flex;align-items:center;gap:10px}.profile .avatar{width:36px;height:36px;border-radius:50%;background:#fdb022;color:#69410b;display:grid;place-items:center;font-weight:700}.profile div:nth-child(2){display:grid;flex:1}.profile strong{font-size:13px;color:#fff}.profile small{font-size:11px}.profile button{background:none;border:0;color:#98a2b3}main{margin-left:242px;min-height:100vh}header{height:96px;background:white;border-bottom:1px solid var(--line);padding:23px 34px;display:flex;justify-content:space-between;align-items:center}h1{font:700 23px Manrope;margin:0 0 3px}header p,.panel-head p,.timetable-title p{margin:0;color:var(--muted);font-size:13px}.header-actions{display:flex;gap:10px;align-items:center}.search{height:40px;border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;padding:0 12px;color:#98a2b3}.search input{border:0;outline:0;width:180px;margin-left:7px;font:inherit}.search.small input{width:150px}.primary,.outline,.icon-btn,.text-btn,.more{border:0;border-radius:9px;padding:11px 15px;font:600 13px 'DM Sans';cursor:pointer}.primary{background:var(--blue);color:white;box-shadow:0 2px 4px #4f6ef733}.primary:hover{background:#405bd3}.outline{border:1px solid #d0d5dd;background:white;color:#344054}.icon-btn{position:relative;background:white;border:1px solid var(--line);font-size:18px}.icon-btn i{position:absolute;width:6px;height:6px;border-radius:50%;background:#f04438;right:8px;top:7px}.page{display:none;padding:24px 34px}.page.active{display:block}.date-strip{height:62px;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;padding:6px 14px;gap:4px}.date-strip>button{border:0;background:white;color:#667085;font-size:20px}.day{width:52px;height:50px;text-align:center;border-radius:9px;padding:5px}.day span{display:block;font-size:9px;color:#98a2b3}.day b{font-size:16px}.day.active{background:var(--blue);color:#fff}.day.active span{color:#dfe3ff}.date-label{margin-left:auto;font-weight:600;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stats article{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;align-items:center;gap:14px}.stat-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:19px;font-weight:700}.blue{background:#eef2ff;color:#4f6ef7}.purple{background:#f4ebff;color:#7f56d9}.orange{background:#fff4e5;color:#f79009}.green{background:#eafbf2;color:#12b76a}.stats small{font-size:10px;letter-spacing:.6px;color:#667085}.stats h2{font:700 24px Manrope;margin:3px 0}.stats h2 span{font-size:13px;color:#98a2b3}.stats p{font-size:11px;color:#667085;margin:0}.stats em{font-style:normal;color:#12b76a;font-weight:600}.stats .warn{color:#f79009}.dashboard-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px}.panel-head,.timetable-title{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;border-bottom:1px solid var(--line)}h3{font:700 15px Manrope;margin:0 0 4px}.text-btn{background:none;color:var(--blue);padding:5px}.more{background:none}.schedule-panel{grid-row:span 2}.schedule-row{display:grid;grid-template-columns:68px 5px 1fr 80px;gap:13px;padding:15px 20px;border-bottom:1px solid #f0f2f5;align-items:center}.schedule-row:last-child{border:0}.schedule-row time{font-weight:700;font-size:12px}.schedule-row time small{display:block;font-weight:400;color:#98a2b3;margin-top:4px}.schedule-row .bar{height:42px;border-radius:4px;background:var(--blue)}.schedule-row:nth-child(2) .bar{background:#12b76a}.schedule-row:nth-child(3) .bar{background:#f79009}.schedule-row:nth-child(4) .bar{background:#7f56d9}.schedule-row strong{font-size:13px}.schedule-row p{margin:4px 0 0;color:#667085;font-size:11px}.room{color:#667085;font-size:11px}.arrange-item{padding:14px 20px;border-bottom:1px solid #f0f2f5;display:flex;align-items:center;gap:11px}.avatar-sm{width:34px;height:34px;border-radius:50%;background:#fee4e2;color:#b42318;display:grid;place-items:center;font-size:11px;font-weight:700}.arrange-item>div:nth-child(2){flex:1}.arrange-item strong{font-size:12px}.arrange-item p{font-size:10px;color:#667085;margin:3px 0}.pill{font-size:9px;background:#fff4e5;color:#b54708;border-radius:10px;padding:4px 7px}.full{width:calc(100% - 40px);margin:14px 20px}.activity-panel{padding-bottom:8px}.activity{display:flex;gap:13px;padding:14px 20px}.activity i{width:8px;height:8px;border-radius:50%;margin-top:5px}.green-dot{background:#12b76a}.blue-dot{background:#4f6ef7}.orange-dot{background:#f79009}.activity strong{font-size:12px}.activity p,.activity small{margin:3px 0;font-size:10px;color:#667085}.toolbar{padding:12px;display:flex;align-items:center;gap:10px;margin-bottom:16px}.segmented{padding:3px;background:#f2f4f7;border-radius:8px}.segmented button{border:0;background:none;padding:8px 12px;border-radius:6px;font:600 12px 'DM Sans';color:#667085}.segmented button.active{background:white;color:#344054;box-shadow:0 1px 3px #10182818}select{border:1px solid #d0d5dd;border-radius:8px;padding:10px;background:#fff;color:#344054}.spacer{flex:1}.timetable-card{overflow:hidden}.legend{display:flex;gap:14px;font-size:10px;color:#667085}.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.legend .math{background:#4f6ef7}.legend .lab{background:#12b76a}.legend .other{background:#f79009}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;table-layout:fixed}th{height:50px;background:#fafbfc;color:#667085;font-size:11px}td,th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px}th:first-child{width:90px}td:first-child{text-align:center;color:#667085;font-size:10px}td:first-child strong{display:block;color:#344054;font-size:12px;margin-bottom:3px}.lesson{min-height:64px;border-radius:7px;background:#eef2ff;border-left:3px solid #4f6ef7;padding:9px}.lesson.lab{background:#eafbf2;border-color:#12b76a}.lesson.other{background:#fff4e5;border-color:#f79009}.lesson strong{font-size:11px;display:block}.lesson span{font-size:9px;color:#667085}.break-cell{background:#fafbfc;text-align:center!important;font-weight:700;letter-spacing:2px;color:#98a2b3!important}.arrange-hero{background:linear-gradient(115deg,#101828,#283b68);border-radius:14px;color:#fff;padding:25px 28px;display:flex;justify-content:space-between;align-items:center}.arrange-hero h2{font:700 23px Manrope;margin:5px 0}.arrange-hero p{color:#cbd5e1;margin:0;font-size:13px}.eyebrow{font-size:9px;letter-spacing:1.2px;color:#91a4ff;font-weight:700}.stats.compact{grid-template-columns:repeat(3,1fr)}.arrangement-table .arr-row{display:grid;grid-template-columns:1.2fr .9fr .8fr 1.2fr auto;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}.arr-row small{display:block;color:#667085;font-size:10px;margin-top:3px}.arr-row strong{font-size:12px}.status-open{color:#b54708;background:#fff4e5;border-radius:10px;padding:5px 8px;font-size:10px}.suggestion{background:#f8f9fc;border-radius:8px;padding:8px}.empty-state{text-align:center;padding:90px 20px}.empty-state>div{font-size:40px;color:#667085}.empty-state p{color:#667085}.modal-backdrop{position:fixed;inset:0;background:#10182899;display:none;place-items:center;z-index:5}.modal-backdrop.show{display:grid}.modal{width:460px;background:#fff;border-radius:16px;padding:28px;position:relative;box-shadow:0 20px 50px #10182844}.modal h2{font:700 23px Manrope;margin:6px 0}.modal>p{color:#667085;font-size:13px;margin:0 0 22px}.modal label{display:grid;gap:7px;font-size:12px;font-weight:600;margin:13px 0}.modal select{width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-close{position:absolute;right:18px;top:15px;border:0;background:none;font-size:25px;color:#667085;cursor:pointer}.conflict-ok{background:#ecfdf3;color:#027a48;padding:11px;border-radius:8px;font-size:12px;margin:15px 0}.modal .full{width:100%;margin:0}.toast{position:fixed;right:30px;bottom:25px;background:#101828;color:white;border-radius:10px;padding:14px 18px;font-size:13px;transform:translateY(80px);opacity:0;transition:.3s}.toast.show{transform:none;opacity:1}@media(max-width:1050px){.sidebar{width:76px;padding:25px 10px}.brand span:last-child,.nav-item:not(.active){font-size:0}.nav-item.active{font-size:0}.nav-item span{font-size:19px}.term-card,.profile div:nth-child(2),.profile button{display:none}main{margin-left:76px}.stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.schedule-panel{grid-row:auto}.header-actions .search{display:none}}@media(max-width:700px){header{padding:18px;height:auto}.primary#generate-btn{display:none}.page{padding:15px}.stats{grid-template-columns:1fr}.date-strip .day:nth-of-type(n+5){display:none}.arrangement-table .arr-row{grid-template-columns:1fr 1fr}.arrangement-table .arr-row>*:nth-child(3){display:none}.modal{width:calc(100% - 28px)}.toolbar{flex-wrap:wrap}.spacer{display:none}}
