*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-hover:#334155;--color-border:#334155;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-accent:#3b82f6;--color-accent-hover:#2563eb;--color-danger:#ef4444;--header-height:56px;--drawer-width:320px;--radius:10px;--transition:.25s ease}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--color-bg);color:var(--color-text);min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5;overflow-x:hidden}.header{z-index:100;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:sticky;top:0}.header-title{letter-spacing:-.02em;font-size:1.25rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.header-settings-btn{color:var(--color-text);cursor:pointer;transition:background var(--transition);background:0 0;border:none;border-radius:8px;padding:8px;font-size:1.5rem;line-height:1}.header-settings-btn:hover{background:var(--color-surface-hover)}.app-body{min-height:calc(100dvh - var(--header-height));display:flex}.settings-drawer{top:var(--header-height);width:var(--drawer-width);background:var(--color-surface);border-left:1px solid var(--color-border);transition:transform var(--transition);z-index:90;-webkit-overflow-scrolling:touch;position:fixed;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.settings-drawer.open{transform:translate(0)}.settings-content{padding:20px 16px}.settings-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:12px;font-size:.8rem;font-weight:600}.feed-count{float:right;color:var(--color-accent);font-size:.75rem;font-weight:400}.feed-bulk-actions{gap:8px;margin-bottom:12px;display:flex}.feed-bulk-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:6px;flex:1;padding:6px 0;font-size:.8rem;font-weight:500}.feed-bulk-btn:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-accent)}.feed-search-input{border:1px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text);transition:border-color var(--transition);border-radius:8px;outline:none;margin-bottom:12px;padding:8px 12px;font-size:.85rem}.feed-search-input:focus{border-color:var(--color-accent)}.feed-toggle-list{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;max-height:50vh;margin-bottom:28px;list-style:none;overflow-y:auto}.feed-toggle-item{padding:4px 0}.feed-toggle-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:8px 0;display:flex}.feed-toggle-label input[type=checkbox]{display:none}.feed-toggle-slider{background:var(--color-border);width:44px;height:24px;transition:background var(--transition);border-radius:12px;flex-shrink:0;position:relative}.feed-toggle-slider:after{content:"";width:20px;height:20px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.feed-toggle-label input:checked+.feed-toggle-slider{background:var(--color-accent)}.feed-toggle-label input:checked+.feed-toggle-slider:after{transform:translate(20px)}.feed-toggle-name{font-size:.95rem;font-weight:500}.exclusion-input-row{gap:8px;margin-bottom:12px;display:flex}.exclusion-input{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);transition:border-color var(--transition);border-radius:8px;outline:none;flex:1;padding:10px 12px;font-size:.9rem}.exclusion-input:focus{border-color:var(--color-accent)}.exclusion-add-btn{background:var(--color-accent);color:#fff;cursor:pointer;transition:background var(--transition);white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:.9rem;font-weight:600}.exclusion-add-btn:hover{background:var(--color-accent-hover)}.exclusion-list{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.exclusion-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;align-items:center;gap:6px;padding:4px 8px 4px 12px;font-size:.85rem;display:flex}.exclusion-term{color:var(--color-text)}.exclusion-remove-btn{color:var(--color-text-muted);cursor:pointer;transition:color var(--transition), background var(--transition);background:0 0;border:none;border-radius:50%;padding:2px 4px;font-size:1.1rem;line-height:1}.exclusion-remove-btn:hover{color:var(--color-danger);background:#ef444426}.overlay{display:none}.feed-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding:12px 16px;display:flex;overflow-x:auto}.feed-tabs::-webkit-scrollbar{display:none}.feed-tab{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;transition:all var(--transition);background:0 0;border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:500}.feed-tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.feed-tab.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.main-content{min-width:0;transition:margin-right var(--transition);flex:1}.news-grid{grid-template-columns:repeat(3,1fr);gap:16px;padding:0 16px 24px;display:grid}.news-status{text-align:center;color:var(--color-text-muted);padding:60px 20px;font-size:1rem}.news-error{color:var(--color-danger)}.news-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:inherit;cursor:pointer;transition:transform var(--transition), border-color var(--transition);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.news-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.news-card.read{opacity:.5}.news-card.read:hover{opacity:.75}.news-card-img-wrap{background:var(--color-bg);width:100%;padding-top:56.25%;position:relative;overflow:hidden}.news-card-img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.news-card-source-badge{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.02em;background:#000000bf;border-radius:4px;padding:3px 8px;font-size:.7rem;font-weight:600;position:absolute;bottom:8px;left:8px}.news-card-body{flex-direction:column;flex:1;padding:12px;display:flex}.news-card-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:8px;font-size:1.025rem;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.news-card-meta{color:var(--color-text-muted);justify-content:space-between;align-items:center;margin-top:auto;font-size:.75rem;display:flex}.news-card-provider{font-weight:500}@media (width<=1024px){.news-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.news-grid{grid-template-columns:1fr;gap:12px;padding:0 12px 20px}.settings-drawer{width:85vw;max-width:360px}.overlay{z-index:80;background:#00000080;display:block;position:fixed;inset:0}.feed-tabs{padding:10px 12px}.header{padding:0 12px}.news-card-title{font-size:.975rem}}@media (width>=641px){.main-content.shifted{margin-right:var(--drawer-width)}}.story-viewer{z-index:200;background:var(--color-bg);flex-direction:column;display:flex;position:fixed;inset:0}.story-viewer-bar{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:8px;padding:0 8px;display:flex}.story-viewer-close{color:var(--color-text);cursor:pointer;transition:background var(--transition);background:0 0;border:none;border-radius:8px;padding:4px 12px;font-size:2rem;line-height:1}.story-viewer-close:hover{background:var(--color-surface-hover)}.story-viewer-url{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;overflow:hidden}.story-viewer-open{color:var(--color-accent);transition:background var(--transition);border-radius:8px;padding:4px 12px;font-size:1.2rem;text-decoration:none}.story-viewer-open:hover{background:var(--color-surface-hover)}.story-viewer-frame{background:#fff;border:none;flex:1;width:100%}
