@font-face{font-family:IBM Plex Sans;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2) format("woff2")}:root,:root[data-theme=dark]{--bg:#0b0c0e;--card:#141517;--card-raised:#1b1d20;--hairline:#26282c;--text:#e8e9ea;--text-secondary:#9a9ca0;--text-muted:#66686c;--data-good:#3fb950;--data-risk:#e5484d;--data-warn:#e0a83a;--action-bg:#e8e9ea;--action-text:#0b0c0e;--mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular","Menlo",monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--sidebar-w:232px;--topbar-h:44px;--row-h:52px;color-scheme:dark}:root[data-theme=light]{--bg:#ffffff;--card:#f6f6f7;--card-raised:#eeeef0;--hairline:#d9dade;--text:#16171a;--text-secondary:#5c5e63;--text-muted:#8a8c91;--data-good:#1a7f37;--data-risk:#cf222e;--data-warn:#9a6700;--action-bg:#16171a;--action-text:#ffffff;color-scheme:light}*,:after,:before{box-sizing:border-box;margin:0;padding:0;border-radius:0}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit;background:transparent;border:1px solid var(--hairline)}button{cursor:pointer}.tw-transition,a,button{transition:opacity .12s linear,background-color .12s linear,border-color .12s linear}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"topbar topbar" "sidebar main";height:100vh}.app__topbar{grid-area:topbar;border-bottom:1px solid var(--hairline)}.app__sidebar{grid-area:sidebar;border-right:1px solid var(--hairline);overflow-y:auto}.app__main{grid-area:main;overflow-y:auto}@media (max-width:760px){.app{grid-template-columns:1fr;grid-template-areas:"topbar" "main"}.app__sidebar{display:none}}.topbar{gap:16px;height:100%;padding:0 12px}.topbar,.topbar__brand{display:flex;align-items:center}.topbar__brand{gap:8px;color:var(--text)}.topbar__mark{color:var(--text-secondary);display:flex}.topbar__word{font-weight:600;font-size:12px;letter-spacing:.14em}.topbar__filter{flex:1 1;max-width:460px;height:26px;padding:0 8px;background:var(--card);color:var(--text);font-size:12px}.topbar__filter::placeholder{color:var(--text-muted)}.topbar__filter:focus{outline:none;border-color:var(--text-secondary)}.topbar__status{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:11px}.status-dot{width:7px;height:7px;display:inline-block;flex:none}.status-dot--pulse{animation:status-fade 1.6s ease-in-out infinite}@keyframes status-fade{0%,to{opacity:1}50%{opacity:.35}}.sidebar{padding:8px 0;font-size:12px}.sidebar__section{padding:8px 10px;border-bottom:1px solid var(--hairline)}.sidebar__section:last-child{border-bottom:none}.sidebar__title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:6px;font-weight:600}.sidebar__poller{display:flex;gap:7px;align-items:flex-start;color:var(--text-secondary);line-height:1.4}.sidebar__hint{color:var(--text-muted);font-size:10px;margin-top:4px}.sidebar__item{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:5px 6px;border:none;border-left:2px solid transparent;color:var(--text-secondary);text-align:left}.sidebar__item:hover{background:var(--card);color:var(--text)}.sidebar__item.is-active{background:var(--card-raised);color:var(--text);border-left-color:var(--text)}.sidebar__item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__count{color:var(--text-muted);font-size:11px;flex:none}.sidebar__warn{color:var(--data-warn);font-size:10px}.feedfilters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--hairline);font-size:11px}.feedfilters__select{height:24px;padding:0 6px;background:var(--card);color:var(--text);font-size:11px}.feedfilters__score{display:flex;align-items:center;gap:4px}.feedfilters__score-label{color:var(--text-muted)}.feedfilters__chip{height:22px;padding:0 7px;background:var(--card);color:var(--text-secondary);font-size:11px}.feedfilters__chip:hover{color:var(--text)}.feedfilters__chip.is-active{background:var(--action-bg);color:var(--action-text);border-color:var(--action-bg)}.feedfilters__count{margin-left:auto;color:var(--text-muted)}.feed{padding:0}.feed__table{width:100%;border-collapse:collapse;font-size:12px}.feed__table thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg);text-align:left;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:7px 10px;border-bottom:1px solid var(--hairline);z-index:1}.feed__sort{border:none;padding:0;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit}.feed__sort.is-active{color:var(--text)}.feed__empty{color:var(--text-muted);padding:24px 12px}.row{height:var(--row-h);border-bottom:1px solid var(--hairline)}.row:hover{background:var(--card)}.row--fresh{animation:row-in .12s linear;box-shadow:inset 2px 0 0 var(--data-good)}@keyframes row-in{0%{opacity:.4}to{opacity:1}}.row td{padding:6px 10px;vertical-align:middle}.row__thumb{width:48px}.row__thumb img{object-fit:cover}.row__thumb img,.row__thumb-empty{width:40px;height:40px;display:block;border:1px solid var(--hairline)}.row__thumb-empty{background:repeating-linear-gradient(45deg,var(--card),var(--card) 4px,var(--card-raised) 4px,var(--card-raised) 8px)}.row__title{max-width:380px}.row__title a{color:var(--text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__title a:hover{text-decoration:underline}.row__sub{display:block;color:var(--text-muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__price,.row__score{white-space:nowrap;color:var(--text)}.row__vs{display:block;color:var(--text-muted);font-size:10px}.row__score--good,.row__vs.is-good{color:var(--data-good)}.row__score--warn{color:var(--data-warn)}.row__score--muted{color:var(--text-secondary)}.row__loc{max-width:140px;overflow:hidden;text-overflow:ellipsis}.row__age,.row__loc{color:var(--text-secondary);white-space:nowrap}.row__risk-flag{color:var(--data-risk);font-size:11px;border:1px solid var(--data-risk);padding:1px 5px;cursor:help}.row__risk-ok{color:var(--text-muted)}.row__actions{white-space:nowrap}.row__actions button{height:22px;padding:0 7px;font-size:11px;background:var(--card);color:var(--text-secondary);margin-left:4px}.row__actions button:hover:not(:disabled){color:var(--text);border-color:var(--text-secondary)}.row__actions button:disabled{opacity:.4;cursor:default}.login{display:grid;place-items:center;min-height:100vh;padding:24px}.login__box{width:100%;max-width:280px;border:1px solid var(--hairline);background:var(--card);padding:20px;display:flex;flex-direction:column;gap:12px}.login__brand{display:flex;align-items:center;gap:8px;color:var(--text);font-size:12px;font-weight:600;letter-spacing:.14em}.login__input{height:30px;padding:0 8px;background:var(--bg);color:var(--text)}.login__submit{height:30px;background:var(--action-bg);color:var(--action-text);border-color:var(--action-bg);font-weight:500}.login__error{color:var(--data-risk);font-size:11px}.login__hint{color:var(--text-secondary);font-size:11px}.login__hint a{color:var(--text);text-decoration:underline}@media (max-width:900px){.app__main{overflow-x:auto}.feed__table{min-width:760px}}