:root{--color-bg:#f2f2f7;--color-surface:#fff;--color-surface-2:#e5e5ea;--color-overlay:#0006;--color-text-primary:#1c1c1e;--color-text-secondary:#6e6e73;--color-text-tertiary:#aeaeb2;--color-accent:#0071e3;--color-accent-light:#e8f0fe;--color-border:#d1d1d6;--color-shadow:#0000000f;--color-shadow-md:#0000001f;--color-error:#ff3b30;--color-success:#34c759;--color-warning:#ff9500;--color-header-bg:#f2f2f7d9;--color-swipe-left:#ff3b3026;--color-swipe-right:#34c75926;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--header-height:56px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#000;--color-surface:#1c1c1e;--color-surface-2:#2c2c2e;--color-overlay:#000000a6;--color-text-primary:#f5f5f7;--color-text-secondary:#98989d;--color-text-tertiary:#48484a;--color-accent:#0a84ff;--color-accent-light:#0a3057;--color-border:#38383a;--color-shadow:#0000004d;--color-shadow-md:#00000080;--color-header-bg:#000000d9;--color-swipe-left:#ff453a33;--color-swipe-right:#30d15833}}:root[data-theme=dark]{--color-bg:#000;--color-surface:#1c1c1e;--color-surface-2:#2c2c2e;--color-overlay:#000000a6;--color-text-primary:#f5f5f7;--color-text-secondary:#98989d;--color-text-tertiary:#48484a;--color-accent:#0a84ff;--color-accent-light:#0a3057;--color-border:#38383a;--color-shadow:#0000004d;--color-shadow-md:#00000080;--color-header-bg:#000000d9;--color-swipe-left:#ff453a33;--color-swipe-right:#30d15833}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg);min-height:100dvh;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.app-header{height:var(--header-height);background:var(--color-header-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);padding:0 var(--space-4);z-index:100;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.app-header__logo-wrap{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.app-header__logo-img{object-fit:contain;background:var(--color-surface-2);border-radius:50%;width:32px;height:32px}.app-header__logo-text{font-size:var(--font-size-lg);letter-spacing:-.02em;color:var(--color-text-primary);font-weight:700}.app-header__search{max-width:300px;margin:0 var(--space-4);flex:1;position:relative}.app-header__search input{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) 36px;border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);border-radius:99px}.app-header__search input:focus{border-color:var(--color-accent);outline:none}.app-header__search svg{color:var(--color-text-secondary);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.app-header__actions{align-items:center;gap:var(--space-2);display:flex}.icon-button{width:44px;height:44px;color:var(--color-text-secondary);transition:background-color var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.icon-button:hover,.icon-button:focus-visible{background-color:var(--color-surface-2);color:var(--color-text-primary);outline:none}.app-main{padding-top:var(--space-2);padding-bottom:var(--space-8);min-height:100dvh}.filter-chips{gap:var(--space-2);margin-top:var(--header-height);padding:var(--space-2) var(--space-4);scrollbar-width:none;-ms-overflow-style:none;display:flex;overflow-x:auto}.filter-chips::-webkit-scrollbar{display:none}.chip{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);white-space:nowrap;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);transition:all var(--transition-fast);border-radius:999px;align-items:center;min-height:36px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.chip--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-base);min-height:44px;transition:all var(--transition-fast);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover{filter:brightness(1.1)}.btn--ghost{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.btn--ghost:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.btn--destructive{color:var(--color-error);border:1px solid var(--color-error);background:0 0}.btn--destructive:hover{background:#ff3b3014}.btn--full{width:100%}@media (width>=1024px){.filter-chips{padding:var(--space-4) var(--space-6);max-width:1440px;margin:var(--header-height) auto 0}.app-main{padding-top:var(--space-4)}}.card-grid{gap:var(--space-4);padding:0 var(--space-4);grid-template-columns:1fr;display:grid}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 1px 3px var(--color-shadow), 0 4px 12px var(--color-shadow);border:1px solid var(--color-border);transform-origin:bottom;transition:transform var(--transition-normal), box-shadow var(--transition-normal);-webkit-user-select:none;user-select:none;touch-action:pan-y;position:relative;overflow:hidden}.card:hover{box-shadow:0 4px 16px var(--color-shadow-md), 0 1px 4px var(--color-shadow);transform:translateY(-1px)}.card--swiping-left{background:var(--color-swipe-left)}.card--swiping-right{background:var(--color-swipe-right)}.card__image-wrap{aspect-ratio:16/9;background-color:var(--color-surface-2);overflow:hidden}.card__image{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow)}.card:hover .card__image{transform:scale(1.03)}.card__body{padding:var(--space-3) var(--space-4) var(--space-4)}.card__meta{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.card__source{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-weight:600}.card__source:hover{color:var(--color-accent)}.card__date{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.card__title{font-size:var(--font-size-base);-webkit-line-clamp:3;margin-bottom:var(--space-2);-webkit-box-orient:vertical;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.card__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.card__category{padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);letter-spacing:.03em;background-color:var(--cat-bg,var(--color-surface-2));color:var(--cat-text,var(--color-text-secondary));margin-top:var(--space-3);font-weight:600;display:inline-block}.card__paywall-badge{text-transform:uppercase;color:var(--color-error);border:1px solid var(--color-error);letter-spacing:.05em;border-radius:4px;align-items:center;padding:1px 4px;font-size:10px;font-weight:800;display:inline-flex}.card__actions{top:var(--space-2);right:var(--space-2);gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast);flex-direction:column;display:flex;position:absolute}.card:hover .card__actions,.card:focus-within .card__actions{opacity:1}@media (hover:none){.card__actions{opacity:1}}.card__action-btn{background:var(--color-surface);border:1px solid var(--color-border);width:30px;height:30px;box-shadow:0 1px 4px var(--color-shadow);color:var(--color-text-secondary);transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex}.card__action-btn:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.context-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4);z-index:200;box-shadow:0 -4px 20px var(--color-shadow-md);transition:transform var(--transition-normal);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.context-menu--open{transform:translateY(0)}.context-menu__handle{background:var(--color-border);width:36px;height:4px;margin:0 auto var(--space-4);border-radius:2px}.context-menu__title{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3);font-weight:600}.context-menu__item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-primary);text-align:left;min-height:52px;transition:background-color var(--transition-fast);display:flex}.context-menu__item:hover{background:var(--color-surface-2)}.context-menu__item--destructive{color:var(--color-error)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent);width:36px;height:36px;margin:var(--space-8) auto;border-radius:50%;animation:.7s linear infinite spin}.status-message{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-secondary)}.status-message__icon{margin-bottom:var(--space-3);font-size:2.5rem}.status-message__text{font-size:var(--font-size-base);margin-bottom:var(--space-2)}.status-message__sub{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.modal-backdrop{background:var(--color-overlay);z-index:300;opacity:0;pointer-events:none;transition:opacity var(--transition-normal);align-items:flex-end;display:flex;position:fixed;inset:0}.modal-backdrop--open{opacity:1;pointer-events:all}.modal{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:85dvh;padding:var(--space-6) var(--space-4) var(--space-8);transition:transform .32s cubic-bezier(.32,.72,0,1);overflow-y:auto;transform:translateY(100%)}.modal-backdrop--open .modal{transform:translateY(0)}.modal__header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--font-size-xl);font-weight:700}.modal__section-title{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);margin-top:var(--space-6);padding-left:var(--space-2);font-weight:600}.settings-content{gap:var(--space-6);margin-bottom:var(--space-4);flex-direction:column;display:flex}.settings-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:0 1px 3px var(--color-shadow), 0 4px 12px var(--color-shadow);flex-direction:column;display:flex;overflow:hidden}.settings-card__title{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-2);align-items:center;gap:var(--space-2);font-weight:700;display:flex}.settings-card__icon{width:16px;height:16px;color:var(--color-accent);flex-shrink:0}.settings-row{padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-primary);min-height:52px;transition:background-color var(--transition-fast);display:flex}.settings-row:hover{background-color:var(--color-surface-2)}.settings-row+.settings-row{border-top:1px solid var(--color-border)}.settings-row label{flex:1;font-weight:500}.settings-feeds-btn{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);color:var(--color-accent);font-size:var(--font-size-base);cursor:pointer;text-align:left;transition:background-color var(--transition-fast);background:0 0;border:none;min-height:52px;font-family:inherit;font-weight:600;display:flex}.settings-feeds-btn:hover{background:var(--color-accent-light)}.settings-feeds-btn__chevron{color:var(--color-text-tertiary);transition:transform var(--transition-fast);flex-shrink:0;margin-left:auto}.settings-feeds-btn:hover .settings-feeds-btn__chevron{transform:translate(3px)}.settings-row select,.settings-row input[type=number]{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-sm);outline:none;min-width:80px}.settings-row select:focus,.settings-row input:focus{border-color:var(--color-accent)}.icon-size-picker{gap:var(--space-2);display:flex}.icon-size-picker__btn{min-height:36px;padding:var(--space-1) var(--space-4);font-size:var(--font-size-sm)}.icon-size-picker__btn--active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.feed-group__cat-icon{vertical-align:middle;opacity:.8;flex-shrink:0;width:16px;height:16px}.filter-tags-container{gap:var(--space-2);width:100%;margin-top:var(--space-2);flex-wrap:wrap;display:flex}.filter-tag{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);font-size:var(--font-size-sm);margin:var(--space-1);border-radius:999px;display:inline-flex}.filter-tag__remove{color:var(--color-text-tertiary);font-size:var(--font-size-lg);transition:color var(--transition-fast);line-height:1}.filter-tag__remove:hover{color:var(--color-error)}.toggle-switch{align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-switch__slider{background-color:var(--color-border);width:40px;height:22px;transition:var(--transition-normal);border-radius:22px;flex-shrink:0;position:relative}.toggle-switch__slider:before{content:"";width:16px;height:16px;transition:var(--transition-normal);background-color:#fff;border-radius:50%;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-switch__slider{background-color:var(--color-success)}.toggle-switch input:focus-visible+.toggle-switch__slider{box-shadow:0 0 0 2px var(--color-accent-light)}.toggle-switch input:checked+.toggle-switch__slider:before{transform:translate(18px)}.toggle-switch__text{color:var(--color-text-primary);font-weight:500}@media (width>=600px){.card-grid{grid-template-columns:repeat(2,1fr)}.context-menu{bottom:auto;left:auto;right:var(--space-2);top:var(--space-8);border-radius:var(--radius-md);opacity:0;pointer-events:none;width:260px;transition:transform var(--transition-fast), opacity var(--transition-fast);position:absolute;transform:scale(.95)}.context-menu--open{opacity:1;pointer-events:all;transform:scale(1)}.context-menu__handle{display:none}.modal-backdrop{justify-content:center;align-items:center}.modal{border-radius:var(--radius-lg);width:480px;max-height:80dvh;transition:transform .25s cubic-bezier(.34, 1.3, .64, 1), opacity var(--transition-normal);transform:scale(.96)translateY(8px)}.modal-backdrop--open .modal{transform:scale(1)translateY(0)}}@media (width>=1024px){.card-grid{max-width:1200px;padding:0 var(--space-6);grid-template-columns:repeat(3,1fr);margin:0 auto}}@media (width>=1200px){.card-grid{grid-template-columns:repeat(4,1fr);max-width:1440px}}.undo-toast{bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 20px var(--color-shadow-md);align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap;z-index:500;opacity:0;pointer-events:none;transition:transform .28s,opacity .28s;display:flex;position:fixed;left:50%;transform:translate(-50%)translateY(72px)}.undo-toast--visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.undo-toast__btn{color:var(--color-accent);font-family:inherit;font-weight:600;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;padding:0}@media (width>=600px){.modal--wide{width:min(680px,95vw)}}.feed-search{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);margin-bottom:var(--space-4);transition:border-color var(--transition-fast);font-size:max(16px, var(--font-size-base))}.feed-search:focus{border-color:var(--color-accent);outline:none}.feed-search::placeholder{color:var(--color-text-tertiary)}.feed-group{border-bottom:1px solid var(--color-border)}.feed-group:last-of-type{border-bottom:none}.feed-group__summary{padding:var(--space-3) 0;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;list-style:none;display:flex}.feed-group__summary-left{align-items:center;gap:var(--space-3);flex:1;display:flex}.feed-group__summary{padding:var(--space-4) var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast);border-radius:var(--radius-md);justify-content:space-between;align-items:center;list-style:none;display:flex}.feed-group__summary:hover{background-color:var(--color-surface-2)}.feed-group__summary::-webkit-details-marker{display:none}.feed-group__title{font-size:var(--font-size-sm);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:var(--space-3);font-weight:700;display:flex}.feed-group__count{background:var(--color-bg);color:var(--color-text-tertiary);padding:2px var(--space-3);font-size:var(--font-size-xs);margin-left:var(--space-2);border-radius:999px;font-weight:700}.feed-group__count--active{background:var(--color-accent);color:#fff}.feed-group__bulk-btn{padding:var(--space-2);cursor:pointer;color:var(--color-text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.feed-group__bulk-btn:hover{background:var(--color-accent-light);color:var(--color-accent)}.feed-group__bulk-btn svg{width:20px;height:20px}.feed-group__arrow{color:var(--color-text-tertiary);transition:transform var(--transition-fast);font-size:12px}details[open] .feed-group__arrow{transform:rotate(180deg)}.feed-row{padding:var(--space-3) 0 var(--space-3) var(--space-3);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:var(--space-3);transition:background-color var(--transition-fast);display:flex}.feed-row:hover{background:var(--color-surface-2)}.feed-row--hidden{display:none}.feed-row__info{flex:1;min-width:0}.feed-row__name{font-size:var(--font-size-base);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.feed-row__icon{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);object-fit:contain;flex-shrink:0;padding:2px}.feed-row__meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.feed-row__delete{color:var(--color-text-tertiary);font-size:var(--font-size-lg);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);flex-shrink:0}.feed-row__delete:hover{color:var(--color-error)}.toggle{cursor:pointer;flex-shrink:0;width:44px;height:26px;position:relative}.toggle__input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute}.toggle__track{background:var(--color-border);transition:background var(--transition-fast);border-radius:999px;position:absolute;inset:0}.toggle__thumb{width:20px;height:20px;transition:transform var(--transition-fast);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle__input:checked~.toggle__track{background:var(--color-accent)}.toggle__input:checked~.toggle__thumb{transform:translate(18px)}.toggle__input:focus-visible~.toggle__track{outline:2px solid var(--color-accent);outline-offset:2px}.custom-feed-section{margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-4)}.custom-feed-section__toggle{font-size:var(--font-size-base);color:var(--color-accent);cursor:pointer;padding:var(--space-2) 0;-webkit-user-select:none;user-select:none;font-weight:600;list-style:none}.custom-feed-section__toggle::-webkit-details-marker{display:none}.custom-feed-form{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.form-row{gap:var(--space-1);flex-direction:column;display:flex}.form-row label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.form-row input,.form-row select{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-primary);font-family:var(--font-family);font-size:max(16px, var(--font-size-base));transition:border-color var(--transition-fast)}.form-row input:focus,.form-row select:focus{border-color:var(--color-accent);outline:none}.form-row--url{align-items:flex-end;gap:var(--space-2);flex-direction:row}.form-row--url input{flex:1}.feed-preview{padding:var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-md);border-left:3px solid var(--color-accent);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.feed-preview__title{color:var(--color-text-primary);margin-bottom:var(--space-1);font-weight:600}.feed-preview--error{border-left-color:var(--color-error);color:var(--color-error)}
