:root{--teal:#60afa7;--teal-dark:#3d8f88;--blue:#3c7cb7;--blue-dark:#2e679c;--gold:#f0c443;--orange:#df9b25;--bg:#f4f5f5;--text:#25323a;--muted:#75818a;--white:#fff;--border:#e2e6e8;--shadow:0 4px 16px rgba(30,55,70,.08);--radius:8px}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Arial,Helvetica,sans-serif;color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:58px;background:var(--teal);display:flex;align-items:center;color:#fff;position:sticky;top:0;z-index:30;box-shadow:0 1px 4px #0002}.menu-btn{background:transparent;border:1px solid #ffffff66;color:#fff;border-radius:5px;width:38px;height:34px;margin:0 18px;font-size:20px;cursor:pointer}.brand{display:flex;align-items:center;gap:9px;min-width:230px}.brand-mark{width:32px;height:32px;border-radius:8px;border:2px solid #fff;display:grid;place-items:center;font-weight:800;font-size:11px}.brand b{display:block;letter-spacing:1px}.brand small{display:block;font-size:8px;letter-spacing:2px;opacity:.9}.top-actions{margin-left:auto;display:flex;align-items:center;gap:20px;padding-right:22px;font-size:22px;position:relative}.top-actions>a{opacity:.95}.avatar{width:34px;height:34px;border-radius:50%;border:1px solid #fff;background:#fff;color:var(--blue);font-weight:700;display:grid;place-items:center}.avatar.lg{width:44px;height:44px}.user-menu{display:none;position:absolute;right:15px;top:48px;background:#fff;color:var(--text);min-width:210px;padding:15px;border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--border)}.user-menu.show{display:block}.user-menu>*{display:block;margin:5px 0}.user-menu span{color:var(--muted);font-size:12px}.user-menu a{padding:8px 0;border-top:1px solid var(--border)}.layout{display:flex;min-height:calc(100vh - 58px)}.sidebar{width:238px;background:#fff;border-right:1px solid var(--border);flex:none}.sidebar nav{padding:16px 10px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 15px;border-radius:7px;color:#4c5a63;margin-bottom:4px}.sidebar nav a span{width:22px;text-align:center;color:var(--blue);font-size:18px}.sidebar nav a:hover,.sidebar nav a.active{background:#edf5f8;color:var(--blue);font-weight:700}.sidebar nav a.active{border-left:3px solid var(--blue)}.nav-label{font-size:10px;color:#9aa3a8;font-weight:700;padding:18px 15px 7px}.main{flex:1;min-width:0}.container{max-width:1400px;margin:0 auto;padding:28px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-head h1{margin:0 0 6px;font-size:27px;color:var(--blue-dark)}.page-head p{margin:0;color:var(--muted)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1.3fr .9fr}.dashboard-grid{grid-template-columns:1.7fr .8fr}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stats>div{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:17px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow)}.stat-icon{width:42px;height:42px;border-radius:8px;background:#edf5f8;color:var(--blue);display:grid;place-items:center;font-size:20px}.stats b{display:block;font-size:24px;color:var(--blue-dark)}.stats small,.course-info small,.event small,.message-row small,.resource small,.person small{display:block;color:var(--muted);margin-top:4px}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:13px;margin-bottom:13px}.panel-head h2{margin:0;font-size:17px;color:var(--blue-dark)}.panel-head a{color:var(--blue);font-size:12px;font-weight:700}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.course-grid.large{grid-template-columns:repeat(3,1fr)}.course-card{background:#fff;border:1px solid var(--border);border-radius:9px;overflow:hidden;transition:.15s;box-shadow:0 2px 8px #0000000b}.course-card:hover{transform:translateY(-2px);box-shadow:0 7px 18px #0002}.course-cover{height:126px;color:#fff;padding:15px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.course-cover:after{content:'';position:absolute;width:150px;height:150px;border-radius:50%;right:-55px;bottom:-70px;background:#fff2}.course-cover span{font-size:11px;letter-spacing:1px;z-index:1}.course-cover b{font-size:18px;z-index:1;max-width:90%}.course-info{padding:13px}.course-info>b{display:block;color:var(--text)}.empty{text-align:center;padding:35px 15px;color:var(--muted)}.empty>div{font-size:36px;margin-bottom:8px}.event,.lesson,.resource,.assignment,.message-row,.calendar-item,.announcement,.post{display:flex;align-items:center;gap:13px;padding:13px 2px;border-bottom:1px solid var(--border)}.event:last-child,.lesson:last-child,.resource:last-child,.assignment:last-child,.message-row:last-child,.calendar-item:last-child,.announcement:last-child{border-bottom:0}.date-box{background:#edf5f8;color:var(--blue);border-radius:7px;min-width:48px;height:48px;display:grid;place-items:center;font-size:19px;font-weight:800}.date-box small{font-size:9px;margin:0}.date-box.big{min-width:65px;height:65px;font-size:25px}.announcement{align-items:flex-start}.announcement-icon,.post-icon{width:42px;height:42px;border-radius:50%;background:#eaf5f4;color:var(--teal-dark);display:grid;place-items:center;flex:none}.announcement p,.post p{margin:6px 0;color:#59666d;line-height:1.5}.course-banner{border-radius:10px;color:#fff;padding:30px;margin-bottom:18px;min-height:180px;display:flex;align-items:flex-end;position:relative;overflow:hidden}.course-banner:after{content:'';position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:#fff1}.course-banner h1{margin:7px 0;font-size:31px;position:relative;z-index:1}.course-banner p{margin:0;max-width:700px;opacity:.9;position:relative;z-index:1}.course-layout{display:grid;grid-template-columns:1fr 290px;gap:18px}.tabs{display:flex;gap:3px;margin-bottom:13px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:5px}.tabs a{padding:10px 15px;color:var(--muted);border-radius:6px}.tabs a.active,.tabs a:hover{background:#edf5f8;color:var(--blue);font-weight:700}.lesson{cursor:pointer}.lesson:hover{background:#fafcfd}.folder{color:var(--blue);font-size:21px;width:32px;text-align:center}.lesson>div:nth-child(2),.resource>div:nth-child(2),.assignment>div:first-child,.message-row>div,.calendar-item>div:nth-child(2){flex:1}.lesson>span,.quick-link span{color:#a3adb2;font-size:23px}.assignment{align-items:flex-start}.resource{align-items:center}.file-icon{width:48px;height:55px;background:#ef5a57;color:#fff;display:grid;place-items:center;border-radius:5px;font-size:10px;font-weight:800;flex:none}.quick-link{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border)}.side-card h3{margin:0 0 14px;color:var(--blue-dark)}.person{display:flex;gap:12px;align-items:center}.badge{display:inline-block;background:#eef2f4;color:#65727a;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700}.badge.success{background:#e7f5f0;color:#27826f}.grade{font-weight:800;color:var(--blue)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:11px;text-transform:uppercase;color:#8a959b;background:#fafbfb}td small{display:block;color:var(--muted);margin-top:4px}.calendar-item{align-items:flex-start;padding:18px 4px}.calendar-item p{margin:6px 0;color:var(--muted)}.form{display:grid;gap:13px}.form label{display:grid;gap:6px;color:#53616a;font-weight:700;font-size:12px}.form input,.form select,.form textarea{width:100%;border:1px solid #d7dde0;border-radius:6px;padding:10px 11px;background:#fff;color:var(--text);outline:none}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3c7cb718}.form.narrow{max-width:520px}.btn{border:1px solid var(--border);background:#fff;color:#59666d;padding:10px 14px;border-radius:6px;cursor:pointer;font-weight:700;font-size:12px;display:inline-block}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.small{padding:7px 10px;font-size:11px}.btn.full{width:100%;padding:12px}.alert{padding:12px 14px;border-radius:7px;margin-bottom:15px;font-size:13px}.alert.success{background:#e8f5f1;color:#287765;border:1px solid #cce9df}.alert.error{background:#fff0f0;color:#a33f3f;border:1px solid #f2d1d1}.alert.fade{opacity:0;transition:opacity .7s}.post{align-items:flex-start;padding:18px 3px}.post-meta{color:var(--blue);font-size:11px;font-weight:700}.post h2{margin:5px 0;font-size:19px;color:var(--blue-dark)}.resource-grid{display:grid;gap:14px}.resource-card{display:flex;align-items:center;gap:14px;margin:0}.resource-card>div{flex:1}.resource-card h3{margin:0 0 4px;font-size:15px}.resource-card p{margin:0;color:var(--blue);font-size:12px}.profile{display:flex;gap:28px;align-items:flex-start}.profile-avatar{width:100px;height:100px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:32px;font-weight:800;flex:none}.row-between{display:flex;justify-content:space-between;align-items:center;font-size:12px}.row-between a{color:var(--blue)}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:6px!important;font-weight:400!important}.check input{width:auto}.password{display:flex;position:relative}.password input{padding-right:42px}.password button{position:absolute;right:5px;top:5px;border:0;background:transparent;color:#77838a;cursor:pointer}.login-body{min-height:100vh;background:linear-gradient(135deg,#f4f5f5,#eaf4f3);display:grid;place-items:center}.login-shell{width:min(950px,92vw);display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center}.login-brand{text-align:center;color:var(--teal-dark)}.login-brand .big{width:78px;height:78px;margin:auto;font-size:23px;border-width:3px}.login-brand h1{letter-spacing:2px;margin:17px 0 5px;font-size:30px}.login-brand p{margin:0;color:#78908e}.login-card{background:#fff;border:1px solid var(--border);box-shadow:0 12px 35px #00000013;border-radius:12px;padding:32px}.login-card h2{margin:0;color:var(--blue-dark);font-size:23px}.muted{color:var(--muted);line-height:1.5}.demo{margin-top:18px;background:#f7f9fa;border:1px solid var(--border);padding:10px;border-radius:6px;color:#6d797f;font-size:11px;line-height:1.7}.mobile-overlay{display:none}@media(max-width:1050px){.sidebar{width:205px}.course-grid,.course-grid.large{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:fixed;left:-250px;top:58px;bottom:0;z-index:25;transition:.2s}.sidebar-open .sidebar{left:0}.sidebar-open .mobile-overlay{display:block;position:fixed;inset:58px 0 0;background:#0005;z-index:20}.container{padding:18px}.dashboard-grid,.grid.two,.course-layout{grid-template-columns:1fr}.course-grid,.course-grid.large{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.brand{min-width:0}.brand small{display:none}.login-shell{grid-template-columns:1fr;gap:15px}.login-brand h1{font-size:23px}.login-brand .big{width:58px;height:58px}.login-card{padding:23px}.profile{flex-direction:column}.top-actions{gap:12px;padding-right:10px}}
