@font-face{font-family:Bricolage;src:url(/assets/bricolage.woff2) format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:Public Sans;src:url(/assets/public-sans.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Plex Mono;src:url(/assets/plex-mono.woff2) format("woff2");font-weight:400 600;font-display:swap}:root{--ground:#F0F0EC;--paper:#FCFCFA;--ink:#1C2733;--ink2:#44505E;--muted:#6B7683;--accent:#2B5BD7;--accent-soft:#EAEFFC;--line:rgba(28,39,51,.16);--hair:rgba(28,39,51,.08);--amber:#9A6C0E;--amber-soft:#FBF3DF;--ok:#3E7A4E;--r:10px;--d:"Bricolage";--b:"Public Sans";--m:"Plex Mono"}*{box-sizing:border-box}body,html{margin:0;height:100%}body{background:var(--ground);color:var(--ink);font:400 14.5px/1.6 var(--b),PingFang SC,sans-serif;-webkit-font-smoothing:antialiased}a,button{color:inherit}button{font:inherit;background:none;border:0;cursor:pointer;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.btn{font:600 12.5px var(--b);padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);white-space:nowrap}.btn:hover{border-color:var(--ink)}.btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}.btn.pri:hover{filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:hover{border-color:var(--line);filter:none}.shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100vh;height:100dvh}.top{display:flex;align-items:center;gap:14px;padding:0 16px;height:52px;background:var(--paper);border-bottom:1px solid var(--hair)}.mark{font:650 14px var(--d);text-decoration:none;white-space:nowrap}.mark span{color:var(--accent)}.top .doc{flex:1 1;min-width:0;font:400 12.5px var(--b);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb{color:var(--line);font-size:13px;flex:none}.crumb-link{font:500 12.5px var(--b);color:var(--muted);text-decoration:none;flex:none}.crumb-link:hover{color:var(--accent)}.crumb-here{font:600 12.5px var(--b);color:var(--ink);flex:none}.seg{display:flex;gap:2px;padding:2px;background:var(--ground);border-radius:9px}.seg button{font:600 12px var(--b);color:var(--muted);padding:5px 14px;border-radius:7px}.seg button.on,.seg button:hover{color:var(--ink)}.seg button.on{background:var(--paper);box-shadow:0 1px 2px rgba(28,39,51,.09)}.main{display:grid;grid-template-columns:minmax(0,1fr) 372px;min-height:0}@media(max-width:900px){.main{grid-template-columns:1fr;grid-template-rows:minmax(240px,1fr) minmax(0,44vh)}.drafter{border-left:0;border-top:1px solid var(--hair);min-height:0}.top .doc{display:none}.top{gap:10px;padding:0 12px}.stage{padding:14px}.seg button{padding:5px 11px}.btn{padding:7px 11px}.mark{font-size:13px}#shareBtn,.crumb,.crumb-link,.mark span{display:none}}.stage{position:relative;overflow:auto;display:grid;place-items:center;padding:24px;min-width:0;min-height:0}.stage svg{width:auto;height:auto;max-width:min(100%,960px);max-height:100%;display:block;box-shadow:0 1px 2px rgba(28,39,51,.07),0 16px 44px rgba(28,39,51,.09);border-radius:2px;background:var(--paper)}.stage.is3d{padding:0;place-items:stretch}#gl{min-height:320px}#gl,#gl canvas{width:100%;height:100%}#gl canvas{display:block}.gl-hint{position:absolute;left:16px;bottom:14px;font:400 10.5px var(--m);color:var(--muted);background:rgba(252,252,250,.85);border-radius:6px;padding:3px 8px;pointer-events:none}.stage-note{color:var(--muted);font:400 13px var(--b)}.drafter{display:grid;grid-template-rows:minmax(0,1fr) auto;background:var(--paper);border-left:1px solid var(--hair);min-width:0;position:relative}.flow{overflow-y:auto;padding:18px 18px 6px;scroll-behavior:smooth}.msg{margin:0 0 18px;animation:in .28s ease-out both}@keyframes in{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}@media(prefers-reduced-motion:reduce){.msg{animation:none}}.who{display:block;margin:0 0 4px;font:500 9px/1 var(--m);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.msg.you .who{color:var(--accent)}.msg.checks .who{color:var(--amber)}.msg .body{white-space:pre-line;color:var(--ink2);font-size:14px}.msg.you .body{color:var(--ink)}.msg.quiet .body{color:var(--muted);font-size:13px}.msg.ok .body{color:var(--ok);font-size:13px}.msg .undo{font:600 11px var(--m);color:var(--accent);margin-left:7px}.msg .undo:hover{text-decoration:underline}.dots span{display:inline-block;width:4px;height:4px;margin-right:3px;border-radius:50%;background:var(--muted);animation:blink 1.1s infinite}.dots span:nth-child(2){animation-delay:.18s}.dots span:nth-child(3){animation-delay:.36s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.chips{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin-top:9px}.chip{font:500 12.5px var(--b);text-align:left;border:1px solid var(--line);border-radius:8px;padding:5px 11px;background:var(--paper);color:var(--ink2);max-width:100%}.chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.composer{padding:0 14px 14px}.box{border:1px solid var(--line);border-radius:12px;background:var(--paper);transition:border-color .15s,box-shadow .15s}.box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}#ask{display:block;width:100%;resize:none;border:0;background:none;outline:0;font:14.5px/1.5 var(--b);color:var(--ink);padding:11px 13px 4px;max-height:132px;overflow-y:auto}#ask::placeholder{color:var(--muted)}.box-foot{display:flex;align-items:center;gap:10px;padding:4px 8px 8px 13px}.quota{flex:1 1;min-width:0;font:400 11px var(--m);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quota b{color:var(--ink);font-weight:600}.quota.spent b{color:var(--amber)}.send{font:600 12.5px var(--b);color:#fff;background:var(--accent);border-radius:8px;padding:6px 15px}.send:hover{filter:brightness(1.08)}.send:disabled{background:var(--line);color:var(--muted);cursor:default;filter:none}.scrim{position:fixed;inset:0;background:rgba(28,39,51,.42);display:none;align-items:center;justify-content:center;z-index:40;padding:20px}.scrim.on{display:flex}.modal{background:var(--paper);border-radius:16px;max-width:392px;width:100%;padding:28px 30px;box-shadow:0 24px 70px rgba(28,39,51,.3)}.modal h3{font:650 21px var(--d);margin:0 0 6px}.modal .sub{color:var(--muted);font-size:13.5px;margin:0;line-height:1.55}.modal .price{font:700 34px var(--d);margin:18px 0 2px}.modal .price small{font:400 13.5px var(--b);color:var(--muted)}.modal ul{list-style:none;margin:14px 0 20px;padding:0;display:grid;grid-gap:7px;gap:7px;font-size:13.5px;color:var(--ink2)}.modal li:before{content:"— ";color:var(--ok);font-weight:700}.modal .keep{font:400 11px var(--m);color:var(--muted);text-align:center;margin:11px 0 0}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:13.5px;border-radius:10px;padding:10px 18px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:50;max-width:min(520px,90vw)}.toast.on{opacity:1}.pbar{display:flex;align-items:center;gap:14px;padding:0 20px;height:52px;background:var(--paper);border-bottom:1px solid var(--hair)}.pwrap{max-width:1040px;margin:0 auto;padding:38px 20px 72px}.pwrap h1{font:650 25px var(--d);margin:0 0 4px}.pwrap .sub{color:var(--muted);margin:0 0 28px;font-size:14px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));grid-gap:18px;gap:18px}.card{position:relative;background:var(--paper);border:1px solid var(--hair);border-radius:12px;display:flex;flex-direction:column;transition:box-shadow .16s,border-color .16s}.card:hover{box-shadow:0 8px 24px rgba(28,39,51,.1);border-color:var(--line)}.card .th{display:grid;place-items:center;height:168px;padding:16px 18px;background:var(--ground);border-radius:11px 11px 0 0;border-bottom:1px solid var(--hair);overflow:hidden}.card .th svg{width:100%;height:100%;display:block}.th-none{font:400 11px var(--m);color:var(--muted)}.card .meta{padding:12px 14px 0}.card .nm{display:block;font:600 14px var(--b);color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .nm:hover{color:var(--accent)}.card .sub2{margin:4px 0 0;font:400 11.5px var(--m);display:flex;align-items:center;gap:7px}.card .sub2,.tag{color:var(--muted)}.tag{font:600 9.5px var(--m);letter-spacing:.1em;text-transform:uppercase;background:var(--ground);border-radius:5px;padding:2px 6px}.tag.paid{color:var(--ok);background:#EAF2EC}.card .acts{display:flex;gap:4px;padding:10px 11px 11px;opacity:0;transition:opacity .15s}.card:focus-within .acts,.card:hover .acts{opacity:1}.card .acts button{font:500 12px var(--b);color:var(--ink2);padding:5px 9px;border-radius:7px;border:1px solid transparent}.card .acts button:hover{background:var(--ground);border-color:var(--line)}.card .acts .danger:hover{color:#A8402E;border-color:#E7C9C2;background:#FBF1EF}@media(hover:none){.card .acts{opacity:1}}.empty{border:1.5px dashed var(--line);border-radius:14px;padding:56px 20px;text-align:center;color:var(--muted)}.empty a{color:var(--accent)}