@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@600;700&display=swap');
:root{--ink:#17203b;--muted:#667085;--primary:#6246ea;--primary2:#4f35cf;--soft:#f6f7fc;--line:#e6e8f0;--card:#fff;--nav:rgba(255,255,255,.9)}
[data-bs-theme=dark]{--ink:#f4f5fb;--muted:#aeb5ca;--soft:#161a2b;--line:#30364e;--card:#20253a;--nav:rgba(17,20,34,.92);--bs-body-bg:#111422;--bs-body-color:#f4f5fb}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'DM Sans',sans-serif;color:var(--ink);line-height:1.65}h1,h2,h3,.navbar-brand{font-family:'Space Grotesk',sans-serif;letter-spacing:-.03em}a{color:var(--primary)}.skip-link{position:fixed;top:-100px;left:1rem;background:#fff;padding:.75rem;z-index:9999}.skip-link:focus{top:1rem}.navbar{background:var(--nav);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);min-height:76px}.navbar-brand{font-size:1.35rem;font-weight:700;color:var(--ink)}.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;margin-right:.55rem;border-radius:12px;background:linear-gradient(135deg,#7559ff,#3d2cb4);color:#fff}.nav-link{color:var(--ink);font-weight:600;padding:.55rem .75rem!important}.nav-link:hover,.nav-link:focus{color:var(--primary)}.btn{border-radius:10px;font-weight:700}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary2);border-color:var(--primary2)}.icon-btn{border:1px solid var(--line);color:var(--ink)}
.hero{padding:7rem 0;background:radial-gradient(circle at 75% 25%,rgba(98,70,234,.18),transparent 28%),linear-gradient(150deg,var(--soft),var(--card))}.eyebrow{display:inline-block;color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem}.hero h1,.page-hero h1{font-size:clamp(3rem,7vw,5.7rem);line-height:1.02;max-width:800px}.hero h1 span{color:var(--primary)}.hero-copy{font-size:1.2rem;color:var(--muted);max-width:650px}.search-box{display:flex;align-items:center;gap:.8rem;padding:.55rem;background:var(--card);border:1px solid var(--line);border-radius:16px;max-width:650px;box-shadow:0 18px 45px rgba(30,35,70,.12);margin:2rem 0}.search-box i{margin-left:.65rem}.search-box input{flex:1;border:0;outline:0;background:transparent;color:var(--ink);min-width:0}.hero-tags{display:flex;gap:.8rem;flex-wrap:wrap;color:var(--muted)}.code-window{background:#171a2b;color:#d9ddf0;border-radius:20px;overflow:hidden;box-shadow:0 28px 70px rgba(19,20,40,.3);transform:rotate(1deg)}.window-bar{display:flex;align-items:center;gap:7px;padding:1rem;border-bottom:1px solid #30354b}.window-bar i{width:11px;height:11px;border-radius:50%;background:#ff6b6b}.window-bar i:nth-child(2){background:#ffd166}.window-bar i:nth-child(3){background:#60d394}.window-bar span{margin-left:auto;color:#929ab7}.code-window pre{padding:2rem;margin:0;font-size:.92rem}.code-window code b{color:#c998ff}.run-result{padding:1rem 2rem;background:#20243a;color:#83e7b5}
.section{padding:6rem 0}.section-soft{background:var(--soft)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:2.4rem}.section h2,.playground-cta h2,.newsletter h2{font-size:clamp(2rem,4vw,3rem)}.course-card{background:var(--card);border:1px solid var(--line);padding:1.6rem;border-radius:18px;transition:.25s}.course-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(30,35,70,.1)}.course-icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:1.7rem;margin-bottom:1.2rem}.coral{background:#ffe1dc;color:#bd3b2d}.blue{background:#dce8ff;color:#235dc1}.amber{background:#fff0bd;color:#9a6900}.violet{background:#eee5ff;color:#6332c4}.green{background:#d8f5e5;color:#137a44}.cyan{background:#d9f5f7;color:#147981}.level{font-size:.73rem;font-weight:800;text-transform:uppercase;color:var(--primary)}.course-card h3,.course-card h2{font-size:1.35rem;margin-top:.5rem}.course-card p,.section-title p,.lead-muted{color:var(--muted)}.course-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:1rem}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.category{display:grid;grid-template-columns:auto 1fr;gap:0 .9rem;align-items:center;background:var(--card);border:1px solid var(--line);padding:1.3rem;border-radius:14px;text-decoration:none;color:var(--ink)}.category i{grid-row:1/3;font-size:1.5rem;color:var(--primary)}.category span{font-size:.85rem;color:var(--muted)}.feature-list>div{display:flex;gap:1rem;margin:1.5rem 0}.feature-list>div>i{color:var(--primary);font-size:1.4rem}.feature-list p{display:flex;flex-direction:column;margin:0}.feature-list span{color:var(--muted)}.progress-preview{padding:2rem;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 60px rgba(30,35,70,.1)}.week-row{display:flex;justify-content:space-between;margin:2rem 0}.week-row>div{display:grid;gap:.4rem;text-align:center}.day{width:38px;height:38px;border-radius:50%;background:var(--soft);display:grid;place-items:center}.day.done{background:var(--primary);color:#fff}.active-course{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--soft);border-radius:14px}.active-course .course-icon{margin:0}.active-course strong,.active-course small{display:block}.progress{height:6px;margin-top:.6rem}.progress-bar{background:var(--primary)}
.playground-cta,.newsletter{padding:5rem 0;background:linear-gradient(135deg,#5036ce,#7b5cff);color:#fff}.action-panel{height:100%;padding:2rem;border-radius:20px;display:flex;gap:1.5rem}.action-panel>i{font-size:3rem}.quiz-panel{background:#fff1c9;color:#35280c}.exercise-panel{background:#dff7ed;color:#143c2d}.newsletter{background:linear-gradient(135deg,#131936,#33236f)}.newsletter-inner{display:flex;justify-content:space-between;align-items:center;gap:3rem}.newsletter form{display:flex;background:#fff;padding:.5rem;border-radius:13px;min-width:420px}.newsletter input{border:0;outline:0;flex:1;padding:0 .7rem}.newsletter .btn{background:#ffd35c}.page-hero{padding:5rem 0;background:var(--soft)}.page-hero p{font-size:1.2rem;color:var(--muted);max-width:650px}.page-hero.compact h1{font-size:3.5rem}.empty-state,.error-page{padding:6rem;text-align:center}.empty-state>i{font-size:4rem;color:var(--primary)}.content-narrow{max-width:800px}.lesson-list>div{display:flex;align-items:center;gap:1rem;border:1px solid var(--line);border-radius:13px;padding:1rem;margin:1rem 0}.lesson-list>div>span{display:grid;place-items:center;background:var(--soft);width:40px;height:40px;border-radius:50%}.lesson-list>div>div{display:flex;flex-direction:column;flex:1}.lesson-list small{color:var(--muted)}.playground{padding:2rem 0 5rem}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--soft);border:1px solid var(--line)}.editor-grid{display:grid;grid-template-columns:1fr 1fr;height:520px}.editor-grid>*{display:flex;flex-direction:column}.editor-grid span{padding:.5rem 1rem;background:#20243a;color:#fff}.editor-grid textarea{flex:1;resize:none;border:0;padding:1.2rem;background:#151827;color:#e4e7f4;font:15px/1.6 monospace}.editor-grid iframe{flex:1;border:1px solid var(--line);background:#fff;width:100%}.auth-section{min-height:72vh;display:grid;place-items:center;padding:4rem 1rem;background:var(--soft)}.auth-card{width:min(100%,460px);background:var(--card);padding:2.5rem;border:1px solid var(--line);border-radius:20px;text-align:center}.auth-card h1{margin-top:2rem}.notice-card{display:flex;flex-direction:column;background:var(--soft);padding:1.2rem;border-radius:12px;margin:1.5rem 0}.notice-card i{font-size:2rem;color:var(--primary)}.auth-switch{margin:1rem 0 0}.error-page{min-height:65vh;display:grid;place-items:center}.error-page>div>span{font-size:6rem;font-family:'Space Grotesk';color:var(--primary)}footer{background:#111528;color:#aeb6cd}footer h2{font-size:1rem;color:#fff}footer a,footer span{display:block;color:#aeb6cd;text-decoration:none;margin:.35rem 0}footer .navbar-brand{color:#fff}.footer-bottom{border-top:1px solid #30354c;padding:1.4rem 0;display:flex;justify-content:space-between}
*:focus-visible{outline:3px solid #ffca3a;outline-offset:3px}.toast-container{z-index:1100}
@media(max-width:991px){.navbar-collapse{padding:1rem 0}.hero{padding:4.5rem 0}.code-window{transform:none}.category-grid{grid-template-columns:repeat(2,1fr)}.newsletter-inner{align-items:stretch;flex-direction:column}.newsletter form{min-width:0}.editor-grid{grid-template-columns:1fr;height:auto}.editor-grid textarea,.editor-grid iframe{height:360px}.section{padding:4rem 0}}
@media(max-width:575px){.hero h1{font-size:2.8rem}.search-box{flex-wrap:wrap}.search-box input{width:75%}.search-box button{width:100%}.category-grid{grid-template-columns:1fr}.section-head{align-items:start;gap:1rem;flex-direction:column}.action-panel{flex-direction:column}.newsletter form{flex-direction:column;gap:.5rem}.newsletter input{padding:.8rem}.week-row .day{width:32px;height:32px}.footer-bottom{display:block}.page-hero h1{font-size:2.8rem}.empty-state{padding:4rem 1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.catalog-section{padding:3rem 0 6rem}.catalog-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:1rem;align-items:end;padding:1.25rem;background:var(--soft);border:1px solid var(--line);border-radius:16px;margin-bottom:2rem}.catalog-filters label span{display:block;font-size:.8rem;font-weight:700;margin-bottom:.35rem}.catalog-summary{color:var(--muted)}.featured-badge{float:right;background:#fff0bd;color:#765100;padding:.3rem .6rem;border-radius:20px;font-size:.7rem;font-weight:800}.course-stats,.course-hero-meta{display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin:1rem 0}.catalog-pagination{margin-top:3rem}.curriculum-section{margin-top:2rem}.lesson-list a{display:flex;align-items:center;gap:1rem;border:1px solid var(--line);border-radius:13px;padding:1rem;margin:1rem 0;color:var(--ink);text-decoration:none}.lesson-list a:hover{border-color:var(--primary)}.lesson-list a>span{display:grid;place-items:center;background:var(--soft);width:40px;height:40px;border-radius:50%}.lesson-list a>div{display:flex;flex-direction:column;flex:1}.lesson-list a small{color:var(--muted)}.lesson-header{padding:4rem 0;background:var(--soft)}.lesson-content{font-size:1.08rem}.lesson-code{background:#171a2b;color:#e4e7f4;border-radius:14px;overflow:hidden;margin:1.5rem 0}.lesson-code>span{display:block;padding:.6rem 1rem;background:#23283e;font-size:.75rem;font-weight:700}.lesson-code pre{padding:1.5rem;margin:0}.expected-output{padding:1.2rem;background:var(--soft);border:1px solid var(--line);border-radius:12px}@media(max-width:991px){.catalog-filters{grid-template-columns:1fr 1fr}.catalog-filters label:first-child{grid-column:1/-1}}@media(max-width:575px){.catalog-filters{grid-template-columns:1fr}.catalog-filters label:first-child{grid-column:auto}}
/* Phase 3 tutorial reader */
.reading-progress{position:fixed;top:76px;left:0;width:0;height:4px;background:linear-gradient(90deg,#6246ea,#17b890);z-index:1060}.lesson-mobile-bar{display:none}.lesson-shell{display:grid;grid-template-columns:280px minmax(0,820px) 220px;justify-content:center;align-items:start;min-height:75vh}.lesson-sidebar{position:sticky;top:80px;height:calc(100vh - 80px);overflow:auto;border-right:1px solid var(--line);padding:1.2rem;background:var(--card);transition:.2s}.lesson-shell.sidebar-closed{grid-template-columns:0 minmax(0,820px) 220px}.lesson-shell.sidebar-closed .lesson-sidebar{transform:translateX(-100%);visibility:hidden;padding:0}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.sidebar-head a{font-weight:800;text-decoration:none}.sidebar-collapse{border:0;background:transparent;color:var(--ink);padding:.35rem}.lesson-search{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;margin-bottom:1.2rem}.lesson-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.sidebar-section h2,.lesson-toc h2{font-family:'DM Sans',sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1.2rem 0 .5rem}.sidebar-section ul{list-style:none;padding:0;margin:0}.sidebar-section a{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:9px;color:var(--muted);text-decoration:none;font-size:.9rem}.sidebar-section a:hover{background:var(--soft);color:var(--ink)}.sidebar-section a.active{background:rgba(98,70,234,.12);color:var(--primary);font-weight:800}.sidebar-section a i{font-size:.65rem}.lesson-search-empty{color:var(--muted);font-size:.9rem}.lesson-reader{min-width:0;padding:3rem clamp(1.25rem,4vw,4rem) 5rem}.lesson-reader h1{font-size:clamp(2.4rem,5vw,4rem)}.lesson-summary{font-size:1.2rem;color:var(--muted)}.lesson-title-row{border-bottom:1px solid var(--line);padding-bottom:2rem}.lesson-tools{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem}.lesson-tools small{display:block;font-size:.55rem}.reader-section{scroll-margin-top:100px;margin:2.5rem 0}.reader-section h2{font-size:1.8rem;margin:2rem 0 1rem}.reader-section h3{font-size:1.25rem}.reader-section>p{font-size:1.07rem}.definition-list{display:grid;gap:.8rem}.definition-list>div{padding:1rem;border-left:4px solid var(--primary);background:var(--soft);border-radius:0 10px 10px 0}.definition-list dt{font-weight:800}.definition-list dd{margin:0;color:var(--muted)}.code-panel{background:#151827;color:#e4e7f4;border-radius:14px;overflow:hidden;margin:1rem 0 1.5rem}.code-panel>div{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:#23283e;color:#aeb6cf;font-size:.72rem;font-weight:800}.code-panel pre{padding:1.4rem;margin:0;overflow:auto}.code-panel code{font:14px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;color:#e4e7f4}.copy-code{border:0;background:transparent;color:#dce2f5}.token-keyword{color:#d69bff}.token-string{color:#8de2b4}.token-comment{color:#7f8aa8}.token-tag{color:#7db7ff}.inline-output{display:flex;gap:.6rem;padding:.8rem 1rem;background:var(--soft);border-radius:10px;margin-top:-.6rem;margin-bottom:2rem}.lesson-callouts{display:grid;gap:1rem;margin:3rem 0}.lesson-callout{display:flex;gap:1rem;padding:1.25rem;border-radius:14px}.lesson-callout>i{font-size:1.4rem}.lesson-callout h2{font:800 1rem 'DM Sans',sans-serif;margin:0 0 .3rem}.lesson-callout p,.lesson-callout ul{margin:0}.lesson-callout.note{background:#e8efff;color:#173d76}.lesson-callout.tip{background:#e0f7eb;color:#125739}.lesson-callout.mistake{background:#fff0e3;color:#793b17}.practice-links{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.practice-links>a{display:flex;align-items:center;gap:1rem;padding:1.2rem;border:1px solid var(--line);border-radius:14px;text-decoration:none}.practice-links i{font-size:1.7rem}.practice-links span{display:flex;flex-direction:column}.practice-links small{color:var(--muted)}.lesson-pager{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-top:1px solid var(--line);margin-top:3rem;padding-top:2rem}.lesson-pager a{display:flex;flex-direction:column;padding:1rem;border:1px solid var(--line);border-radius:12px;text-decoration:none}.lesson-pager .next{text-align:right}.lesson-pager small{color:var(--muted)}.lesson-toc{position:sticky;top:100px;padding:2rem 1rem}.lesson-toc>div{border-left:1px solid var(--line);padding-left:1rem}.lesson-toc a{display:block;padding:.25rem 0;color:var(--muted);text-decoration:none;font-size:.86rem}.lesson-toc a:hover{color:var(--primary)}
@media(max-width:1199px){.lesson-shell{grid-template-columns:260px minmax(0,1fr)}.lesson-toc{display:none}.lesson-shell.sidebar-closed{grid-template-columns:0 minmax(0,1fr)}}
@media(max-width:767px){.reading-progress{top:72px}.lesson-mobile-bar{position:sticky;top:76px;z-index:1040;display:flex;justify-content:space-between;align-items:center;padding:.65rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}.lesson-shell,.lesson-shell.sidebar-closed{display:block}.lesson-sidebar,.lesson-shell.sidebar-closed .lesson-sidebar{position:fixed;top:130px;bottom:0;left:0;width:min(88vw,320px);height:auto;z-index:1050;transform:translateX(-105%);visibility:visible;box-shadow:10px 0 30px rgba(0,0,0,.16)}.lesson-sidebar.mobile-open{transform:translateX(0)}.sidebar-collapse{display:none}.lesson-reader{padding:2rem 1rem 4rem}.practice-links,.lesson-pager{grid-template-columns:1fr}.lesson-pager .next{text-align:left}}
@media print{.navbar,.site-footer,footer,.reading-progress,.lesson-mobile-bar,.lesson-sidebar,.lesson-toc,.lesson-tools,.copy-code,.practice-links,.lesson-pager,.btn{display:none!important}.lesson-shell{display:block}.lesson-reader{padding:0;max-width:none}.code-panel{break-inside:avoid;border:1px solid #999;color:#000;background:#fff}.code-panel>div{background:#eee;color:#000}.code-panel code{color:#000}.reader-section{break-inside:auto}@page{margin:1.5cm}}
/* Phase 4 authentication */
.auth-card-wide{max-width:520px}.auth-form{display:grid;gap:1rem;text-align:left;margin-top:1.5rem}.auth-form label{font-weight:700}.auth-form label small{display:block;color:var(--muted);font-weight:400}.auth-form .form-check{display:flex;gap:.6rem;align-items:center}.auth-errors{margin-top:1rem;padding:1rem;border-radius:10px;background:#ffe7e4;color:#7b241c;text-align:left}.auth-errors ul{margin-bottom:0}.auth-links{display:flex;justify-content:space-between;margin-top:1rem}.dashboard-grid{display:grid;gap:2rem}.profile-summary{display:flex;align-items:center;gap:1.5rem;padding:2rem;background:var(--card);border:1px solid var(--line);border-radius:18px}.profile-avatar{width:84px;height:84px;flex:0 0 84px;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:var(--primary);color:#fff;font:700 2rem 'Space Grotesk'}.profile-avatar img{width:100%;height:100%;object-fit:cover}.dashboard-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.dashboard-actions a{display:flex;flex-direction:column;padding:1.5rem;border:1px solid var(--line);border-radius:16px;text-decoration:none;color:var(--ink)}.dashboard-actions i{font-size:1.8rem;color:var(--primary)}.dashboard-actions span{color:var(--muted)}.profile-settings{max-width:800px;display:grid;gap:2rem}.settings-card{padding:2rem;background:var(--card);border:1px solid var(--line);border-radius:18px}@media(max-width:767px){.dashboard-actions{grid-template-columns:1fr}.profile-summary{align-items:flex-start;flex-direction:column}.auth-card{padding:1.5rem}}
/* Phase 5 student dashboard */
.student-dashboard{background:var(--soft);min-height:75vh}.student-welcome{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2.4rem;border-radius:22px;background:linear-gradient(135deg,#4c32c5,#7254f4);color:#fff;box-shadow:0 20px 50px rgba(54,38,140,.2)}.student-welcome .eyebrow{color:#ddd5ff}.student-welcome h1{font-size:clamp(2rem,4vw,3.4rem)}.welcome-stats{display:flex;gap:1rem}.welcome-stats>div{min-width:105px;padding:1rem;text-align:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:15px}.welcome-stats strong,.welcome-stats span{display:block}.welcome-stats strong{font-size:1.7rem}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;margin-top:1.5rem}.dashboard-main{display:grid;gap:1.5rem;min-width:0}.dashboard-side{display:grid;align-content:start;gap:1.5rem}.dashboard-section,.dashboard-panel{padding:1.5rem;background:var(--card);border:1px solid var(--line);border-radius:18px}.dashboard-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem}.dashboard-heading h2{font-size:1.35rem;margin:0}.enrolled-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.enrolled-card{padding:1.3rem;border:1px solid var(--line);border-radius:15px}.enrolled-card-top{display:flex;justify-content:space-between;align-items:start}.enrolled-card-top .course-icon{margin:0}.enrolled-card-top>span{font-size:.7rem;text-transform:uppercase;font-weight:800;color:var(--primary)}.enrolled-card h3{margin-top:1rem}.enrolled-card p{color:var(--muted)}.course-progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem;margin-bottom:.5rem}.enrolled-card .progress{margin-bottom:1rem}.dashboard-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.dashboard-list{display:grid}.dashboard-list a{display:flex;align-items:center;gap:.8rem;padding:.8rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.dashboard-list a:last-child{border:0}.dashboard-list>a>i{color:var(--primary)}.dashboard-list span{display:flex;flex:1;flex-direction:column}.dashboard-list small,.dashboard-list time{color:var(--muted);font-size:.78rem}.dashboard-empty,.mini-empty{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.dashboard-empty>i,.mini-empty>i{font-size:2.5rem;color:var(--primary)}.dashboard-empty.compact{padding:1rem}.achievement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.achievement-grid article{display:flex;gap:1rem;padding:1rem;background:var(--soft);border-radius:14px}.achievement-grid i{font-size:1.8rem;color:#c28100}.achievement-grid p{margin:0;color:var(--muted);font-size:.86rem}.profile-progress{text-align:center}.profile-progress h2{font-size:1.3rem}.progress-ring{--progress:0;display:grid;place-items:center;width:130px;height:130px;margin:1.4rem auto;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--progress)*1%),var(--line) 0);position:relative}.progress-ring:before{content:'';position:absolute;width:100px;height:100px;border-radius:50%;background:var(--card)}.progress-ring span{position:relative;font-size:1.5rem;font-weight:800}.lesson-complete{margin:2rem 0}.learning-action.is-loading{opacity:.7;pointer-events:none}.sidebar-section a .bi-check-circle-fill{color:#19a769}
@media(max-width:991px){.student-welcome{align-items:flex-start;flex-direction:column}.dashboard-layout{grid-template-columns:1fr}.dashboard-side{grid-template-columns:1fr 1fr}.enrolled-grid{grid-template-columns:1fr 1fr}}
@media(max-width:767px){.welcome-stats{width:100%;overflow-x:auto}.welcome-stats>div{min-width:92px}.dashboard-two-col,.dashboard-side,.enrolled-grid,.achievement-grid{grid-template-columns:1fr}.student-welcome{padding:1.5rem}.dashboard-section,.dashboard-panel{padding:1.2rem}.dashboard-heading{align-items:flex-start}.dashboard-heading>a{white-space:nowrap}}

/* Phase 6 dynamic exercises */
.exercise-catalog{padding:3rem 0 6rem}.exercise-filters{display:flex;align-items:end;gap:1rem;padding:1.25rem;margin-bottom:2rem;border:1px solid var(--line);border-radius:16px;background:var(--soft)}.exercise-filters label{min-width:220px}.exercise-filters label span,.editor-label{display:block;margin-bottom:.35rem;font-size:.8rem;font-weight:800}.exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.exercise-card{display:flex;flex-direction:column;padding:1.5rem;border:1px solid var(--line);border-radius:18px;background:var(--card)}.exercise-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.language-badge{padding:.3rem .65rem;border-radius:20px;font-size:.72rem;font-weight:900}.language-badge.html{color:#9d331d;background:#ffe2d8}.language-badge.css{color:#1d559d;background:#dceaff}.language-badge.javascript{color:#725800;background:#fff2ad}.points{font-size:.8rem;font-weight:800;color:#9a6900}.exercise-card h2{margin-top:.5rem;font-size:1.35rem}.exercise-card p{flex:1;color:var(--muted)}.exercise-meta{display:flex;flex-direction:column;gap:.25rem;margin:1rem 0;color:var(--muted);font-size:.82rem}.exercise-workspace{min-height:75vh;background:var(--soft)}.exercise-breadcrumb{display:flex;gap:.6rem;align-items:center;margin-bottom:1.5rem;color:var(--muted)}.exercise-breadcrumb a{text-decoration:none}.exercise-title{display:flex;justify-content:space-between;gap:2rem;align-items:center;margin-bottom:2rem}.exercise-title h1{font-size:clamp(2.2rem,5vw,4rem)}.exercise-title p{max-width:760px;color:var(--muted);font-size:1.1rem}.exercise-score{flex:0 0 105px;padding:1rem;text-align:center;border-radius:18px;background:linear-gradient(135deg,#6246ea,#3e2aab);color:#fff}.exercise-score strong,.exercise-score span{display:block}.exercise-score strong{font-size:2rem}.exercise-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.5rem;align-items:start}.exercise-instructions,.exercise-editor-panel,.attempt-history{border:1px solid var(--line);border-radius:18px;background:var(--card)}.exercise-instructions{padding:1.4rem}.exercise-instructions section+section{padding-top:1.3rem;margin-top:1.3rem;border-top:1px solid var(--line)}.exercise-instructions h2{font:800 1rem 'DM Sans',sans-serif}.exercise-instructions pre{padding:1rem;border-radius:10px;background:var(--soft);white-space:pre-wrap}.exercise-instructions ul{padding-left:0;list-style:none}.hint-stack{display:grid;gap:.6rem}.hint-button{padding:.7rem;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink)}.hint-button:disabled{opacity:1;border-color:#e6bd45;background:#fff5c7;color:#614a00}.exercise-editor-panel{overflow:hidden}.exercise-toolbar,.exercise-output-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;background:#20243a;color:#fff}.exercise-toolbar>div:first-child{display:flex;flex-direction:column}.exercise-toolbar span{font-size:.75rem;color:#aeb6cd}.exercise-editor{display:block;width:100%;height:330px;padding:1.25rem;resize:vertical;border:0;background:#151827;color:#e7ebfb;font:15px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;outline-offset:-3px}.editor-label{padding:.7rem 1.2rem;margin:0;background:#2a304a;color:#fff}.prediction-source>span{display:block;padding:.6rem 1.2rem;background:#2a304a;color:#fff;font-size:.8rem;font-weight:800}.prediction-source pre{padding:1.25rem;margin:0;background:#151827;color:#e7ebfb}.prediction-source+.editor-label+.exercise-editor{height:120px}.exercise-output-head{padding:.6rem 1.2rem;background:#303750}.exercise-output{display:grid;grid-template-columns:1fr 1fr;min-height:190px}.exercise-output iframe{width:100%;height:100%;min-height:190px;border:0;background:#fff}.exercise-output pre{min-width:0;padding:1.2rem;margin:0;white-space:pre-wrap;background:var(--soft);color:var(--ink);border-left:1px solid var(--line)}.exercise-result{display:flex;gap:.6rem;flex-direction:column;padding:1rem 1.2rem}.exercise-result.passed{background:#daf5e6;color:#115f38}.exercise-result.failed{background:#ffe4e1;color:#81251d}.exercise-actions{display:flex;align-items:center;gap:1rem;padding:1.2rem;border-top:1px solid var(--line)}.exercise-actions span{color:var(--muted);font-size:.85rem}.exercise-solution{padding:1.5rem;border-top:1px solid var(--line);background:#eef0ff}.exercise-solution pre{padding:1rem;margin:0;background:#151827;color:#fff;border-radius:10px;overflow:auto}.attempt-history{padding:1.5rem;margin:1.5rem 0 3rem}.attempt-table{display:grid}.attempt-table>div{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;padding:.8rem;border-bottom:1px solid var(--line)}.attempt-status{font-weight:800}.attempt-status.passed{color:#15834c}.attempt-status.failed,.attempt-status.error{color:#b33a2e}
@media(max-width:991px){.exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exercise-layout{grid-template-columns:1fr}.exercise-instructions{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.exercise-instructions section+section{padding:0;margin:0;border:0}}
@media(max-width:767px){.exercise-filters,.exercise-title,.exercise-actions{align-items:stretch;flex-direction:column}.exercise-filters label{min-width:0}.exercise-grid,.exercise-instructions,.exercise-output{grid-template-columns:1fr}.exercise-output pre{border-left:0;border-top:1px solid var(--line)}.exercise-toolbar{align-items:flex-start;flex-direction:column}.exercise-toolbar>div:last-child{display:flex;width:100%}.exercise-toolbar button{flex:1}.attempt-table>div{grid-template-columns:1fr}.exercise-score{align-self:flex-start}.exercise-editor{height:280px}}
/* Phase 7 dynamic quizzes */
.quiz-catalog{padding:3rem 0 6rem}.quiz-filters{display:flex;align-items:end;gap:1rem;padding:1.25rem;margin-bottom:2rem;border:1px solid var(--line);border-radius:16px;background:var(--soft)}.quiz-filters label{min-width:220px}.quiz-filters label span{display:block;margin-bottom:.35rem;font-size:.8rem;font-weight:800}.quiz-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.quiz-card{display:flex;flex-direction:column;padding:1.5rem;border:1px solid var(--line);border-radius:18px;background:var(--card)}.quiz-card-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:1rem;border-radius:15px;background:#fff0bd;color:#8d6200;font-size:1.6rem}.quiz-card h2{margin-top:.5rem;font-size:1.4rem}.quiz-card>p{flex:1;color:var(--muted)}.quiz-stats{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin:1rem 0;color:var(--muted);font-size:.84rem}.quiz-stats.large{margin:2rem 0;font-size:1rem}.quiz-stats.large span{display:flex;align-items:center;gap:.4rem}.quiz-overview{min-height:75vh;background:var(--soft)}.quiz-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:2rem;align-items:start}.quiz-overview h1{font-size:clamp(2.5rem,6vw,5rem)}.quiz-rules,.quiz-history{padding:1.5rem;border:1px solid var(--line);border-radius:18px;background:var(--card)}.quiz-rules>i{font-size:2.5rem;color:var(--primary)}.quiz-rules h2{font-size:1.35rem;margin-top:1rem}.quiz-rules li{margin:.7rem 0}.best-score{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-radius:12px;background:var(--soft)}.best-score strong{font-size:1.5rem;color:var(--primary)}.quiz-history{margin-top:2rem}.quiz-taking{min-height:100vh;background:var(--soft)}.quiz-topbar{position:sticky;top:76px;z-index:1030;display:grid;grid-template-columns:1fr minmax(260px,500px) 150px;gap:2rem;align-items:center;padding:1rem max(1rem,calc((100vw - 1320px)/2));border-bottom:1px solid var(--line);background:var(--card)}.quiz-topbar>div:first-child{display:flex;flex-direction:column}.quiz-topbar>div:first-child span{font-size:.72rem;text-transform:uppercase;color:var(--muted)}.quiz-progress-wrap span{font-size:.82rem;font-weight:800}.quiz-timer{display:flex;justify-content:center;gap:.6rem;padding:.65rem;border-radius:12px;background:#e8efff;color:#173d76;font-weight:900;font-variant-numeric:tabular-nums}.quiz-timer.urgent{background:#ffe2df;color:#94291f}.quiz-timer.untimed{background:var(--soft);color:var(--muted)}.quiz-taking-layout{display:grid;grid-template-columns:220px minmax(0,850px);justify-content:center;gap:2rem;padding:2.5rem 0 5rem}.question-nav{position:sticky;top:180px;align-self:start;padding:1.2rem;border:1px solid var(--line);border-radius:16px;background:var(--card)}.question-nav h2{font-size:1rem}.question-nav>div{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem}.question-nav button{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--ink);font-weight:800}.question-nav button.active{border-color:var(--primary);box-shadow:0 0 0 2px rgba(98,70,234,.2)}.question-nav button.answered{background:#d8f5e5;color:#126c3d}.question-nav p{margin:1rem 0 0;color:var(--muted);font-size:.78rem}.answered-key{display:inline-block;width:10px;height:10px;border-radius:50%;background:#59c78a}.question-stage{min-width:0}.quiz-question{padding:2rem;border:1px solid var(--line);border-radius:18px;background:var(--card)}.quiz-question legend{float:none;width:auto;font:700 clamp(1.4rem,3vw,2rem) 'Space Grotesk',sans-serif}.quiz-question legend>span{display:block;margin-bottom:.7rem;font:800 .75rem 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--primary)}.question-meta{display:flex;gap:.7rem;margin-bottom:1.5rem}.question-meta span{padding:.25rem .6rem;border-radius:20px;background:var(--soft);color:var(--muted);font-size:.74rem;font-weight:800}.quiz-code{padding:1.2rem;border-radius:12px;background:#151827;color:#e7ebfb;white-space:pre-wrap}.quiz-options{display:grid;gap:.8rem;margin-top:1.5rem}.quiz-options label{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:12px;cursor:pointer}.quiz-options label:hover,.quiz-options label:has(input:checked){border-color:var(--primary);background:rgba(98,70,234,.07)}.quiz-options input{width:1.15rem;height:1.15rem;accent-color:var(--primary)}.question-controls{display:flex;justify-content:space-between;gap:1rem;margin-top:1.2rem}.question-controls #quizNext,.question-controls #quizSubmit{margin-left:auto}.quiz-results{min-height:75vh;background:var(--soft)}.result-hero{display:flex;align-items:center;gap:2rem;padding:2rem;border:1px solid var(--line);border-radius:22px;background:var(--card)}.result-ring{--score:0;position:relative;display:grid;place-items:center;flex:0 0 150px;width:150px;height:150px;border-radius:50%;background:conic-gradient(#20a765 calc(var(--score)*1%),var(--line) 0)}.result-ring:before{content:'';position:absolute;width:116px;height:116px;border-radius:50%;background:var(--card)}.result-ring span{position:relative;font-size:1.7rem;font-weight:900}.result-hero.failed .result-ring{background:conic-gradient(#e05a4f calc(var(--score)*1%),var(--line) 0)}.result-stats{display:flex;gap:1.5rem;flex-wrap:wrap}.result-stats span{display:flex;flex-direction:column;color:var(--muted)}.result-stats strong{color:var(--ink)}.result-actions{display:flex;gap:1rem;margin:1.5rem 0}.answer-review{display:grid;gap:1rem}.review-card{padding:1.5rem;border:1px solid var(--line);border-left:5px solid #e05a4f;border-radius:16px;background:var(--card)}.review-card.correct{border-left-color:#20a765}.review-title{display:flex;gap:1rem}.review-title>i{font-size:1.5rem;color:#e05a4f}.review-card.correct .review-title>i{color:#20a765}.review-title span{font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--muted)}.review-title h3{font-size:1.2rem}.review-options{display:grid;gap:.5rem;margin:1rem 0}.review-options>div{display:flex;align-items:center;gap:.7rem;padding:.7rem;border-radius:9px;background:var(--soft)}.review-options .correct-option{background:#dcf5e7;color:#125f38}.review-options .wrong-option{background:#ffe5e2;color:#87291f}.review-options small{margin-left:auto;font-weight:800}.answer-explanation{padding:1rem;border-radius:10px;background:#eef0ff}.answer-explanation p{margin:0}
@media(max-width:991px){.quiz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quiz-overview-grid{grid-template-columns:1fr}.quiz-topbar{grid-template-columns:1fr 1fr}.quiz-topbar>div:first-child{display:none}.quiz-taking-layout{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:767px){.quiz-filters,.result-hero{align-items:stretch;flex-direction:column}.quiz-filters label{min-width:0}.quiz-grid{grid-template-columns:1fr}.quiz-topbar{top:76px;grid-template-columns:1fr auto;gap:1rem}.quiz-taking-layout{display:block;padding-top:1rem}.question-nav{position:static;margin-bottom:1rem}.question-nav>div{grid-template-columns:repeat(8,1fr)}.quiz-question{padding:1.2rem}.result-ring{align-self:center}.result-actions{flex-direction:column}.result-actions .btn,.result-actions form,.result-actions button{width:100%}.review-options small{display:none}}
/* Phase 8 modern CodeMirror playground */
.modern-playground{--editor-width:50%;min-height:calc(100vh - 76px);background:#111422;color:#e8ebf7}.playground-header{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.5rem max(1rem,calc((100vw - 1400px)/2));border-bottom:1px solid #30364e;background:#171b2c}.playground-header .eyebrow{margin:0;color:#9f8cff}.playground-header h1{margin:.2rem 0;font-size:clamp(1.7rem,4vw,2.7rem)}.playground-header p{margin:0;color:#aeb5ca}.runner-status{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.status-dot{width:10px;height:10px;border-radius:50%;background:#39d98a;box-shadow:0 0 0 5px rgba(57,217,138,.12)}.playground-commandbar{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:.8rem max(1rem,calc((100vw - 1400px)/2));border-bottom:1px solid #30364e;background:#20253a}.command-group,.command-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.template-select,.theme-select{display:flex;align-items:center;gap:.4rem}.template-select>span,.theme-select>span{font-size:.72rem;color:#aeb5ca}.template-select select{width:150px}.theme-select select{width:92px}.live-toggle{display:flex;align-items:center;gap:.45rem;padding:.35rem .55rem;border:1px solid #3c435e;border-radius:8px;font-size:.78rem}.live-toggle input{accent-color:#8068ff}.font-controls{display:flex;align-items:center;border:1px solid #3c435e;border-radius:8px;overflow:hidden}.font-controls button{border:0;background:#2b3048;color:#fff;padding:.35rem .5rem}.font-controls output{min-width:45px;text-align:center;font-size:.72rem}.playground-commandbar .btn-outline-primary{border-color:#555e82;color:#e7eaff}.playground-commandbar .btn-outline-primary:hover{background:#343b5a}.playground-tabs{display:flex;align-items:center;padding:0 max(1rem,calc((100vw - 1400px)/2));border-bottom:1px solid #30364e;background:#181c2e}.playground-tabs button{padding:.8rem 1.1rem;border:0;border-bottom:3px solid transparent;background:transparent;color:#aeb5ca;font-weight:800}.playground-tabs button.active{border-bottom-color:#8b74ff;color:#fff;background:#23283d}.playground-tabs>span{margin-left:auto;color:#7f88a4;font-size:.72rem}.playground-split{--editor-width:50%;display:grid;grid-template-columns:minmax(280px,var(--editor-width)) 8px minmax(280px,1fr);height:620px;min-height:420px}.playground-editors{min-width:0;overflow:hidden;background:#151827}.playground-editors>[data-editor-pane]{height:100%}.playground-editors textarea{width:100%;height:100%;padding:1rem;border:0;resize:none;background:#151827;color:#e8ebf7;font:15px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.playground-editors .CodeMirror{height:100%;font:15px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.playground-editors .CodeMirror-gutters{border-right-color:#30364e}.playground-resizer{position:relative;cursor:col-resize;background:#30364e}.playground-resizer:after{content:'';position:absolute;inset:45% 2px;border-radius:3px;background:#78809e}.playground-resizer:hover,.playground-resizer:focus{background:#6246ea;outline:0}.playground-output{display:grid;grid-template-rows:auto minmax(200px,1fr) auto 180px;min-width:0;background:#fff}.output-toolbar,.console-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.55rem .8rem;background:#252b42;color:#e8ebf7;font-size:.78rem}.output-toolbar span{color:#aeb5ca}.playground-output iframe{width:100%;height:100%;border:0;background:#fff}.console-toolbar button{border:0;background:transparent;color:#b9c0d5}.playground-console{overflow:auto;padding:.65rem;background:#10131f;color:#dfe4f5;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.console-empty{color:#78829f}.console-line{display:grid;grid-template-columns:60px 1fr;gap:.5rem;padding:.3rem 0;border-bottom:1px solid #24293b}.console-line>span{text-transform:uppercase;font-size:.65rem;font-weight:900;color:#77dca4}.console-line.warn>span{color:#ffd166}.console-line.error>span,.console-line.runtime>span{color:#ff7d73}.console-line pre{margin:0;white-space:pre-wrap;color:inherit}.playground-footerbar{display:flex;justify-content:space-between;gap:1rem;padding:.7rem max(1rem,calc((100vw - 1400px)/2));border-top:1px solid #30364e;background:#181c2e;color:#9da6c0;font-size:.77rem}.php-runner-notice{display:flex;align-items:center;gap:1rem;padding:1rem max(1rem,calc((100vw - 1400px)/2));background:#2b2430;color:#e8c7c2}.php-runner-notice.available{background:#173529;color:#bdebd2}.php-runner-notice>i{font-size:1.5rem}.php-runner-notice p{margin:0}.playground-dialog{width:min(92vw,520px);padding:0;border:0;border-radius:18px;background:var(--card);color:var(--ink);box-shadow:0 30px 90px rgba(0,0,0,.4)}.playground-dialog::backdrop{background:rgba(8,10,20,.72)}.playground-dialog form{display:grid;gap:1rem;padding:1.7rem}.playground-dialog form>label{font-weight:800}.playground-dialog form>div{display:flex;justify-content:flex-end;gap:.5rem}.modern-playground:fullscreen{overflow:auto}.modern-playground:fullscreen .playground-split{height:calc(100vh - 235px)}
@media(max-width:1199px){.playground-commandbar{align-items:stretch;flex-direction:column}.command-actions{justify-content:flex-start}.playground-tabs>span{display:none}}
@media(max-width:767px){.playground-header{align-items:flex-start;flex-direction:column}.runner-status{font-size:.8rem}.playground-split{display:grid;grid-template-columns:1fr;height:auto}.playground-editors{height:430px}.playground-resizer{display:none}.playground-output{height:520px}.playground-tabs{overflow-x:auto}.playground-tabs button{white-space:nowrap}.playground-footerbar{flex-direction:column}.command-actions .btn{flex:1}.template-select,.theme-select{flex:1}.template-select select,.theme-select select{width:auto;flex:1}}
/* Phase 9 secure administration */
.admin-body{background:#f3f6fb;color:#172033;min-height:100vh}.admin-sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#10172a;color:#dce5fa;padding:1.25rem;display:flex;flex-direction:column;z-index:1040;overflow:auto}.admin-brand{color:inherit;text-decoration:none;font-weight:800;font-size:1.05rem;display:flex;align-items:center;gap:.65rem}.admin-brand span{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.75rem;background:#7158e2;color:#fff}.admin-brand.centered{justify-content:center;color:#172033;margin-bottom:2rem}.admin-sidebar nav{display:grid;gap:.2rem;margin:2rem 0}.admin-sidebar nav a{color:#aebbd5;text-decoration:none;padding:.65rem .75rem;border-radius:.65rem}.admin-sidebar nav a:hover,.admin-sidebar nav a:focus-visible{background:#202b47;color:#fff}.admin-sidebar-profile{margin-top:auto;border-top:1px solid #2b3653;padding-top:1rem;display:grid;gap:.25rem}.admin-sidebar-profile span{color:#91a1c2;font-size:.8rem;text-transform:capitalize}.admin-sidebar-profile a,.admin-sidebar-profile button{color:#ccd8ee;background:none;border:0;padding:.25rem 0;text-decoration:none;text-align:left}.admin-main{margin-left:260px;padding:2rem;min-height:100vh}.admin-auth-main{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at top,#eeeaff,#f5f7fc 50%)}.admin-auth-card{width:min(460px,100%);background:#fff;border:1px solid #e2e7f0;border-radius:1.25rem;padding:2rem;box-shadow:0 20px 60px #22315b1a}.admin-form,.admin-editor-form{display:grid;gap:1rem}.admin-form label,.admin-editor-form label{display:grid;gap:.45rem;font-weight:650}.admin-no-registration{margin:1.5rem 0 0;color:#65708a;font-size:.9rem}.admin-page-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem}.admin-page-head h1{font-size:clamp(1.8rem,3vw,2.5rem);margin:.2rem 0}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.admin-stat-grid article{background:#fff;border:1px solid #e1e7f0;border-radius:1rem;padding:1.1rem;display:grid;grid-template-columns:auto 1fr;gap:.3rem .7rem}.admin-stat-grid i{grid-row:1/3;font-size:1.4rem;color:#7158e2;background:#eeeaff;padding:.65rem;border-radius:.75rem}.admin-stat-grid span{color:#647089;font-size:.85rem}.admin-stat-grid strong{font-size:1.55rem}.admin-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.admin-panel,.admin-detail,.admin-editor-form{background:#fff;border:1px solid #e1e7f0;border-radius:1rem;padding:1.25rem}.admin-panel header{border-bottom:1px solid #e7ebf2;margin-bottom:1rem}.admin-panel h2{font-size:1.1rem}.metric-row{display:grid;grid-template-columns:120px 1fr 35px;align-items:center;gap:.75rem;margin:.8rem 0}.metric-row div{height:.55rem;border-radius:1rem;background:#edf0f6;overflow:hidden}.metric-row i{display:block;height:100%;background:#7158e2}.progress-row{display:grid;grid-template-columns:140px 1fr 40px;gap:.7rem;align-items:center;margin:.8rem 0}.progress-row small{display:block;color:#7a8498}.admin-activity>div{display:flex;gap:.8rem;padding:.8rem 0;border-bottom:1px solid #eef0f5}.admin-activity small{display:block;color:#78849a}.admin-filter,.admin-bulk{display:flex;gap:.75rem;margin-bottom:1rem}.admin-filter input{max-width:420px}.admin-filter select,.admin-bulk select{max-width:190px}.admin-table-wrap{background:#fff;border:1px solid #e1e7f0;border-radius:1rem;overflow:auto}.admin-table-wrap table{min-width:760px;margin:0}.admin-table-wrap td small{display:block;color:#7b8699}.status-pill{display:inline-block;padding:.25rem .55rem;border-radius:2rem;background:#e8f7ef;color:#147344;font-size:.78rem}.admin-actions{white-space:nowrap}.admin-actions a,.admin-actions button,.inline-order button{border:0;background:none;color:#52617d;padding:.4rem}.inline-order{display:flex}.inline-order input{width:65px}.admin-empty{display:grid;place-items:center;gap:.4rem;padding:2rem;color:#758096}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.span-2{grid-column:1/-1}.admin-form-actions{display:flex;justify-content:flex-end;gap:.7rem;border-top:1px solid #e7ebf2;padding-top:1rem}.rich-toolbar{display:flex;flex-wrap:wrap;gap:.35rem}.rich-toolbar button{border:1px solid #d7deea;background:#fff;border-radius:.4rem;padding:.35rem .55rem}.admin-detail>div{display:grid;grid-template-columns:190px 1fr;padding:.8rem 0;border-bottom:1px solid #edf0f4}.admin-detail dt{color:#69758b}.admin-detail pre{max-height:360px}.admin-dialog{border:0;border-radius:1rem;padding:1.5rem;max-width:430px;box-shadow:0 20px 60px #0003}.admin-dialog::backdrop{background:#11182799}.dialog-close{float:right;border:0;background:none;font-size:1.5rem}.admin-mobile-toggle{display:none}.admin-alert{position:fixed;top:1rem;right:1rem;z-index:1100;max-width:420px}.note,.warning{padding:1rem;border-left:4px solid #7158e2;background:#f3f0ff}.warning{border-color:#d97706;background:#fff7e6}
@media(max-width:991px){.admin-sidebar{transform:translateX(-100%);transition:.2s}.admin-sidebar.open{transform:none}.admin-main{margin-left:0;padding:4.5rem 1rem 1rem}.admin-mobile-toggle{display:block;position:fixed;top:1rem;left:1rem;z-index:1050;border:0;border-radius:.7rem;background:#10172a;color:#fff;padding:.55rem .7rem}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:575px){.admin-page-head{align-items:start;flex-direction:column}.admin-stat-grid,.admin-form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.admin-filter{flex-direction:column}.admin-filter input,.admin-filter select{max-width:none}.admin-detail>div{grid-template-columns:1fr}.metric-row{grid-template-columns:95px 1fr 30px}}
footer .developer-credit,footer .owner-credit{display:block;width:max-content;margin:.45rem 0 0;padding:.4rem .75rem;border-radius:.5rem;font-weight:900;letter-spacing:.035em}footer .developer-credit{background:linear-gradient(135deg,#ffd35c,#ffb84d);color:#171a2b;text-transform:uppercase}footer .owner-credit{background:linear-gradient(135deg,#694eea,#8d72ff);color:#fff}