:root{font-synthesis:none;text-rendering:optimizeLegibility}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid #b75c2a;outline-offset:2px}:root{--bg: #f6f1e7;--paper: #fcfaf4;--ink: #2a2520;--ink-soft: #6c635a;--accent: #8a4b2b;--accent-soft: #d8b89c;--tonic: #b75c2a;--highlight: #f5d97f;--rule: #d8cfbe;--shadow: 0 1px 0 rgba(0, 0, 0, .06), 0 6px 18px rgba(60, 40, 20, .08)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.4rem;border-bottom:1px solid var(--rule);background:var(--paper)}.brand{display:flex;align-items:baseline;gap:.7rem}.brand-en{font-size:1.4rem;font-weight:600;letter-spacing:.02em}.brand-ar{font-size:1.2rem;color:var(--ink-soft);font-family:Geeza Pro,Scheherazade New,Times New Roman,serif}.topbar-right{display:flex;align-items:center;gap:8px}.topbar-help-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--ink-soft);cursor:pointer;font:inherit;font-size:.95rem;font-weight:600;transition:background .12s ease,border-color .12s ease,color .12s ease}.topbar-help-btn:hover{background:#f2ecd0;border-color:#d5cb99;color:#4a3a1a}.share-link-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--ink-soft);cursor:pointer;font:inherit;font-size:.85rem;transition:background .12s ease,border-color .12s ease,color .12s ease}.share-link-btn:hover{background:#f2ecd0;border-color:#d5cb99;color:#4a3a1a}.share-link-btn.is-copied{background:#e8f2e0;border-color:#a5c093;color:#2f5a1f}.share-link-btn-label{font-size:.85rem}.keyboard-controls{display:flex;align-items:center;gap:1rem;font-size:.95rem;flex-wrap:wrap;margin-bottom:.7rem}.keyboard-controls-field{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink-soft)}.keyboard-controls-field select{font:inherit;padding:.25rem .5rem;border:1px solid var(--rule);background:var(--paper);border-radius:4px}.piano-layout-controls{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto}.piano-layout-btn{font:inherit;font-size:.85rem;padding:.25rem .65rem;border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);border-radius:4px;cursor:pointer;font-family:ui-monospace,SF Mono,Menlo,monospace;transition:background .12s ease,border-color .12s ease,color .12s ease}.piano-layout-btn:hover{background:#f4efd8;border-color:#d5cb99}.piano-layout-btn.is-active{background:#4a7d5f;border-color:#3a6b4f;color:#fff}.tuner-tuning{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink-soft);font-size:.9rem}.tuner-tuning select{font:inherit;padding:.25rem .5rem;border:1px solid var(--rule);background:var(--paper);border-radius:4px}.section-export-row{display:flex;justify-content:flex-end;margin-top:.6rem}.loading{font-style:italic;color:var(--accent)}.drone-controls{display:inline-flex;align-items:center;gap:.5rem;padding:.2rem .5rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper);flex-wrap:wrap}.drone-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.95rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.drone-controls:has(.drone-toggle input:checked){background:#b75c2a1f;border-color:var(--tonic)}.drone-degree,.drone-volume{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--ink-soft)}.drone-degree select{font:inherit;padding:.15rem .35rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px;font-size:.85rem}.drone-volume input[type=range]{width:70px}.snippet-tempo{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--ink-soft);margin-left:.6rem}.snippet-tempo-label{font-family:ui-monospace,SF Mono,Menlo,monospace;min-width:2.6rem;text-align:right}.snippet-tempo input[type=range]{width:100px}.snippet-loop{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.snippet-actions{margin-top:.6rem;display:flex;gap:.7rem;align-items:center}.show-score-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.score-view{margin-top:.6rem;padding:.6rem;background:var(--paper);border:1px solid var(--rule);border-radius:6px;overflow-x:auto}.score-view svg{display:block}.instrument-diagram{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.instrument-diagram-title{margin:0 0 .3rem;font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:600}.instrument-diagram-svg{display:block;width:100%;max-width:760px;height:auto}.instrument-diagram-legend{margin:.5rem 0 0;font-size:.82rem;color:var(--ink-soft);line-height:1.5}.recorder{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.recorder-controls{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.btn-record{background:#c0392b;border-color:#c0392b;color:var(--paper)}.btn-record:hover{filter:brightness(1.05)}.recorder-elapsed{display:inline-flex;align-items:center;gap:.45rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;color:#c0392b;font-variant-numeric:tabular-nums}.recorder-pulse{display:inline-block;width:10px;height:10px;border-radius:50%;background:#c0392b;animation:recorder-pulse 1s ease-in-out infinite}@keyframes recorder-pulse{0%,to{opacity:.3}50%{opacity:1}}.recorder-mic-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.recorder-meta{font-size:.8rem;color:var(--ink-soft);margin-left:auto}.recorder-quality{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--ink-soft)}.recorder-quality select{font:inherit;padding:3px 6px;border:1px solid var(--rule);background:var(--paper);border-radius:4px}.recorder-cap-warning{margin:8px 0 0;padding:8px 12px;border:1px solid #e2d9a8;background:#fbf7e6;color:#6a5a3a;border-radius:6px;font-size:.85rem}.recorder-item-wav{background:transparent;border:1px solid var(--rule);color:var(--ink);padding:3px 10px;border-radius:4px;cursor:pointer;font-size:.82rem;font-family:inherit}.recorder-item-wav:hover:not(:disabled){background:#f2ecd0}.recorder-item-wav.is-locked{color:var(--ink-soft);background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(180,155,90,.08) 4px,rgba(180,155,90,.08) 8px);cursor:not-allowed}.feature-upsell{display:flex;gap:16px;align-items:flex-start;padding:12px 14px;background:linear-gradient(180deg,#fdfaef,#f4efd8);border:1px solid #d5cb99;border-radius:8px;margin:10px 0}.feature-upsell-body{flex:1;min-width:0}.feature-upsell-heading{display:block;color:#4a3a1a;font-size:.92rem;margin-bottom:3px}.feature-upsell-desc{color:var(--ink-soft);font-size:.85rem;line-height:1.5;margin:0}.feature-upsell-limit{color:var(--ink-soft);font-size:.8rem;margin:6px 0 0;font-style:italic}.feature-upsell-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.feature-upsell-learn{color:var(--ink-soft);font-size:.82rem;text-decoration:none}.feature-upsell-learn:hover{text-decoration:underline}.feature-upsell-cta{background:#c17a1c;color:#fff;border:1px solid #a05f10;padding:6px 14px;border-radius:6px;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600}.feature-upsell-cta:hover{background:#a05f10}.pricing-view{max-width:1080px;margin:0 auto;padding:20px 24px 60px;font-family:system-ui,SF Pro Text,sans-serif;color:var(--ink)}.pricing-hero{border-bottom:1px solid var(--rule);padding-bottom:20px;margin-bottom:24px}.pricing-hero h1{margin:12px 0 8px;font-size:1.7rem}.pricing-hero-tagline{color:var(--ink-soft);line-height:1.55;max-width:720px}.pricing-hero-note{display:inline-block;padding:6px 12px;background:#f5efd8;border:1px solid #e2d9a8;border-radius:6px;font-size:.85rem;color:#4a3a1a;margin-bottom:12px}.pricing-hero-note.is-current{background:#e8f2e0;border-color:#a5c093;color:#2f5a1f}.pricing-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0 40px}@media (max-width: 900px){.pricing-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.pricing-cards{grid-template-columns:1fr}}.pricing-card{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}.pricing-card.is-current{border-color:#4a7d5f;box-shadow:0 0 0 3px #4a7d5f24}.pricing-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pricing-card-header h3{margin:0;font-size:1.15rem}.pricing-card-current-badge{font-size:.72rem;color:#2f5a1f;background:#e8f2e0;border:1px solid #a5c093;padding:1px 8px;border-radius:12px;font-weight:500}.pricing-card-tagline{color:var(--ink-soft);font-size:.85rem;margin:0}.pricing-card-price{font-size:1.6rem;font-weight:700;color:#4a3a1a;margin:4px 0 8px}.pricing-card-headline{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:4px;flex:1}.pricing-card-headline li{font-size:.85rem;padding-left:16px;position:relative;color:var(--ink)}.pricing-card-headline li:before{content:"✓";position:absolute;left:0;color:#4a7d5f;font-weight:700}.pricing-card-cta{background:#c17a1c;color:#fff;border:1px solid #a05f10;padding:8px 14px;border-radius:6px;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600}.pricing-card-cta:hover:not(:disabled){background:#a05f10}.pricing-card-cta:disabled{opacity:.6;cursor:wait}.pricing-card-error{color:#b31c1c;font-size:.8rem;margin:.5rem 0 0}.pricing-features h2{margin:20px 0 12px;font-size:1.2rem}.pricing-table{width:100%;border-collapse:collapse;font-size:.88rem}.pricing-table th,.pricing-table td{border-top:1px solid var(--rule);padding:10px 12px;vertical-align:top;text-align:left}.pricing-table thead th{background:#f5efd8;border-bottom:1px solid var(--rule);border-top:none;font-weight:600;color:#4a3a1a}.pricing-table th.is-current,.pricing-table td.is-current{background:#4a7d5f0f}.pricing-table thead th.is-current{background:#d9e9d0;color:#2f5a1f}.pricing-feature-desc{color:var(--ink-soft);font-weight:400;font-size:.8rem;margin-top:4px}.pricing-table td{text-align:center;font-family:ui-monospace,SF Mono,Menlo,monospace;color:#3a2a0a}.pricing-footer{color:var(--ink-soft);font-size:.85rem;margin-top:30px;padding-top:16px;border-top:1px solid var(--rule);font-style:italic}.rules-inspector{max-width:1180px;margin:0 auto;padding:20px 24px 60px;font-family:system-ui,SF Pro Text,sans-serif;color:var(--ink)}.rules-inspector-header{border-bottom:1px solid var(--rule);padding-bottom:20px;margin-bottom:24px}.rules-inspector-header h1{margin:12px 0 8px;font-size:1.6rem}.rules-inspector-header p{color:var(--ink-soft);max-width:720px;line-height:1.5}.rules-inspector-user,.rules-inspector-dev,.rules-inspector-catalog{margin:20px 0;padding:14px 18px;border:1px solid var(--rule);border-radius:8px;background:#fbf7e6}.rules-inspector h2{margin:0 0 10px;font-size:1.05rem}.rules-inspector-note{color:var(--ink-soft);font-size:.82rem;font-style:italic;margin:0 0 10px}.rules-inspector dl{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;margin:0;font-size:.9rem}.rules-inspector dt{color:var(--ink-soft);font-weight:500}.rules-inspector dd{margin:0;color:var(--ink)}.rules-inspector-muted{color:var(--ink-soft);font-size:.8rem}.rules-inspector-actions{margin-top:10px;display:flex;gap:10px;align-items:center}.rules-inspector-actions button{font:inherit;padding:4px 12px;border:1px solid var(--rule);background:var(--paper);border-radius:4px;cursor:pointer}.rules-inspector-actions button:hover{background:#f2ecd0}.rules-inspector-table{width:100%;border-collapse:collapse;font-size:.85rem}.rules-inspector-table th,.rules-inspector-table td{border-top:1px solid var(--rule);padding:10px 12px;vertical-align:top;text-align:left}.rules-inspector-table thead th{background:#f5efd8;border-bottom:1px solid var(--rule);border-top:none;font-weight:600}.rules-inspector-table tr.is-allowed{background:#4a7d5f0a}.rules-inspector-table tr.is-blocked{background:#c07a1c0a}.rules-inspector-desc{color:var(--ink-soft);font-size:.78rem;margin-top:2px}.rules-inspector-id{color:var(--ink-soft);font-size:.72rem;margin-top:4px}.rules-inspector-id code{font-family:ui-monospace,SF Mono,Menlo,monospace;background:#f4efd8;padding:1px 4px;border-radius:3px}.rules-inspector-caps ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--ink-soft)}.rules-inspector-caps li span{color:var(--ink)}.rules-inspector-yes{color:#2f5a1f;font-weight:600}.rules-inspector-no{color:#c17a1c;font-weight:600}.rules-inspector-toggles{display:flex;flex-direction:column;gap:4px;min-width:130px}.rules-inspector-toggles button{font:inherit;font-size:.78rem;padding:3px 8px;border:1px solid var(--rule);background:var(--paper);border-radius:4px;cursor:pointer;text-align:left}.rules-inspector-toggles button.is-on{background:#4a7d5f;border-color:#3a6b4f;color:#fff}.rules-inspector-toggles button:hover:not(.is-on){background:#f2ecd0}.rules-inspector-toggles select{font:inherit;font-size:.78rem;padding:2px 4px;border:1px solid var(--rule);background:var(--paper);border-radius:4px}.rules-inspector-footer{color:var(--ink-soft);font-size:.82rem;margin-top:30px;padding-top:16px;border-top:1px solid var(--rule);font-style:italic;line-height:1.6}.rules-inspector-footer code{font-family:ui-monospace,SF Mono,Menlo,monospace;background:#f4efd8;padding:1px 4px;border-radius:3px;font-style:normal}.recorder-storage{margin-top:1rem;padding:8px 10px;border:1px solid #eae5d0;border-radius:6px;background:#fbf7e6;font-size:.78rem;color:#6a5a3a}.recorder-storage-header{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.recorder-storage-est{color:#b98a2a;font-style:italic}.recorder-storage-bar{height:6px;background:#ede4b8;border-radius:3px;overflow:hidden}.recorder-storage-bar-fill{height:100%;background:#4a7d5f;border-radius:3px;transition:width .3s ease}.recorder-storage-bar-fill[style*="width: 8"],.recorder-storage-bar-fill[style*="width: 9"]{background:#c17a1c}.recorder-storage-bar-fill[style*="width: 9"][style*="0.9"],.recorder-storage-bar-fill[style*="width: 100"]{background:#c0392b}.recorder-backup{margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.82rem}.recorder-backup-msg{color:#2f5a1f;font-size:.78rem;margin-left:4px}.recorder-item-meta{margin-top:6px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:.78rem}.recorder-item-tags{display:inline-flex;gap:4px;flex-wrap:wrap}.recorder-item-tag{background:#ede4b8;color:#4a3a1a;padding:1px 8px;border-radius:10px;font-size:.72rem}.recorder-item-notes-preview{color:var(--ink-soft);font-style:italic;max-width:60ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recorder-item-edit{background:transparent;border:1px solid var(--rule);color:var(--ink-soft);padding:3px 10px;border-radius:4px;cursor:pointer;font-size:.78rem}.recorder-item-edit:hover{background:#f2ecd0}.rec-editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#32281459;display:flex;align-items:center;justify-content:center;z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rec-editor-modal{background:var(--paper);border:1px solid var(--rule);border-radius:10px;min-width:340px;max-width:560px;width:calc(100% - 32px);max-height:calc(100vh - 60px);display:flex;flex-direction:column;box-shadow:0 12px 40px #3c281447}.rec-editor-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--rule)}.rec-editor-header h3{margin:0;font-size:1.05rem}.rec-editor-close{background:transparent;border:1px solid transparent;color:var(--ink-soft);padding:4px 8px;border-radius:4px;cursor:pointer;font-size:.9rem}.rec-editor-close:hover{background:#f2ecd0;border-color:var(--rule)}.rec-editor-body{padding:12px 16px;overflow:auto;display:flex;flex-direction:column;gap:10px}.rec-editor-field{display:flex;flex-direction:column;gap:3px}.rec-editor-field span{font-size:.78rem;color:var(--ink-soft)}.rec-editor-field input,.rec-editor-field textarea{font:inherit;padding:6px 8px;border:1px solid var(--rule);background:#fefdf5;border-radius:4px}.rec-editor-field textarea{resize:vertical;min-height:60px;font-family:inherit}.rec-editor-context{border:1px solid var(--rule);border-radius:6px;padding:8px 12px;margin:4px 0 0;display:flex;flex-direction:column;gap:8px}.rec-editor-context legend{font-size:.78rem;color:var(--ink-soft);padding:0 4px}.rec-editor-meta{font-size:.72rem;color:var(--ink-soft);margin:4px 0 0}.rec-editor-meta code{font-family:ui-monospace,SF Mono,Menlo,monospace;background:#f4efd8;padding:1px 4px;border-radius:3px;word-break:break-all}.rec-editor-footer{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--rule);background:#fbf7e6}.rec-editor-status{color:#2f5a1f;font-size:.82rem;margin-right:auto}.btn.btn-primary{background:#4a7d5f;border-color:#3a6b4f;color:#fff}.btn.btn-primary:hover{background:#3a6b4f}.shortcuts-help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#32281466;display:flex;align-items:center;justify-content:center;z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.shortcuts-help-panel{background:var(--paper);border:1px solid var(--rule);border-radius:12px;max-width:720px;width:calc(100% - 40px);max-height:calc(100vh - 60px);display:flex;flex-direction:column;box-shadow:0 12px 40px #3c281452}.shortcuts-help-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--rule)}.shortcuts-help-header h2{margin:0;font-size:1.15rem}.shortcuts-help-close{background:transparent;border:1px solid transparent;color:var(--ink-soft);padding:4px 10px;border-radius:4px;cursor:pointer}.shortcuts-help-close:hover{background:#f2ecd0;border-color:var(--rule)}.shortcuts-help-body{padding:12px 20px 20px;overflow:auto}.shortcuts-help-group{margin:10px 0 18px}.shortcuts-help-group h3{font-size:.9rem;color:#4a3a1a;margin:0 0 4px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--rule);padding-bottom:4px}.shortcuts-help-intro{font-size:.82rem;color:var(--ink-soft);margin:4px 0 8px}.shortcuts-help-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.shortcuts-help-item{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:12px;align-items:baseline;font-size:.85rem}.shortcuts-help-keys{display:inline-flex;gap:3px;flex-wrap:wrap}.shortcuts-help-key{display:inline-block;min-width:22px;padding:2px 6px;background:#f2ecd0;border:1px solid #d5cb99;border-bottom-width:2px;border-radius:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:#4a3a1a;text-align:center}.shortcuts-help-desc{color:var(--ink)}.practice-log{padding:12px 14px;border:1px solid #eae5d0;border-radius:8px;background:#fdfaef;margin-bottom:14px}.practice-log-header{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.practice-log-header h3{margin:0;font-size:1rem}.practice-log-tagline{color:var(--ink-soft);font-size:.78rem;margin:0;font-style:italic}.practice-log-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin-bottom:12px}.practice-log-stat{background:#f5efd8;border:1px solid #e2d9a8;border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;align-items:center;gap:2px}.practice-log-stat.is-streak{background:#e8f2e0;border-color:#a5c093}.practice-log-stat-value{font-size:1.15rem;font-weight:700;color:#4a3a1a}.practice-log-stat.is-streak .practice-log-stat-value{color:#2f5a1f}.practice-log-stat-unit{font-size:.72rem;font-weight:500}.practice-log-stat-label{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.practice-log-maqams h4{margin:8px 0 6px;font-size:.85rem;color:var(--ink-soft);font-weight:500}.practice-log-maqams ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.practice-log-maqams li{display:grid;grid-template-columns:minmax(80px,22%) 1fr auto;gap:8px;align-items:center;font-size:.85rem}.practice-log-maqam-name{color:var(--ink)}.practice-log-maqam-bar-wrap{height:6px;background:#eae5d0;border-radius:3px;overflow:hidden}.practice-log-maqam-bar{display:block;height:100%;background:#4a7d5f;border-radius:3px}.practice-log-maqam-time{font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--ink-soft);font-size:.8rem}.practice-log-more{color:var(--ink-soft);font-size:.78rem;margin:4px 0 0;font-style:italic}.practice-log-toggle{background:transparent;border:none;color:var(--ink-soft);padding:4px 0;cursor:pointer;font:inherit;font-size:.85rem}.practice-log-toggle:hover{color:var(--ink)}.practice-log-sessions{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-direction:column;gap:3px;max-height:260px;overflow:auto;font-size:.82rem}.practice-log-sessions li{display:grid;grid-template-columns:130px 1fr auto;gap:8px;align-items:baseline;padding:2px 4px;border-bottom:1px dotted #eae5d0}.practice-log-sessions time{color:var(--ink-soft);font-size:.78rem}.practice-log-session-maqam{color:var(--ink)}.practice-log-session-time{font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--ink-soft);font-size:.78rem}.practice-log-empty{color:var(--ink-soft);font-size:.85rem;margin:8px 0}.practice-log-footer{margin-top:10px;padding-top:8px;border-top:1px solid #eae5d0;display:flex;justify-content:flex-end}.practice-log-clear{background:transparent;border:1px solid var(--rule);color:var(--ink-soft);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:.78rem}.practice-log-clear:hover{background:#f9e6e2;border-color:#c0392b;color:#c0392b}.recorder-list{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem}.recorder-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.6rem;padding:.5rem .7rem;background:var(--bg);border:1px solid var(--rule);border-radius:6px}.recorder-item audio{grid-column:1;width:100%;max-width:380px;height:32px}.recorder-item-label{grid-column:1 / -1;display:flex;align-items:baseline;gap:.7rem;font-size:.85rem;color:var(--ink-soft)}.recorder-item-when{font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--ink)}.recorder-item-name{font:inherit;background:transparent;border:1px dashed transparent;padding:.1rem .4rem;border-radius:4px;color:var(--ink);font-weight:600;cursor:text}.recorder-item-name:hover{border-color:var(--rule);background:var(--paper)}.recorder-item-name-edit{font:inherit;font-weight:600;padding:.1rem .4rem;border-radius:4px;border:1px solid var(--accent);background:var(--paper);color:var(--ink);min-width:12rem}.recorder-empty{margin:.7rem 0 0;font-size:.85rem;color:var(--ink-soft);font-style:italic}.recorder-item-context{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recorder-item-duration{font-family:ui-monospace,SF Mono,Menlo,monospace}.recorder-item-download{font-size:.85rem;color:var(--accent);text-decoration:none;white-space:nowrap}.recorder-item-download:hover{text-decoration:underline}.recorder-item-remove{font:inherit;width:26px;height:26px;padding:0;border-radius:4px;border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);cursor:pointer}.recorder-item-remove:hover{background:#fdecea;color:#c0392b;border-color:#c0392b}.layout{display:grid;grid-template-columns:220px 1fr;flex:1;min-height:0}@media (max-width: 720px){.layout{grid-template-columns:1fr}}.sidebar{border-right:1px solid var(--rule);padding:1.2rem .6rem;background:var(--paper)}.sidebar-title{margin:0 0 .5rem .6rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}.traditions{display:flex;flex-direction:column;gap:.4rem}.tradition-section>.tradition-name{display:flex;justify-content:space-between;align-items:center;padding:.5rem .7rem;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--ink);list-style:none;border-radius:6px;-webkit-user-select:none;user-select:none}.tradition-section>.tradition-name::-webkit-details-marker{display:none}.tradition-section>.tradition-name::marker{content:""}.tradition-section>.tradition-name:before{content:"▸";display:inline-block;margin-right:.45rem;color:var(--accent);transition:transform .12s;font-size:.8em}.tradition-section[open]>.tradition-name:before{transform:rotate(90deg)}.tradition-section>.tradition-name:hover{background:#8a4b2b0f}.tradition-count{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.72rem;color:var(--ink-soft);background:var(--bg);padding:.05rem .4rem;border-radius:8px}.maqam-families{display:flex;flex-direction:column;gap:.7rem;padding-left:.5rem;margin-top:.3rem}.maqam-list-flat{padding-left:.5rem;margin-top:.3rem}.maqam-family>.maqam-family-name{display:flex;justify-content:space-between;align-items:center;margin:.2rem .6rem .1rem;padding:.25rem .3rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:600;cursor:pointer;list-style:none;border-radius:4px;-webkit-user-select:none;user-select:none}.maqam-family>.maqam-family-name::-webkit-details-marker{display:none}.maqam-family>.maqam-family-name::marker{content:""}.maqam-family>.maqam-family-name:before{content:"▸";display:inline-block;margin-right:.4rem;color:var(--accent);transition:transform .12s;font-size:.85em;opacity:.7}.maqam-family[open]>.maqam-family-name:before{transform:rotate(90deg)}.maqam-family>.maqam-family-name:hover{background:#8a4b2b0f}.maqam-family-count{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;color:var(--ink-soft);margin-left:auto}.maqam-list{list-style:none;margin:0;padding:0}.maqam-list-item{width:100%;display:flex;justify-content:space-between;align-items:baseline;padding:.55rem .7rem;background:transparent;border:0;border-radius:6px;font:inherit;color:var(--ink);cursor:pointer;text-align:left}.maqam-list-item:hover{background:#8a4b2b14}.maqam-list-item.is-selected{background:var(--accent);color:var(--paper)}.maqam-list-item.is-selected .maqam-list-arabic{color:var(--accent-soft)}.maqam-list-name{font-size:1.05rem}.maqam-list-arabic{font-family:Geeza Pro,Scheherazade New,Times New Roman,serif;font-size:1rem;color:var(--ink-soft)}.main{padding:1.6rem 2rem;max-width:980px}.maqam-header{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding-bottom:1rem}.maqam-name{margin:0;font-size:2rem;font-weight:600;letter-spacing:.005em}.maqam-name-arabic{font-family:Geeza Pro,Scheherazade New,Times New Roman,serif;color:var(--accent);margin-left:.4rem}.maqam-tonic{margin:.3rem 0 0;color:var(--ink-soft);font-size:.95rem}.scale-strip{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.scale-strip-note{font-family:ui-monospace,SF Mono,Menlo,monospace;background:var(--paper);border:1px solid var(--rule);padding:.3rem .55rem;border-radius:4px;font-size:.95rem;box-shadow:var(--shadow)}.scale-strip-octave{opacity:.55}.maqam-meta{margin-top:1.2rem;display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:start}.maqam-desc{margin:0;font-size:1.02rem;line-height:1.55;color:var(--ink)}.ajnas-block{display:flex;flex-direction:column;gap:.5rem;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:.7rem .9rem}.ajnas-header{display:flex;justify-content:space-between;align-items:center;gap:.7rem}.ajnas-list-title{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);font-weight:600}.show-ajnas-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.ajnas{list-style:none;margin:0;padding:0;font-size:.9rem;color:var(--ink-soft)}.ajnas li{padding:.15rem 0}.jins-view{margin-top:.5rem;padding-top:.6rem;border-top:1px dashed var(--rule)}.jins-view-title{margin:0 0 .5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.jins-view-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.jins-view-chip{display:flex;flex-direction:column;gap:.15rem;padding:.45rem .6rem;border:1px solid var(--rule);border-radius:6px;font-size:.85rem}.jins-view-chip-name{font-weight:600;color:var(--ink)}.jins-view-chip-range{font-size:.78rem;color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace}.jins-view-chip-notes{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem;color:var(--ink);letter-spacing:.04em}.jins-view-chip--text{font-style:italic}.jins-view-chip-score{margin-top:.4rem}.jins-view-chip-score>summary{cursor:pointer;font-size:.78rem;color:var(--ink-soft);padding:.2rem 0;list-style:none;-webkit-user-select:none;user-select:none}.jins-view-chip-score>summary::-webkit-details-marker{display:none}.jins-view-chip-score>summary:before{content:"▸";display:inline-block;margin-right:.3rem;transition:transform .15s}.jins-view-chip-score[open]>summary:before{transform:rotate(90deg)}.jins-view-chip-score .snippet-verovio{margin-top:.3rem;background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:.3rem}.learning-section{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.learning-header{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.5rem;flex-wrap:wrap}.learning-title{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.learning-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.2rem .55rem;border:1px solid var(--rule);border-radius:5px;background:var(--bg)}.learning-toggle:has(input:checked){background:var(--accent);color:var(--paper);border-color:var(--accent)}.learning-blurb{margin:0 0 .7rem;font-size:.9rem;color:var(--ink);line-height:1.55}.composer{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.composer-header{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.7rem}.composer-title{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.composer-name{flex:1;min-width:160px;font:inherit;padding:.3rem .55rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px}.composer-bpm{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-soft)}.composer-bpm input{font:inherit;width:5em;padding:.25rem .4rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px}.composer-staff{background:var(--bg);border:1px dashed var(--rule);border-radius:6px;padding:.6rem;min-height:110px;margin-bottom:.8rem}.composer-hint{margin:0;padding:1.4rem 0;text-align:center;color:var(--ink-soft);font-size:.9rem;font-style:italic}.composer-rest-icon{font-style:normal;font-size:1.2em}.composer-controls{display:flex;flex-direction:column;gap:.7rem}.composer-duration-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.composer-dur,.composer-rest,.composer-backspace,.composer-clear{font:inherit;padding:.35rem .7rem;border:1px solid var(--rule);background:var(--paper);border-radius:4px;cursor:pointer}.composer-dur{min-width:2.6rem;padding:.3rem .5rem;display:inline-flex;align-items:center;justify-content:center;line-height:0}.composer-dur svg{display:block}.composer-dur.is-active{background:var(--accent);color:var(--paper);border-color:var(--accent)}.composer-dur:hover:not(.is-active),.composer-rest:hover,.composer-backspace:hover:not(:disabled),.composer-clear:hover:not(:disabled){background:#fff8e6}.composer-backspace:disabled,.composer-clear:disabled{opacity:.5;cursor:not-allowed}.composer-degrees{display:flex;flex-direction:column;gap:.4rem}.composer-degree-row{display:flex;gap:.35rem;align-items:stretch}.composer-row-label{width:1.2rem;display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}.composer-deg{flex:1;min-height:2.6rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.3rem .25rem;background:var(--paper);border:1px solid var(--rule);border-radius:6px;font:inherit;cursor:pointer;transition:transform 80ms,background .12s}.composer-deg:hover{background:#fff8e6}.composer-deg:active{transform:translateY(1px)}.composer-deg.is-tonic{border-color:var(--tonic);border-width:2px}.composer-deg-num{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;color:var(--ink-soft)}.composer-deg.is-tonic .composer-deg-num{color:var(--tonic);font-weight:700}.composer-deg-name{font-size:.95rem;font-weight:500}.practice-section{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.practice-title{margin:0 0 .6rem;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.practice-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.practice-row label{color:var(--ink-soft)}.practice-row select{font:inherit;padding:.3rem .5rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px;max-width:60ch}.practice-description{margin:.7rem 0 .2rem;font-size:.9rem;color:var(--ink);line-height:1.55}.practice-meta{margin:0;font-size:.82rem;color:var(--ink-soft)}.beat-track{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.beat-track-header{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.5rem;flex-wrap:wrap}.beat-track-title{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.beat-track-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.95rem;color:var(--ink-soft);padding:.25rem .65rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper);cursor:pointer;-webkit-user-select:none;user-select:none}.beat-track-toggle:has(input:checked){background:var(--accent);color:var(--paper);border-color:var(--accent)}.beat-track-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:.4rem}.beat-track-row label{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-soft);font-size:.9rem}.beat-track-row select{font:inherit;padding:.3rem .5rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px}.beat-track-bpm input[type=range]{width:140px}.beat-track-bpm-val{font-family:ui-monospace,SF Mono,Menlo,monospace;min-width:2.4rem;text-align:right;color:var(--ink)}.beat-track-gain input[type=range]{width:80px}.beat-track-desc{margin:.4rem 0;font-size:.85rem;color:var(--ink-soft);line-height:1.5}.beat-seq{position:relative;margin-top:.6rem;height:64px;background:var(--bg);border:1px solid var(--rule);border-radius:6px;overflow:hidden}.beat-seq-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid}.beat-seq-grid-cell{border-right:1px solid rgba(216,184,156,.3)}.beat-seq-grid-cell:last-child{border-right:0}.beat-seq-grid-cell.is-downbeat{background:#b75c2a0d;border-left:2px solid var(--accent)}.beat-seq-grid-cell.is-half{border-left:1px solid var(--accent-soft)}.beat-seq-grid-cell.is-group-start{border-left:3px double var(--tonic);background:#b75c2a14}.beat-seq-num.is-group-start{color:var(--tonic);font-weight:700}.beat-seq-grid-cell.is-measure-start{border-left:4px solid #c0392b;background:#c0392b1f;box-shadow:inset 1px 0 #c0392b80}.beat-seq-num.is-measure-start{color:#c0392b;font-weight:800;text-decoration:underline;text-underline-offset:2px}.beat-seq-hits{position:absolute;left:0;right:0;top:8px;bottom:22px;pointer-events:none}.beat-seq-hit{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;font-weight:700;border-radius:3px}.beat-seq-hit.is-d{background:var(--accent);color:var(--paper)}.beat-seq-hit.is-t{background:var(--accent-soft);color:var(--ink)}.beat-seq-hit.is-k{background:var(--accent-soft);color:var(--ink);opacity:.7!important}.beat-seq-hit.is-s{background:#b75c2a;color:var(--paper)}.beat-seq-hit.is-b{background:#6a3a25;color:var(--paper)}.beat-seq-hit.is-x{background:#d4af6a;color:var(--ink)}.beat-seq-hit.is-m{background:#888;color:var(--paper);font-size:.6rem}.beat-seq-hit.is-accent{outline:2px solid var(--tonic);outline-offset:1px}.beat-seq-playhead{position:absolute;top:0;bottom:0;width:2px;background:#c0392b;box-shadow:0 0 6px #c0392bb3;pointer-events:none;z-index:2}.beat-seq-numbers{position:absolute;left:0;right:0;bottom:0;display:grid;padding:0;pointer-events:none}.beat-seq-num{text-align:left;padding-left:3px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;color:var(--ink-soft);padding-top:2px}.beat-seq-num.is-downbeat{color:var(--accent);font-weight:700}.beat-seq-num.is-and{opacity:.6}.beat-seq-num.is-sub{opacity:.3;font-size:.6rem}.beat-track-mode{display:flex;gap:4px;margin-top:.4rem;background:var(--bg);padding:3px;border-radius:6px;border:1px solid var(--rule);width:fit-content}.beat-track-mode-btn{border:0;background:transparent;color:var(--ink-soft);padding:4px 12px;font-size:.85rem;border-radius:4px;cursor:pointer;font-family:inherit}.beat-track-mode-btn.is-active{background:var(--accent);color:var(--paper);font-weight:600}.beat-track-edit-bar{display:flex;align-items:center;gap:6px;margin-top:.4rem;flex-wrap:wrap}.beat-track-edit-bar .btn.is-active{background:var(--accent);color:var(--paper);border-color:var(--accent)}.beat-track-edit-hint{font-size:.75rem;color:var(--ink-soft);font-style:italic}.beat-seq-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;z-index:3}.beat-seq-edit-cell{background:transparent;border:0;border-right:1px dashed rgba(183,92,42,.25);cursor:pointer;padding:0;margin:0;transition:background .08s ease}.beat-seq-edit-cell:hover{background:#b75c2a2e}.beat-seq-edit-cell:last-child{border-right:0}.beat-seq--row.is-editing{outline:1px dashed var(--accent);outline-offset:-1px}.beat-seq-full{margin-top:.6rem;display:flex;flex-direction:column;gap:4px}.beat-seq-full-header,.beat-seq-full-row{display:grid;grid-template-columns:100px 1fr 130px;align-items:center;gap:6px}.beat-seq-full .beat-seq--row{height:36px;margin-top:0}.beat-seq-full .beat-seq--header{height:22px;margin-top:0;background:transparent;border:0}.beat-seq-full .beat-seq--header .beat-seq-grid{display:none}.beat-seq-full .beat-seq--header .beat-seq-numbers{position:static}.beat-seq-full .beat-seq--row .beat-seq-hits{bottom:4px;top:4px}.beat-seq-full .beat-seq--row .beat-seq-numbers{display:none}.beat-seq-full-labelcol{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--ink);min-width:0}.beat-seq-full-icon{font-size:1.1rem;width:18px;text-align:center;color:var(--accent)}.beat-seq-full-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.beat-seq-full-controlcol{display:flex;align-items:center;gap:6px;justify-content:flex-end}.beat-seq-full-mute{display:inline-flex;align-items:center;cursor:pointer;font-size:.95rem}.beat-seq-full-mute input{display:none}.beat-seq-full-vol{width:80px}.beat-seq-full-row.is-empty{opacity:.4}.beat-seq-full-row.is-muted .beat-seq-hits{opacity:.3;filter:grayscale(.6)}@media (max-width: 600px){.beat-seq-full-header,.beat-seq-full-row{grid-template-columns:70px 1fr 100px;gap:4px}.beat-seq-full-name{font-size:.75rem}.beat-seq-full-vol{width:60px}}.step-seq-lanes{margin-top:1rem;border-top:1px dashed var(--rule);padding-top:.8rem}.step-seq-lanes-header{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.5rem}.step-seq-lanes-header h3{margin:0;font-size:.95rem;color:var(--ink)}.step-seq-lanes-grid{display:grid;row-gap:6px;align-items:center}.step-seq-lane-label{display:flex;align-items:center;font-size:.8rem;padding-right:6px}.step-seq-lane-label select{font-size:.8rem;max-width:140px}.step-seq-lane-track{position:relative;height:36px;background:var(--bg);border:1px solid var(--rule);border-radius:4px;overflow:hidden}.step-seq-lane-tick{position:absolute;top:0;bottom:0;width:1px;background:#d8b89c59;pointer-events:none}.step-seq-lane-tick.is-downbeat{background:#b75c2a66}.step-seq-lane-tick.is-current{background:#c0392b;width:2px;box-shadow:0 0 4px #c0392b99;z-index:2}.step-seq-lane-block{position:absolute;top:3px;bottom:3px;background:linear-gradient(180deg,var(--accent) 0%,#8c4520 100%);color:var(--paper);border-radius:4px;padding:0 6px;display:flex;align-items:center;gap:6px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;box-shadow:0 1px 2px #0003;overflow:hidden;font-size:.75rem;z-index:3}.step-seq-lane-block:active{cursor:grabbing}.step-seq-lane-block-name{font-weight:600;white-space:nowrap}.step-seq-lane-block-glyphs{font-family:ui-monospace,SF Mono,Menlo,monospace;opacity:.85;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:clip;flex:1;min-width:0}.step-seq-lane-block-start{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;opacity:.85;white-space:nowrap}.step-seq-lane-controls{display:flex;align-items:center;gap:4px;padding-left:6px}.step-seq-lane-vol{width:70px}.step-seq-lane-remove{padding:.2rem .5rem;font-size:.85rem}@media (max-width: 600px){.step-seq-lane-label select{max-width:90px;font-size:.7rem}.step-seq-lane-vol{width:50px}.step-seq-lane-block{font-size:.65rem}}.step-seq{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.step-seq-summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem;cursor:pointer;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);-webkit-user-select:none;user-select:none;list-style:none}.step-seq-summary::-webkit-details-marker{display:none}.step-seq-summary::marker{content:""}.step-seq-summary:before{content:"▸";display:inline-block;margin-right:.45rem;color:var(--accent);transition:transform .12s}.step-seq[open]>.step-seq-summary:before{transform:rotate(90deg)}.step-seq-summary-meta{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:var(--ink-soft);font-weight:400;letter-spacing:normal}.step-seq-controls{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:.7rem}.step-seq-controls label{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-soft);font-size:.9rem}.step-seq-controls select{font:inherit;padding:.3rem .5rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px}.step-seq-bpm input[type=range]{width:110px}.step-seq-bpm-val{font-family:ui-monospace,SF Mono,Menlo,monospace;min-width:2.4rem;text-align:right;color:var(--ink)}.step-seq-hint{margin:.5rem 0;font-size:.83rem;color:var(--ink-soft);line-height:1.5}.step-seq-grid{display:grid;gap:2px;margin-top:.4rem;padding:.4rem;background:var(--bg);border:1px solid var(--rule);border-radius:6px}.step-seq-header{text-align:center;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;color:var(--ink-soft);padding:.15rem 0;background:var(--paper);border-radius:3px;-webkit-user-select:none;user-select:none}.step-seq-header.is-downbeat{background:#b75c2a1a;color:var(--accent);font-weight:700}.step-seq-header.is-active{background:var(--accent);color:var(--paper)}.step-seq-rowlabel{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:var(--ink-soft);padding:.25rem .5rem;display:flex;align-items:center;white-space:nowrap}.step-seq-rowlabel.is-tonic{color:var(--tonic);font-weight:700}.step-seq-rowlabel.is-octave{color:var(--accent);font-weight:600}.step-seq-cell{font:inherit;position:relative;overflow:hidden;min-height:24px;background:var(--paper);border:1px solid var(--rule);border-radius:3px;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent;transition:background 80ms}.step-seq-cell:hover{background:#d8b89c4d}.step-seq-cell.is-downbeat{border-left:2px solid var(--accent-soft)}.step-seq-cell-bar{position:absolute;top:1px;bottom:1px;left:0;border-radius:2px;pointer-events:none}.step-seq-cell-bar.is-binary{background:var(--accent)}.step-seq-cell-bar.is-triplet{background:#2f8a4a;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 3px,transparent 3px,transparent 6px)}.step-seq-cell-bar.is-dotted{background:#c97a2a;background-image:radial-gradient(circle at 90% 50%,rgba(255,255,255,.5) 1.5px,transparent 2px);background-size:8px 100%;background-repeat:repeat-x}.step-seq-cell.is-active{border-color:var(--accent)}.step-seq-cell.is-active:hover{background:#d8b89c66}.step-seq-cell.is-playhead{outline:2px solid #c0392b;outline-offset:-2px;z-index:1}.step-seq-cell.is-active.is-playhead .step-seq-cell-bar.is-binary{background:var(--tonic)}@media (max-width: 720px){.step-seq-rowlabel{font-size:.7rem;padding:.15rem .3rem}.step-seq-cell{min-height:20px}}.liturgy-section{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.liturgy-title{margin:0 0 .4rem;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.liturgy-blurb{margin:0 0 .9rem;font-size:.9rem;color:var(--ink);line-height:1.5}.liturgy-faith{margin-top:.8rem;padding-top:.6rem;border-top:1px dashed var(--rule)}.liturgy-faith:first-of-type{border-top:0;padding-top:0;margin-top:0}.liturgy-faith-name{margin:0 0 .4rem;font-size:.95rem;color:var(--accent);font-weight:600}.liturgy-resources{list-style:none;margin:0 0 .7rem;padding:0;display:flex;flex-direction:column;gap:.3rem}.liturgy-resources li{font-size:.88rem;line-height:1.5}.liturgy-resources a{color:var(--accent);text-decoration:none;font-weight:500}.liturgy-resources a:hover{text-decoration:underline}.liturgy-resource-note{color:var(--ink-soft)}.liturgy-entries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.liturgy-entry{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.7rem .85rem;background:var(--bg);border:1px solid var(--rule);border-radius:6px}@media (max-width: 720px){.liturgy-entry{grid-template-columns:1fr}}.liturgy-entry-community{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:600;margin-bottom:.25rem}.liturgy-entry-use{margin:0 0 .4rem;font-size:.92rem;line-height:1.55;color:var(--ink)}.liturgy-entry-examples{list-style:none;margin:0 0 .4rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.liturgy-entry-examples li{font-size:.82rem;padding:.15rem .5rem;background:var(--paper);border:1px solid var(--rule);border-radius:12px;color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,monospace}.liturgy-entry-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:0 0 .4rem;font-size:.78rem}.liturgy-entry-chips-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;margin-right:.2rem}.liturgy-entry-chip{padding:.1rem .5rem;border-radius:10px;font-size:.78rem;border:1px solid var(--rule);background:var(--paper);color:var(--ink)}.liturgy-entry-chip.is-parasha{background:#b75c2a14;border-color:#b75c2a4d;color:var(--accent)}.liturgy-entry-chip.is-occasion{background:#2f8a4a14;border-color:#2f8a4a4d;color:#2f8a4a}.liturgy-entry-source{font-size:.82rem;color:var(--accent);text-decoration:none}.liturgy-entry-source:hover{text-decoration:underline}.liturgy-entry-video iframe{display:block;border:1px solid var(--rule);border-radius:6px;background:#000;box-shadow:var(--shadow)}.liturgy-entry-video-caption{margin-top:.3rem;font-size:.78rem;color:var(--ink-soft);font-style:italic;max-width:280px}.liturgy-empty{margin:0;font-size:.85rem;color:var(--ink-soft);font-style:italic}.snippet-section{margin-top:1.6rem;padding:1rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.snippet-section h2{margin:0 0 .6rem;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.snippet-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.snippet-row label{color:var(--ink-soft)}.snippet-row select{font:inherit;padding:.3rem .5rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px}.snippet-meta{margin:0;font-size:.85rem;color:var(--ink-soft)}.snippet-body{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start;margin-top:.6rem}.snippet-info{display:flex;flex-direction:column;gap:.35rem}.yt-search-link{font-size:.85rem;color:var(--accent);text-decoration:none;align-self:flex-start}.yt-search-link:hover{text-decoration:underline}.yt-embed iframe{display:block;border:1px solid var(--rule);border-radius:6px;background:#000;box-shadow:var(--shadow)}@media (max-width: 720px){.snippet-body{grid-template-columns:1fr}.yt-embed iframe{width:100%;height:auto;aspect-ratio:16 / 9}}.btn{font:inherit;padding:.35rem .85rem;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--paper);cursor:pointer}.btn:hover{filter:brightness(1.05)}.btn-stop{background:#555;border-color:#555}.btn-secondary{background:var(--paper);color:var(--accent);border-color:var(--accent)}.btn-danger{background:#c0392b;color:var(--paper);border-color:#c0392b}.tuner-tuning-info{margin:0 0 .7rem;padding:.55rem .8rem;background:var(--paper);border:1px solid var(--rule);border-radius:6px;font-size:.9rem;color:var(--ink-soft);line-height:1.5}.tuner-tuning-info strong{color:var(--accent)}.auth-bar{position:relative;display:flex;align-items:center}.auth-avatar{width:36px;height:36px;border-radius:50%;border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s,color .15s;padding:0}.auth-avatar:hover{background:#fff8e6;border-color:var(--accent);color:var(--accent)}.auth-avatar.is-signed-in{background:var(--accent);border-color:var(--accent);color:var(--paper)}.auth-avatar-initial{font-weight:700;font-size:.95rem;letter-spacing:.02em}.auth-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:220px;padding:.6rem;background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:0 6px 18px #0000001f;display:flex;flex-direction:column;gap:.5rem}.auth-popover-email{font-size:.8rem;color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace;word-break:break-all}.auth-popover-btn{font-size:.85rem;padding:.3rem .7rem;align-self:stretch}.auth-bar-tier-pro{display:inline-block;margin-left:6px;padding:.05rem .35rem;background:var(--accent);color:var(--paper);font-size:.65rem;font-weight:700;border-radius:3px;letter-spacing:.05em;text-transform:uppercase}.account-settings{max-width:720px;margin:2rem auto;padding:0 1.25rem 3rem}.account-settings h1{font-size:1.6rem;margin:0 0 1.5rem}.account-section{margin-bottom:2.25rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.account-section h2{font-size:1.1rem;margin:0 0 .75rem;color:var(--ink)}.account-facts{display:grid;grid-template-columns:140px 1fr;gap:.4rem 1rem;margin:0;font-size:.9rem}.account-facts dt{color:var(--ink-soft);font-weight:500}.account-facts dd{margin:0}.account-tier-cell .tier-badge{padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--rule);color:var(--ink)}.subscription-state-past_due{color:#d92626}.subscription-state-expired,.subscription-state-refunded,.subscription-state-cancelled{color:var(--ink-soft)}.subscription-state-active,.subscription-state-trialing{color:#2a7a2a}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem}.device-list{list-style:none;padding:0;margin:0}.device-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--rule)}.device-row:last-child{border-bottom:none}.device-row.is-revoked .device-row-label{color:var(--ink-soft)}.device-row-info{flex:1;min-width:0}.device-row-label{font-size:.9rem;font-weight:500}.device-row-current{display:inline-block;margin-left:.5rem;padding:1px 6px;border-radius:3px;background:#fff8e6;color:var(--accent);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.device-row-meta{font-size:.75rem;color:var(--ink-soft);margin-top:2px}.account-danger h2{color:#d92626}.account-danger p{font-size:.9rem}.account-confirm-input{display:block;width:100%;max-width:280px;margin:.75rem 0;padding:.5rem .75rem;border:1px solid var(--rule);border-radius:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9rem}.btn-danger{background:#d92626;color:#fff;border-color:#d92626}.btn-danger:hover:not(:disabled){background:#b31c1c;border-color:#b31c1c}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.account-error{color:#d92626;font-size:.85rem;margin:.5rem 0}.admin-view{max-width:820px;margin:2rem auto;padding:0 1.25rem 3rem}.admin-view h1{font-size:1.6rem;margin:0 0 1.25rem}.admin-search{display:flex;gap:.5rem;margin-bottom:1.5rem}.admin-search input{flex:1;padding:.5rem .75rem;border:1px solid var(--rule);border-radius:4px;font-size:.9rem}.admin-error{color:#d92626;font-size:.9rem}.admin-detail{display:flex;flex-direction:column;gap:1.5rem}.admin-section{padding:1rem 1.25rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper)}.admin-section h2,.admin-section h3{margin:0 0 .75rem}.admin-section h2{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1rem;word-break:break-all}.admin-actions{display:flex;gap:.5rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.admin-grant-form{display:flex;gap:.4rem;align-items:center}.admin-grant-form input{padding:4px 8px;border:1px solid var(--rule);border-radius:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem}.feature-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 8px;margin:2px;border-radius:3px;font-size:.75rem;font-family:ui-monospace,SF Mono,Menlo,monospace}.feature-pill-grant{background:#e6f6e6;color:#2a7a2a}.feature-pill-deny{background:#fee6e6;color:#8f1414}.feature-pill code{background:transparent}.feature-pill-x{background:transparent;border:none;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0;opacity:.6}.feature-pill-x:hover{opacity:1}.admin-audit-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.admin-audit-entry{padding:.5rem .75rem;border:1px solid var(--rule);border-radius:4px;font-size:.8rem}.admin-audit-header{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:3px}.admin-audit-action{font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace}.admin-audit-time{color:var(--ink-soft);font-size:.75rem}.admin-audit-meta{color:var(--ink-soft)}.admin-stats{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.admin-stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.admin-stats-header h2{margin:0;font-size:1.1rem}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin-bottom:1.5rem}.admin-stat-card{padding:.75rem 1rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper);text-align:center}.admin-stat-card.is-highlight{border-color:var(--accent);background:#fff8e6}.admin-stat-value{font-size:1.5rem;font-weight:700;color:var(--ink);line-height:1.2}.admin-stat-label{font-size:.75rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}.admin-stats-breakdown{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.admin-stats-col h3{margin:0 0 .5rem;font-size:.8rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.admin-stats-list{list-style:none;margin:0;padding:0;font-size:.85rem}.admin-stats-list li{display:flex;justify-content:space-between;padding:3px 0}.admin-stats-list-key{color:var(--ink-soft);text-transform:capitalize}.admin-stats-list-value{font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace}.admin-stats-empty{color:var(--ink-soft);font-size:.85rem;margin:0}.admin-errors{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.admin-errors.has-recent{border:1px solid #d92626;border-radius:6px;padding:1rem 1.25rem;background:#fff8f8}.admin-errors-banner{background:#fee6e6;color:#8f1414;border:1px solid #f4b4b4;padding:.6rem .9rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.admin-errors-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.admin-errors-header h2{margin:0;font-size:1.1rem}.admin-errors-total{font-weight:400;font-size:.85rem;color:var(--ink-soft)}.admin-errors-empty{color:var(--ink-soft);font-style:italic}.admin-errors-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.admin-errors-row{border:1px solid var(--rule);border-radius:4px;overflow:hidden}.admin-errors-row.is-expanded{background:#fff8e6;border-color:#d92626}.admin-errors-row.is-resolved{opacity:.55}.admin-errors-row.is-resolved:hover{opacity:1}.admin-errors-row.is-regression{border-color:#d92626;background:#fff0f0}.admin-errors-tag{display:inline-block;margin-left:.5rem;padding:1px 5px;border-radius:3px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.admin-errors-tag.is-resolved{background:#e6f6e6;color:#2a7a2a}.admin-errors-tag.is-regression{background:#d92626;color:#fff}.admin-errors-toggle{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:var(--ink-soft);margin-left:.5rem;cursor:pointer}.admin-errors-sparkline{fill:#d92626;opacity:.7;align-self:center}.admin-errors-row.is-resolved .admin-errors-sparkline{fill:#999}.admin-errors-resolve-controls{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;flex-wrap:wrap}.admin-errors-resolve-form{display:flex;align-items:center;gap:.5rem;flex:1;min-width:260px}.admin-errors-resolve-form input{flex:1;padding:4px 8px;border:1px solid var(--rule);border-radius:4px;font-size:.85rem}.admin-errors-row-summary{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:.5rem;align-items:center;width:100%;padding:.5rem .75rem;background:none;border:none;text-align:left;cursor:pointer;font-size:.85rem}.admin-errors-row-summary:hover{background:#00000005}.admin-errors-count{min-width:40px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-weight:700;color:#d92626}.admin-errors-source{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;color:var(--ink-soft);min-width:120px}.admin-errors-msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-errors-time{font-size:.75rem;color:var(--ink-soft);white-space:nowrap}.admin-errors-detail{padding:.75rem;border-top:1px solid var(--rule);background:var(--paper)}.admin-errors-detail-facts{display:flex;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:var(--ink-soft);margin-bottom:.5rem}.admin-errors-breadcrumbs{margin-bottom:.75rem}.admin-errors-breadcrumbs h4{margin:0 0 .5rem;font-size:.75rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.admin-errors-crumb-list{list-style:none;margin:0;padding:0;border-left:2px solid var(--rule)}.admin-errors-crumb{display:grid;grid-template-columns:80px 130px 1fr;gap:.5rem;padding:3px 0 3px 12px;position:relative;font-size:.8rem}.admin-errors-crumb:before{content:"";position:absolute;left:-5px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--rule);border:2px solid var(--paper)}.admin-errors-crumb-time{color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem}.admin-errors-crumb-kind{font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace}.admin-errors-crumb-meta{color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-errors-stack{font-size:.75rem;background:#f5f5f5;padding:.5rem;border-radius:4px;overflow-x:auto;max-height:300px;margin:0;white-space:pre-wrap}.admin-analytics{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.admin-analytics-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.admin-analytics-header h2{margin:0;font-size:1.1rem}.admin-analytics-controls{display:flex;gap:.25rem}.admin-analytics-controls .btn.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin-bottom:.75rem}.admin-funnel-step{padding:.5rem .75rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper);text-align:center}.admin-funnel-step.is-highlight{border-color:var(--accent);background:#fff8e6}.admin-funnel-derived{font-size:.85rem;color:var(--ink);margin-bottom:1.5rem;padding:.4rem .75rem;background:#00000008;border-radius:4px}.admin-analytics-daily h3,.admin-analytics-recent h3{margin:0 0 .5rem;font-size:.8rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}.admin-analytics-daily{margin-bottom:1.5rem}.admin-daily-bars{display:flex;align-items:flex-end;gap:3px;height:120px;padding:.5rem 0;border:1px solid var(--rule);border-radius:4px;background:var(--paper);overflow-x:auto}.admin-daily-bar{flex:1;min-width:20px;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.admin-daily-bar-cols{width:100%;height:calc(100% - 20px);display:flex;flex-direction:column;justify-content:flex-end;gap:1px}.admin-daily-col{width:100%;min-height:2px}.admin-daily-col-signup{background:#2a7a2a}.admin-daily-col-subscription_created{background:var(--accent)}.admin-daily-col-upsell_clicked{background:#b06a1c}.admin-daily-col-page_view{background:#ccc}.admin-daily-date{font-size:.65rem;color:var(--ink-soft);height:18px;line-height:18px;font-family:ui-monospace,SF Mono,Menlo,monospace}.admin-list{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.admin-list h3{margin:0 0 .75rem;font-size:1rem}.admin-list-filters{display:flex;gap:1rem;align-items:center;margin-bottom:1rem;font-size:.85rem}.admin-list-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.admin-list-row{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:center;width:100%;padding:.5rem .75rem;border:1px solid var(--rule);border-radius:4px;background:var(--paper);cursor:pointer;text-align:left;font-size:.85rem}.admin-list-row:hover{background:#fff8e6}.admin-list-email{font-family:ui-monospace,SF Mono,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-list-tier,.admin-list-state{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:3px;background:var(--rule);color:var(--ink)}.admin-list-state-suspended{background:#fee6e6;color:#8f1414}.admin-list-state-pending_deletion{background:#fff5e0;color:#7a5a00}.community-catalog{padding:1.5rem 1.4rem;max-width:1000px;font-family:system-ui}.community-catalog-header h1{margin:0;font-size:1.6rem}.community-catalog-lede{color:var(--ink-soft);font-size:.9rem;margin:6px 0 2rem;line-height:1.4}.community-catalog-section{margin-bottom:2rem}.community-catalog-section h2{margin:0 0 .75rem;font-size:1.15rem;display:flex;align-items:baseline;gap:.5rem}.community-catalog-count{font-weight:400;font-size:.85rem;color:var(--ink-soft)}.community-catalog-empty,.community-catalog-loading,.community-catalog-error{color:var(--ink-soft);font-style:italic;font-size:.9rem;line-height:1.4}.community-catalog-error{color:#8f1414;font-style:normal}.community-catalog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.community-catalog-row{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border:1px solid var(--rule);border-radius:4px;background:#fffdf7}.community-catalog-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.community-catalog-row-title{font-size:.95rem}.community-catalog-row-degrees{color:var(--ink-soft);font-size:.85rem}.community-catalog-row-desc{font-size:.85rem;color:var(--ink)}.community-catalog-row-meta{color:var(--ink-soft);font-size:.78rem}.community-catalog-row-meta code{font-size:.75rem;background:var(--rule);padding:1px 4px;border-radius:3px}.community-catalog-row-actions{flex-shrink:0}.admin-moderation{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.admin-moderation-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.admin-moderation-header h2{margin:0;font-size:1.1rem}.admin-moderation-empty{color:var(--ink-soft);font-style:italic}.admin-moderation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.admin-moderation-row{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border:1px solid var(--rule);border-radius:4px;background:#fffdf7}.admin-moderation-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.admin-moderation-row-title{font-size:.95rem}.admin-moderation-row-meta{color:var(--ink-soft);font-size:.78rem}.admin-moderation-row-meta code{font-size:.75rem;background:var(--rule);padding:1px 4px;border-radius:3px}.admin-moderation-row-link a{font-size:.85rem}.admin-moderation-row-notes{font-style:italic;color:var(--ink-soft);font-size:.85rem}.admin-moderation-row-actions{display:flex;flex-direction:column;gap:4px;align-items:stretch;flex-shrink:0}.pwa-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem 1.25rem;font-size:.85rem;border-bottom:1px solid}.pwa-banner-offline{background:#ffe6e6;color:#8f1414;border-bottom-color:#f4b4b4}.pwa-banner-update{background:#e6f2ff;color:#143d7a;border-bottom-color:#b4d0f4}.pwa-banner-install{background:#fff5e0;color:#7a5a00;border-bottom-color:#ecd18a}.pwa-banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.pwa-banner-action{padding:3px 10px;border-radius:4px;background:currentColor;color:#fff;border:none;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.pwa-banner-update .pwa-banner-action{color:#e6f2ff}.pwa-banner-install .pwa-banner-action{color:#fff5e0}.pwa-banner-action:hover:not(:disabled){opacity:.9}.pwa-banner-action:disabled{opacity:.5;cursor:wait}.pwa-banner-dismiss{background:transparent;border:none;color:inherit;font-size:1.25rem;line-height:1;padding:0 4px;cursor:pointer;opacity:.6}.pwa-banner-dismiss:hover{opacity:1}.account-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1.25rem;font-size:.85rem;border-bottom:1px solid}.account-banner-danger{background:#fee6e6;color:#8f1414;border-bottom-color:#f4b4b4}.account-banner-warn{background:#fff5e0;color:#7a5a00;border-bottom-color:#ecd18a}.account-banner-info{background:#e6f2ff;color:#143d7a;border-bottom-color:#b4d0f4}.account-banner-message{flex:1;min-width:0}.account-banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.account-banner-action{padding:3px 10px;border-radius:4px;background:currentColor;color:#fff;border:none;text-decoration:none;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.account-banner-action:hover:not(:disabled){opacity:.85}.account-banner-action:disabled{opacity:.5;cursor:wait}.account-banner-danger .account-banner-action{color:#fee6e6}.account-banner-warn .account-banner-action{color:#fff5e0}.account-banner-info .account-banner-action{color:#e6f2ff}.account-banner-dismiss{background:transparent;border:none;color:inherit;font-size:1.25rem;line-height:1;padding:0 4px;cursor:pointer;opacity:.6}.account-banner-dismiss:hover{opacity:1}@media (pointer: coarse){.keyboard-section{position:fixed;bottom:0;left:0;right:0;z-index:90;background:var(--paper);border-top:1px solid var(--rule);box-shadow:0 -6px 18px #0000001a;padding:.4rem .6rem .6rem;padding-bottom:calc(.6rem + env(safe-area-inset-bottom,0));max-height:55vh;overflow-y:auto}.main{padding-bottom:55vh}}.app-device-phone .keyboard-section{bottom:56px}@media (pointer: coarse){body[data-mode=read] .main{padding-bottom:2rem}}.kb-collapse-toggle{display:none}@media (pointer: coarse){.kb-collapse-toggle{display:inline-flex;align-items:center;gap:5px;position:absolute;top:4px;right:8px;z-index:91;padding:4px 10px;background:var(--paper);border:1px solid var(--rule);border-radius:12px;color:var(--ink-soft);font-size:.7rem;font-weight:600;cursor:pointer;box-shadow:0 1px 3px #0000000f;touch-action:manipulation}.kb-collapse-toggle:hover{color:var(--accent)}.kb-collapse-label{text-transform:uppercase;letter-spacing:.05em}.keyboard-section.is-kb-collapsed{max-height:42px;overflow:hidden;padding-top:.35rem;padding-bottom:calc(.35rem + env(safe-area-inset-bottom,0))}.keyboard-section.is-kb-collapsed>*:not(.kb-collapse-toggle){display:none}.keyboard-section.is-kb-collapsed .kb-collapse-toggle{top:50%;right:50%;transform:translate(50%,-50%)}.main:has(.keyboard-section.is-kb-collapsed){padding-bottom:60px}}.app-device-phone .keyboard-section.is-kb-collapsed{bottom:56px}.maqam-family-chips{display:inline-flex;gap:4px;flex-wrap:wrap}.maqam-family-chip{display:inline}.midi-input-connect{margin:.5rem 0;padding:.5rem .75rem;background:#fdf6e8;border:1px solid #e5d09e;border-radius:4px;font-size:.85rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.midi-input-connect-btn{padding:6px 12px;font-size:.85rem}.midi-input-connect-status{color:var(--ink-soft);font-style:italic}.midi-input-connect-error{color:#8f1414;font-size:.8rem}.midi-input-connect-ready{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;width:100%}.midi-input-connect-ready select{padding:3px 6px;border:1px solid var(--rule);border-radius:4px;font-size:.85rem;background:var(--paper)}.midi-input-connect-hint{font-size:.75rem;color:var(--ink-soft);font-style:italic}.scala-import{margin:1.25rem 0 0;padding:1rem;border:1px solid var(--rule);border-radius:6px;background:#fdf6e8}.scala-import-title{margin:0 0 .75rem;font-size:1rem;font-weight:600}.scala-import-drop{padding:1rem;border:2px dashed var(--rule);border-radius:6px;background:var(--paper);text-align:center;transition:border-color .15s,background .15s}.scala-import-drop.is-drag-over{border-color:var(--accent);background:#fff8e6}.scala-import-drop p{margin:0;font-size:.9rem}.scala-import-choose{color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.scala-import-textarea{display:block;width:100%;margin-top:.5rem;padding:.6rem .75rem;border:1px solid var(--rule);border-radius:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem;resize:vertical;box-sizing:border-box}.scala-import-error{margin-top:.5rem;color:#8f1414;font-size:.85rem}.scala-import-preview{margin-top:.75rem;padding:.75rem;background:var(--paper);border:1px solid var(--rule);border-radius:4px}.scala-import-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.scala-import-desc{font-weight:600;font-size:.95rem}.scala-import-count{font-size:.75rem;color:var(--ink-soft);margin-top:2px}.scala-import-table{width:100%;border-collapse:collapse;font-size:.85rem}.scala-import-table th,.scala-import-table td{padding:4px 8px;text-align:right;border-bottom:1px solid var(--rule);font-family:ui-monospace,SF Mono,Menlo,monospace}.scala-import-table th{color:var(--ink-soft);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;font-family:inherit;font-weight:600;border-bottom-width:2px}.scala-import-table td:first-child,.scala-import-table th:first-child{text-align:left}.scala-import-warnings{list-style:disc;margin:.5rem 0 0 1.25rem;padding:0;color:#7a5a00;font-size:.8rem}.admin-larger-screen-required{padding:1rem;background:#fff5e0;border:1px solid #ecd18a;border-radius:6px;color:#7a5a00;font-size:.9rem;line-height:1.5}.touch-title-hint{z-index:200;padding:8px 12px;background:#2b1b0ef0;color:#fdf8ee;border-radius:6px;font-size:.8rem;line-height:1.35;box-shadow:0 4px 12px #0000002e;pointer-events:auto;animation:touch-title-hint-in .12s ease-out}@keyframes touch-title-hint-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--paper);border-top:1px solid var(--rule);display:flex;padding:0 .25rem;padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -2px 12px #00000014}.mobile-bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px 8px;min-height:56px;background:transparent;border:none;color:var(--ink-soft);cursor:pointer;transition:color .15s}.mobile-bottom-nav-item:active{transform:scale(.96)}.mobile-bottom-nav-item.is-active{color:var(--accent)}.mobile-bottom-nav-icon{display:inline-flex;align-items:center;justify-content:center;color:inherit}.mobile-bottom-nav-label{font-size:.7rem;font-weight:600;letter-spacing:.02em}.app-device-phone{padding-bottom:calc(56px + env(safe-area-inset-bottom,0))}@media (min-width: 601px) and (max-width: 1024px){.btn{min-height:44px;padding:10px 18px}.auth-avatar,.notifications-bell-btn,.upload-indicator-btn{width:40px;height:40px}.mode-pill{padding:.6rem .9rem;font-size:.95rem}.keyboard-controls .btn{min-height:44px}}@media (max-width: 600px){.mode-picker,.topbar-help-btn,.topbar-share-btn,.language-picker{display:none}.auth-avatar,.notifications-bell-btn,.upload-indicator-btn{width:40px;height:40px}html{font-size:15px}.btn{min-height:44px;padding:10px 16px}.auth-popover,.notifications-popover,.upload-indicator-popover{width:min(360px,92vw);right:0}}.upload-indicator{position:relative;display:flex;align-items:center;margin-right:6px}.upload-indicator-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;position:relative;transition:background .15s,border-color .15s,color .15s}.upload-indicator-btn:hover{background:#fff8e6;border-color:var(--accent);color:var(--accent)}.upload-indicator-btn.has-pending{color:var(--accent);border-color:var(--accent)}.upload-indicator-btn.has-failed{color:#d92626;border-color:#d92626}.upload-indicator-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;line-height:18px;text-align:center}.upload-indicator-btn.has-failed .upload-indicator-badge{background:#d92626}.upload-indicator-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:380px;max-height:480px;background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:0 6px 18px #0000001f;display:flex;flex-direction:column}.upload-indicator-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--rule)}.upload-indicator-header h3{margin:0;font-size:.9rem;font-weight:600}.upload-indicator-actions{display:flex;align-items:center;gap:.4rem}.upload-indicator-body{overflow-y:auto;max-height:420px;padding:.4rem 0}.upload-indicator-empty{padding:1rem .75rem;margin:0;color:var(--ink-soft);font-size:.85rem;text-align:center}.upload-indicator-divider{padding:.4rem .75rem .2rem;font-size:.7rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;border-top:1px solid var(--rule);margin-top:.25rem}.upload-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--rule)}.upload-row:last-child{border-bottom:none}.upload-row-pending .upload-row-title,.upload-row-uploading .upload-row-title{color:var(--accent);font-weight:600}.upload-row-failed{background:#fff5f5}.upload-row-failed .upload-row-title{color:#8f1414;font-weight:600}.upload-row-done .upload-row-title{color:var(--ink-soft)}.upload-row-main{flex:1;min-width:0}.upload-row-title{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-row-meta{font-size:.7rem;color:var(--ink-soft);margin-top:2px}.upload-row-error{font-size:.75rem;color:#8f1414;margin-top:4px;word-break:break-word}.upload-row-progress{font-size:.75rem;color:var(--accent);margin-top:4px;font-style:italic}.upload-row-share{font-size:.75rem;color:var(--accent);text-decoration:none;margin-top:4px;display:inline-block}.upload-row-actions{display:flex;flex-direction:column;gap:.25rem;flex-shrink:0}.notifications-bell{position:relative;display:flex;align-items:center;margin-right:6px}.notifications-bell-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--rule);background:var(--paper);color:var(--ink-soft);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;position:relative;transition:background .15s,border-color .15s,color .15s}.notifications-bell-btn:hover{background:#fff8e6;border-color:var(--accent);color:var(--accent)}.notifications-bell-btn.has-unread{color:var(--accent);border-color:var(--accent)}.notifications-bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d92626;color:#fff;font-size:.7rem;font-weight:700;line-height:18px;text-align:center}.notifications-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:340px;max-height:400px;background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:0 6px 18px #0000001f;display:flex;flex-direction:column}.notifications-popover-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--rule)}.notifications-popover-header h3{margin:0;font-size:.9rem;font-weight:600}.notifications-popover-actions{display:flex;align-items:center;gap:.5rem}.notifications-popover-close{background:none;border:none;color:var(--ink-soft);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 4px}.notifications-popover-body{overflow-y:auto;max-height:340px}.notifications-loading,.notifications-error,.notifications-empty{padding:1rem .75rem;margin:0;color:var(--ink-soft);font-size:.85rem;text-align:center}.notification-row{padding:.6rem .75rem;border-bottom:1px solid var(--rule);cursor:pointer;transition:background .15s}.notification-row:hover{background:#00000005}.notification-row.is-unread{background:#fff8e6}.notification-row-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:3px}.notification-row-title{font-weight:600;font-size:.85rem}.notification-row-time{font-size:.7rem;color:var(--ink-soft);white-space:nowrap}.notification-row-body{margin:0 0 4px;font-size:.8rem;line-height:1.3;color:var(--ink-soft)}.notification-row-link{font-size:.75rem;color:var(--accent);text-decoration:none}.login-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;z-index:1000;overflow-y:auto}.login-modal,.submit-modal{background:var(--paper);border-radius:10px;padding:1.6rem 1.6rem 1.4rem;max-width:460px;width:90%;box-shadow:0 20px 60px #0006;position:relative;margin-bottom:4rem}.submit-modal{max-width:640px}.login-modal h2,.submit-modal h2{margin:0 0 .5rem;font-size:1.2rem}.login-modal-close{position:absolute;top:8px;right:12px;background:none;border:0;font-size:1.6rem;color:var(--ink-soft);cursor:pointer;line-height:1}.login-modal-close:hover{color:var(--ink)}.login-modal-hint,.submit-form-hint{font-size:.85rem;color:var(--ink-soft);margin:.4rem 0 .8rem;line-height:1.45}.login-modal-field,.submit-form>label{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.7rem}.login-modal-field span,.submit-form>label>span{font-size:.78rem;color:var(--ink-soft);font-weight:600}.submit-form>label>span em{color:var(--accent);font-style:normal;font-size:.7rem;font-weight:400;margin-left:4px}.login-modal-field input,.submit-form input,.submit-form select,.submit-form textarea{font:inherit;padding:.45rem .6rem;border:1px solid var(--rule);border-radius:5px;background:#fff}.submit-form textarea{resize:vertical;font-family:inherit}.login-modal-sent{background:#2f8a4a14;border:1px solid rgba(47,138,74,.3);border-radius:6px;padding:.8rem;margin-top:.4rem}.login-modal-error,.submit-form-error{color:#c0392b;font-size:.85rem;margin:.4rem 0 0}.submit-form-row{display:flex;gap:.6rem}.submit-form-narrow{flex:0 0 100px}.submit-form-grow{flex:1}.submit-form-buttons{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.submit-form-preview{margin-top:.8rem;padding:.5rem;background:var(--bg);border:1px solid var(--rule);border-radius:5px}.submit-form-preview strong{display:block;font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}.submit-form-preview iframe{display:block;border:0;border-radius:4px}.community-subs{margin-top:1rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-left:3px solid #2f8a4a;border-radius:6px}.community-subs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;gap:.6rem;flex-wrap:wrap}.community-subs-title{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.community-subs-loading,.community-subs-empty{margin:0;font-size:.85rem;color:var(--ink-soft);font-style:italic}.community-subs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.community-sub{border-top:1px dashed var(--rule);padding-top:.8rem}.community-sub:first-child{border-top:0;padding-top:0}.community-sub-head{font-size:.95rem;margin-bottom:.3rem}.community-sub-year,.community-sub-album{color:var(--ink-soft);font-weight:400}.community-sub-note{margin:0 0 .5rem;font-size:.85rem;color:var(--ink);line-height:1.45}.community-sub iframe{display:block;border:0;border-radius:4px;width:100%}.community-sub-meta{margin-top:.4rem;font-size:.75rem;color:var(--ink-soft);font-style:italic}.recorder-item-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:4px}.recorder-item-share,.recorder-item-share-url,.recorder-item-share-toggle{font:inherit;font-size:.78rem;padding:.2rem .55rem;border-radius:4px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);cursor:pointer}.recorder-item-share:hover,.recorder-item-share-url:hover,.recorder-item-share-toggle:hover{background:#d8b89c4d}.recorder-item-share.is-uploading{background:#b75c2a1a;color:var(--accent);font-style:italic;cursor:wait;border-style:dashed}.recorder-item-share.is-error{background:#c0392b1a;color:#c0392b;border-color:#c0392b66}.recorder-item-share-result{display:inline-flex;align-items:center;gap:4px}.recorder-item-share-url{background:#2f8a4a1a;border-color:#2f8a4a66;color:#2f8a4a;font-weight:600}.recorder-item-share-url.is-private{background:var(--bg);color:var(--ink-soft);font-weight:400;cursor:default}.public-rec-app{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.public-rec-header{background:var(--paper);border-bottom:1px solid var(--rule);padding:1rem 1.5rem;box-shadow:var(--shadow)}.analyzer-page{max-width:760px;margin:0 auto;padding:2rem 1.4rem 4rem;font-size:.95rem;line-height:1.55}.analyzer-header{margin-bottom:1.6rem}.analyzer-title{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:.01em}.analyzer-tagline{margin:.4rem 0 0;color:var(--ink-soft)}.analyzer-back-link{margin:.6rem 0 0;font-size:.9rem}.analyzer-back-link a{color:var(--accent);text-decoration:none}.analyzer-back-link a:hover{text-decoration:underline}.analyzer-gate{margin-top:1rem;padding:1.2rem 1.4rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px}.analyzer-gate h2{margin:0 0 .5rem;font-size:1.05rem}.analyzer-back{display:inline-block;margin-top:.5rem;color:var(--accent);text-decoration:none}.analyzer-back:hover{text-decoration:underline}.analyzer-step{margin-top:1.2rem;padding:1rem 1.2rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px}.analyzer-step-title{margin:0 0 .6rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.analyzer-hint{margin:.5rem 0 0;color:var(--ink-soft);font-size:.85rem}.analyzer-error{margin:.5rem 0 0;color:#b73a2a;font-size:.9rem}.analyzer-audio{width:100%;margin-top:.4rem}.analyzer-trim{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.6rem;font-size:.9rem}.analyzer-trim label{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-soft)}.analyzer-trim input[type=number]{font:inherit;width:5em;padding:.2rem .4rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px}.analyzer-trim-meta{color:var(--ink-soft);font-size:.85rem}.analyzer-tradition{display:flex;gap:1.2rem;margin-top:.4rem;font-size:.95rem}.analyzer-demucs{display:flex;gap:.5rem;align-items:flex-start;margin-top:.8rem;padding-top:.6rem;border-top:1px dashed var(--rule);font-size:.85rem;color:var(--ink-soft);line-height:1.45;cursor:pointer}.analyzer-demucs input[type=checkbox]{margin-top:.2rem}.analyzer-tradition label{display:inline-flex;gap:.35rem;align-items:center;cursor:pointer}.analyzer-mode-tabs{display:flex;gap:4px;margin-bottom:.7rem;background:var(--bg);padding:3px;border-radius:6px;border:1px solid var(--rule);width:fit-content}.analyzer-mode-tab{border:0;background:transparent;color:var(--ink-soft);padding:.35rem .9rem;font:inherit;font-size:.85rem;border-radius:4px;cursor:pointer}.analyzer-mode-tab.is-active{background:var(--accent);color:var(--paper);font-weight:600}.analyzer-url-input{width:100%;box-sizing:border-box;font:inherit;padding:.5rem .7rem;border:1px solid var(--rule);background:var(--bg);border-radius:4px;margin-bottom:.3rem}.analyzer-soon{margin-left:.6rem;padding:.15rem .5rem;background:#d8b89c66;color:var(--ink-soft);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:3px}.analyzer-mock-toggle{background:none;border:0;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer;padding:0}.analyzer-mock-toggle:hover{text-decoration:underline}.analyzer-results{background:#d8b89c14}.analyzer-result{margin:.5rem 0;border:1px solid var(--rule);border-radius:6px;background:var(--paper);overflow:hidden}.analyzer-result.is-open{border-color:var(--accent)}.analyzer-result-head{width:100%;display:flex;align-items:center;gap:.7rem;padding:.6rem .9rem;background:none;border:0;font:inherit;cursor:pointer;text-align:left}.analyzer-result-head:hover{background:#d8b89c26}.analyzer-result-name{flex:0 0 12rem;font-weight:600}.analyzer-result-bar{flex:1;height:8px;background:#0000000f;border-radius:4px;overflow:hidden}.analyzer-result-bar-fill{display:block;height:100%;background:var(--accent)}.analyzer-result-conf{flex:0 0 3rem;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.85rem}.analyzer-result-arrow{color:var(--ink-soft);font-size:.85rem}.analyzer-result-body{padding:.6rem .9rem .9rem;border-top:1px solid var(--rule)}.analyzer-result-scale{margin:0 0 .6rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem;color:var(--ink-soft)}.analyzer-result-members{list-style:none;margin:0;padding:0}.analyzer-result-members li{padding:.5rem 0;border-top:1px dashed var(--rule)}.analyzer-result-members li:first-child{border-top:0}.analyzer-result-tradition{color:var(--ink-soft);font-size:.85rem}.analyzer-result-sub{margin:.2rem 0 0;color:var(--ink-soft);font-size:.85rem}.analyzer-cache-badge{margin-left:.4rem;padding:.05rem .4rem;background:#2e8b572e;color:#2e8b57;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:3px}.analyzer-share{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.3rem 0 .6rem}.analyzer-share-btn{font-size:.8rem;padding:.3rem .7rem}.analyzer-share-url{font-size:.8rem;color:var(--ink-soft);background:var(--paper);padding:.2rem .5rem;border-radius:3px;border:1px solid var(--rule);word-break:break-all}.analyzer-subhead{font-size:.95rem;font-weight:600;margin:1rem 0 .4rem;color:var(--ink)}.analyzer-subhead-hint{color:var(--ink-soft);font-weight:400;font-size:.8rem}.analyzer-predominant{margin-top:.6rem}.analyzer-predominant-list{list-style:none;padding:0;margin:0;display:grid;gap:.35rem}.analyzer-not-maqam-banner{margin:.8rem 0;padding:.7rem 1rem;background:#b86c6c14;border:1px solid #b86c6c;border-left:4px solid #b86c6c;border-radius:4px;font-size:.88rem;color:var(--ink)}.analyzer-calibration{margin:1.2rem 0;padding:1rem 1.1rem;background:#d8b89c12;border:1px solid var(--rule);border-radius:8px}.analyzer-calib-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.analyzer-calib-stat{padding:.6rem .8rem;background:var(--bg);border-radius:6px;border:1px solid var(--rule)}.analyzer-calib-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:.25rem}.analyzer-calib-value-big{font-size:1.4rem;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace}.analyzer-calib-note{font-size:.75rem;color:var(--ink-soft);margin-top:.2rem}.analyzer-calib-bar{margin-top:.4rem;height:6px;background:var(--rule);border-radius:3px;overflow:hidden}.analyzer-calib-bar-fill{height:100%;background:linear-gradient(90deg,#6a8e6a,#d8b89c);transition:width .3s ease}.analyzer-calib-tunings{margin-top:.6rem}.analyzer-calib-tunings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.5rem}.analyzer-calib-tuning{padding:.6rem .8rem;background:var(--bg);border:1px solid var(--rule);border-radius:6px}.analyzer-calib-tuning-winner{border-color:#6a8e6a;background:#6a8e6a0d}.analyzer-calib-tuning-name{font-size:.85rem;font-weight:600;margin-bottom:.3rem;display:flex;align-items:center;justify-content:space-between}.analyzer-calib-best-badge{font-size:.7rem;background:#6a8e6a;color:#fff;padding:.1rem .4rem;border-radius:3px;font-weight:400}.analyzer-calib-tuning-stats{font-size:.78rem;color:var(--ink-soft);margin-bottom:.4rem;font-family:ui-monospace,SF Mono,Menlo,monospace}.analyzer-calib-hist{display:flex;align-items:flex-end;height:40px;gap:2px;background:var(--rule);padding:2px;border-radius:3px}.analyzer-calib-hist-bar{flex:1;min-height:2px;border-radius:1px;transition:height .3s ease}.analyzer-calib-hist-good{background:#6a8e6a}.analyzer-calib-hist-fair{background:#d8b89c}.analyzer-calib-hist-poor{background:#b86c6c}.analyzer-calib-recommendation{margin:.7rem 0 0;padding:.5rem .7rem;background:#6a8e6a14;border-left:3px solid #6a8e6a;font-size:.85rem;border-radius:0 4px 4px 0}.analyzer-drone-widget{margin-top:.9rem;padding-top:.7rem;border-top:1px dashed var(--rule)}.analyzer-drone-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 .5rem}.analyzer-drone-chip{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .7rem;background:var(--bg-soft, #f7f3ec);border:1px solid var(--rule);border-radius:6px;cursor:pointer;font-family:inherit;min-width:4.5rem}.analyzer-drone-chip:hover{background:#6a8e6a1f}.analyzer-drone-chip.is-selected{border-color:#6a8e6a;background:#6a8e6a1a}.analyzer-drone-chip.is-playing{background:#6a8e6a;color:#fff}.analyzer-drone-chip.is-playing .analyzer-drone-cov,.analyzer-drone-chip.is-playing .analyzer-drone-hz{color:#ffffffe6}.analyzer-drone-label{font-weight:600;font-size:.85rem}.analyzer-drone-hz{font-size:.7rem;color:var(--ink-soft)}.analyzer-drone-cov{font-size:.65rem;color:var(--ink-soft);font-style:italic}.analyzer-drone-icon{font-size:.9rem;margin-top:.1rem}.analyzer-drone-volume{display:flex;align-items:center;gap:.6rem;margin-top:.3rem}.analyzer-jam-mixer{margin:.6rem 0 1rem;padding:.7rem .8rem;background:var(--bg-soft, #f7f3ec);border:1px solid var(--rule);border-radius:6px}.analyzer-jam-header{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.5rem}.analyzer-jam-title{font-weight:600;font-size:.95rem}.analyzer-jam-hint{font-size:.78rem;color:var(--ink-soft);font-style:italic}.analyzer-jam-transport{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.analyzer-jam-scrub{flex:1;min-width:100px}.analyzer-jam-time{font-family:ui-monospace,SF Mono,monospace;font-size:.8rem;color:var(--ink-soft);min-width:7ch;text-align:right}.analyzer-jam-stems{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.analyzer-jam-stem{display:grid;grid-template-columns:auto 1.2rem minmax(80px,1fr) minmax(120px,2fr);align-items:center;gap:.5rem;padding:.3rem .4rem;border-radius:4px}.analyzer-jam-stem.is-muted{opacity:.5;background:#00000008}.analyzer-jam-mute{background:transparent;border:1px solid var(--rule);border-radius:4px;padding:.2rem .4rem;cursor:pointer;font-size:.95rem;line-height:1}.analyzer-jam-mute.is-on{background:#b86c6c26;border-color:#b86c6c}.analyzer-jam-stem-icon{font-size:1rem}.analyzer-jam-stem-name{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analyzer-jam-vol{width:100%}.analyzer-predominant-row{display:grid;grid-template-columns:.9rem minmax(0,1.2fr) auto minmax(120px,2fr) auto;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem 0;border-bottom:1px dashed var(--rule)}.analyzer-predominant-row:last-child{border-bottom:0}.analyzer-predominant-swatch{width:.85rem;height:.85rem;border-radius:2px}.analyzer-predominant-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analyzer-predominant-fam,.analyzer-predominant-tonic{color:var(--ink-soft);font-size:.78rem}.analyzer-predominant-bar{position:relative;height:6px;background:var(--paper);border:1px solid var(--rule);border-radius:3px;overflow:hidden}.analyzer-predominant-bar-fill{display:block;height:100%}.analyzer-predominant-time{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem;color:var(--ink-soft);white-space:nowrap}.analyzer-timeline{margin-top:.7rem}.analyzer-timeline-strip{position:relative;height:32px;background:var(--paper);border:1px solid var(--rule);border-radius:4px;overflow:hidden}.analyzer-timeline-seg{position:absolute;top:0;bottom:0;border:0;border-right:1px solid rgba(255,255,255,.25);padding:0;cursor:pointer;color:#000000d9;font-size:.7rem;text-align:left;overflow:hidden;white-space:nowrap;transition:filter .1s}.analyzer-timeline-seg:hover{filter:brightness(1.1);z-index:2}.analyzer-timeline-seg.is-pinned{outline:2px solid var(--accent);z-index:3}.analyzer-timeline-seg-label{display:inline-block;padding:0 4px;line-height:32px;text-shadow:0 0 2px rgba(255,255,255,.7)}.analyzer-timeline-axis{display:flex;justify-content:space-between;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;color:var(--ink-soft);margin-top:.2rem}.analyzer-timeline-detail{margin-top:.4rem;padding:.4rem .6rem;background:var(--paper);border:1px solid var(--accent);border-radius:4px;font-size:.85rem}.analyzer-segment-melodies{margin-top:.7rem}.analyzer-segment-list{list-style:none;padding:0;margin:0;display:grid;gap:.25rem}.analyzer-segment-item{border:1px solid var(--rule);border-radius:4px;background:var(--paper)}.analyzer-segment-item.is-open{border-color:var(--accent)}.analyzer-segment-head{display:grid;grid-template-columns:.85rem auto minmax(0,1.5fr) auto auto;gap:.6rem;align-items:center;width:100%;padding:.4rem .6rem;background:transparent;border:0;cursor:pointer;text-align:left;font-size:.85rem}.analyzer-segment-head:hover{background:#d8b89c1f}.analyzer-segment-time{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:var(--ink-soft);white-space:nowrap}.analyzer-segment-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analyzer-segment-meta{font-size:.75rem;color:var(--ink-soft);white-space:nowrap}.analyzer-segment-score{padding:.4rem .6rem .6rem;border-top:1px dashed var(--rule)}.analyzer-segment-empty{padding:.4rem .6rem;font-size:.8rem;color:var(--ink-soft);border-top:1px dashed var(--rule);margin:0}.analyzer-stems{margin-top:.7rem}.analyzer-stems-list{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.analyzer-stem-card{border:1px solid var(--rule);border-radius:5px;background:var(--paper);overflow:hidden}.analyzer-stem-card.is-open{border-color:var(--accent)}.analyzer-stem-head{display:grid;grid-template-columns:1.4rem auto auto minmax(0,1fr) auto auto;align-items:center;gap:.6rem;width:100%;padding:.5rem .7rem;background:transparent;border:0;cursor:pointer;text-align:left;font-size:.9rem}.analyzer-stem-head:hover{background:#d8b89c1f}.analyzer-stem-icon{font-size:1.1rem}.analyzer-quality{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;font-weight:600;padding:.15rem .45rem;border-radius:3px;min-width:2rem;text-align:center}.analyzer-quality-excellent{background:#d4edd4;color:#2d6a2d}.analyzer-quality-good{background:#d4e7ed;color:#2d4d6a}.analyzer-quality-fair{background:#fff3d4;color:#6a5d2d}.analyzer-quality-poor{background:#edd4d4;color:#6a2d2d}.analyzer-quality-no-data{background:#e0e0e0;color:#555}.analyzer-stem-name{font-weight:600}.analyzer-stem-engine{font-size:.7rem;color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace;padding:.05rem .35rem;background:var(--bg);border:1px solid var(--rule);border-radius:3px}.analyzer-stem-meta{font-size:.78rem;color:var(--ink-soft)}.analyzer-stem-body{padding:.6rem .7rem .7rem;border-top:1px dashed var(--rule);background:var(--bg)}.analyzer-contour{margin:.6rem 0}.analyzer-contour-svg{display:block;width:100%;height:auto;background:var(--paper);border:1px solid var(--rule);border-radius:4px}.analyzer-contour-legend{margin:.3rem 0 0;font-size:.72rem;color:var(--ink-soft);font-style:italic}.analyzer-edo53{margin-top:.6rem;padding:.4rem .6rem;background:var(--paper);border:1px solid var(--rule);border-radius:4px;font-size:.85rem}.analyzer-edo53 summary{cursor:pointer;font-size:.85rem}.analyzer-edo53-list{margin:.4rem 0 0;padding-left:1.2rem}.analyzer-edo53-list li{margin:.2rem 0}.analyzer-playalong{margin:.6rem 0 1rem;padding:.7rem .9rem;background:linear-gradient(180deg,#d8b89c1f,#d8b89c0a);border:1px solid var(--accent);border-radius:6px}.analyzer-playalong-header{display:flex;align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.analyzer-playalong-icon{color:var(--accent)}.analyzer-playalong-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem}@media (max-width: 600px){.analyzer-playalong-grid{grid-template-columns:1fr}}.analyzer-playalong-cell{display:flex;flex-direction:column;gap:.15rem}.analyzer-playalong-cell-wide{grid-column:1 / -1}.analyzer-playalong-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.analyzer-playalong-value{font-size:.95rem;font-weight:500}.analyzer-playalong-tradition{color:var(--ink-soft);font-weight:400;font-size:.85rem}.analyzer-playalong-tonic{font-size:1.4rem;font-weight:700;color:var(--accent);font-family:ui-serif,Georgia,serif}.analyzer-playalong-transpose{font-size:.72rem;color:var(--ink-soft);font-style:italic}.analyzer-playalong-degrees{font-family:ui-serif,Georgia,serif;font-size:1rem;letter-spacing:.04em}.analyzer-gt{font-size:.78rem;margin-left:auto;padding:.15rem .5rem;border-radius:3px;font-weight:500}.analyzer-gt-match{background:#d4edd4;color:#2d6a2d}.analyzer-gt-family-match{background:#fff3d4;color:#6a5d2d}.analyzer-gt-miss{background:#edd4d4;color:#6a2d2d}.analyzer-score-section,.analyzer-keyboard-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--rule)}.analyzer-playback{margin:.5rem 0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.analyzer-side-by-side{margin:.6rem 0 .4rem;padding:.6rem .8rem;background:#d8b89c14;border:1px solid var(--rule);border-radius:6px}.analyzer-side-by-side-row{display:flex;align-items:center;gap:.8rem}.analyzer-side-by-side-label{font-size:.85rem;color:var(--ink-soft);min-width:7rem;font-weight:600}.analyzer-audio-inline{flex:1;height:32px;min-width:0}.analyzer-side-by-side-hint{font-size:.75rem;color:var(--ink-soft);margin:.4rem 0 0;font-style:italic}.btn-play-secondary{background:var(--bg);color:var(--ink);border:1px solid var(--rule);font-size:.95rem;padding:.35rem .7rem}.btn-play-secondary:not(:disabled):hover{background:#d8b89c2e}.btn-play-secondary:disabled{opacity:.4}.analyzer-playback-pos{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;color:var(--ink-soft);margin-right:.6rem}.analyzer-simplify{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--ink-soft)}.analyzer-simplify input[type=range]{width:120px}.analyzer-simplify-label{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;min-width:14rem}.analyzer-score{margin-top:.6rem;background:var(--bg);border:1px dashed var(--rule);border-radius:6px;padding:.6rem;min-height:120px}.analyzer-score .sheet-music-svg g.note{cursor:pointer;transition:fill .15s}.analyzer-score .sheet-music-svg g.note:hover,.analyzer-score .sheet-music-svg g.note:hover *{fill:#b75c2a}.analyzer-score .sheet-music-svg g.note.now-playing,.analyzer-score .sheet-music-svg g.note.now-playing *{fill:#2d6a4f}.analyzer-score .sheet-music-svg g.note.now-playing{filter:drop-shadow(0 0 3px rgba(45,106,79,.6))}.analyzer-score .sheet-music-svg g.note.microtonal,.analyzer-score .sheet-music-svg g.note.microtonal *{fill:#5a7a9c}.analyzer-score .sheet-music-svg g.note.microtonal:hover,.analyzer-score .sheet-music-svg g.note.microtonal:hover *{fill:#b75c2a}.analyzer-score-meta{font-size:.85rem;color:var(--ink-soft);margin-bottom:.4rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}.analyzer-score-actions{display:inline-flex;gap:.4rem}.analyzer-score-download{font-size:.78rem;padding:.2rem .55rem;background:var(--paper);border:1px solid var(--rule);border-radius:3px;cursor:pointer;color:var(--ink)}.analyzer-score-download:hover{background:#d8b89c2e;border-color:var(--accent)}.analyzer-score-status{margin:0;padding:1.4rem 0;text-align:center;color:var(--ink-soft);font-style:italic}.analyzer-correct-btn{margin-left:.6rem;padding:.15rem .5rem;font:inherit;font-size:.75rem;background:var(--paper);border:1px solid var(--rule);color:var(--ink-soft);border-radius:3px;cursor:pointer}.analyzer-correct-btn:hover:not(:disabled){background:var(--accent);color:var(--paper);border-color:var(--accent)}.analyzer-correct-btn:disabled{opacity:.5;cursor:not-allowed}.public-rec-brand{text-decoration:none;display:inline-flex;align-items:baseline;gap:.6rem}.public-rec-brand .brand-en{font-size:1.15rem;font-weight:700;color:var(--ink)}.public-rec-brand .brand-ar{font-size:1.05rem;color:var(--accent)}.public-rec-main{flex:1;padding:2rem 1.5rem;display:flex;justify-content:center}.public-rec,.public-rec-error{max-width:640px;width:100%;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:2rem;box-shadow:var(--shadow)}.public-rec-title{margin:0 0 .6rem;font-size:1.5rem}.public-rec-context{font-size:.9rem;color:var(--ink-soft);margin:0 0 1.2rem;line-height:1.5}.public-rec-context a{color:var(--accent)}.public-rec-audio{width:100%;display:block;margin:1rem 0}.public-rec-meta{font-size:.78rem;color:var(--ink-soft);font-style:italic;margin:.4rem 0 1.4rem}.public-rec-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}.public-rec-cta .btn{text-decoration:none;display:inline-block}.public-rec-loading,.public-rec-error h1{text-align:center;color:var(--ink)}.public-rec-error h1{margin-top:0;color:#c0392b}.public-rec-error-hint{font-size:.85rem;color:var(--ink-soft);margin-top:1rem}.cultural-refs{margin-top:1rem;padding:.8rem 1rem;background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:6px}.cultural-refs-title{margin:0 0 .6rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.cultural-refs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.cultural-ref{border-top:1px dashed var(--rule);padding-top:.6rem}.cultural-ref:first-child{border-top:0;padding-top:0}.cultural-ref-head{font-size:.95rem;color:var(--ink);margin-bottom:.25rem}.cultural-ref-year{color:var(--ink-soft);font-weight:400}.cultural-ref-album{color:var(--ink-soft)}.cultural-ref-note{margin:.25rem 0 .4rem;font-size:.85rem;color:var(--ink);line-height:1.45}.cultural-ref-meta{display:flex;flex-wrap:wrap;gap:.6rem;align-items:baseline;font-size:.78rem}.cultural-ref-link{color:var(--accent);text-decoration:none}.cultural-ref-link:hover{text-decoration:underline}.cultural-ref-source,.cultural-ref-source a{color:var(--ink-soft);font-style:italic;text-decoration:none}.cultural-ref-source a:hover{text-decoration:underline}.pitch-section{background:linear-gradient(180deg,var(--paper) 0%,#fff8e6 100%)}.pitch-vis-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.7rem}.pitch-vis-header h2{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.pitch-vis-error{color:#b03a2e;font-size:.9rem;margin:.4rem 0}.pitch-vis-readout{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:.4rem 0 .6rem}.pitch-vis-note{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:2.6rem;font-weight:600;line-height:1;color:var(--ink-soft);transition:color 80ms}.pitch-vis-note.is-in-tune{color:#2e8b57}.pitch-vis-note.is-near{color:#d4a72b}.pitch-vis-note.is-off{color:#c0392b}.pitch-vis-detail{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;color:var(--ink-soft)}.pitch-vis-cents{font-size:1.05rem;color:var(--ink)}.pitch-vis-meter{margin-top:.4rem}.pitch-vis-meter-track{position:relative;height:18px;background:linear-gradient(90deg,#c0392b2e,#d4a72b2e 30%,#2e8b572e,#d4a72b2e 70%,#c0392b2e);border:1px solid var(--rule);border-radius:4px}.pitch-vis-meter-target{position:absolute;left:50%;top:-2px;bottom:-2px;width:2px;background:var(--ink);transform:translate(-50%)}.pitch-vis-meter-needle{position:absolute;top:-4px;bottom:-4px;width:4px;border-radius:2px;transform:translate(-50%);background:var(--ink-soft);transition:left 60ms linear}.pitch-vis-meter-needle.is-in-tune{background:#2e8b57}.pitch-vis-meter-needle.is-near{background:#d4a72b}.pitch-vis-meter-needle.is-off{background:#c0392b}.pitch-vis-meter-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--ink-soft);margin-top:.3rem;font-family:ui-monospace,SF Mono,Menlo,monospace}.pitch-vis-header-controls{display:flex;align-items:center;gap:.7rem}.view-toggle{display:inline-flex;border:1px solid var(--rule);border-radius:6px;overflow:hidden;background:var(--bg)}.view-toggle-btn{font:inherit;font-size:.85rem;padding:.3rem .7rem;background:transparent;border:0;color:var(--ink-soft);cursor:pointer}.view-toggle-btn+.view-toggle-btn{border-left:1px solid var(--rule)}.view-toggle-btn.is-active{background:var(--accent);color:var(--paper)}.vert-scale{margin-top:.6rem;padding:0 3.4rem}.vert-scale-track{position:relative;height:520px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow);overflow:visible}.vert-scale-center{position:absolute;left:50%;top:6px;bottom:6px;width:2px;margin-left:-1px;background:linear-gradient(180deg,transparent 0%,rgba(138,75,43,.1) 15%,rgba(138,75,43,.1) 85%,transparent 100%)}.vert-scale-rail{position:absolute;left:0;right:0;height:1px;display:flex;align-items:center;pointer-events:none}.vert-scale-line{flex:1;height:1px;background:var(--rule);opacity:.7}.vert-scale-label-left,.vert-scale-label-right{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.72rem;color:var(--ink-soft);white-space:nowrap;transform:translateY(-50%);position:absolute;top:50%}.vert-scale-label-left{right:calc(100% + 8px);text-align:right}.vert-scale-label-right{left:calc(100% + 8px)}.vert-scale-rail.is-tonic .vert-scale-line{background:var(--tonic);height:2px;opacity:1}.vert-scale-rail.is-tonic .vert-scale-label-left,.vert-scale-rail.is-tonic .vert-scale-label-right{color:var(--tonic);font-weight:600}.vert-scale-rail.is-octave .vert-scale-line{background:var(--accent-soft);height:1.5px;opacity:.9}.vert-scale-rail.is-octave .vert-scale-label-left,.vert-scale-rail.is-octave .vert-scale-label-right{color:var(--accent)}.vert-scale-rail.is-in-trajectory .vert-scale-line{background:var(--accent-soft);height:2px;opacity:.85}.vert-scale-rail.is-in-trajectory .vert-scale-label-left,.vert-scale-rail.is-in-trajectory .vert-scale-label-right{color:var(--accent)}.vert-scale-rail.is-snippet-current .vert-scale-line{background:var(--accent);height:3px;opacity:1;box-shadow:0 0 6px #8a4b2b73}.vert-scale-rail.is-in-tune .vert-scale-line{background:#2e8b57;height:3px;opacity:1;box-shadow:0 0 8px #2e8b5780}.vert-scale-rail.is-near .vert-scale-line{background:#d4a72b;height:2px;opacity:1}.vert-scale-rail.is-off .vert-scale-line{background:#c0392b;opacity:.85}.vert-scale-ball{position:absolute;left:50%;width:22px;height:22px;margin-left:-11px;margin-top:-11px;border-radius:50%;background:var(--ink-soft);box-shadow:0 2px 6px #0000002e;transition:top 40ms linear,background 80ms;z-index:2;display:flex;align-items:center;justify-content:center}.vert-scale-ball.is-in-tune{background:#2e8b57;box-shadow:0 0 14px #2e8b57b3,0 2px 6px #0000002e}.vert-scale-ball.is-near{background:#d4a72b}.vert-scale-ball.is-off{background:#c0392b}.vert-scale-ball-cents{position:absolute;left:calc(100% + 8px);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);padding:.05rem .35rem;border-radius:3px;white-space:nowrap}.keyboard-section{margin-top:1.4rem}.kbd-rows{display:flex;flex-direction:column;gap:.45rem;align-items:stretch;direction:ltr}.kbd-row{display:flex;gap:.35rem;align-items:stretch}.kbd-rows.is-piano-rtl .kbd-row{flex-direction:row-reverse}.kbd-rows.is-piano-rtl .kbd-row-label{order:-1}.kbd-row-label{width:1.4rem;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:.95rem}.kbd-key{flex:1;min-height:3.4rem;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:.35rem .25rem;background:var(--paper);border:1px solid var(--rule);border-radius:6px;box-shadow:var(--shadow);font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform 80ms,background .12s;touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,0)}@media (pointer: coarse){.kbd-key{min-height:4rem;padding:.5rem .3rem}}.kbd-key:hover{background:#fff8e6}.kbd-key.is-active{background:var(--accent);color:var(--paper);transform:translateY(1px)}.kbd-key.is-lit{background:var(--highlight);border-color:#d4a72b}.kbd-key.is-tonic{border-color:var(--tonic);border-width:2px}.kbd-key.is-tonic .kbd-degree{color:var(--tonic);font-weight:700}.kbd-key.is-active.is-tonic{background:var(--tonic);color:var(--paper)}.kbd-key.is-active .kbd-degree,.kbd-key.is-active .kbd-note{color:inherit}.kbd-letter{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:var(--ink-soft);letter-spacing:.04em}.kbd-note{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;font-weight:500}.kbd-degree{font-size:.7rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.kbd-cents{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.65rem;color:var(--ink-soft);opacity:.75}.kbd-key.is-active .kbd-cents{color:inherit;opacity:.85}.kbd-key.lower,.kbd-key.upper,.kbd-key.highest{background:#f0ebde}.hint{margin:.7rem 0 0;font-size:.88rem;color:var(--ink-soft);line-height:1.5}.hint kbd{font-family:ui-monospace,SF Mono,Menlo,monospace;border:1px solid var(--rule);background:var(--paper);padding:.05rem .35rem;border-radius:3px;font-size:.85em}.hint-keys{margin-top:.6rem}.hint-ornaments{margin-top:.3rem;font-size:.83rem;padding:.5rem .7rem;background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:4px}.hint-ornaments kbd{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em;padding:.05rem .35rem;border:1px solid var(--rule);background:var(--bg);border-radius:3px}.snippet-empty{color:var(--ink-soft);font-style:italic}.mob-kbd{width:100%;display:flex;flex-direction:column;gap:.6rem;align-items:stretch}.mob-kbd-shift{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.2rem .1rem}.mob-kbd-shift-btn{font:inherit;font-size:.95rem;padding:.55rem .95rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink);cursor:pointer;min-width:4.5rem;-webkit-tap-highlight-color:transparent}.mob-kbd-shift-btn:disabled{opacity:.4}.mob-kbd-shift-label{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem;color:var(--ink-soft);text-align:center;flex:1}.mob-kbd-row{display:grid;grid-template-columns:repeat(8,1fr);gap:.4rem}.mob-kbd{direction:ltr}.mob-kbd.is-piano-rtl .mob-kbd-row{direction:rtl}.mob-kbd-key{font:inherit;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:4.5rem;padding:.4rem .1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform 80ms,background .12s}.mob-kbd-key:active{background:var(--accent);color:var(--paper);transform:translateY(1px)}.mob-kbd-key.is-tonic{border-color:var(--tonic);border-width:2px}.mob-kbd-key.is-octave-tonic{border-color:var(--accent-soft);background:#d8b89c2e}.mob-kbd-key.is-lit{background:var(--highlight);border-color:#d4a72b}.mob-kbd-key-degree{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.4rem;font-weight:600;color:inherit}.mob-kbd-key.is-tonic .mob-kbd-key-degree{color:var(--tonic)}.mob-kbd-key:active .mob-kbd-key-degree{color:inherit}.mob-kbd-key-note{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;color:var(--ink-soft);margin-top:.15rem}.mob-kbd-key:active .mob-kbd-key-note{color:inherit}.mob-kbd-hint{margin:.5rem 0 0;font-size:.78rem;color:var(--ink-soft);text-align:center}.mobile-maqam-pick{margin:.4rem .6rem}.mobile-maqam-pick select{width:100%;padding:.6rem .7rem;font:inherit;font-size:1rem;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink);-webkit-appearance:menulist}.is-hidden-mobile{display:none}@media (min-width: 721px){.mobile-maqam-pick{display:none}.is-hidden-mobile{display:flex}}@media (max-width: 720px){.topbar{flex-wrap:wrap;padding:.7rem .9rem;gap:.5rem}.keyboard-controls{gap:.5rem;flex-wrap:wrap}.brand-en{font-size:1.2rem}.sidebar{border-right:0;border-bottom:1px solid var(--rule);padding:.6rem 0;max-height:none}.sidebar-title{margin:0 .6rem .2rem;font-size:.7rem}.main{padding:1rem .9rem}.maqam-name{font-size:1.5rem}.snippet-row{gap:.4rem}.snippet-tempo{margin-left:0}.score-view svg{width:auto}.recorder-controls{gap:.6rem}.recorder-item-label{flex-wrap:wrap}}.tuner{margin-top:1.4rem;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow)}.tuner-header{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem}.tuner-title{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.tuner-mode{display:flex;gap:4px;background:var(--bg);padding:3px;border-radius:6px;border:1px solid var(--rule)}.tuner-mode-btn{border:0;background:transparent;color:var(--ink-soft);padding:4px 12px;font-size:.85rem;border-radius:4px;cursor:pointer;font-family:inherit}.tuner-mode-btn.is-active{background:var(--accent);color:var(--paper);font-weight:600}.tuner-error{background:#c0392b14;border:1px solid rgba(192,57,43,.4);color:#c0392b;padding:.4rem .6rem;border-radius:4px;font-size:.85rem;margin:0 0 .6rem}.tuner-display{display:flex;justify-content:space-between;align-items:baseline;padding:.6rem .8rem;background:var(--bg);border-radius:6px;margin-bottom:.6rem;border:2px solid transparent;transition:border-color .12s ease}.tuner-display.is-perfect{border-color:#2f8a4a}.tuner-display.is-close{border-color:#c97a2a}.tuner-display.is-off{border-color:#c0392b}.tuner-target{display:flex;flex-direction:column;gap:2px}.tuner-target-name{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:2rem;font-weight:700;color:var(--ink);line-height:1}.tuner-target-meta{font-size:.8rem;color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace}.tuner-cents{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.6rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.tuner-display.is-perfect .tuner-cents{color:#2f8a4a}.tuner-display.is-close .tuner-cents{color:#c97a2a}.tuner-display.is-off .tuner-cents{color:#c0392b}.tuner-bar{position:relative;height:50px;background:var(--bg);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.tuner-bar-zone{position:absolute;top:0;bottom:18px;opacity:.18}.tuner-bar-zone.is-green{left:45%;width:10%;background:#2f8a4a}.tuner-bar-zone.is-yellow.is-left{left:30%;width:15%;background:#c97a2a}.tuner-bar-zone.is-yellow.is-right{left:55%;width:15%;background:#c97a2a}.tuner-bar-zone.is-red.is-left{left:0;width:30%;background:#c0392b}.tuner-bar-zone.is-red.is-right{left:70%;width:30%;background:#c0392b}.tuner-bar-center{position:absolute;left:50%;top:0;bottom:18px;width:2px;background:var(--ink);transform:translate(-50%);z-index:2}.tuner-needle{position:absolute;top:0;bottom:18px;width:4px;background:var(--accent);border-radius:2px;transform:translate(-50%);transition:left 80ms ease-out,background .12s ease;box-shadow:0 0 6px #0000004d;z-index:3}.tuner-needle.is-perfect{background:#2f8a4a}.tuner-needle.is-close{background:#c97a2a}.tuner-needle.is-off{background:#c0392b}.tuner-bar-labels{position:absolute;left:0;right:0;bottom:2px;display:flex;justify-content:space-between;padding:0 4px;font-size:.7rem;color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace;pointer-events:none}.tuner-hint{margin:0;font-size:.8rem;color:var(--ink-soft);font-style:italic}.tuner-diagram-toggle.is-active,.tuner-debug-toggle.is-active{background:var(--accent);color:var(--paper);border-color:var(--accent)}.tuner-debug{margin-top:.8rem;padding:.6rem .8rem;background:#1f1f1f;color:#e0e0e0;border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;display:grid;grid-template-columns:repeat(2,1fr);column-gap:1.2rem;row-gap:.2rem}.tuner-debug-row{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dotted rgba(255,255,255,.1);padding:.1rem 0}.tuner-debug-label{color:#999}.tuner-debug-val{color:#66d9a8;font-variant-numeric:tabular-nums}.tuner-diagram{margin-top:.8rem;padding-top:.8rem;border-top:1px dashed var(--rule)}.tuner-diagram .instrument-diagram{margin-top:0;padding:0;background:transparent;border:0;box-shadow:none}.sheet-music-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#28160c8c;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.sheet-music-dock{position:fixed;top:60px;right:0;bottom:0;width:min(48vw,720px);background:#fff8e6;border-left:1px solid #e6d4b8;box-shadow:-6px 0 18px #0000001f;display:flex;flex-direction:column;z-index:80}@media (max-width: 900px){.sheet-music-dock{width:min(90vw,560px);top:100px}}.sheet-music-panel{background:#fff8e6;border-radius:10px;width:min(1200px,100%);max-height:calc(100vh - 2rem);display:flex;flex-direction:column;box-shadow:0 8px 32px #0006}.sheet-music-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid #e6d4b8;flex-wrap:wrap}.sheet-music-header h2{margin:0;font-size:1.1rem}.sheet-music-controls{display:flex;align-items:center;gap:1rem;margin-left:auto;flex-wrap:wrap}.sheet-music-canvas{overflow:auto;padding:1rem;background:#fff;flex:1;min-height:200px}.sheet-music-svg svg{display:block;max-width:100%;height:auto}.sheet-music-loading,.sheet-music-error{text-align:center;color:#6e574a;padding:2rem}.sheet-music-error{color:#b73a2a}.step-seq-share-msg{margin:.5rem 0;font-size:.85rem;color:#6e574a}.step-seq-share-msg a{color:#b75c2a}.step-seq-share-err{color:#b73a2a}.sheet-music-svg g.note{cursor:pointer;transition:fill .15s}.sheet-music-svg g.note:hover{fill:#b75c2a}.sheet-music-svg g.note.note-selected,.sheet-music-svg g.note.note-selected *{fill:#b75c2a;color:#b75c2a}.sheet-music-svg g.note.note-playing,.sheet-music-svg g.note.note-playing *{fill:#d97a3d;color:#d97a3d}.sheet-music-hint{text-align:center;font-size:.85rem;color:#6e574a;margin:0;padding:.5rem 1rem .75rem;border-top:1px solid #e6d4b8}.session-bar{border-bottom:1px solid #e6d4b8;padding:.5rem .75rem;background:#fdf6e8}.session-bar-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.session-bar-label{font-size:.85rem;color:#6e574a;font-weight:600}.session-bar-name{background:transparent;border:1px dashed transparent;padding:.15rem .4rem;border-radius:4px;font-weight:600;color:#2a1810;cursor:pointer;font-family:inherit;font-size:.95rem}.session-bar-name:hover:not(:disabled){border-color:#c8a878;background:#fff8e6}.session-bar-name:disabled{cursor:default;opacity:.6}.session-bar-name-input{font-family:inherit;font-size:.95rem;font-weight:600;padding:.15rem .4rem;border:1px solid #b75c2a;border-radius:4px;background:#fff;color:#2a1810;min-width:200px}.session-bar-dot{margin-left:.3rem;color:#b75c2a;font-size:.85rem}.session-bar-status{font-size:.8rem;color:#6e574a;font-style:italic;margin-left:.3rem}.session-bar-actions{display:flex;gap:.4rem;margin-left:auto}.session-bar-conflict{margin-top:.5rem;padding:.6rem .8rem;background:#fce8d8;border:1px solid #d97a3d;border-radius:6px;font-size:.9rem;color:#5a2a14}.session-bar-conflict strong{color:#b73a2a}.session-bar-conflict-actions{margin-top:.5rem}.session-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#28160c8c;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.session-menu-panel{background:#fff8e6;border-radius:10px;width:min(700px,100%);max-height:calc(100vh - 2rem);display:flex;flex-direction:column;box-shadow:0 8px 32px #0006}.session-menu-header{padding:.75rem 1rem;border-bottom:1px solid #e6d4b8;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.session-menu-header h2{margin:0;font-size:1.1rem}.session-menu-tabs{display:flex;gap:.4rem}.session-menu-tabs button{background:transparent;border:1px solid #c8a878;padding:.3rem .7rem;border-radius:4px;font-family:inherit;font-size:.85rem;color:#6e574a;cursor:pointer}.session-menu-tabs button.active{background:#b75c2a;color:#fff8e6;border-color:#b75c2a}.session-menu-actions{display:flex;gap:.4rem;margin-left:auto}.session-menu-list{overflow-y:auto;padding:.5rem 1rem;flex:1;min-height:200px}.session-menu-empty{text-align:center;color:#6e574a;padding:2rem;font-style:italic}.session-row{display:flex;align-items:center;gap:1rem;padding:.6rem .8rem;border-bottom:1px solid #f0e4cc}.session-row-main{flex:1;min-width:0}.session-row-name{font-weight:600;color:#2a1810;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-row-meta{font-size:.8rem;color:#6e574a;margin-top:.15rem}.session-row-actions{display:flex;gap:.4rem}.btn-danger{background:#fff;color:#b73a2a;border:1px solid #b73a2a}.btn-danger:hover{background:#fce8d8}.session-menu-footer{padding:.6rem 1rem;border-top:1px solid #e6d4b8;font-size:.8rem;color:#6e574a}.session-menu-quota em{color:#b75c2a}.export-menu-wrapper{position:relative;display:inline-block}.export-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:240px;background:#fff8e6;border:1px solid #c8a878;border-radius:6px;box-shadow:0 4px 16px #0003;z-index:50;padding:.4rem 0}.export-menu-section{padding:.2rem 0}.export-menu-section+.export-menu-section{border-top:1px solid #e6d4b8;margin-top:.2rem;padding-top:.4rem}.export-menu-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#6e574a;padding:.2rem .8rem;font-weight:600}.export-menu-item{display:flex;align-items:baseline;gap:.6rem;width:100%;background:transparent;border:0;padding:.4rem .8rem;font-family:inherit;font-size:.9rem;color:#2a1810;text-align:left;cursor:pointer}.export-menu-item:hover:not(:disabled){background:#f0e4cc}.export-menu-item:disabled{opacity:.4;cursor:not-allowed}.export-menu-ext{display:inline-block;min-width:70px;font-family:ui-monospace,monospace;font-size:.78rem;color:#b75c2a;font-weight:600}.export-menu-item.is-locked{opacity:.6;cursor:not-allowed}.export-menu-pro-badge{display:inline-block;margin-left:.5rem;padding:1px 6px;background:#d4a017;color:#fff;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:3px}.session-bar-share{display:inline-flex;align-items:center;gap:.4rem}.session-bar-share-link{font-size:.8rem;color:#b75c2a;text-decoration:underline;text-underline-offset:2px}.session-bar-share-err{font-size:.8rem;color:#b73a2a}.session-menu-body{display:flex;flex:1;min-height:200px;overflow:hidden}.session-folder-sidebar{flex:0 0 200px;border-right:1px solid #e6d4b8;background:#fdf6e8;padding:.5rem 0;display:flex;flex-direction:column;overflow-y:auto}.session-folder-sidebar ul{list-style:none;padding:0;margin:0;flex:1}.session-folder-row{display:flex;align-items:center}.session-folder-item{flex:1;background:transparent;border:0;text-align:left;padding:.4rem .8rem;font-family:inherit;font-size:.85rem;color:#2a1810;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-folder-item:hover{background:#f0e4cc}.session-folder-item.active{background:#b75c2a;color:#fff8e6;font-weight:600}.session-folder-x{background:transparent;border:0;padding:0 .6rem;color:#6e574a;cursor:pointer;font-size:1rem}.session-folder-x:hover{color:#b73a2a}.session-folder-rename{width:calc(100% - 1rem);margin:0 .5rem;padding:.3rem .5rem;border:1px solid #b75c2a;border-radius:4px;font-family:inherit;font-size:.85rem;background:#fff}.session-folder-new{display:flex;gap:.3rem;padding:.5rem;border-top:1px solid #e6d4b8}.session-folder-new input{flex:1;padding:.3rem .5rem;border:1px solid #c8a878;border-radius:4px;font-family:inherit;font-size:.85rem;background:#fff}.session-row-folder{background:#fff;border:1px solid #c8a878;padding:.3rem .4rem;font-size:.8rem;color:#2a1810;border-radius:4px;font-family:inherit;max-width:140px}.mode-picker{display:flex;align-items:center;gap:.25rem;background:#fdf6e8;border:1px solid #c8a878;border-radius:999px;padding:.2rem;margin:0 auto 0 1rem}.mode-pill{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:0;padding:.35rem .75rem;border-radius:999px;font-family:inherit;font-size:.85rem;color:#6e574a;cursor:pointer;transition:background .15s,color .15s}.mode-pill:hover:not(.active){background:#f0e4cc;color:#2a1810}.mode-pill.active{background:#b75c2a;color:#fff8e6;font-weight:600;box-shadow:0 1px 3px #0003}.mode-pill-label{letter-spacing:.02em}@media (max-width: 900px){.mode-pill{padding:.4rem .55rem;font-size:.8rem}}.coach-mask{position:fixed;background:#28160c99;z-index:200;pointer-events:auto;transition:all .2s ease}.coach-spotlight{position:fixed;z-index:201;pointer-events:auto;border:2px solid #b75c2a;border-radius:6px;box-shadow:0 0 0 4px #b75c2a4d;transition:all .2s ease}.coach-overlay-full{position:fixed;top:0;right:0;bottom:0;left:0;background:#28160ca6;z-index:200;display:flex;align-items:center;justify-content:center}.coach-tooltip{z-index:202;background:#fff8e6;border-radius:10px;box-shadow:0 8px 24px #0000004d;padding:1rem 1.2rem;font-family:inherit;color:#2a1810;max-width:90vw}.coach-tooltip-center{position:relative;width:min(420px,90vw)}.coach-tooltip-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.coach-step-counter{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#6e574a}.coach-skip{background:transparent;border:0;font-size:1.4rem;line-height:1;color:#6e574a;cursor:pointer;padding:0;margin:0}.coach-skip:hover{color:#b73a2a}.coach-tooltip-title{margin:0 0 .5rem;font-size:1.05rem;color:#2a1810}.coach-tooltip-body{margin:0 0 1rem;font-size:.9rem;line-height:1.45;color:#4a3528}.coach-tooltip-actions{display:flex;gap:.5rem;justify-content:flex-end}.practice-intro{background:linear-gradient(135deg,#fdf6e8,#f0e4cc);border:1px solid #c8a878;border-radius:10px;padding:1rem 1.25rem;margin:1rem 0}.practice-intro h2{margin:0 0 .25rem;color:#2a1810;font-size:1.1rem}.practice-intro-tagline{margin:0 0 .75rem;font-size:.85rem;color:#6e574a;font-style:italic}.practice-intro-steps{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.practice-intro-step-btn{display:flex;gap:.7rem;align-items:flex-start;width:100%;background:#fff8e6;border:1px solid #e6d4b8;padding:.6rem .8rem;border-radius:6px;font-family:inherit;font-size:.9rem;color:#2a1810;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.practice-intro-step-btn:hover{background:#fff;border-color:#b75c2a}.practice-intro-step-n{flex:0 0 1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;background:#b75c2a;color:#fff8e6;border-radius:50%;font-weight:600;font-size:.85rem}.practice-intro-step-text{flex:1;line-height:1.4}.read-article{background:#fff8e6;border:1px solid #e6d4b8;border-radius:10px;padding:1.5rem 2rem;margin:1rem 0;max-width:720px;font-size:1rem;line-height:1.6;color:#2a1810}.read-article-header{border-bottom:1px solid #e6d4b8;padding-bottom:1rem;margin-bottom:1.25rem}.read-article-header h1{margin:0;font-size:1.6rem}.read-article-arabic{font-size:1.4rem;color:#6e574a;margin-left:.5rem}.read-article-meta{margin:.4rem 0 0;font-size:.85rem;color:#6e574a}.read-article-toc{background:#fdf6e8;border:1px solid #e6d4b8;border-radius:6px;padding:.6rem 1rem;margin-bottom:1.5rem}.read-article-toc-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#6e574a;font-weight:600}.read-article-toc ol{margin:.3rem 0 0;padding-left:1.5rem;font-size:.9rem}.read-article-toc button{background:transparent;border:0;font-family:inherit;font-size:inherit;color:#b75c2a;cursor:pointer;padding:.1rem 0;text-align:left}.read-article-toc button:hover{text-decoration:underline}.read-article section{margin-bottom:1.5rem}.read-article section h2{margin:0 0 .5rem;font-size:1.2rem;color:#2a1810;padding-bottom:.3rem;border-bottom:1px solid #f0e4cc}.read-article p{margin:0 0 .7rem}.read-article-ajnas,.read-article-refs,.read-article-snippets{margin:.5rem 0;padding-left:1.5rem}.read-article-ajnas li,.read-article-refs li,.read-article-snippets li{margin-bottom:.4rem}.read-article-source a{font-size:.8rem;color:#6e574a;text-decoration:none}.read-article-source a:hover{color:#b75c2a}.read-article-snippet-meta{font-size:.85rem;color:#6e574a}.read-article-snippet-hint{color:#6e574a;font-style:italic;list-style:none;margin-left:-1.5rem}.link-button{background:transparent;border:0;padding:0;color:#b75c2a;cursor:pointer;font-family:inherit;font-size:inherit;text-decoration:underline}.link-button:hover{color:#2a1810}.snippet-verovio{width:100%;min-height:120px}.snippet-verovio .sheet-music-svg{width:100%}.snippet-verovio .sheet-music-svg svg{display:block;width:100%!important;height:auto!important;max-height:220px}.snippet-verovio g.note{cursor:pointer;transition:fill .15s}.snippet-verovio g.note:hover{fill:#b75c2a}.snippet-verovio-loading,.snippet-verovio-error{text-align:center;color:#6e574a;font-style:italic;padding:1rem}.snippet-verovio-error{color:#b73a2a}.ack-page{max-width:920px;margin:0 auto;padding:2rem 1.5rem 4rem;color:var(--ink);font-size:.95rem;line-height:1.55}.ack-hero{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.ack-hero h1{margin:0 0 .6rem;font-size:2rem}.ack-hero-blurb{color:var(--ink-soft);max-width:700px}.ack-hero-back{margin-top:1rem;font-size:.85rem}.ack-section{margin:2rem 0}.ack-section h2{font-size:1.2rem;margin:0 0 .4rem;border-bottom:1px solid var(--rule);padding-bottom:.3rem}.ack-blurb{color:var(--ink-soft);font-size:.85rem;font-style:italic;margin:0 0 .6rem}.ack-table{width:100%;border-collapse:collapse;font-size:.88rem}.ack-table th{text-align:left;font-weight:600;color:var(--ink-soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding:.4rem .6rem .4rem 0;border-bottom:1px solid var(--rule)}.ack-table td{padding:.5rem .6rem .5rem 0;border-bottom:1px solid rgba(0,0,0,.05);vertical-align:top}.ack-table tr:last-child td{border-bottom:0}.ack-table td:first-child{width:28%;font-weight:500}.ack-license{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:var(--ink-soft);white-space:nowrap;width:12%}.ack-references{list-style:none;padding:0;margin:0}.ack-references li{padding:.4rem 0;border-bottom:1px solid rgba(0,0,0,.04)}.ack-references li:last-child{border-bottom:0}.ack-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule);text-align:center;font-size:.85rem}.library-shell{max-width:1100px;margin:0 auto;padding:1.5rem;font-size:.95rem}.library-header{margin-bottom:1rem}.library-header h1{margin:0 0 .3rem;font-size:1.5rem}.library-dim{color:var(--ink-soft)}.library-error{padding:.7rem;background:#b86c6c1a;border-left:3px solid #b86c6c;border-radius:0 4px 4px 0}.library-layout{display:grid;grid-template-columns:minmax(280px,1fr) 2fr;gap:1.2rem;align-items:start}@media (max-width: 800px){.library-layout{grid-template-columns:1fr}}.library-list{list-style:none;margin:0;padding:0;border:1px solid var(--rule);border-radius:6px;overflow:hidden;max-height:80vh;overflow-y:auto}.library-list-item{border-bottom:1px solid var(--rule)}.library-list-item:last-child{border-bottom:0}.library-list-item.is-selected{background:#6a8e6a1a}.library-list-btn{display:block;width:100%;text-align:left;background:transparent;border:0;padding:.6rem .8rem;cursor:pointer;font:inherit;color:inherit}.library-list-btn:hover{background:#00000008}.library-list-name{font-weight:500;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-list-hint{font-size:.74rem;color:var(--ink-soft);margin-top:.2rem}.library-list-errors{padding:.4rem .8rem;background:#b86c6c0d}.library-detail-pane{border:1px solid var(--rule);border-radius:6px;padding:1rem 1.2rem}.library-piece-title{margin:0 0 .3rem;font-size:1.05rem;word-break:break-word}.library-piece-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}.library-meta-pill{padding:.15rem .5rem;background:var(--bg-soft, #f7f3ec);border:1px solid var(--rule);border-radius:12px;font-size:.75rem;color:var(--ink-soft)}.library-piece-mode{margin-bottom:.7rem;font-size:.9rem}.library-audio{width:100%;margin-bottom:.9rem}.library-drones{margin-top:.5rem;padding-top:.7rem;border-top:1px dashed var(--rule)}.library-drones-label{font-size:.78rem;color:var(--ink-soft);margin-bottom:.4rem}.library-drone-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.library-drone-chip{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .7rem;background:var(--bg-soft, #f7f3ec);border:1px solid var(--rule);border-radius:6px;cursor:pointer;font-family:inherit;min-width:4.5rem}.library-drone-chip:hover{background:#6a8e6a1f}.library-drone-chip.is-playing{background:#6a8e6a;color:#fff}.library-drone-chip.is-playing .library-drone-hz,.library-drone-chip.is-playing .library-drone-cov{color:#ffffffe6}.library-drone-name{font-weight:600;font-size:.85rem}.library-drone-hz{font-size:.7rem;color:var(--ink-soft)}.library-drone-cov{font-size:.65rem;color:var(--ink-soft);font-style:italic}.library-drone-icon{font-size:.9rem;margin-top:.1rem}.library-drone-volume{display:flex;align-items:center;gap:.6rem;font-size:.78rem}.library-vol-slider{flex:1;max-width:240px}.library-jam-tip{margin-top:.7rem;padding:.5rem .7rem;background:#6a8e6a14;border-left:3px solid #6a8e6a;border-radius:0 4px 4px 0;font-size:.85rem}.library-link-pill{text-decoration:none;background:#6a8e6a1a;border-color:#6a8e6a;color:inherit}.library-link-pill:hover{background:#6a8e6a33}.library-region-badge{margin-left:.5rem;padding:.1rem .5rem;background:var(--bg-soft, #f7f3ec);border:1px solid var(--rule);border-radius:12px;font-size:.7rem;font-weight:400;color:var(--ink-soft);vertical-align:middle}.library-original-name{font-size:.74rem;margin-bottom:.4rem}.library-piece-notes{margin:.4rem 0 .7rem;padding:.45rem .6rem;font-size:.82rem;background:#00000006;border-left:2px solid var(--rule);border-radius:0 4px 4px 0;color:var(--ink-soft)}.library-transport{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.library-scrub{flex:1;min-width:100px}.library-time{font-family:ui-monospace,SF Mono,monospace;font-size:.78rem;color:var(--ink-soft);min-width:7ch;text-align:right}.library-practice{margin:.6rem 0;padding:.5rem .7rem;background:#00000005;border:1px solid var(--rule);border-radius:6px;display:flex;flex-direction:column;gap:.4rem}.library-practice-row{display:flex;align-items:center;gap:.5rem}.library-practice-label{min-width:3.5rem;font-size:.78rem;color:var(--ink-soft);font-weight:500}.library-speed{flex:1;max-width:240px}.library-loop-btn{background:transparent;border:1px solid var(--rule);border-radius:4px;padding:.2rem .55rem;font:inherit;font-size:.8rem;cursor:pointer}.library-loop-btn:hover{background:#0000000a}.library-loop-btn.is-set{background:#6a8e6a26;border-color:#6a8e6a}.library-stems{margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--rule)}.library-stems-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.library-stem-row{display:grid;grid-template-columns:auto 1.2rem minmax(80px,1fr) minmax(120px,2fr);align-items:center;gap:.5rem;padding:.25rem .4rem;border-radius:4px}.library-stem-row.is-muted{opacity:.5;background:#00000008}.library-stem-mute{background:transparent;border:1px solid var(--rule);border-radius:4px;padding:.15rem .4rem;cursor:pointer;font-size:.95rem;line-height:1}.library-stem-mute.is-on{background:#b86c6c26;border-color:#b86c6c}.library-stem-icon{font-size:1rem}.library-stem-name{font-size:.85rem;text-transform:capitalize}.library-stem-vol{width:100%}.library-jam-toggle-row{margin:.5rem 0 .4rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.library-jam-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.library-jam-toggle input{cursor:pointer}.library-shell-wide{max-width:1400px}.turkuler-filter-row{display:flex;align-items:center;gap:.6rem;margin:.6rem 0;flex-wrap:wrap}.turkuler-search{flex:1;min-width:240px;padding:.45rem .6rem;border:1px solid var(--rule);border-radius:4px;font-size:.9rem}.turkuler-cat-tabs{display:flex;gap:.3rem;flex-wrap:wrap}.turkuler-cat-tab{padding:.35rem .7rem;background:transparent;border:1px solid var(--rule);border-radius:4px;font:inherit;font-size:.8rem;cursor:pointer}.turkuler-cat-tab small{color:var(--ink-soft);margin-left:.2rem}.turkuler-cat-tab:hover{background:#0000000a}.turkuler-cat-tab.is-active{background:#6a8e6a26;border-color:#6a8e6a}.turkuler-pdf-embed{width:100%;height:50vh;min-height:380px;border:1px solid var(--rule);border-radius:4px;margin-bottom:.7rem;background:#fff}.pdf-viewer{width:100%;max-height:60vh;overflow-y:auto;border:1px solid var(--rule);border-radius:4px;margin-bottom:.7rem;background:#f0eee6;padding:.5rem}.pdf-viewer-canvases{display:flex;flex-direction:column;align-items:center;gap:.4rem}.pdf-viewer-status{padding:.4rem .6rem;font-size:.85rem;color:var(--ink-soft)}.pdf-viewer-error{color:#b86c6c;background:#b86c6c1a;padding:.4rem .6rem;border-radius:4px}.midi-player{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink)}.midi-player-time{font-variant-numeric:tabular-nums;margin-left:.4rem;color:var(--ink-soft)}.midi-player-meta{font-size:.74rem}.midi-player-error{color:#b86c6c}.turkuler-makam-filter{padding:.32rem .4rem;border:1px solid var(--rule);border-radius:4px;font:inherit;font-size:.85rem;background:#fff;color:var(--ink)}.turkuler-keyboard{margin-top:.8rem;padding:.7rem;background:#00000005;border:1px solid var(--rule);border-radius:6px}.turkuler-keyboard-select{padding:.25rem .4rem;border:1px solid var(--rule);border-radius:3px;font:inherit;font-size:.82rem;background:#fff;color:var(--ink)}.transcribe-yt{margin-top:.8rem;padding:.7rem;background:#00000005;border:1px solid var(--rule);border-radius:6px}.transcribe-yt-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.transcribe-yt-input{flex:1;min-width:240px;padding:.32rem .45rem;border:1px solid var(--rule);border-radius:4px;font:inherit;font-size:.85rem;color:var(--ink)}.turkuler-yt-variations{margin-top:.8rem;padding:.7rem;background:#00000005;border:1px solid var(--rule);border-radius:6px}.turkuler-yt-variation{display:flex;align-items:center;gap:.5rem;padding:.32rem 0;font-size:.85rem;border-bottom:1px solid rgba(0,0,0,.04)}.turkuler-yt-variation:last-child{border-bottom:none}.turkuler-yt-rank{color:var(--ink-soft);width:1.2rem;text-align:right;font-variant-numeric:tabular-nums}.turkuler-yt-title{flex:0 1 auto;max-width:26rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);text-decoration:none}.turkuler-yt-title:hover{text-decoration:underline}.turkuler-yt-meta{font-size:.74rem;flex:1;min-width:0}.turkuler-yt-analyze{flex:0 0 auto}.ord-hists{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.7rem}.ord-hist-block{background:#00000005;padding:.4rem;border-radius:4px;border:1px solid var(--rule)}.ord-hist-img{width:100%;display:block;background:#fff;border-radius:3px}@media (max-width: 900px){.ord-hists{grid-template-columns:1fr}}.maqam-fit-rubric{margin-top:.8rem;padding:.7rem;background:#00000005;border:1px solid var(--rule);border-radius:6px}.rubric-overall{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem;flex-wrap:wrap}.rubric-overall-grade{padding:.3rem .7rem;border-radius:4px;font-weight:700;font-size:.85rem;color:#fff;letter-spacing:.04em}.rubric-table{width:100%;border-collapse:collapse;font-size:.83rem;margin-top:.4rem}.rubric-table th,.rubric-table td{border-bottom:1px solid var(--rule);padding:.28rem .4rem;text-align:left}.rubric-table th{background:#0000000a;font-weight:600;font-size:.78rem}.rubric-table .num{font-variant-numeric:tabular-nums;text-align:right}.rubric-quality-pill{display:inline-block;padding:.1rem .4rem;border-radius:3px;color:#fff;font-size:.74rem;font-weight:600}.rubric-bar-track{position:relative;height:16px;background:#00000008;border-radius:2px}.rubric-bar-center{position:absolute;top:0;left:50%;width:1px;height:100%;background:#0000004d}.rubric-bar{position:absolute;top:2px;bottom:2px;border-radius:2px;opacity:.85}.maqam-pitch-table th{white-space:nowrap;font-size:.74rem;padding:.3rem .4rem}.maqam-pitch-table td{font-size:.78rem;white-space:nowrap;text-align:right;padding:.3rem .4rem;vertical-align:middle}.maqam-pitch-table td small{font-size:.66rem}.andalusian-sections{width:100%;border-collapse:collapse;margin-top:.4rem;font-size:.85rem}.andalusian-sections th,.andalusian-sections td{border-bottom:1px solid var(--rule);padding:.3rem .5rem;text-align:left}.andalusian-sections th{background:#0000000a;font-weight:600}.andalusian-sections td:nth-child(2),.andalusian-sections td:nth-child(3),.andalusian-sections td:nth-child(4){font-variant-numeric:tabular-nums;text-align:right;color:var(--ink-soft)}.turkuler-pdf-page{max-width:1200px;margin:1.5rem auto;padding:0 1rem}.turkuler-pdf-page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.turkuler-pdf-page-title{font-size:1.25rem;margin:0}.turkuler-pdf-page .pdf-viewer{max-height:none}.turkuler-convert{margin-top:.6rem;padding:.7rem;background:#00000005;border:1px solid var(--rule);border-radius:6px}.turkuler-convert-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem;flex-wrap:wrap}.turkuler-control{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:var(--ink-soft)}.turkuler-control select,.turkuler-control input{padding:.25rem .4rem;border:1px solid var(--rule);border-radius:3px;font:inherit;font-size:.85rem;color:var(--ink)}.turkuler-midi-player{flex:1;min-width:200px;height:32px}.turkuler-error{margin-top:.5rem;padding:.5rem;background:#b86c6c1a;border-left:3px solid #b86c6c;font-size:.85rem;border-radius:0 4px 4px 0}.turkuler-cli{margin-top:.5rem;font-size:.78rem;color:var(--ink-soft)}.turkuler-cli summary{cursor:pointer;-webkit-user-select:none;user-select:none}.turkuler-cli-code{padding:.5rem .6rem;background:#0000000f;border-radius:3px;font-family:ui-monospace,SF Mono,monospace;font-size:.78rem;white-space:pre-wrap;word-break:break-all;margin-top:.3rem}.turkuler-suggest{margin-top:.6rem;padding:.7rem;border:1px solid var(--rule);border-radius:6px;background:#6a8e6a0a}.turkuler-suggest-results{list-style:none;margin:.6rem 0 0;padding:0}.turkuler-suggest-row{margin-bottom:.5rem;padding:.45rem .55rem;border:1px solid var(--rule);border-radius:4px;background:var(--bg)}.turkuler-suggest-head{display:flex;align-items:center;gap:.5rem;position:relative}.turkuler-suggest-name{font-weight:600}.turkuler-suggest-score{font-family:ui-monospace,SF Mono,monospace;font-size:.85rem;color:var(--ink-soft);margin-left:auto;z-index:1}.turkuler-suggest-bar{position:absolute;left:0;bottom:-2px;height:3px;background:#6a8e6a;border-radius:2px}.turkuler-suggest-reasons{list-style:disc;padding-left:1.2rem;margin:.3rem 0 0;font-size:.78rem;color:var(--ink-soft)}.turkuler-suggest-reasons li{margin-bottom:.1rem}.turkuler-list-makam{display:flex;align-items:center;gap:.4rem;margin-top:.25rem;font-size:.74rem}.turkuler-makam-badge{padding:.1rem .45rem;border-radius:10px;font-size:.74rem;border:1px solid var(--rule);background:var(--bg-soft, #f7f3ec);white-space:nowrap}.turkuler-makam-source-directory{background:#6a8e6a2e;border-color:#6a8e6a}.turkuler-makam-source-symbtr{background:#6a8e6a1a;border-color:#6a8e6a}.turkuler-makam-source-heuristic{background:#0000000a}.turkuler-makam-conf{color:var(--ink-soft);font-family:ui-monospace,SF Mono,monospace}.turkuler-saved-makam{margin:.6rem 0;padding:.7rem;border:1px solid var(--rule);border-radius:6px;background:#6a8e6a0a}.turkuler-saved-makam-row{display:flex;align-items:center;gap:.6rem;margin:.4rem 0 .5rem}.turkuler-saved-makam-row .turkuler-makam-badge{font-size:.95rem;font-weight:600;padding:.2rem .7rem}.library-variations{margin:.7rem 0;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:6px;background:#00000005}.library-var-row{margin-top:.3rem;font-size:.85rem;line-height:1.5}.library-var-row a{color:inherit}.library-var-row a:hover{text-decoration:underline}.library-tonic-makam{margin:.6rem 0;padding:.6rem .7rem;background:#6a8e6a0a;border:1px solid var(--rule);border-radius:6px}.library-tmc-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.library-tmc-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;background:var(--bg-soft, #f7f3ec);border:1px solid var(--rule);border-radius:14px;font-size:.85rem}.library-tmc-chip.is-top{background:#6a8e6a2e;border-color:#6a8e6a}.library-tmc-name{font-weight:500}.library-tmc-tonic{font-family:ui-monospace,SF Mono,monospace;color:var(--ink-soft)}.library-tmc-conf{font-family:ui-monospace,SF Mono,monospace;font-size:.78rem;color:var(--ink-soft)}.library-collections{display:flex;gap:.6rem;margin:.4rem 0 .7rem;font-size:.88rem}.library-collection-link{text-decoration:none;padding:.25rem .6rem;border:1px solid var(--rule);border-radius:14px;background:var(--bg-soft, #f7f3ec);color:var(--ink-soft)}.library-collection-link:hover{background:#0000000a}.library-collection-link.is-active{background:#6a8e6a2e;border-color:#6a8e6a;color:var(--ink);font-weight:500}.library-stem-presets{display:flex;gap:.4rem;flex-wrap:wrap;margin:.4rem 0 .6rem;align-items:center}.library-stem-presets .library-loop-btn{font-size:.78rem;padding:.25rem .55rem}.collapsible-section{border:1px solid #d5cb99;border-radius:8px;background:#fbf7e6;margin:14px 0;overflow:hidden}.collapsible-section>.collapsible-section-summary{list-style:none;cursor:pointer;padding:10px 14px;display:flex;align-items:center;gap:10px;background:#f2ecd0;border-bottom:1px solid transparent;font-family:system-ui,sans-serif;color:#4a3a1a;-webkit-user-select:none;user-select:none;transition:background .15s ease}.collapsible-section>.collapsible-section-summary::-webkit-details-marker{display:none}.collapsible-section>.collapsible-section-summary:hover{background:#ede4b8}.collapsible-section[open]>.collapsible-section-summary{border-bottom-color:#d5cb99}.collapsible-section-title{font-size:1.05rem;font-weight:700;display:flex;align-items:center;gap:8px}.collapsible-section-icon{font-size:1.1rem}.collapsible-section-subtitle{color:#8a7a4a;font-size:.8rem;font-weight:400}.collapsible-section-chev{margin-left:auto;color:#8a7a4a;font-size:.9rem;transition:transform .18s ease}.collapsible-section[open]>.collapsible-section-summary .collapsible-section-chev{transform:rotate(180deg)}.collapsible-section-body{padding:8px 14px 14px}.collapsible-section-body>*:first-child{margin-top:0}.collapsible-section-body>*:last-child{margin-bottom:0}.floating-recorder{position:fixed;right:18px;top:45%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;background:#fdf9eaf0;border:1px solid #d5cb99;border-radius:10px;box-shadow:0 4px 14px #78602e24;font-family:system-ui,sans-serif;font-size:.78rem;color:#4a3a1a;min-width:96px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.floating-recorder-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:#c0392b;color:#fff;border:1px solid #a02c20;border-radius:6px;font-weight:600;font-size:.82rem;cursor:pointer;transition:background .12s ease}.floating-recorder-btn:hover{background:#a02c20}.floating-recorder-btn.is-recording{background:#2f7a3f;border-color:#245e30}.floating-recorder-btn.is-recording:hover{background:#245e30}.floating-recorder-dot{font-size:.9rem;line-height:1}.floating-recorder-pulse{display:inline-block;width:10px;height:10px;border-radius:50%;background:#fff;animation:floating-recorder-pulse 1s ease-in-out infinite}@keyframes floating-recorder-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.floating-recorder-elapsed{font-family:monospace;font-size:.75rem}.floating-recorder-mic{display:flex;align-items:center;gap:4px;font-size:.72rem;color:#6a5a3a;cursor:pointer;-webkit-user-select:none;user-select:none}.floating-recorder-mic input{margin:0}.floating-recorder-toast{padding:4px 8px;background:#e8f2e0;border:1px solid #a5c093;border-radius:4px;color:#2f5a1f;font-size:.7rem;text-align:center;animation:floating-recorder-toast-in .3s ease-out}@keyframes floating-recorder-toast-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.floating-recorder{position:static;transform:none;flex-direction:row;align-items:center;margin:8px auto;width:fit-content}}html[dir=rtl] .floating-recorder{right:auto;left:18px}.lang-picker{position:relative;display:inline-block}.lang-picker>.lang-picker-summary{list-style:none;cursor:pointer;padding:4px 8px;border-radius:6px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none;font-size:1.1rem}.lang-picker>.lang-picker-summary::-webkit-details-marker{display:none}.lang-picker>.lang-picker-summary:hover{background:#f2ecd0;border-color:#d5cb99}.lang-picker[open]>.lang-picker-summary{background:#f2ecd0;border-color:#d5cb99}.lang-picker-icon{display:inline-block;line-height:1}.lang-picker-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:#fdfaef;border:1px solid #d5cb99;border-radius:8px;box-shadow:0 4px 14px #78602e24;padding:4px;z-index:50}html[dir=rtl] .lang-picker-menu{right:auto;left:0}.lang-picker-item{display:block;width:100%;padding:6px 10px;background:transparent;border:none;border-radius:4px;text-align:start;cursor:pointer;font-family:system-ui,sans-serif;font-size:.88rem;color:#4a3a1a}.lang-picker-item:hover{background:#f2ecd0}.lang-picker-item.is-active{background:#eae4b8;font-weight:600}.lang-picker-item-english{color:#8a7a4a;font-size:.78rem}
