.route{display:flex;flex-direction:column;gap:1rem;max-width:640px;margin:0 auto}.card,.stage-card{background:var(--bg-raised);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.8rem}.stage-card{background:var(--bg-card);border:1px solid #2a1f46}.label{font-size:.8rem;color:var(--fg-dim);margin-bottom:.3rem}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.spacer{flex:1}.revise-row{display:flex;gap:.5rem;align-items:stretch}.revise-row input{flex:1}.slug-list,.story-picker,.queue-list{display:flex;flex-direction:column;gap:.6rem}.slug-card{background:var(--bg-raised);border-radius:var(--radius);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.4rem}.batch-group{display:flex;flex-direction:column;gap:.5rem}.batch-header{display:flex;align-items:baseline;gap:.6rem;padding:.4rem .2rem .1rem;border-top:1px solid #2a1f46;margin-top:.4rem}.batch-group:first-child .batch-header{border-top:none;margin-top:0;padding-top:0}.batch-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-dim);font-weight:600}.batch-time{font-size:.78rem;color:var(--fg-dim)}.batch-source{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.batch-fresh{margin-left:auto;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;padding:.15rem .5rem;border-radius:999px;background:var(--accent-soft);color:#1b1230;animation:batch-fresh-pulse 1.5s ease-in-out 2}.slug-card-fresh{animation:slug-fresh-glow 2.4s ease-out}@keyframes batch-fresh-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes slug-fresh-glow{0%{box-shadow:0 0 0 2px var(--accent-soft),0 0 18px #a07ad08c;background:#a07ad02e}to{box-shadow:0 0 0 0 transparent,0 0 0 transparent;background:var(--bg-raised)}}.slug-title{font-weight:600;font-size:1.05rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.vibe-tag{font-weight:500;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.vibe-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}.vibe-pill{padding:.4rem .8rem;border-radius:999px;border:1px solid rgba(160,122,208,.4);background:#a07ad01a;color:var(--fg);font-size:.9rem;cursor:pointer}.vibe-pill.active{background:var(--accent-soft);color:#1b1230;border-color:var(--accent-soft);font-weight:600}.slug-hook{color:var(--fg-dim);line-height:1.4}.slug-actions{display:flex;gap:.5rem;margin-top:.4rem;flex-wrap:wrap}.auto-status{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .7rem;background:#a07ad02e;color:var(--accent-soft);border:1px solid rgba(160,122,208,.4);border-radius:var(--radius);font-size:.9rem;font-weight:600;align-self:flex-start;margin-top:.2rem}.auto-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent-soft);animation:auto-pulse 1.2s ease-in-out infinite}@keyframes auto-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.queue-row{background:var(--bg-raised);border-radius:var(--radius);padding:.8rem 1rem;display:flex;align-items:center;gap:.6rem}.queue-row.playing{outline:2px solid var(--accent)}.queue-row-info{flex:1;min-width:0}.queue-row-actions{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}.queue-row-actions button{padding:.4rem .6rem}.workspace-header{display:flex;align-items:flex-start;gap:.6rem}.workspace-header>div:first-child{flex:1;min-width:0}.dim{color:var(--fg-dim)}.small{font-size:.85rem}.warn{color:var(--accent);font-size:.9rem}.error{color:var(--danger);font-size:.9rem;padding:.5rem .8rem;border:1px solid var(--danger);border-radius:var(--radius);background:#d47b7b1a}.inflight{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;background:var(--bg-card);border-radius:var(--radius);color:var(--fg-dim);font-size:.9rem}.prompt-row{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid #2a1f46}.prompt-row:last-child{border-bottom:none}.prompt-row>div:first-child{flex:1;min-width:0}.prompt-row-actions{display:flex;gap:.4rem;align-items:center}.tag{font-size:.75rem;padding:.15rem .5rem;background:var(--accent-soft);color:#1b1230;border-radius:999px}.tag.tag-soft{background:#a07ad040;color:var(--accent-soft);border:1px solid rgba(160,122,208,.5)}.editor-section{display:flex;flex-direction:column;gap:.4rem;padding-top:.4rem;border-top:1px solid #2a1f46}.editor-section:first-of-type{border-top:none;padding-top:0}.editor-modal{position:fixed;inset:0;background:#0a0814cc;z-index:20;display:flex;align-items:stretch;padding:env(safe-area-inset-top) 0 0}.editor-panel{flex:1;background:var(--bg);padding:1rem;display:flex;flex-direction:column;gap:.8rem;overflow:auto}.editor-panel textarea{flex:1;min-height:50vh;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.5}.story-picker-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--bg-raised);border:none;border-radius:var(--radius);padding:.8rem 1rem;text-align:left;cursor:pointer}.stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.3rem 0}.stat-value{font-variant-numeric:tabular-nums}.stat-value.strong{font-weight:600;font-size:1.1rem;color:var(--accent)}.bar{height:10px;background:var(--bg-card);border-radius:5px;overflow:hidden;display:flex}.bar-tall{height:14px;border-radius:7px}.bar-fill{height:100%;background:var(--accent);transition:width .3s ease}.bar-fill-warn{background:#d4b06a}.bar-fill-danger{background:var(--danger)}.bar-seg{height:100%;transition:width .3s ease}.bar-seg-audio{background:var(--accent)}.bar-seg-text{background:var(--accent-soft)}.bar-seg-ls{background:#6a8ed4}.cost-block{margin-top:.6rem;padding-top:.6rem;border-top:1px solid #2a1f46;display:flex;flex-direction:column;gap:.3rem}.cost-block:first-of-type{border-top:none;padding-top:0}.cost-block-header{font-weight:600}.cost-row{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:baseline;padding:.2rem 0;font-size:.9rem}.cost-row-name{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;color:var(--fg-dim)}.cost-row-amt{font-variant-numeric:tabular-nums}.log-list{display:flex;flex-direction:column;gap:.3rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem}.log-entry{display:grid;grid-template-columns:auto auto 1fr;gap:.5rem;padding:.4rem .6rem;background:var(--bg-raised);border-radius:6px;border-left:3px solid var(--bg-card);align-items:baseline}.log-ts{color:var(--fg-dim);white-space:nowrap}.log-level{text-transform:uppercase;font-weight:600;font-size:.7rem;letter-spacing:.05em}.log-text{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;line-height:1.4}.log-error{border-left-color:var(--danger)}.log-error .log-level{color:var(--danger)}.log-warn{border-left-color:var(--accent)}.log-warn .log-level{color:var(--accent)}.log-info .log-level,.log-debug .log-level,.log-log .log-level{color:var(--fg-dim)}.chat-list{display:flex;flex-direction:column;gap:.5rem}.chat-list-row{background:var(--bg-raised);border-radius:var(--radius);padding:.6rem .8rem;display:flex;align-items:center;gap:.5rem}.chat-list-open{background:none;border:none;text-align:left;flex:1;display:flex;flex-direction:column;gap:.2rem;cursor:pointer;padding:0;color:inherit}.chat-list-title{font-weight:500}.chat-list-actions{display:flex;gap:.3rem}.orphan-row{align-items:flex-start}.orphan-first-message{margin:.4rem 0 0;padding:.5rem .6rem;background:var(--bg);border-radius:var(--radius);font-size:.85rem;white-space:pre-wrap;word-break:break-word;font-family:inherit;max-height:12rem;overflow-y:auto}.chat-route{gap:.6rem}.chat-header{display:flex;align-items:center;gap:.5rem}.chat-header-title{font-weight:500;flex:1;text-align:center;color:var(--fg-dim);font-size:.9rem}.chat-scroll{display:flex;flex-direction:column;gap:.6rem;padding:.4rem 0 5.5rem}.chat-empty{padding:1.5rem 1rem;text-align:center}.chat-msg{display:flex;flex-direction:column;gap:.4rem}.chat-msg-user{align-items:flex-end}.chat-msg-assistant{align-items:flex-start}.chat-bubble{max-width:85%;padding:.6rem .85rem;border-radius:14px;white-space:pre-wrap;word-wrap:break-word;line-height:1.4}.chat-bubble.user{background:var(--accent-soft);color:var(--bg);border-bottom-right-radius:4px}.chat-bubble.assistant{background:var(--bg-card);border-bottom-left-radius:4px}.chat-busy{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem}.tool-chip{align-self:flex-start;background:var(--bg-raised);border:1px solid #2a1f46;border-radius:10px;font-size:.78rem;max-width:100%;overflow:hidden}.tool-chip-error{border-color:#6b2a2a}.tool-chip-summary{display:flex;align-items:center;gap:.4rem;background:none;border:none;padding:.35rem .6rem;color:var(--fg-dim);cursor:pointer;width:100%;text-align:left}.tool-chip-icon{font-size:.85rem}.tool-chip-body{margin:0;padding:.5rem .7rem;border-top:1px solid #2a1f46;background:var(--bg);font-size:.72rem;white-space:pre-wrap;word-wrap:break-word;max-height:280px;overflow-y:auto}.slug-proposal{align-self:stretch;display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0}.slug-proposal-note{font-style:italic;padding:0 .2rem}.approval-card{align-self:stretch;background:var(--bg-card);border:1px solid var(--accent-soft);border-radius:var(--radius);padding:.7rem .85rem;display:flex;flex-direction:column;gap:.5rem}.approval-pending{border-color:var(--accent)}.approval-applied{border-color:#4a8056;opacity:.85}.approval-rejected{border-color:#555;opacity:.7}.approval-status-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.approval-status-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.approval-pending .approval-status-label{color:var(--accent)}.approval-applied .approval-status-label{color:#7cb88a}.approval-rejected .approval-status-label{color:var(--fg-dim)}.approval-headline{font-weight:500;font-size:.95rem}.approval-templateId{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--bg);padding:.05rem .4rem;border-radius:4px}.approval-text{margin:0;padding:.55rem .7rem;background:var(--bg);border-radius:8px;white-space:pre-wrap;word-wrap:break-word;font-size:.82rem;line-height:1.4;max-height:320px;overflow-y:auto}.approval-text-new{border-left:3px solid var(--accent)}.approval-current{display:flex;flex-direction:column;gap:.3rem}.approval-current-toggle{background:none;border:none;padding:.2rem 0;color:var(--fg-dim);font-size:.78rem;text-align:left;cursor:pointer;align-self:flex-start}.approval-field{display:flex;flex-direction:column;gap:.2rem}.approval-field-label{font-size:.75rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.approval-field-old{font-size:.85rem;color:var(--fg-dim);text-decoration:line-through}.approval-field-new{font-size:.95rem}.approval-actions{display:flex;gap:.5rem;margin-top:.2rem}.approval-actions button.committed{outline:2px solid currentColor}.approval-banner{background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius);padding:.55rem .8rem;font-size:.85rem;color:var(--accent);text-align:center}.chat-composer{display:flex;gap:.5rem;align-items:flex-end;background:var(--bg-raised);border-radius:var(--radius);padding:.5rem;position:sticky;bottom:calc(var(--tab-h, 0px) + env(safe-area-inset-bottom));z-index:1;box-shadow:0 -8px 16px -8px var(--bg)}.chat-composer textarea{flex:1;background:var(--bg);border:1px solid #2a1f46;border-radius:8px;padding:.5rem .65rem;color:inherit;font:inherit;resize:vertical}.chat-composer-actions{display:flex;flex-direction:column;gap:.3rem}.streaming-text{white-space:pre-wrap;line-height:1.6;background:var(--bg);padding:.8rem;border-radius:var(--radius);border:1px solid var(--bg-card);max-height:24rem;overflow-y:auto}.streaming-text .dim{color:var(--fg-dim)}.streaming-caret{display:inline-block;margin-left:2px;animation:caret-blink .9s steps(2,start) infinite;color:var(--accent)}@keyframes caret-blink{to{opacity:0}}.player-route{display:flex;flex-direction:column;gap:1.5rem;padding-top:1rem}.player-route-empty{align-items:flex-start;gap:1rem}.player-meta{display:flex;flex-direction:column;gap:.4rem}.player-universe{color:var(--fg-dim);font-size:.9rem}.player-title{margin:0;font-size:1.6rem;line-height:1.2}.player-hook{margin:.4rem 0 0;color:var(--fg-dim)}.player-time{font-variant-numeric:tabular-nums;font-size:1rem;color:var(--fg-dim);text-align:center}.player-time.error{color:var(--danger, #e57373)}.player-controls{display:flex;align-items:center;justify-content:center;gap:1rem}.player-skip{height:56px;min-width:72px;border-radius:28px;background:var(--bg-raised);color:var(--fg);border:1px solid #2a1f46;font-size:.95rem;font-variant-numeric:tabular-nums;cursor:pointer}.player-skip:disabled{opacity:.5;cursor:default}.player-toggle{width:84px;height:84px;border-radius:42px;background:var(--accent);color:#2a1c10;font-size:1.4rem;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}.player-toggle:disabled{opacity:.6;cursor:default}.player-spinner{width:28px;height:28px;border:3px solid rgba(42,28,16,.35);border-top-color:#2a1c10;border-radius:50%;animation:player-spin .8s linear infinite}@keyframes player-spin{to{transform:rotate(360deg)}}.player-secondary{display:flex;justify-content:center;gap:.8rem}.player-upnext{margin-top:1rem;padding-top:1rem;border-top:1px solid #2a1f46;display:flex;flex-direction:column;gap:.2rem}.player-upnext-title{font-weight:600}.tab-bar{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--bg-raised);border-top:1px solid #2a1f46;z-index:10}.tab{display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--fg-dim);text-decoration:none;letter-spacing:.02em}.tab.active{color:var(--accent);font-weight:600}.top-bar{position:fixed;top:0;left:0;right:0;height:calc(var(--top-bar-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);display:flex;align-items:center;gap:.4rem;padding-left:.6rem;padding-right:.6rem;background:var(--bg-raised);border-bottom:1px solid #2a1f46;z-index:11}.top-bar-back,.top-bar-back-spacer,.top-bar-menu{width:44px;height:44px;border-radius:22px;background:transparent;border:none;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--fg);flex:0 0 44px;padding:0}.top-bar-back-spacer{visibility:hidden}.top-bar-back:hover,.top-bar-menu:hover{background:var(--bg-card)}.top-bar-title{flex:1;text-align:center;font-weight:600;font-size:1.05rem;background:transparent;border:none;padding:.3rem .5rem;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar-title:disabled{opacity:1;cursor:default}.menu-backdrop{position:fixed;inset:0;background:#0a08148c;z-index:30}.menu-panel{position:fixed;top:calc(env(safe-area-inset-top) + var(--top-bar-h));right:0;min-width:220px;max-width:80vw;background:var(--bg-card);border-left:1px solid #2a1f46;border-bottom:1px solid #2a1f46;border-bottom-left-radius:var(--radius);z-index:31;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000073}.menu-item{background:transparent;border:none;border-bottom:1px solid #2a1f46;border-radius:0;padding:.9rem 1.1rem;text-align:left;font-size:1rem;color:var(--fg)}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:var(--bg-raised)}.nowplay2{position:fixed;left:0;right:0;bottom:env(safe-area-inset-bottom);height:var(--now-playing-h);display:flex;align-items:center;gap:.6rem;padding:0 .8rem;background:var(--bg-card);border-top:1px solid #2a1f46;z-index:10;overflow:hidden}.app-shell.with-tabs .nowplay2{bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}.nowplay2-progress{position:absolute;top:0;left:0;right:0;height:2px;background:transparent;pointer-events:none}.nowplay2-progress-fill{height:100%;background:var(--accent);width:0%;transition:width .12s linear}.nowplay2-progress-fill.indeterminate{width:30%;animation:nowplay2-shimmer 1.4s ease-in-out infinite}@keyframes nowplay2-shimmer{0%{transform:translate(-100%)}to{transform:translate(400%)}}.nowplay2-info{min-width:0;flex:1;background:transparent;border:none;padding:.4rem .2rem;text-align:left;cursor:pointer;color:var(--fg);display:flex;flex-direction:column;gap:.1rem}.nowplay2-info:hover{background:var(--bg-raised);border-radius:var(--radius)}.nowplay2-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nowplay2-sub{font-size:.8rem;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nowplay2-sub.error{color:var(--danger, #e57373)}.nowplay2-toggle{width:44px;height:44px;border-radius:22px;background:var(--accent);color:#2a1c10;font-size:1rem;padding:0;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}.nowplay2-toggle:disabled{opacity:.55;cursor:default}.nowplay2-spinner{width:18px;height:18px;border:2px solid rgba(42,28,16,.35);border-top-color:#2a1c10;border-radius:50%;animation:nowplay2-spin .8s linear infinite}@keyframes nowplay2-spin{to{transform:rotate(360deg)}}.nowplay2-close{width:32px;height:32px;border-radius:16px;background:transparent;color:var(--fg-dim);border:none;cursor:pointer;font-size:1.1rem;line-height:1}.nowplay2-close:hover{color:var(--fg)}.token-prompt-backdrop{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.token-prompt{background:var(--bg-card);padding:1.25rem;border-radius:var(--radius);width:100%;max-width:420px;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 12px 40px #00000080}.token-prompt h2{margin:0}.token-prompt label{display:block}.token-prompt .label{font-size:.85rem;color:var(--fg-dim);margin-bottom:.3rem}.token-prompt details summary{cursor:pointer;user-select:none}.token-prompt-err{color:var(--danger)}.app-shell{display:flex;flex-direction:column;min-height:100%;min-height:100dvh;padding-top:calc(var(--top-bar-h) + env(safe-area-inset-top))}.app-main{flex:1;overflow-y:auto;padding:1rem 1rem calc(env(safe-area-inset-bottom) + 1rem);-webkit-overflow-scrolling:touch}.app-main.with-tabs{padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 1rem)}.app-main.with-now-playing{padding-bottom:calc(var(--now-playing-h) + env(safe-area-inset-bottom) + 1rem)}.app-main.with-tabs.with-now-playing{padding-bottom:calc(var(--tab-h) + var(--now-playing-h) + env(safe-area-inset-bottom) + 1rem)}:root{color-scheme:dark;--bg: #12101a;--bg-raised: #1b1230;--bg-card: #241a3a;--fg: #f4e7c3;--fg-dim: #b6a9c9;--accent: #e8b86b;--accent-soft: #a07ad0;--danger: #d47b7b;--radius: 12px;--tab-h: 64px;--now-playing-h: 56px;--top-bar-h: 52px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;background:var(--bg-raised);border:1px solid transparent;border-radius:var(--radius);padding:.6rem 1rem;cursor:pointer;transition:background .15s ease}button:hover:not(:disabled){background:var(--bg-card)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#2a1c10;font-weight:600}button.primary:hover:not(:disabled){background:#f0c47e}button.ghost{background:transparent;border-color:var(--bg-card)}input,textarea,select{font:inherit;color:var(--fg);background:var(--bg-raised);border:1px solid var(--bg-card);border-radius:var(--radius);padding:.6rem .8rem;width:100%}textarea{resize:vertical;min-height:6rem;line-height:1.5}h1,h2,h3{margin:0 0 .6rem;font-weight:600}a{color:var(--accent)}
