:root{--bg: #FDFBF7;--bg-card: #FFFFFF;--bg-hover: #F8F6F2;--text: #2D2A26;--text-muted: #7A756E;--border: #E8E4DE;--accent: #8B7355;--accent-light: #F0EBE4;--shadow: 0 2px 8px rgba(45, 42, 38, .08);--shadow-lg: 0 8px 24px rgba(45, 42, 38, .12);--error: #E57373;--success: #81C784;--warning: #FFB74D;--info: #90CAF9;--radius: 12px;--radius-sm: 8px}[data-theme=dusk]{--bg: #2A2520;--bg-card: #342F28;--bg-hover: #3E382F;--text: #E8E4DE;--text-muted: #A8A299;--border: #4A443B;--accent: #C4A882;--accent-light: #4A443B}[data-theme=midnight]{--bg: #1A1D24;--bg-card: #242830;--bg-hover: #2E323C;--text: #E2E4E8;--text-muted: #9BA1AD;--border: #3A3E48;--accent: #8B9DC3;--accent-light: #3A3E48}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100%;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:"Source Serif 4",Georgia,Times New Roman,serif;font-weight:500;line-height:1.3}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit;font-size:inherit}::selection{background-color:var(--accent-light);color:var(--text)}.app{flex:1;display:flex;flex-direction:column;max-width:600px;margin:0 auto;padding:24px;width:100%}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.header h1{font-size:32px}.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;color:var(--text-muted);transition:all .2s ease}.theme-toggle:hover{background:var(--bg-hover);color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card:hover{box-shadow:var(--shadow)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-header h2{font-size:18px}.input-group{margin-bottom:16px}.input-group:last-child{margin-bottom:0}.input-group label{display:block;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.input-group input,.input-group textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);transition:border-color .2s ease}.input-group input:focus,.input-group textarea:focus{outline:none;border-color:var(--accent)}.input-group input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-sm);font-size:15px;font-weight:500;transition:all .2s ease;border:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-muted);padding:8px}.btn-ghost:hover{background:var(--bg-hover);color:var(--text)}.btn-full{width:100%}.article-preview{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.article-preview h3{font-size:20px;margin-bottom:4px}.article-preview .subtitle{color:var(--text-muted);margin-bottom:12px}.article-preview .body-preview{font-size:14px;color:var(--text-muted);line-height:1.6;max-height:100px;overflow:hidden;position:relative}.article-preview .body-preview:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(transparent,var(--bg-card))}.article-meta{display:flex;gap:16px;margin-top:12px;font-size:13px;color:var(--text-muted)}.player{position:sticky;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);padding:16px 24px;margin:auto -24px 0}.player-content{max-width:600px;margin:0 auto}.player-info{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.player-title{font-family:"Source Serif 4",Georgia,serif;font-size:16px;font-weight:500}.player-status{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.btn-cancel{background:none;border:none;color:var(--text-muted);font-size:18px;line-height:1;padding:2px 6px;cursor:pointer;border-radius:4px;transition:all .2s ease}.btn-cancel:hover{background:var(--bg-hover);color:var(--error)}.player-controls{display:flex;align-items:center;gap:12px}.play-btn{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0}.play-btn:hover{opacity:.9}.play-btn svg{width:20px;height:20px}.progress-container{flex:1;display:flex;flex-direction:column;gap:4px}.progress-bar{width:100%;height:4px;background:var(--border);border-radius:2px;overflow:hidden;cursor:pointer}.progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .1s linear}.progress-time{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted)}.player-actions{display:flex;gap:8px}.settings-toggle{font-size:13px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;gap:6px;margin-bottom:12px}.settings-toggle:hover{color:var(--text)}.settings-content{padding-top:12px;border-top:1px solid var(--border)}.settings-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.settings-row:last-child{margin-bottom:0}.settings-row label{font-size:14px;color:var(--text-muted)}.settings-row input[type=text]{width:160px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:14px}.settings-row select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:14px}.status{padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}.status-error{background:#fdeded;color:#c62828;border:1px solid #FFCDD2}[data-theme=dusk] .status-error,[data-theme=midnight] .status-error{background:#c6282826;border-color:#c628284d;color:#ef9a9a}.status-loading{background:var(--accent-light);color:var(--accent);display:flex;align-items:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-state svg{width:48px;height:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin-bottom:8px}@media(max-width:480px){.app{padding:16px}.header h1{font-size:24px}.player{padding:12px 16px;margin:0 -16px}.player-controls{flex-wrap:wrap}.progress-container{order:3;width:100%}.player-actions{margin-left:auto}}.install-prompt{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;z-index:100}.install-prompt p{font-size:14px}.chevron{transition:transform .2s ease}.chevron.open{transform:rotate(180deg)}.voice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}.voice-option{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);text-align:left;transition:all .2s ease}.voice-option:hover{border-color:var(--accent)}.voice-option.selected{border-color:var(--accent);background:var(--accent-light)}.voice-option .name{font-weight:500;font-size:14px;color:var(--text)}.voice-option .desc{font-size:12px;color:var(--text-muted)}.encoding-options{display:flex;flex-direction:column;gap:8px;margin-top:8px}.encoding-option{padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);text-align:left;transition:all .2s ease}.encoding-option:hover{border-color:var(--accent)}.encoding-option.selected{border-color:var(--accent);background:var(--accent-light)}.encoding-option .name{font-weight:500;font-size:14px;margin-bottom:4px;color:var(--text)}.encoding-option .desc{font-size:12px;color:var(--text-muted);line-height:1.4}
