@font-face{font-family:Newsreader;src:url(/fonts/newsreader-regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Bravura;src:url(/fonts/bravura.otf)format("opentype");font-display:block}@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-sans-regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-sans-medium.woff2)format("woff2");font-weight:500;font-display:swap}:root{--background:#f6f1e7;--surface:#fffdf8;--surface-container:#ece3d3;--outline-variant:#e2d9c8;--outline:#d9cdb8;--on-surface:#1e1b16;--on-surface-variant:#6b6358;--primary:#8c2f25;--on-primary:#fffdf8;--primary-container:#f1e3dc;--error:#9e2b25;--serif:"Newsreader", Georgia, serif;--sans:"IBM Plex Sans", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--background);min-height:100%;color:var(--on-surface);font-family:var(--sans);margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.2}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--outline-variant);align-items:stretch;gap:24px;min-height:56px;padding:0 24px;display:flex}.brand{font-family:var(--serif);color:var(--primary);align-items:center;font-size:22px;font-weight:500;display:flex}.nav{gap:8px;display:flex}.nav a{min-height:56px;color:var(--on-surface-variant);border-bottom:2px solid #0000;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.nav a.active{color:var(--on-surface);border-bottom-color:var(--primary);font-weight:500}.page{max-width:960px;margin:0 auto;padding:32px 24px}.muted{color:var(--on-surface-variant)}button{min-height:48px;font:inherit;color:var(--on-surface);background:var(--surface);border:1px solid var(--outline);cursor:pointer;border-radius:8px;padding:0 16px}button.primary{color:var(--on-primary);background:var(--primary);border-color:var(--primary);font-weight:500}.update{background:var(--surface);border:1px solid var(--outline);border-radius:12px;align-items:center;gap:12px;padding:8px 8px 8px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #1e1b161f}.note{background:var(--primary-container);border-left:3px solid var(--primary);border-radius:4px;padding:12px 16px}.error{color:var(--error);font-weight:500}.join-form label{margin-bottom:8px;font-weight:500;display:block}.join-row{flex-wrap:wrap;gap:12px;display:flex}.code-input{width:11em;min-height:48px;font:500 22px/1 var(--sans);letter-spacing:.12em;color:var(--on-surface);background:var(--surface);border:1px solid var(--outline);border-radius:8px;padding:0 12px}.code-input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.code-input[aria-invalid=true]{border-color:var(--error);border-width:2px}button:disabled{opacity:.5;cursor:default}.check{background:var(--surface);border:1px solid var(--outline-variant);border-radius:12px;max-width:520px;margin-top:8px;padding:24px}.check h2{margin:0 0 8px}.verify{font:500 72px/1.1 var(--serif);letter-spacing:.08em;color:var(--primary);font-variant-numeric:tabular-nums;margin:0}.sync{color:var(--on-surface-variant);align-self:center;align-items:center;gap:12px;margin-left:auto;font-size:14px;display:flex}.sync-problem{color:var(--error);font-weight:500}.tabs{border-bottom:1px solid var(--outline-variant);gap:4px;margin-bottom:24px;display:flex}.tabs [role=tab]{color:var(--on-surface-variant);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0}.tabs [role=tab][aria-selected=true]{color:var(--on-surface);border-bottom-color:var(--primary);font-weight:500}.search,.row input,.row select{min-height:44px;font:inherit;color:var(--on-surface);background:var(--surface);border:1px solid var(--outline);border-radius:8px;padding:0 12px}.search{width:100%;max-width:480px;margin-bottom:20px}.score-grid,.setlist-list,.pieces{margin:0;padding:0;list-style:none}.score-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.setlist-list{gap:12px;max-width:640px;display:grid}.score-card,.setlist-card{text-align:left;background:var(--surface);border:1px solid var(--outline-variant);border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:112px;padding:16px;display:flex}.setlist-card{min-height:72px}.score-card:hover,.setlist-card:hover{border-color:var(--outline)}.score-title{font:500 19px/1.25 var(--serif);color:var(--on-surface)}.score-composer,.score-meta{color:var(--on-surface-variant);font-size:14px}.score-meta{flex-wrap:wrap;gap:12px;margin-top:auto;display:flex}.file-state.cloud{font-style:italic}.row{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.row label{font-weight:500}.pieces li{border-bottom:1px solid var(--outline-variant);align-items:center;gap:8px;padding:8px 0;display:flex}.piece-title{flex:1}.link-button,a.button{border-radius:8px;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;display:inline-flex}.link-button{color:var(--primary);background:0 0;border:none;padding:0}a.button.primary{color:var(--on-primary);background:var(--primary);font-weight:500}.confirm{background:var(--surface);border:1px solid var(--error);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;padding:16px;display:flex}.confirm p{flex-basis:100%;margin:0}button.danger{color:var(--on-primary);background:var(--error);border-color:var(--error)}button.danger-outline{color:var(--error);border-color:var(--error);margin-top:24px}.setlist-editor{max-width:720px}.reader{flex-direction:column;height:calc(100vh - 57px);padding:0 16px 8px;display:flex}.reader-bar{align-items:center;gap:16px;min-height:48px;display:flex}.reader-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:20px;overflow:hidden}.pdf-reader{flex-direction:column;flex:1;min-height:0;display:flex}.page-box{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.page-frame{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;position:relative;overflow:hidden;box-shadow:0 1px 4px #1e1b162e}.page-canvas canvas{position:absolute}.page-overlay{position:absolute;inset:0}.page-error{text-align:center;color:var(--error);position:absolute;inset:40% 10% auto}.page-label{text-align:center;color:var(--on-surface-variant);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:14px}.annotation-layer{pointer-events:none;position:absolute;inset:0}.sync-now{min-height:44px;padding:0 12px;font-size:14px}.page-overlay .ink-layer{touch-action:none;cursor:crosshair;position:absolute;inset:0}.page-overlay{pointer-events:none}.page-overlay .ink-layer{pointer-events:auto}.ink-toolbar{flex-wrap:wrap;align-items:center;gap:8px 16px;padding:4px 0 8px;display:flex}.segmented{border:1px solid var(--outline);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--outline-variant);border-radius:0;min-height:44px}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--primary-container);box-shadow:inset 0 -3px 0 var(--primary);font-weight:500}.swatches{gap:6px;display:inline-flex}.swatch{border:2px solid var(--outline);border-radius:50%;width:44px;min-height:44px;padding:0}.swatch[aria-pressed=true]{border:4px solid var(--on-surface);outline:2px solid var(--surface);outline-offset:-6px}.finger-toggle{align-items:center;gap:8px;min-height:44px;display:inline-flex}.reader-chrome{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:6px;font-size:14px;display:flex}.pdf-reader:fullscreen{background:var(--background);padding:8px}
