:root{--bg: #0f1119;--surface: #181b27;--border: #2a2f40;--text: #e2e8f0;--muted: #94a3b8;--accent: #22c55e;--orb: #f59e0b}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;padding:16px}.wrap{width:100%;max-width:min(960px,calc(100vw - 32px));margin:0 auto}h1{font-size:1.2rem;margin:0 0 8px}p.lead{margin:0 0 16px;color:var(--muted);font-size:.92rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px}.panel__h{font-size:1rem;margin:0 0 8px;color:var(--muted);font-weight:600}.panel__hint{margin:0 0 12px;font-size:.88rem;color:var(--muted)}.chord-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}@media(max-width:420px){.chord-type-grid{grid-template-columns:1fr}}.chord-type-row{display:flex;align-items:flex-start;gap:8px;font-size:.86rem;color:var(--text);cursor:pointer}.chord-type-row input{margin-top:3px;flex-shrink:0}.type-actions{display:flex;gap:8px;margin-top:12px}.btn-small{padding:6px 10px;font-size:.82rem}.chord-slot--sm .chord-slot__orb{width:44px;height:44px}.chord-slot--sm .chord-slot__label{font-size:1.1rem}.chord-title{text-align:center;font-size:2rem;font-weight:700;letter-spacing:.04em;margin:8px 0 20px}.slots{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin:12px 0 8px}.chord-slot{width:88px;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.chord-slot__orb{width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fde68a,var(--orb));box-shadow:0 4px 14px #f59e0b59}.chord-slot__label{font-size:1.35rem;font-weight:600;color:var(--accent)}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:10px}label{display:grid;gap:4px;font-size:.85rem;color:var(--muted)}select{min-width:120px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:#0f1419;color:var(--text)}button{padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:#252a36;color:var(--text);cursor:pointer;font-size:.95rem}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:#ca8a04;border-color:#eab308;color:#0f1119;font-weight:600}.input-meter{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.85rem;color:var(--muted)}.input-meter__bar{flex:1;height:8px;background:#0f1419;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.input-meter__fill{height:100%;width:0%;background:linear-gradient(90deg,#22c55e,#86efac);transition:width .06s linear}.status{margin-top:10px;font-size:.9rem;color:var(--muted)}.status.ok{color:var(--accent)}.detected{margin-top:6px;font-size:.88rem;color:var(--muted)}.back{display:inline-block;margin-bottom:14px;color:#93c5fd;text-decoration:none;font-size:.9rem}.back:hover{text-decoration:underline}.wrap.wrap--neck-wide{max-width:min(1400px,calc(100vw - 24px))}.neck-panel{overflow-x:auto;padding-bottom:8px}@media(max-width:640px){.neck-panel{overflow-x:hidden;overflow-y:auto;max-height:min(78vh,720px)}.neck-svg-wrap{min-width:0;width:100%;max-width:none}.neck-svg-wrap--vertical{width:auto;max-width:min(230px,calc(100% - 8px));margin-inline:auto;overflow:visible}.neck-svg--vertical{display:block;width:100%;height:auto;overflow:visible}}.neck-svg-wrap{min-width:0;width:100%;background:#f8fafc;border-radius:10px;border:1px solid #cbd5e1;padding:8px;box-sizing:border-box}@media(min-width:641px){.neck-svg-wrap{min-width:640px;width:auto}}.neck-svg{display:block;width:100%;height:auto}.neck-controls{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.neck-controls label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}.neck-controls select,.neck-controls input[type=text]{min-width:140px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem}.neck-controls input[type=text]{min-width:min(320px,100%);flex:1}.neck-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.neck-legend{margin:10px 0 0;font-size:.85rem;color:var(--muted);line-height:1.6}.neck-legend-title{color:var(--text);font-weight:600}.neck-legend-hint{color:var(--muted)}.neck-voicing-chip{display:inline-block;margin:0;padding:3px 10px 3px 22px;border-radius:999px;font-size:.8rem;color:#0f172a;background:#f1f5f9;border:1px solid #cbd5e1;position:relative}button.neck-voicing-chip{cursor:pointer;font-family:inherit}button.neck-voicing-chip:hover:not(:disabled){border-color:var(--chip);background:#fff}.neck-voicing-chip--active{border-color:var(--chip);box-shadow:0 0 0 2px color-mix(in srgb,var(--chip) 40%,transparent);font-weight:600}.neck-voicing-chip:before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background:var(--chip)}.neck-legend-chips{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:8px}.neck-legend-rows{display:flex;flex-direction:column;gap:8px;margin-top:8px}.neck-legend-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.neck-legend-set{flex:0 0 108px;font-size:.78rem;font-weight:600;color:var(--text)}.neck-focus-clear{margin-left:6px;padding:2px 8px;font-size:.78rem;font-family:inherit;color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer}.neck-focus-clear:hover{border-color:var(--accent)}.neck-voicing-chip--off{opacity:.45;color:var(--muted)}.neck-iv-key{display:inline-flex;gap:10px;margin-left:8px;font-size:.78rem;color:var(--muted)}.neck-iv-i{color:#2563eb;font-weight:600}.neck-iv-v{color:#ea580c;font-weight:600}.neck-iv-shared{color:#7c3aed;font-weight:600}.neck-voicing-chip--iv{--chip: #2563eb;padding-left:10px}.neck-voicing-chip--iv:before{display:none}.neck-voicing-chip--iv .neck-iv-i,.neck-voicing-chip--iv .neck-iv-v{margin-right:6px}.neck-shape-hull{cursor:pointer}.neck-status{margin:8px 0 0;font-size:.88rem;color:var(--accent)}.neck-print-lead{margin:0 0 12px;font-size:.85rem;color:var(--muted)}.neck-print-actions{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.neck-print-actions label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}.neck-print-actions select{min-width:260px}
