*{box-sizing:border-box} :root{--bg:#f7f8fc;--surface:#fff;--surface-2:#fbfbfe;--text:#202238;--muted:#85889e;--line:#ececf3;--purple:#7866df;--purple-dark:#6251c8;--purple-soft:#f0edff;--green:#36a987;--green-soft:#e9f8f2;--orange:#e69a54;--orange-soft:#fff3e8;--blue:#5b91d7;--blue-soft:#eaf3ff;--shadow:0 8px 28px rgba(38,36,82,.045);--radius:17px}
body.dark{--bg:#171827;--surface:#222438;--surface-2:#292c42;--text:#f1f1fb;--muted:#a2a4bb;--line:#383a50;--purple-soft:#373252;--green-soft:#213d37;--orange-soft:#493729;--blue-soft:#273b56;--shadow:0 8px 28px rgba(0,0,0,.14)}
body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;transition:background .2s,color .2s}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a99df5;outline-offset:2px}.app-shell{min-height:100vh}.sidebar{width:248px;background:var(--surface);border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:27px 17px 17px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font:800 17px Manrope,sans-serif;letter-spacing:-.7px;margin:0 8px 43px}.brand-mark{height:38px;width:38px;border-radius:12px;background:linear-gradient(135deg,#a99afa,#6d5bd1);display:grid;place-items:center;color:white;font-size:19px;box-shadow:0 6px 14px #8978df55}.brand-light{font-weight:500}.brand small{display:block;color:var(--muted);font:700 8px 'DM Sans';letter-spacing:1.7px;margin-top:2px}.workspace-label{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#a3a4b4;padding:0 12px 12px}.nav-list{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:var(--muted);height:43px;padding:0 12px;border-radius:10px;text-align:left;display:flex;align-items:center;gap:13px;font-size:12px;font-weight:600;position:relative;transition:.18s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--purple-soft);color:var(--purple)}.nav-icon{font-size:18px;width:19px;text-align:center;font-weight:400}.nav-count{margin-left:auto;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2px 7px;font-size:10px}.notification-dot{height:6px;width:6px;background:#f18b79;border-radius:50%;margin-left:auto}.tools-label{margin-top:31px}.sidebar-bottom{margin-top:auto}.help-card{background:linear-gradient(145deg,#f3f0ff,#f9f7ff);border:1px solid #eeebff;border-radius:14px;padding:15px;margin-bottom:16px;color:#39335f}.dark .help-card{background:#34304b;border-color:#45405f;color:#f2efff}.help-orb{height:27px;width:27px;border-radius:9px;background:#fff;display:grid;place-items:center;color:var(--purple);margin-bottom:11px}.help-card strong{font:700 12px Manrope}.help-card p{font-size:10px;line-height:1.6;color:#817b9f;margin:6px 0 10px}.text-button,.link-btn{border:0;background:transparent;color:var(--purple);font-weight:700;font-size:10px;padding:0}.text-button span{margin-left:5px}.profile-mini{border-top:1px solid var(--line);padding:16px 2px 0;display:flex;align-items:center;gap:9px}.avatar,.top-avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:10px;font-weight:700}.avatar-purple,.top-avatar{background:#eeeaff;color:#7766d5}.profile-mini strong{display:block;font-size:10px}.profile-mini small{font-size:9px;color:var(--muted)}.more-btn{margin-left:auto;border:0;background:none;color:var(--muted);font-size:20px}.main-content{margin-left:248px;max-width:calc(100% - 248px);padding:0 39px 25px}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:32px}.breadcrumb{color:var(--muted);font-size:11px}.breadcrumb span{padding:0 9px;color:#c5c5d0}.breadcrumb strong{color:var(--text);font-weight:600}.top-actions{display:flex;align-items:center;gap:13px}.search-wrap{height:36px;background:var(--surface);border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;padding:0 10px;gap:8px;color:#a5a5b5}.search-wrap input{border:0;outline:0;background:transparent;width:160px;color:var(--text);font-size:10px}.search-wrap kbd{font-size:9px;color:#a6a6b4;background:var(--bg);border:1px solid var(--line);padding:3px 5px;border-radius:4px}.icon-button{height:34px;width:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:17px;position:relative}.bell-button i{position:absolute;width:5px;height:5px;background:#ef8d7e;border-radius:50%;top:6px;right:7px}.top-avatar{border-radius:50%;width:32px;height:32px}.mobile-menu{display:none}.page{display:none;animation:fadeIn .25s ease}.page.active-page{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.welcome-row,.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px}.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--purple);font-weight:700;margin-bottom:10px}.live-dot{display:inline-block;width:6px;height:6px;background:#48c49b;border-radius:50%;margin-right:5px;box-shadow:0 0 0 3px #48c49b20}h1,h2,h3,p{margin-top:0}h1{font:800 27px Manrope,sans-serif;letter-spacing:-1.2px;margin-bottom:7px}.wave{font-size:20px;color:#e7aa63}.subheading{color:var(--muted);font-size:11px;margin:0}.welcome-actions{display:flex;align-items:center;gap:12px}.date-pill,.status-pill{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--surface);font-size:10px;color:var(--muted)}.primary-btn,.outline-btn,.white-btn{border-radius:8px;padding:10px 14px;font-size:10px;font-weight:700;transition:.18s}.primary-btn{background:var(--purple);border:1px solid var(--purple);color:white;box-shadow:0 4px 10px #7866df28}.primary-btn:hover{background:var(--purple-dark);transform:translateY(-1px)}.primary-btn span,.outline-btn span{margin-left:9px}.outline-btn{background:var(--surface);border:1px solid var(--line);color:var(--text)}.outline-btn:hover{border-color:var(--purple);color:var(--purple)}.white-btn{background:#fff;border:0;color:#5747b6}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.stat-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{padding:17px 17px 14px;min-width:0}.stat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.stat-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;font-size:16px}.lavender{background:var(--purple-soft);color:var(--purple)}.mint{background:var(--green-soft);color:var(--green)}.peach{background:var(--orange-soft);color:var(--orange)}.blue{background:var(--blue-soft);color:var(--blue)}.trend{font-size:9px;font-weight:700;padding:4px 6px;border-radius:5px}.positive{color:#299a77;background:#eaf8f2}.neutral{color:#888aa0;background:var(--bg)}.stat-label{color:var(--muted);font-size:10px;margin-bottom:5px}.stat-value{font:800 25px Manrope;letter-spacing:-1px}.stat-value small{font:500 10px 'DM Sans';color:var(--muted);letter-spacing:0}.stat-foot{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:8px;margin-top:12px}.mini-progress{height:4px;background:#efedfa;border-radius:9px;width:55px;overflow:hidden}.mini-progress i{height:100%;display:block;background:#8978e5;border-radius:9px}.mini-progress.green i{background:#54b99b}.mini-progress.orange i{background:#e6a05e}.stat-note{flex:1}.content-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-bottom:16px}.panel{padding:20px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}.panel-heading h2{font:700 13px Manrope;letter-spacing:-.3px;margin-bottom:5px}.panel-heading p{font-size:9px;color:var(--muted);margin:0}.select-control{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:7px;padding:8px 10px;font-size:9px}.chart-summary{display:flex;justify-content:space-between;align-items:flex-end}.muted-label{font-size:8px;letter-spacing:1px;color:var(--muted);display:block;margin-bottom:5px}.chart-summary strong{font:800 21px Manrope}.chart-summary strong .trend{font:700 8px 'DM Sans';vertical-align:middle;margin-left:5px}.chart-legend{display:flex;gap:13px;color:var(--muted);font-size:8px}.legend-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:4px}.purple-dot{background:#8978e5}.gray-dot{background:#c6c8d5}.chart-wrap{height:175px;position:relative;margin:12px 0 0 20px;padding-bottom:19px}.performance-chart{width:100%;height:145px;overflow:visible}.grid-lines line{stroke:var(--line);stroke-dasharray:3 5;stroke-width:1}.chart-line{fill:none;stroke-width:2.5;stroke-linecap:round}.main-line{stroke:#8876e4}.gray-line{stroke:#c8c9d5;stroke-width:1.8;stroke-dasharray:5 5}.chart-point{fill:#fff;stroke:#8876e4;stroke-width:3}.y-labels{position:absolute;left:-20px;top:0;height:145px;display:flex;flex-direction:column;justify-content:space-between;color:#a5a6b5;font-size:8px}.x-labels{display:flex;justify-content:space-between;color:#a5a6b5;font-size:8px;margin-top:0}.chart-insight{display:flex;align-items:center;gap:9px;background:var(--purple-soft);padding:10px;border-radius:8px;font-size:9px;color:var(--muted);line-height:1.5;margin-top:5px}.chart-insight strong{color:var(--text)}.insight-icon{height:23px;width:23px;display:grid;place-items:center;background:var(--surface);border-radius:7px;color:var(--purple);flex-shrink:0}.dots-btn{border:0;background:transparent;color:var(--muted);font-size:18px}.timeline{margin-top:5px}.timeline-item{display:grid;grid-template-columns:61px 12px 1fr;gap:9px;min-height:68px;position:relative}.timeline-item:not(:last-child):after{content:"";position:absolute;left:75px;top:16px;bottom:-1px;width:1px;background:var(--line)}.time{font-size:8px;color:var(--muted);padding-top:2px}.timeline-marker{width:9px;height:9px;border-radius:50%;background:#d8d8e2;border:2px solid var(--surface);box-shadow:0 0 0 1px #d8d8e2;z-index:1;margin-top:1px}.completed .timeline-marker{background:#51b89a;box-shadow:0 0 0 1px #51b89a}.current .timeline-marker{background:#8876e4;box-shadow:0 0 0 3px #8876e42b}.class-info strong{display:block;font-size:9px;margin-bottom:4px}.class-info span{display:block;color:var(--muted);font-size:8px}.class-tag{display:inline-block;margin-top:6px;font-size:7px;letter-spacing:.6px;font-weight:700}.done-tag{color:#43a987}.live-tag{color:var(--purple)}.full-btn{width:100%;padding:9px;margin-top:0}.bottom-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.course-list,.event-list{display:grid;gap:12px}.course-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px}.course-icon{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;font-size:12px;font-weight:700}.course-row strong{font-size:9px;display:block;margin-bottom:4px}.course-row small{font-size:8px;color:var(--muted)}.course-progress{width:85px}.course-progress span{font-size:8px;color:var(--muted);display:block;text-align:right;margin-bottom:5px}.progress-track{height:4px;background:var(--bg);border-radius:8px;overflow:hidden}.progress-track i{height:100%;display:block;border-radius:8px;background:#8a79e5}.event-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center}.event-date{background:var(--purple-soft);color:var(--purple);border-radius:8px;text-align:center;padding:6px 3px}.event-date b{font:800 15px Manrope;display:block}.event-date small{font-size:7px;font-weight:700}.event-row strong{font-size:9px;display:block;margin-bottom:4px}.event-row span{font-size:8px;color:var(--muted)}.event-row button{border:1px solid var(--line);background:var(--surface);color:var(--purple);border-radius:6px;padding:6px 8px;font-size:8px;font-weight:700}.concept-strip{display:flex;align-items:center;gap:13px;background:linear-gradient(100deg,#f1efff,#faf9ff);border:1px solid #ebe8ff;border-radius:13px;padding:14px 17px;margin-top:16px}.dark .concept-strip{background:#302d49;border-color:#45405f}.concept-symbol{width:35px;height:35px;display:grid;place-items:center;background:#fff;border-radius:10px;color:var(--purple);font-size:19px}.concept-strip>div:nth-child(2){flex:1}.concept-strip strong{font:700 10px Manrope}.concept-strip p{font-size:8px;color:var(--muted);margin:4px 0 0}.concept-strip .outline-btn{background:transparent}.footer{display:flex;justify-content:space-between;color:#a6a7b6;font-size:8px;padding:25px 2px 0}.footer b{color:var(--purple)}
/* secondary pages */.page-heading{align-items:center;margin-bottom:24px}.page-heading h1{margin-bottom:6px}.filter-row{display:flex;align-items:center;gap:10px;margin-bottom:17px}.page-search{flex:1;max-width:390px}.page-search input{width:100%}.results-count{margin-left:auto;color:var(--muted);font-size:9px}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow)}.course-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.course-card .course-icon{width:40px;height:40px;font-size:15px}.course-card h3{font:700 12px Manrope;margin-bottom:5px}.course-card p{font-size:9px;color:var(--muted);margin-bottom:16px}.course-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:8px;margin-bottom:8px}.course-card .progress-track{height:5px}.course-card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:15px}.course-card-bottom small{color:var(--muted);font-size:8px}.course-card-bottom button{border:0;background:var(--purple-soft);color:var(--purple);font-size:8px;font-weight:700;padding:7px 9px;border-radius:6px}.event-feature{background:linear-gradient(110deg,#5145a5,#7867d8 55%,#9a8ae9);border-radius:17px;min-height:235px;overflow:hidden;position:relative;color:white;display:grid;grid-template-columns:1.2fr 1fr;margin-bottom:22px}.feature-copy{padding:26px 30px;position:relative;z-index:2}.feature-kicker{font-size:8px;letter-spacing:1.5px;color:#dcd7ff;font-weight:700}.feature-copy h2{font:800 26px Manrope;letter-spacing:-1px;margin:12px 0 8px}.feature-copy p{font-size:9px;color:#e3dfff;line-height:1.7;max-width:340px;margin-bottom:14px}.feature-meta{display:flex;gap:15px;font-size:8px;color:#e4e0ff;margin-bottom:15px}.feature-art{position:relative;overflow:hidden}.art-orbit{position:absolute;border:1px solid #ffffff45;border-radius:50%;width:270px;height:270px;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-two{width:190px;height:190px;border-style:dashed}.art-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:25px;background:linear-gradient(135deg,#f8d9a8,#f3a7a8);display:grid;place-items:center;color:white;font-size:43px;box-shadow:0 15px 40px #322a7655}.art-word{position:absolute;font:800 8px Manrope;letter-spacing:2px;color:#ffffffb0}.word-one{top:20%;left:17%}.word-two{right:8%;top:49%}.word-three{bottom:16%;left:28%}.filter-tabs,.concept-filters{display:flex;gap:5px}.filter-tab{border:0;background:transparent;color:var(--muted);font-size:9px;padding:8px 11px;border-radius:7px;font-weight:600}.filter-tab.active{background:var(--purple-soft);color:var(--purple)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.event-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:15px;box-shadow:var(--shadow)}.event-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.event-type{font-size:7px;letter-spacing:.8px;font-weight:700;padding:5px 7px;border-radius:5px;background:var(--blue-soft);color:var(--blue)}.event-card h3{font:700 12px Manrope;margin-bottom:6px}.event-card p{font-size:8px;color:var(--muted);line-height:1.6;min-height:28px}.event-details{display:grid;gap:6px;color:var(--muted);font-size:8px;margin:12px 0}.event-card-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:11px}.event-card-foot small{color:var(--muted);font-size:8px}.event-card-foot button{border:0;background:var(--purple-soft);color:var(--purple);border-radius:6px;padding:7px 10px;font-size:8px;font-weight:700}.resource-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.resource-summary>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:13px;display:flex;align-items:center;gap:10px}.resource-icon{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;font-size:10px;font-weight:700}.resource-summary strong{display:block;font:800 17px Manrope}.resource-summary small{font-size:8px;color:var(--muted)}.resource-panel{padding:0 17px}.table-head,.resource-row{display:grid;grid-template-columns:2.2fr 1.2fr 1fr .6fr .5fr;gap:10px;align-items:center}.table-head{padding:15px 4px;color:#a1a2b1;font-size:7px;letter-spacing:1px;font-weight:700;border-bottom:1px solid var(--line)}.resource-row{padding:13px 4px;border-bottom:1px solid var(--line);font-size:9px}.resource-row:last-child{border-bottom:0}.file-name{display:flex;align-items:center;gap:9px;font-weight:700}.file-icon{width:29px;height:29px;border-radius:7px;background:#fff0f0;color:#df7777;display:grid;place-items:center;font-size:8px;font-weight:800}.resource-row span:not(.file-name){color:var(--muted);font-size:8px}.resource-row button{border:0;background:transparent;color:var(--purple);font-size:9px;font-weight:700}.notification-panel{padding:0 19px}.notification-toolbar{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:10px}.notification-toolbar span{color:var(--purple);font-size:8px}.notification-row{display:flex;gap:12px;padding:16px 3px;border-bottom:1px solid var(--line);align-items:flex-start}.notification-row:last-child{border-bottom:0}.notification-symbol{width:33px;height:33px;border-radius:10px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;flex-shrink:0}.notification-row strong{font-size:9px;display:block;margin-bottom:4px}.notification-row p{font-size:8px;color:var(--muted);margin:0 0 5px;line-height:1.5}.notification-row small{font-size:7px;color:#a6a6b4}.notification-row.unread .notification-symbol{background:var(--blue-soft);color:var(--blue)}.notification-row .read-action{margin-left:auto;border:0;background:transparent;color:var(--purple);font-size:8px}.concept-intro{background:linear-gradient(105deg,#eeebff,#f8f6ff);border:1px solid #e9e5ff;border-radius:16px;padding:24px 28px;display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden;margin-bottom:18px}.dark .concept-intro{background:#302d49;border-color:#45405f}.concept-kicker{font-size:8px;letter-spacing:1.4px;color:var(--purple);font-weight:700}.concept-intro h2{font:800 23px Manrope;letter-spacing:-.8px;margin:10px 0}.concept-intro h2 em{color:var(--purple);font-style:normal}.concept-intro p{font-size:9px;color:var(--muted);line-height:1.7;max-width:360px}.concept-illustration{position:relative;min-height:160px;display:grid;place-items:center}.code-window{background:#242238;color:#d4d0f2;border-radius:10px;padding:13px 18px;width:235px;box-shadow:0 13px 30px #5145a533;transform:rotate(-3deg);font:9px/1.7 monospace}.code-dots{display:flex;gap:4px;margin-bottom:10px}.code-dots i{width:5px;height:5px;border-radius:50%;background:#f18e8e}.code-dots i:nth-child(2){background:#e6c16e}.code-dots i:nth-child(3){background:#6ac7a0}.code-purple{color:#c6a9ff}.code-yellow{color:#f3d58a}.code-white{color:#fff}.floating-chip{position:absolute;background:#fff;color:#5747b6;padding:7px 10px;border-radius:7px;box-shadow:0 5px 15px #53469a1c;font-size:8px;font-weight:700}.chip-a{top:10px;right:2px}.chip-b{bottom:10px;left:8px}.concept-filters{margin-bottom:15px}.concept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.concept-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px}.concept-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.concept-card-icon{height:31px;width:31px;border-radius:9px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:14px}.concept-unit{font-size:7px;color:var(--muted);font-weight:700;letter-spacing:.8px}.concept-card h3{font:700 11px Manrope;margin-bottom:6px}.concept-card p{font-size:8px;color:var(--muted);line-height:1.6;min-height:38px}.concept-example{background:var(--surface-2);border:1px solid var(--line);padding:8px;border-radius:7px;font:8px monospace;color:var(--purple);margin-bottom:10px}.concept-card button{border:0;background:transparent;color:var(--purple);font-size:8px;font-weight:700;padding:0}.status-pill{color:#39a27e;background:var(--green-soft);border:0;font-size:8px}.status-pill i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#42b38c;margin-right:5px}.admin-stats{margin-bottom:17px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.admin-actions{display:grid}.admin-action{display:flex;align-items:center;gap:12px;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:13px 0;color:var(--text)}.admin-action>span{height:31px;width:31px;background:var(--purple-soft);color:var(--purple);border-radius:8px;display:grid;place-items:center}.admin-action div{flex:1}.admin-action strong{display:block;font-size:9px}.admin-action small{font-size:8px;color:var(--muted)}.admin-action:last-child{border-bottom:1px solid var(--line)}.health-list>div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:9px}.health-list>div:last-child{border:0}.health-list span{color:var(--muted)}.health-ok{color:#39a27e;font-size:8px}.health-pending{color:#d8944f;font-size:8px}
.toast-region{position:fixed;right:22px;bottom:22px;z-index:100;display:grid;gap:8px}.toast{background:#29263e;color:white;padding:12px 15px;border-radius:9px;box-shadow:0 8px 25px #17142c30;font-size:10px;display:flex;gap:9px;align-items:center;animation:fadeIn .2s}.toast b{color:#8fe0bf}.modal-backdrop{position:fixed;inset:0;background:#17152b66;z-index:80;display:none;place-items:center;padding:20px}.modal-backdrop.open{display:grid}.modal{background:var(--surface);border-radius:16px;width:min(430px,100%);padding:22px;box-shadow:0 20px 70px #17142c30}.modal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.modal-top h2{font:800 18px Manrope;margin:0}.modal-close{border:0;background:var(--bg);border-radius:8px;width:30px;height:30px;color:var(--muted);font-size:20px}.form-field{display:grid;gap:6px;margin-bottom:13px}.form-field label{font-size:9px;font-weight:700;color:var(--muted)}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:10px;font-size:10px;width:100%}.form-field textarea{min-height:70px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
@media(max-width:1100px){.main-content{padding:0 24px}.sidebar{width:220px}.main-content{margin-left:220px;max-width:calc(100% - 220px)}.stats-grid{grid-template-columns:repeat(2,1fr)}.course-grid,.event-grid,.concept-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s;width:250px;box-shadow:10px 0 30px #17142c15}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0;max-width:100%;padding:0 17px 20px}.topbar{height:65px;margin-bottom:23px}.mobile-menu{display:block;border:0;background:transparent;color:var(--text);font-size:18px;margin-right:10px}.breadcrumb{margin-right:auto}.top-actions{gap:7px}.search-wrap:not(.page-search){display:none}.welcome-row,.page-heading{align-items:flex-start;gap:15px;flex-direction:column}.welcome-actions{width:100%;justify-content:space-between}.content-grid,.bottom-grid,.admin-grid{grid-template-columns:1fr}.course-grid,.event-grid,.concept-grid{grid-template-columns:1fr 1fr}.resource-summary{grid-template-columns:1fr 1fr}.event-feature{grid-template-columns:1fr}.feature-art{display:none}.concept-intro{grid-template-columns:1fr}.concept-illustration{display:none}.footer{gap:8px;flex-direction:column}.table-head{display:none}.resource-row{grid-template-columns:1.7fr 1fr .7fr;}.resource-row>span:nth-child(3),.resource-row>span:nth-child(4){display:none}.concept-strip{flex-wrap:wrap}.concept-strip .outline-btn{margin-left:48px}.filter-row{flex-wrap:wrap}.filter-tabs{overflow:auto;max-width:100%}}
@media(max-width:460px){h1{font-size:23px}.stats-grid{gap:9px}.stat-card{padding:13px}.stat-value{font-size:22px}.course-grid,.event-grid,.concept-grid{grid-template-columns:1fr}.chart-legend{display:none}.date-pill{font-size:8px}.welcome-actions .primary-btn{padding:9px}.resource-row{grid-template-columns:1.5fr .8fr .5fr}.resource-row>span:nth-child(2){display:none}.filter-tabs{width:100%}.event-feature .feature-copy{padding:22px}.feature-copy h2{font-size:23px}}

/* CampusConnect authentication layer */
body.auth-locked .app-shell { display: none; }
.auth-screen { min-height: 100vh; display: grid; place-items: center; padding: 28px 16px; background: radial-gradient(circle at 15% 10%, #eeeaff 0, transparent 34%), #f7f8fc; }
.auth-card { width: min(100%, 470px); background: #fff; border: 1px solid #e9e8f2; border-radius: 24px; padding: 34px; box-shadow: 0 24px 80px rgba(44,35,92,.10); }
.auth-brand { margin-bottom: 34px; display: inline-flex; text-decoration: none; color: inherit; }
.auth-heading h1 { font: 800 28px/1.2 Manrope, sans-serif; letter-spacing: -.8px; margin: 12px 0 8px; color: #20223a; }
.auth-heading p, .auth-footnote { color: #7c819b; font-size: 13px; line-height: 1.6; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; background: #f4f2fb; border-radius: 12px; margin: 24px 0 20px; }
.auth-tab { border: 0; background: transparent; border-radius: 9px; padding: 11px; color: #777b96; font: 700 13px 'DM Sans',sans-serif; cursor: pointer; }
.auth-tab.active { background: #fff; color: #765ee8; box-shadow: 0 2px 8px rgba(40,30,80,.08); }
.auth-form { display: grid; gap: 14px; }
.auth-form[hidden] { display: none; }
.auth-form label { display: grid; gap: 7px; color: #41445f; font-size: 12px; font-weight: 700; }
.auth-form input { width: 100%; box-sizing: border-box; border: 1px solid #e5e5ef; border-radius: 10px; padding: 13px 14px; outline: none; background: #fff; color: #252640; font: 500 14px 'DM Sans',sans-serif; }
.auth-form input:focus { border-color: #8977ee; box-shadow: 0 0 0 3px rgba(137,119,238,.12); }
.auth-submit { width: 100%; justify-content: center; margin-top: 5px; }
.auth-message { min-height: 20px; margin: 14px 0 0; color: #6b5bd1; font-size: 13px; line-height: 1.5; }
.auth-message.error { color: #c34b58; }
.auth-footnote { border-top: 1px solid #eeeef4; padding-top: 15px; margin: 8px 0 0; font-size: 11px; }
.logout-btn { padding: 9px 13px; }
@media (max-width: 520px) { .auth-card { padding: 25px 20px; border-radius: 18px; } .auth-heading h1 { font-size: 24px; } }
[hidden] {
    display: none !important;
}