/* ICDEFTEEV v2.3.0 — polished auth, visual creative lab, student progress & practices */
.auth-v230{max-width:1300px;grid-template-columns:minmax(0,1fr) minmax(390px,.88fr);min-height:min(880px,calc(100vh - 90px));gap:0}
.auth-v230 .auth-art{min-height:620px;isolation:isolate;animation:auth-panel-in .85s cubic-bezier(.16,1,.3,1) both}
.auth-v230 .auth-art h1{font-size:clamp(40px,4.1vw,72px);line-height:1.09;max-width:580px;position:relative;z-index:1}
.auth-v230 .auth-art p{position:relative;z-index:1;max-width:480px;font-size:14px;line-height:1.75;color:#d7d9f3}
.auth-v230 .auth-art::before{content:"";position:absolute;width:480px;height:480px;border-radius:50%;right:-180px;top:8%;background:radial-gradient(circle,#4af6cb55,transparent 68%);animation:auth-breathe 7s ease-in-out infinite}
.auth-v230 .auth-card-wrap{padding:38px 28px;display:flex;align-items:center;justify-content:center;animation:auth-card-in .8s .12s cubic-bezier(.16,1,.3,1) both}
.auth-v230 .auth-card{width:min(490px,100%);border:1px solid var(--line);border-radius:30px;padding:38px 36px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);box-shadow:0 26px 85px rgba(37,39,78,.10);backdrop-filter:blur(18px)}
.auth-v230 .auth-card h2{font-size:31px;margin:6px 0 6px}.auth-v230 .auth-card>.muted{margin:0 0 28px;font-size:12px;line-height:1.7}
.auth-v230 .auth-card .field>label{display:block;margin-bottom:7px;font-size:11px;font-weight:800}
.auth-v230 .auth-card .field>label b{color:#ef5178}
.auth-v230 .auth-card input{height:46px;border-radius:13px;transition:border .25s,box-shadow .25s,background .25s}
.auth-v230 .auth-card input:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent)}
.auth-v230 .auth-card .help{margin-top:5px;line-height:1.5}
.auth-v230 .auth-switch{margin:23px 0 0;text-align:center;font-size:12px;color:var(--muted)}
.auth-v230 .auth-switch a{font-weight:800;color:var(--primary)}
.auth-v230 .auth-submit{height:49px;border-radius:14px;justify-content:space-between;padding-inline:20px}
.password-wrap{position:relative}.password-wrap input{width:100%;padding-right:53px!important}.password-toggle{position:absolute;top:50%;transform:translateY(-50%);right:9px;width:36px;height:34px;border:0;border-radius:9px;background:var(--surface-2);color:var(--muted);cursor:pointer}
.auth-orbit{position:relative;width:290px;height:250px;margin:40px auto 10px;filter:drop-shadow(0 20px 35px #0e102c44)}
.auth-orbit::before,.auth-orbit::after{content:"";position:absolute;inset:15px;border:1px solid #ffffff34;border-radius:50%;transform:rotate(-18deg) scaleY(.62);animation:auth-orbit-spin 18s linear infinite}.auth-orbit::after{transform:rotate(72deg) scaleY(.62);animation-direction:reverse}
.auth-orbit-center{width:134px;height:134px;position:absolute;left:calc(50% - 67px);top:calc(50% - 67px);border-radius:36px;background:linear-gradient(140deg,#9679ff,#47daca);display:grid;place-items:center;font-size:78px;color:#fff;animation:mascot-bob 5s ease-in-out infinite;box-shadow:0 23px 65px #11133599;z-index:1}
.orbit-item{position:absolute;z-index:2;width:58px;height:58px;border-radius:19px;background:#ffffff20;border:1px solid #ffffff70;display:grid;place-items:center;font-size:26px;backdrop-filter:blur(16px);animation:mascot-bob 4.5s ease-in-out infinite}.orbit-a{top:5px;left:0}.orbit-b{top:6px;right:9px;animation-delay:-1s}.orbit-c{bottom:0;left:10px;animation-delay:-1.7s}.orbit-d{bottom:-4px;right:4px;animation-delay:-2.4s}
.auth-quote{font-size:11px;font-weight:650;color:#c5c7e9;position:relative;z-index:1;text-align:center}
/* Public creative animation */
.visual-learning-section{padding-top:6px}.visual-learning-section .section-head em{font-style:normal;color:var(--primary)}
.visual-lab{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;padding:16px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 5%,var(--surface-solid)),color-mix(in srgb,var(--accent) 6%,var(--surface-solid)));box-shadow:var(--shadow-soft)}
.visual-canvas{min-width:0;border-radius:22px;overflow:hidden;background:#14182a;min-height:350px;box-shadow:0 18px 60px #191b3844}
.visual-canvas-top{height:48px;border-bottom:1px solid #ffffff21;color:#dfe1fa;font-size:10px;letter-spacing:.12em;font-weight:850;display:flex;align-items:center;justify-content:space-between;padding:0 21px}
.visual-canvas-top span:last-child{letter-spacing:.3em;color:#6e77a1}
.visual-canvas-stage{min-height:305px;position:relative;display:grid;place-items:center;padding:22px;background-image:radial-gradient(circle at 15% 15%,#a76dff28,transparent 40%),radial-gradient(circle at 85% 80%,#41eadb20,transparent 36%),linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:auto,auto,32px 32px,32px 32px}
.visual-poster{width:min(230px,62%);min-height:254px;padding:22px;border-radius:5px;display:flex;flex-direction:column;justify-content:space-between;transform:rotate(-5deg);background:linear-gradient(160deg,#ffeaa0 0%,#ffd999 48%,#f4a5ce 100%);color:#29243f;box-shadow:0 24px 36px #02040c88;animation:visual-poster-drift 6s ease-in-out infinite}
.visual-poster>span{font-size:13px;font-weight:950;letter-spacing:.15em}.visual-poster>span small{color:#814a7d}.visual-poster>strong{font-family:Manrope,sans-serif;font-size:clamp(32px,4vw,53px);line-height:.94;letter-spacing:-.075em}.visual-poster>i{font-size:9px;font-style:normal;letter-spacing:.06em}
.visual-toolbox{position:absolute;left:18px;top:20%;width:130px;display:grid;gap:10px}.visual-toolbox span{font-size:11px;font-weight:800;color:#d5d8f5;padding:9px 10px;border:1px solid #ffffff22;background:#ffffff10;border-radius:10px;backdrop-filter:blur(10px);animation:tool-appear 6s ease-in-out infinite}.visual-toolbox span:nth-child(2){animation-delay:-1.5s}.visual-toolbox span:nth-child(3){animation-delay:-3s}.visual-toolbox span:nth-child(4){animation-delay:-4.5s}
.visual-floating-cursor{position:absolute;right:15px;bottom:24px;background:#fff;color:#6541b2;padding:9px 15px;border-radius:10px;box-shadow:0 12px 40px #0006;font-size:13px;animation:cursor-drift 5s ease-in-out infinite}.visual-floating-cursor b{font-size:10px;margin-left:4px}
.visual-experience{display:flex;flex-direction:column;gap:12px;justify-content:space-between;padding:17px 10px}.visual-feature{padding:12px;display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.visual-icon{width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--primary) 13%,var(--surface-solid));color:var(--primary);font-size:23px;display:grid;place-items:center}.visual-feature b{font-size:13px}.visual-feature small{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.visual-progress{background:linear-gradient(120deg,#e8e6ff,#ddfff4);border:1px solid #d7d9f4;border-radius:16px;padding:18px;color:#272e4e}.visual-progress span{display:block;font-size:9px;letter-spacing:.1em;font-weight:850}.visual-progress b{display:block;font-size:13px;margin:7px 0 12px}.visual-progress-bars{display:flex;gap:5px}.visual-progress-bars i{height:7px;flex:1;border-radius:10px;background:#705cf5;animation:visual-progress 4s ease-in-out infinite alternate}.visual-progress-bars i:nth-child(2){animation-delay:-.6s}.visual-progress-bars i:nth-child(3){animation-delay:-1.2s}.visual-progress-bars i:nth-child(4){animation-delay:-1.8s}.visual-progress-bars i:nth-child(5){background:#98a4cd;animation-delay:-2.5s}
/* Learning mascot */
.mascot-metric{width:185px;height:185px}.mascot-metric .hero-metric-content{display:flex;flex-direction:column;align-items:center;gap:1px}.mascot-metric .hero-metric-content strong{font-size:22px}.mascot-metric .hero-metric-content small{font-size:9px;max-width:120px;text-align:center}
.study-mascot{position:relative;width:95px;height:105px;display:flex;flex-direction:column;align-items:center;animation:mascot-bob 3.5s ease-in-out infinite;flex:0 0 auto}
.study-mascot-spark{position:absolute;top:0;right:-3px;font-size:17px;color:#f6c44a;animation:mascot-twinkle 2.1s linear infinite}
.study-mascot-head{width:73px;height:66px;position:relative;z-index:1;margin-top:9px;border-radius:24px 24px 25px 25px;background:linear-gradient(145deg,#e8bbff,#9e92ef);border:3px solid #7462bc;box-shadow:inset 0 2px #ffffff77,0 8px 16px #6755a14a}
.mascot-ear{position:absolute;top:-11px;width:25px;height:26px;background:#b39cec;border:3px solid #7462bc;z-index:-1;border-radius:8px 16px 5px 5px;transform:rotate(-20deg)}.ear-left{left:-2px}.ear-right{right:-2px;transform:rotate(20deg)}
.mascot-face{position:absolute;inset:14px 10px 4px;display:flex;justify-content:space-around;align-items:flex-start}.mascot-eye{width:9px;height:13px;border-radius:50%;background:#322850;animation:mascot-blink 6s ease-in-out infinite}.mascot-mouth{position:absolute;top:12px;left:0;right:0;text-align:center;color:#342b56;font-size:25px;line-height:1}
.mascot-body{height:29px;width:56px;position:relative;margin-top:-7px;border:3px solid #7462bc;border-radius:8px 8px 20px 20px;background:linear-gradient(140deg,#eac6ff,#ad8af6);display:grid;place-items:center}.mascot-book{font-size:24px;line-height:1;color:#f9e3a7;z-index:2}
.mascot-arm{position:absolute;top:1px;width:22px;height:11px;background:#bda4ee;border:2px solid #7462bc;border-radius:15px;animation:mascot-wave 3s ease-in-out infinite;transform-origin:top right}.arm-left{left:-16px;transform:rotate(-24deg)}.arm-right{right:-16px;transform:rotate(24deg);animation-delay:-1.6s}
.mascot-ground{height:7px;width:55px;border-radius:50%;background:#62549c55;margin-top:1px;filter:blur(3px)}.study-mascot.mood-champion .study-mascot-head{background:linear-gradient(140deg,#fff0a1,#ffa7cb);border-color:#a36a76}.study-mascot.mood-happy .study-mascot-head{background:linear-gradient(140deg,#a6ffe5,#9baaff);border-color:#589db1}.study-mascot.mood-sleepy .mascot-eye{height:4px;transform:translateY(6px)}
.study-mascot.mini{transform:scale(.62);transform-origin:center;animation:mascot-bob-mini 3.5s ease-in-out infinite;width:64px;height:68px;margin:-15px 0}.mini-course-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.mini-course-heading h3{flex:1}
/* Practice player and student upload */
.coupon-inline{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;max-width:330px}.coupon-inline label{font-size:11px;color:var(--muted);font-weight:800}.coupon-inline input{height:42px;border-radius:12px;padding:0 12px;border:1px solid var(--line-strong);background:var(--surface-solid)}
.practice-video-section{border:1px solid var(--line);border-radius:21px;overflow:hidden;margin:20px 0;background:var(--surface-2)}.practice-video-head{padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:9px}.practice-video-head h3{margin:3px 0 0;font-size:18px}.practice-video-placeholder{display:grid;grid-template-columns:46% 1fr;min-height:225px;align-items:center;background:linear-gradient(120deg,#1e223e,#382b68);color:#fff}.practice-video-placeholder img{width:100%;height:100%;min-height:225px;object-fit:cover;opacity:.84}.practice-video-placeholder>div{padding:20px}.practice-video-placeholder span{font-size:10px;color:#b9fff0;letter-spacing:.17em;font-weight:850}.practice-video-placeholder h3{font-size:21px;line-height:1.2}.practice-video-placeholder p{font-size:11px;line-height:1.7;color:#e1dff3}.practice-player{background:#10131f;padding:0 0 13px}.practice-player video{display:block;width:100%;aspect-ratio:16/9;max-height:640px;background:#000;object-fit:contain}.practice-player label{color:#eee;font-size:12px;display:flex;align-items:center;gap:11px;padding:11px 17px 0}.practice-player select{background:#242b46;border:1px solid #526078;color:#fff;padding:7px;border-radius:9px}
.practice-guide{margin:15px 0;padding:6px}.practice-guide h3{font-size:20px;margin:20px 0 11px}.practice-guide p{font-size:13px;line-height:1.75}.practice-guide ol{padding-left:22px}.practice-guide li{font-size:13px;line-height:1.75;margin:9px 0;padding-left:6px}.practice-guide li::marker{color:var(--primary);font-weight:850}
.practice-upload-box{border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:20px;padding:24px;margin-top:23px;background:color-mix(in srgb,var(--primary) 4%,var(--surface-solid))}.practice-upload-box h3{font-size:20px;margin:0 0 8px}.practice-upload-box p{color:var(--muted);font-size:12px;line-height:1.7}.practice-upload-box .field{margin-bottom:12px}.practice-upload-box input,.practice-upload-box textarea{width:100%}.practice-upload-status{padding:9px 0}
.profile-v230{display:grid;grid-template-columns:1.38fr .8fr;gap:18px;align-items:start}.profile-details,.profile-password{padding:26px}.profile-password .field{margin:15px 0}.profile-header{display:flex;gap:16px;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:25px}.profile-header h2{margin:5px 0}.profile-avatar{width:76px;height:76px;font-size:32px;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.avatar-preview{width:78px;height:78px;border-radius:17px;object-fit:cover;margin-top:10px}.top-avatar img,.mini-user .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.new-practice-admin{padding:25px;margin:18px 0}.new-practice-admin h3{font-size:20px}.new-practice-admin p{font-size:12px;line-height:1.8}.new-practice-admin form{margin-top:12px}.admin-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.admin-video-row{border:1px solid var(--line);border-radius:15px;padding:12px;display:flex;align-items:start;gap:12px}.admin-video-row>img{width:102px;height:95px;object-fit:cover;border-radius:9px}.admin-video-row>div{flex:1;min-width:0}.admin-video-row b{font-size:12px}.admin-video-row form{display:grid;gap:8px}.admin-video-row input[type=file]{max-width:100%;font-size:11px}
@keyframes auth-panel-in{from{opacity:0;transform:translateX(-38px) scale(.97)}to{opacity:1;transform:none}}@keyframes auth-card-in{from{opacity:0;transform:translateY(32px) scale(.97)}to{opacity:1;transform:none}}@keyframes auth-breathe{50%{transform:scale(1.3);opacity:.6}}@keyframes auth-orbit-spin{to{rotate:360deg}}@keyframes mascot-bob{50%{transform:translateY(-8px) rotate(-2deg)}}@keyframes mascot-bob-mini{50%{transform:scale(.62) translateY(-7px) rotate(-2deg)}}@keyframes mascot-wave{50%{rotate:-24deg}}@keyframes mascot-blink{0%,38%,40%,90%,100%{scale:1 1}39%,91%{scale:1 .08}}@keyframes mascot-twinkle{50%{opacity:.35;rotate:40deg}}@keyframes visual-poster-drift{50%{transform:rotate(-1deg) translateY(-10px)}}@keyframes tool-appear{0%,100%{opacity:.55;translate:0 0}50%{opacity:1;translate:4px -4px}}@keyframes cursor-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(-22px,-18px)}}@keyframes visual-progress{50%{opacity:.45;transform:scaleX(.88)}}
@media(max-width:1050px){.auth-v230{grid-template-columns:1fr 1fr}.auth-v230 .auth-art{padding:32px;margin:20px}.visual-toolbox{display:none}.profile-v230{grid-template-columns:1fr}.admin-video-grid{grid-template-columns:1fr}}
@media(max-width:760px){.auth-v230{grid-template-columns:1fr;min-height:auto;padding:20px 12px 48px}.auth-v230 .auth-art{display:flex;min-height:220px;padding:30px 25px;margin:0 0 14px;border-radius:24px}.auth-v230 .auth-art h1{font-size:32px}.auth-v230 .auth-art p{font-size:11px;max-width:100%}.auth-orbit,.auth-quote{display:none}.auth-v230 .auth-card-wrap{padding:0;animation:none}.auth-v230 .auth-card{border-radius:22px;padding:26px 20px}.visual-lab{grid-template-columns:1fr}.visual-canvas{min-height:270px}.visual-canvas-stage{min-height:260px}.visual-experience{padding:4px}.practice-video-placeholder{grid-template-columns:1fr}.practice-video-placeholder img{max-height:190px;min-height:160px}.study-mascot{transform:scale(.8);transform-origin:center}.mascot-metric{width:150px;height:150px}.dashboard-hero .mascot-metric{display:flex}.profile-v230{display:block}.profile-password{margin-top:15px}.admin-video-row{flex-direction:column}.admin-video-row>img{width:100%;height:130px}}
@media(prefers-reduced-motion:reduce){.auth-v230 .auth-art,.auth-v230 .auth-card-wrap,.auth-v230 .auth-art:before,.auth-orbit:before,.auth-orbit:after,.auth-orbit-center,.orbit-item,.study-mascot,.visual-poster,.visual-toolbox span,.visual-floating-cursor,.visual-progress-bars i,.mascot-eye,.mascot-arm,.study-mascot-spark{animation:none!important;transition:none!important}}
.card-progress-mascot{display:grid;gap:6px;margin:13px 0 4px}.card-progress-mascot>span{display:flex;align-items:center;gap:10px;min-height:52px}.card-progress-mascot>span>b{font-size:11px;color:var(--muted)}.card-progress-mascot .progress{height:7px}

/* v2.3.1 Canva Drive tutorials and instructor curriculum setup */
.canva-direct-update{margin:16px 0 23px;padding:25px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:linear-gradient(115deg,color-mix(in srgb,var(--primary) 8%,var(--surface-solid)),var(--surface-solid))}
.canva-direct-update h3{font-size:20px;margin:8px 0}.canva-direct-update p{max-width:780px;font-size:12px;line-height:1.75}.canva-direct-update form{flex:0 0 auto}
.practice-drive-player{padding:0;overflow:hidden;background:#0a0d18}.practice-drive-player iframe{display:block;width:100%;aspect-ratio:16/9;min-height:250px;border:0;background:#10131f}
.practice-drive-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:#10131f}.practice-drive-cover>img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.46) saturate(1.13)}
.practice-drive-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;padding:18px;color:white;text-align:center}
.practice-drive-pill{font-size:10px;font-weight:800;letter-spacing:.13em;color:#d9e2ff}.practice-drive-play{border:1px solid #ffffff55;border-radius:15px;padding:15px 25px;background:linear-gradient(120deg,#7f73ff,#594cd8);color:#fff;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 15px 35px #080b1950;transition:transform .2s ease,box-shadow .2s ease}.practice-drive-play:hover{transform:translateY(-2px);box-shadow:0 22px 40px #080b1980}.practice-drive-overlay p{font-size:11px;max-width:420px;color:#e6e9ff;line-height:1.6}
@media(max-width:760px){.canva-direct-update{padding:18px}.canva-direct-update form,.canva-direct-update button{width:100%}.practice-drive-player iframe{min-height:210px}.practice-drive-overlay p{font-size:10px}}
