:root{--bg: #14151a;--panel: #1e2027;--panel-2: #262933;--text: #e6e6ea;--muted: #8b8f9a;--accent: #6ea8fe;--up: #4ade80;--down: #f87171;--border: #2e313b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.center{display:grid;place-items:center;min-height:40vh;color:var(--muted);padding:2rem;text-align:center}:root{--topbar-h: 52px}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:flex;align-items:center;gap:.8rem;padding:0 1rem;background:var(--panel);border-bottom:1px solid var(--border)}.spacer{flex:1}.viewtoggle{display:flex;gap:2px}.viewtoggle button{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:6px;width:30px;height:28px;cursor:pointer}.viewtoggle button.active{color:var(--accent);border-color:var(--accent)}.iconlink{color:var(--muted);text-decoration:none;font-size:18px;line-height:1}.iconlink:hover{color:var(--text)}.whoami{color:var(--muted);font-size:13px}.brand{font-weight:700;letter-spacing:.5px}.modes button,.search button,.logout,.actions button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.35rem .7rem;cursor:pointer}.modes button.active{border-color:var(--accent);color:var(--accent)}.search{display:flex;gap:.4rem;flex:1}.search input{flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.35rem .6rem}.search select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px}.logout{margin-left:auto}.grid{columns:5 220px;column-gap:10px;padding:10px}.card{break-inside:avoid;margin-bottom:10px;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;position:relative}.thumb{width:100%;display:block;cursor:zoom-in}.controls{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem}.vote{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;width:30px;height:26px}.vote.up.active{color:var(--up);border-color:var(--up)}.vote.down.active{color:var(--down);border-color:var(--down)}.src{margin-left:auto;color:var(--muted);font-size:12px}.sentinel{text-align:center;color:var(--muted);padding:1.2rem}html.snap{scroll-snap-type:y mandatory}.feed-item{position:relative;height:calc(100vh - var(--topbar-h));scroll-snap-align:start;scroll-margin-top:var(--topbar-h);display:grid;place-items:center;padding:12px 64px}.feed-img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;border-radius:6px}.feed-rail{position:absolute;right:14px;bottom:50%;transform:translateY(50%);display:flex;flex-direction:column;gap:8px;align-items:center}.feed-rail .vote,.feed-rail .info{width:44px;height:44px;border-radius:50%;background:#1e2027d9;border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:16px}.feed-rail .vote.up.active{color:var(--up);border-color:var(--up)}.feed-rail .vote.down.active{color:var(--down);border-color:var(--down)}.feed-src{color:var(--muted);font-size:11px;background:#1e2027d9;padding:2px 6px;border-radius:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:grid;place-items:center;z-index:100;padding:2vh}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;max-width:1100px;width:100%;max-height:96vh;overflow:hidden;position:relative}.close{position:absolute;top:8px;right:8px;z-index:2;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;width:30px;height:30px;cursor:pointer}.modal-body{display:grid;grid-template-columns:1fr 320px;max-height:96vh}.modal-image{background:#000;display:grid;place-items:center;overflow:auto}.modal-image img{max-width:100%;max-height:96vh;display:block}.modal-meta{padding:1rem;overflow-y:auto;border-left:1px solid var(--border)}.modal-meta h4{margin:1rem 0 .4rem;color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.5px}.sources{list-style:none;padding:0;margin:0}.sources a{color:var(--accent);text-decoration:none}.tags{display:flex;flex-wrap:wrap;gap:4px}.tag{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:12px;color:var(--text);font-family:inherit}.tag.clickable{cursor:pointer}.tag.clickable:hover{border-color:var(--accent);color:var(--accent)}.comment{border-top:1px solid var(--border);padding:.5rem 0}.comment-head{font-size:12px;margin-bottom:2px}.comment-body{white-space:pre-wrap}.muted{color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center}.login{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:2rem;width:320px;display:flex;flex-direction:column;gap:.7rem}.login h1{margin:0 0 .5rem;text-align:center}.login input{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .7rem}.login button{background:var(--accent);color:#0b1220;border:none;border-radius:6px;padding:.55rem;font-weight:600;cursor:pointer}.error{color:var(--down);font-size:13px}.ok-msg{color:var(--up);font-size:13px}.settings-body{max-width:560px;margin:0 auto;padding:1.5rem 1rem 4rem}.settings-body h2{margin:.5rem 0 .2rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;margin-top:1.2rem}.panel h3{margin:0 0 .6rem}.stack{display:flex;flex-direction:column;gap:.6rem}.row{display:flex;gap:.5rem}.row input{flex:1}.panel input{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .7rem}.panel button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.45rem .8rem;cursor:pointer}.stack button[type=submit]{background:var(--accent);color:#0b1220;border:none;font-weight:600}.tag.removable{display:inline-flex;align-items:center;gap:5px}.tag.removable button{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:0;font-size:11px}.tag.removable button:hover{color:var(--down)}.tabbar{display:flex;align-items:center;gap:4px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--border);overflow-x:auto}.tab{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--muted);cursor:pointer;white-space:nowrap}.tab.active{color:var(--text);border-color:var(--accent)}.tab-name{font-size:13px}.tab-kind{font-size:12px}.tab-x{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:10px;padding:0 2px}.tab-x:hover{color:var(--down)}.tab-edit{width:110px;background:var(--bg);border:1px solid var(--accent);border-radius:4px;color:var(--text);padding:2px 4px}.tab-add{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);width:30px;height:30px;cursor:pointer;flex:none}.directbar{display:flex;gap:6px;padding:8px 10px;background:var(--panel);border-bottom:1px solid var(--border);align-items:flex-start}.directbar select,.directbar>button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem;cursor:pointer}.searchbar{position:relative;flex:1;min-width:240px}.searchbar input{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.4rem .6rem}.ac-dropdown{position:absolute;z-index:50;left:0;right:0;margin:2px 0 0;padding:0;list-style:none;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;max-height:260px;overflow-y:auto;box-shadow:0 8px 24px #0006}.ac-dropdown li{display:flex;justify-content:space-between;gap:10px;padding:5px 8px;cursor:pointer}.ac-dropdown li.active{background:var(--panel)}.ac-name{color:var(--text)}.ac-count{color:var(--muted);font-size:12px}.filterbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:12px;font-size:12px;border:1px solid var(--border)}.chip.plus{color:var(--up);border-color:var(--up)}.chip.minus{color:var(--down);border-color:var(--down)}.chip button{background:transparent;border:none;color:inherit;cursor:pointer;padding:0}.grid-cols{display:flex;gap:10px;padding:10px;align-items:flex-start}.grid-col{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.grid-col .card{margin-bottom:0}.copy{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--muted);cursor:pointer;width:30px;height:26px}.copy:hover{color:var(--text)}.copy:disabled{opacity:.4;cursor:default}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.2rem;width:440px;max-width:94vw;display:flex;flex-direction:column;gap:.6rem}.dialog h3{margin:0}.seg{display:flex;gap:6px}.seg button{flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--muted);padding:.4rem;cursor:pointer}.seg button.active{color:var(--accent);border-color:var(--accent)}.dlg-name{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.45rem .6rem}.dlg-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.dlg-actions button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.45rem .9rem;cursor:pointer}.dlg-actions .primary{background:var(--accent);color:#0b1220;border:none;font-weight:600}.small{font-size:12px}.algo-table{width:100%;border-collapse:collapse;margin-top:8px}.algo-table td{padding:3px 4px;border-bottom:1px solid var(--border)}.algo-tag{word-break:break-all}.algo-w{text-align:right;width:64px;font-variant-numeric:tabular-nums}.algo-w.pos{color:var(--up)}.algo-w.neg{color:var(--down)}.algo-btns{white-space:nowrap;text-align:right;width:96px}.algo-btns button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;cursor:pointer;margin-left:3px;width:24px;height:22px}.subpanel{margin-top:14px}.subpanel h4{margin:0 0 6px;color:var(--muted)}.panel select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem}
