/* Estude hoje: studio charcoal, with distinct accents for the three study blocks. */
#studyRoutine{--routine-accent:#46dfdb;color:#f7f7f8;max-width:1200px;margin:12px auto 36px;width:100%;min-width:0}
#studyRoutine>header{padding:24px 28px;margin-bottom:16px;border:1px solid #3a3a40;border-left:4px solid #46dfdb;border-radius:12px;background:#212123}
#studyRoutine>header h1{font-size:clamp(2rem,3.4vw,2.8rem);max-width:850px}
#studyRoutine>header p{max-width:760px;margin-bottom:0;color:#c9c9d0}
#studyRoutine #routineReload{margin-left:0;background:#252528;border-color:#48484d;color:#eeeef0}
#studyRoutine #routineStatus{font-size:.9rem;margin:12px 0 20px}
#studyRoutine .routine-overview{padding:18px 22px;margin:12px 0 20px;background:#202024;border:1px solid #393940;border-radius:12px}
#studyRoutine .routine-overview strong{font-size:1rem}#studyRoutine .routine-overview p{color:#bfc0c6;font-size:.9375rem}
#studyRoutine .routine-blocks{gap:18px;margin:0 0 26px}
#studyRoutine .routine-block{--block-accent:#46dfdb;position:relative;overflow:hidden;min-height:180px;padding:24px!important;border:1px solid #43434a!important;border-top:4px solid var(--block-accent)!important;border-radius:12px!important;background:#222225!important;gap:14px;color:#f7f7f8!important;box-shadow:none!important;transition:border-color .15s,background .15s}
#studyRoutine .routine-block[data-routine-block=harmony]{--block-accent:#eec17b}
#studyRoutine .routine-block[data-routine-block=repertoire]{--block-accent:#b6a3ef}
#studyRoutine .routine-block.selected{background:#2b2b30!important;border-color:var(--block-accent)!important}
#studyRoutine .routine-block:hover{background:#2b2b30!important;border-color:var(--block-accent)!important}
#studyRoutine .routine-block>span{color:var(--block-accent);font-weight:700;letter-spacing:.04em}
#studyRoutine .routine-block strong{font-size:1.25rem;max-width:100%}
#studyRoutine .routine-block small{color:#c9c9d0;line-height:1.6}
#studyRoutine .routine-block em{color:var(--block-accent);font-weight:700;font-size:.9rem;padding-top:10px;border-top:1px solid #ffffff19}
#studyRoutine .routine-lesson{padding:28px;background:#202024;border:1px solid #404045;border-radius:14px}
#studyRoutine .routine-lesson[data-routine-lesson=harmony]{--routine-accent:#eec17b}
#studyRoutine .routine-lesson[data-routine-lesson=repertoire]{--routine-accent:#b6a3ef}
#studyRoutine .routine-lesson>.home-step{color:var(--routine-accent)!important}
#studyRoutine .routine-lesson>h2{font-size:clamp(1.5rem,2.5vw,1.85rem);margin:12px 0 24px}
#studyRoutine .routine-lesson>ol{display:grid;gap:12px;list-style:none;counter-reset:practice-step;padding:0;margin:0 0 24px}
#studyRoutine .routine-lesson>ol>li{counter-increment:practice-step;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:14px;margin:0;padding:18px;background:#29292d;border:1px solid #3d3d44;border-radius:10px;color:#e5e5ea}
#studyRoutine .routine-lesson>ol>li:before{content:counter(practice-step,decimal-leading-zero);display:grid;place-items:center;min-height:34px;border-radius:8px;background:#17171b;color:var(--routine-accent);font-size:.875rem;font-weight:700}
#studyRoutine .routine-check{position:relative;margin:24px 0;padding:20px 24px;border:1px solid #6b5940;border-left:4px solid #eec17b;border-radius:10px;background:#2c2720}
#studyRoutine .routine-check strong{color:#f4ce91;font-size:.9rem}#studyRoutine .routine-check p{font-size:1.125rem;color:#fff3de;line-height:1.5;margin:8px 0 0}
#studyRoutine .inline-practice{background:#17171b;border-color:#45454e;border-radius:12px;padding:24px;margin:24px 0}
#studyRoutine .inline-practice h4{font-size:1.2rem;color:#f7f7f8}
#studyRoutine .ip-chord{background:#252528!important;border-color:#48484d!important;color:#eeeef0!important}
#studyRoutine .ip-chord.ip-current{background:#20383a!important;border-color:#46dfdb!important}
#studyRoutine .ip-chord svg circle{fill:#46dfdb}
#studyRoutine .ip-now{background:#232329;border-color:#404045}
#studyRoutine .ip-beats>span{background:#313139;color:#f7f7f8}
#studyRoutine .ip-beats>span.ip-current{background:#46dfdb;color:#082b2b}
#studyRoutine :is(.routine-example,.routine-register,.routine-extra){margin-top:22px;padding:18px 22px;border:1px solid #414149;border-radius:12px;background:#232329}
#studyRoutine .routine-register{border-left:4px solid #46dfdb}
#studyRoutine>.routine-extra{background:#202024}
#studyRoutine :is(input,select,textarea){background:#17171b;border-color:#55555e;color:#f7f7f8;box-sizing:border-box}
#studyRoutine #routineSetup{background:#202024;border-color:#414149}
#studyRoutine summary{color:#eeeef0}
#studyRoutine :is(.routine-log,.routine-actions){border-color:#414149}
#studyRoutine .routine-log{padding:18px 0}
#studyRoutine :is(button,summary,input,select,textarea):focus-visible{outline:3px solid #46dfdb;outline-offset:4px}
#studyRoutine .routine-actions .ghost,#studyRoutine .routine-overview .ghost{background:#29292d!important;border-color:#55555e!important;color:#eeeef0!important}
#freePractice{background:#202024;border-color:#414149}
.today-entry{background:#1b1b1e}.today-entry .today-entry-button{background:#20383a!important;border-color:#46dfdb!important;color:#e9fcfb!important}.today-entry .today-entry-button.active,.today-entry .today-entry-button:hover{background:#46dfdb!important;border-color:#46dfdb!important;color:#082b2b!important}
.routine-dock{background:#232329;border-color:#55555e}
@media(max-width:760px){#studyRoutine>header{padding:20px}#studyRoutine .routine-blocks{gap:12px}#studyRoutine .routine-block{min-height:0;padding:20px!important}#studyRoutine .routine-lesson{padding:18px}#studyRoutine .routine-lesson>ol>li{padding:14px;gap:10px;grid-template-columns:32px minmax(0,1fr)}#studyRoutine .inline-practice{padding:16px}#studyRoutine :is(.routine-example,.routine-register,.routine-extra){padding:14px 16px}#studyRoutine .routine-check{padding:18px}#studyRoutine .routine-overview{padding:16px}}
@media(prefers-reduced-motion:reduce){#studyRoutine .routine-block{transition:none}}
.note-practice{min-width:0;margin:22px 0;padding:22px;border:1px solid #45454e;border-radius:12px;background:#17171b;color:#eeeef0;grid-column:1/-1}.note-practice h4{font-size:1.2rem;margin:0 0 12px}.note-practice p{line-height:1.6}.np-notes{display:flex;gap:8px;overflow-x:auto;padding:12px 0 18px;max-width:100%;scrollbar-width:thin}.np-notes button{flex:0 0 96px;min-height:76px;padding:10px 8px;border:1px solid #48484d;border-radius:8px;background:#252528;color:#eeeef0;font:inherit;cursor:pointer}.np-notes button strong,.np-notes button span{display:block}.np-notes button span{font-size:.875rem;white-space:nowrap}.np-notes button.np-current{background:#20383a;border-color:#46dfdb;color:#bdf7f3}.np-position{padding:12px 16px;border-left:3px solid #46dfdb;background:#232329;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.np-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-top:16px}.np-controls label{font-size:1rem}.np-controls input[type=number],.np-controls select{width:110px;min-height:44px;padding:10px;font:inherit;background:#232329;color:white;border:1px solid #55555e;border-radius:8px}.np-controls input[type=checkbox]{width:auto!important;min-height:0!important}.note-practice pre{overflow:auto;max-width:100%;font-size:.9375rem;background:#232329;padding:16px;line-height:1.6}.note-practice summary{min-height:44px;cursor:pointer}.note-practice :is(button,input,select,summary):focus-visible{outline:3px solid #46dfdb;outline-offset:3px}.routine-timer{padding:18px 22px;margin:22px 0;background:#29292d;border:1px solid #48484e;border-radius:10px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}.routine-timer strong{font-size:2rem;font-variant-numeric:tabular-nums;color:#46dfdb}.routine-timer span{display:block;font-size:.9rem;color:#c9c9d0}.routine-progress{padding:14px 18px;border:1px solid #45454e;background:#232329;border-radius:10px;margin:16px 0}.routine-progress p{margin:0}.routine-progress small{font-size:.875rem;color:#c9c9d0}@media(max-width:760px){.note-practice{padding:16px}.routine-timer{padding:16px}}

/* Shared visual demonstrations: the same note sequence drives diagram, TAB and audio. */
.np-board-wrap{width:100%;overflow-x:auto;border:1px solid #52525c;border-radius:10px;background:#202126;margin:16px 0 8px}.np-board{display:block;width:100%;min-width:340px;height:auto}.np-board text{fill:#e6e6ed;font:16px system-ui}.np-string{stroke:#9a9aa5;stroke-width:1.5}.np-fret{stroke:#555560}.np-dot circle{fill:#194a48;stroke:#58dbcf;stroke-width:2}.np-root circle{stroke:#ffd172;stroke-width:3}.np-dot.np-current circle{fill:#fff;stroke:#fff;stroke-width:4}.np-dot.np-current text{fill:#101519;font-weight:800}.np-legend{font-size:.875rem;color:#c9c9d0}.np-tab{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.np-tab table{border-collapse:collapse;width:100%;table-layout:fixed;font:1rem ui-monospace,monospace}.np-tab caption{text-align:left;padding:8px 0;color:#d0d0dc;font: .875rem system-ui}.np-tab th,.np-tab td{padding:5px 1px;text-align:center;border:1px solid #44444c;color:#92929b}.np-tab th{font-size:.875rem;color:#dddde7}.np-tab td.np-tab-fret{color:#fff;font-weight:700}.np-tab td.np-current{background:#203b3d}.np-tab td.np-current.np-tab-fret{color:#101519;background:#fff}.np-step-controls{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.np-step-controls button{min-height:44px}.lesson-method{grid-column:1/-1;display:grid;gap:12px;margin:16px 0}.lesson-method>div{border-left:3px solid #bc9fe8;background:#222128;padding:16px;border-radius:8px}.lesson-method>div:nth-child(2){border-color:#e4c77f}.lesson-method>.lesson-how{border-color:#54d8d5;background:#19282b}.lesson-method h4{font-size:1rem;margin:0 0 8px}.lesson-method p{margin:0;line-height:1.6}.lesson-method ol{margin:0;padding-left:22px}.lesson-method li{margin:8px 0;line-height:1.6}.embedded-arpeggio{grid-column:1/-1;min-width:0}.library-origin{color:#e4c77f;font-size:.875rem}.embedded-arpeggio>label{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.embedded-arpeggio select{font:inherit;min-height:44px;padding:8px 16px}.trail-step .note-practice,.trail-step .embedded-arpeggio,.trail-step .lesson-method{width:100%;box-sizing:border-box}.trail-step:has(.lesson-method)>.trail-step-actions>button[data-expanded-view]{display:none}@media(max-width:480px){.note-practice{padding:12px}.np-controls{gap:12px}.np-controls label{max-width:100%}.np-board-wrap{overscroll-behavior-x:contain}}

.lesson-library-review{grid-column:1/-1;min-width:0;padding:16px;border:1px solid #776c4c;border-radius:10px;background:#24231d}.lesson-library-review>summary{cursor:pointer;min-height:44px;font-weight:700;color:#f0d99b}.lesson-continuity{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;border-top:1px solid #44444b;padding-top:16px}.lesson-continuity button{white-space:normal;text-align:left;min-height:44px;max-width:100%}.trail-step{scroll-margin-top:90px}

/* Shared in-place library lessons, including narrow mobile cards. */
.learning-specific{grid-column:1/-1;min-width:0;width:100%;box-sizing:border-box}.learning-specific .learning-demo{min-width:0}.learning-specific .note-practice,.learning-specific .inline-practice{margin:16px 0}.learning-specific>label{display:flex;flex-wrap:wrap;gap:8px}.learning-reference{font-size:.875rem;color:#d7c390;line-height:1.6}.native-learning-guide{margin:12px 0;padding:12px;border:1px solid #487274;border-radius:10px;background:#132528}.native-learning-guide>summary{cursor:pointer;font-weight:700;color:#79e7cf}.learning-next{margin-top:12px;white-space:normal;text-align:left}.learning-specific select{max-width:100%;min-height:44px}.learning-specific .ip-chords{max-width:100%;overflow-x:auto}.np-notes small{display:block;white-space:normal}@media(max-width:480px){.learning-specific .lesson-method>div{padding:12px}.learning-specific .inline-practice{padding:12px}.learning-specific .ip-controls{display:flex;flex-direction:column;align-items:stretch}.learning-specific .ip-controls label{max-width:100%}}

.zero-instrument-map{display:block;width:100%;height:auto;background:#202126;border-radius:12px;margin:16px 0}.library-learning-method{max-width:1200px;margin:16px auto;box-sizing:border-box}
