:root{--font-sans: "Noto Sans JP", -apple-system, "Hiragino Kaku Gothic ProN", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--bg: #f5f2e9;--bg-panel: #fbf9f3;--bg-hover: #ede8db;--text: #26221a;--text-sub: #746c5b;--border: #e2dcca;--border-strong: #d4cdb8;--accent: #2e5d78;--accent-text: #fbf9f3;--brand: #b34a28;--danger: #a8332f;--unread-dot: var(--brand);--ok: #4e8a60;--bg-active: color-mix(in srgb, var(--accent) 10%, var(--bg-panel));--shadow-1: 0 1px 2px rgba(46, 38, 20, .05), 0 2px 8px rgba(46, 38, 20, .05);--shadow-2: 0 4px 14px rgba(40, 32, 14, .14), 0 14px 46px rgba(40, 32, 14, .18);--r-s: 6px;--r-m: 10px;--ease: cubic-bezier(.25, .6, .3, 1)}:root[data-theme=dark]{--bg: #1b1914;--bg-panel: #23201a;--bg-hover: #2d2921;--text: #ebe5d6;--text-sub: #a09681;--border: #3a3427;--border-strong: #4a4232;--accent: #8db4cc;--accent-text: #14181c;--brand: #e07a52;--danger: #e06e63;--ok: #7fb28d;--bg-active: color-mix(in srgb, var(--accent) 16%, var(--bg-panel));--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .25);--shadow-2: 0 4px 14px rgba(0, 0, 0, .45), 0 14px 46px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}#app{height:100%}::selection{background:color-mix(in srgb,var(--brand) 24%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--text-sub)}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px;color:var(--text);background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--r-s);padding:7px 11px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--text-sub) 72%,transparent)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--accent);color:var(--accent-text);border-radius:var(--r-s);padding:8px 15px;font-weight:700;font-size:13.5px;letter-spacing:.01em;text-decoration:none;transition:filter .13s var(--ease),transform .13s var(--ease),background .13s var(--ease)}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;transform:none;filter:none}.btn-secondary{background:var(--bg-panel);color:var(--text);border:1px solid var(--border-strong);font-weight:500}.btn-secondary:hover{filter:none;background:var(--bg-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-small{padding:4px 11px;font-size:12.5px;font-weight:500}.btn-accent{outline:2px solid var(--brand);outline-offset:1px}.icon-btn{font-size:17px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-s);color:var(--text-sub);transition:background .13s var(--ease),color .13s var(--ease)}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.app-shell{display:flex;flex-direction:column;height:100dvh}.topbar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}.topbar-title{font-weight:700;font-size:16px;letter-spacing:.02em;font-feature-settings:"palt" 1;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-sub);background:transparent;border:1px solid var(--border);border-radius:999px;padding:3px 11px;white-space:nowrap;font-variant-numeric:tabular-nums}.sync-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);flex-shrink:0}.sync-badge[data-state=offline]:before{background:var(--text-sub)}.sync-badge[data-state=error],.sync-badge[data-state=conflict]{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.sync-badge[data-state=error]:before,.sync-badge[data-state=conflict]:before{background:var(--danger)}.sync-badge[data-state=pushing],.sync-badge[data-state=pulling],.sync-badge[data-state=busy]{color:var(--accent)}.sync-badge[data-state=pushing]:before,.sync-badge[data-state=pulling]:before,.sync-badge[data-state=busy]:before{background:var(--accent);animation:sync-pulse 1.1s ease-in-out infinite}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.25}}.layout{display:grid;grid-template-columns:264px 396px 1fr;flex:1;min-height:0;position:relative}.sidebar-slot,.list-slot,.detail-slot{min-height:0;min-width:0;display:flex}.sidebar-slot,.list-slot{border-right:1px solid var(--border)}.settings-view .list-slot{display:none}.settings-view .layout{grid-template-columns:264px 1fr}.sidebar{width:100%;overflow-y:auto;padding:12px 10px 24px;background:var(--bg-panel)}.sidebar-section{margin-bottom:18px}.sidebar-caption{font-size:10.5px;font-weight:700;letter-spacing:.18em;color:color-mix(in srgb,var(--text-sub) 80%,transparent);padding:2px 12px 6px;user-select:none}.nav-row{display:flex;align-items:center;width:100%;text-align:left;gap:8px;padding:7px 12px;border-radius:var(--r-s);color:var(--text);transition:background .13s var(--ease),color .13s var(--ease)}.nav-row:hover{background:var(--bg-hover)}.nav-row.active{background:var(--bg-active);font-weight:700;color:color-mix(in srgb,var(--accent) 78%,var(--text))}.nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.count-badge{font-size:10.5px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-sub);border:1px solid var(--border);background:transparent;border-radius:999px;padding:.5px 7px;flex-shrink:0}.nav-row.active .count-badge{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.add-feed{display:flex;gap:6px;padding:0 4px}.add-input{flex:1;min-width:0}.feed-row .nav-label{font-size:13.5px}.folder-row .nav-label{font-size:12.5px;color:var(--text-sub);font-weight:700;letter-spacing:.04em}.folder-row-wrap{display:flex;align-items:stretch}.folder-row-wrap .folder-row{flex:1;min-width:0;padding-left:2px}.folder-row-wrap.active .folder-row{background:var(--bg-active);font-weight:700}.folder-chevron{width:26px;flex-shrink:0;color:color-mix(in srgb,var(--text-sub) 75%,transparent);font-size:10px;border-radius:var(--r-s);transition:background .13s var(--ease),color .13s var(--ease)}.folder-chevron:hover{background:var(--bg-hover);color:var(--text)}.feed-error-mark{color:var(--danger);flex-shrink:0;font-size:12px}.sidebar-empty{font-size:12.5px;color:var(--text-sub);padding:4px 12px;line-height:1.7}.list-pane{width:100%;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--bg)}.list-header{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}.list-title{font-feature-settings:"palt" 1;letter-spacing:.02em;font-size:16.5px;font-weight:700;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-count{font-size:11.5px;color:var(--text-sub);white-space:nowrap;font-variant-numeric:tabular-nums}.list-search{padding:9px 12px;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}.list-search-input{width:100%;font-size:13px;border-radius:999px;padding:6.5px 14px}.article-list{overflow-y:auto;flex:1;position:relative;overscroll-behavior-y:contain}.ptr-indicator{height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--text-sub);background:var(--bg-hover);transition:none}.ptr-indicator.armed{color:var(--brand);font-weight:700}.ptr-indicator.refreshing{color:var(--accent)}.article-row{position:relative;overflow:hidden;border-bottom:1px solid var(--border);cursor:pointer;touch-action:pan-y}.article-row-inner{position:relative;z-index:1;display:flex;gap:10px;padding:13px 12px 14px 16px;background:var(--bg);transition:transform .18s ease,background .13s var(--ease)}.article-row:hover .article-row-inner{background:var(--bg-hover)}.article-row.selected .article-row-inner{background:var(--bg-active);box-shadow:inset 3px 0 0 var(--accent)}.swipe-hint{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 18px;font-size:13px;font-weight:700;opacity:0;color:#fff}.hint-read{left:0;right:40%;justify-content:flex-start;background:var(--ok)}.hint-save{right:0;left:40%;justify-content:flex-end;background:#b07818}.article-row.swiping-right .hint-read,.article-row.swiping-left .hint-save{opacity:.55}.article-row.swiping-right.swipe-armed .hint-read,.article-row.swiping-left.swipe-armed .hint-save{opacity:1}.article-row-main{flex:1;min-width:0}.article-row-top{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--text-sub);letter-spacing:.02em}.unread-dot{width:7px;height:7px;border-radius:1.5px;background:transparent;flex-shrink:0}.article-row.unread .unread-dot{background:var(--unread-dot)}.article-feed{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.article-time{margin-left:auto;flex-shrink:0;font-variant-numeric:tabular-nums}.article-title{font-feature-settings:"palt" 1;letter-spacing:.01em;font-size:14.5px;margin:5px 0 3px;line-height:1.55;font-weight:500;color:var(--text-sub);overflow-wrap:anywhere}.article-row.unread .article-title{font-weight:700;color:var(--text)}.article-snippet{font-size:12.25px;color:color-mix(in srgb,var(--text-sub) 88%,transparent);margin:0;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.article-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--r-s);border:1px solid var(--border);flex-shrink:0;align-self:center;background:var(--bg-hover)}.save-btn{font-size:17px;color:color-mix(in srgb,var(--text-sub) 70%,transparent);padding:0 6px;align-self:flex-start;border-radius:var(--r-s);transition:color .13s var(--ease),transform .13s var(--ease)}.save-btn:hover{color:var(--brand);transform:scale(1.12)}.save-btn.saved{color:#c99b2e}.list-empty{color:var(--text-sub);padding:34px 20px;font-size:13.5px;text-align:center;line-height:1.8;overflow-wrap:anywhere}.feed-error-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;font-size:12.5px;color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--bg-panel));border-bottom:1px solid color-mix(in srgb,var(--danger) 25%,var(--border))}.feed-error-banner span{flex:1;min-width:200px;word-break:break-all}.feed-error-text{font-size:12px;color:var(--danger);word-break:break-all}.detail-pane{width:100%;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--bg-panel);touch-action:pan-y;transition:transform .18s ease}.detail-toolbar{display:flex;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.detail-back{display:none}.detail-body{overflow-y:auto;padding:30px 34px 80px;max-width:740px;width:100%}.detail-empty{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:color-mix(in srgb,var(--text-sub) 75%,transparent);font-size:14px;letter-spacing:.06em}.detail-title{font-feature-settings:"palt" 1;font-size:23px;line-height:1.5;letter-spacing:.01em;font-weight:900;margin:0 0 10px;overflow-wrap:anywhere}.detail-title a{color:var(--text);text-decoration:none}.detail-title a:hover{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--brand) 55%,transparent);text-underline-offset:5px}.detail-meta{font-size:12.5px;color:var(--text-sub);letter-spacing:.04em;margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.detail-content{font-size:15px;line-height:1.95;word-wrap:break-word;overflow-wrap:break-word}.detail-content a{text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px}.detail-content a:hover{text-decoration-color:var(--accent)}.detail-content img{max-width:100%;height:auto;border-radius:var(--r-m);border:1px solid var(--border)}.detail-content pre{background:var(--bg);border:1px solid var(--border);padding:14px;border-radius:var(--r-m);overflow-x:auto;font-size:12.5px;font-family:var(--font-mono);line-height:1.7}.detail-content code{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:var(--font-mono);font-size:.88em}.detail-content pre code{border:none;padding:0;background:none}.detail-content blockquote{border-left:2px solid color-mix(in srgb,var(--brand) 55%,var(--border));margin:14px 0;padding:2px 16px;color:var(--text-sub)}.detail-content table{border-collapse:collapse;display:block;overflow-x:auto}.detail-content th,.detail-content td{border:1px solid var(--border);padding:5px 11px}.detail-content hr{border:none;border-top:1px solid var(--border);margin:22px 0}.podcast-player{margin:8px 0 16px}.podcast-player audio{width:100%}.settings-pane .detail-body{max-width:860px}.settings-section{margin:26px 0 32px}.settings-section h2{font-feature-settings:"palt" 1;font-size:15.5px;font-weight:700;letter-spacing:.04em;margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid var(--border-strong)}.settings-pane .detail-title{font-size:23px;margin-bottom:4px}.settings-meta{font-size:12.75px;color:var(--text-sub);margin:4px 0;word-break:break-all;line-height:1.75}.settings-note{font-size:12.75px;color:var(--text-sub);margin:6px 0;line-height:1.75}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.feed-manage{display:flex;flex-direction:column;gap:10px;margin-top:12px}.feed-manage-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-m);background:var(--bg)}.feed-manage-fields{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0}.feed-manage-fields strong{font-size:13.5px;overflow-wrap:anywhere}.manage-input{width:100%;max-width:420px}.feed-url{font-size:11.5px;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-all-label{display:inline-flex;align-items:center;gap:7px;font-size:12.75px;color:var(--text-sub);cursor:pointer;user-select:none}.check-all-label input,.error-check{width:17px;height:17px;margin:0;padding:0;accent-color:var(--accent);flex-shrink:0}.error-check{align-self:center}.setup-screen{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:20px;background:radial-gradient(900px 600px at 15% -10%,color-mix(in srgb,var(--bg-panel) 70%,transparent),transparent),var(--bg)}.setup-card{width:100%;max-width:460px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:34px 32px 28px;box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:13px}.setup-card h1{font-feature-settings:"palt" 1;font-size:21px;font-weight:900;letter-spacing:.02em;margin:0}.setup-desc{font-size:13px;color:var(--text-sub);margin:0;line-height:1.8}.setup-tabs{display:flex;border:1px solid var(--border-strong);border-radius:var(--r-s);overflow:hidden}.setup-tab{flex:1;padding:9px;font-weight:700;font-size:13.5px;color:var(--text-sub);background:var(--bg);transition:background .15s var(--ease),color .15s var(--ease)}.setup-tab.active{background:var(--accent);color:var(--accent-text)}.setup-input{width:100%}.setup-submit{justify-content:center;padding:11px}.setup-status{font-size:13px;color:var(--text-sub);margin:0;min-height:1.2em}.setup-notes{font-size:12.25px;color:var(--text-sub);margin:0;padding-left:18px;line-height:1.75}.setup-notes li{margin:5px 0}.conflict-dialog{border:1px solid var(--border);border-radius:14px;background:var(--bg-panel);color:var(--text);max-width:480px;width:calc(100vw - 40px);padding:0;box-shadow:var(--shadow-2)}.conflict-dialog::backdrop{background:#18120880}.conflict-body{padding:24px}.conflict-body h2{font-feature-settings:"palt" 1;margin:0 0 10px;font-size:16.5px;font-weight:700;letter-spacing:.02em}.conflict-body p{font-size:13.75px;line-height:1.8;overflow-wrap:anywhere}.conflict-info{font-size:12.75px;color:var(--text-sub);padding-left:18px;line-height:1.8}.conflict-note{font-size:12.25px;color:var(--text-sub)}.conflict-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.shortcut-row{display:flex;align-items:center;gap:14px;padding:5px 0;font-size:13.5px}.shortcut-row kbd{min-width:64px;text-align:center;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:var(--r-s);background:var(--bg);padding:2px 8px;font-size:12px;font-family:inherit}.toast-container{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:1000;width:min(420px,calc(100vw - 32px))}.toast{background:var(--text);color:var(--bg-panel);border-radius:var(--r-m);padding:11px 16px;font-size:13px;line-height:1.6;overflow-wrap:anywhere;box-shadow:var(--shadow-2);animation:toast-in .25s var(--ease)}.toast-error{background:var(--danger);color:#fff}.toast-out{opacity:0;transition:opacity .3s}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bottom-nav,.drawer-overlay,.menu-btn{display:none}@media(max-width:900px){.layout,.settings-view .layout{grid-template-columns:1fr}.menu-btn{display:inline-flex}.sidebar-slot{position:fixed;top:0;left:0;bottom:0;width:min(300px,84vw);z-index:60;transform:translate(-100%);transition:transform .22s ease;border-right:1px solid var(--border);box-shadow:none}.drawer-open .sidebar-slot{transform:translate(0);box-shadow:var(--shadow-2)}.drawer-open .drawer-overlay{display:block;position:fixed;inset:0;background:#140f0673;z-index:50}.sidebar{padding-top:16px}.list-slot{border-right:none}.detail-slot{position:fixed;inset:0;z-index:40;transform:translate(100%);transition:transform .22s ease;background:var(--bg-panel);padding-bottom:calc(52px + env(safe-area-inset-bottom))}.detail-open .detail-slot{transform:translate(0)}.settings-view .detail-slot{position:static;transform:none;padding-bottom:0}.detail-back{display:inline-flex}.detail-body{padding:20px 18px 90px}.settings-view .list-slot{display:none}.bottom-nav{display:flex;border-top:1px solid var(--border);background:var(--bg-panel);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0}.bottom-nav-btn{position:relative;flex:1;padding:12px 4px 13px;font-size:12.75px;color:var(--text-sub);white-space:nowrap;transition:color .15s var(--ease)}.bottom-nav-btn.active{color:var(--accent);font-weight:700}.bottom-nav-btn.active:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:7px;width:18px;height:2.5px;border-radius:99px;background:var(--brand)}body,input,select,textarea,.list-search-input{font-size:16px}.nav-row{padding:10px 12px}.feed-row .nav-label{font-size:15px}.folder-row .nav-label{font-size:14px}.folder-chevron{width:32px;font-size:12px}.count-badge{font-size:12.5px}.sidebar-empty{font-size:14px}.sidebar-caption{font-size:11.5px}.list-title{font-size:17.5px}.list-count{font-size:13px}.article-row-inner{padding:15px 12px 16px 16px}.article-row-top{font-size:13px}.article-title{font-size:16px}.article-snippet{font-size:14px}.article-thumb{width:72px;height:72px}.list-empty{font-size:15px}.feed-error-banner{font-size:14px}.detail-title{font-size:22px}.detail-meta{font-size:14px}.detail-content{font-size:16.5px;line-height:1.9}.detail-content pre{font-size:13.5px}.settings-section h2{font-size:16.5px}.settings-meta,.settings-note{font-size:14px}.feed-url{font-size:13px}.feed-error-text{font-size:13.5px}.btn-small{padding:6px 12px;font-size:14px}.check-all-label{font-size:14px}.check-all-label input,.error-check{width:21px;height:21px}.sync-badge{font-size:12.5px}.toast{font-size:14.5px}}
