:root{--bg:#0b0f17;--bg-elevated:#141a26;--bg-hover:#1b2331;--border:#253044;--border-strong:#334159;--text:#e6ebf4;--text-muted:#8b97ad;--text-faint:#5f6b81;--accent:#4f7cff;--accent-hover:#6a92ff;--accent-text:#ffffff;--danger:#e05a5a;--danger-hover:#e87272;--success:#3dbb7a;--success-hover:#4acf8a;--radius:14px;--radius-sm:8px;--shadow-card:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.35);--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior:none}body{overflow:hidden}body,main{min-height:100vh;min-height:100svh;height:100vh;height:100svh}main{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;max-width:560px;margin:0 auto;padding:1.25rem 1rem calc(env(safe-area-inset-bottom, 0px) + 1.25rem);gap:1rem}main[data-state=empty],main[data-state=error],main[data-state=loading],main[data-state=login]{justify-content:center;align-items:center;text-align:center}h1{font-size:1.375rem;letter-spacing:-.01em}h1,h2{font-weight:600;margin:0}h2{font-size:1.125rem}p{color:var(--text-muted);margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:.875em;border:1px solid var(--border);border-radius:4px;padding:.1em .35em}button,code{background:var(--bg-elevated)}button{font-family:inherit;font-size:.9375rem;font-weight:500;line-height:1;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem 1rem;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease}button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}input{font-family:inherit;font-size:1rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem .75rem;width:100%}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,124,255,.25)}.card-shell{position:relative;flex:1 1 auto;min-height:0;display:flex;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden;touch-action:none}.swipe-feedback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;filter:drop-shadow(0 6px 16px rgba(0,0,0,.45))}.swipe-feedback.promote{color:var(--success)}.swipe-feedback.archive{color:var(--danger)}.card-article{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;padding:1.25rem}.card-title{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .75rem}.card-comment{flex:1 1 auto;min-height:0;overflow:hidden;color:var(--text);line-height:1.5}.card-comment a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.card-expand{align-self:flex-start;margin-top:.75rem;padding:.375rem .75rem;font-size:.8125rem;color:var(--text-muted)}.action-bar{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;margin-top:auto;padding-top:1rem}.action-bar.has-undo{grid-template-columns:1fr 1fr auto}.action-btn{padding:.875rem 1rem;font-size:.9375rem;font-weight:600;border-radius:var(--radius-sm)}.action-btn.archive{color:var(--danger);border-color:rgba(224,90,90,.35)}.action-btn.archive:hover:not(:disabled){background:rgba(224,90,90,.1);border-color:var(--danger);color:var(--danger-hover)}.action-btn.promote{color:var(--success);border-color:rgba(61,187,122,.35)}.action-btn.promote:hover:not(:disabled){background:rgba(61,187,122,.1);border-color:var(--success);color:var(--success-hover)}.action-btn.undo{padding:.875rem;font-size:.8125rem;color:var(--text-muted)}.toast{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;background:rgba(224,90,90,.08);border:1px solid rgba(224,90,90,.35);border-radius:var(--radius-sm);color:var(--text);font-size:.9375rem}.toast-message{flex:1 1 auto;min-width:0}.toast button{padding:.375rem .75rem;font-size:.8125rem}.login-form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px;margin-top:1rem}.login-form label{font-size:.875rem;color:var(--text-muted);text-align:left}.login-form button{background:var(--accent);color:var(--accent-text);border-color:var(--accent);padding:.75rem 1rem;font-weight:600}.login-form button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.login-error{min-height:1.25rem;font-size:.875rem;color:var(--danger);text-align:left}dialog{color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:0;max-width:90vw;width:90vw}dialog::-webkit-backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog::backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-body{padding:1.25rem;max-height:80vh;overflow-y:auto}.modal-body h2{margin:0 0 .75rem}.modal-body .rich{font-size:.9375rem;line-height:1.5;color:var(--text)}.modal-close{margin-top:1rem}