:root,[data-theme=light]{--surface:#f4f1e8;--surface-raised:#fbfaf5;--surface-sunken:#e9e4d6;--ink:#101a33;--ink-muted:#4f5870;--ink-faint:#7b8296;--hairline:#101a331f;--hairline-strong:#9aa0b0;--accent:#1f5f8b;--on-accent:#fff;--accent-soft:color-mix(in oklab,var(--accent)12%,transparent);--success:#1f6b4f;--warning:#7f5a00;--danger:#a8262f;--lilac:#674a9a;--hover:#101a330f;--selected:color-mix(in oklab,var(--accent)14%,transparent);--shadow-lift:0 1px 2px #101a330f,0 16px 40px #101a331f;--code-bg:#101a330d;--buncss-light:initial;--buncss-dark: ;color-scheme:light}[data-theme=dark]{--surface:#0b1022;--surface-raised:#111834;--surface-sunken:#070b1a;--ink:#e8ecf5;--ink-muted:#9aa3bd;--ink-faint:#6b7493;--hairline:#e8ecf51a;--hairline-strong:#4d5778;--accent:#8fd3f4;--on-accent:#070b1a;--success:#79d9ad;--warning:#f0c46a;--danger:#ff9a9a;--lilac:#c6aef2;--hover:#e8ecf50f;--shadow-lift:0 1px 2px #00000080,0 16px 48px #0000008c;--code-bg:#e8ecf50f;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}:root{--font-display:"Noto Sans Thai","Noto Sans",system-ui,sans-serif;--font-text:"Sarabun","Noto Sans Thai",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--radius-s:4px;--radius-m:8px;--radius-l:14px;--radius-pill:999px;--dur-fast:.14s;--dur-base:.26s;--ease-out:cubic-bezier(.16,1,.3,1);--top:42px;--status:26px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--surface);color:var(--ink);font:400 13px/1.5 var(--font-display);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::selection{background:color-mix(in oklab,var(--accent)30%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--hairline-strong)transparent}.btn{display:inline-flex;border-radius:var(--radius-pill);border:1px solid var(--hairline-strong);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast);background:0 0;align-items: center;gap:6px;height:28px;padding:0 12px;font-weight:500}.btn:hover{background:var(--hover);border-color:var(--ink-muted)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:color-mix(in oklab,var(--accent)86%,var(--ink))}.btn.danger{color:var(--danger);border-color:color-mix(in oklab,var(--danger)50%,transparent)}.btn.big{height:38px;padding:0 20px;font-size:14px}.badge{border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);display:inline-grid;place-items: center;min-width:16px;height:16px;padding:0 5px;font-size:10.5px;font-weight:600}.btn.primary .badge{background:var(--on-accent);color:var(--accent)}.icon-btn{display:inline-grid;border-radius:var(--radius-s);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;place-items: center;width:26px;height:26px}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn svg,.btn svg{flex:none;width:15px;height:15px}.input{border-radius:var(--radius-m);border:1px solid var(--hairline);background:var(--surface-raised);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);width:100%;height:30px;padding:0 10px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input.big{height:40px;padding:0 14px;font-size:15px}.chip{border-radius:var(--radius-pill);border:1px solid var(--hairline-strong);cursor:pointer;color:var(--ink-muted);background:0 0;height:22px;padding:0 9px;font-size:11.5px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.pill{display:inline-flex;border-radius:var(--radius-pill);letter-spacing:.02em;align-items: center;gap:5px;height:20px;padding:0 8px;font-size:11px;font-weight:600}.pill.live{color:var(--success);background:color-mix(in oklab,var(--success)14%,transparent)}.pill.live:before{content:"";animation:2s infinite pulse;background:currentColor;border-radius:50%;width:6px;height:6px}.pill.off{color:var(--ink-muted);background:var(--hover)}@keyframes pulse{50%{opacity:.35}}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;font-weight:600}.muted{color:var(--ink-muted)}.err{color:var(--danger)}.spin{border:2px solid var(--hairline-strong);border-top-color:var(--accent);animation:.7s linear infinite spin;display:inline-block;border-radius:50%;width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fade var(--dur-base)var(--ease-out)}@keyframes fade{0%{opacity:0;transform:translateY(4px)}}.front{display:grid;background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft),transparent 70%),var(--surface);place-items: center;min-height:100%;padding:48px 16px}.front-inner{width:min(960px,100%)}.brand{display:flex;align-items:baseline;gap:10px}.brand-mark{font:300 34px/1 var(--font-display);letter-spacing:-.01em}.brand-mark b{color:var(--accent);font-weight:600}.gate{display:grid;gap:18px;width:min(380px,100%)}.gate form{display:grid;gap:10px}.crumbs{display:flex;color:var(--ink-muted);align-items: center;gap:6px}.crumbs button{border-radius:var(--radius-s);cursor:pointer;color:inherit;background:0 0;border:0;padding:2px 4px}.crumbs button:hover{color:var(--ink);background:var(--hover)}.crumbs .sep{opacity:.5}.front h1{font:400 28px/1.3 var(--font-display);margin:14px 0 22px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.card{position:relative;text-align:left;border:1px solid var(--hairline);border-radius:var(--radius-l);background:var(--surface-raised);cursor:pointer;overflow:hidden;display:grid;transition:transform var(--dur-base)var(--ease-out),box-shadow var(--dur-base),border-color var(--dur-fast);gap:6px;min-height:108px;padding:16px}.card:hover{box-shadow:var(--shadow-lift);border-color:var(--hairline-strong);transform:translateY(-2px)}.card .title{font:500 16px/1.35 var(--font-display)}.card .sub{color:var(--ink-muted);font-size:12px}.card.world{grid-template-rows:92px auto;min-height:168px;padding:0}.card.world .bg{background:var(--surface-sunken)center/cover no-repeat;position:relative}.card.world .bg:after{content:"";position:absolute;background:linear-gradient(to bottom,transparent 40%,color-mix(in oklab,var(--surface-raised)85%,transparent));inset:0}.card.world .body{display:grid;gap:4px;padding:10px 14px 14px}.card .corner{position:absolute;z-index:1;top:10px;right:10px}.card.dim{opacity:.72}.overlay{position:fixed;display:grid;z-index:50;animation:fade var(--dur-fast);background:#070b1a66;place-items: center;padding:16px;inset:0}.dialog{overflow:auto;background:var(--surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-l);box-shadow:var(--shadow-lift);display:grid;gap:14px;width:min(440px,100%);max-height:calc(100vh - 32px);padding:20px}.dialog.wide{width:min(1100px,100%)}.dialog h2{font:500 18px/1.3 var(--font-display);margin:0}.dialog .actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.userlist{display:grid;overflow:auto;gap:4px;max-height:240px}.userlist button{display:flex;border-radius:var(--radius-m);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;justify-content:space-between;align-items: center;height:34px;padding:0 12px}.userlist button:hover{background:var(--hover)}.userlist button.on{border-color:var(--accent);background:var(--accent-soft)}.results{display:grid;overflow:auto;gap:2px;max-height:50vh}.results .row{display:grid;grid-template-columns:1fr auto;border-radius:var(--radius-s);align-items: center;gap:8px;padding:6px 8px}.results .row:hover{background:var(--hover)}.results .row .msg{grid-column:1/-1;color:var(--ink-muted);font-size:12px}.tag{border-radius:var(--radius-pill);background:var(--hover);color:var(--ink-muted);padding:1px 7px;font-size:11px;font-weight:600}.tag.new,.tag.created{color:var(--success);background:color-mix(in oklab,var(--success)14%,transparent)}.tag.updated,.tag.moved{color:var(--accent);background:var(--accent-soft)}.tag.conflict,.tag.error,.tag.missing{color:var(--danger);background:color-mix(in oklab,var(--danger)12%,transparent)}.tag.needs-confirm,.tag.remote-newer,.tag.readonly{color:var(--warning);background:color-mix(in oklab,var(--warning)14%,transparent)}.diff{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-height:0}.diff .side{border:1px solid var(--hairline);border-radius:var(--radius-m);overflow:auto;background:var(--surface);max-height:60vh}.diff .side h3{position:sticky;font:600 12px/1 var(--font-display);background:var(--surface-raised);border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;margin:0;padding:8px 12px;top:0}.diff pre{font:12.5px/1.6 var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:0;padding:8px 0}.diff .ln{display:block;padding:0 12px}.diff .ln.add{background:color-mix(in oklab,var(--success)16%,transparent)}.diff .ln.del{background:color-mix(in oklab,var(--danger)14%,transparent)}.app{display:grid;grid-template-rows:var(--top)1fr var(--status);height:100%}.topbar{display:flex;border-bottom:1px solid var(--hairline);background:var(--surface-raised);align-items: center;gap:10px;min-width:0;padding:0 10px 0 12px}.topbar .brand-mark{font-size:17px}.topbar .crumbs{overflow:hidden;white-space:nowrap;min-width:0}.topbar .spacer{flex:1}.topbar .who{color:var(--ink-muted);white-space:nowrap;font-size:12px}.main{display:grid;grid-template-columns:var(--left,248px)1fr var(--right,288px);min-height:0}.main.no-left{--left:0px}.main.no-right{--right:0px}.pane{overflow:hidden;display:flex;background:var(--surface-raised);flex-direction:column;min-height:0}.pane.left{border-right:1px solid var(--hairline)}.pane.right{border-left:1px solid var(--hairline)}.pane-head{display:flex;align-items: center;gap:4px;padding:8px 8px 6px 12px}.pane-head .eyebrow{flex:1}.pane-body{overflow:auto;flex:1;padding:0 6px 12px}.statusbar{display:flex;border-top:1px solid var(--hairline);background:var(--surface-raised);color:var(--ink-muted);align-items: center;gap:14px;padding:0 12px;font-size:11.5px}.statusbar .spacer{flex:1}.dot{display:inline-block;border-radius:50%;flex:none;width:7px;height:7px}.dot.modified,.dot.local{background:var(--accent)}.dot.remote{background:var(--lilac)}.dot.conflict,.dot.missing{background:var(--danger)}.dot.synced{background:0 0}.search{padding:0 6px 6px}.tree{list-style:none;margin:0;padding:0}.tree ul{list-style:none;border-left:1px solid var(--hairline);margin:0 0 0 9px;padding:0 0 0 12px}.row{display:flex;border-radius:var(--radius-s);cursor:pointer;color:var(--ink);user-select:none;position:relative;align-items: center;gap:6px;height:26px;padding:0 6px}.row:hover{background:var(--hover)}.row.on{background:var(--selected)}.row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.row .chev svg,.group-title .chev svg{width:12px;height:12px}.row .chev{color:var(--ink-faint);transition:transform var(--dur-fast);flex:none;width:12px}.row .chev.open{transform:rotate(90deg)}.row.folder .name{color:var(--ink-muted);font-weight:500}.row .tools{display:none;gap:2px}.row:hover .tools{display:flex}.row .tools .icon-btn{width:20px;height:20px}.row.drop{outline:1px dashed var(--accent)}.row .lock{color:var(--ink-faint)}.rename{border:1px solid var(--accent);border-radius:var(--radius-s);background:var(--surface);outline:none;width:100%;height:22px;padding:0 6px}.center{display:flex;background:var(--surface);flex-direction:column;min-height:0}.doc-head{display:flex;border-bottom:1px solid var(--hairline);align-items: center;gap:8px;height:38px;padding:0 12px}.doc-head .path{color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px}.doc-head .path b{color:var(--ink-muted);font-weight:500}.seg{display:inline-flex;border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:2px}.seg button{border-radius:var(--radius-pill);cursor:pointer;color:var(--ink-muted);background:0 0;border:0;height:22px;padding:0 10px;font-size:12px}.seg button.on{background:var(--selected);color:var(--ink)}.doc-scroll{overflow:auto;position:relative;flex:1}.doc-col{max-width:760px;margin:0 auto;padding:28px 40px 30vh}.doc-title{outline:none;font:500 30px/1.25 var(--font-display);color:var(--ink);background:0 0;border:0;width:100%;margin:0 0 14px;padding:0}.empty{display:grid;color:var(--ink-faint);text-align:center;place-items: center;gap:10px;height:100%;padding:24px}.empty kbd{font:11px var(--font-mono);border:1px solid var(--hairline-strong);border-radius:4px;padding:1px 5px}.cm-editor{font:400 16px/1.75 var(--font-text);background:0 0}.cm-editor.cm-focused{outline:none}.cm-scroller{font-family:inherit;line-height:inherit;overflow:visible!important}.cm-content{caret-color:var(--accent);padding:0}.cm-line{padding:0}.cm-cursor{border-left:2px solid var(--accent)!important}.cm-selectionBackground,.cm-focused .cm-selectionBackground{background:color-mix(in oklab,var(--accent)22%,transparent)!important}.cm-activeLine{background:0 0}.cm-h1{font:600 1.6em/1.4 var(--font-display)}.cm-h1-line{border-bottom:1px solid var(--hairline);padding-top:.6em!important}.cm-h2{font:600 1.32em/1.4 var(--font-display)}.cm-h3{font:600 1.14em/1.4 var(--font-display)}.cm-h4,.cm-h5,.cm-h6{font:600 1em/1.4 var(--font-display)}.cm-mark{color:var(--ink-faint)}.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-strike{text-decoration:line-through;color:var(--ink-muted)}.cm-code{font-family:var(--font-mono);background:var(--code-bg);border-radius:3px;padding:1px 3px;font-size:.86em}.cm-codeblock{font-family:var(--font-mono);background:var(--code-bg);font-size:.86em}.cm-quote{color:var(--ink-muted);font-style:italic}.cm-url,.cm-mdlink{color:var(--accent)}.cm-wiki{color:var(--accent);background:var(--accent-soft);cursor:pointer;border-radius:4px;padding:0 2px}.cm-wiki.broken{color:var(--danger);background:color-mix(in oklab,var(--danger)10%,transparent)}.cm-wiki.white{color:var(--success);background:color-mix(in oklab,var(--success)10%,transparent)}.cm-wiki.status{color:var(--lilac);background:color-mix(in oklab,var(--lilac)12%,transparent)}.cm-secret-line{background:color-mix(in oklab,var(--lilac)8%,transparent)}.cm-tooltip.cm-tooltip-autocomplete{border:1px solid var(--hairline);border-radius:var(--radius-m);background:var(--surface-raised);box-shadow:var(--shadow-lift);overflow:hidden;font:13px var(--font-display)}.cm-tooltip-autocomplete>ul{max-height:280px!important}.cm-tooltip-autocomplete>ul>li{padding:4px 10px!important}.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--selected)!important;color:var(--ink)!important}.cm-completionDetail{color:var(--ink-faint);margin-left:8px;font-size:11.5px;font-style:normal}.cm-completionIcon{display:none}.cm-placeholder{color:var(--ink-faint)}.prose{font:400 16px/1.75 var(--font-text)}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-display);margin:1.4em 0 .5em;font-weight:600;line-height:1.35}.prose h1{border-bottom:1px solid var(--hairline);padding-bottom:.2em;font-size:1.6em}.prose h2{font-size:1.32em}.prose h3{font-size:1.14em}.prose p{margin:0 0 .9em}.prose img,.prose video{border-radius:var(--radius-m);display:block;max-width:100%;margin:.6em 0}.prose code{font:.86em var(--font-mono);background:var(--code-bg);border-radius:3px;padding:1px 4px}.prose pre{background:var(--code-bg);border-radius:var(--radius-m);overflow:auto;padding:12px 14px}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:3px solid var(--hairline-strong);color:var(--ink-muted);margin:0 0 1em;padding-left:14px}.prose table{border-collapse:collapse;margin:0 0 1em}.prose th,.prose td{border:1px solid var(--hairline);padding:4px 10px}.prose hr{border:0;border-top:1px solid var(--hairline);margin:1.6em 0}.prose a.wiki{color:var(--accent);text-decoration:none;background:var(--accent-soft);cursor:pointer;border-radius:4px;padding:0 3px}.prose a.wiki.broken{color:var(--danger);background:color-mix(in oklab,var(--danger)10%,transparent)}.prose .status{color:var(--lilac);font-weight:600}.prose .secret{border-left:3px solid var(--lilac);background:color-mix(in oklab,var(--lilac)7%,transparent);border-radius:0 var(--radius-m)var(--radius-m)0;margin:0 0 1em;padding:8px 14px}.prose .secret:before{content:"Secret";display:block;font:600 11px var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--lilac);margin-bottom:4px}.prose .page-embed{border:1px dashed var(--hairline-strong);border-radius:var(--radius-m);color:var(--ink-muted);padding:10px 14px}.hover-card{position:fixed;z-index:60;display:grid;grid-template-columns:44px 1fr;background:var(--surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-m);box-shadow:var(--shadow-lift);pointer-events:none;animation:fade var(--dur-fast);align-items: center;gap:10px;width:240px;padding:10px}.hover-card .thumb{border-radius:var(--radius-s);background:var(--surface-sunken)center/cover;width:44px;height:44px}.hover-card b{display:block;font-weight:600}.hover-card span{color:var(--ink-muted);font-size:12px}.section{border-bottom:1px solid var(--hairline);display:flex;flex-direction:column;min-height:0}.section.grow{flex:1}.section>.pane-head{cursor:pointer}.outline .row{height:24px;font-size:12.5px}.outline .row.h1{font-weight:600}.outline .row.cur{background:var(--selected)}.outline .row.dragging{opacity:.4}.outline .row.drop-above{box-shadow:inset 0 2px 0 var(--accent)}.refs-chips{display:flex;flex-wrap:wrap;gap:4px;padding:0 8px 8px}.group-title{display:flex;cursor:pointer;border-radius:var(--radius-s);user-select:none;align-items: center;gap:6px;height:24px;padding:0 6px;font-weight:600}.group-title:hover{background:var(--hover)}.group-title .count{color:var(--ink-faint);font-size:11.5px;font-weight:400}.sub-title{color:var(--ink-faint);text-transform:lowercase;padding:2px 6px 2px 24px;font-size:11px}.ref{display:flex;border-radius:var(--radius-s);cursor:grab;align-items: center;gap:8px;height:26px;padding:0 6px 0 22px}.ref:hover{background:var(--hover)}.ref .thumb{background:var(--surface-sunken)center/cover;border-radius:3px;flex:none;width:18px;height:18px}.ref .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.ref.used .name:after{content:" •";color:var(--accent)}.files .ref .thumb{width:22px;height:22px}.upload-list{display:grid;gap:4px;padding:6px 8px}.upload-item{display:grid;gap:3px;font-size:12px}.upload-item .bar{background:var(--hairline);overflow:hidden;border-radius:2px;height:3px}.upload-item .bar i{display:block;background:var(--accent);transition:width var(--dur-fast);height:100%}.upload-item.done .bar i{background:var(--success)}.upload-item.failed .bar i{background:var(--danger)}.toast{position:fixed;z-index:70;border-radius:var(--radius-pill);background:var(--ink);color:var(--surface);box-shadow:var(--shadow-lift);animation:fade var(--dur-base)var(--ease-out);max-width:calc(100vw - 32px);padding:8px 14px;font-size:12.5px;bottom:38px;left:50%;transform:translate(-50%)}.toast.bad{background:var(--danger);color:#fff}.drop-hint{position:absolute;border:2px dashed var(--accent);border-radius:var(--radius-l);background:var(--accent-soft);display:grid;font:500 15px var(--font-display);color:var(--accent);pointer-events:none;z-index:5;place-items: center;inset:8px}@media (max-width:900px){.main{grid-template-columns:var(--left,220px)1fr}.pane.right{display:none}.doc-col{padding:20px 18px 30vh}}@media (max-width:640px){.main{grid-template-columns:1fr}.main.show-left .pane.left{display:flex;position:fixed;inset:var(--top)0 var(--status)0;z-index:20}.pane.left,.topbar .who,.topbar .hide-sm{display:none}}@media (prefers-reduced-motion:reduce){*{animation-duration:1ms!important;transition-duration:1ms!important}}
