:root{--background:#fafaf8;--foreground:#171717;--card:#fff;--muted:#f2f2ef;--muted-foreground:#666761;--border:#deded9;--input:#d4d4ce;--accent:#eaeae6;--danger:#a33328;--radius:6px;--font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-music:Georgia,"Times New Roman",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font:14px/1.5 var(--font-ui);margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline-offset:2px;outline:2px solid #555}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button{border-radius:var(--radius);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-weight:560;transition:background .15s,border-color .15s;display:inline-flex}.button:hover{text-decoration:none}.button-default{min-height:38px;padding:0 14px}.button-sm{min-height:32px;padding:0 10px;font-size:12px}.button-icon{width:36px;height:36px}.button-primary{color:#fff;background:#171717}.button-primary:hover{background:#333}.button-outline{border-color:var(--border);color:#333;background:#fff}.button-outline:hover,.button-ghost:hover{background:var(--accent)}.button-ghost{color:#555;background:0 0}.button-danger{background:var(--danger);color:#fff}.button-danger:hover{background:#8c2c23}.input{border:1px solid var(--input);border-radius:var(--radius);width:100%;min-height:38px;color:var(--foreground);background:#fff;padding:8px 10px;display:block}.input::placeholder{color:#92928c}.field-label{color:#52524f;gap:7px;font-size:12px;font-weight:600;display:grid}.field-label .input{font-weight:400}.form-error,.inline-error{color:var(--danger);font-size:12px}.form-success{color:#376342;font-size:12px}.muted{color:var(--muted-foreground);font-size:12px}.app-shell{grid-template-columns:238px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#f7f7f5;flex-direction:column;height:100vh;padding:23px 12px 12px;display:flex;position:sticky;top:0;overflow:auto}.sidebar-head{padding:0 11px 31px}.brand{letter-spacing:-.045em;align-items:center;gap:10px;font-size:18px;font-weight:670;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{width:29px;height:29px;font:21px/1 var(--font-music);border:1.5px solid #222;border-radius:50%;place-items:center;display:grid}.nav-section{border-bottom:1px solid var(--border);padding-bottom:18px}.nav-link{color:#575751;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:10px;width:100%;min-height:35px;padding:6px 10px;font-size:12px;display:flex}.nav-link:hover{background:var(--accent);color:var(--foreground);text-decoration:none}.nav-link.active{color:var(--foreground);background:#e9e9e5;font-weight:650}.nav-link span:not(.nav-count){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nav-count{color:#868680;margin-left:auto;font:11px ui-monospace,monospace}.nav-label-row{letter-spacing:.12em;color:#888;justify-content:space-between;align-items:center;padding:24px 10px 9px;font-size:10px;font-weight:700;display:flex}.icon-button{color:#73736e;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.icon-button:hover{background:var(--accent);color:#222}.nav-row{align-items:center;min-width:0;display:flex}.nav-row .nav-link{flex:1;min-width:0}.nav-row .subtle{visibility:hidden}.nav-row:hover .subtle,.nav-row:focus-within .subtle{visibility:visible}.nav-folder{gap:6px}.nav-folder span{flex:1}.nav-book{padding-left:24px}.nav-children{padding-left:12px}.nav-add{color:#83837e;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:7px;width:100%;padding:8px 10px;font-size:12px;display:flex}.nav-add:hover{background:var(--accent);color:#222}.nav-add.nested{padding-left:24px}.sidebar-bottom{border-top:1px solid var(--border);align-items:center;gap:9px;margin-top:auto;padding:15px 7px 3px;font-size:12px;display:flex}.user-initial{background:#e3e3dd;border-radius:50%;place-items:center;width:27px;height:27px;font-weight:700;display:grid}.user-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.mobile-menu-button,.mobile-close,.mobile-scrim{display:none}.main-content{min-width:0}.page-wrap{max-width:1120px;margin:0 auto;padding:61px clamp(25px,5vw,72px) 100px}.page-head{justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:38px;display:flex}.page-head h1{letter-spacing:-.065em;margin:10px 0;font-size:clamp(36px,5vw,56px);font-weight:570;line-height:1.06}.eyebrow{letter-spacing:.15em;color:#777872;text-transform:uppercase;margin:0;font-size:10px;font-weight:730}.page-subtitle{color:var(--muted-foreground);margin:0;font-size:14px}.heading-count{vertical-align:middle;color:#989892;letter-spacing:0;margin-left:14px;font:13px ui-monospace,monospace;display:inline-block}.tune-list{border-top:1px solid var(--border)}.tune-list-row{border-bottom:1px solid var(--border);align-items:center;gap:17px;min-height:76px;padding:14px 7px;display:flex}.tune-list-icon{color:#555;background:#eeeee9;border-radius:5px;flex:none;place-items:center;width:37px;height:37px;display:grid}.tune-list-main{flex:1;gap:2px;min-width:0;display:grid}.tune-list-title{font:22px/1.25 var(--font-music);letter-spacing:-.025em}.tune-list-meta{color:#777;font-size:11px}.tune-actions{align-items:center;gap:7px;display:flex}.add-book{color:#777;align-items:center;gap:5px;font-size:12px;display:flex}.add-book select{color:#555;cursor:pointer;background:0 0;border:0;max-width:130px}.inline-error{max-width:200px}.empty-state{border:1px solid var(--border);text-align:center;background:#fff;padding:55px 25px}.empty-state h2{font:28px var(--font-music);margin:15px 0 6px}.empty-state p{color:var(--muted-foreground);max-width:350px;margin:0 auto 24px}.empty-icon{border:1px solid var(--border);color:#666;border-radius:50%;place-items:center;width:54px;height:54px;display:inline-grid}.back-link{color:#666;align-items:center;gap:6px;margin-bottom:35px;font-size:12px;display:inline-flex}.hint-panel{border:1px solid var(--border);color:#777;background:#fff;padding:20px;font-size:12px}.search-form{border:1px solid var(--border);color:#777;background:#fff;align-items:center;gap:10px;margin:38px 0 30px;padding:8px 9px 8px 15px;display:flex}.search-form .input{box-shadow:none;border:0;font-size:14px}.search-form .input:focus{outline:0}.results-heading{justify-content:space-between;align-items:center;gap:12px;margin:20px 0 13px;display:flex}.results-heading h2{margin:0;font-size:15px}.results-heading span{color:#888;font-size:11px}.results-heading a{text-decoration:underline}.book-add{border:1px solid var(--border);background:#fff;max-width:440px;margin-bottom:32px;padding:16px 19px}.book-scores{border-top:1px solid var(--border)}.book-score{border-bottom:1px solid var(--border);grid-template-columns:46px minmax(0,1fr);gap:15px;padding:40px 0;display:grid}.score-order{color:#a2a29c;flex-direction:column;align-items:center;gap:11px;font:12px ui-monospace,monospace;display:flex}.score-order>div{display:grid}.book-score-content{min-width:0}.book-score-content>.tune-actions{justify-content:flex-end;margin-top:10px}.tune-page{max-width:950px}.score-sheet{break-inside:avoid;background:#fff;border:1px solid #e5e5e0;padding:clamp(20px,4vw,38px)}.score-header{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.score-header h2{font:normal clamp(30px,4vw,42px)/1.1 var(--font-music);letter-spacing:-.04em;margin:9px 0 7px}.score-meta{color:#777;margin:0;font-size:11px}.source-link{color:#777;white-space:nowrap;border-bottom:1px solid #aaa;font-size:11px}.notation-frame{min-width:0;margin:28px 0 19px;overflow-x:auto}.notation{min-width:650px}.notation svg{max-width:none!important}.notation .playing-note path,.notation .playing-note ellipse{fill:#a33328!important;stroke:#a33328!important}.player{border-top:1px solid var(--border);padding-top:17px}.player-primary{align-items:center;gap:7px;display:flex}.note-display{align-items:baseline;gap:9px;margin-left:auto;display:flex}.note-display span{letter-spacing:.13em;color:#888;font-size:9px;font-weight:700}.note-display strong{text-align:right;min-width:43px;font:18px ui-monospace,monospace}.player-progress{padding:15px 0 12px}.player input[type=range]{accent-color:#343434;cursor:pointer;width:100%}.player-options{color:#777;flex-wrap:wrap;align-items:center;gap:21px;font-size:11px;display:flex}.player-options label{align-items:center;gap:7px;display:flex}.player-options select{border:1px solid var(--border);color:#333;background:#fff;border-radius:4px;padding:5px 7px;font-size:11px}.player-options input[type=range]{width:95px}.player-status{color:#888;font-size:11px}.abc-details{border-top:1px solid var(--border);color:#666;margin-top:19px;padding-top:13px;font-size:12px}.abc-details summary{cursor:pointer}.abc-details pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f7f5;padding:16px;font:12px/1.6 ui-monospace,monospace}.attribution{color:#999;margin:17px 0 0;font-size:10px}.attribution a{text-decoration:underline}.dialog-overlay{z-index:30;background:#1414124d;position:fixed;inset:0}.dialog-content{z-index:31;border:1px solid var(--border);background:#fff;width:min(420px,100vw - 30px);padding:26px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 80px #00000021}.dialog-title{letter-spacing:-.04em;margin-bottom:20px;font-size:21px;font-weight:590}.dialog-actions,.manage-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.manage-actions{border-top:1px solid var(--border);justify-content:flex-start;padding-top:17px}.auth-screen{place-items:center;min-height:100vh;padding:32px;display:grid}.auth-card{border:1px solid var(--border);background:#fff;width:min(400px,100%);padding:36px 36px 32px}.auth-brand{margin-bottom:50px}.auth-card h1{letter-spacing:-.06em;margin:10px 0 6px;font-size:39px;font-weight:570}.auth-form{gap:16px;margin-top:30px;display:grid}.auth-submit{width:100%;margin-top:6px}.auth-divider{color:#999;align-items:center;gap:11px;margin:25px 0 13px;font-size:11px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-links{color:#666;justify-content:space-between;gap:12px;margin-top:24px;font-size:11px;display:flex}.auth-links a{text-decoration:underline}@media (max-width:760px){.app-shell{display:block}.mobile-menu-button{border:0;border-bottom:1px solid var(--border);text-align:left;background:#f7f7f5;align-items:center;gap:8px;width:100%;padding:12px 20px;font-weight:650;display:flex}.sidebar{z-index:21;width:min(280px,85vw);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.mobile-close{display:flex;position:absolute;top:24px;right:15px}.mobile-scrim{z-index:20;background:#00000040;border:0;display:block;position:fixed;inset:0}.page-wrap{padding:38px 20px 75px}.page-head{flex-wrap:wrap;margin-bottom:28px}.page-head h1{font-size:39px}.tune-list-row{flex-wrap:wrap;gap:10px}.tune-list-main{flex-basis:calc(100% - 60px)}.tune-actions{margin-left:46px}.search-form{flex-wrap:wrap}.search-form .input{flex:1;min-width:160px}.book-score{display:block}.score-order{flex-direction:row;justify-content:space-between;margin-bottom:12px}.score-order>div{display:flex}.score-sheet{padding:18px}.score-header{display:block}.source-link{margin-top:10px;display:inline-block}.player-options{gap:13px}.notation{min-width:620px}.auth-card{padding:25px}}@media print{body{background:#fff}.app-shell{display:block}.sidebar,.mobile-menu-button,.page-head .print-button,.page-subtitle,.book-add,.score-order,.player,.abc-details,.book-score-content>.tune-actions,.back-link{display:none!important}.page-wrap{max-width:none;padding:0}.page-head{margin:0 0 14px}.page-head h1{font-size:25px}.book-score{break-inside:avoid;border:0;margin:0 0 24px;padding:0;display:block}.score-sheet{break-inside:avoid;border:0;padding:0}.score-header h2{font-size:26px}.notation-frame{margin:12px 0;overflow:visible}.notation{min-width:0}.notation svg{max-width:100%!important}.attribution{color:#555;margin:5px 0 0}@page{margin:14mm}}
