:root{--bg: #0b0b0c;--panel: #0f1115;--ink: #f1f2f4;--ink-warm: #e7e0d8;--muted: #b1b6c0;--line: #222732;--red: #b23a37;--red-hover: #8a2d2b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-muted{color:var(--muted)}.text-warm{color:var(--ink-warm)}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.25rem;border:none;border-radius:12px;cursor:pointer;font-family:Inter,system-ui,sans-serif;font-size:.9375rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,opacity .15s;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover:not(:disabled){background:var(--red-hover)}.btn-secondary{background:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:#2d3340}.input{display:block;width:100%;min-height:48px;padding:.75rem 1rem;background:var(--bg);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:1rem;outline:none;transition:border-color .15s}.input::placeholder{color:var(--muted)}.input:focus{border-color:var(--red)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--panel);border-top:1px solid var(--line);display:flex;align-items:stretch;z-index:100}.bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;gap:3px;text-decoration:none;color:var(--muted);font-size:.625rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;transition:color .15s;-webkit-tap-highlight-color:transparent}.bottom-nav__item.active,.bottom-nav__item:hover{color:var(--red)}.bottom-nav__icon{width:22px;height:22px;flex-shrink:0}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--red);color:#fff;font-size:.6875rem;font-weight:700;border-radius:10px;line-height:1}.page{min-height:100dvh;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.page-header{padding:1.25rem 1rem .75rem;border-bottom:1px solid var(--line)}.page-title{font-family:Oswald,sans-serif;font-size:1.375rem;font-weight:700;color:var(--ink-warm);letter-spacing:.08em;text-transform:uppercase}.page-body{padding:1rem}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0;animation:backdropIn .2s ease both}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.lightbox-panel{background:var(--panel);border:1px solid var(--line);border-radius:24px 24px 0 0;width:100%;max-width:640px;max-height:90dvh;overflow-y:auto;padding:1.5rem 1.25rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));animation:panelUp .25s cubic-bezier(.22,1,.36,1) both}@keyframes panelUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.record-pulse{animation:recordPulse 1.2s ease-in-out infinite}@keyframes recordPulse{0%,to{box-shadow:0 0 #b23a3780}50%{box-shadow:0 0 0 16px #b23a3700}}.folder-section-heading{font-size:.6875rem;font-weight:700;color:var(--muted);letter-spacing:.09em;text-transform:uppercase}.audio-file-row{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.625rem .75rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.75rem;transition:border-color .15s}.audio-file-row--prominent{border-color:#b23a3759;background:#b23a370f}.audio-file-row__play{width:44px;height:44px;border-radius:50%;background:var(--red);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s;-webkit-tap-highlight-color:transparent}.audio-file-row__play:hover{background:var(--red-hover)}.record-workspace{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.record-timer{font-size:3rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.04em;line-height:1}.record-stop-btn{width:88px;height:88px;border-radius:50%;background:var(--red);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;-webkit-tap-highlight-color:transparent}.record-stop-btn:hover{background:var(--red-hover)}.record-review{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:1.25rem}select.learning-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b1b6c0' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .3s ease both}.stagger-1{animation-delay:.08s}.stagger-2{animation-delay:.16s}.stagger-3{animation-delay:.24s}:root{--vote-yes: #2a7a3b;--vote-maybe: #7a6a20;--vote-no: #8a2020;--vote-yes-bg: rgba(42, 122, 59, .18);--vote-maybe-bg: rgba(122, 106, 32, .18);--vote-no-bg: rgba(138, 32, 32, .18)}.discover-search{display:flex;gap:.5rem;margin-bottom:.75rem}.discover-search .input{flex:1}.discover-result{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:.5rem;transition:border-color .15s}.discover-result:last-child{margin-bottom:0}.discover-result__header{display:flex;align-items:center;gap:.75rem;padding:.75rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.discover-result__thumb{width:72px;height:54px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--line)}.discover-result__meta{flex:1;min-width:0}.discover-result__title{font-size:.875rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}.discover-result__sub{font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discover-result__add{flex-shrink:0;background:var(--line);border:none;border-radius:8px;color:var(--ink);cursor:pointer;font-size:.75rem;font-weight:600;padding:.5rem .75rem;white-space:nowrap;transition:background .15s}.discover-result__add:hover{background:var(--red);color:#fff}.discover-yt-embed{position:relative;padding-bottom:56.25%;height:0;border-top:1px solid var(--line)}.discover-yt-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.song-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:.5rem;transition:border-color .15s}.song-card__header{display:flex;align-items:center;gap:.75rem;padding:.75rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.song-card__thumb{width:64px;height:48px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted)}.song-card__meta{flex:1;min-width:0}.song-card__title{font-size:.9375rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}.song-card__sub{font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-card__badges{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.vote-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;background:var(--red);color:#fff;font-size:.5625rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:6px}.tally-mini{display:flex;gap:4px;font-size:.625rem;font-weight:700}.tally-mini__yes{color:#4ade80}.tally-mini__maybe{color:#fbbf24}.tally-mini__no{color:#f87171}.song-card__expanded{border-top:1px solid var(--line);padding:.875rem}.vote-buttons{display:flex;gap:.5rem;margin:.875rem 0 .5rem}.vote-btn{flex:1;min-height:52px;border:2px solid transparent;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:Inter,system-ui,sans-serif;font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;transition:border-color .15s,background .15s,transform .1s;-webkit-tap-highlight-color:transparent}.vote-btn:active{transform:scale(.96)}.vote-btn--yes{background:var(--vote-yes-bg);color:#4ade80}.vote-btn--yes:hover{background:#2a7a3b47}.vote-btn--yes.active{border-color:#4ade80;background:#2a7a3b52;box-shadow:0 0 0 3px #4ade802e}.vote-btn--maybe{background:var(--vote-maybe-bg);color:#fbbf24}.vote-btn--maybe:hover{background:#7a6a2047}.vote-btn--maybe.active{border-color:#fbbf24;background:#7a6a2052;box-shadow:0 0 0 3px #fbbf242e}.vote-btn--no{background:var(--vote-no-bg);color:#f87171}.vote-btn--no:hover{background:#8a202047}.vote-btn--no.active{border-color:#f87171;background:#8a202052;box-shadow:0 0 0 3px #f871712e}.vote-btn__icon{font-size:1.25rem;line-height:1}.vote-breakdown{margin-top:.75rem;display:flex;flex-direction:column;gap:4px}.vote-breakdown__row{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.vote-breakdown__name{flex:1;color:var(--muted)}.vote-breakdown__vote{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.vote-breakdown__vote--yes{color:#4ade80}.vote-breakdown__vote--maybe{color:#fbbf24}.vote-breakdown__vote--no{color:#f87171}.approved-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:#4ade8026;border:1px solid rgba(74,222,128,.3);border-radius:20px;color:#4ade80;font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.voting-closed-badge{display:inline-flex;align-items:center;padding:3px 10px;background:#b1b6c01f;border:1px solid rgba(177,182,192,.2);border-radius:20px;color:var(--muted);font-size:.6875rem;font-weight:600;letter-spacing:.04em}
