:root{
  --black:#070707;--ink:#111111;--tile:#171717;--tile2:#202020;--tile3:#2A2A2A;--line:#3A3A3A;--line2:#4A4A4A;
  --white:#F4F4F4;--soft:#CFCFCF;--muted:#8C8C8C;--radius:4px;--shadow:0 18px 70px rgba(0,0,0,.35);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--black);color:var(--white)}
body{background:linear-gradient(135deg,#050505 0%,#111 38%,#1b1b1b 64%,#060606 100%)}a{color:var(--white);text-decoration:underline;text-underline-offset:3px}button,input,textarea,select{font:inherit}button{cursor:pointer}
.header{position:sticky;top:0;z-index:80;min-height:72px;border-bottom:1px solid var(--line);background:rgba(8,8,8,.92);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 30px}.brand{display:flex;align-items:center;gap:12px;min-width:230px;font-weight:800;letter-spacing:-.035em;white-space:nowrap;text-transform:uppercase}.logo{width:42px;height:42px;border:1px solid var(--line2);background:#f4f1ea;color:var(--black);display:grid;place-items:center;font-weight:900;line-height:1;overflow:hidden}
.logo img{width:100%;height:100%;object-fit:cover;display:block}.brand-title{display:flex;flex-direction:column;line-height:.95}.brand-title strong{font-size:13px;letter-spacing:.08em}.brand-title span{font-size:10px;color:var(--muted);letter-spacing:.12em;margin-top:4px}.hero-logo{display:grid;place-items:center;border:1px solid var(--line);background:#f4f1ea;padding:18px;min-height:320px}.hero-logo img{width:min(100%,420px);height:auto;display:block;filter:grayscale(1)}.topnav{display:flex;align-items:center;justify-content:center;gap:0;flex:1}.topnav button{border:0;border-left:1px solid transparent;border-right:1px solid transparent;background:transparent;color:var(--soft);padding:14px 18px;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.08em;white-space:nowrap;transition:background .16s ease,color .16s ease,border .16s ease,transform .16s ease}.topnav button:hover,.topnav .active{background:var(--tile2);color:var(--white);border-color:var(--line)}.actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;min-width:230px}.hamb{display:none;width:42px;height:42px;border:1px solid var(--line2);background:var(--tile);color:var(--white);place-items:center;font-size:22px;border-radius:var(--radius)}
.menu-overlay{position:fixed;inset:0;z-index:140;background:rgba(5,5,5,.86);backdrop-filter:blur(16px);display:none}.menu-overlay.open{display:block}.menu-panel{margin:84px auto 0;max-width:760px;border:1px solid var(--line);background:var(--tile);box-shadow:var(--shadow);padding:22px;border-radius:var(--radius)}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.menu-grid button{border:1px solid var(--line);background:var(--ink);color:var(--white);padding:18px;text-align:left;border-radius:var(--radius);transition:transform .15s ease,background .15s ease,border .15s ease}.menu-grid button:hover{transform:translateY(-1px);background:var(--tile2);border-color:var(--white)}.menu-grid small{display:block;color:var(--muted);margin-top:5px}
.btn{border:1px solid var(--white);border-radius:var(--radius);background:var(--white);color:var(--black);font-weight:900;padding:12px 16px;text-transform:uppercase;font-size:12px;letter-spacing:.07em;transition:transform .14s ease,background .14s ease,color .14s ease,border .14s ease}.btn:hover{transform:translateY(-1px);background:#d8d8d8;border-color:#d8d8d8}.btn:active{transform:translateY(1px)}.btn.secondary{background:var(--tile);color:var(--white);border:1px solid var(--line2)}.btn.secondary:hover{background:var(--tile2);border-color:var(--white)}.btn.ghost{background:transparent;color:var(--soft);border:1px solid var(--line)}.btn.danger{background:var(--black);color:var(--white);border:1px solid var(--line2)}
.page{max-width:1320px;margin:0 auto;padding:28px}.hero{position:relative;overflow:hidden;border:1px solid var(--line);background:linear-gradient(135deg,#0b0b0b,#202020 48%,#0f0f0f);box-shadow:var(--shadow);padding:48px;min-height:420px;display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center;border-radius:var(--radius)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:42px 42px;opacity:.55;pointer-events:none}.hero-copy,.graphic{position:relative;z-index:1}.badge{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line2);background:rgba(0,0,0,.25);color:var(--soft);padding:8px 12px;font-size:12px;text-transform:uppercase;font-weight:800;letter-spacing:.08em;border-radius:var(--radius)}.dot{width:8px;height:8px;background:var(--white);display:inline-block}h1{font-size:clamp(42px,6vw,82px);line-height:.9;letter-spacing:-.075em;margin:18px 0;font-weight:900}h2{font-size:30px;letter-spacing:-.045em;margin:0 0 14px;font-weight:900}h3{margin:0 0 8px;font-size:18px;font-weight:900}p{color:var(--soft);line-height:1.65}.hero p{font-size:18px;max-width:690px}.graphic{display:grid;grid-template-columns:1fr 1fr;gap:10px}.graphic-card{border:1px solid var(--line);background:rgba(12,12,12,.78);padding:18px;min-height:130px;border-radius:var(--radius);transition:transform .15s ease,border .15s ease,background .15s ease}.graphic-card:hover{transform:translateY(-2px);border-color:var(--white);background:#111}.graphic-card.wide{grid-column:1/-1}.progress{height:8px;background:var(--tile3);overflow:hidden;margin-top:14px}.progress span{display:block;height:100%;background:var(--white)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:1px solid var(--line);background:rgba(18,18,18,.90);padding:20px;box-shadow:0 18px 60px rgba(0,0,0,.12);border-radius:var(--radius);transition:transform .15s ease,border .15s ease,background .15s ease}.card:hover{border-color:var(--white);background:#151515;transform:translateY(-1px)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:10px}.input,.textarea,.select{width:100%;border:1px solid var(--line2);background:#0b0b0b;color:var(--white);border-radius:var(--radius);padding:13px 14px;outline:0}.textarea{min-height:110px;resize:vertical}.input:focus,.textarea:focus,.select:focus{border-color:var(--white);box-shadow:0 0 0 2px rgba(255,255,255,.18)}.label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:900;margin-bottom:6px}.form-row{display:grid;gap:6px}.notice,.success,.error{padding:13px 14px;border-radius:var(--radius);margin-top:12px;border:1px solid var(--line2);background:#101010;color:var(--soft)}.success{border-color:var(--white);color:var(--white)}.error{border-color:#767676;color:#e8e8e8}
.login-wrap{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:30px 0}.login-card{width:min(520px,100%);border:1px solid var(--line);background:#0c0c0c;padding:34px;border-radius:var(--radius);box-shadow:var(--shadow)}.login-card h1{font-size:44px;margin:0 0 12px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.login-logo-full{display:grid;place-items:center;background:#f4f1ea;border:1px solid var(--line);margin:-10px 0 24px;padding:14px}.login-logo-full img{width:min(100%,260px);height:auto;display:block;filter:grayscale(1)}.login-meta{display:grid;gap:10px;margin-top:20px;color:var(--muted);font-size:13px}
.admin-shell{display:grid;grid-template-columns:250px minmax(0,1fr) 300px;gap:10px;align-items:start}.panel{border:1px solid var(--line);background:rgba(18,18,18,.92);border-radius:var(--radius);padding:16px}.sticky{position:sticky;top:92px}.sideitem{display:block;width:100%;text-align:left;border:1px solid transparent;background:transparent;color:var(--soft);padding:11px 12px;border-radius:var(--radius);transition:background .15s ease,border .15s ease,color .15s ease}.sideitem:hover,.sideitem.active{background:var(--tile2);border-color:var(--line2);color:var(--white)}.lesson-title{font-size:44px;line-height:1;letter-spacing:-.06em;font-weight:1000;outline:0;border-radius:var(--radius);padding:8px}.editable{outline:0;border-radius:var(--radius);padding:8px;margin:-8px}.lesson-title:focus,.editable:focus,[contenteditable=true]:focus{box-shadow:0 0 0 2px rgba(255,255,255,.22);background:#0b0b0b}
.block{border:1px solid var(--line);background:rgba(20,20,20,.88);border-radius:var(--radius);margin:10px 0;overflow:hidden}.block-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--line)}.block-type{font-weight:900;display:flex;gap:9px;align-items:center;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.block-body{padding:16px}.block-actions{display:flex;gap:8px}.icon-btn{width:36px;height:36px;border:1px solid var(--line2);border-radius:var(--radius);background:#0b0b0b;color:var(--soft)}.icon-btn:hover{color:var(--white);border-color:var(--white)}.add-block{border:1px dashed var(--line2);background:#0d0d0d;border-radius:var(--radius);padding:18px;margin:14px 0}.palette{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.palette button{border:1px solid var(--line);background:#111;color:var(--white);border-radius:var(--radius);padding:14px;text-align:left;text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:.06em;transition:transform .15s ease,border .15s ease}.palette button:hover{transform:translateY(-1px);border-color:var(--white)}.palette small{display:block;color:var(--muted);line-height:1.35;margin-top:6px;text-transform:none;letter-spacing:0;font-weight:500}.status{display:inline-flex;padding:6px 9px;border-radius:var(--radius);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line2);color:var(--soft)}.status.published{border-color:var(--white);color:var(--white)}.status.draft{color:var(--muted)}
.asset,.notation-render{border:1px solid var(--line);background:#0b0b0b;border-radius:var(--radius);padding:12px;margin-top:10px}.asset img{max-width:100%;border-radius:var(--radius);border:1px solid var(--line);margin-top:10px}.asset iframe,.musescore-frame{width:100%;height:520px;border:1px solid var(--line);background:white;border-radius:var(--radius);margin-top:10px}.video-preview{width:100%;border-radius:var(--radius);border:1px solid var(--line);background:black;margin-top:10px}.osmd-target{background:#fff;color:#000;overflow:auto;padding:12px;margin-top:10px;min-height:160px}.footer{max-width:1320px;margin:20px auto 0;padding:22px 28px;color:var(--muted);display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);font-size:13px}.mobile-bottom{display:none}
@media(max-width:1060px){.topnav{display:none}.hamb{display:grid}.brand,.actions{min-width:0}.header{padding:10px 14px}.actions .badge{display:none}}@media(max-width:940px){.page{padding:14px}.hero{grid-template-columns:1fr;padding:24px;min-height:auto}.grid,.grid.two,.admin-shell,.palette,.menu-grid,.graphic{grid-template-columns:1fr}.footer{display:grid;grid-template-columns:1fr}.sticky{position:static}.lesson-title{font-size:34px}.login-card{padding:22px}.login-card h1{font-size:34px}.mobile-bottom{display:flex;position:sticky;bottom:0;z-index:30;gap:8px;background:rgba(8,8,8,.94);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:10px}.mobile-bottom .btn{flex:1}.asset iframe,.musescore-frame{height:420px}}

/* v6.4 admin cleanup */
.admin-section{margin-top:18px}
.lesson-list{display:grid;gap:8px}
.lesson-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);background:#101010;padding:12px;border-radius:var(--radius);transition:transform .15s ease,border .15s ease,background .15s ease}
.lesson-row:hover{border-color:var(--white);background:#151515;transform:translateY(-1px)}
.lesson-row.dragging{opacity:.55;border-style:dashed}
.drag-handle{width:34px;height:34px;border:1px solid var(--line2);display:grid;place-items:center;color:var(--muted);background:#0b0b0b;user-select:none;cursor:grab}
.drag-handle:active{cursor:grabbing}
.lesson-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.lesson-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.compact-btn{padding:9px 11px;font-size:11px}
.mini-stat{display:grid;gap:4px}
.mini-stat strong{font-size:34px;line-height:1}
.musescore-help{color:var(--muted);font-size:13px;margin-top:8px}
@media(max-width:940px){
  .lesson-row{grid-template-columns:1fr}
  .drag-handle{display:none}
  .lesson-actions{justify-content:flex-start}
}


/* v6.5 course-first admin structure */
.course-tile{min-height:190px;display:grid;align-content:space-between;gap:16px}
.course-title-edit{outline:0}
.course-title-edit:focus{box-shadow:0 0 0 2px rgba(255,255,255,.22);background:#0b0b0b}
.breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:900;margin-bottom:12px}
.breadcrumb button{border:0;background:transparent;color:var(--soft);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:900;padding:0;text-decoration:underline;text-underline-offset:3px}
.course-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}
.notation-url-row{display:grid;gap:8px;margin-bottom:14px}
.external-score-link{display:inline-flex;align-items:center;gap:8px;margin-top:10px}
@media(max-width:940px){.course-header{grid-template-columns:1fr}}


/* v6.6 course/lesson fix */
.course-actions{display:flex;gap:8px;flex-wrap:wrap}
.inline-warning{border:1px solid var(--line2);background:#0b0b0b;color:var(--soft);padding:12px;margin-top:12px;border-radius:var(--radius)}


/* v6.8 student lesson + gamification */
.lesson-page{max-width:1120px;margin:0 auto;display:grid;gap:16px}
.lesson-hero{border:1px solid var(--line);background:linear-gradient(135deg,#0b0b0b,#1a1a1a 54%,#080808);padding:34px;border-radius:var(--radius);box-shadow:var(--shadow);position:relative;overflow:hidden}
.lesson-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:38px 38px;opacity:.6;pointer-events:none}
.lesson-hero > *{position:relative;z-index:1}
.lesson-meta-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.lesson-progress-shell{margin-top:20px;border:1px solid var(--line);background:#090909;padding:14px;border-radius:var(--radius)}
.lesson-progress-head{display:flex;justify-content:space-between;gap:12px;color:var(--soft);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-bottom:8px}
.lesson-progress-track{height:10px;background:#2a2a2a;overflow:hidden}
.lesson-progress-fill{height:100%;background:var(--white);transition:width .25s ease}
.lesson-body{border:1px solid var(--line);background:rgba(13,13,13,.94);border-radius:var(--radius);padding:0;overflow:hidden}
.lesson-section{padding:28px;border-bottom:1px solid var(--line)}
.lesson-section:last-child{border-bottom:0}
.lesson-section h2{font-size:26px;margin-bottom:12px}
.lesson-article{font-size:17px;line-height:1.8;color:var(--soft);max-width:860px}
.lesson-video{width:100%;max-height:70vh;background:#000;border:1px solid var(--line);border-radius:var(--radius)}
.checklist{display:grid;gap:8px;margin-top:12px}
.check-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);background:#0b0b0b;padding:12px;border-radius:var(--radius);transition:border .15s ease,background .15s ease}
.check-item:hover{border-color:var(--white);background:#101010}
.check-item input{width:20px;height:20px;margin:1px 0 0}
.check-item span{color:var(--soft);line-height:1.5}
.check-item.done span{text-decoration:line-through;color:var(--muted)}
.timeline{display:grid;gap:8px;margin-top:12px}
.timeline-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;border-left:2px solid var(--line2);padding:10px 0 10px 14px}
.timeline-time{font-weight:900;color:var(--white);letter-spacing:.04em}
.timeline-content strong{display:block;margin-bottom:4px}
.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.reward-tile{border:1px solid var(--line);background:#0b0b0b;border-radius:var(--radius);padding:16px}
.reward-tile strong{display:block;font-size:26px;margin-top:4px}
.complete-panel{border:1px solid var(--white);background:#101010;padding:20px;border-radius:var(--radius);display:grid;gap:12px}
.badge-preview{border:1px solid var(--line2);background:#0b0b0b;padding:14px;border-radius:var(--radius)}
.badge-mark{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid var(--white);background:var(--white);color:var(--black);font-weight:900;margin-bottom:10px}
.lesson-toast{position:fixed;right:22px;bottom:22px;z-index:200;max-width:360px;border:1px solid var(--white);background:#0a0a0a;color:var(--white);box-shadow:var(--shadow);padding:16px;border-radius:var(--radius)}
.user-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
@media(max-width:940px){
  .lesson-hero{padding:22px}
  .lesson-section{padding:18px}
  .timeline-item{grid-template-columns:1fr}
  .reward-grid,.user-stats{grid-template-columns:1fr}
}


/* v6.9 course access + pathways */
.pathway-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:12px;align-items:stretch}
.pathway-panel{border:1px solid var(--line);background:#101010;border-radius:var(--radius);padding:20px}
.current-work{display:grid;gap:10px}
.course-detail-hero{border:1px solid var(--line);background:linear-gradient(135deg,#0b0b0b,#1d1d1d 55%,#080808);padding:34px;border-radius:var(--radius);box-shadow:var(--shadow)}
.course-lessons{display:grid;gap:8px;margin-top:16px}
.public-lesson-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);background:#101010;padding:14px;border-radius:var(--radius);transition:border .15s ease,background .15s ease,transform .15s ease}
.public-lesson-row:hover{border-color:var(--white);background:#151515;transform:translateY(-1px)}
.public-lesson-row.locked{opacity:.72;border-color:#2e2e2e}
.access-pill{display:inline-flex;padding:5px 8px;border:1px solid var(--line2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-left:6px}
.access-pill.free{border-color:var(--white);color:var(--white)}
.course-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.lock-panel{max-width:760px;margin:0 auto;border:1px solid var(--line);background:#101010;padding:28px;border-radius:var(--radius);box-shadow:var(--shadow)}
.course-progress-mini{height:8px;background:#2a2a2a;overflow:hidden;margin-top:10px}
.course-progress-mini span{display:block;height:100%;background:var(--white)}
@media(max-width:940px){
  .pathway-layout{grid-template-columns:1fr}
  .public-lesson-row{grid-template-columns:1fr}
}

/* v7.1.3 auth cleanup */
.auth-switch{display:flex;gap:10px;flex-wrap:wrap;margin:-6px 0 22px}
.auth-switch .btn{flex:1}
.auth-switch-single .btn{flex:0 0 auto}
.login-meta a{color:var(--white)}

/* v7.6 MusicXML + MIDI timing foundation */
.upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.asset-tool-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0 8px}.asset-tool-head span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.notation-render,.midi-render{margin-top:12px;border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.03)}.osmd-target{overflow:auto;background:#f7f3ea;color:#111;border-radius:14px;margin-top:12px;padding:14px}.score-fallback{display:grid;gap:10px}.score-measure{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:start;border:1px solid rgba(0,0,0,.16);background:#fff;color:#151515;border-radius:12px;padding:10px}.measure-num{font-weight:900;color:#777}.score-notes{display:flex;flex-wrap:wrap;gap:8px}.score-note{min-width:54px;display:grid;place-items:center;border-radius:10px;border:1px solid #ddd;background:#fafafa;padding:8px;font-weight:800}.score-note small{display:block;font-size:10px;color:#777;font-weight:500}.score-note.rest{opacity:.62}.midi-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.midi-summary span,.lesson-step{border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:12px}.midi-table{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:14px}.midi-table table{width:100%;border-collapse:collapse;font-size:13px}.midi-table th,.midi-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}.lesson-nav{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 14px}.lesson-page>.lesson-nav:last-child,.lesson-body>.lesson-nav{margin-top:18px}.lesson-step{margin-left:auto}.lesson-toast{position:fixed;right:18px;bottom:18px;z-index:2000;max-width:360px;border:1px solid var(--line);border-radius:18px;background:#111;color:var(--white);padding:16px;box-shadow:var(--shadow)}
@media(max-width:760px){.upload-grid{grid-template-columns:1fr}.lesson-step{margin-left:0}.lesson-nav .btn{flex:1}}


/* v7.7 DrumHero-style student practice */
.practice-lab{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.035);padding:18px;margin:16px 0;box-shadow:var(--shadow)}
.practice-head{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}.practice-head h3{margin:.4rem 0}.practice-head p{color:var(--muted);max-width:760px}.practice-actions,.practice-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.practice-panel{display:grid;gap:14px}.practice-status{color:var(--muted);font-size:13px}.practice-status.good{color:#9de2b2}.practice-status.warn{color:#ffd38a}.practice-status.bad{color:#ff9a9a}.practice-stats,.practice-summary{display:flex;flex-wrap:wrap;gap:10px}.practice-stats span,.practice-summary span,.map-chip{border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:rgba(255,255,255,.04);font-size:13px}.practice-stage-wrap{border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));overflow:hidden}.practice-stage{position:relative;height:390px;display:grid;grid-template-columns:repeat(7,1fr);background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent calc(100% / 7));}.practice-hitline{position:absolute;left:0;right:0;top:310px;height:3px;background:rgba(255,255,255,.78);box-shadow:0 0 24px rgba(255,255,255,.35);z-index:3}.practice-hitline:after{content:"HIT LINE";position:absolute;right:10px;top:8px;color:var(--muted);font-size:11px;letter-spacing:.12em}.practice-lane-labels{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(7,1fr);z-index:2;background:rgba(0,0,0,.42);border-top:1px solid var(--line)}.practice-lane-labels span{padding:10px 4px;text-align:center;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.practice-note{position:absolute;top:0;height:54px;border:1px solid rgba(255,255,255,.22);border-radius:14px;display:grid;place-items:center;text-align:center;background:#f4f1ea;color:#090909;box-shadow:0 12px 30px rgba(0,0,0,.32);will-change:transform,opacity;z-index:4}.practice-note strong{font-size:13px}.practice-note small{font-size:10px;opacity:.72}.practice-note.hit{background:#d7ffd8;color:#0b2a12}.practice-note.missed{background:#3a1010;color:#ffd3d3;border-color:#7d2d2d;opacity:.5}.practice-mapper{border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.025)}.mapper-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.mapper-head span{color:var(--muted);font-size:12px}.map-buttons,.map-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.map-chip.empty{color:var(--muted)}.practice-score{border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.03)}.practice-result{min-height:20px}.practice-summary{border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.04)}
@media(max-width:860px){.practice-head{grid-template-columns:1fr}.practice-actions .btn,.practice-toolbar .btn{flex:1}.practice-stage{height:340px}.practice-hitline{top:265px}.practice-note{height:48px}.practice-lane-labels span{font-size:10px;padding:8px 2px}}


/* v7.8 traditional notation + synced cursor */
.score-sync-panel{display:block;margin:16px 0 18px;background:rgba(255,255,255,.045)}
.score-head{margin-top:0}.score-sync-wrap{position:relative;overflow:auto;background:#f7f3ea;border-radius:16px;border:1px solid rgba(0,0,0,.16);max-height:520px;scroll-behavior:smooth}.score-sync-canvas{position:relative;min-width:920px;padding:10px}.score-sync-content{margin:0;min-height:180px;background:#fff;border:1px solid rgba(0,0,0,.10);border-radius:12px;padding:12px}.score-cursor-line{position:absolute;top:8px;bottom:8px;left:12px;width:3px;background:#e01919;box-shadow:0 0 0 1px rgba(255,255,255,.7),0 0 18px rgba(224,25,25,.42);z-index:20;pointer-events:none;transition:transform .06s linear}.score-cursor-line span{position:absolute;top:0;left:50%;transform:translate(-50%,-105%);width:12px;height:12px;border-radius:999px;background:#e01919;box-shadow:0 4px 14px rgba(0,0,0,.28)}.score-sync-note{color:var(--muted);font-size:13px;margin:8px 2px 0}.practice-score-fallback{margin-top:12px}.practice-panel{margin-top:12px}.practice-head{margin-bottom:8px}
@media(max-width:860px){.score-sync-wrap{max-height:430px}.score-sync-canvas{min-width:760px;padding:8px}.score-sync-content{padding:8px}.score-cursor-line{left:8px}}


/* v7.8.1 protected own MusicXML renderer */
.score-own{background:#fff;color:#121212;border-radius:12px;min-width:820px;padding:10px 12px}.score-own-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 8px;color:#111}.score-own-title span,.score-own-legend{color:#666;font-size:12px}.score-own-svg{display:block;background:#fff;border:1px solid rgba(0,0,0,.10);border-radius:10px}.own-staff-line{stroke:#1d1d1d;stroke-width:1}.own-bar{stroke:#111;stroke-width:1.4}.own-measure-num{font-size:11px;fill:#777;font-weight:700}.own-notehead{fill:#111;stroke:#111;stroke-width:1}.own-note-x,.own-stem{stroke:#111;stroke-width:2;stroke-linecap:round}.own-rest text{font-size:24px;fill:#111}.own-note-caption{font-size:10px;fill:#555;font-weight:700}.score-own-legend{display:flex;justify-content:space-between;gap:10px;margin-top:8px}.score-sync-content .score-own{min-height:180px}

/* v7.9 official MuseScore SVG rendering */
.score-svg-stack{display:grid;gap:18px;min-width:900px;background:#fff;color:#111;padding:14px;border-radius:14px}
.score-svg-page{background:#fff;border:1px solid #e2e2e2;border-radius:10px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.08)}
.score-svg-page svg{display:block;width:100%;height:auto;background:#fff;color:#111}

.score-svg-stack,.score-img-stack{display:grid;gap:14px}.score-svg-page,.score-img-page,.score-pdf-page{background:#fff;border-radius:10px;overflow:hidden;border:1px solid rgba(0,0,0,.10)}.score-svg-page svg{display:block;width:100%;height:auto}.score-img-page img{display:block;width:100%;height:auto}.score-pdf-page iframe{display:block;width:100%;height:560px;border:0;background:#fff}

/* v7.11: MuseScore MPOS/SPOS mapped cursor */
.score-cursor-line.mapped{bottom:auto;min-height:46px;border-radius:999px;background:#e01919;box-shadow:0 0 0 1px rgba(255,255,255,.8),0 0 24px rgba(224,25,25,.55)}
.score-cursor-line.mapped:before{content:"";position:absolute;left:-18px;right:-18px;top:0;bottom:0;background:linear-gradient(90deg,rgba(224,25,25,.10),rgba(224,25,25,.02));pointer-events:none}


/* v7.12 score trainer controls */
.trainer-toolbar{align-items:center;gap:10px}.trainer-toolbar .practice-status{flex:1;min-width:220px}.tempo-control{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.04);font-size:13px;color:var(--muted)}.tempo-control input{width:130px}.tempo-control strong{color:var(--white);min-width:44px}.trainer-position{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 12px;color:var(--muted);font-size:13px}.trainer-position strong{color:var(--white)}.trainer-hint{font-size:12px;color:var(--muted)}.score-sync-wrap.can-seek{cursor:crosshair;scroll-behavior:auto!important}.score-cursor-line{display:block!important;left:0!important;z-index:999!important;opacity:1!important}.score-cursor-line.mapped{bottom:auto!important;min-height:46px}@media(max-width:860px){.tempo-control{width:100%;justify-content:space-between}.tempo-control input{flex:1}.trainer-toolbar .btn{flex:1}.trainer-toolbar .practice-status{width:100%;flex:auto}}

/* v7.13 score trainer loop + real-time score feedback */
.trainer-head{align-items:center;margin-bottom:12px}.trainer-title h3{margin:.25rem 0 0}.trainer-console{border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));padding:14px;display:grid;gap:12px;margin:12px 0}.trainer-main-controls,.trainer-readout,.trainer-loop-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.trainer-readout,.trainer-loop-controls{padding-top:2px}.trainer-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:rgba(255,255,255,.04);font-size:13px;color:var(--muted)}.trainer-chip strong{color:var(--white)}.loop-chip.on{border-color:#9de2b2;color:#d7ffd8;background:rgba(58,180,94,.12)}#app .btn.active{border-color:#9de2b2;color:#d7ffd8}.trainer-console .practice-status{border-top:1px solid var(--line);padding-top:10px;min-height:18px}.score-current-measure{position:absolute;display:none;border:2px solid rgba(255,204,72,.78);background:rgba(255,204,72,.14);border-radius:10px;z-index:18;pointer-events:none;box-shadow:0 0 20px rgba(255,204,72,.22)}.score-feedback-dot{position:absolute;z-index:1000;width:20px;height:20px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:900;border:1px solid rgba(0,0,0,.35);box-shadow:0 4px 14px rgba(0,0,0,.25);pointer-events:none}.score-feedback-dot.perfect,.score-feedback-dot.good{background:#d7ffd8;color:#07230f}.score-feedback-dot.ok{background:#fff7cb;color:#3a2b00}.score-feedback-dot.early,.score-feedback-dot.late{background:#ffe0aa;color:#3a2100}.score-feedback-dot.miss{background:#ffb3b3;color:#3a0808}.score-sync-wrap.can-seek{cursor:ew-resize;scroll-behavior:auto!important}.score-sync-wrap.can-seek.dragging{cursor:grabbing}.score-cursor-line{pointer-events:auto!important;cursor:ew-resize}.score-cursor-line:after{content:"";position:absolute;left:-12px;right:-12px;top:0;bottom:0}.practice-head p{display:none}
@media(max-width:860px){.trainer-main-controls .btn{flex:1}.trainer-console{padding:12px}.trainer-chip{flex:1;justify-content:center}.trainer-loop-controls .btn{flex:1}}


/* v7.14 trainer polish: visible loop controls, full-measure highlight, quieter feedback */
.score-head-pro{display:grid!important;grid-template-columns:1fr auto;gap:12px;align-items:center}
.score-head-title{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.score-head-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.trainer-chip.mini{font-size:12px;padding:6px 9px}
.score-current-measure{position:absolute;border:2px solid rgba(255,183,26,.82);background:rgba(255,183,26,.10);border-radius:10px;box-shadow:0 0 0 9999px rgba(255,183,26,.015) inset,0 0 18px rgba(255,183,26,.20);z-index:8;pointer-events:none;display:none}
.score-cursor-line{z-index:30!important}
.score-feedback-dot{position:absolute;width:17px;height:17px;border-radius:999px;display:grid;place-items:center;font-size:11px;font-weight:900;line-height:1;z-index:40;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.20);opacity:.88;transform:translate(-50%,-50%)}
.score-feedback-dot.miss{background:rgba(255,95,95,.78);color:#111;border:1px solid rgba(120,0,0,.35)}
.score-feedback-dot.early,.score-feedback-dot.late{background:rgba(255,206,112,.86);color:#111;border:1px solid rgba(120,80,0,.35)}
.score-feedback-dot.good,.score-feedback-dot.ok{background:rgba(147,225,166,.86);color:#102414;border:1px solid rgba(0,90,30,.28)}
.score-feedback-dot.perfect{background:rgba(120,245,158,.95);color:#06230f;border:1px solid rgba(0,105,30,.32)}
.score-feedback-dot.stray{background:rgba(255,60,60,.92);color:#fff;border:1px solid rgba(90,0,0,.55);width:19px;height:19px;font-size:12px}
.loop-chip.on{border-color:rgba(255,210,100,.75)!important;background:rgba(255,210,100,.12)!important;color:#ffe3a2!important}
.practice-status.bad{color:#ff9a9a!important}
@media(max-width:860px){.score-head-pro{grid-template-columns:1fr}.score-head-tools{justify-content:flex-start}.score-head-tools .btn{padding:7px 9px}}


/* v7.15 active four-measure focus mode */
.score-sync-wrap.score-focus-mode{max-height:430px;scroll-behavior:auto!important;overflow:auto;background:#f4f1ea}
.score-focus-window{position:absolute;display:none;border:2px solid rgba(80,180,255,.58);background:rgba(80,180,255,.055);border-radius:14px;z-index:7;pointer-events:none;box-shadow:0 0 22px rgba(80,180,255,.18)}
.score-focus-mode .score-current-measure{border-color:rgba(255,185,28,.95);background:rgba(255,185,28,.16);z-index:9}
.score-focus-mode .score-cursor-line{z-index:42!important}
.score-head-tools #scoreFocusLabel,.score-head-tools .active{border-color:rgba(120,220,255,.65)!important;color:#dff7ff!important;background:rgba(80,180,255,.10)!important}
.score-sync-note{line-height:1.45}
@media(min-width:900px){.score-focus-mode .score-svg-stack{min-width:1250px}.score-focus-mode .score-img-stack{min-width:1250px}}


/* v7.16 two-measure trainer focus + DAW transport polish */
.daw-transport{gap:10px!important}
.transport-btn{width:56px;min-width:56px;height:48px;display:inline-grid;place-items:center;font-size:20px;line-height:1;padding:0!important}
.transport-btn.active{box-shadow:0 0 0 1px rgba(255,255,255,.35) inset}
.daw-tempo{height:48px;padding:0 16px!important;min-width:260px}
.daw-tempo input{width:160px!important}
.score-sync-wrap.score-focus-mode{max-height:360px!important;overflow:auto;background:#f4f1ea;scroll-behavior:auto!important}
.score-focus-window,.score-current-measure{display:none!important}
.score-sync-panel{overflow:hidden}
.score-sync-wrap{overscroll-behavior:contain}
.score-feedback-dot{width:13px!important;height:13px!important;font-size:9px!important;opacity:.72!important;box-shadow:0 2px 7px rgba(0,0,0,.18)!important}
.score-feedback-dot.miss{background:rgba(255,88,88,.54)!important;color:#2b0000!important}
.score-feedback-dot.stray{width:15px!important;height:15px!important;font-size:10px!important;background:rgba(255,50,50,.78)!important}
.score-sync-note{font-size:12px!important;color:#999!important}
.trainer-console{position:sticky;top:0;z-index:50}
@media(max-width:860px){.transport-btn{flex:0 0 54px}.daw-tempo{min-width:100%;}.daw-tempo input{flex:1;width:auto!important}}


/* v7.17 trainer stabilization: row focus, cleaner DAW panel, no broken score dots */
.trainer-console-v717{position:sticky;top:0;z-index:60;border-radius:18px;padding:12px 14px;background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.03));box-shadow:0 16px 45px rgba(0,0,0,.20)}
.trainer-daw-bar,.trainer-loop-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.trainer-daw-bar{padding-bottom:8px;border-bottom:1px solid var(--line)}
.trainer-loop-row{padding-top:8px}
.transport-btn{width:64px!important;min-width:64px!important;height:54px!important;border-radius:8px!important;display:grid!important;grid-template-rows:1fr auto;gap:1px;place-items:center;padding:4px!important;font-size:20px!important}
.transport-btn span{line-height:1;font-size:20px}.transport-btn small{font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.transport-btn.active small{color:#d7ffd8}
.daw-tempo{height:44px!important;min-width:280px!important;border-radius:999px!important}.daw-tempo span{color:var(--muted);font-size:12px}.daw-tempo strong{font-size:13px}
.now-chip{border-color:rgba(120,220,255,.42)!important;background:rgba(80,180,255,.08)!important}
.score-row-focus{max-height:520px!important;overflow:auto!important;scroll-behavior:auto!important;background:#f4f1ea!important;overscroll-behavior:contain!important}
.score-row-focus .score-svg-stack{min-width:1180px!important;padding:12px!important}
.score-row-focus .score-sync-content{padding:8px!important}
.score-current-measure,.score-focus-window{display:none!important}
.score-feedback-dot{display:none!important}
.score-cursor-line.mapped{width:4px!important;border-radius:999px;background:#e01919!important;box-shadow:0 0 0 1px rgba(255,255,255,.9),0 0 18px rgba(224,25,25,.50)!important}
.score-cursor-line.mapped:before{left:-9px!important;right:-9px!important;background:linear-gradient(90deg,rgba(224,25,25,.10),rgba(224,25,25,.015))!important}
.score-sync-note{font-size:12px!important;color:#9b9b9b!important;margin-top:8px!important}.score-head-tools .btn{padding:7px 10px!important}.trainer-console .practice-status{font-size:13px!important}
.practice-stage-wrap{margin-top:10px}.practice-stats{margin-top:10px}
@media(max-width:860px){.transport-btn{width:58px!important;min-width:58px!important}.daw-tempo{min-width:100%!important}.trainer-daw-bar .trainer-chip{flex:1}.score-row-focus{max-height:430px!important}}

/* v7.18 trainer notation engine: own two-measure drum notation */
.trainer-notation-panel{border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));padding:14px;margin:14px 0 16px;overflow:hidden}
.trainer-notation-loading{color:var(--muted);padding:18px}.trainer-notation-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 10px}.trainer-notation-head strong{font-size:15px}.trainer-notation-head span{color:var(--muted);font-size:13px}.trainer-notation-scroll{overflow-x:auto;background:#f6f1e7;border:1px solid rgba(0,0,0,.16);border-radius:16px;padding:10px}.trainer-notation-svg{display:block;min-width:900px;background:#fff;border-radius:12px;border:1px solid rgba(0,0,0,.10);box-shadow:0 8px 30px rgba(0,0,0,.10)}.trainer-notation-note{color:var(--muted);font-size:12px;margin-top:9px}.tn-staff{stroke:#161616;stroke-width:1}.tn-bar{stroke:#090909;stroke-width:1.8}.tn-measure-hitbox{fill:rgba(255,255,255,.001)}.tn-beat-grid{stroke:rgba(0,0,0,.12);stroke-width:1}.tn-beat-grid.major{stroke:rgba(0,0,0,.32)}.tn-measure-num{font-size:12px;fill:#333;font-weight:800}.tn-lane-label{font-size:10px;fill:#777;font-weight:900;letter-spacing:.08em}.tn-beat-label,.tn-sub-label{font-size:11px;fill:#777;font-weight:700}.tn-sub-label{fill:#aaa}.trainer-note line,.trainer-note .tn-stem{stroke:#111;stroke-width:2;stroke-linecap:round}.trainer-note ellipse{fill:#111;stroke:#111;stroke-width:1}.trainer-note.ghost ellipse{fill:#fff;stroke:#111;stroke-width:1.4}.trainer-note.accent ellipse{stroke-width:2.4}.tn-paren{font-size:24px;fill:#111;font-weight:700}.tn-accent{font-size:24px;fill:#111;font-weight:900;transform:rotate(90deg);transform-box:fill-box;transform-origin:center}.tn-dyn{font-size:10px;fill:#666;font-style:italic}.tn-note-label{font-size:9px;fill:#555;font-weight:800}.tn-cursor{stroke:#e01919;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 10px rgba(224,25,25,.45));pointer-events:none}.tn-active-measure{fill:rgba(255,191,48,.13);stroke:rgba(255,160,0,.82);stroke-width:2;rx:12;pointer-events:none}.trainer-note.hit ellipse,.trainer-note.hit line{stroke:#0a7c2f!important;fill:#d7ffd8}.trainer-note.perfect ellipse,.trainer-note.good ellipse{fill:#d7ffd8;stroke:#0a7c2f}.trainer-note.early ellipse,.trainer-note.late ellipse,.trainer-note.ok ellipse{fill:#ffe8ad;stroke:#9a6100}.trainer-note.miss ellipse,.trainer-note.miss line{fill:#ffc1c1;stroke:#9b1111!important}.tn-stray-flash circle{fill:#ff4a4a;stroke:#8c0000;stroke-width:2;opacity:.9}.tn-stray-flash text{fill:#fff;font-size:16px;font-weight:900}.original-score-details{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.025);padding:10px 12px;margin:14px 0}.original-score-details summary{cursor:pointer;color:var(--muted);font-weight:800}.original-score-details[open] summary{margin-bottom:12px;color:var(--white)}.trainer-console-v718{position:sticky;top:8px;z-index:50;background:rgba(14,14,14,.94);backdrop-filter:blur(16px)}
@media(max-width:860px){.trainer-notation-svg{min-width:760px}.trainer-notation-panel{padding:10px}.trainer-notation-head{display:grid;gap:4px}.trainer-console-v718{position:static}}

/* v7.19 trainer notation precision polish */
.trainer-notation-panel{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025))}
.trainer-notation-scroll{overflow-x:hidden;background:#f4efe4;padding:12px}
.trainer-notation-svg{width:100%;min-width:0!important;height:auto;background:#fffaf1}
.tn-measure-bg{fill:#fffaf1}.tn-staff{stroke:#171717;stroke-width:1.15}.tn-bar{stroke:#050505;stroke-width:2}.tn-beat-grid{stroke:rgba(0,0,0,.13);stroke-width:1}.tn-beat-grid.major{stroke:rgba(0,0,0,.34)}
.tn-lane-label{font-size:10px;fill:#555;font-weight:900;letter-spacing:.1em}.tn-measure-num{font-size:12px;fill:#222;font-weight:900}.tn-beat-label,.tn-sub-label{font-size:11px;fill:#6b6b6b;font-weight:800}.tn-sub-label{fill:#aaa}
.trainer-note .tn-stem,.trainer-note .tn-x{stroke:#111;stroke-width:2.1;stroke-linecap:round}.trainer-note ellipse{fill:#111;stroke:#111;stroke-width:1.2}.trainer-note.ghost ellipse{fill:#fff6f6;stroke:#111;stroke-width:1.4}.trainer-note.accent ellipse,.trainer-note.accent .tn-x{stroke-width:3}.trainer-note.grace{opacity:.78;transform-box:fill-box;transform-origin:center;transform:scale(.82)}
.tn-paren{font-size:24px;fill:#111;font-weight:800}.tn-accent{font-size:25px;fill:#111;font-weight:900;transform:rotate(90deg);transform-box:fill-box;transform-origin:center}.tn-hihat-art{font-size:17px;fill:#111;font-weight:900}.tn-stick{font-size:12px;fill:#111;font-weight:900}.tn-dyn{font-size:10px;fill:#555;font-style:italic;font-weight:700}.tn-note-label{font-size:9px;fill:#565656;font-weight:900}
.tn-cursor{stroke:#e01919;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 10px rgba(224,25,25,.48));pointer-events:none}.tn-active-measure{fill:rgba(255,191,48,.11);stroke:rgba(255,160,0,.8);stroke-width:2;rx:10;pointer-events:none}
.trainer-note.hit ellipse,.trainer-note.hit .tn-x{stroke:#0a7c2f!important}.trainer-note.perfect ellipse,.trainer-note.good ellipse{fill:#d7ffd8;stroke:#0a7c2f}.trainer-note.perfect .tn-x,.trainer-note.good .tn-x{stroke:#0a7c2f!important}.trainer-note.early ellipse,.trainer-note.late ellipse,.trainer-note.ok ellipse{fill:#ffe8ad;stroke:#9a6100}.trainer-note.early .tn-x,.trainer-note.late .tn-x,.trainer-note.ok .tn-x{stroke:#9a6100!important}.trainer-note.miss ellipse,.trainer-note.miss .tn-x{fill:#ffc1c1;stroke:#9b1111!important}.tn-feedback{font-size:12px;font-weight:900;paint-order:stroke;stroke:#fff;stroke-width:3}.tn-feedback.perfect,.tn-feedback.good{fill:#0a7c2f}.tn-feedback.early,.tn-feedback.late,.tn-feedback.ok{fill:#9a6100}.tn-feedback.miss{fill:#9b1111}.tn-stray-flash circle{fill:#ff4a4a;stroke:#8c0000;stroke-width:2;opacity:.88}.tn-stray-flash text{fill:#fff;font-size:16px;font-weight:900}
@media(max-width:860px){.trainer-notation-scroll{overflow-x:auto}.trainer-notation-svg{min-width:760px!important}}

/* v7.20 trainer staff calibration */
.trainer-notation-scroll{overflow:hidden!important}
.trainer-notation-svg{width:100%!important;max-width:100%;min-width:0!important;background:#fffaf1!important}
.tn-measure-bg{fill:rgba(255,246,214,.45)}
.trainer-note .tn-stem{stroke-width:2.1}
.trainer-note.trainer-lane-kick .tn-stem{stroke-width:2.3}
.tn-active-measure{fill:rgba(255,191,48,.09)!important;stroke:rgba(255,160,0,.75)!important}
.tn-cursor{stroke-width:4.5!important}

/* v7.21.1 safe rhythm notation additions */
.tn-flag,.tn-beam{stroke:#111;stroke-width:4;stroke-linecap:butt;fill:none}
.tn-beam{stroke-width:5}
.tn-dot{fill:#111;stroke:none}
.tn-rest{font-size:28px;fill:#111;font-weight:900}
.trainer-rest{pointer-events:none}
.tn-tie{stroke:#111;stroke-width:1.4;fill:none;opacity:.8}
.trainer-note[data-event-index=""]{pointer-events:none}

/* v7.22 drum notation beam/staff polish */
.tn-beam{stroke-width:6!important;stroke-linecap:butt!important}
.tn-beam.secondary{stroke-width:4.5!important}
.trainer-note .tn-stem{stroke-linecap:butt!important}
.tn-note-label{font-size:8px!important;opacity:.75}
.tn-dyn{font-size:10px!important}
.trainer-notation-note{opacity:.85}


/* v7.24 trainer map debug + percussion staff calibration */
.trainer-debug-panel{margin-top:10px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035);color:var(--white);padding:10px}
.trainer-debug-panel summary{cursor:pointer;font-weight:900;display:flex;gap:10px;align-items:center;justify-content:space-between}
.trainer-debug-panel summary span{font-weight:600;color:var(--muted);font-size:12px}
.trainer-debug-panel p{color:var(--muted);font-size:12px;margin:8px 0 0}
.trainer-debug-warning{margin-top:8px;padding:8px 10px;border:1px solid rgba(255,180,0,.35);border-radius:10px;background:rgba(255,180,0,.10);color:#ffd27a;font-size:12px;font-weight:700}
.trainer-debug-scroll{max-height:260px;overflow:auto;margin-top:10px;border:1px solid var(--line);border-radius:10px;background:#090909}
.trainer-debug-scroll table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}
.trainer-debug-scroll th,.trainer-debug-scroll td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
.trainer-debug-scroll th{position:sticky;top:0;background:#171717;z-index:1}
.trainer-note.ghost ellipse{fill:none;stroke-width:2.5}


/* v7.26 trainer notation readability pass */
.trainer-notation-scroll{background:#efe6d5!important;border-color:rgba(0,0,0,.18)!important;border-radius:18px!important;padding:16px!important;overflow:hidden!important}
.trainer-notation-svg{background:#fff9ed!important;border-radius:14px!important;box-shadow:0 12px 34px rgba(0,0,0,.14)!important}
.tn-page-bg{fill:#fff9ed}
.tn-measure-bg{fill:rgba(255,245,215,.55)!important}
.tn-staff{stroke:#1b1a17!important;stroke-width:1.25!important;shape-rendering:crispEdges}
.tn-bar{stroke:#111!important;stroke-width:2.4!important;shape-rendering:crispEdges}
.tn-beat-grid{stroke:rgba(0,0,0,.115)!important;stroke-width:1!important;shape-rendering:crispEdges}
.tn-beat-grid.major{stroke:rgba(0,0,0,.28)!important}
.tn-measure-num{font-size:13px!important;fill:#141414!important;font-weight:900!important;paint-order:stroke;stroke:#fff9ed;stroke-width:3px;stroke-linejoin:round}
.tn-lane-label{font-size:11px!important;fill:#555!important;font-weight:900!important;letter-spacing:.08em!important;text-anchor:end}
.tn-beat-label,.tn-sub-label{font-size:12px!important;font-weight:900!important;fill:#646464!important}.tn-sub-label{fill:#9b9b9b!important}
.trainer-note ellipse{fill:#111!important;stroke:#111!important;stroke-width:1.15!important}.trainer-note.ghost ellipse{fill:#fff9ed!important;stroke:#111!important;stroke-width:2!important}
.trainer-note .tn-x{stroke:#111!important;stroke-width:2.55!important;stroke-linecap:round!important}
.trainer-note .tn-stem{stroke:#111!important;stroke-width:2.25!important;stroke-linecap:butt!important}
.trainer-note.trainer-lane-kick .tn-stem{stroke-width:2.45!important}
.tn-flag{stroke:#111!important;stroke-width:3.1!important;stroke-linecap:round!important;fill:none!important}.tn-flag.secondary{stroke-width:2.7!important}
.tn-beam{stroke:#111!important;stroke-width:6.4!important;stroke-linecap:butt!important}.tn-beam.secondary{stroke-width:4.6!important}
.tn-dot{fill:#111!important;stroke:none!important}.tn-paren{font-size:25px!important;fill:#111!important;font-weight:800!important}.tn-accent{font-size:24px!important;fill:#111!important;font-weight:900!important;transform:rotate(90deg);transform-box:fill-box;transform-origin:center}
.tn-hihat-art{font-size:17px!important;fill:#111!important;font-weight:900!important}.tn-stick{font-size:12px!important;fill:#111!important;font-weight:900!important;paint-order:stroke;stroke:#fff9ed;stroke-width:3px;stroke-linejoin:round}.tn-dyn{font-size:12px!important;fill:#3f3f3f!important;font-style:italic!important;font-weight:800!important;paint-order:stroke;stroke:#fff9ed;stroke-width:3px;stroke-linejoin:round}.tn-note-label{font-size:9px!important;fill:#6c6c6c!important;font-weight:900!important;opacity:.75!important}
.tn-rest-block,.tn-rest-dot{fill:#111!important}.tn-rest-path{stroke:#111!important;stroke-width:4!important;stroke-linecap:round!important;stroke-linejoin:round!important;fill:none!important}.trainer-rest{opacity:.96;pointer-events:none}
.tn-tie{stroke:#111!important;stroke-width:1.6!important;fill:none!important;opacity:.75!important}.tn-active-measure{fill:rgba(255,186,40,.10)!important;stroke:rgba(255,157,0,.82)!important;stroke-width:2.1!important;rx:12!important}.tn-cursor{stroke:#df1f1f!important;stroke-width:4.6!important;stroke-linecap:round!important;filter:drop-shadow(0 0 9px rgba(223,31,31,.42))!important}
.trainer-note.hit ellipse,.trainer-note.hit .tn-x{stroke:#0a7c2f!important}.trainer-note.hit ellipse{fill:#d7ffd8!important}.trainer-note.perfect ellipse,.trainer-note.good ellipse{fill:#d7ffd8!important;stroke:#0a7c2f!important}.trainer-note.perfect .tn-x,.trainer-note.good .tn-x{stroke:#0a7c2f!important}.trainer-note.early ellipse,.trainer-note.late ellipse,.trainer-note.ok ellipse{fill:#ffe8ad!important;stroke:#9a6100!important}.trainer-note.early .tn-x,.trainer-note.late .tn-x,.trainer-note.ok .tn-x{stroke:#9a6100!important}.trainer-note.miss ellipse{fill:#ffc1c1!important;stroke:#9b1111!important}.trainer-note.miss .tn-x{stroke:#9b1111!important}
@media(max-width:860px){.trainer-notation-scroll{overflow-x:auto!important;padding:12px!important}.trainer-notation-svg{min-width:880px!important}}

/* v7.27 dense notation cleanup: lighter beams, one-stem chords, less intrusive feedback */
.tn-beam{stroke-width:4.2px!important;stroke-linecap:butt!important;opacity:.88!important}
.tn-beam.secondary{stroke-width:3px!important;opacity:.82!important}
.trainer-note .tn-stem{stroke-width:1.85px!important;stroke-linecap:butt!important;opacity:.96!important}
.trainer-note.trainer-lane-kick .tn-stem{stroke-width:2.05px!important}
.tn-flag{stroke-width:2.45px!important;opacity:.9!important}.tn-flag.secondary{stroke-width:2.1px!important}
.tn-tie{stroke-width:1.35px!important;opacity:.48!important}
.tn-feedback{font-size:10px!important;font-weight:900!important;paint-order:stroke!important;stroke:#fff9ed!important;stroke-width:3px!important;pointer-events:none!important}
.trainer-note.hit ellipse,.trainer-note.hit .tn-x{opacity:.95!important}
.trainer-note.miss ellipse{fill:#ffd4d4!important;stroke:#a01919!important}.trainer-note.miss .tn-x{stroke:#a01919!important}
.tn-stray-flash{opacity:.72!important}.tn-stray-flash circle{r:11px!important}

/* v7.29 traditional beam tuning: keep real beamed notation, reduce ink and collisions */
.trainer-notation-scroll{overflow-x:auto!important;overflow-y:hidden!important;background:#efe6d5!important;border-color:rgba(0,0,0,.18)!important;border-radius:18px!important;padding:16px!important}
.trainer-notation-svg{background:#fff9ed!important;border-radius:14px!important;box-shadow:0 12px 34px rgba(0,0,0,.14)!important;max-width:none!important}
.tn-staff{stroke:#171717!important;stroke-width:1.15!important;shape-rendering:crispEdges}
.tn-bar{stroke:#111!important;stroke-width:2.05!important;shape-rendering:crispEdges}
.tn-beat-grid{stroke:rgba(0,0,0,.10)!important;stroke-width:.9!important;shape-rendering:crispEdges}
.tn-beat-grid.major{stroke:rgba(0,0,0,.24)!important}
.trainer-note ellipse{fill:#111!important;stroke:#111!important;stroke-width:1.05!important}.trainer-note.ghost ellipse{fill:#fff9ed!important;stroke:#111!important;stroke-width:1.75!important}
.trainer-note .tn-x{stroke:#111!important;stroke-width:2.15!important;stroke-linecap:round!important}
.trainer-note .tn-stem{stroke:#111!important;stroke-width:1.65px!important;stroke-linecap:butt!important;opacity:.95!important}
.trainer-note.trainer-lane-kick .tn-stem{stroke-width:1.8px!important}
.tn-flag{stroke:#111!important;stroke-width:2.25px!important;stroke-linecap:round!important;fill:none!important;opacity:.82!important}.tn-flag.secondary{stroke-width:1.95px!important}
.tn-beam{stroke:#111!important;stroke-width:3.7px!important;stroke-linecap:butt!important;opacity:.78!important;fill:none!important}
.tn-beam.secondary{stroke-width:2.55px!important;opacity:.72!important}.tn-beam.hook{opacity:.68!important}
.tn-dot{fill:#111!important;stroke:none!important}.tn-paren{font-size:23px!important;fill:#111!important;font-weight:800!important}
.tn-accent{font-size:22px!important;fill:#111!important;font-weight:900!important;transform:rotate(90deg);transform-box:fill-box;transform-origin:center;paint-order:stroke;stroke:#fff9ed;stroke-width:2px;stroke-linejoin:round}
.tn-hihat-art{font-size:15px!important;fill:#111!important;font-weight:900!important;paint-order:stroke;stroke:#fff9ed;stroke-width:2px;stroke-linejoin:round}
.tn-stick{font-size:11px!important;fill:#111!important;font-weight:900!important;paint-order:stroke;stroke:#fff9ed;stroke-width:3px;stroke-linejoin:round}.tn-dyn{font-size:12px!important;fill:#3f3f3f!important;font-style:italic!important;font-weight:800!important;paint-order:stroke;stroke:#fff9ed;stroke-width:3px;stroke-linejoin:round}
.tn-rest-block,.tn-rest-dot{fill:#111!important}.tn-rest-path{stroke:#111!important;stroke-width:3.5px!important;stroke-linecap:round!important;stroke-linejoin:round!important;fill:none!important}.trainer-rest{opacity:.94;pointer-events:none}
.tn-tie{stroke:#111!important;stroke-width:1.25px!important;fill:none!important;opacity:.40!important}.tn-active-measure{fill:rgba(255,186,40,.08)!important;stroke:rgba(255,157,0,.78)!important;stroke-width:2px!important;rx:12!important}.tn-cursor{stroke:#df1f1f!important;stroke-width:4.4px!important;stroke-linecap:round!important;filter:drop-shadow(0 0 8px rgba(223,31,31,.40))!important}
@media(max-width:860px){.trainer-notation-svg{min-width:980px!important}.trainer-notation-scroll{padding:12px!important}}

/* v7.34 admin recorder preview + persistence */
.admin-recorder{margin-top:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025);padding:10px 12px}
.admin-recorder summary{cursor:pointer;font-weight:900;color:var(--white);display:flex;align-items:center;gap:8px}
.admin-recorder[open] summary{margin-bottom:10px}
.rec-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-top:12px}
.rec-grid .label{display:grid;gap:6px;color:var(--muted);font-size:12px}
.rec-preview{max-height:210px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.16);padding:10px;margin-top:10px}
.rec-preview table{width:100%;border-collapse:collapse;font-size:12px}
.rec-preview th,.rec-preview td{border-bottom:1px solid rgba(255,255,255,.08);padding:5px 6px;text-align:left}
.tn-shared-stem{stroke:#111!important;stroke-width:1.9px!important;stroke-linecap:butt!important;opacity:.98!important;fill:none!important}
.tn-shared-stem.joined-kick{stroke-width:2.05px!important}
@media(max-width:860px){.rec-grid{grid-template-columns:1fr 1fr}}

/* v7.34 admin recorder preview */
.admin-recorder .badge.good{background:rgba(34,197,94,.16);border-color:rgba(34,197,94,.45);color:#bbf7d0}
.admin-recorder .badge.warn{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.45);color:#fde68a}
.rec-notation-preview{max-height:none;overflow:visible;background:rgba(0,0,0,.10)}
.rec-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:var(--white)}
.rec-preview-head span{color:var(--muted);font-size:12px}
.rec-trainer-notation .trainer-notation-panel,.rec-trainer-notation{margin:0}
.rec-trainer-notation .trainer-notation-scroll{max-height:340px;overflow-x:auto!important;overflow-y:hidden!important;padding:10px!important}
.rec-trainer-notation .trainer-notation-svg{min-width:900px!important;width:900px!important;max-width:none!important}
.rec-trainer-notation .trainer-notation-head{margin-top:0}
.rec-event-details{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px;color:var(--muted)}
.rec-event-details summary{cursor:pointer;font-weight:800;color:var(--muted)}
/* v7.35 recorder rhythm + sound controls */
.rec-check{margin:10px 0 4px!important;background:rgba(255,255,255,.03)!important;border-color:rgba(255,255,255,.08)!important}
.rec-sound-panel{border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.16);padding:9px 10px;margin:10px 0;color:var(--muted)}
.rec-sound-panel summary{cursor:pointer;font-weight:900;color:var(--white)}
.admin-rec-mapper{margin-top:10px;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px;background:rgba(255,255,255,.025)}
.rec-sample-grid{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;margin-top:10px}
.rec-sample-grid .label{display:grid;gap:6px;color:var(--muted);font-size:12px}
.rec-sample-grid input[type=file]{font-size:11px;color:var(--muted)}
.trainer-rest[data-source="trainer-recording-rest"],.trainer-rest{opacity:.82}
@media(max-width:860px){.rec-sample-grid{grid-template-columns:1fr 1fr}}

/* v7.36 student click + sound bank controls */
.practice-sound-panel{border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(0,0,0,.14);padding:9px 10px;margin:10px 0;color:var(--muted)}
.practice-sound-panel summary{cursor:pointer;font-weight:900;color:var(--white);display:flex;align-items:center;gap:8px;justify-content:space-between}
.sound-toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:8px;margin:10px 0}
.sound-toggle-grid .check-item{margin:0!important;background:rgba(255,255,255,.035)!important;border-color:rgba(255,255,255,.08)!important}
.sound-volume{display:grid;gap:6px;margin:8px 0 10px;color:var(--muted);font-size:12px}
.student-sample-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}
.sample-cell{border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025);padding:9px;display:grid;gap:7px;color:var(--muted);font-size:12px}
.sample-cell strong{color:var(--white)}
.sample-cell input[type=file]{font-size:11px;color:var(--muted);max-width:100%}
@media(max-width:860px){.sound-toggle-grid,.student-sample-grid{grid-template-columns:1fr}}

/* v7.37 module auto-sampling + student count-in */
.module-audio-box{border:1px solid var(--line);border-radius:14px;padding:10px;margin:10px 0;background:rgba(255,255,255,.035);display:grid;gap:8px}
.module-audio-box .label{margin:0}.module-audio-box .select{width:100%}.compact-rec-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.sample-cell .row{margin-top:6px;flex-wrap:wrap}.sample-cell input[type=file]{max-width:100%}

/* v7.38 clean trainer UI: view tabs + course settings */
.trainer-view-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:rgba(15,23,42,.04)}
.view-tab{border:1px solid rgba(148,163,184,.42);background:#fff;color:var(--text);border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer}
.view-tab.active{background:var(--brand,#111827);color:#fff;border-color:var(--brand,#111827)}
.view-tab.settings{margin-left:auto;background:rgba(255,255,255,.72)}
.practice-settings-panel{margin:12px 0;padding:14px;border:1px solid rgba(148,163,184,.34);border-radius:18px;background:rgba(248,250,252,.94);box-shadow:0 10px 30px rgba(15,23,42,.08)}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.settings-card{border:1px solid rgba(148,163,184,.30);border-radius:16px;background:#fff;padding:14px}
.settings-card h4{margin:0 0 10px;font-size:1rem}
.practice-lab[data-view="notation"] .practice-panel{display:none}
.practice-lab[data-view="hero"] .trainer-notation-panel{display:none}
.practice-lab[data-view="hero"] .practice-panel{display:block}
.practice-mapper{margin-top:10px}
@media (max-width:860px){.settings-grid{grid-template-columns:1fr}.view-tab.settings{margin-left:0}.trainer-view-tabs{align-items:stretch}.trainer-view-tabs .trainer-chip{width:100%;text-align:center}}

/* v7.39 clean course UI + arcade dynamics */
.slim-trainer-head{margin-bottom:6px!important}.slim-trainer-head .trainer-title h3{font-size:1.05rem;margin:0}.slim-trainer-head .badge{opacity:.75}
.trainer-console-v739{position:sticky;top:8px;z-index:60;border-radius:18px;padding:10px 12px;background:rgba(13,15,20,.94);backdrop-filter:blur(18px);box-shadow:0 14px 38px rgba(0,0,0,.24);display:grid;gap:8px}
.trainer-topbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.trainer-view-switch{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.view-tab{border:0;background:transparent;color:rgba(255,255,255,.68);border-radius:999px;padding:8px 14px;font-weight:900;cursor:pointer;letter-spacing:.01em}.view-tab.active{background:linear-gradient(135deg,#f4efe5,#c9b98f);color:#151515;box-shadow:0 8px 24px rgba(0,0,0,.22)}
.settings-gear{margin-left:auto;width:38px;height:38px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;font-size:18px;cursor:pointer}.settings-gear:hover{background:rgba(255,255,255,.12)}
.course-chip{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-choice-hint{font-size:12px;color:#dbcfae;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.needs-view-choice{box-shadow:inset 0 0 0 1px rgba(219,207,174,.16);border-radius:16px;padding:4px}
.trainer-mini-transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trainer-mini-transport .primary{background:#f4efe5;color:#121212;border-color:#f4efe5}.compact-tempo{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.compact-tempo input{width:132px}.minimal-status{font-size:12px!important;border-top:1px solid rgba(255,255,255,.08)!important;padding-top:7px!important;min-height:16px!important}.debug-map-btn{opacity:.55}.debug-map-btn:hover{opacity:1}
.practice-settings-panel{position:fixed;right:18px;top:18px;bottom:18px;width:min(760px,calc(100vw - 36px));overflow:auto;z-index:500;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(17,19,24,.98);box-shadow:0 30px 90px rgba(0,0,0,.55);padding:18px;color:#f6f1e7}.practice-settings-panel[hidden]{display:none!important}
.settings-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.settings-drawer-head strong{font-size:1.1rem}.settings-drawer-head span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-card{border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(255,255,255,.045);padding:14px;color:#f6f1e7}.settings-card h4{margin:0 0 10px;color:#fff}.settings-card .input,.settings-card .select{background:rgba(0,0,0,.24);color:#fff;border-color:rgba(255,255,255,.14)}.settings-card .check-item{background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.10)!important}.settings-open:before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:490;backdrop-filter:blur(3px)}
.practice-lab[data-view="notation"] .practice-panel{display:none!important}.practice-lab[data-view="hero"] .trainer-notation-panel{display:none!important}.practice-lab[data-view="hero"] .practice-panel{display:grid!important}.practice-lab[data-view="hero"] .practice-stage-wrap{border-color:rgba(219,207,174,.25);background:radial-gradient(circle at 50% 10%,rgba(219,207,174,.16),rgba(0,0,0,.08) 44%,rgba(0,0,0,.22)),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015))}.practice-lab[data-view="hero"] .practice-stage{background:linear-gradient(90deg,rgba(255,255,255,.035),transparent 8%,transparent 92%,rgba(255,255,255,.035)),repeating-linear-gradient(90deg,rgba(219,207,174,.11) 0,rgba(219,207,174,.11) 1px,transparent 1px,transparent calc(100% / 7))}.practice-lab[data-view="hero"] .practice-hitline{height:4px;background:#f4efe5;box-shadow:0 0 28px rgba(244,239,229,.55)}
.practice-note{overflow:hidden;isolation:isolate}.practice-note .note-velocity{position:absolute;left:0;right:0;bottom:0;z-index:-1;opacity:.28;background:linear-gradient(180deg,transparent,#111)}.practice-note.dyn-p{transform:scale(.88);opacity:.82;border-style:dashed}.practice-note.dyn-mf{border-width:2px}.practice-note.dyn-f{height:62px;border-width:2px;box-shadow:0 14px 38px rgba(244,239,229,.25),0 0 0 1px rgba(255,255,255,.18)}.practice-note.accent{border-color:#fff;box-shadow:0 0 0 3px rgba(244,239,229,.38),0 14px 38px rgba(0,0,0,.34)}.practice-note.accent:before{content:"›";position:absolute;top:-14px;right:8px;font-size:30px;transform:rotate(90deg);font-weight:900;color:#111}.practice-note.hit{box-shadow:0 0 0 3px rgba(157,226,178,.45),0 12px 30px rgba(0,0,0,.32)}
.lesson-start-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 4px}.lesson-start-btn{font-size:1rem;padding:12px 18px}.lesson-start-note{color:var(--muted);font-size:13px}
@media(max-width:860px){.trainer-console-v739{position:static}.settings-grid{grid-template-columns:1fr}.practice-settings-panel{inset:10px;width:auto}.course-chip{width:100%;max-width:none}.trainer-mini-transport .compact-tempo{width:100%}.compact-tempo input{flex:1}.settings-gear{margin-left:0}}

/* v7.40 clean course start settings + MIDI cleanup */
.course-player-settings{margin-top:16px;background:linear-gradient(135deg,rgba(18,18,18,.96),rgba(31,31,31,.9));border-color:rgba(244,244,244,.18)}
.course-player-settings.needs-choice{border-color:#f4f1ea;box-shadow:0 0 0 1px rgba(244,241,234,.22),0 18px 60px rgba(0,0,0,.25)}
.course-settings-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:16px}.course-settings-head h2{margin:8px 0 4px}.course-settings-head p{margin:0;color:var(--muted)}
.course-settings-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.course-settings-summary span{border:1px solid var(--line2);background:#0b0b0b;color:var(--soft);border-radius:999px;padding:8px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.course-view-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 14px}.course-mode-card{border:1px solid var(--line2);background:#0b0b0b;color:var(--white);border-radius:12px;padding:18px;text-align:left;display:grid;gap:6px;transition:transform .15s ease,border .15s ease,background .15s ease}.course-mode-card:hover{transform:translateY(-1px);border-color:var(--white);background:#171717}.course-mode-card.active{background:#f4f1ea;color:#070707;border-color:#f4f1ea;box-shadow:0 16px 36px rgba(0,0,0,.35)}.course-mode-card strong{font-size:20px;letter-spacing:-.02em}.course-mode-card span{font-size:13px;line-height:1.45;color:inherit;opacity:.75}
.course-settings-details{border:1px solid var(--line);background:rgba(0,0,0,.18);border-radius:12px;padding:12px}.course-settings-details summary{cursor:pointer;font-weight:900;text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--soft)}.course-settings-details[open] summary{margin-bottom:12px}.course-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.course-settings-grid .check-item{margin:0;background:#101010;border:1px solid var(--line);border-radius:10px}.course-settings-grid .label{display:grid;gap:6px}.course-settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.course-mapper{margin-top:12px;background:#0c0c0c}
.clean-trainer-topbar{margin-bottom:10px;align-items:center;padding:0;background:transparent}.clean-view-switch{background:#0b0b0b;border:1px solid var(--line2);border-radius:999px;padding:3px}.clean-view-switch .view-tab{color:var(--soft);background:transparent;border-radius:999px;border:0;padding:8px 14px;box-shadow:none}.clean-view-switch .view-tab.active{background:#f4f1ea;color:#070707;box-shadow:none}.subtle-chip{opacity:.72;background:transparent!important;border-color:var(--line)!important}.settings-gear,.practice-settings-panel{display:none!important}.settings-open:before{display:none!important;content:none!important}.trainer-console-v739{border-color:rgba(244,244,244,.12)}
.practice-lane-labels{grid-template-columns:repeat(6,1fr)}.practice-stage{grid-template-columns:repeat(6,1fr);background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent calc(100% / 6))}.practice-lane-other{display:none}.practice-note.lane-other{display:none!important}
@media(max-width:860px){.course-settings-head{grid-template-columns:1fr}.course-settings-summary{justify-content:flex-start}.course-view-choice,.course-settings-grid{grid-template-columns:1fr}.course-mode-card{padding:14px}.clean-trainer-topbar .course-chip{width:100%;max-width:none}}

/* v7.41 course start polish + drum notation fixes */
.course-start-settings{margin:18px 0 16px!important;padding:18px!important;background:linear-gradient(135deg,rgba(13,13,13,.98),rgba(33,31,27,.94))!important;border-color:rgba(219,207,174,.28)!important}
.course-start-settings .badge{background:rgba(219,207,174,.12);border-color:rgba(219,207,174,.34);color:#f4efe5}
.course-view-choice-clean .course-mode-card{border-radius:18px!important;padding:20px!important;min-height:116px!important;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018))!important;border-color:rgba(244,239,229,.14)!important}
.course-view-choice-clean .course-mode-card.active{background:linear-gradient(135deg,#f4efe5,#d3c290)!important;color:#111!important;border-color:#f4efe5!important;box-shadow:0 18px 45px rgba(0,0,0,.34)!important}
.course-view-choice-clean .course-mode-card.arcade-card:not(.active){background:radial-gradient(circle at 70% 0,rgba(255,221,122,.16),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018))!important}
.course-quick-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 14px}
.course-quick-settings .check-item,.course-quick-settings .compact-select{margin:0!important;border:1px solid rgba(244,239,229,.12)!important;border-radius:12px!important;background:rgba(0,0,0,.18)!important;padding:10px!important;color:#f4efe5!important}
.course-quick-settings .compact-select{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.course-quick-settings .select{min-width:110px;background:#0c0c0c;color:#f4efe5;border-color:rgba(244,239,229,.18)}
.trainer-note.ghost ellipse{fill:#111!important;stroke:#111!important;stroke-width:1.05px!important}
.trainer-note.ghost .tn-x{stroke:#111!important}.trainer-note.ghost .tn-paren{opacity:.9!important}
.tn-accent-mark{stroke:#111!important;stroke-width:2.25px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important;paint-order:stroke;filter:drop-shadow(0 0 0 #fff9ed)}
.trainer-complete-card{min-height:310px;border-radius:18px;background:#fff9ed;display:grid;place-items:center;align-content:center;gap:8px;color:#111;border:1px solid rgba(0,0,0,.12);box-shadow:0 14px 44px rgba(0,0,0,.14)}
.trainer-complete-card .trainer-complete-mark{width:120px;height:120px;border-radius:999px;display:grid;place-items:center;font-size:78px;font-weight:1000;line-height:1;color:#fff;box-shadow:0 16px 38px rgba(0,0,0,.24)}
.trainer-complete-card.pass .trainer-complete-mark{background:linear-gradient(135deg,#13a538,#75df83)}
.trainer-complete-card.fail .trainer-complete-mark{background:linear-gradient(135deg,#9b1111,#ff5959)}
.trainer-complete-card strong{font-size:28px;letter-spacing:-.03em}.trainer-complete-card span{font-size:16px;font-weight:900;color:#555}
.practice-lab[data-view="hero"] .practice-stage-wrap{border-radius:24px!important;border-color:rgba(244,239,229,.28)!important;background:radial-gradient(circle at 50% 0,rgba(255,235,160,.20),transparent 38%),linear-gradient(180deg,#151515,#050505)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 22px 55px rgba(0,0,0,.45)!important}
.practice-lab[data-view="hero"] .practice-stage{height:430px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.015) 42%,rgba(0,0,0,.24)),repeating-linear-gradient(90deg,rgba(244,239,229,.16) 0,rgba(244,239,229,.16) 2px,transparent 2px,transparent calc(100% / 6))!important;perspective:900px}
.practice-lab[data-view="hero"] .practice-hitline{top:330px!important;height:7px!important;background:linear-gradient(90deg,transparent,#f4efe5,transparent)!important;box-shadow:0 0 32px rgba(244,239,229,.8),0 0 0 1px rgba(255,255,255,.25)!important}.practice-lab[data-view="hero"] .practice-hitline:after{content:"HIT";color:#f4efe5;top:12px;font-weight:1000;text-shadow:0 0 14px rgba(244,239,229,.8)}
.practice-lab[data-view="hero"] .practice-lane-labels{background:linear-gradient(180deg,rgba(0,0,0,.65),rgba(0,0,0,.92))!important;border-top-color:rgba(244,239,229,.24)!important}.practice-lab[data-view="hero"] .practice-lane-labels span{font-weight:1000;color:#f4efe5;text-shadow:0 0 12px rgba(244,239,229,.38)}
.practice-lab[data-view="hero"] .practice-note{border-radius:999px!important;height:46px!important;min-width:46px!important;background:radial-gradient(circle at 30% 25%,#fff,#f4efe5 28%,#c9b98f 68%,#62562d)!important;color:#111!important;border:2px solid rgba(255,255,255,.86)!important;box-shadow:0 13px 26px rgba(0,0,0,.48),0 0 26px rgba(244,239,229,.23)!important;display:grid;grid-template-rows:1fr auto;align-content:center}.practice-lab[data-view="hero"] .practice-note strong{font-size:11px!important;line-height:1}.practice-lab[data-view="hero"] .practice-note small{font-size:9px!important;font-weight:1000;opacity:.9}.practice-lab[data-view="hero"] .practice-note .note-velocity{display:none!important}
.practice-lab[data-view="hero"] .practice-note.dyn-p{transform:scale(.82)!important;opacity:.86!important;background:radial-gradient(circle at 30% 25%,#fff,#e7f0ff 30%,#8fb0dd 72%,#334866)!important}.practice-lab[data-view="hero"] .practice-note.dyn-mf{transform:scale(1)!important}.practice-lab[data-view="hero"] .practice-note.dyn-f{transform:scale(1.12)!important;background:radial-gradient(circle at 30% 25%,#fff8cc,#ffd957 35%,#cb8b17 76%,#5b2d05)!important;box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 32px rgba(255,210,74,.45)!important}.practice-lab[data-view="hero"] .practice-note.accent{box-shadow:0 0 0 4px rgba(255,255,255,.42),0 0 34px rgba(255,245,180,.65),0 13px 28px rgba(0,0,0,.5)!important}.practice-lab[data-view="hero"] .practice-note.accent:before{content:">"!important;top:-22px!important;right:auto!important;left:50%!important;transform:translateX(-50%)!important;color:#f4efe5!important;text-shadow:0 0 10px rgba(244,239,229,.9);font-size:24px!important}
.practice-lab[data-view="hero"] .practice-note.hit{background:radial-gradient(circle at 30% 25%,#fff,#b9ffc9 34%,#16a34a 78%,#064e1f)!important;color:#04140a!important}.practice-lab[data-view="hero"] .practice-note.missed{background:radial-gradient(circle at 30% 25%,#ffd2d2,#b91c1c 78%,#450a0a)!important;color:#fff!important;opacity:.62!important}
@media(max-width:860px){.course-quick-settings{grid-template-columns:1fr}.practice-lab[data-view="hero"] .practice-stage{height:360px}.practice-lab[data-view="hero"] .practice-hitline{top:275px!important}}

/* v7.42 course settings polish + notation dynamics */
.course-start-settings{position:relative!important;margin:18px 0 16px!important;border-radius:20px!important}
.course-start-settings:before{content:"⚙";position:absolute;right:22px;top:18px;width:42px;height:42px;border-radius:999px;display:grid;place-items:center;border:1px solid rgba(244,239,229,.28);background:rgba(244,239,229,.08);color:#f4efe5;font-size:22px;box-shadow:0 14px 38px rgba(0,0,0,.22)}
.course-settings-head{padding-right:72px!important}.course-settings-summary span{white-space:nowrap}
.trainer-note.ghost ellipse{fill:#111!important;stroke:#111!important;opacity:.58!important}.trainer-note.ghost .tn-x{opacity:.58!important}.tn-paren{opacity:.9!important}.trainer-note.accent ellipse,.trainer-note.accent .tn-x{stroke-width:2.8px!important}.tn-accent-mark{stroke:#111!important;stroke-width:2.4px!important;fill:none!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:none!important}
.practice-note.accent:before{content:">"!important;position:absolute!important;top:-20px!important;right:auto!important;left:50%!important;transform:translateX(-50%)!important;font-size:25px!important;font-weight:1000!important;color:#111!important}.practice-note.dyn-p{opacity:.78!important}.practice-note.dyn-f{transform:scale(1.08)!important}.practice-note.accent{transform:scale(1.12)!important}
.practice-lab[data-view="hero"] .practice-stage-wrap{border-color:rgba(244,239,229,.24)!important;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 20px 70px rgba(0,0,0,.26)!important}.practice-lab[data-view="hero"] .practice-stage{height:430px!important;background:radial-gradient(ellipse at 50% 110%,rgba(244,239,229,.22),transparent 42%),linear-gradient(180deg,#080808 0%,#151515 48%,#090909 100%)!important;perspective:700px!important}.practice-lab[data-view="hero"] .practice-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(244,239,229,.10) 1px,transparent 2px),linear-gradient(180deg,rgba(244,239,229,.10),transparent 28%,rgba(255,255,255,.06));background-size:calc(100% / 6) 100%,100% 100%;opacity:.72;pointer-events:none}.practice-lab[data-view="hero"] .practice-hitline{top:342px!important;height:5px!important;background:#f4efe5!important;box-shadow:0 0 26px rgba(244,239,229,.64)!important}.practice-lab[data-view="hero"] .practice-hitline:before{content:"";position:absolute;left:0;right:0;top:-18px;height:42px;background:linear-gradient(90deg,rgba(244,239,229,.06),rgba(244,239,229,.18),rgba(244,239,229,.06));filter:blur(10px)}.practice-lab[data-view="hero"] .practice-lane-labels{background:rgba(0,0,0,.70)!important;border-top:1px solid rgba(244,239,229,.26)!important}.practice-lab[data-view="hero"] .practice-note{transition:box-shadow .08s linear,transform .08s linear!important}.practice-lab[data-view="hero"] .practice-note small{letter-spacing:.05em!important}.practice-lab[data-view="hero"] .practice-note.accent:before{content:">"!important;top:-24px!important;color:#fff8cf!important;text-shadow:0 0 12px rgba(255,248,207,.9)!important;transform:translateX(-50%)!important}

/* v7.43 settings collapse + strict dynamics polish */
.course-player-settings.is-collapsed{padding:16px 18px!important;background:linear-gradient(135deg,rgba(18,18,18,.94),rgba(26,26,26,.86))!important;border-color:rgba(244,244,244,.14)!important;box-shadow:none!important}.course-settings-compact{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center}.course-settings-compact h2{margin:6px 0 3px;font-size:22px}.course-settings-compact p{margin:0;color:var(--muted);max-width:720px}.course-settings-toggle{white-space:nowrap}.course-settings-body{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}.course-player-settings.is-collapsed .course-settings-body{display:none}.course-player-settings.is-open{box-shadow:0 18px 60px rgba(0,0,0,.24)}.course-player-settings.needs-choice.is-collapsed{border-color:rgba(244,244,244,.24);box-shadow:none}.course-settings-summary{align-items:center}.tn-accent-mark{font-family:Arial,Helvetica,sans-serif!important;font-size:19px!important;font-weight:900!important;fill:#111!important;stroke:none!important;transform:none!important;paint-order:normal!important}.trainer-note.trainer-lane-kick.accent ellipse,.trainer-note.trainer-lane-kick.accent .tn-x{stroke-width:1.05px!important}.practice-note.lane-kick.accent:before{display:none!important}.practice-note.lane-kick.accent{transform:none!important;box-shadow:0 12px 30px rgba(0,0,0,.32)!important}.practice-note.dyn-p{opacity:.72!important;filter:saturate(.82)}.practice-note.dyn-f{transform:scale(1.13)!important}.practice-note.accent:not(.lane-kick){transform:scale(1.15)!important}@media(max-width:860px){.course-settings-compact{grid-template-columns:1fr}.course-settings-summary{justify-content:flex-start}.course-settings-toggle{width:100%}}

/* v7.44 Studio Wizard MVP */
.studio-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:22px;align-items:start;background:radial-gradient(circle at 90% 0,rgba(255,255,255,.08),transparent 36%),linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.018))}
.studio-hero h1{margin:.35rem 0;font-size:clamp(36px,6vw,72px)}
.studio-flow-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.studio-flow-mini div{border:1px solid var(--line);border-radius:16px;background:rgba(0,0,0,.18);padding:12px;display:grid;gap:4px}
.studio-flow-mini strong{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:#f4f1ea;color:#090909;font-weight:1000}.studio-flow-mini span{font-weight:1000;color:#fff}.studio-flow-mini small{color:var(--muted);line-height:1.35}
.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;margin-top:16px}.studio-panel h2{margin-top:0}.studio-device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.studio-midi-list{min-height:42px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.18);padding:8px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;color:var(--muted)}
.studio-stage{position:relative;min-height:340px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:linear-gradient(180deg,#0e0e0e,#050505);overflow:hidden;display:grid;place-items:center}.studio-stage video{width:100%;height:100%;min-height:340px;object-fit:cover;background:#050505}.studio-overlay{position:absolute;left:16px;right:16px;bottom:16px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(0,0,0,.62);backdrop-filter:blur(10px);padding:12px 14px;display:flex;justify-content:space-between;gap:12px;align-items:center}.studio-overlay strong{font-size:22px;color:#f4f1ea}.studio-overlay span{color:#d7d0c4;font-size:13px;text-align:right}.studio-transport{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.studio-hotkeys{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px;margin:10px 0}.studio-hotkeys kbd{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.08);color:#fff;padding:3px 7px;font-weight:900}.studio-review-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;align-items:start}.studio-review-video{width:100%;max-height:360px;border-radius:18px;border:1px solid var(--line);background:#050505}.badge.good{background:rgba(34,197,94,.16);border-color:rgba(34,197,94,.45);color:#bbf7d0}.badge.warn{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.45);color:#fde68a}.btn[disabled]{opacity:.45;pointer-events:none}
@media(max-width:980px){.studio-hero,.studio-grid,.studio-review-grid{grid-template-columns:1fr}.studio-device-grid,.studio-flow-mini{grid-template-columns:1fr}.studio-stage,.studio-stage video{min-height:260px}}

/* v7.45 Studio Builder polish */
.studio-builder-hero{border-color:rgba(244,239,229,.18)!important;box-shadow:0 22px 70px rgba(0,0,0,.24)}
.studio-builder-grid{align-items:start}.studio-upload-box{border:1px dashed rgba(244,239,229,.24);border-radius:18px;background:rgba(244,239,229,.045);padding:12px;margin-bottom:12px}.studio-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.studio-checks .check-item{margin:0!important;border-radius:14px;background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.10)!important}.studio-section-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.studio-builder-grid .studio-panel{min-height:0}.studio-builder-grid .rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-builder-grid .studio-review-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
@media(max-width:980px){.studio-checks,.studio-builder-grid .rec-grid,.studio-builder-grid .studio-review-grid{grid-template-columns:1fr}}

/* v7.46 Studio Block Builder */
.studio-auto-note{border:1px solid rgba(244,239,229,.16);border-radius:14px;background:rgba(244,239,229,.055);padding:12px;display:grid;gap:4px;color:#f4f1ea}
.studio-auto-note span{color:var(--muted);font-size:13px;line-height:1.35}
.studio-timeline-editor{border:1px solid rgba(244,239,229,.15);border-radius:18px;background:rgba(0,0,0,.20);padding:14px;margin-bottom:12px}
.studio-timeline-track{position:relative;height:34px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.studio-timeline-active{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,rgba(244,241,234,.70),rgba(244,241,234,.95));box-shadow:0 0 18px rgba(244,241,234,.20)}
.studio-timeline-muted{position:absolute;top:0;bottom:0;background:rgba(0,0,0,.36)}
.studio-trim-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.studio-trim-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.studio-trim-range{width:100%;accent-color:#f4f1ea}
.lesson-flow-block{scroll-margin-top:90px}
.lesson-continue-prompt{margin:24px auto;max-width:720px;border:1px solid rgba(34,197,94,.35);background:linear-gradient(135deg,rgba(34,197,94,.16),rgba(255,255,255,.04))}
.palette button:first-child{border-color:rgba(244,241,234,.28);background:linear-gradient(135deg,rgba(244,241,234,.15),rgba(255,255,255,.04))}
@media(max-width:760px){.studio-trim-controls{grid-template-columns:1fr}}

/* v7.47 Studio Lesson Blocks */
.video-editor-asset{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(0,0,0,.26))}
.video-block-trim{border:1px solid rgba(244,239,229,.15);border-radius:18px;background:rgba(0,0,0,.22);padding:14px;margin-top:12px}
.trim-handle{position:absolute;top:-5px;width:4px;height:44px;border-radius:999px;background:#f4f1ea;box-shadow:0 0 0 4px rgba(244,241,234,.14),0 0 18px rgba(244,241,234,.3);transform:translateX(-50%)}
.trim-start:after,.trim-end:after{position:absolute;top:46px;transform:translateX(-42%);font-size:10px;font-weight:1000;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.trim-start:after{content:"start"}.trim-end:after{content:"konec"}
.lesson-video-wrap{position:relative;overflow:hidden;background:#000;--video-fade-opacity:1}.lesson-video-wrap .video-preview{display:block}.lesson-video-overlay{position:absolute;left:18px;top:18px;z-index:2;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.62);backdrop-filter:blur(9px);border-radius:16px;padding:10px 12px;display:grid;gap:3px;max-width:min(360px,calc(100% - 36px));pointer-events:none}.lesson-video-overlay strong{font-size:15px;color:#fff}.lesson-video-overlay span{font-size:12px;color:#d9d1c4;font-weight:800;letter-spacing:.04em}.studio-overlay{display:grid!important;grid-template-columns:auto 1fr;align-items:center}.studio-overlay span{text-align:right}.studio-overlay em{grid-column:1 / -1;color:#f4f1ea;font-style:normal;font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.92}.studio-transport .btn:first-child{box-shadow:0 0 0 1px rgba(244,241,234,.16),0 18px 46px rgba(0,0,0,.22)}
@media(max-width:760px){.lesson-video-overlay{left:10px;right:10px;top:10px;max-width:none}.studio-overlay{grid-template-columns:1fr}.studio-overlay span{text-align:left}.video-block-trim .studio-trim-controls{grid-template-columns:1fr}}
/* v7.48 continuous studio exercise dialog */
.studio-modal{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}
.studio-modal-card{width:min(760px,96vw);box-shadow:0 30px 90px rgba(0,0,0,.42);border-color:rgba(244,239,229,.24)!important}
.studio-overlay em{color:#f3d08a;font-style:normal;font-weight:800;font-size:13px;white-space:nowrap}
.studio-stage .studio-overlay{align-items:flex-end}.studio-stage .studio-overlay strong{min-width:110px}.studio-stage .studio-overlay span{flex:1}

/* v7.50 Studio upload/process visibility */
.studio-save-state{border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin:12px 0;background:rgba(255,255,255,.75);display:grid;gap:5px}
.studio-save-state strong{font-size:.98rem;color:var(--ink)}
.studio-save-state span{font-size:.88rem;color:var(--muted)}
.studio-save-state.ready{border-color:rgba(30,143,83,.35);background:rgba(30,143,83,.08)}
.studio-save-state.busy,.studio-save-state.live{border-color:rgba(245,158,11,.38);background:rgba(245,158,11,.1)}
.studio-save-state.error{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.08)}
.studio-upload-progress{height:10px;border-radius:999px;background:rgba(15,23,42,.1);overflow:hidden;margin:4px 0}
.studio-upload-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(22,163,74,.85),rgba(34,197,94,.95));transition:width .18s ease}

/* v7.51 Studio Quantize + Flow Finish Fix */
.lesson-finish-card{min-height:260px;border-radius:24px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(255,255,255,.12),transparent 42%),linear-gradient(135deg,rgba(20,20,20,.94),rgba(8,8,8,.96));border:1px solid rgba(244,239,229,.18);box-shadow:0 24px 80px rgba(0,0,0,.28);padding:28px;color:#f4efe5}.lesson-finish-card .trainer-complete-mark{width:116px;height:116px;border-radius:999px;display:grid;place-items:center;font-size:74px;font-weight:1000;line-height:1;color:#06130a;box-shadow:0 16px 44px rgba(0,0,0,.32)}.lesson-finish-card.pass .trainer-complete-mark{background:linear-gradient(135deg,#86efac,#16a34a)}.lesson-finish-card.fail .trainer-complete-mark{background:linear-gradient(135deg,#fecaca,#dc2626);color:#fff}.lesson-finish-card.pending .trainer-complete-mark{background:linear-gradient(135deg,#fde68a,#f59e0b);color:#111}.lesson-finish-card strong{font-size:clamp(25px,4vw,42px);letter-spacing:-.035em}.lesson-finish-card span{font-size:18px;font-weight:900;color:#d9d1c4}.lesson-badge-award{border:1px solid rgba(244,239,229,.22);background:rgba(244,239,229,.09);border-radius:999px;padding:9px 14px;font-weight:1000;color:#fff3c4}.studio-modal-card .rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-stage.is-exercise-recording{outline:2px solid rgba(34,197,94,.42);box-shadow:0 0 0 6px rgba(34,197,94,.08)}.studio-overlay strong{letter-spacing:.04em}.tn-cursor{stroke-width:3.2px!important;filter:drop-shadow(0 0 5px rgba(220,38,38,.34))}.tn-beat-grid{opacity:.42}.tn-beat-grid.major{opacity:.62}.trainer-notation-note{font-size:12px;line-height:1.35;color:var(--muted)}@media(max-width:760px){.studio-modal-card .rec-grid{grid-template-columns:1fr}.lesson-finish-card{min-height:220px}}

/* v7.52 arcade hit-zone + finish flow polish */
.practice-stage{overflow:hidden}
.practice-hit-zones{position:absolute;left:0;right:0;top:282px;height:76px;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:0 10px;z-index:2;pointer-events:none}
.practice-hit-zone{align-self:center;height:58px;border-radius:18px;border:1px solid rgba(244,239,229,.24);background:rgba(244,239,229,.055);display:grid;place-items:center;color:rgba(244,239,229,.56);font-size:11px;font-weight:1000;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035);transition:transform .11s ease,background .11s ease,border-color .11s ease,box-shadow .11s ease,color .11s ease}
.practice-hit-zone b{font-size:10px;opacity:.82}.practice-hit-zone.active{transform:scale(1.08);background:rgba(157,226,178,.24);border-color:rgba(157,226,178,.9);color:#dfffe8;box-shadow:0 0 30px rgba(157,226,178,.44),inset 0 0 0 1px rgba(255,255,255,.22)}.practice-hit-zone.bad{transform:scale(.98);background:rgba(255,120,120,.22);border-color:rgba(255,120,120,.8);color:#ffd6d6;box-shadow:0 0 26px rgba(255,80,80,.35)}
.practice-note{transform-origin:center center;transition:opacity .08s linear,box-shadow .08s linear,filter .08s linear!important}.practice-note.is-close{filter:saturate(1.18) brightness(1.08);box-shadow:0 16px 44px rgba(244,239,229,.34),0 0 0 2px rgba(244,239,229,.22)}
.practice-lab[data-view="hero"] .practice-hit-zones{top:303px;height:92px;gap:10px;padding:0 14px;z-index:3}.practice-lab[data-view="hero"] .practice-hit-zone{height:76px;border-radius:999px;background:radial-gradient(circle at 50% 38%,rgba(244,239,229,.16),rgba(244,239,229,.035) 64%,rgba(0,0,0,.2));border-color:rgba(244,239,229,.28);box-shadow:inset 0 0 18px rgba(244,239,229,.055),0 0 0 1px rgba(255,255,255,.03);color:#f4efe5}.practice-lab[data-view="hero"] .practice-hit-zone:after{content:"";position:absolute;width:42px;height:42px;border-radius:999px;border:1px solid rgba(244,239,229,.22);box-shadow:0 0 22px rgba(244,239,229,.13)}.practice-lab[data-view="hero"] .practice-hit-zone.active{background:radial-gradient(circle at 50% 40%,rgba(157,226,178,.72),rgba(46,160,80,.30) 58%,rgba(0,0,0,.18));box-shadow:0 0 36px rgba(157,226,178,.58),inset 0 0 18px rgba(255,255,255,.15)}.practice-lab[data-view="hero"] .practice-hit-zone.bad{background:radial-gradient(circle at 50% 40%,rgba(255,120,120,.70),rgba(168,30,30,.32) 60%,rgba(0,0,0,.18));box-shadow:0 0 34px rgba(255,85,85,.45)}.practice-lab[data-view="hero"] .practice-note{z-index:6}.practice-lab[data-view="hero"] .practice-note.is-close{box-shadow:0 0 0 3px rgba(244,239,229,.34),0 0 42px rgba(244,239,229,.50),0 16px 34px rgba(0,0,0,.50)!important}
.trainer-notation-note strong{color:#f4efe5}
@media(max-width:860px){.practice-hit-zones{top:238px;height:64px}.practice-hit-zone{height:48px;border-radius:14px}.practice-lab[data-view="hero"] .practice-hit-zones{top:236px;height:76px}.practice-lab[data-view="hero"] .practice-hit-zone{height:58px}}
.practice-hit-zone{position:relative}

/* v7.53 Studio preflight + arcade drop polish */
.studio-stage{isolation:isolate}
.studio-stage video,.lesson-video-asset .video-preview{transition:filter .18s ease,opacity .04s linear}.lesson-video-wrap .video-preview{opacity:var(--video-fade-opacity,1)}
.lesson-video-fade-mask{position:absolute;inset:0;background:#000;opacity:calc(1 - var(--video-fade-opacity,1));transition:opacity .04s linear;pointer-events:none;z-index:4}.lesson-video-wrap .lesson-video-overlay{z-index:3}
.studio-look-auto video,.studio-look-auto .video-preview{filter:contrast(1.06) saturate(1.08) brightness(1.04)}
.studio-look-warm video,.studio-look-warm .video-preview{filter:contrast(1.04) saturate(1.12) brightness(1.03) sepia(.055)}
.studio-look-neutral video,.studio-look-neutral .video-preview{filter:contrast(1.02) saturate(1.02) brightness(1.01)}
.studio-countdown{position:absolute;inset:0;z-index:6;display:grid;place-items:center;align-content:center;gap:8px;background:radial-gradient(circle at 50% 45%,rgba(0,0,0,.10),rgba(0,0,0,.62));backdrop-filter:blur(2px);pointer-events:none;text-align:center;color:#fff}
.studio-countdown strong{font-size:clamp(74px,15vw,170px);font-weight:1000;line-height:.86;letter-spacing:-.08em;text-shadow:0 22px 70px rgba(0,0,0,.55),0 0 36px rgba(244,239,229,.32);animation:studioCountPop .62s cubic-bezier(.2,.9,.2,1)}
.studio-countdown span{font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:1000;color:#f4efe5;background:rgba(0,0,0,.48);border:1px solid rgba(244,239,229,.18);border-radius:999px;padding:8px 12px}
@keyframes studioCountPop{0%{transform:scale(.72);opacity:0}38%{transform:scale(1.06);opacity:1}100%{transform:scale(1);opacity:1}}
.studio-stage.is-preroll{outline:2px solid rgba(244,239,229,.48);box-shadow:0 0 0 7px rgba(244,239,229,.08),0 24px 80px rgba(0,0,0,.35)}
.studio-panel .check-item{align-self:end;min-height:50px}
.lesson-video-asset:has(video[data-auto-fade]:not([data-auto-fade="0"])) .lesson-video-wrap:before,.lesson-video-asset:has(video[data-auto-fade]:not([data-auto-fade="0"])) .lesson-video-wrap:after{content:"";position:absolute;left:0;right:0;height:14px;z-index:1;pointer-events:none}.lesson-video-asset .lesson-video-wrap:before{top:0;background:linear-gradient(180deg,rgba(0,0,0,.34),transparent)}.lesson-video-asset .lesson-video-wrap:after{bottom:0;background:linear-gradient(0deg,rgba(0,0,0,.34),transparent)}
.practice-lab[data-view="hero"] .practice-stage{height:500px!important;background:radial-gradient(ellipse at 50% 112%,rgba(244,239,229,.24),transparent 42%),linear-gradient(180deg,#070707 0%,#151515 50%,#080808 100%)!important;overflow:hidden!important}
.practice-lab[data-view="hero"] .practice-stage:before{opacity:.82!important;background-size:calc(100% / 6) 100%,100% 100%!important;transform:perspective(660px) rotateX(9deg);transform-origin:50% 100%}
.practice-lab[data-view="hero"] .practice-hitline{top:392px!important;height:6px!important;border-radius:999px;background:#f4efe5!important;box-shadow:0 0 30px rgba(244,239,229,.72),0 0 0 1px rgba(255,255,255,.18)!important}
.practice-lab[data-view="hero"] .practice-hit-zones{top:350px!important;height:112px!important;padding:0 15px!important}
.practice-lab[data-view="hero"] .practice-hit-zone{height:88px!important;transform:translateZ(0);transition:transform .12s ease,box-shadow .12s ease,background .12s ease!important}
.practice-lab[data-view="hero"] .practice-hit-zone.active{transform:scale(1.08);}
.practice-lab[data-view="hero"] .practice-note{border-radius:20px!important;min-height:66px!important;will-change:transform,opacity;box-shadow:0 18px 42px rgba(0,0,0,.46),inset 0 1px 0 rgba(255,255,255,.18)!important;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.05)),var(--card)!important}
.practice-lab[data-view="hero"] .practice-note:after{content:"";position:absolute;inset:-10px;border-radius:24px;border:1px solid rgba(244,239,229,calc(.05 + var(--approach,0)*.32));box-shadow:0 0 calc(10px + var(--approach,0)*28px) rgba(244,239,229,calc(.08 + var(--approach,0)*.32));opacity:calc(.28 + var(--approach,0)*.72);pointer-events:none}
.practice-lab[data-view="hero"] .practice-note.is-close{filter:saturate(1.25) brightness(1.14)!important;box-shadow:0 0 0 3px rgba(244,239,229,.38),0 0 48px rgba(244,239,229,.58),0 18px 44px rgba(0,0,0,.54)!important}
.practice-lab[data-view="hero"] .practice-note.dyn-p{opacity:.78!important;transform-origin:center center!important}.practice-lab[data-view="hero"] .practice-note.dyn-f strong{font-size:18px}.practice-lab[data-view="hero"] .practice-note.accent:not(.lane-kick):before{content: ">"!important;top:-26px!important;color:#fff6bf!important;text-shadow:0 0 15px rgba(255,246,191,.95)!important}

/* v7.55 Studio Profiles + Whiteboard */
.lesson-flow-rail{position:relative;margin-top:13px;display:grid;grid-template-columns:repeat(auto-fit,minmax(24px,1fr));gap:7px}
.lesson-flow-rail:before{content:"";position:absolute;left:10px;right:10px;top:50%;height:3px;border-radius:999px;background:rgba(244,239,229,.14);transform:translateY(-50%)}
.lesson-flow-rail:after{content:"";position:absolute;left:10px;top:50%;height:3px;width:var(--lesson-flow-pct,0%);max-width:calc(100% - 20px);border-radius:999px;background:linear-gradient(90deg,#86efac,#f4efe5);transform:translateY(-50%);transition:width .38s cubic-bezier(.2,.8,.2,1)}
.lesson-flow-rail span{position:relative;z-index:1;display:grid;place-items:center}.lesson-flow-rail i{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;border:1px solid rgba(244,239,229,.22);background:#101010;color:#f4efe5;font-style:normal;font-size:12px;font-weight:1000;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.lesson-block-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.lesson-block-head h2{margin:.16rem 0 0}.lesson-block-step{font-size:12px;font-weight:1000;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lesson-block-check{width:42px;height:42px;border-radius:999px;border:1px solid rgba(244,239,229,.22);display:grid;place-items:center;color:transparent;background:rgba(244,239,229,.04);flex:0 0 auto;transition:all .22s ease}.lesson-block-check span{font-size:24px;font-weight:1000;line-height:1}
.lesson-flow-block{position:relative;transition:transform .28s ease,border-color .28s ease,background .28s ease}.lesson-flow-block.is-complete{border-color:rgba(134,239,172,.38);background:linear-gradient(180deg,rgba(34,197,94,.08),rgba(255,255,255,.025))}.lesson-flow-block.is-complete .lesson-block-check{background:linear-gradient(135deg,#86efac,#16a34a);color:#06130a;border-color:rgba(134,239,172,.75);box-shadow:0 0 32px rgba(34,197,94,.25)}.lesson-flow-block.just-completed{animation:lessonCheckSlide .72s cubic-bezier(.2,.9,.2,1)}
@keyframes lessonCheckSlide{0%{transform:translateY(0)}35%{transform:translateY(8px);box-shadow:0 0 0 rgba(34,197,94,0)}100%{transform:translateY(0)}}
.studio-stage{min-height:380px;background:#050505;display:grid;place-items:center;overflow:hidden;border-radius:24px;border:1px solid rgba(244,239,229,.16)}.studio-stage video{width:100%;height:100%;min-height:380px;object-fit:cover;background:#080808}.studio-stage:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 -90px 120px rgba(0,0,0,.28)}
.studio-rec-hud{position:absolute;left:18px;top:18px;z-index:5;display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:999px;background:rgba(0,0,0,.64);border:1px solid rgba(244,239,229,.18);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.32);backdrop-filter:blur(8px)}.studio-rec-hud strong{font-size:12px;letter-spacing:.12em;text-transform:uppercase}.studio-rec-hud small{font-weight:900;color:#d9d1c4}.rec-dot{width:10px;height:10px;border-radius:999px;background:#7d7d7d;box-shadow:0 0 0 0 rgba(255,255,255,0)}.studio-stage.is-recording .rec-dot{background:#ef4444;animation:recPulse 1.05s infinite;box-shadow:0 0 18px rgba(239,68,68,.75)}
@keyframes recPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.72);opacity:.55}}
.studio-stage.is-recording{outline:2px solid rgba(239,68,68,.32);box-shadow:0 0 0 6px rgba(239,68,68,.07),0 24px 80px rgba(0,0,0,.35)}.studio-stage.is-exercise-recording .studio-rec-hud{border-color:rgba(134,239,172,.5);box-shadow:0 0 34px rgba(34,197,94,.2)}
.practice-lab[data-view="hero"] .practice-stage{height:540px!important;background:radial-gradient(ellipse at 50% 110%,rgba(244,239,229,.22),transparent 46%),linear-gradient(180deg,#050505 0%,#101010 55%,#070707 100%)!important;overflow:hidden!important}.practice-lab[data-view="hero"] .practice-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 20%,transparent 68%,rgba(244,239,229,.08));opacity:.7}.practice-lab[data-view="hero"] .practice-hitline{top:420px!important}.practice-lab[data-view="hero"] .practice-hit-zones{top:374px!important}.practice-lab[data-view="hero"] .practice-note{transition:opacity .06s linear,filter .06s linear!important;transform-origin:center center!important}.practice-lab[data-view="hero"] .practice-note strong{font-size:12px!important}.practice-lab[data-view="hero"] .practice-note small{font-size:9px!important}.practice-lab[data-view="hero"] .practice-note.is-close{animation:arcadeReadyPulse .34s ease-out infinite alternate}@keyframes arcadeReadyPulse{from{filter:saturate(1.1) brightness(1.04)}to{filter:saturate(1.38) brightness(1.18)}}
@media(max-width:860px){.studio-stage,.studio-stage video{min-height:300px}.lesson-block-head{align-items:center}.practice-lab[data-view="hero"] .practice-stage{height:410px!important}.practice-lab[data-view="hero"] .practice-hitline{top:318px!important}.practice-lab[data-view="hero"] .practice-hit-zones{top:278px!important}}

/* v7.55 Studio Profiles + Whiteboard */
.studio-profile-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 8px}.studio-profile-switch button{border:1px solid var(--line);background:#101010;color:var(--white);border-radius:16px;padding:12px;text-align:left;font-weight:1000;text-transform:uppercase;letter-spacing:.05em}.studio-profile-switch button small{display:block;margin-top:5px;color:var(--muted);font-weight:700;text-transform:none;letter-spacing:0}.studio-profile-switch button.active{border-color:rgba(134,239,172,.5);background:linear-gradient(135deg,rgba(34,197,94,.14),rgba(255,255,255,.04));box-shadow:0 0 0 4px rgba(34,197,94,.06)}.studio-profile-hint{color:#d9d1c4;font-size:13px;line-height:1.45;margin:4px 0 12px}.studio-whiteboard-layer{position:absolute;inset:0;z-index:4;pointer-events:none}.studio-stage.whiteboard-on .studio-whiteboard-layer{pointer-events:auto}.studio-whiteboard-layer canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;background:rgba(5,5,5,.08)}.studio-whiteboard-toolbar{position:absolute;right:16px;top:16px;z-index:8;display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:min(92%,560px);padding:8px 10px;border:1px solid rgba(244,239,229,.2);border-radius:999px;background:rgba(0,0,0,.64);backdrop-filter:blur(10px);color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.32)}.studio-whiteboard-toolbar strong{font-size:12px;letter-spacing:.1em;text-transform:uppercase}.studio-whiteboard-toolbar button{border:1px solid rgba(244,239,229,.2);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900;cursor:pointer}.studio-whiteboard-toolbar button:hover{border-color:#f4efe5}.whiteboard-editor-block{display:grid;gap:12px}.whiteboard-preview,.lesson-whiteboard-image{border:1px solid var(--line);border-radius:18px;background:#050505;overflow:hidden}.whiteboard-preview img,.lesson-whiteboard-image img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;background:#070707}.whiteboard-placeholder{border:1px dashed var(--line2);border-radius:18px;background:rgba(255,255,255,.035);color:var(--muted);padding:18px}.lesson-whiteboard-block{display:grid;gap:12px}.lesson-whiteboard-block p{color:#d9d1c4;margin:0}.lesson-flow-block[data-flow-type="whiteboard"]{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(0,0,0,.18))}
@media(max-width:780px){.studio-profile-switch{grid-template-columns:1fr}.studio-whiteboard-toolbar{left:12px;right:12px;top:auto;bottom:12px;border-radius:18px}.studio-whiteboard-toolbar button{font-size:11px;padding:5px 7px}}

/* v7.56 Studio Whiteboard Capture + Cursor Fix */
.studio-whiteboard-fab{position:absolute;left:16px;top:16px;z-index:11;border:1px solid rgba(244,239,229,.24);background:rgba(0,0,0,.68);backdrop-filter:blur(12px);color:#f4efe5;border-radius:999px;padding:9px 13px;font-weight:1000;letter-spacing:.03em;box-shadow:0 12px 34px rgba(0,0,0,.34);cursor:pointer}
.studio-whiteboard-fab:hover{border-color:#f4efe5;background:rgba(244,239,229,.12)}
.studio-whiteboard-fab.active{background:linear-gradient(135deg,rgba(244,239,229,.96),rgba(201,185,143,.95));color:#111;border-color:rgba(255,255,255,.5)}
.studio-stage.whiteboard-on:after{content:'TABULE SE NAHRÁVÁ DO VIDEA';position:absolute;left:16px;bottom:16px;z-index:10;background:rgba(0,0,0,.68);color:#f4efe5;border:1px solid rgba(244,239,229,.22);border-radius:999px;padding:7px 11px;font-size:11px;font-weight:1000;letter-spacing:.08em;box-shadow:0 10px 28px rgba(0,0,0,.3)}
.studio-stage.whiteboard-on .studio-whiteboard-layer canvas{background:rgba(0,0,0,.03)}
.studio-stage.whiteboard-on .studio-rec-hud{right:16px;left:auto}
.studio-whiteboard-toolbar{top:60px!important;right:16px!important;border-radius:18px!important}
.trainer-notation-note{font-weight:700}

/* v7.58 AI text assistant */
.ai-assist-panel{margin-top:14px;border:1px solid rgba(148,163,184,.28);background:linear-gradient(180deg,rgba(15,23,42,.04),rgba(15,23,42,.02));border-radius:18px;padding:14px;box-shadow:0 12px 32px rgba(15,23,42,.06)}
.ai-assist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ai-assist-head strong{display:block}.ai-assist-head span:not(.badge){display:block;color:var(--muted);font-size:.86rem;margin-top:2px}.ai-assist-controls{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:10px;align-items:end}.ai-assist-controls .label{margin:0}.ai-run-btn{white-space:nowrap}.ai-assist-result{margin-top:12px;border-radius:14px;background:rgba(255,255,255,.62);border:1px solid rgba(148,163,184,.24);padding:12px;min-height:42px}.ai-assist-result.muted{color:var(--muted)}.ai-preview-text{min-height:150px}.ai-transcript-box{min-height:220px}.quiz-json{min-height:190px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.88rem}.quiz-preview-list{display:grid;gap:10px;margin-top:10px}.quiz-preview-item,.lesson-quiz-question{border:1px solid rgba(148,163,184,.24);border-radius:16px;padding:12px;background:rgba(255,255,255,.74)}.quiz-preview-item ol{margin:8px 0 0 22px}.quiz-preview-item li.is-answer{font-weight:800;color:var(--good,#15803d)}.lesson-quiz-block{display:grid;gap:14px}.lesson-quiz-options{display:grid;gap:8px;margin-top:10px}.quiz-option{text-align:left;border:1px solid rgba(148,163,184,.35);background:white;border-radius:14px;padding:10px 12px;cursor:pointer;transition:.15s transform,.15s border,.15s background}.quiz-option:hover{transform:translateY(-1px);border-color:rgba(59,130,246,.7)}.quiz-option.correct{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.75);font-weight:800}.quiz-option.wrong{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.75);font-weight:800}.quiz-explain{color:var(--muted);margin:10px 0 0}@media(max-width:980px){.ai-assist-controls{grid-template-columns:1fr}.ai-run-btn{width:100%}}

/* v7.59 AI lesson builder */
.ai-source-note{display:flex;flex-direction:column;gap:3px;margin:0 0 10px;border:1px solid rgba(59,130,246,.22);background:linear-gradient(135deg,rgba(59,130,246,.10),rgba(34,197,94,.06));border-radius:16px;padding:12px;color:var(--soft)}
.ai-source-note span{color:var(--muted);font-size:.92rem}.ai-lesson-builder-panel{border-color:rgba(59,130,246,.28);background:linear-gradient(180deg,rgba(59,130,246,.08),rgba(255,255,255,.62))}.ai-builder-callout{border-radius:14px;padding:10px 12px;background:rgba(15,23,42,.06);color:var(--soft);margin-bottom:12px}.ai-generated-blocks{display:grid;gap:10px;margin-top:12px}.ai-generated-block{border:1px solid rgba(148,163,184,.26);background:rgba(255,255,255,.76);border-radius:16px;padding:12px;display:grid;gap:5px}.ai-generated-block strong{font-size:1rem}.ai-generated-block p{margin:0;color:var(--muted);font-size:.92rem}.ai-lesson-preview>strong{font-size:1.05rem}.lesson-article h3,.lesson-article h4,.lesson-article h5{color:var(--ink);line-height:1.25;margin:1.1em 0 .35em}.lesson-article h3{font-size:1.45rem}.lesson-article h4{font-size:1.2rem}.lesson-article h5{font-size:1.05rem}.lesson-article p{margin:.55em 0}.lesson-article ul{margin:.65em 0 .9em 1.35em;color:var(--soft)}.lesson-code{background:#0f172a;color:#e5e7eb;border-radius:16px;padding:14px;overflow:auto;font-size:.92rem;line-height:1.55;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}

/* v7.60 – lesson creator source form */
.lesson-builder-source{border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.72);box-shadow:0 10px 28px rgba(15,23,42,.04);display:grid;gap:12px}
.lesson-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.compact-textarea{min-height:88px}
.lesson-builder-teaching{min-height:260px;font-size:15px;line-height:1.55}
.lesson-builder-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px dashed var(--line);padding-top:10px}
.lesson-builder-tools .bad{color:#b91c1c;font-weight:700}
.ai-lesson-builder-panel .ai-assist-head strong{font-size:1.05rem}
.ai-builder-callout{background:linear-gradient(135deg,rgba(59,130,246,.08),rgba(34,197,94,.08));border:1px solid rgba(37,99,235,.12);border-radius:14px;padding:10px 12px;color:var(--text)}
@media(max-width:760px){.lesson-builder-grid{grid-template-columns:1fr}.lesson-builder-teaching{min-height:220px}}


/* v7.62 lesson builder polish + media transcript */
.lesson-assets-box{border:1px dashed rgba(59,130,246,.28);border-radius:18px;padding:14px;background:rgba(59,130,246,.045);display:grid;gap:10px}
.lesson-asset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:8px}
.lesson-asset-card{position:relative;border:1px solid rgba(148,163,184,.28);background:rgba(255,255,255,.78);border-radius:16px;padding:10px;display:grid;gap:8px;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.lesson-asset-card img,.lesson-image-block img,.quiz-image img{width:100%;max-height:280px;object-fit:contain;border-radius:13px;border:1px solid rgba(148,163,184,.22);background:#fff}
.lesson-asset-card strong{font-size:.9rem;line-height:1.25;word-break:break-word}.lesson-asset-ref{position:absolute;top:8px;left:8px;border-radius:999px;background:#111827;color:white;font-weight:900;font-size:.76rem;padding:4px 8px;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.asset-note{min-height:72px;font-size:.86rem}.lesson-image-block{display:grid;gap:14px}.lesson-image-block figure{margin:0;border:1px solid rgba(148,163,184,.24);border-radius:20px;background:rgba(255,255,255,.78);padding:14px}.lesson-image-block figcaption{margin-top:9px;color:var(--muted);font-size:.94rem}.quiz-image{margin:10px 0}.quiz-image img{max-height:220px}
.lesson-builder-transcribe{border:1px dashed rgba(37,99,235,.22);border-radius:16px;padding:12px;background:linear-gradient(180deg,rgba(59,130,246,.05),rgba(255,255,255,.78));display:grid;gap:8px}
.ai-builder-callout.soft{background:rgba(15,23,42,.045);border-color:rgba(148,163,184,.22);margin-bottom:0}
.file-btn{position:relative;overflow:hidden;cursor:pointer}
.file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.ai-generated-block .lesson-article{margin-top:6px;padding:10px 12px;border-radius:14px;background:rgba(248,250,252,.9);border:1px solid rgba(148,163,184,.18)}
.ai-generated-block .lesson-article h3,.ai-generated-block .lesson-article h4{margin-top:.45em}

/* v7.63 block flow + narration polish */
.block-flow-settings{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(20,24,31,.45)}
.block-flow-settings summary{cursor:pointer;font-weight:700;color:var(--text)}
.text-narration-box,.lesson-narration-player{margin-top:12px;padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.025))}
.text-narration-box .lesson-builder-tools{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.narration-list{display:grid;gap:8px;margin-top:10px}.narration-list audio{width:100%;margin-top:6px}.lesson-narration-player{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:16px 0}.lesson-narration-player div{display:flex;flex-direction:column;gap:3px}.lesson-narration-player span{color:var(--muted);font-size:.9rem}.lesson-narration-player audio{min-width:260px;max-width:100%}.lesson-narration-player.is-muted{opacity:.62}.lesson-manual-continue{display:flex;justify-content:flex-end;margin-top:16px}.lesson-flow-block.is-complete .lesson-manual-continue{opacity:.55}
@media(max-width:720px){.lesson-narration-player{align-items:stretch;flex-direction:column}.lesson-narration-player audio{width:100%;min-width:0}.lesson-manual-continue{justify-content:stretch}.lesson-manual-continue .btn{width:100%}}

/* v7.64 Chapters / Course Outline */
.chapter-admin-list{display:grid;gap:14px;margin-top:12px}
.chapter-admin-group{border:1px solid rgba(244,239,229,.12);border-radius:18px;background:rgba(255,255,255,.025);padding:12px;display:grid;gap:10px}
.chapter-admin-head,.course-chapter-head{display:flex;align-items:center;gap:12px}.chapter-admin-head h3,.course-chapter-head h3{margin:0}.chapter-admin-head p,.course-chapter-head p{margin:3px 0 0;color:var(--muted);font-size:.9rem}.chapter-index,.course-chapter-head span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:linear-gradient(135deg,rgba(244,239,229,.16),rgba(255,255,255,.04));border:1px solid rgba(244,239,229,.18);font-weight:1000}.lesson-row-outline{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.lesson-row-outline label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.compact-input{min-height:32px;padding:7px 9px;border-radius:10px;font-size:.86rem}.order-input{width:78px}.course-chapter-outline{display:grid;gap:14px;margin-top:12px}.course-chapter-card{border:1px solid rgba(244,239,229,.12);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.018));padding:14px}.course-chapter-card .course-lessons{margin-top:12px}.lesson-course-outline{margin:16px 0;padding:16px;border:1px solid rgba(244,239,229,.12);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.02))}.mini-chapter{margin-top:12px}.mini-chapter h3{margin:0 0 8px;font-size:1rem}.mini-chapter>div{display:flex;flex-wrap:wrap;gap:8px}.mini-lesson{border:1px solid rgba(244,239,229,.14);background:#101010;color:var(--white);border-radius:999px;padding:8px 12px;cursor:pointer;font-weight:850}.mini-lesson span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;margin-right:7px;background:rgba(244,239,229,.1);font-size:.76rem}.mini-lesson.active{border-color:rgba(134,239,172,.65);background:linear-gradient(135deg,rgba(34,197,94,.18),rgba(255,255,255,.05));box-shadow:0 0 0 4px rgba(34,197,94,.06)}
@media(max-width:760px){.chapter-admin-head,.course-chapter-head{align-items:flex-start}.lesson-row-outline{display:grid}.mini-chapter>div{display:grid}.mini-lesson{text-align:left;border-radius:14px}}

/* v7.65 lesson builder wizard */
.palette .lesson-builder-entry{grid-column:span 2;border-color:var(--white);background:linear-gradient(135deg,#1f1f1f,#0b0b0b)}
.lesson-builder-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 2px}
.lesson-builder-tab{border:1px solid var(--line2);background:#0b0b0b;color:var(--soft);border-radius:var(--radius);padding:12px 10px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.lesson-builder-tab.active{background:var(--white);border-color:var(--white);color:var(--black)}
.lesson-builder-mode-help{border:1px solid var(--line);background:#0e0e0e;border-radius:var(--radius);padding:12px;display:grid;gap:3px}
.lesson-builder-mode-help strong{color:var(--white);text-transform:uppercase;font-size:12px;letter-spacing:.08em}
.lesson-builder-mode-help span{color:var(--soft);font-size:14px;line-height:1.5}
.ai-builder-callout.soft{background:#101010;border:1px solid var(--line);color:var(--soft)}
.lesson-builder-main-run{min-height:44px}
.source-mode-video .lesson-builder-teaching,.source-mode-speech .lesson-builder-teaching{min-height:300px}
@media(max-width:760px){.palette .lesson-builder-entry{grid-column:auto}.lesson-builder-mode-tabs{grid-template-columns:1fr}}

/* v7.67 ZIP homework verification */
.lesson-zip-reference,.homework-zip-editor,.homework-zip-submit{border-color:rgba(34,197,94,.32);background:linear-gradient(135deg,rgba(34,197,94,.07),rgba(255,255,255,.025))}
.zip-manifest-card{border:1px solid rgba(148,163,184,.24);border-radius:16px;background:rgba(255,255,255,.045);padding:12px;display:grid;gap:6px;margin-top:8px}
.zip-manifest-card strong{word-break:break-word}.zip-manifest-card span{color:var(--muted);font-size:.9rem}.zip-manifest-card ul{margin:6px 0 0;padding-left:18px;max-height:220px;overflow:auto}.zip-manifest-card li{margin:3px 0}.zip-manifest-card code{font-size:.84rem}.homework-zip-editor{margin-top:12px;padding:12px;border-radius:16px;border:1px solid rgba(34,197,94,.24)}.homework-zip-submit{margin-top:14px;padding:14px;border-radius:18px;border:1px solid rgba(34,197,94,.28);display:grid;gap:10px}.homework-zip-submit.is-done{border-color:rgba(134,239,172,.6);box-shadow:0 0 0 4px rgba(34,197,94,.06)}.zip-submit-status{color:var(--muted);font-size:.94rem}.zip-submit-status .error{margin-top:4px}

/* v7.67 ZIP homework checklist tree */
.zip-tree{border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(2,6,23,.18);max-height:320px;overflow:auto;padding:6px;display:grid;gap:2px}
.zip-tree-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:start;gap:6px;padding:5px 7px;border-radius:10px;font-size:.9rem}
.zip-tree-row code{font-size:.86rem;white-space:normal;word-break:break-word;background:transparent;padding:0;color:var(--white)}
.zip-tree-row em{font-style:normal;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.zip-tree-row small{grid-column:2/4;color:var(--muted);font-size:.78rem;line-height:1.35;word-break:break-word}
.zip-tree-row.zip-dir{opacity:.78}.zip-tree-row.zip-dir code{color:var(--soft);font-weight:700}.zip-tree-row.zip-ok{background:rgba(34,197,94,.08)}.zip-tree-row.zip-missing{background:rgba(239,68,68,.1)}.zip-tree-row.zip-changed{background:rgba(245,158,11,.11)}.zip-tree-row.zip-extra{background:rgba(59,130,246,.1)}
.zip-status{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:900;color:var(--muted);text-align:center}.zip-ok .zip-status,.zip-result-summary .zip-ok{color:#86efac}.zip-missing .zip-status,.zip-result-summary .zip-missing{color:#fca5a5}.zip-changed .zip-status,.zip-result-summary .zip-changed{color:#fcd34d}.zip-extra .zip-status,.zip-result-summary .zip-extra{color:#93c5fd}
.zip-tree-more{padding:8px 10px;color:var(--muted);font-size:.86rem}.zip-comparison-card{border:1px solid rgba(148,163,184,.22);border-radius:16px;padding:12px;background:rgba(255,255,255,.04);display:grid;gap:8px;color:var(--soft)}.zip-comparison-card>strong{color:var(--white)}.zip-comparison-card.is-ok{border-color:rgba(34,197,94,.34);background:rgba(34,197,94,.06)}.zip-comparison-card.is-error{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.06)}
.zip-result-summary{display:flex;flex-wrap:wrap;gap:7px}.zip-result-summary span{border:1px solid rgba(148,163,184,.22);border-radius:999px;padding:4px 8px;background:rgba(255,255,255,.04);font-size:.82rem;font-weight:800}

/* v7.68: lesson builder progress, ZIP gating and hierarchical course outline */
.ai-progress-card{border:1px solid rgba(244,239,229,.14);border-radius:18px;padding:14px;background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.02));display:grid;gap:10px}
.ai-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--soft)}
.ai-progress-head strong{color:var(--white)}
.ai-progress-track{height:10px;border-radius:999px;background:rgba(244,239,229,.09);overflow:hidden;border:1px solid rgba(244,239,229,.08)}
.ai-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(134,239,172,.65),rgba(96,165,250,.75));transition:width .45s ease}
.ai-progress-card ol{margin:0;padding-left:20px;color:var(--muted);display:grid;gap:4px;font-size:.9rem}
.ai-progress-card li.done{color:var(--soft);font-weight:800}
.subchapter-admin-group{border:1px solid rgba(244,239,229,.09);border-radius:16px;background:rgba(0,0,0,.12);padding:10px;display:grid;gap:8px}
.subchapter-admin-head{display:flex;align-items:center;gap:10px;color:var(--soft)}
.subchapter-admin-head span{display:inline-grid;place-items:center;min-width:42px;height:28px;border-radius:999px;background:rgba(244,239,229,.08);font-weight:950}
.subchapter-admin-head small{color:var(--muted)}
.course-structure-editor{display:grid;gap:14px}.outline-admin-chapter{border:1px solid rgba(244,239,229,.12);border-radius:18px;padding:12px;background:rgba(255,255,255,.025);display:grid;gap:10px}.outline-admin-row{display:grid;grid-template-columns:auto minmax(220px,1fr) auto auto;gap:8px;align-items:end}.outline-admin-row label{display:grid;gap:5px;color:var(--muted);font-size:.78rem;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.outline-admin-row.sub{grid-template-columns:52px minmax(200px,1fr) auto auto}.outline-admin-subchapter{margin-left:22px;border-left:2px solid rgba(244,239,229,.1);padding-left:12px;display:grid;gap:7px}.outline-admin-lessons{display:flex;flex-wrap:wrap;gap:6px}.outline-admin-lessons span{border:1px solid rgba(244,239,229,.1);border-radius:999px;padding:5px 9px;background:rgba(0,0,0,.16);color:var(--muted);font-size:.82rem}.course-subchapter{margin-top:12px;padding-left:12px;border-left:2px solid rgba(244,239,229,.12)}.course-subchapter h4,.mini-subchapter h4{margin:8px 0;color:var(--soft);font-size:.94rem}.mini-subchapter{margin-top:8px}.mini-subchapter>div{display:flex;flex-wrap:wrap;gap:8px}.btn[disabled],button[disabled]{opacity:.48;cursor:not-allowed;filter:grayscale(.35)}
@media(max-width:760px){.outline-admin-row,.outline-admin-row.sub{grid-template-columns:1fr}.outline-admin-subchapter{margin-left:0}.mini-subchapter>div{display:grid}.course-subchapter{padding-left:8px}}
.mini-chapter>.mini-subchapter{display:block}
