:root{--bg:#f7f9f8;--surface:#fff;--ink:#193c32;--muted:#7b8882;--accent:#255d4a;--line:#e1e8e4;--canvas:#eef3f0;--radius:12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft Yahei",sans-serif}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:1px solid var(--line);background:white;border-radius:8px;padding:10px 17px;color:var(--ink);font-size:13px;font-weight:550;transition:background .15s,border-color .15s}button:hover{background:#eff4f1;border-color:#adc2b5}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#1b4939;color:white}header{height:80px;border-bottom:1px solid var(--line);background:#ffffffb8}.header-inner{max-width:1320px;margin:auto;height:100%;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{font-family:Georgia,"Songti SC",serif;white-space:nowrap;font-size:26px;font-weight:650;letter-spacing:2px;display:flex;align-items:center;gap:10px}.brand small{font-size:16px;letter-spacing:1px;font-weight:400}.brand em{font-size:20px;font-style:normal;color:#94a59b;font-weight:400}nav{display:flex;align-self:stretch;gap:36px}nav a{display:flex;align-items:center;font-size:14px;color:#75857d;border-bottom:3px solid transparent;padding-top:3px}nav a.active{color:var(--ink);border-color:var(--accent);font-weight:650}.quiet{background:transparent;border:0;color:#77867e;padding:8px 0;font-weight:400}.quiet:hover{background:transparent;color:var(--accent)}main{max-width:1320px;padding:38px 40px 0;margin:auto}.intro{margin-bottom:28px}h1{font-family:Georgia,"Songti SC",serif;font-size:38px;line-height:1.35;font-weight:650;letter-spacing:1px;margin:0 0 8px}.intro p{color:var(--muted);font-size:15px;margin:0}h2{font-size:19px;margin:0;letter-spacing:.5px}p{line-height:1.8}.editor-shell{display:grid;grid-template-columns:1.12fr 1fr;padding:20px;gap:28px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.canvas{background:var(--canvas);border-radius:8px;padding:20px;min-width:0}.canvas-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.tools{display:flex;gap:6px}.tools button{font-size:12px;padding:9px 13px;white-space:nowrap}.tools .active{background:var(--accent);color:#fff;border-color:var(--accent)}.fret-control{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px;white-space:nowrap}.fret-control input{width:60px;padding:7px 8px;margin:0;background:#fff}.diagramwrap{display:flex;align-items:center;justify-content:center;padding:8px 0 0;min-height:298px}#board svg{width:270px;height:288px;touch-action:none;user-select:none}.canvas-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:0}.hint{font-size:11px;color:var(--muted);min-height:20px;margin:6px 0 0}.bar-settings{font-size:12px;display:flex;align-items:center;gap:12px;margin-top:10px}.bar-settings[hidden]{display:none}.bar-settings select{width:100px;padding:5px 8px;margin:0}label{display:block;color:#344d41;font-size:12px;font-weight:550}input,select,textarea{width:100%;display:block;border:1px solid #d7e0da;border-radius:7px;background:#fff;padding:11px 13px;margin-top:8px;color:var(--ink);font-weight:400;transition:border-color .15s}input:focus,textarea:focus,select:focus{outline:2px solid #d7e7dc;border-color:#7ca18b}input::placeholder,textarea::placeholder{color:#a3ada7}textarea{min-height:80px;resize:vertical}form{padding:8px 3px 4px 0;display:flex;flex-direction:column;gap:21px;min-width:0;border-left:1px solid var(--line);padding-left:28px}details summary{cursor:pointer;list-style:none;color:#61776a;font-size:12px}details summary:before{content:'+';display:inline-block;font-size:16px;margin-right:8px}details[open] summary:before{content:'−'}form .primary{width:100%;padding:12px;margin-top:auto}.submit-note{font-size:11px;color:#8b9890;text-align:center;margin:-12px 0 0}.feedback{font-size:12px;color:var(--accent);min-height:0}.feedback:empty{display:none}.library{margin-top:24px;background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px}.library-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.title-inline{display:flex;align-items:center;gap:12px}.count{font-size:12px;color:#8c9991;font-weight:400}.search{width:min(350px,55%);margin:0;background:#fbfcfb;padding:10px 14px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}.card{border:1px solid var(--line);border-radius:9px;padding:18px;min-width:0;cursor:pointer}.card:hover{border-color:#a6beae}.cardtitle{display:flex;justify-content:space-between;align-items:center}.card h3{font-size:23px;margin:0}.card small{font-size:11px;color:var(--muted)}.card svg{width:100%;height:175px}.alias{font-size:12px;color:#5d7366}.cardnote{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.variants{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.variants button{font-size:11px;padding:4px 8px}.empty{grid-column:1/-1;text-align:center;padding:24px 15px 32px;color:#85938a}.empty svg{width:36px;height:36px;display:block;margin:0 auto 10px;color:#aebeb3}.empty h3{font-size:14px;font-weight:500;margin:0 0 3px;color:#6f8175}.empty p{font-size:12px;margin:0}.load-state{font-size:12px;color:var(--muted);text-align:center;margin:10px 0 0}.load-state:empty{display:none}#more{display:block;margin:20px auto 0}#more[hidden]{display:none}footer{max-width:1320px;margin:24px auto 0;padding:0 40px 24px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#96a198}footer a:hover{color:var(--ink)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:13px 22px;display:none;z-index:100;box-shadow:0 8px 25px #183a3220;max-width:90vw;font-size:13px}dialog{width:min(480px,90vw);border:1px solid var(--line);border-radius:16px;padding:28px;color:var(--ink);box-shadow:0 20px 80px #173a3220}dialog::backdrop{background:#0e2a2440}dialog h2{margin-bottom:20px}dialog p{font-size:13px;color:#697e70}dialog .close{float:right;margin-top:-8px}.admin-shell{max-width:1360px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.admin-heading h1{font-family:inherit;font-size:27px;letter-spacing:0}.admin-heading p{font-size:13px;margin:6px 0 0;color:var(--muted)}.review-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:22px}.filters{display:flex;gap:4px;background:#eaf0eb;border-radius:9px;padding:4px}.filters button{background:transparent;border-color:transparent;font-weight:400;padding:7px 15px}.filters .active{background:#fff;box-shadow:0 1px 4px #203c3210;color:var(--accent);font-weight:650}.review-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.review-row{display:grid;grid-template-columns:120px 1fr 150px;gap:26px;padding:24px;border-bottom:1px solid var(--line);align-items:center}.review-row:last-child{border-bottom:0}.review-figure{background:#f2f6f3;border-radius:8px;padding:4px}.review-figure svg{width:100%;height:145px;display:block}.review-body h3{font-size:23px;margin:0;display:flex;gap:14px;align-items:center}.status{font-size:10px;border-radius:5px;padding:3px 7px;font-weight:400;background:#eef3ef;color:#5c7564}.status.pending{background:#faf1df;color:#9d7b34}.status.rejected{background:#f2f1ef;color:#8d8b83}.byline{color:#8b978e;font-size:11px;margin:5px 0 10px}.review-note{font-size:12px;color:#617466;margin:4px 0}.review-actions{display:flex;flex-direction:column;gap:8px}.review-body details{margin-top:12px;max-width:550px}.review-body input,.review-body textarea{font-size:13px;margin-top:10px}.review-body details button{margin-top:10px}.admin-stats{font-size:12px;color:var(--muted);margin-top:8px}.signin-panel{max-width:450px;margin:90px auto;padding:35px;background:white;border:1px solid var(--line);border-radius:14px;text-align:center}.signin-panel p{color:var(--muted);font-size:13px;margin:14px 0 25px}.signin-panel .primary{display:inline-block;padding:10px 24px;border-radius:8px}.section-active{border-bottom-color:var(--accent)}[hidden]{display:none!important}@media(max-width:1000px){.header-inner{padding:0 28px}main{padding:30px 28px 0}.editor-shell{gap:20px;grid-template-columns:1fr 1fr}.canvas{padding:16px}.canvas-head{flex-wrap:wrap}form{padding-left:20px}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}h1{font-size:34px}.brand small{font-size:12px}nav{gap:24px}footer{padding-left:28px;padding-right:28px}}@media(max-width:720px){header{height:68px}.header-inner{padding:0 20px;gap:16px}.brand{font-size:23px;gap:0}.brand small,.brand em{display:none}nav{gap:20px}nav a{font-size:12px}.quiet{font-size:11px}main{padding:26px 18px 0}.intro{margin-bottom:20px}h1{font-size:27px}.intro p{font-size:13px}.editor-shell{grid-template-columns:1fr;padding:12px;gap:20px}.canvas{padding:14px}.canvas-head{flex-wrap:nowrap;gap:8px}.tools{gap:4px}.tools button{font-size:11px;padding:8px 10px}.fret-control{font-size:10px;gap:5px}.fret-control input{width:48px;padding:6px}form{border-left:0;border-top:1px solid var(--line);padding:22px 8px 10px;gap:18px}.diagramwrap{min-height:275px}#board svg{height:270px;width:250px}.library{padding:18px 14px;margin-top:20px}.library-head{gap:10px}h2{font-size:17px}.search{font-size:12px;width:54%}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{padding:12px}.card h3{font-size:20px}.card svg{height:150px}.card small{font-size:10px}.count{font-size:10px}.empty{padding:22px 0}footer{padding:0 20px 20px;font-size:10px}.admin-heading{align-items:start}.admin-heading h1{font-size:24px}.admin-heading button{font-size:11px;padding:8px 12px}.review-toolbar{flex-direction:column;align-items:stretch;gap:12px}.review-toolbar .search{width:100%}.filters{justify-content:space-between}.filters button{padding:6px 10px;font-size:11px}.review-row{grid-template-columns:86px 1fr;gap:15px;padding:18px 14px}.review-figure svg{height:115px}.review-actions{grid-column:1/-1;flex-direction:row;justify-content:flex-end}.review-actions button{font-size:11px;padding:7px 14px}.review-body h3{font-size:20px}.review-body details{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
