@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-arabic-400-normal-nteNHImy.woff2) format("woff2"),url(/assets/cascadia-code-arabic-400-normal-Oi6FZbsc.woff) format("woff");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-braille-400-normal-BAn_c25H.woff2) format("woff2"),url(/assets/cascadia-code-braille-400-normal-BfeV5eyL.woff) format("woff");unicode-range:U+2800-28FF}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-cyrillic-ext-400-normal-CP7Y9IUG.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-cyrillic-400-normal-Cdwv4UkU.woff2) format("woff2"),url(/assets/cascadia-code-cyrillic-400-normal-C2LS-hH9.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-greek-400-normal-ChD_unUD.woff2) format("woff2"),url(/assets/cascadia-code-greek-400-normal-CHxdf9XQ.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-hebrew-400-normal-BQw2hBz4.woff2) format("woff2"),url(/assets/cascadia-code-hebrew-400-normal-DrZM8vWv.woff) format("woff");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-symbols2-400-normal-CB4ZJn9r.woff2) format("woff2"),url(/assets/cascadia-code-symbols2-400-normal-Cvoy0mlV.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-vietnamese-400-normal-DBwVjDy1.woff2) format("woff2"),url(/assets/cascadia-code-vietnamese-400-normal-DYLY02_G.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-latin-ext-400-normal-OOT9GOef.woff2) format("woff2"),url(/assets/cascadia-code-latin-ext-400-normal-BM56sWlW.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cascadia Code;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cascadia-code-latin-400-normal-hfeVgAEz.woff2) format("woff2"),url(/assets/cascadia-code-latin-400-normal-BsebbazI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f7f6f4;--surface: #ffffff;--surface-2: #f0efec;--surface-3: #e9e7e3;--text: #1c1a17;--text-2: #726c64;--line: #e7e5e0;--line-strong: #d7d4ce;--accent: #d95a1d;--accent-hover: #c24f17;--accent-soft: #faeade;--ok: #237a3f;--ok-soft: #e3f2e8;--warn: #9a6b06;--warn-soft: #f7eed7;--danger: #b23227;--danger-soft: #f9e7e4;--info: #2563ac;--info-soft: #e5eef8;--agent: #7a5bd6;--agent-soft: #efeafb;--shadow-sm: 0 1px 2px rgb(24 20 16 / .05);--shadow-md: 0 6px 18px -4px rgb(24 20 16 / .09);--shadow-lg: 0 24px 64px -12px rgb(24 20 16 / .28);--r-card: 12px;--r-ctl: 9px;--mono: "Cascadia Code", ui-monospace, Consolas, Menlo, monospace;--display: "Schibsted Grotesk Variable", "Schibsted Grotesk", system-ui, sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #151412;--surface: #1e1c1a;--surface-2: #26241f;--surface-3: #2e2b26;--text: #efedea;--text-2: #9c968c;--line: #2b2925;--line-strong: #3a372f;--accent: #ee8748;--accent-hover: #f4975d;--accent-soft: #38271a;--ok: #64bd7f;--ok-soft: #21301f;--warn: #d9a53a;--warn-soft: #33290f;--danger: #e2685c;--danger-soft: #3a201c;--info: #74a8dd;--info-soft: #1c2a3a;--agent: #a78ce8;--agent-soft: #292239;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow-md: 0 6px 18px -4px rgb(0 0 0 / .4);--shadow-lg: 0 24px 64px -12px rgb(0 0 0 / .6)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 Schibsted Grotesk Variable,Schibsted Grotesk,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.25;margin:0 0 .5rem;letter-spacing:-.015em}h1{font-family:var(--display);font-size:1.6rem;font-weight:700;letter-spacing:-.025em}h2{font-family:var(--display);font-size:1.1rem;font-weight:600}h3{font-size:.98rem;font-weight:600}code{font-family:var(--mono);font-size:.86em;background:var(--surface-2);border:1px solid var(--line);padding:.08em .35em;border-radius:5px}kbd{font:600 11px var(--mono);color:var(--text-2);background:var(--surface);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;padding:1px 5px}.wrap{max-width:1120px;margin:0 auto;padding:0 1.2rem}.muted{color:var(--text-2)}.mt{margin-top:1rem}.wide{grid-column:1 / -1}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.topbar{background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:56px}.brand{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--display);font-weight:700;color:var(--text);font-size:1rem;letter-spacing:-.01em}.brand:hover{text-decoration:none}.brandmark{width:27px;height:27px;border-radius:8px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--shadow-sm)}.topnav{display:flex;align-items:center;gap:.6rem}.searchpill{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);padding:.32rem .4rem .32rem .65rem;border-radius:var(--r-ctl);cursor:pointer;font:inherit;font-size:.87rem;transition:border-color .15s,color .15s}.searchpill:hover{border-color:var(--line-strong);color:var(--text)}.searchpill kbd{margin-left:.35rem}@media (max-width: 640px){.searchpill .searchlabel,.searchpill kbd{display:none}}.avatar{width:28px;height:28px;border-radius:50%;flex:none;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;letter-spacing:.02em}.linklike{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:0}.linklike:hover{text-decoration:underline}.linkish{background:none;border:0;cursor:pointer;font:inherit;padding:0;text-align:left}.topnav>a:not(.btn){color:var(--text-2);font-size:.92rem;font-weight:500}.topnav>a:not(.btn):hover{color:var(--text);text-decoration:none}.projhead-inner{padding-top:1.3rem;margin-bottom:1.3rem}.crumb{font-family:var(--mono);font-size:.76rem;color:var(--text-2);display:flex;align-items:center;gap:.25rem;margin-bottom:.35rem}.crumb a{color:var(--text-2)}.crumb a:hover{color:var(--text);text-decoration:none}.projtitle{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.projtitle h1{margin:0}.tagline{margin:.25rem 0 0;color:var(--text-2);font-size:.97rem}.tabsbar{position:sticky;top:56px;z-index:15;margin-top:.9rem;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.4rem 0 .55rem}.tabs{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--line);padding:3px;border-radius:11px;max-width:100%;overflow-x:auto}.tabs a{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-2);padding:.32rem .72rem;border-radius:8px;white-space:nowrap;font-weight:500;font-size:.9rem;transition:color .15s,background .15s}.tabs a:hover{color:var(--text);text-decoration:none}.tabs a.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.tabs a.active svg{color:var(--accent)}main.wrap{padding:1.3rem 1.2rem 2.5rem;min-height:70vh}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem;flex-wrap:wrap}.pagehead h1,.pagehead h2{margin:0}.cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:1.1rem;align-items:start}@media (max-width: 820px){.cols{grid-template-columns:1fr}}.section{margin-top:1.6rem}.section>h2{margin-bottom:.7rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:1.05rem 1.2rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.card.narrow{max-width:440px;margin:3rem auto;padding:1.6rem 1.7rem}.card.narrow.wide-narrow{max-width:660px}.card.side{padding:.9rem 1.05rem}.card.side h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin-bottom:.55rem}.card.danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.projgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}.projcard{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:.95rem 1.1rem;color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .15s}.projcard:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none}.projcard-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.15rem}.projcard-top strong{font-size:1rem;letter-spacing:-.01em}.projcard-meta{font-size:.82rem;margin-top:.5rem;display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--mono);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.16rem .5rem;border-radius:7px;border:1px solid color-mix(in srgb,currentColor 45%,transparent);background:color-mix(in srgb,currentColor 7%,transparent);color:var(--text-2);vertical-align:middle;white-space:nowrap}.chip svg{flex:none}.chip[class*=chip-status-]:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.chip-agent{color:var(--agent);margin-left:.4rem}.chip-public{color:var(--ok)}.chip-private{color:var(--text-2)}.chip-open{color:var(--warn)}.chip-resolved{color:var(--ok)}.chip-doing{color:var(--info)}.chip-blocked{color:var(--danger)}.chip-status-idea{color:var(--text-2)}.chip-status-active{color:var(--ok)}.chip-status-paused{color:var(--warn)}.chip-status-done{color:var(--info)}.chip-status-archived,.chip-status-planned{color:var(--text-2)}.chip-status-dropped{color:var(--text-2);text-decoration:line-through}.who{white-space:nowrap;font-weight:500}label{display:block;margin:.65rem 0;font-weight:550;font-size:.9rem}label .muted{font-weight:400}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;margin-top:.3rem;padding:.52rem .7rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--text-2) 75%,transparent)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}textarea{resize:vertical;line-height:1.55}.checkline{display:inline-flex;align-items:center;gap:.45rem;font-weight:450;margin:.4rem 0;font-size:.9rem}.checkline input{width:auto;accent-color:var(--accent)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.1rem;align-items:end}.formgrid .wide,.formgrid>div:last-child{grid-column:1 / -1}@media (max-width: 640px){.formgrid{grid-template-columns:1fr}}.rowline{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-top:.55rem}.inlineform{display:inline-flex;gap:.3rem;align-items:center}.inlineform input{width:11em;margin:0}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.44rem .95rem;border-radius:var(--r-ctl);cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:550;font-size:.92rem;transition:background .15s,border-color .15s,box-shadow .15s,color .15s}.btn:hover{background:var(--surface-2);border-color:var(--line-strong);text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm),inset 0 1px #ffffff1f}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.small{padding:.24rem .62rem;font-size:.84rem}.btn.dangerbtn{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:transparent}.btn.dangerbtn:hover{background:var(--danger);border-color:var(--danger);color:#fff}.btn:disabled{opacity:.5;cursor:default}.btnrow{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-top:.85rem}.mini{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;cursor:pointer;color:var(--text-2);padding:.18rem .32rem;border-radius:7px;transition:background .12s,color .12s}.mini:hover{background:var(--surface-3);color:var(--text)}.flash{padding:.6rem .9rem;border-radius:var(--r-ctl);margin:.6rem 0;font-size:.92rem;overflow-wrap:anywhere}.flash-err{color:var(--danger);background:var(--danger-soft)}.flash-info{color:var(--info);background:var(--info-soft)}.item .itemhead,.logentry .itemhead,.milestone .itemhead{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.itemhead h2,.itemhead h3{margin:0;display:inline-flex;align-items:center;gap:.45rem}.itemtitle{font-weight:600;font-size:1rem;color:var(--text)}.itemtitle:hover{color:var(--accent);text-decoration:none}.itemmeta{font-size:.83rem;margin:.2rem 0 .45rem;color:var(--text-2)}.itemmeta a{color:var(--text-2)}.snippet{font-size:.9rem;white-space:pre-line}.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kindico{width:30px;height:30px;border-radius:9px;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);flex:none}.itemrow{display:flex;gap:.75rem;align-items:flex-start}.itemrow-body{min-width:0;flex:1}.feed{list-style:none;margin:0;padding:0}.feed li{display:flex;align-items:flex-start;gap:.55rem;padding:.42rem 0;border-bottom:1px solid var(--line);font-size:.88rem;overflow-wrap:anywhere;line-height:1.5}.feed li:last-child{border-bottom:0}.feed-ico{width:23px;height:23px;border-radius:7px;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);flex:none;margin-top:.1rem}.facts{list-style:none;margin:0;padding:0}.facts li{padding:.22rem 0;font-size:.9rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.filters{display:flex;gap:.35rem;margin:.9rem 0;flex-wrap:wrap}.filters button{padding:.22rem .75rem;border-radius:999px;border:1px solid var(--line);color:var(--text-2);font:inherit;font-size:.85rem;font-weight:500;background:transparent;cursor:pointer;transition:all .15s}.filters button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.filters button:hover:not(.active){color:var(--text);border-color:var(--line-strong)}.table{width:100%;border-collapse:collapse;font-size:.91rem}.table th{text-align:left;color:var(--text-2);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.table th,.table td{padding:.5rem .7rem .5rem 0;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr{transition:background .1s}.table tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}.table tr:last-child td{border-bottom:0}.table .actions{white-space:nowrap}.table tr.selected td{background:var(--accent-soft)}tr.inactive{opacity:.5}.tablewrap{overflow-x:auto}.milestone{padding-bottom:.85rem}.progress{height:6px;background:var(--surface-3);border-radius:999px;margin:.55rem 0 .75rem;overflow:hidden}.progressbar{height:100%;background:var(--ok);border-radius:999px;transition:width .3s ease}.task{border-bottom:1px solid var(--line)}.task:last-of-type{border-bottom:0}.taskline{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.32rem .45rem;margin:0 -.45rem;border-radius:8px;transition:background .1s}.taskline:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.task .t-title{color:var(--text);font-weight:500;font-size:.94rem}.task .t-title:hover{color:var(--accent)}.task.task-done .t-title{text-decoration:line-through;color:var(--text-2);font-weight:400}.taskbtns{margin-left:auto;display:flex;gap:.1rem;opacity:0;transition:opacity .12s}.taskline:hover .taskbtns,.taskline:focus-within .taskbtns{opacity:1}@media (hover: none){.taskbtns{opacity:1}}.tickbtn{width:19px;height:19px;border-radius:50%;border:1.5px solid var(--line-strong);background:transparent;cursor:pointer;color:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none;transition:all .15s}.tickbtn:hover{border-color:var(--ok);color:var(--ok)}.task-done .tickbtn{border-color:var(--ok);background:var(--ok);color:#fff}.taskadd{display:flex;gap:.5rem;margin-top:.6rem;align-items:center;flex-wrap:wrap}.taskadd input{flex:2 1 200px;width:auto;margin:0;background:var(--surface-2);border-color:transparent}.taskadd input:focus{background:var(--surface);border-color:var(--accent)}.taskedit{border-left:2px solid var(--line-strong);padding-left:.9rem;margin:.45rem 0 .7rem}.editform{margin-top:.6rem}.logentry .md{margin-top:.3rem}.quicklog input{margin-bottom:.45rem}.pager{display:flex;gap:.6rem;justify-content:center;margin:1rem 0}.comment{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:.65rem .95rem;margin-bottom:.6rem}.comment .md p:last-child{margin-bottom:0}.commentform{margin-top:.7rem}.commentform .btn{margin-top:.45rem}.mdarea{margin-top:.3rem}.mdarea-tabs{display:flex;gap:.2rem;align-items:center;margin-bottom:.35rem}.mdarea-tabs button{background:transparent;border:0;border-radius:7px;padding:.14rem .6rem;font:inherit;font-size:.8rem;font-weight:550;color:var(--text-2);cursor:pointer;transition:all .12s}.mdarea-tabs button.active{color:var(--text);background:var(--surface-2)}.mdarea-tabs button:hover:not(.active){color:var(--text)}.mdarea-hint{font-size:.73rem;margin-left:auto;font-weight:400}.mdarea-preview{border:1px dashed var(--line-strong);border-radius:var(--r-ctl);padding:.6rem .9rem;min-height:4rem}.md{overflow-wrap:anywhere}.md h1{font-size:1.28rem;margin-top:1.1rem}.md h2{font-size:1.12rem;margin-top:1rem}.md h3,.md h4{font-size:.98rem;margin-top:.85rem}.md p{margin:.55rem 0}.md img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}.md pre{background:#1b1916;color:#eae5dd;padding:.85rem 1.05rem;border-radius:10px;overflow-x:auto;font-family:var(--mono);font-size:.84rem;line-height:1.55}.md pre code{background:none;border:0;padding:0;color:inherit}.md blockquote{margin:.6rem 0;padding:.1rem 1rem;border-left:3px solid var(--accent);color:var(--text-2)}.md ul,.md ol{margin:.55rem 0;padding-left:1.5rem}.md li{margin:.15rem 0}.md hr{border:0;border-top:1px solid var(--line);margin:1.1rem 0}.md table{border-collapse:collapse;font-size:.91rem;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);padding:.4rem .65rem;text-align:left}.md th{background:var(--surface-2)}.md input[type=checkbox]{accent-color:var(--accent)}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r-card);padding:1.7rem 1rem;text-align:center;color:var(--text-2);cursor:pointer;transition:all .15s;font-size:.93rem;display:flex;flex-direction:column;align-items:center;gap:.4rem}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.thumb{width:40px;height:40px;object-fit:cover;border-radius:8px;border:1px solid var(--line);vertical-align:middle}.thumb-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;background:var(--surface-2);color:var(--text-2);vertical-align:middle}.tokenbox{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:var(--surface)}.tokenrow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:.4rem}.tokenrow code{font-size:.92rem;padding:.4rem .65rem;overflow-wrap:anywhere}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0c0a0866;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:13vh 1rem 0;animation:fadein .12s ease}.palette{width:100%;max-width:580px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-lg);animation:pop .14s ease}.palette-input{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.05rem;border-bottom:1px solid var(--line);color:var(--text-2)}.palette-input input{border:0;outline:0;background:none;flex:1;font:inherit;font-size:1.02rem;color:var(--text);padding:0;margin:0;box-shadow:none}.palette-input input:focus{box-shadow:none;border:0}.palette-list{max-height:330px;overflow-y:auto;padding:.4rem}.palette-item{display:flex;align-items:center;gap:.65rem;width:100%;padding:.55rem .75rem;border-radius:9px;cursor:pointer;color:var(--text);font:inherit;font-size:.94rem;font-weight:500;background:none;border:0;text-align:left}.palette-item svg{color:var(--text-2);flex:none}.palette-item.sel{background:var(--surface-2)}.palette-item .hint{margin-left:auto;color:var(--text-2);font-size:.76rem;font-weight:500}.palette-empty{padding:1.2rem;color:var(--text-2);text-align:center;font-size:.92rem}@keyframes fadein{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.98) translateY(-4px)}}.timeline{padding-top:.4rem}.day-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-2);font-weight:700;margin:1rem 0 .25rem}.timeline .day-h:first-child{margin-top:.4rem}.event{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.9rem}.event:last-child{border-bottom:0}.event-body{min-width:0;flex:1}.event-line{line-height:1.5}.event-gone{color:var(--text-2);text-decoration:line-through}.event-summary{font-size:.83rem;margin-top:.05rem}.event-actions{display:flex;gap:.5rem;margin-top:.3rem;align-items:center;flex-wrap:wrap}.feed-ico.act-created{color:var(--ok);background:var(--ok-soft)}.feed-ico.act-deleted{color:var(--danger);background:var(--danger-soft)}.feed-ico.act-restored{color:var(--info);background:var(--info-soft)}.feed-ico.act-commented{color:var(--agent);background:var(--surface-2)}.actorpick{width:auto!important;margin:0 0 0 auto!important;padding:.22rem .6rem!important;font-size:.85rem}.burst-toggle{margin:.2rem 0 .4rem 2rem}.diffwrap{max-height:340px;overflow:auto;margin-top:.45rem;border:1px solid var(--line);border-radius:9px;padding:.55rem .8rem;background:var(--surface-2)}.diffkey{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-weight:700;margin:.45rem 0 .15rem}.diffblock:first-child .diffkey{margin-top:0}.difftext{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--mono);font-size:.8rem;line-height:1.6;margin:0}.difftext ins{background:var(--ok-soft);color:var(--ok);text-decoration:none;border-radius:3px;padding:0 1px}.difftext del{background:var(--danger-soft);color:var(--danger);border-radius:3px;padding:0 1px}.histpanel{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.5rem}.histtoggle{font-size:.83rem}.histlist{margin-top:.35rem}.kindico-q{background:var(--warn-soft);color:var(--warn)}.chip-evidence{color:var(--info);max-width:220px}.chip-evidence .refchip-title,.chip-evidence{overflow:hidden;text-overflow:ellipsis}.chip-promoted{color:var(--accent)}.answercard{border-left:3px solid var(--ok)}.answered-block{margin:.6rem 0 1rem}.answered-block>summary{list-style:none;cursor:pointer}.answered-block>summary::-webkit-details-marker{display:none}.answered-block[open]>summary{margin-bottom:.6rem}.evidence-list .card{padding:.55rem .9rem;margin-bottom:.5rem}.refchip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);border-radius:8px;padding:.18rem .55rem;color:var(--text);font-size:.88rem;font-weight:500;max-width:100%}.refchip:hover{border-color:var(--accent);text-decoration:none}.refchip svg{color:var(--text-2);flex:none}.refchip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refchip-proj{color:var(--text-2);font-size:.78rem;font-weight:400;white-space:nowrap}.connections{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.55rem}.connections-head{display:flex;align-items:center;gap:.5rem}.connections-title{display:inline-flex;align-items:center;gap:.35rem;font-size:.83rem;font-weight:600}.connections-empty{font-size:.85rem;margin:.3rem 0 0}.connections-list{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem}.connection{display:flex;align-items:center;gap:.45rem;min-width:0}.connection .rel{font-size:.8rem;white-space:nowrap}.linkpicker{margin-top:.5rem;border:1px solid var(--line);border-radius:var(--r-ctl);padding:.6rem .7rem;background:var(--surface-2)}.linkpicker-search{display:flex;align-items:center;gap:.45rem;flex:1;min-width:180px;color:var(--text-2)}.linkpicker-search input{margin:0}.relpick{width:auto!important;margin:0!important}.linkpicker-results{margin-top:.35rem;max-height:220px;overflow-y:auto}.journey{display:flex;align-items:center;gap:.3rem;padding:.5rem .75rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);margin-bottom:1.1rem;overflow-x:auto;box-shadow:var(--shadow-sm)}.jstep{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:9px;flex:none;font-size:.85rem;font-weight:550;color:var(--text-2);border:1px solid transparent;background:none;cursor:default;font-family:inherit}.jstep.done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}a.jstep.done:hover{background:var(--ok-soft);text-decoration:none}.jstep.current{color:var(--text);background:var(--warn-soft);border-color:var(--line-strong)}.jstep.next{border:1.5px dashed var(--line-strong);color:var(--accent);cursor:pointer}.jstep.next:hover{border-color:var(--accent);background:var(--accent-soft)}.jstep.future{opacity:.4}.jcount{font-family:var(--mono);font-size:.7rem;background:var(--surface-3);border-radius:99px;padding:0 .45rem;color:var(--text-2)}.jarrow{color:var(--text-2);flex:none;opacity:.6}.originstrip{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem 1rem}.originstep{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.storycast{display:flex;gap:.4rem;flex-wrap:wrap}.aboutpick{width:auto!important;margin:0!important;max-width:260px;padding:.24rem .5rem!important;font-size:.85rem}.sparksbox{padding:.75rem 1rem}.sparkform{display:flex;align-items:center;gap:.6rem}.sparkform input{margin:0;flex:1;background:var(--surface-2);border-color:transparent}.sparkform input:focus{background:var(--surface);border-color:var(--accent)}.sparkicon{color:var(--warn);flex:none}.sparklist{margin-top:.6rem}.spark{display:flex;gap:.5rem;align-items:flex-start;padding:.4rem 0;border-top:1px solid var(--line);font-size:.92rem}.spark-body{min-width:0;flex:1}.spark-actions{display:inline-flex;gap:.15rem;margin-left:.4rem}.spark-pick{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:.3rem}.empty{text-align:center;padding:2.4rem 1rem}.empty-ico{width:46px;height:46px;border-radius:13px;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);margin-bottom:.7rem}.empty h3{margin-bottom:.25rem}.empty p{margin:0 0 .9rem;color:var(--text-2);font-size:.92rem}.spinner{width:24px;height:24px;margin:2.5rem auto;border-radius:50%;border:2.5px solid var(--surface-3);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.foot{padding:1.2rem;text-align:center;font-size:.82rem}.foot a{color:var(--text-2);text-decoration:none}.foot a:hover{color:var(--text)}
