@charset "UTF-8";
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#17261f;background:#f5f5ef;font-synthesis:none;--green:#c9f87b;--ink:#17261f;--muted:#5e6b62;--line:#dce1d6;--paper:#fff;--radius:18px}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,.file-button{cursor:pointer;touch-action:manipulation}button{min-height:46px;border:0;border-radius:12px;padding:11px 17px;font-weight:650}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,.file-button:focus-within{outline:3px solid #378166;outline-offset:3px}button:disabled{opacity:.55;cursor:default}button:hover{filter:brightness(.96)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(36px,5vw,60px);font-weight:650;letter-spacing:-2.5px;line-height:1.06;margin-bottom:20px}h2{font-size:25px;letter-spacing:-.7px;margin-bottom:8px}h3{font-size:18px;letter-spacing:-.3px;margin-bottom:5px}p{line-height:1.55}a{color:inherit}.top{height:85px;display:flex;align-items:center;justify-content:space-between;max-width:1120px;margin:auto;padding:0 28px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;gap:10px;align-items:center;font-size:19px;font-weight:750;letter-spacing:-.5px}.brandmark{background:var(--green);width:35px;height:35px;border-radius:11px;display:grid;place-items:center;font-size:29px;line-height:1}.mode{font-size:10px;font-weight:750;letter-spacing:1.5px;border:1px solid #ccd4c5;border-radius:30px;padding:8px 11px}.intro{padding:48px 0 25px;display:block;max-width:690px}.intro>p:last-child{max-width:560px;color:var(--muted);font-size:16px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:800;color:#687559;margin-bottom:15px}main{max-width:1064px;margin:auto;padding:0 28px 30px}.workspace{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 8px 40px #17261f05}.collection{display:flex;justify-content:space-between;gap:18px;align-items:center}.collection .eyebrow{margin-bottom:9px}.collection p:last-child{font-size:13px;color:var(--muted);margin-bottom:24px}.secondary{background:#f4f5ef;border:1px solid var(--line);color:var(--ink)}.primary{background:var(--ink);color:var(--green)}.progress-head{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-bottom:9px}#progress-text{font-weight:650;color:var(--ink)}progress{width:100%;height:7px;border:0;border-radius:10px;background:#edf0e7;display:block;overflow:hidden}progress::-webkit-progress-bar{background:#edf0e7}progress::-webkit-progress-value{background:#5a8750;border-radius:10px}.tabs{display:flex;gap:6px;margin:24px 0;border-bottom:1px solid var(--line);padding-bottom:12px}.tabs button{background:transparent;color:var(--muted);border-radius:10px}.tabs button[aria-pressed=true]{background:var(--ink);color:white}.tabs span{display:inline-block;background:#ffffff25;border-radius:5px;margin-left:5px;padding:1px 5px;font-size:11px}.search-label{display:block;font-size:12px;font-weight:650;margin:12px 0 8px}input:not([type=file]),textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fafbf7;color:var(--ink);min-height:46px}textarea{resize:vertical}#song-search{margin-bottom:18px}.song-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid #edf0e8}.song-row:last-child{border-bottom:0}.number{height:40px;min-width:40px;border-radius:12px;background:#f2f4eb;display:grid;place-items:center;color:#79856e;font-size:13px;font-weight:700}.song-info{flex:1;min-width:0}.song-info strong{display:block;font-size:15px;margin-bottom:4px;overflow-wrap:anywhere}.song-info p{font-size:12px;color:var(--muted);margin-bottom:6px;overflow-wrap:anywhere}.badge{display:inline-block;border-radius:5px;font-size:10px;padding:4px 6px;background:#eef2e8;color:#45603e;font-weight:650}.badge.pending{background:#fff0d9;color:#825515}.badge.manual{background:#e8f1ec;color:#2f674a}.badge.skip{background:#eee;color:#666}.song-row button{background:#eef1e6;font-size:12px;white-space:nowrap}.tools{border-top:1px solid var(--line);margin-top:24px;padding-top:15px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.text-button,.file-button{background:transparent;color:var(--muted);font-size:12px;font-weight:600;padding:12px 10px;min-height:46px;display:inline-flex;align-items:center;border-radius:10px}.file-button input{width:1px;height:1px;opacity:0;position:absolute}.footnote{max-width:800px;margin:22px auto;color:#76806f;font-size:11px;line-height:1.7;text-align:center}#notice:not(:empty){background:#fff2d9;border:1px solid #ebd6af;padding:12px 16px;border-radius:12px;font-size:13px;margin-bottom:18px}.review-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin:18px 0}.review-title p{color:var(--muted);font-size:13px;margin-bottom:8px}.review-title h2{overflow-wrap:anywhere}.back{background:transparent;padding-left:0;font-size:13px}.review-hint{background:#f4f6ef;padding:13px 16px;border-radius:12px;font-size:12px;color:var(--muted)}.selected-bar{border:1px solid #7b9c60;background:#f3fae9;padding:14px 16px;border-radius:12px;font-size:13px;overflow-wrap:anywhere;margin:14px 0}.candidate-group{border:1px solid var(--line);border-radius:13px;margin:12px 0;overflow:hidden}.candidate-group summary{padding:16px;cursor:pointer;min-height:56px;font-size:14px;font-weight:650;overflow-wrap:anywhere}.candidate-group summary small{display:block;color:var(--muted);font-weight:400;padding:7px 20px 0;font-size:11px}.candidate{padding:16px;border-top:1px solid var(--line);background:#fafbf7;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.candidate h3{font-size:14px;overflow-wrap:anywhere}.candidate p{font-size:12px;color:var(--muted);margin:5px 0;overflow-wrap:anywhere}.uri{font-family:Consolas,monospace;font-size:10px!important;word-break:break-all;color:#768270!important}.candidate button{font-size:12px;background:var(--ink);color:var(--green);min-width:95px}.candidate button[aria-pressed=true]{background:var(--green);color:var(--ink)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.preview-note{color:var(--muted);font-size:13px}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:22px;margin-bottom:10px}.empty-mark{font-size:32px;color:#608c4d;margin-bottom:10px}dialog{border:1px solid var(--line);border-radius:22px;padding:26px;max-width:540px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;color:var(--ink);box-shadow:0 20px 80px #0003}dialog::backdrop{background:#12231c88}.close{float:right;background:transparent;font-size:24px}.upload{background:#f1f4e9;border:1px dashed #b8c6aa;justify-content:center;display:flex;margin:16px 0;font-size:14px}#import-error{color:#9c382e;font-size:13px}#confirm-import{width:100%}[hidden]{display:none!important}@media(min-width:1000px){.intro{padding-top:52px}.workspace{max-width:900px;margin:auto}.intro{margin-left:30px}.song-row{padding:18px 4px}}@media(max-width:600px){.top{height:70px;padding:0 19px}.brand{font-size:17px}.mode{font-size:9px;padding:7px 9px;letter-spacing:1px}main{padding:0 16px 22px}.intro{padding:32px 4px 17px}h1{font-size:39px;letter-spacing:-1.8px}.intro>p:last-child{font-size:14px;line-height:1.6}.workspace{padding:18px 14px;border-radius:19px}.collection{align-items:flex-start;gap:8px}.collection h2{font-size:22px}.collection button{font-size:11px;padding:9px 11px;min-width:100px}.collection p:last-child{font-size:11px;margin-bottom:18px}.progress-head{font-size:10px;gap:8px}#save-state{max-width:128px;text-align:right}.tabs{gap:3px;margin:20px 0 18px}.tabs button{font-size:12px;padding:10px 11px}.tabs span{margin-left:3px}.song-row{gap:10px;padding:15px 0}.number{min-width:30px;height:35px;font-size:11px;border-radius:9px}.song-info strong{font-size:14px}.song-info p{font-size:11px}.song-row button{padding:10px;font-size:11px}.tools{gap:2px;justify-content:space-between}.tools button,.tools .file-button{font-size:10px;padding:10px 5px}.review-title h2{font-size:23px}.candidate{padding:14px;grid-template-columns:1fr}.candidate button{width:100%}.candidate-group summary{font-size:13px;padding:14px}.actions button{flex:1}.footnote{font-size:10px;padding:0 8px}.preview-panel h2{font-size:22px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,filter .15s}}
