:root{color-scheme:light;--ecu-teal: #005f6b;--ecu-teal-light: #e8f0f1;--ecu-teal-dark: #004a54;--ecu-black: #000000;--ecu-white: #ffffff;--bg-1: #ffffff;--bg-2: #f7f7f7;--panel: #ffffff;--panel-2: #fafafa;--text: #000000;--muted: #5a5a5a;--accent: #005f6b;--accent-2: #004a54;--accent-outer: #000000;--danger: #c0392b;--warn: #9a6b00;--border: #d8d8d8;--bar: #f0f0f0;--bar-active: #005f6b}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg-1);color:var(--text);min-height:100vh}@media(min-width:1025px){body{zoom:1.75}}body.theme-dark{background:#000}svg{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.container{max-width:1200px;margin:0 auto;display:grid;gap:1rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.1rem 1.2rem;min-width:0}h1{margin:0 0 .25rem;font-size:1.55rem}h2{margin:0 0 .7rem;font-size:1.05rem;color:var(--muted);font-weight:700}.sub{margin:0;color:var(--muted);font-size:.95rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:.9rem}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.4rem}.help{color:var(--muted);font-size:.76rem;margin-top:.4rem;line-height:1.35}.field{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:.75rem}.field.settings-hidden{display:none}.settings-section-title{margin:1.15rem 0 .7rem;font-size:.88rem;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.07em}.settings-section-title:first-of-type{margin-top:0}.settings-section{margin-bottom:.25rem}.toggle-switch.toggle-switch-compact{--toggle-w: 2.1rem;--toggle-h: 1.15rem;--toggle-thumb: .85rem;padding:.3rem .5rem;font-size:.82rem}.inline{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.inline label{display:inline-flex;align-items:center;gap:.3rem;margin:0;font-weight:500}select,input[type=range],input[type=number]{width:100%;background:var(--ecu-white);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.45rem .55rem;font:inherit}input[type=range]{padding:.3rem 0;accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}.valtag{display:inline-block;min-width:2.2rem;text-align:center;background:var(--ecu-white);border:1px solid var(--border);border-radius:6px;padding:.05rem .4rem;color:var(--accent);font-variant-numeric:tabular-nums}.buttons{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.85rem 0}.toggle-switch{--toggle-w: 2.5rem;--toggle-h: 1.35rem;--toggle-thumb: 1rem;--toggle-inset: 2px;display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.45rem .65rem;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);font-size:.88rem;font-weight:600;color:var(--muted);transition:border-color .15s ease,color .15s ease,background .15s ease}.toggle-switch:has(input:checked){color:var(--accent);border-color:var(--accent);background:var(--ecu-teal-light)}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:relative;flex-grow:0;flex-shrink:0;flex-basis:var(--toggle-w);width:var(--toggle-w);height:var(--toggle-h);background:var(--ecu-white);box-shadow:inset 0 0 0 1px var(--border);border-radius:999px;transition:background .15s ease,box-shadow .15s ease}.toggle-slider:after{content:"";position:absolute;top:var(--toggle-inset);left:var(--toggle-inset);width:var(--toggle-thumb);height:var(--toggle-thumb);background:var(--muted);border-radius:50%;transition:transform .15s ease,background .15s ease}.toggle-switch input:checked+.toggle-slider{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.toggle-switch input:checked+.toggle-slider:after{transform:translate(calc(var(--toggle-w) - var(--toggle-thumb) - 2 * var(--toggle-inset)));background:var(--ecu-white)}.toggle-switch input:focus-visible+.toggle-slider{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:640px){.toggle-switch{--toggle-w: 2.3rem;--toggle-h: 1.25rem;--toggle-thumb: .95rem}}.field-toggle-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.field-toggle-header .field-toggle-title{font-size:.9rem;font-weight:600;line-height:1.3}.field-toggle-header .toggle-switch{flex-shrink:0;padding:.35rem .5rem}button{background:var(--accent);color:var(--ecu-white);border:1px solid var(--accent);border-radius:9px;font:inherit;font-weight:600;padding:.6rem 1rem;cursor:pointer;transition:transform .05s ease,filter .15s ease}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){transform:translateY(1px)}button.secondary{background:var(--panel-2);border-color:var(--border);color:var(--text)}button.ghost{background:transparent;border-color:var(--border);color:var(--muted)}button:disabled{opacity:.5;cursor:not-allowed}.status{color:var(--accent-2);font-weight:600;min-height:1.2rem;margin:.85rem 0 0}.status.error{color:var(--danger)}.status.warn{color:var(--warn)}.loadbadge{display:inline-block;font-size:.78rem;color:var(--muted);margin-left:.5rem}footer{color:var(--muted);font-size:.78rem;text-align:center;padding-bottom:.5rem}a{color:var(--accent)}body.theme-dark footer{color:#888}body.theme-dark footer a{color:#ccc}.view-hidden{display:none!important}.pitch-meter{margin:1rem 0}.pitch-meter-track{position:relative;height:2.2rem;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;overflow:hidden}.pitch-meter-tolerance{position:absolute;top:0;bottom:0;background:var(--ecu-teal-light)}.pitch-meter-center{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--muted);transform:translate(-1px)}.pitch-meter-needle{position:absolute;top:.2rem;bottom:.2rem;width:4px;border-radius:2px;background:var(--danger);transform:translate(-2px);transition:left .08s linear}.pitch-meter-needle.in-tune{background:var(--accent-2)}.pitch-meter-label{margin-top:.35rem;font-size:.85rem;color:var(--muted);text-align:center}.save-preset-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.save-preset-row input[type=text]{flex:1 1 180px;min-width:140px}.save-preset-error{color:var(--danger);font-size:.82rem}.save-preset-success{color:var(--accent-2);font-size:.82rem;font-weight:600}@media(max-width:640px){body .interval-choices,body .chord-choice-grid,body .chord-comparison-choices,body .tuning-choices,body .interval-comparison-choices,body .dynamics-articulation-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}body .interval-choice,body .chord-choice,body .exam-rec-choice,body .chord-comparison-choice,body .tuning-choice,body .interval-comparison-choice,body .dynamics-articulation-choice{flex:none;min-width:0;max-width:none;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;padding:.35rem;font-size:.74rem;line-height:1.15;text-align:center}body .grouped-choice-divider{grid-column:1 / -1}}body.advanced-mode .help,body.advanced-mode .sub,body.advanced-mode .section-landing-card p{display:none}.home-advanced-mode{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.home-advanced-mode-text{display:flex;flex-direction:column;gap:.15rem}.home-advanced-mode-label{font-weight:600}.home-advanced-mode-note{font-size:.85rem;color:var(--muted)}.shell-header{background:var(--ecu-black);color:var(--ecu-white);position:relative;z-index:20}@media(min-width:1025px){.shell-header{zoom:calc(1 / 1.75)}}.shell-header-inner{--logo-w: min(clamp(120px, 12vw, 280px), 70vw, calc(100vw - 100px) );--emblem-h: calc(var(--logo-w) * .3333);--nav-btn-fs: calc(var(--emblem-h) * .3);width:100%;margin:0;padding:.5rem 1.25rem;min-height:calc(var(--emblem-h) + 10px);display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;position:relative}.shell-header-title-group{display:flex;align-items:center;gap:.75rem;flex:1 1 auto;min-width:0;position:relative;align-self:stretch}.shell-hamburger{display:none;background:transparent;border:1px solid #444;color:var(--ecu-white);border-radius:8px;padding:.4rem .6rem;flex-shrink:0}.shell-logo{display:block;height:auto;width:var(--logo-w);max-width:100%;pointer-events:none}.shell-logo-icon{display:none;height:calc(var(--emblem-h) * 686 / 724);width:auto;max-width:100%;pointer-events:none;border-radius:8px}.shell-section-nav{display:flex;align-items:center;gap:.5rem .75rem;flex-shrink:0;flex-wrap:wrap;max-width:100%}.shell-section-link{--glow: 127, 224, 239;display:inline-flex;align-items:center;font-family:inherit;font-size:var(--nav-btn-fs);line-height:1;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:rgb(var(--glow));text-decoration:none;padding:.35em .7em;border:2px solid rgba(var(--glow),.35);border-radius:999px;background:rgba(var(--glow),.06);text-shadow:0 0 8px rgba(var(--glow),.45);transition:color .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,text-shadow .15s ease}.shell-section-link:hover{text-decoration:none;color:#eafcff;border-color:rgba(var(--glow),.9);background:rgba(var(--glow),.15);box-shadow:0 0 14px rgba(var(--glow),.45);text-shadow:0 0 12px rgba(var(--glow),.85)}.shell-section-link.active{color:#04191d;font-weight:800;background:linear-gradient(180deg,#9af0ff,#46c4d6);border-color:#b7f6ff;box-shadow:0 0 18px rgba(var(--glow),.55);text-shadow:none}.shell-section-link.active:hover{color:#04191d;background:linear-gradient(180deg,#b0f5ff,#57d0e2)}.shell-section-link.disabled{opacity:.4;cursor:not-allowed;box-shadow:none;text-shadow:none}.shell-section-link.disabled:hover{color:rgb(var(--glow));background:rgba(var(--glow),.06);border-color:rgba(var(--glow),.35);box-shadow:none;text-shadow:0 0 8px rgba(var(--glow),.45)}.profile-menu{position:relative}.profile-trigger{display:inline-flex;align-items:center;gap:.45em;font-size:1rem;font-family:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.25em .65em .25em .3em;cursor:pointer}.profile-trigger:hover{border-color:var(--accent)}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.8em;height:1.8em;border-radius:50%;background:linear-gradient(180deg,var(--accent),var(--accent-2));color:#fff;font-weight:800;font-size:.85em}.profile-trigger-name{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:50;width:260px;max-width:80vw;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000040;padding:.85rem;font-size:.95rem;text-transform:none;letter-spacing:normal}.profile-current{margin:0 0 .6rem;color:var(--muted)}.profile-current strong{color:var(--text)}.profile-error{margin:0 0 .6rem;color:var(--danger);font-size:.85rem}.profile-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.3rem}.profile-list li{display:flex;align-items:center;gap:.35rem}.profile-switch{flex:1 1 auto;text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:.4rem .55rem;color:var(--text);cursor:pointer}.profile-switch:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.profile-switch.current{font-weight:700;opacity:.7;cursor:default}.profile-delete{flex:0 0 auto;width:1.9em;height:1.9em;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;line-height:1}.profile-delete:hover{color:var(--danger);border-color:var(--danger)}.profile-pin-form{flex:1 1 auto;display:flex;gap:.3rem}.profile-pin-form input,.profile-create input{flex:1 1 auto;min-width:0;padding:.35rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-family:inherit}.profile-actions{display:flex;flex-wrap:wrap;gap:.4rem}.profile-actions button,.profile-pin-form button{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:8px;padding:.4rem .6rem;cursor:pointer;font-family:inherit}.profile-actions button:disabled{opacity:.5;cursor:not-allowed}.profile-create{display:flex;flex-direction:column;gap:.5rem}.profile-create label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shell-layout{width:100%;margin:0;display:flex;align-items:flex-start;gap:1.25rem;padding:1.25rem}.syllabus-sidebar{flex:0 0 380px;width:380px;background:var(--ecu-white);border-right:1px solid var(--border);align-self:stretch;position:sticky;top:0;max-height:100vh;overflow-y:auto;padding-right:.5rem}@media(min-width:1025px){.syllabus-sidebar{zoom:calc(1 / 1.75)}}.syllabus-nav{display:flex;flex-direction:column;gap:.2rem}.syllabus-category-title{margin:1.1rem 0 .4rem;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:700}.syllabus-category-title:first-child{margin-top:0}.syllabus-topic{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;text-align:left;font-size:1.1rem;font-weight:500;color:var(--text);background:transparent;border:1px solid transparent;border-radius:8px;padding:.6rem .75rem;cursor:pointer}.syllabus-topic:hover:not(:disabled){background:var(--ecu-teal-light)}.syllabus-topic.active{background:var(--accent);color:var(--ecu-white);font-weight:700}.syllabus-topic.active:hover:not(:disabled){background:var(--accent)}.syllabus-topic:disabled{opacity:.5;cursor:not-allowed}.syllabus-soon-tag{font-size:.8rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.05rem .4rem;flex-shrink:0;background:var(--ecu-white)}.syllabus-topic.active .syllabus-soon-tag{color:var(--ecu-white);border-color:#fff9;background:transparent}.syllabus-preset{padding-left:1.4rem;font-size:1rem;font-weight:400}.shell-main{flex:1 1 auto;min-width:0;display:grid;gap:1rem}.topic-view{min-width:0}.syllabus-scrim{display:none}.home-sections{max-width:900px;margin:2.5rem auto;padding:0 1.25rem}.home-welcome{margin-bottom:1.5rem}.home-welcome h2{margin:0 0 .35rem}.home-welcome-lede{margin:0 0 .6rem;color:var(--text);max-width:62ch;line-height:1.5}.home-welcome-sub{margin:0;color:var(--muted)}.home-section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.home-section-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.5rem 1.4rem;text-decoration:none;color:var(--text)}.home-section-card:hover{background:var(--ecu-teal-light);cursor:pointer}.home-section-card h3{margin:0 0 .5rem;color:var(--accent);font-size:1.3rem}.home-section-card p{margin:0 0 .75rem;color:var(--text)}.home-section-card .home-topic-count{color:var(--muted);font-size:.85rem}.home-profile-box{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1rem 1.25rem;margin-bottom:1.25rem}.home-profile-box-left{display:flex;align-items:center;gap:.75rem}.home-profile-box-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.home-progress-btn{display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;background:var(--accent);color:#fff;border-radius:10px;padding:.55rem 1rem}.home-progress-btn:hover{background:var(--accent-2)}.home-progress-btn-main{font-weight:700}.home-progress-btn-sub{font-size:.8rem;opacity:.85}.section-landing{max-width:900px;margin:2.5rem auto;padding:0 1.25rem 3rem}.section-landing-intro{margin-bottom:2rem}.section-landing-intro h2{margin:0 0 .5rem}.section-landing-intro p{margin:0 0 .9rem;color:var(--muted);max-width:62ch;line-height:1.5}.section-landing-group{margin-bottom:2rem}.section-landing-group h3{font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:.4rem;margin:0 0 1rem}.section-landing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.section-landing-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;text-decoration:none;color:var(--text)}.section-landing-card:hover{background:var(--ecu-teal-light);cursor:pointer}.section-landing-card h4{margin:0 0 .4rem;color:var(--accent);font-size:1.05rem}.section-landing-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.4}@media(max-width:560px){.section-landing{margin:1.5rem auto;padding:0 .9rem 2.5rem}.section-landing-grid{grid-template-columns:1fr}}@media(max-width:1024px){.shell-hamburger{display:inline-flex;align-items:center;justify-content:center}.shell-section-link{padding:.35em .7em}.shell-section-nav{gap:.5rem}.syllabus-sidebar{position:fixed;top:0;bottom:0;left:-380px;width:min(380px,85vw);max-width:380px;padding-left:1rem;transition:left .2s ease;z-index:200;box-shadow:2px 0 12px #00000040}.syllabus-sidebar.open{left:0}.syllabus-topic.active{width:calc(100% + 1rem);margin-left:-1rem;padding-left:1.75rem;border-radius:0 8px 8px 0}.syllabus-scrim.visible{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:150}}@media(max-width:640px){.shell-logo{display:none}.shell-logo-icon{display:block}.shell-section-nav{gap:.4rem}.shell-section-link{padding:.32em .6em;letter-spacing:.03em}}@media(max-width:1024px)and (prefers-reduced-motion:reduce){.syllabus-sidebar{transition:none}.shell-layout{padding:1rem}}.mobile-warning-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#00000080}.mobile-warning-dialog{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.3rem 1.4rem;max-width:24rem;text-align:center;box-shadow:0 12px 44px #00000059}.mobile-warning-title{margin:0 0 .5rem}.mobile-warning-msg{color:var(--muted);line-height:1.5;margin:0 0 1.1rem}.mobile-warning-btn{width:100%}.stats-page{max-width:900px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.stats-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.stats-header h1{margin:0 0 .25rem}.stats-profile-line{margin:0;color:var(--muted)}.stats-grand{text-align:right;flex-shrink:0}.stats-grand-pct{font-size:2.4rem;font-weight:800;line-height:1;color:var(--accent)}.stats-grand-sub{color:var(--muted);font-size:.9rem}.stats-empty{text-align:center;padding:3rem 1rem;color:var(--muted)}.stats-empty p{max-width:46ch;margin:0 auto .75rem}.stats-cta,.stats-import button{display:inline-block;margin-top:.5rem;background:var(--accent);color:#fff;text-decoration:none;border:1px solid var(--accent);border-radius:8px;padding:.5rem .9rem;cursor:pointer;font-family:inherit}.stats-import{margin-bottom:1.25rem}.stats-section{margin-bottom:1.75rem}.stats-section h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:.35rem;margin:0 0 .75rem}.stats-topic{border:1px solid var(--border);border-radius:10px;margin-bottom:.6rem;background:var(--panel);overflow:hidden}.stats-topic-head{display:flex;align-items:stretch}.stats-topic-toggle{flex:1 1 auto;display:grid;grid-template-columns:minmax(9rem,1.4fr) 2fr minmax(5.5rem,auto);align-items:center;gap:.9rem;background:transparent;border:0;padding:.7rem .9rem;cursor:pointer;font-family:inherit;font-size:1rem;color:var(--text);text-align:left}.stats-topic-toggle:disabled{cursor:default}.stats-topic-title{display:flex;align-items:center;gap:.4rem;font-weight:600}.stats-caret{color:var(--muted);font-size:.8em}.stats-num{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;white-space:nowrap}.stats-reset-btn{flex:0 0 auto;background:transparent;border:0;border-left:1px solid var(--border);color:var(--muted);padding:0 .9rem;cursor:pointer;font-family:inherit;font-size:.85rem}.stats-reset-btn:hover{color:var(--danger)}.stats-bar{height:10px;border-radius:999px;background:var(--bar, #eee);overflow:hidden}.stats-bar-fill{height:100%;border-radius:999px;transition:width .3s ease}.stats-item-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.stats-item-table{width:100%;border-collapse:collapse;border-top:1px solid var(--border);font-size:.92rem}.stats-item-table th[scope=col]{text-align:left;color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;padding:.4rem .9rem}.stats-item-table th[scope=col].stats-num{text-align:right}.stats-item-table tbody th{text-align:left;font-weight:500;padding:.35rem .9rem;white-space:nowrap}.stats-item-table td{padding:.35rem .9rem}.stats-item-bar-cell{width:55%}.stats-item-table tbody tr:nth-child(2n){background:var(--panel-2)}.stats-reset-all{margin-top:1.5rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;color:var(--muted)}.stats-reset-all button{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:.45rem .8rem;cursor:pointer;font-family:inherit;color:var(--text)}.stats-reset-all button.stats-danger{background:var(--danger);border-color:var(--danger);color:#fff}@media(max-width:560px){.stats-page{padding:1rem .75rem 2.5rem}.stats-header{gap:.5rem}.stats-grand-pct{font-size:1.7rem}.stats-topic-toggle{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:.5rem;padding:.6rem;font-size:.9rem}.stats-topic-title{min-width:0;overflow-wrap:break-word}.stats-num{font-size:.82rem}.stats-reset-btn{padding:0 .6rem;font-size:.75rem}.stats-item-table thead{display:none}.stats-item-table,.stats-item-table tbody,.stats-item-table tr{display:block;width:100%}.stats-item-table{font-size:.82rem}.stats-item-table tr{padding:.4rem 0;border-bottom:1px solid var(--border)}.stats-item-table tr:last-child{border-bottom:0}.stats-item-table th,.stats-item-table td{display:block;width:auto;padding:.1rem .5rem}.stats-item-table tbody th{white-space:normal}.stats-item-bar-cell{width:auto;padding-top:.3rem}.stats-item-table td.stats-num{text-align:left;font-size:.78rem;padding-top:.2rem}}.chord-type-groups{display:grid;gap:.85rem;margin-top:.5rem}.chord-type-group{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem}.chord-type-group-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.chord-type-group-header .chord-type-group-title{margin:0;flex:1;min-width:0}.chord-type-group-title{margin:0 0 .5rem;font-size:.78rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.chord-type-checks{display:flex;flex-wrap:wrap;gap:.4rem .75rem}.chord-type-checks label{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-weight:500;font-size:.82rem;cursor:pointer}.inversion-sub{display:flex;flex-direction:column;gap:.3rem}.inversion-invrow{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;padding-left:1.2rem}.inversion-invrow-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.inversion-invbox{display:inline-flex;align-items:center;gap:.25rem;margin:0;font-size:.72rem;font-weight:500;color:var(--muted);cursor:pointer}.chord-answer-groups{display:grid;gap:1rem;margin-top:.65rem}.chord-answer-group-title{margin:0 0 .45rem;font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.chord-choice-grid{display:flex;flex-wrap:wrap;gap:.45rem}.grouped-choice-divider{flex-basis:100%;height:0;border-top:1px solid var(--border);margin:-.05rem 0}.chord-choice{flex:1 1 118px;min-width:100px;max-width:200px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.55rem .5rem;font:inherit;font-weight:700;font-size:.8rem;line-height:1.25;color:var(--text);cursor:pointer;text-align:center;transition:border-color .12s,background .12s,transform .1s}.chord-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.chord-choice:disabled{cursor:default;opacity:.88}.chord-choice.selected{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-2);box-shadow:inset 0 0 0 1px var(--accent)}.chord-choice.correct{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-2)}.inversion-guess{margin-top:1rem;padding:.75rem;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}.inversion-guess-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.5rem}.inversion-guess-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.inversion-guess-actions .help{margin:0}.chord-choice.wrong{border-color:var(--danger);background:#fdecea;color:var(--danger)}.chord-choice.reveal-actual{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.chord-session-score{margin-top:.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.chord-comparison-prompt{margin:.75rem 0 .5rem;font-weight:600;color:var(--muted)}.chord-comparison-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.chord-comparison-choice{flex:1 1 140px;min-width:120px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.65rem .75rem;font:inherit;font-weight:700;font-size:.88rem;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s,transform .1s}.chord-comparison-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.chord-comparison-choice:disabled{cursor:default;opacity:.85}.chord-comparison-choice.correct{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-dark, var(--accent-2))}.chord-comparison-choice.wrong{border-color:var(--danger);background:#fdecea;color:var(--danger)}.chord-comparison-choice.reveal-actual{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.chord-comparison-session-score{margin-top:.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.settings-disclosure{padding:0;overflow:hidden}.settings-disclosure-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1.2rem;-webkit-user-select:none;user-select:none;border-radius:14px}.settings-disclosure-summary::-webkit-details-marker{display:none}.settings-disclosure-summary::marker{content:""}.settings-disclosure-summary:hover{background:var(--ecu-teal-light)}.settings-disclosure[open] .settings-disclosure-summary{border-radius:14px 14px 0 0;border-bottom:1px solid var(--border)}.settings-disclosure-label{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1rem;color:var(--accent)}.settings-disclosure-gear{font-size:1.05rem;line-height:1}.settings-disclosure-chevron{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border-radius:999px;background:var(--ecu-teal-light);border:1.5px solid var(--accent);color:var(--accent);font-size:1.05rem;font-weight:700;line-height:1;flex-shrink:0;transition:transform .2s ease,background .15s ease,color .15s ease}.settings-disclosure-summary:hover .settings-disclosure-chevron{background:var(--accent);color:var(--ecu-white)}.settings-disclosure[open] .settings-disclosure-chevron{transform:rotate(180deg)}.settings-disclosure-body{padding:1rem 1.2rem 1.15rem}.settings-disclosure-body>.card{border:0;background:transparent;padding:0;border-radius:0}.settings-disclosure-body>.card>h2{display:none}.custom-preset-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.custom-preset-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;background:var(--panel-2);border:1px solid var(--border);border-radius:10px}.custom-preset-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.custom-preset-name{font-weight:700}.custom-preset-origin{font-size:.78rem;color:var(--muted)}.dynamics-articulation-type-checks{display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin-top:.4rem}.dynamics-articulation-type-checks label{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-weight:500;font-size:.82rem;cursor:pointer}.dynamics-articulation-prompt{margin:.75rem 0 .5rem;font-weight:600;color:var(--muted)}.dynamics-articulation-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.dynamics-articulation-choice{flex:1 1 140px;min-width:120px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.65rem .75rem;font:inherit;font-weight:700;font-size:.88rem;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s,transform .1s}.dynamics-articulation-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.dynamics-articulation-choice:disabled{cursor:default;opacity:.85}.dynamics-articulation-choice.correct{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-dark, var(--accent-2))}.dynamics-articulation-choice.wrong{border-color:var(--danger);background:#fdecea;color:var(--danger)}.dynamics-articulation-choice.reveal-actual{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.dynamics-articulation-session-score{margin-top:.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.interval-comparison-type-checks{display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin-top:.4rem}.interval-comparison-type-checks label{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-weight:500;font-size:.82rem;cursor:pointer}.interval-comparison-session-score{margin-top:.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.interval-comparison-prompt{margin:.75rem 0 .5rem;font-weight:600;color:var(--muted)}.interval-comparison-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.interval-comparison-choice{flex:1 1 140px;min-width:120px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.65rem .75rem;font:inherit;font-weight:700;font-size:.88rem;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s,transform .1s}.interval-comparison-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.interval-comparison-choice:disabled{cursor:default;opacity:.85}.interval-comparison-choice.correct{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-dark, var(--accent-2))}.interval-comparison-choice.wrong{border-color:var(--danger);background:#fdecea;color:var(--danger)}.interval-comparison-choice.reveal-actual{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.interval-matrix-wrap{overflow-x:clip;margin-top:.5rem}.interval-matrix{width:100%;border-collapse:collapse;font-size:.85rem}.interval-matrix:not(.transposed){table-layout:fixed}.interval-matrix:not(.transposed) th:not(:first-child),.interval-matrix:not(.transposed) td:not(:first-child){width:27%}.interval-matrix:not(.transposed) td:first-child{white-space:normal}.interval-matrix:not(.transposed) th{white-space:normal;overflow-wrap:anywhere}.interval-matrix.transposed{table-layout:fixed;width:100%}.interval-matrix.transposed th,.interval-matrix.transposed td{padding:.35rem .25rem}.interval-matrix.transposed thead th{text-transform:none}.interval-matrix.transposed th:first-child,.interval-matrix.transposed td:first-child{width:5rem}.interval-matrix.transposed th:last-child,.interval-matrix.transposed td:last-child{width:2.9rem}.interval-matrix.transposed .toggle-all-btn{width:100%;padding:.28rem .4rem;font-size:.8rem}.interval-matrix th,.interval-matrix td{border:1px solid var(--border);padding:.4rem .55rem;text-align:center}.interval-matrix th{background:var(--ecu-black);color:var(--ecu-white);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.interval-matrix td:first-child{text-align:left;font-weight:600;white-space:nowrap}.interval-matrix input[type=checkbox]{width:1.05rem;height:1.05rem;margin:0}.interval-matrix tr.interval-toggle-row td{padding-top:.45rem;vertical-align:middle;border-top:1px dashed var(--border)}.interval-matrix tr.interval-toggle-row td:first-child{border-top:1px dashed var(--border)}.interval-matrix tr.interval-toggle-row .toggle-all-btn{width:100%;max-width:9rem;margin:0 auto;display:block}.interval-prompt{margin:.75rem 0 .5rem;font-weight:600;color:var(--muted)}.interval-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.interval-choice{flex:1 1 140px;min-width:120px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.65rem .75rem;font:inherit;font-weight:700;font-size:.88rem;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s,transform .1s}.interval-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.interval-choice:disabled{cursor:default;opacity:.85}.interval-choice.correct{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-dark, var(--accent-2))}.interval-choice.wrong{border-color:var(--danger);background:#fdecea;color:var(--danger)}.interval-choice.reveal-actual{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.interval-session-score{margin-top:.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}button.toggle-all-btn{flex-shrink:0;padding:.28rem .6rem;font-size:.72rem;font-weight:700;line-height:1.2;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;font-family:inherit}button.toggle-all-btn:hover{border-color:var(--accent);color:var(--text)}.meter-sig-grid{display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin-top:.35rem}.meter-sig-grid label{display:inline-flex;align-items:center;gap:.35rem;font-weight:500;font-size:.88rem;cursor:pointer}.meter-sound-btn{padding:.35rem .7rem;margin:0 .4rem .4rem 0;font-size:.85rem;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-family:inherit}.meter-sound-btn:hover{border-color:var(--accent)}.meter-sound-btn.meter-sound-active{background:var(--ecu-teal-light);border-color:var(--accent);color:var(--accent);font-weight:700}.chromatic-count-block{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--border)}.chromatic-count-block.settings-hidden,.minor-harmony-options.settings-hidden{display:none}.bars{display:flex;flex-wrap:nowrap;gap:.5rem;margin-top:.2rem;overflow-x:auto;padding-bottom:.3rem}.bar{flex:0 0 70px;min-width:70px;text-align:center;background:var(--bar);border:1px solid var(--border);border-radius:9px;padding:.7rem .4rem;font-weight:700;letter-spacing:.02em;transition:background .12s ease,border-color .12s ease,transform .12s ease}.bar .num{display:block;font-size:.7rem;color:var(--muted);font-weight:600;margin-bottom:.25rem}.bar .bar-roman{display:block;font-size:.82rem;color:var(--accent);font-weight:700;margin-bottom:.12rem}.bar .bar-symbol{display:block;font-size:.95rem;line-height:1.25}.bar .bar-meta{display:block;font-size:.66rem;color:var(--muted);font-weight:500;margin-top:.12rem;line-height:1.3}.bar.active{background:var(--bar-active);border-color:var(--accent);color:var(--ecu-white);transform:translateY(-2px)}.bar.tonic-ref{background:var(--ecu-teal-light);border-color:var(--accent)}.session-scores{display:grid;gap:.55rem;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem;margin-bottom:.75rem}.session-score-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.session-score-label{font-weight:600;color:var(--muted);font-size:.9rem}.session-score-value{font-weight:700;font-size:1.15rem;color:var(--accent);font-variant-numeric:tabular-nums}.guess-rows{display:grid;gap:.55rem}.guess-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:.5rem .6rem}.guess-row .barlabel{flex:0 0 52px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.guess-row select{flex:1 1 110px;min-width:88px;width:auto;padding:.35rem .4rem}.guess-row .result{flex:1 1 150px;text-align:right}.result{font-weight:700;font-size:.85rem}.result.ok{color:var(--accent-2)}.result.bad{color:var(--danger)}.result.idle{color:var(--muted);font-weight:500}.score{margin:0 0 .7rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}@media(max-width:560px){.guess-row .barlabel{flex:0 0 100%}.guess-row .result{flex:0 0 100%;text-align:left}}.tuning-prompt{margin:.75rem 0 .5rem;font-weight:600;color:var(--muted)}.tuning-choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.tuning-choice{flex:1 1 140px;min-width:120px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.65rem .75rem;font:inherit;font-weight:700;font-size:.88rem;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s,transform .1s}.tuning-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.tuning-choice:disabled{cursor:default;opacity:.85}.tuning-choice.correct{border-color:var(--accent);background:var(--ecu-teal-light);color:var(--accent-dark, var(--accent-2))}.tuning-choice.wrong{border-color:var(--danger);background:#fdecea;color:var(--danger)}.tuning-choice.reveal-actual{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tuning-session-score{margin-top:.5rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.exam-panel.wide,.exam-panel.exam-panel-setup{max-width:920px}.exam-setup-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.exam-type-settings-grid.exam-setup-grid{grid-template-columns:1fr}.exam-setup-grid .field{min-width:0}.exam-types-container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-items:start}@media(max-width:640px){.exam-types-container{grid-template-columns:1fr}}.exam-type-cell{display:flex;flex-direction:column;gap:.35rem;min-width:0}.exam-type-block{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:.85rem .95rem}.exam-type-toggle{display:flex;align-items:center;gap:.55rem;font-weight:700;font-size:.95rem;cursor:pointer;margin:0 0 .65rem;line-height:1.35}.exam-type-toggle input{width:1.05rem;height:1.05rem;flex-shrink:0}.exam-type-settings-wrap{transition:opacity .15s ease}.exam-type-settings-wrap.is-disabled{opacity:.42;pointer-events:none}.exam-type-settings-grid{margin-top:.15rem}.exam-timer{font-size:1.35rem;font-weight:800;color:var(--warn);font-variant-numeric:tabular-nums;margin:.5rem 0 .75rem}.exam-progress{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;margin:0 0 .5rem}.exam-progress-bar{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin:0 0 .6rem}.exam-progress-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .2s ease}.exam-phase{color:var(--muted);font-size:.92rem;margin:0 0 .75rem;min-height:1.3rem}.exam-summary-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.exam-stat{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;min-width:120px}.exam-stat .label{font-size:.78rem;color:var(--muted);margin-bottom:.2rem}.exam-stat .value{font-size:1.35rem;font-weight:800;color:var(--accent-2)}.exam-result-list{display:grid;gap:.75rem}.exam-result-card{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:.85rem}.exam-result-card.perfect{border-color:var(--accent)}.exam-result-card.partial{border-color:var(--warn)}.exam-result-card.fail{border-color:var(--danger)}.exam-result-card h3{margin:0 0 .5rem;font-size:.95rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.exam-result-replay{font-size:.72rem;padding:.15rem .55rem;margin-left:auto}.exam-badge{font-size:.72rem;padding:.15rem .45rem;border-radius:6px;font-weight:700}.exam-badge.ok{background:var(--ecu-teal-light);color:var(--accent)}.exam-badge.bad{background:#fdecea;color:var(--danger)}.exam-bar-compare{display:grid;gap:.35rem;font-size:.82rem;margin-top:.5rem}.exam-bar-row{display:grid;grid-template-columns:52px 1fr 1fr;gap:.5rem;align-items:start}.exam-bar-row .hdr{color:var(--muted);font-weight:600;font-size:.72rem}.exam-bar-row .you{color:var(--text)}.exam-bar-row .actual{color:var(--accent-2)}.exam-bar-row.miss .you{color:var(--danger)}@media(max-width:560px){.exam-bar-row{grid-template-columns:1fr}}.exam-rec-choice{flex:1 1 140px;min-width:120px;background:var(--panel-2);border:2px solid var(--border);border-radius:10px;padding:.65rem .75rem;font:inherit;font-weight:700;font-size:.88rem;color:var(--text);cursor:pointer;text-align:center;transition:border-color .12s,background .12s,transform .1s}.exam-rec-choice:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.exam-rec-choice.exam-pick-selected{outline:2px solid var(--accent);background:var(--ecu-teal-light)}.note-palette-row,.note-palette{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.note-palette-btn{width:52px;height:52px;background:var(--ecu-white);border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;padding:6px;cursor:pointer;touch-action:manipulation}.note-palette-btn .rd-glyph{width:34px;height:46px;display:block;overflow:visible}.note-palette-btn .rd-glyph svg{width:100%;height:100%;display:block;overflow:visible}.note-palette-btn.note-palette-rest .rd-glyph{width:20px;height:28px}.note-palette-btn span{display:none}.note-palette-btn.armed{background:#d8d8d8;border-color:var(--ecu-black);box-shadow:inset 0 0 0 2px var(--ecu-black)}
