:root {
  color-scheme: light;
  --bg:#f7f9fc;--surface:#ffffff;--surface-2:#f1f5fa;--surface-3:#e7eef7;
  --ink:#16243a;--muted:#6e7c8f;--soft:#94a0b0;--line:#e4eaf2;
  --primary:#285fe9;--primary-dark:#1d4bc3;--primary-soft:#eef4ff;
  --success:#137956;--success-bg:#eaf8f0;--warning:#ad7011;--warning-bg:#fff7e7;
  --danger:#b53847;--danger-bg:#fff0f1;--info:#225bc8;--info-bg:#ebf2ff;
  --radius:16px;--radius-lg:22px;--shadow:0 14px 40px rgba(22,37,70,.05);
  --sidebar:252px;--font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--ink);background:var(--bg);margin:0;font-size:15px;line-height:1.52}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{line-height:1.22;letter-spacing:-.032em}h1{font-size:clamp(2rem,3.2vw,3.15rem)}h2{font-size:1.38rem}h3{font-size:1.08rem}p{color:var(--muted)}small,.muted{color:var(--muted)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8cb0ff;outline-offset:2px}.eyebrow{font-size:.72rem;letter-spacing:.13em;font-weight:800;color:var(--muted);text-transform:uppercase;margin-bottom:10px}.eyebrow-accent{color:var(--primary)}.brand{display:flex;align-items:center;gap:11px;font-size:1.36rem;font-weight:850;letter-spacing:-.04em;white-space:nowrap}.brand-mark{background:var(--primary);height:40px;width:40px;border-radius:12px;color:white;display:grid;place-items:center;font-size:1.45rem;box-shadow:0 8px 18px rgba(40,95,233,.22)}.brand-accent{color:var(--primary)}.brand small{display:block;font-size:.56rem;letter-spacing:.19em;font-weight:800;color:var(--soft);margin-top:-3px}
.btn{border:1px solid var(--primary);background:var(--primary);color:#fff;font-size:.85rem;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:10px;padding:12px 18px;line-height:1.2;transition:background .2s,transform .2s;white-space:nowrap}.btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-outline{background:white;color:var(--primary);border-color:#c8d6ee}.btn-outline:hover{background:var(--primary-soft)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--muted)}.btn-ghost:hover{background:var(--surface-2)}.btn-small{padding:9px 13px;font-size:.78rem}.btn-block{width:100%}.text-link{font-weight:750;color:var(--primary);font-size:.87rem;display:inline-flex;align-items:center;gap:7px}.text-link:hover{text-decoration:underline}.mini-link{border:0;background:none;color:var(--muted);font-size:.74rem}.mini-link:hover{color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:6px;font-size:.69rem;font-weight:800;background:var(--surface-2);color:var(--muted);white-space:nowrap}.pill-success{background:var(--success-bg);color:var(--success)}.pill-warning{background:var(--warning-bg);color:var(--warning)}.pill-danger{background:var(--danger-bg);color:var(--danger)}.pill-info{background:var(--info-bg);color:var(--info)}
.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);background:var(--surface);border-right:1px solid var(--line);padding:27px 19px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:3}.sidebar .brand{margin:0 8px 48px}.nav-category{color:#9aa6b4;font-size:.64rem;font-weight:850;letter-spacing:.16em;margin:22px 12px 10px}.sidebar nav{display:flex;flex-direction:column;gap:4px;overflow:auto}.nav-link{display:flex;align-items:center;gap:14px;border-radius:10px;padding:12px 14px;font-size:.85rem;font-weight:680;color:var(--muted);transition:background .2s,color .2s}.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link.is-active{background:var(--primary-soft);color:var(--primary)}.nav-ico{font-size:1.18rem;width:18px;text-align:center}.sidebar-profile{border-top:1px solid var(--line);padding-top:20px;margin-top:auto;display:flex;align-items:center;gap:11px;min-width:0}.sidebar-profile strong{font-size:.83rem;display:block;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-profile small{display:block;font-size:.72rem}.avatar{width:41px;height:41px;display:grid;place-items:center;border-radius:12px;flex:none;background:#e6edff;color:var(--primary);font-weight:850}.avatar-sm{width:34px;height:34px;border-radius:10px;font-size:.8rem}.main-shell{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-width:0}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,56px);border-bottom:1px solid var(--line);background:#ffffffdb;backdrop-filter:blur(12px);position:sticky;top:0;z-index:2}.topbar-context{font-size:.85rem;font-weight:750}.top-actions{display:flex;align-items:center;gap:19px}.notification-icon{position:relative;font-size:1.25rem;color:var(--ink);width:28px;text-align:center}.notification-icon b{position:absolute;right:-5px;top:-5px;background:var(--primary);color:white;border-radius:100px;font-size:.61rem;min-width:16px;padding:1px 3px}.logout-form{margin:0}.mobile-brand{display:none;font-weight:850;color:var(--primary)}.page-content{max-width:1380px;margin:0 auto;padding:38px clamp(24px,4vw,56px) 90px}.page-title{margin-bottom:31px}.page-title h1{font-size:2.15rem;margin-bottom:10px}.page-title p{max-width:680px}.welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:3px 0 32px}.welcome h1{margin-bottom:10px}.welcome p{margin-bottom:0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:10px 0 38px}.stat{background:var(--surface);border:1px solid var(--line);padding:23px 25px;border-radius:var(--radius);box-shadow:var(--shadow)}.stat span,.stat small{display:block}.stat span{font-size:.8rem;font-weight:720;color:var(--muted)}.stat strong{font-size:2.5rem;letter-spacing:-.05em;display:block;margin:9px 0 4px}.stat small{font-size:.73rem}.section-heading{display:flex;flex-direction:column;gap:2px;margin:40px 0 20px}.section-heading h2{margin:0}.section-heading p{margin:0;font-size:.87rem}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .2s,box-shadow .2s}.course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.course-cover{height:135px;background:linear-gradient(120deg,#203d99,#5288fc);padding:20px;display:flex;justify-content:space-between;align-items:flex-start}.course-cover .pill{background:#ffffffee}.course-icon{font-size:3.6rem;line-height:1;color:#ffffffc7;align-self:flex-end;font-weight:200}.course-info{padding:22px}.course-info h3{font-size:1.17rem;margin-bottom:10px}.course-info p:not(.eyebrow){font-size:.83rem;min-height:62px}.course-upcoming{filter:grayscale(1);opacity:.64}.course-upcoming .course-cover{background:linear-gradient(120deg,#8f9aaf,#c0cad9)}.course-upcoming:hover{transform:none}.levels-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.level-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.level-card h3{margin:8px 0 6px}.level-card p{font-size:.8rem;min-height:47px}.level-icon{background:var(--primary-soft);color:var(--primary);width:47px;height:47px;border-radius:13px;display:grid;place-items:center;font-size:1.65rem;flex:none}.level-card .eyebrow{margin-top:18px}.progress-caption{display:flex;justify-content:space-between;color:var(--muted);font-size:.73rem;margin-top:14px;margin-bottom:9px}.progress-caption b{color:var(--ink)}.progress{background:var(--surface-3);height:7px;border-radius:20px;overflow:hidden}progress.progress{appearance:none;width:100%;border:0;display:block}progress.progress::-webkit-progress-bar{background:var(--surface-3);border-radius:20px}progress.progress::-webkit-progress-value{background:var(--primary);border-radius:20px}progress.progress::-moz-progress-bar{background:var(--primary);border-radius:20px}.action-band{background:linear-gradient(120deg,#172e80,#3266e9);color:white;border-radius:var(--radius-lg);padding:30px 34px;margin:18px 0 34px;display:flex;align-items:center;justify-content:space-between;gap:24px}.action-band h2,.action-band h3{margin-bottom:7px}.action-band p{color:#d1ddff;margin:0}.action-band .btn{background:white;color:var(--primary);border-color:white}
.panel{padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px}.panel h2,.panel h3{margin-bottom:13px}.back-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:23px}.back-row>a{font-size:.85rem;font-weight:750;color:var(--primary)}.course-header{padding:35px;border-radius:var(--radius-lg);background:linear-gradient(112deg,#eaf1ff,#f8fbff);margin-bottom:35px}.course-header h1{margin-bottom:12px}.course-header p{max-width:700px;margin:0}.curriculum-block{margin:28px 0 36px}.curriculum-title{display:flex;align-items:center;gap:16px;margin-bottom:19px}.curriculum-title .eyebrow{margin:0}.curriculum-title h2{margin:2px 0 0}.curriculum-meta{margin-left:auto;display:flex;align-items:center;gap:14px;color:var(--muted);font-size:.8rem}.module-list{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.module-row{padding:19px 22px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line)}.module-row:last-child{border-bottom:0}.module-number{background:var(--surface-2);color:var(--primary);width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:850;font-size:.79rem;flex:none}.module-details{flex:1;min-width:0}.module-details strong,.module-details small{display:block}.module-details small{font-size:.75rem;margin-top:3px}.module-action{margin-left:auto}.mini-preview{display:block;color:var(--primary);font-size:.75rem;font-weight:750;margin-top:6px}.locked{color:var(--muted);font-size:.78rem}.module-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px}.module-main .section-heading:first-child{margin-top:0}.sticky-card{position:sticky;top:94px}.sidebar-metric{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 0;font-size:.83rem;color:var(--muted)}.sidebar-metric strong{color:var(--ink)}.small-muted{font-size:.76rem;color:var(--soft);margin-top:15px}.lesson-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.lesson-title h3{margin:0;flex:1}.rich-copy{font-size:.88rem;line-height:1.8;color:#49586e;white-space:normal}.video-embed{position:relative;aspect-ratio:16/9;background:#152542;border-radius:12px;overflow:hidden;margin:16px 0 20px}.video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.resource-list{display:grid;gap:10px}.resource-item{border:1px solid var(--line);background:white;border-radius:12px;display:flex;align-items:center;gap:15px;padding:16px}.resource-item>span:nth-child(2){flex:1}.resource-item strong,.resource-item small{display:block}.resource-item small{font-size:.72rem;margin-top:4px}.resource-item>b{color:var(--primary)}.resource-icon{background:var(--primary-soft);color:var(--primary);width:43px;height:43px;display:grid;place-items:center;border-radius:11px;font-size:1.45rem}.task-head,.review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.task-head h3{margin-bottom:0}.submission-note{background:var(--surface-2);padding:13px;border-radius:9px;color:#546377;font-size:.82rem;margin-bottom:13px}.feedback{background:var(--warning-bg);padding:14px;border-radius:9px;color:#79540d;font-size:.82rem;margin-bottom:16px}.image-gallery{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.image-gallery img{width:105px;height:92px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}.comments-panel .comment{border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px;padding:14px 0}.comment-content{flex:1}.comment-content p{margin:6px 0;font-size:.86rem}.comment-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.comment-meta small{font-size:.68rem}.admin-editor{margin-top:60px;padding-top:20px;border-top:2px solid var(--line)}.editor-grid,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.editor-grid>.panel,.admin-grid>.panel{margin:0}.quiz-question{margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--line)}.quiz-question strong{display:block;margin-bottom:12px}.radio-line{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:.86rem;color:var(--ink)}.radio-line input{accent-color:var(--primary)}
.field{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:.78rem;font-weight:720;color:var(--ink)}.field input,.field textarea,.field select,.copy-input{display:block;width:100%;border:1px solid #dbe4ef;background:#fff;border-radius:10px;color:var(--ink);padding:12px 13px;font-size:.86rem;min-width:0;outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:#8aaafc;box-shadow:0 0 0 4px #ecf2ff}.field textarea{resize:vertical;min-height:90px}.field input[type=file]{padding:11px;background:var(--surface-2)}.check-line{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.82rem;margin:15px 0}.check-line input{accent-color:var(--primary)}.review-card .review-header p{margin:0;font-size:.8rem}.review-card form{border-top:1px solid var(--line);padding-top:17px;margin-top:17px}.messages-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px}.people-panel{padding:15px}.people-panel h3{padding:10px;margin:0 0 10px}.person-link{display:flex;align-items:center;gap:10px;border-radius:10px;padding:12px 10px}.person-link>span:nth-child(2){flex:1}.person-link strong,.person-link small{display:block;font-size:.78rem}.person-link small{font-size:.71rem}.person-link.is-selected{background:var(--primary-soft)}.chat-panel{padding:0;overflow:hidden}.chat-header{display:flex;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--line)}.chat-header strong,.chat-header small{display:block}.chat-messages{padding:20px;min-height:250px;max-height:480px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.chat-bubble{background:var(--surface-2);padding:12px 14px;border-radius:14px;max-width:76%;align-self:flex-start}.chat-bubble.mine{background:var(--primary-soft);align-self:flex-end}.chat-bubble p{margin:0 0 7px;color:var(--ink);font-size:.83rem}.chat-bubble small{font-size:.67rem}.chat-composer{padding:20px;border-top:1px solid var(--line)}.notification-list{margin-top:20px;background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.notification-row{display:flex;align-items:center;gap:13px;padding:18px 22px;border-bottom:1px solid var(--line)}.notification-row:last-child{border-bottom:none}.notification-row.unread{background:var(--primary-soft)}.notification-dot{color:var(--primary);font-size:.75rem}.notification-row>span:nth-child(2){flex:1}.notification-row strong,.notification-row small{display:block}.notification-row strong{font-size:.82rem}.notification-row small{font-size:.74rem;margin-top:5px}.notification-row time{font-size:.71rem;color:var(--soft)}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.slot-top{display:flex;align-items:center;justify-content:space-between}.slot-card h3{font-size:1.38rem;margin:16px 0 8px}.slot-card p{font-size:.83rem}.important{border-color:#d3defe;background:var(--primary-soft)}.important p{font-size:.8rem}.user-card{margin-bottom:14px}.user-profile{display:flex;align-items:center;gap:13px}.user-profile h3{margin:0 0 3px}.user-profile p{margin:0;font-size:.78rem}.user-actions{display:flex;gap:10px;margin:14px 0}.access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid var(--line);padding-top:14px}.access-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.77rem;background:var(--surface-2);padding:10px;border-radius:9px}.access-toggle span{overflow:hidden;text-overflow:ellipsis}.permission-note{background:var(--primary-soft);color:var(--primary);padding:17px;border-radius:11px;line-height:2.1;font-size:.82rem;font-weight:740}.course-admin details{margin:17px 0;border-top:1px solid var(--line);padding-top:14px}.course-admin summary{cursor:pointer;color:var(--primary);font-size:.82rem;font-weight:760}.admin-level{border:1px solid var(--line);border-radius:11px;padding:18px;margin:12px 0}.admin-level h4{margin:0 0 13px}.admin-module{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:11px 0;font-size:.82rem}.admin-module span{color:var(--primary)}.admin-module-line{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:5px}.admin-module-line>.admin-module{flex:1;border:0;min-width:0}.move-button{border:1px solid var(--line);background:white;color:var(--primary);border-radius:7px;padding:6px 10px;font-size:1rem}.edit-lesson{border-top:1px solid var(--line);padding-top:14px;margin-top:20px}.edit-lesson summary{color:var(--primary);font-size:.8rem;font-weight:800;cursor:pointer}.inline-create{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.inline-create .field{flex:1;margin:0}.inline-create .check-line{margin:0}.empty-state{padding:43px 25px;text-align:center;background:white;border:1px dashed #ced8e5;border-radius:var(--radius);grid-column:1/-1;color:var(--muted)}.empty-state h3{margin:8px 0}.empty-icon{font-size:2.3rem;color:var(--primary)}
.public-header{height:85px;padding:0 max(30px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.public-header nav{display:flex;align-items:center;gap:26px;font-size:.86rem;font-weight:750}.public-main{max-width:1180px;margin:0 auto;padding:36px 30px 100px}.hero{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:55px;margin:45px 0 65px}.hero h1{font-size:clamp(2.8rem,5vw,4.6rem);line-height:1.08;letter-spacing:-.056em;margin:16px 0 23px}.hero h1 em{font-style:normal;color:var(--primary)}.hero-copy>p{font-size:1.02rem;line-height:1.85;max-width:530px}.hero-actions{display:flex;gap:13px;margin-top:27px}.hero-notes{display:flex;flex-wrap:wrap;gap:13px;margin-top:37px;font-size:.72rem;font-weight:720;color:var(--muted)}.hero-art{background:linear-gradient(130deg,#eff4ff,#e4ecff);min-height:440px;border-radius:30px;padding:45px 45px;position:relative;display:flex;flex-direction:column;gap:15px;justify-content:center;overflow:hidden}.hero-art:after{content:'';width:280px;height:280px;border:35px solid #ffffff80;border-radius:50%;position:absolute;right:-105px;bottom:-110px}.hero-art-label{font-size:.7rem;letter-spacing:.17em;color:#5d72a4;font-weight:850;margin-bottom:12px}.art-card{background:#fff;border:1px solid #dde7ff;border-radius:15px;padding:21px;display:flex;align-items:center;gap:16px;color:var(--primary);font-weight:850;box-shadow:0 18px 50px rgba(29,65,150,.08);z-index:1}.art-card strong{color:var(--ink);font-size:1.08rem;flex:1}.art-card span{font-size:.72rem;color:var(--muted);font-weight:550}.art-card-two{margin-left:30px}.art-card-three{margin-left:60px}.auth-card{max-width:440px;margin:70px auto;background:white;border:1px solid var(--line);border-radius:22px;padding:40px;box-shadow:var(--shadow)}.auth-card h1{font-size:1.8rem;margin-bottom:12px}.auth-card>p{font-size:.85rem}.auth-icon{background:var(--primary-soft);color:var(--primary);font-size:1.7rem;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;margin-bottom:24px}.auth-footer{text-align:center;margin-top:22px;font-size:.8rem}.auth-footer a{color:var(--primary);font-weight:750}.preview-wrap{display:grid;grid-template-columns:1fr 320px;gap:22px}.preview-wrap .panel h1{font-size:2rem}.highlight-panel{background:var(--primary-soft);border-color:#dce7ff;height:fit-content}.highlight-panel p{font-size:.87rem}.toast{position:fixed;right:24px;top:89px;background:var(--ink);color:white;z-index:12;display:flex;gap:18px;align-items:center;max-width:420px;box-shadow:0 20px 50px #1222403a;border-radius:11px;padding:15px 17px;font-size:.84rem;transition:opacity .4s,transform .4s}.toast-error{background:#932d3d}.toast-warning{background:#8c5a12}.toast-close{background:transparent;color:#fff;border:0;font-size:1.5rem}.toast-fade{opacity:0;transform:translateY(-14px)}.error-screen{max-width:550px;margin:12vh auto;text-align:center;padding:35px}.error-screen h1{font-size:5rem;color:var(--primary)}
@media(max-width:1200px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.levels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-layout{grid-template-columns:minmax(0,1fr) 230px}}
@media(max-width:900px){:root{--sidebar:75px}.sidebar{padding:20px 10px}.sidebar .brand{justify-content:center;margin:0 0 35px}.sidebar .brand>span:last-child,.nav-category,.sidebar-profile>div:nth-child(2){display:none}.sidebar nav{align-items:center}.nav-link{font-size:0;padding:13px}.nav-link .nav-ico{font-size:1.35rem}.sidebar-profile{justify-content:center}.sidebar-profile .avatar{width:38px;height:38px}.module-layout{grid-template-columns:1fr}.sticky-card{position:static}.hero{grid-template-columns:1fr}.hero-art{min-height:330px}.preview-wrap{grid-template-columns:1fr}}
@media(max-width:680px){.sidebar{position:fixed;inset:auto 0 0 0;width:100%;height:66px;padding:5px 7px;border-top:1px solid var(--line);border-right:0;flex-direction:row;align-items:center}.sidebar .brand,.sidebar-profile,.sidebar .nav-category{display:none}.sidebar nav{display:flex;flex-direction:row;align-items:center;justify-content:space-around;width:100%;overflow:visible}.sidebar .nav-link{display:flex;font-size:0;padding:8px 12px}.sidebar .nav-link .nav-ico{font-size:1.38rem}.main-shell{margin-left:0;width:100%;padding-bottom:66px}.topbar{height:62px;padding:0 18px}.topbar-context{font-size:.75rem}.mobile-brand{display:block}.page-content{padding:24px 16px 55px}.welcome{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:1fr;gap:9px}.stat{padding:17px 19px}.stat strong{font-size:2rem;margin:5px 0}.course-grid,.levels-grid,.editor-grid,.admin-grid,.slot-grid,.messages-layout,.access-grid{grid-template-columns:1fr}.course-info p:not(.eyebrow){min-height:auto}.course-cover{height:95px}.section-heading{margin-top:32px}.page-title h1{font-size:1.9rem}.panel{padding:19px}.module-row{gap:10px;padding:15px 12px;flex-wrap:wrap}.module-details{min-width:160px}.module-action{margin-left:48px}.curriculum-title{flex-wrap:wrap}.curriculum-meta{width:100%;margin-left:62px}.action-band{padding:24px;align-items:flex-start;flex-direction:column}.messages-layout{gap:10px}.people-panel{max-height:160px;overflow:auto}.public-header{height:68px;padding:0 17px}.public-header nav{gap:12px}.public-main{padding:22px 16px 100px}.hero{margin:30px 0 50px;gap:25px}.hero h1{font-size:2.65rem}.hero-art{min-height:300px;padding:25px}.art-card{padding:14px;flex-wrap:wrap}.art-card span{width:100%}.art-card-two{margin-left:18px}.art-card-three{margin-left:34px}.hero-actions{flex-wrap:wrap}.hero-notes{gap:10px}.auth-card{margin:35px auto;padding:24px}.preview-wrap{gap:10px}.toast{right:10px;left:10px;top:70px;max-width:none}.chat-bubble{max-width:94%}.notification-row{flex-wrap:wrap}.notification-row time{margin-left:22px}}

/* Progreso académico y configuración de finalización */
.learning-progress{margin:0 0 24px;border-color:#d8e4fd;background:#f8fbff}
.progress-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}
.progress-header h3{margin:4px 0 0}
.requirement-line{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 0;border-top:1px solid var(--line);font-size:.84rem}
.requirement-line strong{font-size:.79rem;white-space:nowrap;color:var(--primary)}
.lesson-completion-form{display:flex;justify-content:flex-end;margin-top:17px}
.requirement-settings{border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:16px}
.requirement-settings legend{font-weight:800;padding:0 7px}
.requirement-settings .check-line{align-items:flex-start}
.requirement-settings .field{margin-bottom:0}
@media(max-width:600px){.progress-header,.requirement-line{align-items:flex-start;flex-direction:column;gap:6px}.lesson-completion-form{justify-content:stretch}.lesson-completion-form .btn{width:100%}}

/* Tarjetas navegables del Dashboard */
.stat-link,.course-card-link,.dashboard-action,.dashboard-list-link{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.stat-link{display:block}
.stat-link:hover,.stat-link:focus-visible,.course-card-link:hover,.course-card-link:focus-visible,.dashboard-list-link:hover,.dashboard-list-link:focus-visible{transform:translateY(-3px);border-color:#b8cbfb;box-shadow:0 12px 28px rgba(24,51,105,.10)}
.stat-link:hover small,.stat-link:focus-visible small,.course-card-link:hover .text-link,.course-card-link:focus-visible .text-link{color:var(--primary)}
.course-card-link{display:block}
.course-upcoming{cursor:default}
.course-upcoming:hover{transform:none;box-shadow:none}
.dashboard-action{display:flex}
.dashboard-action:hover,.dashboard-action:focus-visible{transform:translateY(-2px);box-shadow:0 14px 30px rgba(25,53,129,.16)}
.dashboard-action .btn{pointer-events:none}
.dashboard-list-section{scroll-margin-top:26px;margin:22px 0 42px}
.dashboard-list-card{display:flex;align-items:center;justify-content:space-between;gap:18px}
.dashboard-list-card h3{margin:5px 0 8px}
.dashboard-list-card p{margin-bottom:0}
.dashboard-list-aside{display:flex;align-items:flex-end;flex-direction:column;gap:9px;font-size:.8rem;color:var(--primary);white-space:nowrap}
.dashboard-list-locked{opacity:.75}
@media(max-width:600px){.dashboard-list-card{align-items:flex-start;flex-direction:column}.dashboard-list-aside{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.stat-link,.course-card-link,.dashboard-action,.dashboard-list-link{transition:none}}

/* Administración de cuentas: edición y eliminación confirmada */
.user-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}
.user-manage-grid details{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;min-width:0;padding:12px 14px}
.user-manage-grid details[open]{background:var(--surface)}
.user-manage-grid summary{font-weight:800;font-size:.82rem;cursor:pointer;color:var(--primary)}
.user-manage-grid form{margin-top:15px}
.user-manage-grid .field{margin:11px 0}
.user-manage-grid .small-muted{margin:13px 0;line-height:1.6}
.user-delete-panel summary{color:var(--danger)!important}
.user-delete-panel[open]{border-color:#f0b7b7;background:#fff9f9!important}
.btn-danger{color:white;border-color:var(--danger);background:var(--danger)}
.btn-danger:hover,.btn-danger:focus-visible{background:#a62c39;border-color:#a62c39}
.user-actions{flex-wrap:wrap}
@media(max-width:660px){.user-manage-grid{grid-template-columns:1fr}}

/* Login sin scroll en pantallas de altura normal: placeholders con etiquetas accesibles */
.public-login-main{
  min-height:calc(100vh - 85px);
  min-height:calc(100svh - 85px);
  max-width:none;
  padding:18px 22px;
  display:grid;
  place-items:center;
}
.public-login-main .login-card{
  width:min(100%,440px);
  margin:0 auto;
  padding:clamp(22px,3.4vh,34px);
}
.login-card .auth-icon{width:44px;height:44px;font-size:1.55rem;margin-bottom:15px}
.login-card h1{font-size:clamp(1.45rem,2.8vw,1.8rem);margin-bottom:7px}
.login-card>p{margin:0 0 20px;line-height:1.5}
.login-form .field{margin:0 0 12px;gap:0}
.login-form .field>span{
  position:absolute;
  width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}
.login-form .field input{min-height:49px;padding:12px 14px}
.login-form .field input::placeholder{color:var(--muted);opacity:1;font-weight:500}
.login-form .btn{min-height:47px;margin-top:4px}
.login-card .auth-footer{margin:17px 0 0}
@media(max-width:680px){
  .public-login-main{
    min-height:calc(100vh - 68px);
    min-height:calc(100svh - 68px);
    padding:14px 16px;
  }
  .public-login-main .login-card{padding:24px}
  .login-card .auth-icon{margin-bottom:12px}
  .login-card>p{margin-bottom:17px}
}
