:root{font-family:"Segoe UI",system-ui,sans-serif;color:#eef2f5;background:#101315;--muted:#a3adb3;--line:#30373c;--green:#c4f474;--pink:#ff839c;--surface:#191e21;font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit}button,summary{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:4px}a{color:inherit}.topbar{height:88px;max-width:1600px;margin:auto;padding:0 44px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:2px;text-decoration:none;font-size:20px}.brand-symbol{display:grid;place-items:center;width:34px;height:34px;background:var(--green);color:#17200e;border-radius:9px;font-size:23px;font-style:italic;letter-spacing:-4px;padding-right:4px}.tag{font-size:11px;letter-spacing:2px;color:var(--muted)}.local-label{margin-left:auto;font-size:12px;color:#c7d0d5;white-space:nowrap}.local-label span{color:var(--green);margin-right:6px}.layout{display:grid;grid-template-columns:300px minmax(0,1fr);max-width:1600px;margin:auto}.sidebar{padding:40px 24px 30px 44px;border-right:1px solid var(--line)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);margin:0 0 12px}h1{font-size:30px;line-height:1.16;letter-spacing:-1px;margin:0 0 18px;font-weight:650}.muted{color:var(--muted);font-size:13px;line-height:1.6}.intro{max-width:210px}.history-summary{margin:26px 0 32px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.9}.history-summary strong{color:#e5ebee;font-weight:600}.list-heading{display:flex;justify-content:space-between;font-size:12px;font-weight:500;margin-bottom:14px;color:#c5cdd2}.list-heading span{color:var(--muted)}#sessions{display:grid;gap:8px}.session-button{display:block;width:100%;text-align:left;border:1px solid transparent;background:none;color:#d7dfe3;border-radius:12px;padding:15px 14px;min-height:85px}.session-button:hover{background:#1d2327}.session-button[aria-pressed=true]{background:#232c20;border-color:#78964d}.session-date{display:flex;align-items:baseline;justify-content:space-between;font-size:14px;font-weight:600}.session-date time{color:var(--muted);font-size:11px;font-weight:400}.session-meta{display:block;margin-top:9px;font-size:12px;color:var(--muted)}.session-button[aria-pressed=true] .session-meta{color:#c4d5b0}.sidebar-note{font-size:11px;color:var(--muted);line-height:1.7;margin-top:28px;max-width:210px}.content{min-width:0;padding:40px 40px 25px}.session-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.session-header h2{font-size:30px;font-weight:600;letter-spacing:-.8px;margin:0}.session-header .muted{margin:8px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.button{min-height:42px;border:1px solid var(--green);background:var(--green);color:#1c2510;font-size:12px;font-weight:600;padding:10px 15px;border-radius:8px;white-space:nowrap}.button:hover{filter:brightness(1.08)}.secondary{border-color:var(--line);background:transparent;color:#e4eaee}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.metric{padding:21px 20px;background:var(--surface);border:1px solid var(--line);border-radius:13px}.metric-label{font-size:11px;color:#b0bac1;margin:0 0 15px}.metric-value{font-size:32px;font-weight:600;letter-spacing:-1px;margin:0;font-variant-numeric:tabular-nums}.metric-value span{font-size:13px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:5px}.metric-note{font-size:10px;color:var(--muted);margin:10px 0 0}.metric:first-child .metric-value{color:var(--green)}.metric:nth-child(3) .metric-value,.metric:nth-child(4) .metric-value{color:var(--pink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:20px}.chart-card{padding:25px 24px 16px}.card-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.card-heading .eyebrow{margin-bottom:8px}h3{font-size:18px;font-weight:550;margin:0;letter-spacing:-.3px}.legend{font-size:11px;color:#c5cdd2;white-space:nowrap;display:flex;align-items:center;gap:7px}.legend i{height:7px;width:7px;background:var(--pink);border-radius:50%}.chart-description{font-size:11px;max-width:680px;margin:13px 0}.chart{width:100%;min-height:245px}.chart svg{display:block;width:100%;height:auto;touch-action:pan-y}.chart-detail{font-size:12px;min-height:21px;margin:0 0 10px;color:#d5ded8}.chart-footer{border-top:1px solid var(--line);padding-top:13px;min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px}.text-button{background:none;border:0;color:var(--green);padding:8px;font-size:11px;min-height:36px}.songs-card .card-heading{padding:24px}.pill{border:1px solid var(--line);border-radius:20px;padding:5px 10px;color:var(--muted);font-size:11px;white-space:nowrap}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{color:var(--muted);font-weight:400;font-size:10px;padding:12px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:14px 24px;border-bottom:1px solid #2a3135;color:#cbd4da;white-space:nowrap}tr:last-child td{border-bottom:0}.numeric{text-align:right;font-variant-numeric:tabular-nums}.song-button{background:transparent;border:0;color:#edf2f5;text-align:left;padding:3px 0;display:flex;align-items:center;gap:13px;min-height:36px;max-width:400px;font-size:12px;white-space:normal}.song-index{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:7px;background:#283034;color:#c4ced4;font-size:10px}.song-title{line-height:1.45}.song-button:hover{color:var(--green)}tr.selected{background:#253021}.selected .song-index{background:var(--green);color:#15220a}.difficulty{font-size:10px;padding:4px 7px;border:1px solid #43505b;border-radius:5px;color:#d3dde5}.modifiers{display:block;margin-top:3px;color:var(--muted);font-size:10px}.method{padding:18px 22px;font-size:12px;color:var(--muted);line-height:1.7}.method summary{color:#d4dee4;min-height:28px}.method p{margin:12px 0}.page-footer{font-size:10px;color:var(--muted);line-height:1.7;padding:0 3px 8px}.sr-only,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;top:10px;left:10px;width:auto;height:auto;clip-path:none;padding:12px;background:#101315;z-index:10}noscript{padding:30px;display:block}[hidden]{display:none!important}
@media(min-width:1500px){.chart{min-height:300px}}@media(max-width:1100px){.topbar{padding:0 25px}.layout{grid-template-columns:245px minmax(0,1fr)}.sidebar{padding-left:25px;padding-right:18px}.content{padding:32px 24px}.session-header{align-items:flex-start;flex-direction:column}.metrics{gap:8px}.metric{padding:17px 13px}.metric-value{font-size:27px}th,td{padding-left:17px;padding-right:17px}.legend{font-size:10px}}@media(max-width:760px){.topbar{height:72px;padding:0 20px;gap:12px}.brand{font-size:17px}.tag{display:none}.layout{display:block}.sidebar{padding:25px 20px 20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar h1,.sidebar .intro,.sidebar>.eyebrow,.history-summary,.sidebar-note{display:none}.list-heading{margin:0 0 12px}#sessions{display:flex;overflow-x:auto;gap:9px;padding:3px 3px 9px}.session-button{width:165px;flex:0 0 165px;min-height:77px;background:var(--surface);padding:12px}.session-date{font-size:12px}.session-meta{font-size:11px}.content{padding:25px 16px}.session-header h2{font-size:26px}.session-header{gap:16px;margin-bottom:20px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:18px}.metric-value{font-size:31px}.card-heading{gap:12px;align-items:flex-start}.chart-card{padding:20px 14px 12px}.chart-card .card-heading{flex-direction:column}.chart-description{font-size:11px}.chart{min-height:180px}.chart svg{min-height:190px}.chart-detail{font-size:11px}.chart-footer{align-items:flex-start}.songs-card .card-heading{padding:20px 17px}h3{font-size:17px}th,td{padding:12px 15px}.song-button{min-width:215px}.method{padding:17px}.actions .button{min-height:44px}}
@media print{:root{color:#111;background:white;--muted:#555;--line:#ccc;--surface:white;--pink:#ad2346;--green:#356500;color-scheme:light}.topbar,.sidebar,.actions,.text-button,.page-footer,.skip{display:none}.layout{display:block}.content{padding:0}.card,.metric{break-inside:avoid;border-color:#ccc}.metric-value,.song-button,td,.chart-detail,h3,.session-header h2{color:#111!important}.metrics{grid-template-columns:repeat(4,1fr)}.chart svg{min-height:0}.method{display:none}.songs-card{break-inside:auto}.selected{background:#f0f4ec!important}.song-index{background:#eee;color:#111}.table-scroll{overflow:visible}}
.reading-control{display:flex;gap:15px;align-items:center;margin:0 0 14px;font-size:11px;color:var(--muted)}.reading-control label{white-space:nowrap}.reading-control input{accent-color:var(--green);width:100%;min-width:0;min-height:30px}.reading-control input:focus-visible{outline:3px solid var(--green);outline-offset:3px}@media print{.reading-control{display:none}}
.auth{max-width:560px;margin:64px auto;padding:32px}.auth h1{font-size:30px}.auth form{display:grid;gap:12px;margin-top:24px}.auth label,.upload label,.settings label{font-size:12px;color:#d1dade}input{font:inherit;color:inherit;border:1px solid #5b676d;border-radius:7px;background:#101315;min-height:44px;padding:10px;max-width:100%}input:focus-visible{outline:3px solid var(--green);outline-offset:3px}button:disabled{opacity:.55;cursor:wait}.feedback{font-size:12px;color:#d4ded3;line-height:1.6;margin:12px 0 0;overflow-wrap:anywhere}.sync{padding:24px}.sync h2{font-size:17px;margin:0}.sync-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:12px 0}.sync-grid p{margin:10px 0;font-size:12px}.sync-grid span,.sync-grid strong{display:block}.sync-grid strong{font-weight:500;margin-top:6px;line-height:1.6}.upload{border-top:1px solid var(--line);padding-top:20px;margin-top:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.upload label{width:100%}.upload input{flex:1;min-width:180px;font-size:12px}.upload input::file-selector-button{font:inherit;background:#2b363e;border:0;border-radius:4px;color:#eef2f5;padding:8px;margin-right:10px}.pairing{margin-top:18px;font-size:12px;color:var(--muted);line-height:1.7}.pairing summary{color:#d1dade;min-height:36px;padding:8px 0}.pairing strong{overflow-wrap:anywhere}.settings{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:12px;border-top:1px solid var(--line);padding-top:20px;margin-top:18px}.settings input{width:85px}.session-state{display:inline-block;font-size:12px;line-height:1.5;border:1px solid #70834b;border-radius:6px;color:#d6e8bf;background:#263020;padding:8px 12px;margin:0 0 18px}.session-state[data-state=ambiguous]{color:#ffdbab;border-color:#aa7e40;background:#352b1e}#session-notes:empty{display:none}.empty{padding:30px;font-size:14px;line-height:1.7;color:var(--muted)}.cover-tile{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:7px;overflow:hidden;background:#2d3830;color:#c4f474;font-size:20px;font-weight:650}.cover-tile img{display:block;width:100%;height:100%;object-fit:cover}.song-button{max-width:500px}.session-button{min-height:110px}.song-index{flex-basis:23px;width:23px}#session-notes{padding-left:20px}.local-label{font-size:11px}.content{padding-top:28px}
@media(max-width:1100px){.sync-grid{grid-template-columns:1fr;gap:0}.sync-grid p{display:flex;justify-content:space-between;gap:15px}.sync-grid strong{margin:0;text-align:right}.upload input{flex-basis:100%}.upload .button{width:100%}}
@media(max-width:760px){.auth{margin:25px 16px;padding:24px}.sync{padding:18px}.sync-grid p{display:block}.sync-grid strong{text-align:left;margin-top:3px}.settings label{width:100%}.session-button{min-height:110px}.content{padding-top:20px}.local-label{font-size:10px}.settings .button{flex:1}.song-button{min-width:245px}.cover-tile{flex-basis:36px;width:36px;height:36px}.sync .card-heading{align-items:center}.sync .card-heading .button{white-space:normal}.feedback{min-height:19px}}
@media print{.auth,.sync,#empty,#disconnect,.feedback{display:none!important}.session-state{background:white;color:#111;border-color:#999}.cover-tile{print-color-adjust:exact;-webkit-print-color-adjust:exact}.chart-card{break-inside:avoid}.songs-card tr{break-inside:avoid}.song-button{max-width:none}.session-header{margin-top:0}.chart svg text{fill:#333}.chart svg line{stroke:#aaa}.table-scroll{overflow:visible}.content{padding:0}}
