:root{color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,sans-serif;--page: #faf6f1;--surface: #ffffff;--ink: #241f1a;--ink-secondary: #6b6157;--ink-muted: #a89d90;--border: #ece4d8;--accent: #e0608a;--accent-weak: #e0608a1a;--bubble: #f6f1ea;--mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--m-data: #2a78d6;--m-pos: #1baf7a;--m-neu: #d8cec1;--m-neg: #eb6834;--m-ramp-1: #eaf1fb;--m-ramp-2: #c3d9f5;--m-ramp-3: #8ab6ea;--m-ramp-4: #5194de;--m-ramp-5: #2a78d6}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink)}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;gap:1rem;padding:.9rem 1.5rem;max-width:700px;margin:0 auto}.topbar-brand{font-weight:800;font-size:1.1rem;margin-right:auto;letter-spacing:-.02em}.topbar nav{display:flex;gap:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.25rem}.topbar a{padding:.4rem .85rem;border-radius:999px;color:var(--ink-secondary);text-decoration:none;font-size:.85rem;font-weight:600}.topbar a:hover{color:var(--ink)}.topbar a.active{background:var(--ink);color:var(--surface)}.topbar button{border-radius:999px}.main{padding:1rem 1.5rem 3rem;max-width:700px;margin:0 auto}h1{font-size:1.5rem;margin:.5rem 0 .2rem;letter-spacing:-.02em}.page-subtitle{color:var(--ink-muted);margin:0 0 1.25rem;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:.4rem 1.25rem;margin-bottom:1rem;box-shadow:0 2px 10px #241f1a0a}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-weight:700;padding:.75rem .6rem;border-bottom:1px solid var(--border)}td{padding:.9rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}tbody tr:last-child td{border-bottom:none}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:.55rem 1.1rem;border-radius:12px;cursor:pointer;font-weight:600;font-size:.85rem}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.4;cursor:default}input{font:inherit;border:1px solid var(--border);border-radius:12px;padding:.5rem .8rem;background:var(--surface);color:var(--ink)}.tabs{display:flex;gap:.4rem;margin-bottom:1.25rem}.tabs button{border-radius:999px;font-size:.82rem}.tabs button:disabled{background:var(--ink);color:var(--surface);border-color:var(--ink);opacity:1}.error{color:#c0392b}.muted{color:var(--ink-muted);font-size:.85em}.thread{margin-left:2.5rem;padding-left:1rem;border-left:2px solid var(--border);margin-top:.15rem;padding-top:.15rem}.post-group{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:1.4rem 1.5rem;margin-bottom:1.25rem;box-shadow:0 2px 10px #241f1a0a}.post-group h2{font-size:.72rem;font-weight:600;margin:0 0 1.1rem;color:var(--ink-muted);font-family:var(--mono);display:flex;align-items:center;gap:.4rem}.post-group h2:before{content:"🖼️";font-size:.8rem}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:1.1rem 1.3rem 1.3rem;margin-bottom:1.25rem;box-shadow:0 2px 10px #241f1a0a}.post-head{display:flex;gap:.9rem;align-items:flex-start}.post-thumb-link{flex-shrink:0;line-height:0}.post-thumb{width:76px;height:96px;border-radius:14px;object-fit:cover;display:block;flex-shrink:0;background:var(--bubble)}.post-thumb-fallback{display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;color:var(--ink-muted);border:1px dashed var(--border)}.post-head-text{min-width:0;display:flex;flex-direction:column;gap:.35rem;padding-top:.1rem}.post-caption{margin:0;font-size:.92rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-meta{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.76rem;color:var(--ink-muted)}.post-format{background:var(--bubble);color:var(--ink-secondary);border-radius:999px;padding:.1rem .5rem;font-size:.68rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.post-link{color:var(--ink-muted);text-decoration:none;margin-left:auto}.post-link:hover{color:var(--accent)}.post-no-comments{margin:0;padding-top:.2rem}.post-stats{margin:1rem 0 .9rem;padding-bottom:.9rem;border-bottom:1px solid var(--border)}.post-headline{display:flex;align-items:baseline;gap:.4rem;margin-bottom:.7rem}.post-headline strong{font-size:1.75rem;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.post-headline span{font-size:.78rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.post-counts{display:flex;flex-wrap:wrap;gap:.45rem 1.35rem;margin:0 0 .75rem}.post-counts div{display:flex;flex-direction:column}.post-counts dt{font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-weight:700}.post-counts dd{margin:0;font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}.post-rates{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.8rem;color:var(--ink-secondary)}.post-rate strong{font-variant-numeric:tabular-nums;color:var(--ink)}.post-rate em{font-style:normal;color:var(--ink-muted)}.post-comments-toggle{border:none;background:none;padding:0;font-size:.82rem;font-weight:600;color:var(--ink-secondary)}.post-comments-toggle:hover:not(:disabled){color:var(--accent);background:none;border-color:transparent}.post-comments{margin-top:.5rem}.post-head-compact{padding-bottom:.9rem;margin-bottom:.4rem;border-bottom:1px solid var(--border)}.post-thumb-small{width:48px;height:60px;border-radius:10px;font-size:1rem}.post-caption-compact{font-size:.85rem;-webkit-line-clamp:2;line-clamp:2}.comment-row{display:flex;gap:.7rem;padding:.5rem 0;align-items:flex-start}.comment-row-self{flex-direction:row-reverse}.avatar{width:36px;height:36px;border-radius:999px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#fff}.comment-col{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;flex:1;min-width:0}.comment-row-self .comment-col{align-items:flex-end}.bubble{background:var(--bubble);border-radius:16px;padding:.55rem .9rem;position:relative;max-width:100%}.bubble-self{background:var(--accent-weak);max-width:82%}.comment-row p{margin:0}.comment-meta{padding:0 .2rem}.reply-toggle-link{border:none;background:none;padding:0 .2rem;margin:0;color:var(--ink-muted);font-size:.78rem;font-weight:600}.reply-toggle-link:hover{color:var(--accent);background:none}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.7em;font-weight:700;padding:.2rem .6rem;border-radius:999px;margin-left:.4rem}.self-reply{background:#ffffff9a;color:var(--accent)}.analysis-dot{position:absolute;top:-4px;right:-4px;width:13px;height:13px;border-radius:999px;border:2px solid var(--surface);padding:0;cursor:pointer}.bubble-self .analysis-dot{border-color:var(--page)}.ai-insight{border:1px dashed var(--border);border-radius:12px;padding:.6rem .8rem;margin-top:.35rem;max-width:100%}.ai-insight-label{margin:0 0 .3rem;font-size:.72rem;font-weight:700;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em}.ai-insight-summary{margin:0;font-size:.85rem;color:var(--ink-secondary)}.ai-insight-reply{margin-top:.55rem;padding-top:.55rem;border-top:1px dashed var(--border)}.ai-insight-reply-label{margin:0 0 .25rem;font-size:.72rem;font-weight:700;color:var(--accent)}.ai-insight-reply p{margin:0 0 .5rem;font-size:.85rem}.ai-insight-reply button{padding:.3rem .7rem;font-size:.78rem}.dot-ignore{background:#2a78d6}.dot-reply{background:#eb6834}.dot-like{background:#1baf7a}.dot-hide{background:#eda100}.dot-delete{background:#e87ba4}.dot-unknown{background:var(--ink-muted)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.15rem;box-shadow:0 2px 10px #241f1a0a}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-weight:700}.stat-value{font-size:1.5rem;letter-spacing:-.02em}.stat-hint{font-size:.75rem;color:var(--ink-secondary)}.control-row{display:flex;gap:.4rem;margin-bottom:1rem}.control-row button{border-radius:999px;font-size:.8rem;padding:.35rem .85rem;text-transform:capitalize}.control-row button:disabled{background:var(--ink);color:var(--surface);border-color:var(--ink);opacity:1}.control-row-inline{margin:0 0 .9rem}.control-row-wrap{flex-wrap:wrap;gap:.4rem .35rem}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:1.25rem 1.4rem 1.35rem;margin-bottom:1.25rem;box-shadow:0 2px 10px #241f1a0a}.chart-head h2{font-size:1rem;margin:0;letter-spacing:-.01em}.chart-sub{margin:.25rem 0 .9rem;font-size:.8rem;color:var(--ink-muted);line-height:1.45}.chart-wrap{position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-empty{color:var(--ink-muted);font-size:.85rem;margin:.5rem 0}.grid-line{stroke:var(--border);stroke-width:1}.marker-line{stroke:var(--ink-muted);stroke-width:1;stroke-dasharray:3 3}.axis-text{font-size:10px;fill:var(--ink-muted)}.line-mark{fill:none;stroke:var(--m-data);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.line-dot{fill:var(--m-data);stroke:var(--surface);stroke-width:2}.chart-tip{position:absolute;transform:translate(-50%,-130%);background:var(--ink);color:var(--surface);border-radius:10px;padding:.35rem .6rem;font-size:.75rem;pointer-events:none;display:flex;flex-direction:column;white-space:nowrap;z-index:2}.chart-tip span{opacity:.75}.legend{list-style:none;display:flex;gap:.9rem;padding:0;margin:0 0 .8rem;font-size:.78rem;color:var(--ink-secondary)}.legend li{display:flex;align-items:center;gap:.35rem}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.seg-pos{fill:var(--m-pos);background:var(--m-pos)}.seg-neu{fill:var(--m-neu);background:var(--m-neu)}.seg-neg{fill:var(--m-neg);background:var(--m-neg)}.bar-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.bar-list li{display:grid;grid-template-columns:5.5rem 1fr auto;align-items:center;gap:.7rem;font-size:.82rem}.bar-label{color:var(--ink-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{background:var(--bubble);border-radius:999px;height:10px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--m-data);border-radius:0 4px 4px 0}.bar-value{font-variant-numeric:tabular-nums;font-weight:600;text-align:right;display:flex;flex-direction:column;align-items:flex-end}.bar-note{font-style:normal;font-weight:400;font-size:.72rem;color:var(--ink-muted)}.heatmap{display:grid;gap:3px;font-size:.7rem}.heat-col-label,.heat-row-label{color:var(--ink-muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center}.heat-col-label{justify-content:center}.heat-row-label{padding-right:.5rem}.heat-cell{aspect-ratio:2.4 / 1;border-radius:7px;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.heat-empty{background:var(--page);border:1px dashed var(--border)}.heat-1{background:var(--m-ramp-1)}.heat-2{background:var(--m-ramp-2)}.heat-3{background:var(--m-ramp-3)}.heat-4{background:var(--m-ramp-4);color:#fff}.heat-5{background:var(--m-ramp-5);color:#fff}.chart-table{margin-top:.9rem;border-top:1px solid var(--border);padding-top:.6rem}.chart-table summary{font-size:.76rem;color:var(--ink-muted);cursor:pointer;font-weight:600}.chart-table table{margin-top:.5rem;font-size:.8rem}.chart-table td,.chart-table th{padding:.4rem .5rem}@media (max-width: 560px){.stat-row{grid-template-columns:1fr}.bar-list li{grid-template-columns:4.5rem 1fr auto}}@keyframes skeleton-pulse{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton{background:linear-gradient(90deg,var(--border) 25%,#ffffff 37%,var(--border) 63%);background-size:400% 100%;animation:skeleton-pulse 1.4s ease infinite}.avatar.skeleton{background-color:var(--border)}.skeleton-line{height:12px;border-radius:6px}.skeleton-line-sm{height:9px}
