:root{--bg: #f4f5f7;--panel: #ffffff;--panel-2: #f8f9fb;--line: #e4e6eb;--text: #16181d;--muted: #6b7180;--faint: #9aa0ac;--accent: #4f7cff;--accent-ink: #ffffff;--danger: #e5484d;--ok: #2fa66a;--warn: #e8a23b;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 16px rgba(16, 24, 40, .05);--radius: 14px;--note-yellow: #fff1a8;--note-pink: #ffd3e2;--note-blue: #cfe3ff;--note-green: #cff3d9;--note-purple: #e5d8ff;--note-orange: #ffe0c2;--note-ink: #2a2a2a;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1c2029;--line: #2a2f3a;--text: #e9ebf0;--muted: #9198a6;--faint: #697080;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .25);--note-yellow: #e9d877;--note-pink: #eab0c4;--note-blue: #a9c6ef;--note-green: #a9dcb8;--note-purple: #c6b4ef;--note-orange: #ecbf94;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0}h2{font-size:15px;font-weight:700;margin:0;display:flex;align-items:center;gap:8px}h3{font-size:14px;margin:16px 0 8px}p{margin:6px 0}.muted{color:var(--muted)}.small{font-size:13px}.spacer{flex:1}.row{display:flex;gap:8px;align-items:center}.stack{display:flex;flex-direction:column;gap:10px}button{font:inherit;border:1px solid transparent;border-radius:10px;padding:8px 14px;cursor:pointer;background:var(--panel-2);color:var(--text);transition:background .12s,border-color .12s,opacity .12s,transform .08s}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.07)}button.secondary{background:var(--panel);border-color:var(--line);font-weight:600}button.secondary:hover:not(:disabled){border-color:var(--faint)}button.ghost{background:transparent;color:var(--muted)}button.ghost:hover{color:var(--text);background:var(--panel-2)}button.small{padding:5px 10px;font-size:13px}button.danger{color:var(--danger)}button.icon{width:30px;height:30px;padding:0;display:grid;place-items:center;background:transparent;color:var(--muted);font-size:18px}button.icon:hover{background:var(--panel-2);color:var(--text)}button.mini{padding:2px 6px;font-size:12px;background:#0000000f;color:inherit;border-radius:6px}button.mini:hover{background:#0000001f}button.linkish{background:none;border:0;padding:0;text-align:left;color:inherit;border-radius:0;display:inline}button.linkish:not(:disabled):hover{color:var(--accent)}button.linkish:disabled{opacity:1;cursor:default}input,textarea,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;width:100%;outline:none;transition:border-color .12s,box-shadow .12s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}textarea{resize:vertical}select{width:auto;cursor:pointer}label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}label.block{margin-top:12px}label input,label select,label textarea{font-weight:400;font-size:14px;color:var(--text)}.splash{display:grid;place-items:center;height:100vh;color:var(--muted)}.shell{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:2px;padding:18px 12px;border-right:1px solid var(--line);background:var(--panel)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.01em;padding:4px 10px 18px}.brand.big{font-size:22px;padding:0 0 8px;justify-content:center}.brand-dots{display:inline-flex}.brand-dots i{width:14px;height:14px;border-radius:50%;display:inline-block}.brand-dots i+i{margin-left:-5px;opacity:.9}.nav{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--muted);font-weight:600}.nav:hover{background:var(--panel-2);color:var(--text);text-decoration:none}.nav.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.nav-icon{width:18px;text-align:center;font-size:15px}.badge{margin-left:auto;background:var(--danger);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 7px}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--line)}.me-btn{display:flex;align-items:center;gap:10px;background:transparent;font-weight:600;padding:8px 10px;text-align:left}.me-btn:hover{background:var(--panel-2)}.content{min-width:0}.tabbar{display:none}.page{max-width:1080px;margin:0 auto;padding:28px 28px 60px;display:flex;flex-direction:column;gap:18px}.page.wide{max-width:1440px}.page.narrow{max-width:640px}.page.full{max-width:none;height:100vh;padding-bottom:20px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hint{margin:-10px 0 0}.secondary-link{font-size:13px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:6px 12px;background:var(--panel)}.secondary-link:hover{color:var(--text);text-decoration:none;border-color:var(--faint)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;background:var(--c);color:#fff;font-weight:700;line-height:1}.avatar.empty{background:transparent;border:1.5px dashed var(--faint);color:var(--faint)}.bot-avatar{width:22px;height:22px;background:linear-gradient(135deg,#4f7cff,#ff8a3d);color:#fff;font-size:12px}.pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--panel-2);color:var(--muted);white-space:nowrap}.pill.status-live{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.pill.status-setup{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.pill.status-idea{background:color-mix(in srgb,var(--warn) 18%,transparent);color:#b7791f}.pill.status-paused,.pill.status-dropped{background:var(--panel-2);color:var(--faint)}.tag{font-size:11px;font-weight:600;color:var(--muted);background:var(--panel-2);border-radius:6px;padding:1px 6px;margin-left:6px}.chip{font-size:12px;color:var(--muted);background:var(--panel-2);border-radius:6px;padding:1px 7px;white-space:nowrap}.chip.late{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--faint);vertical-align:middle}.dot.status-doing{background:var(--accent)}.dot.status-next{background:var(--warn)}.dot.status-done{background:var(--ok)}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:14px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:32px 28px;box-shadow:var(--shadow)}.who{display:grid;grid-template-columns:1fr 1fr;gap:12px}.who-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border:2px solid var(--line);background:var(--panel);font-weight:700}.who-btn.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 8%,var(--panel))}.error-text{color:var(--danger);font-size:13px}.news{border-left:4px solid var(--accent)}.news.quiet{border-left-color:var(--line)}.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.feed li{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;border-radius:10px}.feed li.new{background:color-mix(in srgb,var(--accent) 7%,transparent)}.feed li.update .update-body{white-space:pre-wrap;background:var(--panel-2);border-radius:10px;padding:6px 10px;display:inline-block}.feed-text{flex:1;min-width:0;line-height:1.45}.feed li>.muted{white-space:nowrap;padding-top:1px}.day{font-size:12px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 4px 8px}.day:first-of-type{margin-top:0}.composer{display:flex;flex-direction:column;gap:10px;padding:14px}.composer textarea{border:0;padding:4px 6px;box-shadow:none!important;background:transparent}.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.tasklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.tasklist li{display:flex;align-items:center;justify-content:space-between;gap:10px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;color:var(--text);box-shadow:var(--shadow)}.stat:hover{text-decoration:none;border-color:var(--faint)}.stat b{font-size:24px;font-weight:800;letter-spacing:-.02em}.stat span{font-size:13px;color:var(--muted)}.channel-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.mini-channel{display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--panel-2)}.mini-channel:hover{text-decoration:none;border-color:var(--faint)}.mini-channel .pill{align-self:flex-start}.mini-num{font-weight:700;margin-top:4px}.mini-num small{color:var(--muted);font-weight:500}em{font-style:normal;font-size:12px;font-weight:700;color:var(--ok);margin-left:6px}em.neg{color:var(--danger)}.seg{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:2px}.seg button{background:transparent;padding:5px 12px;font-size:13px;font-weight:600;color:var(--muted);border-radius:8px}.seg button.on{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.board{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:14px;align-items:start;overflow-x:auto;padding-bottom:8px}.column{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-height:200px;transition:border-color .12s,background .12s}.column.drop{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--panel-2))}.column-head{display:flex;align-items:center;gap:8px;padding:4px 4px 10px}.column-head h2{font-size:14px}.count{font-size:12px;color:var(--muted);background:var(--panel);border-radius:999px;padding:0 8px}.column-head .icon{margin-left:auto}.cards{display:flex;flex-direction:column;gap:8px}.task-card{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 12px;box-shadow:var(--shadow);cursor:grab}.task-card:hover{border-color:var(--faint)}.task-card.dragging{opacity:.4}.task-card.before{box-shadow:0 -3px 0 var(--accent),var(--shadow)}.task-title{font-weight:600;line-height:1.35}.task-title.done{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint)}.task-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.add-card{margin-bottom:8px}.empty-col{color:var(--faint);font-size:13px;text-align:center;padding:18px 0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1073;display:grid;place-items:start center;padding:6vh 16px;z-index:50;overflow-y:auto}.modal{width:min(640px,100%);background:var(--panel);border-radius:18px;padding:20px 22px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;gap:12px}.modal-head{display:flex;gap:8px;align-items:center}.title-input{font-size:20px;font-weight:700;border-color:transparent;padding:6px 8px;background:transparent}.title-input:hover{border-color:var(--line)}.title-input.big{font-size:26px;font-weight:800;letter-spacing:-.02em}.field-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.field-row select,.field-row input{width:100%}.done-btn{align-self:flex-start;background:var(--ok)}.comments{border-top:1px solid var(--line);padding-top:6px}.comment{display:flex;gap:10px;padding:6px 0}.comment p{margin:2px 0 0;white-space:pre-wrap}.comment-form{display:flex;gap:8px;margin-top:8px}.history{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:2px}.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:12px}.swatches{display:flex;gap:6px}.swatch{width:24px;height:24px;padding:0;border-radius:50%;border:2px solid transparent}.swatch.on{border-color:var(--text)}.board-surface{position:relative;flex:1;min-height:400px;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background-color:var(--panel);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px;cursor:grab;touch-action:none}.board-surface:active{cursor:grabbing}.board-world{position:absolute;left:0;top:0;transform-origin:0 0;width:1px;height:1px}.board-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.sticky{position:absolute;width:210px;min-height:150px;border-radius:6px;padding:10px 10px 6px;box-shadow:0 2px 4px #00000014,0 8px 18px #0000001a;color:var(--note-ink);display:flex;flex-direction:column;cursor:grab;transform:rotate(-.4deg)}.sticky.dragging{box-shadow:0 12px 30px #00000040;transform:rotate(1.5deg) scale(1.02);z-index:5;cursor:grabbing}.sticky textarea{flex:1;min-height:100px;background:transparent;border:0;padding:0;resize:none;color:inherit;font-size:14px;line-height:1.4;box-shadow:none!important;cursor:text}.sticky-foot{display:flex;align-items:center;gap:4px;opacity:.25;transition:opacity .15s;padding-top:4px}.sticky:hover .sticky-foot,.sticky:focus-within .sticky-foot{opacity:1}.dotbtn{width:12px;height:12px;padding:0;border-radius:50%;border:1px solid rgba(0,0,0,.15)}.note-yellow{background:var(--note-yellow)}.note-pink{background:var(--note-pink)}.note-blue{background:var(--note-blue)}.note-green{background:var(--note-green)}.note-purple{background:var(--note-purple)}.note-orange{background:var(--note-orange)}.channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.channel-card{display:flex;flex-direction:column;gap:6px;color:var(--text)}.channel-card:hover{text-decoration:none;border-color:var(--faint)}.channel-card.dim{opacity:.6}.channel-card h2{font-size:18px}.channel-top{display:flex;justify-content:space-between;align-items:center}.concept{color:var(--muted);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.channel-nums{display:flex;gap:16px;font-size:13px;color:var(--muted)}.channel-nums b{color:var(--text);font-size:17px}.table-wrap{overflow-x:auto}table.compare{width:100%;border-collapse:collapse;font-size:14px}.compare th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.compare td{padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}.compare td.delta{color:var(--ok);font-weight:600}.compare td.stale{color:var(--danger)}.compare tr:last-child td{border-bottom:0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-grid select{width:100%}.stats-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.stats-form .wide{grid-column:1 / -1}.chart{margin:0}.chart figcaption{font-weight:700;font-size:14px;margin-bottom:6px}.chart svg{width:100%;height:180px;display:block;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{font-size:11px;fill:var(--faint)}.chart .tip{font-size:12px;font-weight:700;fill:var(--text)}.chart-empty{height:120px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:10px}.channel-card .chart svg{height:70px}.channel-card .chart .axis{display:none}.danger-zone{display:flex;justify-content:flex-end}.docs-page{display:grid;grid-template-columns:280px 1fr;align-items:start}.doc-list{display:flex;flex-direction:column;gap:2px;position:sticky;top:20px}.doc-link{display:grid;grid-template-columns:auto 1fr;column-gap:6px;padding:8px 10px;border-radius:10px;color:var(--text);font-weight:600;font-size:14px}.doc-link .muted{grid-column:1 / -1;font-weight:400}.doc-link:hover{background:var(--panel-2);text-decoration:none}.doc-link.active{background:color-mix(in srgb,var(--accent) 10%,transparent)}.doc-view{min-height:60vh;display:flex;flex-direction:column;gap:10px}.doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.doc-editor{min-height:60vh;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:14px;line-height:1.6}.md{line-height:1.65}.md h1{font-size:22px;margin:18px 0 8px}.md h2{font-size:18px;margin:22px 0 8px;display:block}.md h3{font-size:15px}.md ul,.md ol{padding-left:22px}.md li{margin:3px 0}.md li:has(>input[type=checkbox]){list-style:none;margin-left:-20px}.md input[type=checkbox]{width:auto;margin-right:8px;transform:translateY(1px);cursor:pointer;accent-color:var(--ok)}.md code{background:var(--panel-2);padding:1px 5px;border-radius:5px;font-size:13px}.md blockquote{border-left:3px solid var(--line);margin:8px 0;padding-left:12px;color:var(--muted)}.md p:first-child{margin-top:0}.chat-page{height:100vh;max-width:860px;padding-bottom:20px}.chat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:4px 2px;min-height:200px}.msg{display:flex;gap:10px;align-items:flex-start;max-width:88%}.msg.mine{align-self:flex-end;flex-direction:row-reverse}.bubble{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 13px;box-shadow:var(--shadow);min-width:0}.msg.mine .bubble{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}.bubble p{margin:0;white-space:pre-wrap}.msg-meta{font-size:11px;color:var(--faint);margin-bottom:3px;font-weight:600}.typing span{animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{50%{opacity:.2}}.chat-empty{margin:auto;text-align:center}.suggestions{display:flex;gap:8px;flex-wrap:wrap}.chip-btn{font-size:13px;padding:6px 12px;border:1px solid var(--line);background:var(--panel);border-radius:999px}.chip-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chat-input{display:flex;gap:10px;align-items:flex-end}.chat-input textarea{resize:none}.notice{border-left:4px solid var(--warn)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100;background:var(--text);color:var(--bg);padding:10px 18px;border-radius:12px;font-weight:600;font-size:14px;box-shadow:0 10px 30px #00000040;animation:pop .18s ease-out}.toast.error{background:var(--danger);color:#fff}@keyframes pop{0%{opacity:0;transform:translate(-50%,8px)}}@media (max-width: 900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--panel);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--muted);font-size:10px;font-weight:600;position:relative;padding:4px 0}.tabbar a.active{color:var(--accent)}.tabbar a:hover{text-decoration:none}.tabbar .nav-icon{font-size:17px}.tabbar .badge{position:absolute;top:-2px;right:18%;margin:0}.page{padding:18px 14px 90px;gap:14px}.page.full,.chat-page{height:calc(100vh - 64px);padding-bottom:12px}h1{font-size:22px}.grid-2,.docs-page{grid-template-columns:1fr}.stat-row{grid-template-columns:1fr 1fr}.board{grid-template-columns:repeat(4,82vw);scroll-snap-type:x mandatory}.column{scroll-snap-align:start}.field-row{grid-template-columns:1fr 1fr}.field-grid,.stats-form{grid-template-columns:1fr}.doc-list{position:static}.msg{max-width:100%}.toast{bottom:84px}.hint{display:none}}
