.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--bg:#0A0B0D;--bg-elev:#121418;--bg-elev2:#1A1E24;--surface:#070809;--line:rgba(255,255,255,.07);--line-strong:rgba(255,255,255,.13);--ink:#E7EAE5;--ink-dim:#868B83;--ink-faint:#565B54;--accent:#9D7BFF;--accent-soft:rgba(157,123,255,.14);--accent-line:rgba(157,123,255,.32);--ember:#E8B339;--ember-soft:rgba(232,179,57,.14);--npc:#9AAFC0;--good:#34D399;--warn:#E8B339;--danger:#F87171;--danger-btn:#C0395A;--shadow:0 16px 44px -14px rgba(0,0,0,.7);--shadow-sm:0 2px 12px -4px rgba(0,0,0,.6);--r:8px;--r-sm:5px;--r-lg:12px;--serif:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,"SF Mono","Cascadia Code","JetBrains Mono",Menlo,monospace;--maxw:1410px}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#F4F6F1;--bg-elev:#FFFFFF;--bg-elev2:#F7F9F4;--surface:#EDEFE8;--line:rgba(20,30,15,.09);--line-strong:rgba(20,30,15,.16);--ink:#161813;--ink-dim:#565B54;--ink-faint:#8A8F86;--accent:#6A45C2;--accent-soft:rgba(106,69,194,.12);--accent-line:rgba(106,69,194,.3);--ember:#B07A12;--ember-soft:rgba(176,122,18,.13);--npc:#3D6699;--good:#2E9E6B;--warn:#B07A12;--danger:#C0395A;--shadow:0 12px 36px -14px rgba(40,60,20,.2);--shadow-sm:0 2px 10px -3px rgba(40,60,20,.14)}}:root[data-theme=light]{--bg:#F4F6F1;--bg-elev:#FFFFFF;--bg-elev2:#F7F9F4;--surface:#EDEFE8;--line:rgba(20,30,15,.09);--line-strong:rgba(20,30,15,.16);--ink:#161813;--ink-dim:#565B54;--ink-faint:#8A8F86;--accent:#6A45C2;--accent-soft:rgba(106,69,194,.12);--accent-line:rgba(106,69,194,.3);--ember:#B07A12;--ember-soft:rgba(176,122,18,.13);--npc:#3D6699;--good:#2E9E6B;--warn:#B07A12;--danger:#C0395A;--shadow:0 12px 36px -14px rgba(40,60,20,.2);--shadow-sm:0 2px 10px -3px rgba(40,60,20,.14)}:root[data-theme=dark]{--bg:#0A0B0D;--bg-elev:#121418;--bg-elev2:#1A1E24;--surface:#070809;--line:rgba(255,255,255,.07);--line-strong:rgba(255,255,255,.13);--ink:#E7EAE5;--ink-dim:#868B83;--ink-faint:#565B54;--accent:#9D7BFF;--accent-soft:rgba(157,123,255,.14);--accent-line:rgba(157,123,255,.32);--ember:#E8B339;--ember-soft:rgba(232,179,57,.14);--npc:#9AAFC0;--good:#34D399;--warn:#E8B339;--danger:#F87171;--shadow:0 16px 44px -14px rgba(0,0,0,.7);--shadow-sm:0 2px 12px -4px rgba(0,0,0,.6)}*{box-sizing:border-box}html,body{margin:0;padding:0}html,body{overflow-x:clip}html{background-attachment:fixed;background:radial-gradient(720px 420px at 8% -6%,var(--accent-soft),transparent 62%),linear-gradient(118deg,transparent 42%,var(--accent-soft) 50%,transparent 58%),radial-gradient(900px 600px at 100% 110%,rgba(0,0,0,.5),transparent 60%),var(--bg)}body{color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}a{color:var(--accent);text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px;border:2px solid transparent;background-clip:content-box}.app{position:relative;z-index:1;display:grid;grid-template-columns:236px 1fr;min-height:100vh}.app--solo{grid-template-columns:1fr}.rail{background:var(--bg-elev);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow-y:auto}.rail-head{display:contents}.rail-close{display:none}.brand{display:flex;flex-direction:column;gap:2px;padding:4px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:12px}.brand .mark{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.brand .mark em{font-style:normal;color:var(--accent)}.brand .sub{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.12em;text-transform:uppercase;margin-top:6px}.brand .ver{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.08em;margin-top:3px}.navitem{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-sm);color:var(--ink-dim);font-size:14px;text-align:left;transition:background .15s,color .15s}.navitem:hover{background:var(--line);color:var(--ink)}.navitem[aria-current=true]{background:var(--accent-soft);color:var(--ink);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.navitem .ic{width:18px;height:18px;flex:none;opacity:.85}.navitem[aria-current=true] .ic{opacity:1;color:var(--accent)}.navitem .badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--ember);color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;flex:none}.navitem .badge.danger{background:var(--danger)}.rail .spacer{flex:1}.rail .role{margin-top:8px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-dim);cursor:pointer;transition:background .15s}.rail .role:hover{background:var(--line)}.rail .role .av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--ember));flex:none}.rail .role b{color:var(--ink);font-weight:600}.tag-role{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.menu-toggle,.scrim{display:none}.main{min-width:0;padding:26px 34px 60px;max-width:var(--maxw);width:100%;margin:0 auto}.view{display:none}.view[hidden=false]{display:block;animation:fade .35s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap}.topbar h1{font-family:var(--serif);font-size:30px;font-weight:600;letter-spacing:-.015em;margin:0;text-wrap:balance}.topbar .lede{color:var(--ink-dim);font-size:14px;margin-top:3px;max-width:54ch;line-height:1.5}.tools{display:flex;align-items:center;gap:10px}.dock{display:flex;align-items:center;gap:10px;padding:7px 8px 7px 14px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);flex:0 0 auto;width:auto}.appbar-right{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}.appbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}@media(max-width:980px){.appbar{justify-content:space-between}}.dock .bal{display:flex;align-items:baseline;gap:6px}.dock .bal .n{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ember);font-variant-numeric:tabular-nums}.dock .bal .u{font-size:11px;color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase}.dock .ico-btn{padding:7px 11px;border-radius:7px;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:6px;transition:filter .15s,background .15s}.dock .ico-btn:hover{filter:brightness(1.08)}.btn-store{background:var(--bg-elev2);color:var(--ink-dim)}.btn-store:hover{background:var(--line)}.theme-toggle{width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--bg-elev);display:flex;align-items:center;justify-content:center;color:var(--ink-dim)}.theme-toggle:hover{background:var(--bg-elev2)}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm)}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.eyebrow:before{content:"// ";opacity:.55}.eyebrow-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px}.eyebrow-row .eyebrow{margin:0}.kicker{font-family:var(--mono);font-size:12px;color:var(--accent);font-weight:600;letter-spacing:.02em}.muted{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.serif{font-family:var(--serif)}.mono{font-family:var(--mono)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:600;border:1px solid var(--line-strong);background:var(--bg-elev2);color:var(--ink-dim)}.chip.teal{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft)}.chip.ember{color:var(--ember);border-color:var(--ember-soft);background:var(--ember-soft)}.chip.good{color:var(--good);border-color:#4fb58b4d;background:#4fb58b1f}.chip.danger{color:var(--danger);border-color:#d4634a4d;background:#d4634a1f}.chip.gold{color:var(--ember);border-color:#e8b33966;background:#e8b3391f}.btn{padding:10px 18px;border-radius:var(--r-sm);font-weight:600;font-size:14px;background:var(--accent);color:#fff;transition:filter .15s;display:inline-flex;align-items:center;gap:8px}.btn:hover{filter:brightness(1.07)}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:hover{filter:none}.btn.ghost{background:var(--bg-elev2);color:var(--ink);border:1px solid var(--line-strong)}.btn.ghost:hover{background:var(--line)}.btn.ember{background:var(--ember);color:#1b0814}.btn.danger{background:var(--danger-btn);color:#fff}.btn.danger:hover{filter:brightness(.94)}.btn.danger:disabled:hover{filter:none}.btn.sm{padding:7px 13px;font-size:13px}select.lang-switch{width:auto;background:var(--bg-elev2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:5px 22px 5px 10px;font-size:13px;font-weight:600;height:31px;cursor:pointer}select.lang-switch:hover{background:var(--line)}hr.rule{border:none;border-top:1px solid var(--line);margin:20px 0}.grid-sc{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.sc-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .18s,border-color .18s}.sc-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}.sc-cover{height:132px;position:relative;overflow:hidden}.sc-cover svg{width:100%;height:100%;display:block}.sc-cover .ribbon{position:absolute;top:10px;left:10px}.sc-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:9px;flex:1}.sc-body h3{font-family:var(--serif);font-size:19px;font-weight:600;margin:0;letter-spacing:-.01em;line-height:1.2}.sc-body .by{font-size:12px;color:var(--ink-faint)}.sc-body .desc{font-size:13.5px;color:var(--ink-dim);line-height:1.5;flex:1}.sc-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:2px}.sc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:13px;border-top:1px solid var(--line);flex-wrap:wrap;row-gap:8px}.sc-foot .pts{font-size:12px;color:var(--ink-faint);font-family:var(--mono)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:125;background:#060a10b8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:26px;overflow-y:auto}.overlay[open]{display:flex}.overlay>.card{max-height:85vh;overflow-y:auto}.sheet{background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow);width:min(680px,100%);max-height:90vh;overflow-y:auto;padding:26px 28px 30px}.sheet h2{font-family:var(--serif);font-size:26px;font-weight:600;margin:0 0 4px;letter-spacing:-.01em}.sheet .scname{color:var(--ember);font-size:13px;font-weight:600;letter-spacing:.04em}.steprow{display:flex;gap:8px;margin:22px 0 18px}.step{flex:1;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);display:flex;flex-direction:column;gap:2px;background:var(--bg-elev2)}.step .n{font-size:11px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase}.step .t{font-size:13.5px;font-weight:600;color:var(--ink-dim)}.step.done{border-color:var(--accent-soft);background:var(--accent-soft)}.step.done .t{color:var(--ink)}.step.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--ink-dim);margin-bottom:6px;font-weight:600;letter-spacing:.02em}.field label .opt{color:var(--ink-faint);font-weight:400}.field>label.with-count{display:flex;align-items:baseline;gap:6px}.ed-count{margin-left:auto;font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.ed-count.near{color:var(--warn)}.ed-count.at{color:var(--danger)}input[type=text],input[type=search],input[type=password],input[type=number],input[type=email],input[type=date],input[type=datetime-local],input:not([type]),textarea,select{width:100%;padding:11px 13px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink);font:inherit;font-size:14px;transition:border-color .15s}input[type=text]:focus,input[type=password]:focus,input[type=number]:focus,input[type=email]:focus,input[type=search]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input:not([type]):focus,textarea:focus,select:focus{border-color:var(--accent);outline:none}.field input:disabled{opacity:.55;cursor:default}input[type=date],input[type=datetime-local]{color-scheme:dark}:root[data-theme=light] input[type=date],:root[data-theme=light] input[type=datetime-local]{color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) input[type=date],:root:not([data-theme=dark]) input[type=datetime-local]{color-scheme:light}}select{color-scheme:dark}:root[data-theme=light] select{color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) select{color-scheme:light}}select option{background:var(--bg-elev);color:var(--ink)}select option:checked{background:color-mix(in srgb,var(--accent) 18%,var(--bg-elev));color:var(--ink)}textarea{resize:vertical;min-height:74px;line-height:1.5}.radio-card{display:flex;gap:13px;padding:13px 15px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);margin-bottom:10px;cursor:pointer;transition:border-color .15s,background .15s}.radio-card:hover{border-color:var(--line-strong)}.radio-card.sel{border-color:var(--accent);background:var(--accent-soft)}.radio-card .dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);flex:none;margin-top:2px;position:relative}.radio-card.sel .dot{border-color:var(--accent)}.radio-card.sel .dot:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--accent)}.radio-card .rc-body{flex:1;min-width:0}.radio-card .rc-body h4{font-family:var(--serif);font-size:16px;font-weight:600;margin:0 0 3px}.radio-card .rc-body p{font-size:13px;color:var(--ink-dim);margin:0;line-height:1.45}.seg{display:flex;gap:8px;margin-bottom:14px}.segbtn{flex:1;padding:11px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-dim);font-weight:600;font-size:13.5px;text-align:center;transition:all .15s}.segbtn.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:16px}.char-card{display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:var(--r-sm);overflow:hidden;cursor:pointer;background:var(--surface);transition:border-color .15s}.char-card:disabled{opacity:.5;cursor:default}.char-card.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.char-card .ph{flex:none;height:74px;display:flex;align-items:center;justify-content:center}.char-card .ph svg{width:100%;height:100%}.char-card .nm{flex:1;padding:8px 10px;font-size:12.5px;font-weight:600;border-top:1px solid var(--line)}.char-card .nm small{display:block;font-weight:400;color:var(--ink-faint);font-size:11px;margin-top:1px}.char-card>.nm:first-child{border-top:0}.char-card-img{flex:none;width:100%;aspect-ratio:3/2;overflow:hidden;background:var(--bg-elev2);display:block;border:0;padding:0;font:inherit;color:inherit;cursor:zoom-in}.char-card-img:focus-visible,.char-card[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sheet-foot{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.sheet-foot .hint{font-size:12.5px;color:var(--ink-faint);max-width:30ch}.chat-layout{display:grid;grid-template-columns:1fr 264px;gap:20px;align-items:start}.chat-layout-3{grid-template-columns:270px 1fr 240px}.chatwrap{display:flex;flex-direction:column;height:calc(100vh - 130px);min-height:520px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.chat-head{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--bg-elev)}.head-meta-btn{display:flex;align-items:center;gap:6px;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:default}.head-meta-btn .chev{display:none;width:16px;height:16px;flex:none;transition:transform .18s ease}.chat-head .ti{flex:1;min-width:0}.chat-head .ti h2{font-family:var(--serif);font-size:19px;font-weight:600;margin:0;line-height:1.15}.chat-head .ti p{font-size:12px;color:var(--ink-faint);margin:2px 0 0}.chat-head .wt{font-family:var(--mono);font-size:12px;color:var(--ember);border:1px solid var(--ember-soft);background:var(--ember-soft);padding:5px 10px;border-radius:7px;font-variant-numeric:tabular-nums;flex:none}.chat-head .mdl-pick,.appbar .mdl-pick{display:flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);flex:none}.chat-head .mdl-pick .mpl,.appbar .mdl-pick .mpl{font-family:var(--mono);font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em}.chat-head .mdl-pick select,.appbar .mdl-pick select{width:auto;padding:4px 6px;font-size:12.5px;background:transparent;border:none;color:var(--ink)}.chat-head .mdl-pick select:focus,.appbar .mdl-pick select:focus{outline:none}.chat-head .mdl-pick select:disabled,.appbar .mdl-pick select:disabled{opacity:.6;cursor:default}.gauges{display:flex;gap:20px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line);flex-wrap:wrap}.gauge{display:flex;flex-direction:column;gap:4px;min-width:88px}.gauge .gl{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em}.gauge .gv{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.gauge .gbar{height:3px;border-radius:2px;background:var(--line-strong);overflow:hidden}.gauge .gbar i{display:block;height:100%;background:var(--accent);border-radius:2px}.gauge.gauge-btn{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.gauge.gauge-btn:active{opacity:.75}.gauge.gauge-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gauge.gauge-btn:hover .gv{text-decoration:underline}.chat-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 22px;display:flex;flex-direction:column;gap:18px;scroll-behavior:smooth}.chat-input{border-top:1px solid var(--line);padding:10px 14px 12px;display:flex;flex-direction:column;gap:6px;background:var(--bg-elev);position:relative}.chat-input .chat-input-row{display:flex;gap:10px;align-items:flex-end}.chat-hint{font-size:11px;color:var(--ink-faint);text-align:right;padding-right:2px;-webkit-user-select:none;user-select:none}.chat-input textarea{min-height:42px;max-height:120px;flex:1}.sendbtn{align-self:stretch;padding:0 18px;background:var(--accent);color:#fff;border-radius:var(--r-sm);font-weight:600;display:flex;align-items:center;gap:8px}.sendbtn:hover{filter:brightness(1.07)}.sendbtn:disabled{opacity:.5;cursor:default}.sendbtn:disabled:hover{filter:none}.sendbtn.stop{background:var(--danger-btn)}.scroll-bottom-fab{position:absolute;right:10px;bottom:calc(100% + 10px);z-index:7;width:38px;height:38px;border-radius:50%;background:var(--bg-elev2);border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);box-shadow:var(--shadow-sm);transition:background .15s,color .15s,border-color .15s,transform .15s;animation:sbf-in .18s ease}.scroll-bottom-fab:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line);transform:translateY(-1px)}.scroll-bottom-fab:active{transform:translateY(0)}.scroll-bottom-fab svg{width:18px;height:18px;display:block}@keyframes sbf-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.scroll-bottom-fab{animation:none}}.sf-btn{align-self:stretch;width:36px;flex:none;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--bg-elev2);color:var(--ink-dim);font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center}.sf-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.sf-btn:disabled{opacity:.45;cursor:default}.sf-btn[aria-expanded=true]{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.sf-dd{position:absolute;left:0;right:0;bottom:calc(100% + 4px);top:auto;z-index:30;max-height:min(46vh,280px);overflow-y:auto;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);padding:4px;display:flex;flex-direction:column}.sf-item{display:flex;flex-direction:column;gap:1px;text-align:left;padding:7px 10px;border-radius:4px}.sf-item.on,.sf-item:hover{background:var(--bg-elev2)}.sf-item-l{font-size:13px;font-weight:600;color:var(--ink)}.sf-item.on .sf-item-l{color:var(--accent)}.sf-item-d{font-size:11.5px;color:var(--ink-dim)}.sf-badge{margin-left:6px;font-size:11.5px;color:var(--ember)}.sf-chip{align-self:flex-start;padding:2px 5px 2px 9px;line-height:1.5}.sf-chip-x{padding:0 4px;font-size:14px;line-height:1;color:inherit;opacity:.7}.sf-chip-x:hover{opacity:1}.sf-tag{font-size:11.5px;font-weight:600;font-family:var(--sans);color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:99px;padding:2px 9px;margin-bottom:6px;display:inline-block;width:fit-content}.sf-tag+.bubble{margin-top:0}@media(max-width:680px){.sf-form-grid{grid-template-columns:1fr!important}}.post{max-width:78%;display:flex;gap:13px}.post.npc{align-self:flex-start}.post.player{align-self:flex-end;flex-direction:row-reverse}.post .avatar{width:42px;height:42px;border-radius:10px;flex:none;overflow:hidden;border:1px solid var(--line-strong)}.post .avatar svg{width:100%;height:100%;display:block}.post .body{min-width:0}.post .meta{display:flex;align-items:center;gap:8px;margin-bottom:5px}.post.player .meta{justify-content:flex-end}.post .who{font-size:12.5px;font-weight:600;color:var(--ink)}.post.npc .who{color:var(--npc)}.post .when{font-size:11px;color:var(--ink-faint);font-family:var(--mono)}.avatar-inline{display:none}button.avatar{font:inherit;padding:0;background:none;cursor:zoom-in}.emo{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--ember-soft);color:var(--ember);border:1px solid transparent}.bubble{padding:13px 16px;border-radius:var(--r);line-height:1.62;font-size:15px;overflow-wrap:anywhere}.post.npc .bubble{background:var(--bg-elev);border:1px solid var(--line);font-family:var(--serif);border-top-left-radius:4px}.post.npc .npc-action{font-family:var(--sans);font-style:italic;font-size:13px;color:var(--ink-faint);margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid var(--line);line-height:1.5}.post.npc .npc-action p{margin:0}.post.npc .npc-action+p,.post.npc .npc-action+span{margin-top:2px}.post.player .bubble{background:linear-gradient(135deg,var(--accent-soft),transparent),var(--bg-elev2);color:var(--ink);border:1px solid var(--accent-line);border-left:2px solid var(--accent);border-top-right-radius:4px;font-family:var(--sans)}.post.player .bubble strong{color:var(--accent)}.post.player .retry-row{display:flex;justify-content:flex-end;margin-top:6px}.post.player .retry-row .retry{font-size:12px;opacity:.85}.post.player .retry-row .retry:hover{opacity:1}.bubble p{margin:0 0 9px}.bubble p:last-child{margin-bottom:0}.bubble strong{color:var(--ink);font-weight:700}.bubble em{font-style:italic;color:var(--ink-dim)}.bubble code{font-family:var(--mono);font-size:13px;background:var(--surface);padding:1px 6px;border-radius:5px;border:1px solid var(--line)}.post.npc .scene-img{margin-top:11px;margin-left:auto;margin-right:auto;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line-strong);max-width:340px}.post.npc .scene-img svg{width:100%;display:block}.post.npc .scene-img .cap{padding:6px 10px;font-size:11px;color:var(--ink-faint);background:var(--bg-elev2);font-family:var(--sans)}.post.narrator .scene-img{margin-top:11px;margin-left:auto;margin-right:auto;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line-strong);max-width:340px}.post.narrator .scene-img .cap{padding:6px 10px;font-size:11px;color:var(--ink-faint);background:var(--bg-elev2);font-family:var(--sans)}.post .scene-img img{width:100%;display:block;cursor:zoom-in}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;background:#060a10d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:zoom-out}.lightbox img{max-width:100%;max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);object-fit:contain;border-radius:var(--r-sm);box-shadow:var(--shadow);margin:0}.lightbox .lb-cap{max-width:min(720px,92vw);text-align:center;font-size:13px;color:var(--ink-dim)}.lightbox .lb-close{position:absolute;top:calc(10px + env(safe-area-inset-top));right:12px;width:40px;height:40px;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg-elev);color:var(--ink);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.post-actions{display:flex;gap:4px;margin-top:6px}.post.player .post-actions{justify-content:flex-end}.pa-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink-faint);cursor:pointer;padding:0;transition:background .12s,color .12s,border-color .12s}.pa-btn:hover{background:var(--bg-elev);color:var(--ink);border-color:var(--line)}.pa-btn:disabled{cursor:progress;opacity:.7}.pa-btn.trash,.pa-btn.trash:hover{color:var(--danger)}.pa-spin{display:inline-block;width:13px;height:13px;border:2px solid var(--ink-faint);border-top-color:transparent;border-radius:50%;animation:pa-spin .7s linear infinite}@keyframes pa-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pa-spin{animation:none}}.variant-bar{display:inline-flex;align-items:center;gap:2px;margin-right:6px;padding:2px 4px;background:var(--bg-elev2);border:1px solid var(--line);border-radius:8px}.var-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;border:none;background:transparent;color:var(--ink-faint);cursor:pointer;padding:0;font-size:15px;line-height:1;transition:background .12s,color .12s}.var-btn:hover:not(:disabled){background:var(--bg-elev);color:var(--ink)}.var-btn:disabled{cursor:not-allowed;opacity:.4}.var-count{font-family:var(--mono);font-size:11px;color:var(--ink-faint);min-width:28px;text-align:center;font-variant-numeric:tabular-nums}.post.player .gen-row{display:flex;justify-content:flex-end;margin-top:6px}.gen-btn{font-size:12.5px;display:inline-flex;align-items:center;gap:5px}.gen-inline{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-faint);padding:7px 13px}.edit-bubble{min-width:266px;padding:10px 12px;background:var(--bg-elev2);border:1px solid var(--accent);border-radius:var(--r);box-sizing:border-box}.edit-input{width:100%;min-width:240px;resize:vertical;max-height:40vh;min-height:calc(4.5em + 18px);box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-family:var(--sans);font-size:14px;line-height:1.5}.edit-input:focus{outline:none;border-color:var(--accent)}.edit-row{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.edit-row .btn{font-size:12.5px}.lightbox.raw-view{cursor:default;align-items:stretch;justify-content:stretch}.raw-panel{display:flex;flex-direction:column;width:min(820px,94vw);max-height:calc(100dvh - 96px);background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;margin:auto}.raw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--ink)}.raw-json{margin:0;padding:14px 16px;overflow:auto;font-family:var(--mono);font-size:12px;line-height:1.55;color:var(--ink-dim);white-space:pre;-moz-tab-size:2;tab-size:2;flex:1;min-height:0}.tok-panel{width:min(560px,94vw)}.tok-model{font-family:var(--mono);font-size:12px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-soft);padding:2px 9px;border-radius:99px;white-space:nowrap}.tok-body{padding:8px 16px 14px;overflow:auto}.tok-row{display:grid;grid-template-columns:minmax(120px,auto) 90px 1fr;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line)}.tok-row:last-child{border-bottom:none}.tok-l{font-size:13px;color:var(--ink)}.tok-t{font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink);text-align:right}.tok-d{font-size:11.5px;color:var(--ink-faint);font-family:var(--mono)}.tok-legacy .tok-d{color:var(--amber, #c77b28)}.tok-total{border-top:1px solid var(--line-strong);margin-top:2px}.tok-total .tok-l{font-weight:700}.tok-total .tok-t{font-weight:700;color:var(--accent)}.tok-search{position:relative;max-width:460px}.tok-search-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;max-height:300px;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:0 12px 32px #00000059}.tok-hit{display:block;width:100%;text-align:left;padding:9px 12px;background:none;border:none;border-bottom:1px solid var(--line);cursor:pointer;color:var(--ink);font:inherit}.tok-hit:last-child{border-bottom:none}.tok-hit:hover,.tok-hit:focus-visible{background:var(--line)}.tok-hit-t{display:flex;align-items:center;gap:8px;font-size:13.5px}.tok-hit-m{display:block;font-size:11.5px;color:var(--ink-faint);margin-top:2px}.tok-hit .sess-st{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line-strong);border-radius:99px;padding:1px 7px;flex:none}.tok-sess-line{font-size:12.5px;color:var(--ink-dim);margin:-4px 0 14px}.tok-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}.tok-filters .grp{display:flex;gap:10px;align-items:flex-end;flex-wrap:nowrap;min-width:0}.tok-filters .grp .field{margin-bottom:0;min-width:0}.tok-filters .f-sm{flex:0 0 104px}.tok-filters .f-date{flex:1 1 170px;max-width:200px;min-width:96px}.tok-filters .grp .field input{height:46px;padding-top:0;padding-bottom:0}.tok-filters .btn{height:46px;padding:0 14px;align-self:flex-end;flex:none}.tok-hidden-row{opacity:.55}.tok-hidden-badge{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line-strong);border-radius:99px;padding:1px 6px;margin-left:6px}.tok-hidden-badge.del{color:var(--amber, #c77b28)}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r-sm);overflow:hidden;flex:none}.seg button{background:var(--bg-elev2);border:none;color:var(--ink-dim);font:inherit;font-size:12px;font-weight:600;padding:4px 12px;cursor:pointer;transition:background .12s,color .12s}.seg button+button{border-left:1px solid var(--line-strong)}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--accent-soft, rgba(0,0,0,.06));color:var(--accent)}.tok-price-line{font-size:10.5px;color:var(--ink-faint);font-family:var(--mono);margin-top:2px;white-space:nowrap}.tok-chart{--tok-s1:#3987e5;--tok-s2:#d95926;--tok-s3:#199e70;--tok-s4:#c98500;--tok-s5:#d55181;--tok-s6:#008300;--tok-s7:#9085e9;--tok-s8:#e66767;--tok-lift:brightness(1.25)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .tok-chart{--tok-s1:#2a78d6;--tok-s2:#eb6834;--tok-s3:#1baf7a;--tok-s4:#eda100;--tok-s5:#e87ba4;--tok-s6:#008300;--tok-s7:#4a3aa7;--tok-s8:#e34948;--tok-lift:brightness(.93)}}:root[data-theme=light] .tok-chart{--tok-s1:#2a78d6;--tok-s2:#eb6834;--tok-s3:#1baf7a;--tok-s4:#eda100;--tok-s5:#e87ba4;--tok-s6:#008300;--tok-s7:#4a3aa7;--tok-s8:#e34948;--tok-lift:brightness(.93)}:root[data-theme=dark] .tok-chart{--tok-s1:#3987e5;--tok-s2:#d95926;--tok-s3:#199e70;--tok-s4:#c98500;--tok-s5:#d55181;--tok-s6:#008300;--tok-s7:#9085e9;--tok-s8:#e66767;--tok-lift:brightness(1.25)}.tok-chart{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-elev);padding:12px 8px 8px;margin-bottom:14px;overflow-x:auto}.tok-chart text{font-family:var(--mono);font-variant-numeric:tabular-nums}.tok-chart .tok-grid{stroke:var(--line);stroke-width:1;shape-rendering:crispEdges}.tok-chart .tok-axis{font-size:10px;fill:var(--ink-faint)}.tok-chart .tok-c1{fill:var(--tok-s1)}.tok-chart .tok-c2{fill:var(--tok-s2)}.tok-chart .tok-c3{fill:var(--tok-s3)}.tok-chart .tok-c4{fill:var(--tok-s4)}.tok-chart .tok-c5{fill:var(--tok-s5)}.tok-chart .tok-c6{fill:var(--tok-s6)}.tok-chart .tok-c7{fill:var(--tok-s7)}.tok-chart .tok-c8{fill:var(--tok-s8)}.tok-chart g.tok-col.on .tok-seg{filter:var(--tok-lift)}.tok-chart .tok-trend{stroke:var(--accent);stroke-width:2;fill:none;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}.tok-chart .tok-hit:focus{outline:none}.tok-chart .tok-hit:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tok-chart-empty{padding:16px;font-size:12.5px;color:var(--ink-dim)}.tok-chart-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 8px 2px;font-size:11.5px;color:var(--ink-dim)}.tok-key{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.tok-key-dot{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}.tok-key-line{width:12px;height:2px;border-radius:1px;display:inline-block;flex:none;background:var(--accent)}.tok-legend-note{font-size:11px;color:var(--ink-faint);padding:4px 8px 0}.tok-tt{position:fixed;z-index:60;pointer-events:none;min-width:190px;background:var(--bg-elev2);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);padding:8px 11px;font-size:12px}.tok-tt-h{font-weight:700;color:var(--ink);margin-bottom:6px}.tok-tt-row{display:flex;align-items:center;gap:7px;padding:1.5px 0}.tok-tt-key{width:12px;height:2px;border-radius:1px;flex:none}.tok-tt-l{color:var(--ink-dim);flex:1}.tok-tt-v{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.tok-tt-tot{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.tok-tt-note{color:var(--ink-faint);font-size:11px;margin-top:5px}.caret{display:inline-block;width:2px;height:1.05em;background:var(--ember);margin-left:2px;vertical-align:text-bottom;animation:blink .9s steps(2) infinite}@keyframes blink{50%{opacity:0}}.post.generating .bubble{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px}.post.generating .bubble .sf-tag{margin-bottom:0}.post.generating .gen-line{display:inline-flex;align-items:center;gap:8px}.post.generating .gen-text{font-style:italic;color:var(--ink-dim)}.post.generating .gen-text:after{content:"…";animation:ellipsis 1.4s steps(4) infinite}@keyframes ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}@media(prefers-reduced-motion:reduce){.post.generating .gen-text:after{content:"…";animation:none}.caret{animation:none}}.pp-banner{align-self:stretch;display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:var(--r);margin:4px 0}.pp-banner .ic{width:34px;height:34px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;color:#fff}.pp-banner .txt{flex:1}.pp-banner .txt .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700}.pp-banner .txt h4{font-family:var(--serif);font-size:16px;font-weight:600;margin:2px 0 0}.pp-banner .txt p{font-size:12.5px;color:var(--ink-dim);margin:3px 0 0}.pp-img{margin-top:10px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line-strong);max-width:420px}.pp-img svg{width:100%;display:block}.pp-img .cap{padding:7px 11px;font-size:11.5px;background:var(--bg-elev2);color:var(--ink-dim);display:flex;justify-content:space-between}.pp-img .cap .src{color:var(--ink-faint)}.post.narrator{max-width:94%;align-self:flex-start}.post.narrator.continued{margin-left:55px}.post.narrator .avatar.gm{background:#070809}.post.narrator .who{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}.post.narrator .metaside{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.post.narrator:not(.generating) .meta{margin-bottom:3px}.post.narrator .bubble{background:transparent;border:1px dashed var(--line-strong);font-family:var(--serif);color:var(--ink-dim);border-top-left-radius:4px}.post.npc .meta .tags{display:flex;gap:5px;flex-wrap:wrap;margin-right:4px}.emo.st{background:var(--accent-soft);color:var(--accent);border-color:transparent}.post.player .role-badge{display:none;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ember);background:var(--ember-soft);padding:2px 7px;border-radius:99px;border:1px solid var(--ember-soft);white-space:nowrap}.view[data-view=session].mode-shared .post.player .role-badge{display:inline-block}.view[data-view=session].mode-shared .post.player.me .bubble{border:1px solid var(--ember);border-left:3px solid var(--ember);box-shadow:0 0 0 1px var(--ember-soft),0 8px 24px -10px #0000008c}.view[data-view=session].mode-shared .post.player.me .who,.view[data-view=session].mode-shared .post.player.me .bubble strong{color:var(--ember)}.chat-head .gauge.eng-admin{display:none}body.is-admin .chat-head .gauge.eng-admin{display:flex}.chat-head .gauge.eng-admin .gv{color:var(--ember)}.chat-head .gauge.eng-admin .gbar i{background:var(--ember)}.chat-head .gauge.eng-admin.low .gv{color:var(--danger)}.chat-head .gauge.eng-admin.low .gbar i{background:var(--danger)}.chat-head .gauge.eng-admin.high .gv{color:var(--good)}.chat-head .gauge.eng-admin.high .gbar i{background:var(--good)}.side{display:flex;flex-direction:column;gap:14px;position:sticky;top:0}.side .card{padding:15px 16px}.side h3{font-family:var(--serif);font-size:15px;font-weight:600;margin:0 0 10px}.ctx-list{display:flex;flex-direction:column;gap:9px}.ctx-row{display:flex;gap:10px;align-items:flex-start;font-size:12.5px}.ctx-row .lbl{color:var(--ink-faint);width:84px;flex:none;font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding-top:1px}.ctx-row .val{color:var(--ink);font-weight:500}.ctx-row .val small{display:block;color:var(--ink-dim);font-weight:400;font-size:11.5px}.prog{display:flex;flex-direction:column;gap:8px;margin-top:6px}.prog .pt{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink-dim)}.prog .pt .mk{width:14px;height:14px;border-radius:50%;border:2px solid var(--line-strong);flex:none}.prog .pt.done .mk{background:var(--accent);border-color:var(--accent)}.prog .pt.cur .mk{border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft)}.prog .pt.done{color:var(--ink)}.prog .pt.cur{color:var(--ember);font-weight:600}.prog .pt.opt .mk{border-style:dashed}.char-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin-bottom:12px}.char-stats .stat{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.char-stats .stat .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.char-stats .stat .val{font-size:13.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.hpbar{display:inline-block;width:54px;height:6px;border-radius:3px;background:var(--line-strong);overflow:hidden;vertical-align:middle;margin-right:5px}.hpbar i{display:block;height:100%;background:var(--good);border-radius:3px}.sub-h{font-family:var(--serif);font-size:14px;font-weight:600;margin:14px 0 8px}.inv{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.inv li{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.inv li .it{color:var(--ink)}.inv li .qt{color:var(--ink-faint);font-family:var(--mono);font-size:11.5px;flex:none}.stat-bars{display:flex;flex-direction:column;gap:7px;margin-bottom:4px}.stat-bars .stat{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.stat-bars .stat .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.stat-bars .stat .val{font-size:14px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.bar-row{display:grid;grid-template-columns:42px 1fr 48px;align-items:center;gap:8px}.bar-row .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.bar-row .val{font-size:11.5px;font-family:var(--mono);color:var(--ink-dim);text-align:right;font-variant-numeric:tabular-nums}.bar{position:relative;height:7px;border-radius:4px;background:var(--line-strong);overflow:hidden}.bar-fill{position:absolute;inset:0 auto 0 0;height:100%;border-radius:4px;transition:width .25s ease}.bar-fill.hp{background:var(--good)}.bar-fill.mana{background:var(--accent)}.bar-fill.xp{background:var(--ember)}.npc-row{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);margin-bottom:8px}.npc-row .name{font-family:var(--serif);font-size:13.5px;font-weight:600;color:var(--ink);margin:0 0 7px}details.fold{margin-top:6px}details.fold>summary{font-family:var(--serif);font-size:13px;font-weight:600;color:var(--ink-dim);cursor:pointer;list-style:none;display:flex;align-items:center;gap:5px;padding:2px 0}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary:before{content:"▸";font-size:10px;transition:transform .12s;color:var(--ink-faint)}details.fold[open]>summary:before{transform:rotate(90deg)}details.fold>.fold-body{margin-top:4px}.journal-row{display:flex;gap:8px;padding:5px 2px;border-bottom:1px solid var(--line);align-items:baseline}.journal-row:last-child{border-bottom:none}.j-when{flex:0 0 auto;min-width:6em;font-size:.82em;color:var(--ink-dim);font-variant-numeric:tabular-nums}.j-summary-wrap{flex:1;min-width:0}.j-summary{font-size:12.5px;color:var(--ink);line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.j-summary.j-summary-open{-webkit-line-clamp:unset;overflow:visible}.j-toggle{background:none;border:none;padding:0;margin-top:2px;cursor:pointer;font-size:11px;color:var(--ink-faint);font-family:var(--serif)}.j-toggle:hover{color:var(--ink-dim)}.journal-row.j-missed .j-summary{color:var(--ink-faint);font-style:italic}.j-badge{display:inline-block;font-size:.7em;font-weight:600;letter-spacing:.04em;padding:1px 5px;border-radius:var(--r-sm);background:var(--bg-elev2);color:var(--ink-dim);border:1px solid var(--line-strong)}.rel{margin-top:8px}.rel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.rel-head .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}.rel-head .val{font-size:11.5px;font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}.trust-track{position:relative;height:7px;border-radius:4px;background:var(--line-strong);overflow:hidden}.trust-mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--ink-faint);opacity:.5}.trust-fill{position:absolute;top:0;bottom:0;border-radius:4px;transition:left .25s ease,width .25s ease}.trust-fill.pos{background:var(--good)}.trust-fill.neg{background:var(--danger)}.rel-slider{position:relative;height:28px;margin-top:9px}.rel-slider .trust-track{position:absolute;left:0;right:0;top:11px;height:7px}.rel-slider-input{position:absolute;top:0;left:0;width:100%;height:28px;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;margin:0;cursor:pointer}.rel-slider-input::-webkit-slider-runnable-track{background:transparent;height:7px;border:none}.rel-slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);cursor:pointer;box-shadow:0 1px 3px #00000040;margin-top:-4.5px}.rel-slider-input::-moz-range-track{background:transparent;height:7px;border:none}.rel-slider-input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);cursor:pointer}.rel-slider-input:focus{outline:none}.rel-slider-input:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.roster .member .st{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600}.room-set-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.room-set-list a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);color:var(--ink);font-size:13px;cursor:pointer}.room-set-list a:hover{border-color:var(--accent)}.room-set-list a .k{font-weight:600}.room-set-list a .v{color:var(--ink-faint);font-size:12px;font-variant-numeric:tabular-nums}.editor-grid{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}.ed-section{margin-bottom:18px}.ed-section>h3{font-family:var(--serif);font-size:17px;font-weight:600;margin:0 0 4px}.ed-section>.sub{font-size:13px;color:var(--ink-dim);margin:0 0 14px}.pp-list{display:flex;flex-direction:column;gap:10px}.pp-row{display:flex;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.pp-row .num{font-family:var(--mono);font-size:13px;color:var(--ink-faint);width:28px;flex:none;font-variant-numeric:tabular-nums}.pp-row .nm{flex:1;min-width:0}.pp-row .nm h4{font-size:14.5px;font-weight:600;margin:0 0 2px}.pp-row .nm p{font-size:12px;color:var(--ink-dim);margin:0;line-height:1.4}.pp-row .flags{display:flex;gap:6px;align-items:center}.pp-thumb{width:46px;height:46px;border-radius:7px;overflow:hidden;border:1px solid var(--line-strong);flex:none;background:var(--surface)}.pp-thumb svg{width:100%;height:100%;display:block}.pp-thumb.empty{display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:18px;border-style:dashed}.tag-input{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);flex-wrap:wrap;position:relative}.tag-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;font-size:12px;font-family:var(--mono);background:var(--bg-elev2);border:1px solid var(--line)}.tag-pill.at{color:var(--ember);border-color:var(--ember-soft)}.tag-pill.hash{color:var(--accent);border-color:var(--accent-soft)}.tag-pill.dol{color:var(--npc);border-color:#9cb4d640}.tag-input input{border:none;background:none;padding:4px 0;flex:1;min-width:120px}.infl{display:flex;align-items:center;gap:12px}.infl .bar{flex:1;height:6px;border-radius:3px;background:var(--line-strong);position:relative;overflow:hidden}.infl .bar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:3px}.infl .val{font-family:var(--mono);font-size:12px;color:var(--ink-dim);width:38px;text-align:right;font-variant-numeric:tabular-nums}.world-filters{margin-bottom:18px}.wf{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.wf .field{flex:1;min-width:150px;margin-bottom:0}.ev-list{display:flex;flex-direction:column;gap:12px}.ev-row{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);position:relative}.ev-row .ev-del{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--ink-faint);cursor:pointer;padding:0;transition:background .12s,color .12s,border-color .12s}.ev-row .ev-del:hover{background:var(--bg-elev2);color:var(--danger);border-color:var(--line)}.ev-row .ev-del:disabled{cursor:progress;opacity:.6}.ev-row .ev-when{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}.ev-row .wt{font-family:var(--mono);font-size:12px;color:var(--ember);font-variant-numeric:tabular-nums}.ev-row .ev-place{font-size:12px;color:var(--ink-faint)}.ev-row h4{font-family:var(--serif);font-size:15.5px;font-weight:600;margin:0 0 4px}.ev-row p{font-size:13px;color:var(--ink-dim);margin:0;line-height:1.45}.ev-row .tags{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap}.view[data-view=session]:not(.mode-shared) .shared-only{display:none!important}.view[data-view=session].mode-shared .single-only{display:none!important}.ses-list{display:flex;flex-direction:column;gap:14px;max-width:780px}.ses-card{display:flex;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-elev)}.ses-card .cover{width:64px;height:64px;border-radius:var(--r-sm);object-fit:cover;border:1px solid var(--line);flex-shrink:0}.ses-card .ses-card-body{flex:1;min-width:0}.ses-card.shared{border-color:var(--ember-soft)}.ses-card .sc-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.ses-card h3{font-size:18px;margin:0 0 6px;font-family:var(--serif)}.ses-card .sc-line{font-size:13px;color:var(--ink-dim);margin-bottom:3px}.ses-card .sc-line.faint{color:var(--ink-faint);font-size:12.5px}.ses-card .sc-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.canon-card{display:flex;gap:14px;padding:13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);margin-bottom:12px}.canon-card .th{width:62px;height:62px;border-radius:8px;overflow:hidden;border:1px solid var(--line-strong);flex:none;background:var(--surface)}.canon-card .th svg{width:100%;height:100%;display:block}.canon-card .th.empty{display:flex;align-items:center;justify-content:center;color:var(--ink-faint);border-style:dashed}.canon-card .cb{flex:1;min-width:0}.canon-card .cb h4{font-size:14px;font-weight:600;margin:0 0 3px;font-family:var(--serif)}.canon-card .cb p{font-size:12px;color:var(--ink-dim);margin:0 0 7px;line-height:1.4}.canon-card .actions{display:flex;gap:8px;align-items:center}.eco-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}.tok-meter{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.tok-meter .big{font-family:var(--mono);font-size:42px;font-weight:600;color:var(--ember);line-height:1;font-variant-numeric:tabular-nums}.tok-meter .lab{font-size:12px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase}.bar-soft{height:7px;border-radius:4px;background:var(--line-strong);overflow:hidden;margin:6px 0 4px}.bar-soft i{display:block;height:100%;background:var(--ember);border-radius:4px}.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.pkg{padding:14px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev2);text-align:center;transition:border-color .15s,transform .15s;cursor:pointer}.pkg:hover{border-color:var(--ember);transform:translateY(-2px)}.pkg .q{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.pkg .p{font-size:13px;color:var(--ember);font-weight:600;margin-top:2px}.pkg small{font-size:10.5px;color:var(--ink-faint);display:block;margin-top:3px}.ach-list{display:flex;flex-direction:column;gap:10px}.ach{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);opacity:.7}.ach-ic{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--line-strong);color:var(--ink-dim)}.ach-ic svg{width:18px;height:18px}.ach-nm{flex:1;font-size:13.5px;font-weight:600}.ach-nm small{display:block;font-weight:400;color:var(--ink-faint);font-size:11px;margin-top:1px}.room-rows{display:flex;flex-direction:column;gap:10px}.room-row{display:flex;align-items:center;gap:12px;padding:10px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.room-row .av{width:32px;height:32px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--accent),var(--ember))}.room-row .nm{flex:1;font-size:13.5px;font-weight:600}.room-row .nm small{display:block;font-weight:400;color:var(--ink-faint);font-size:11px}.room-row .rdy{font-size:11px;padding:3px 9px;border-radius:99px;font-weight:600}.room-row .rdy.yes{color:var(--good);background:#4fb58b21}.room-row .rdy.no{color:var(--ink-faint);background:var(--bg-elev2)}.split-toggle{display:flex;gap:8px;margin-top:12px}.split-toggle .segbtn{font-size:12px;padding:8px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#060a10b8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:26px}.modal[open]{display:flex}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:130;background:var(--bg-elev2);border:1px solid var(--line-strong);padding:12px 20px;border-radius:var(--r-sm);box-shadow:var(--shadow);font-size:13.5px;display:none;gap:9px;align-items:center;max-width:min(92vw,560px);text-align:center;overflow-wrap:anywhere}.toast[open]{display:flex;animation:fade .25s ease}.toast .dot{width:8px;height:8px;border-radius:50%;background:var(--good)}.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--ink-dim)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.section-title{display:flex;align-items:baseline;gap:12px;margin:34px 0 16px;border-bottom:1px solid var(--line);padding-bottom:12px}.section-title h2{font-size:20px;font-weight:700;margin:0;letter-spacing:-.01em}.section-title h2:before{content:"▸ ";color:var(--accent);font-family:var(--mono);font-weight:400}.section-title .n{font-family:var(--mono);font-size:12px;color:var(--ink-faint)}.ed-layout{display:grid;grid-template-columns:210px 1fr;gap:22px;align-items:start}.ed-tabs{display:flex;flex-direction:column;gap:5px;position:sticky;top:12px}.ed-tab{text-align:left;padding:10px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev2);color:var(--ink-dim);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.ed-tab:hover{border-color:var(--line-strong);color:var(--ink)}.ed-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.ed-tab .n{display:block;font-family:var(--mono);font-size:9.5px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}.ed-tab.active .n{color:var(--accent)}.ed-panels{min-width:0}.ed-panel{display:none}.ed-panel[open]{display:block}.ed-foot{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.ed-foot .faint{font-family:var(--mono);font-size:12px}.ed-cover-pick{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.ed-cover-opt{width:128px;height:56px;border-radius:7px;overflow:hidden;border:2px solid var(--line);cursor:pointer;flex:none}.ed-cover-opt.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.ed-cover-opt svg{width:100%;height:100%;display:block}.ed-cover-up{display:flex;align-items:center;justify-content:center;border:1px dashed var(--line-strong);color:var(--ink-faint);font-size:11px;text-align:center;flex:none;width:128px;height:56px;border-radius:7px}.ed-place-row,.ed-char-row{padding:13px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);margin-bottom:10px}.ed-row-head{display:flex;align-items:flex-end;gap:10px;margin-bottom:8px}.ed-row-head .field{margin-bottom:0}.ed-row-head .ed-del{margin-bottom:7px}.ed-row-head .ed-fold{margin-bottom:8px}.ed-row-head .ed-sw{margin-bottom:10px}.ed-row-head .ed-img-def,.ed-row-head .field.infl{margin-bottom:13px}.field.ed-f-gender{flex:.45;min-width:0}.ed-row-head .av{width:40px;height:40px;border-radius:8px;overflow:hidden;flex:none;border:1px solid var(--line)}.ed-row-head .av svg{width:100%;height:100%;display:block}.ed-row-head .nm{flex:1;min-width:0}.ed-row-head .nm b{font-size:13.5px;font-weight:600;display:block}.ed-row-head .nm small{font-size:11.5px;color:var(--ink-faint)}.ed-del{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink-dim);border-radius:6px;padding:7px 10px;font-size:14px;line-height:1;cursor:pointer;transition:all .15s}.ed-del:hover{border-color:var(--danger);color:var(--danger);background:#f871711a}.ed-fold{flex:none;border:none;background:transparent;color:var(--ink-faint);font-size:16px;line-height:1;cursor:pointer;padding:6px 3px;border-radius:5px;transition:color .15s}.ed-fold:hover{color:var(--accent)}.ed-row-mini{display:flex;align-items:center;gap:10px;cursor:pointer;min-height:46px;border-radius:6px}.ed-row-mini:hover .ed-fold{color:var(--accent)}.ed-mini-def{flex:none;font-size:11px;font-weight:600;color:var(--ink-dim);border:1px solid var(--line);border-radius:6px;padding:1px 6px}.ed-thumb{width:44px;height:44px;border-radius:7px;border:1px solid var(--line);object-fit:cover;flex:none;display:block;background:var(--surface)}.ed-thumb-ph{display:inline-flex;align-items:center;justify-content:center;font-size:17px;color:var(--ink-faint)}.ed-mini-nm{flex:1;min-width:0;font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-emos{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;align-items:center}.ed-emos .lbl{font-size:11px;color:var(--ink-faint);margin-right:2px}.ed-emo{width:30px;height:30px;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}.ed-emo svg{width:100%;height:100%;display:block}.ed-add{border:1px dashed var(--line-strong);background:transparent;color:var(--ink-dim);border-radius:var(--r-sm);padding:11px;width:100%;font-size:13px;font-weight:600;cursor:pointer;margin-top:4px}.ed-add:hover{border-color:var(--accent);color:var(--accent)}.ed-add.mini{width:auto;padding:6px 11px;font-size:12px;margin-top:0}.ed-add:disabled{opacity:.45;cursor:not-allowed}.ed-add:disabled:hover{border-color:var(--line-strong);color:var(--ink-dim)}.field.infl{min-width:170px}.field.infl label{display:flex;align-items:center;gap:5px;margin:0}.field.infl input[type=range]{margin:0}.infl-val{color:var(--accent);font-family:var(--mono);font-weight:600;font-size:12px}.ed-info{position:relative;display:inline-flex}.ed-info>summary{list-style:none;display:inline-flex;cursor:help;color:var(--ink-faint);transition:color .15s}.ed-info>summary::-webkit-details-marker{display:none}.ed-info>summary:hover{color:var(--accent)}.ed-info[open] .infl-pop{display:block}.infl-pop{display:none;position:absolute;top:calc(100% + 7px);left:-8px;z-index:60;width:min(280px,74vw);padding:9px 11px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--bg-elev2);color:var(--ink);font-size:12px;line-height:1.5;font-weight:400;text-align:left;box-shadow:0 8px 20px #00000059}@media(max-width:680px){.set-field{position:relative}.set-field .admin-pop{position:static}.set-field .admin-pop .infl-pop{left:0;right:0;width:auto;max-width:none}}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--line-strong);border-radius:3px;outline:none;padding:0;margin:9px 0 0;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);cursor:pointer;box-shadow:0 1px 3px #00000040}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);cursor:pointer}input[type=range]:focus{outline:none}input[type=range]:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft)}.ed-imgs{margin-top:4px;border-top:1px dashed var(--line);padding-top:11px}.ed-imgs-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;flex-wrap:wrap}.ed-imgs-head .lbl{font-size:12px;color:var(--ink-dim);font-weight:600;letter-spacing:.02em}.ed-img-row{display:flex;align-items:flex-end;gap:9px;margin-bottom:8px;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev2);padding:9px}.ed-img-row .field input[type=text]{height:46px}.ed-img-def{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-dim);white-space:nowrap;cursor:pointer}.ed-img-def input[type=radio]{width:auto;margin:0}.ed-img-actions{display:flex;align-items:center;gap:8px;align-self:flex-end;height:46px}.ed-img-actions>.btn{height:46px}.ed-img-item{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.ed-img-item>.ed-img-row{margin-bottom:0}.ed-rel{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.ed-rel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.ed-rel-head .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}.ed-rel-head .val{font-size:11.5px;font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}.ed-rel-slider{min-width:200px}.ed-sw{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.ed-sw input{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0}.ed-sw .track{width:42px;height:24px;border-radius:99px;background:var(--line-strong);position:relative;flex:none;transition:background .15s}.ed-sw .track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink-dim);transition:.15s}.ed-sw input:checked+.track{background:var(--accent)}.ed-sw input:checked+.track:after{left:21px;background:#0a0b0d}.ed-sw input:focus-visible+.track{outline:2px solid var(--accent-soft);outline-offset:1px}.ed-up .ed-up-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ed-up .ed-up-thumb{width:38px;height:38px;border-radius:7px;object-fit:cover;flex:none;border:1px solid var(--line-strong);background:var(--surface)}.ed-up button.ed-up-thumb{padding:0;cursor:zoom-in;overflow:hidden;display:block}.ed-up button.ed-up-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ed-up-thumb-wrap{position:relative;flex:none}.ed-up-clear{position:absolute;top:-7px;right:-7px;width:17px;height:17px;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg-elev);color:var(--ink-dim);font-size:9px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.ed-up-clear:hover{border-color:var(--danger);color:var(--danger);background:#f871711a}.ed-up-name{flex:1 1 130px;min-width:0;font-size:12px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ed-up-dl{height:46px;display:inline-flex;align-items:center;flex:none}.ed-up .ed-up-pick{cursor:pointer;flex:none;display:inline-flex;align-items:center;margin-bottom:0}.ed-up .ed-up-pick.dis{opacity:.6;pointer-events:none}.ed-up .ed-up-pick input[type=file]{display:none}.ed-up .ed-up-err,.ed-up-err{color:var(--danger);font-size:11.5px;margin-top:4px}@media(max-width:520px){.ed-img-row{gap:6px;padding:7px}.ed-up .ed-up-row{gap:6px}.ed-up .ed-up-thumb{width:34px;height:34px}.ed-up-clear{width:15px;height:15px;font-size:8px;top:-6px;right:-6px}.ed-img-actions{height:34px;gap:6px}.ed-img-actions>.btn{height:34px;padding:3px 9px;font-size:12px;white-space:nowrap}.ed-up-dl{height:34px!important;padding:3px 9px;font-size:0}.ed-up-dl svg{margin-right:0!important}.ed-up .ed-up-pick{height:34px!important;padding:3px 10px}.ed-up .ed-up-pick span{font-size:12.5px}.ed-up .ed-up-pick span:nth-child(2){display:none}.ed-img-row>.field:not(.ed-up){flex:1 1 100%}.ed-img-row .field input[type=text]{height:36px}.ed-img-def{font-size:11.5px;gap:4px}.ed-img-def input[type=radio]{width:14px;height:14px}}.proto-toggle{display:flex;align-items:center;gap:9px;width:100%;min-width:0;padding:8px 11px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;text-align:left}.proto-toggle:hover{border-color:var(--accent-soft)}.proto-toggle .pt-img{width:30px;height:30px;border-radius:6px;object-fit:cover;flex:none;border:1px solid var(--line)}.proto-toggle .pt-ph{width:30px;height:30px;border-radius:6px;flex:none;display:grid;place-items:center;background:var(--bg-elev2);color:var(--ink-faint);font-size:14px}.proto-toggle .pt-name{flex:1;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proto-toggle .pt-chev{flex:none;font-size:10px;color:var(--ink-faint)}.proto-list{margin-top:7px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--bg-elev);padding:5px;display:grid;gap:4px;max-height:250px;overflow-y:auto}.proto-it{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;border-radius:7px;cursor:pointer}.proto-it:hover{background:var(--bg-elev2)}.proto-it.sel{outline:2px solid var(--accent);outline-offset:-2px}.proto-it .pt-img{width:36px;height:36px;border-radius:7px;object-fit:cover;flex:none;border:1px solid var(--line);background:var(--surface);padding:0;overflow:hidden;cursor:zoom-in;display:block}.proto-it .pt-img img{width:100%;height:100%;object-fit:cover;display:block}.proto-it .pt-ph{width:36px;height:36px;border-radius:7px;flex:none}.proto-it .pt-name{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proto-it .pt-gen{flex:none;font-size:11.5px;color:var(--ink-faint);font-weight:400}.ed-crop{margin-top:8px;flex-basis:100%}.ed-crop-box{position:relative;width:100%;max-width:320px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);-webkit-user-select:none;user-select:none;touch-action:none}.ed-crop-box img{width:100%;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ed-crop-sq{position:absolute;border:2px solid var(--accent);box-shadow:0 0 0 9999px #00000073;cursor:move;touch-action:none}.ed-crop-handle{position:absolute;width:14px;height:14px;background:var(--accent);border:2px solid #fff;border-radius:3px;cursor:nwse-resize;touch-action:none}.ed-crop-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;max-width:320px}.ed-tagval{display:flex;flex-direction:column;gap:7px;margin-top:12px}.ed-tagval .tv-row{display:flex;align-items:center;gap:9px;font-size:12px;flex-wrap:wrap}.ed-tagval .tv-ok{color:var(--good);font-weight:700}.ed-tagval .tv-bad{color:var(--danger);font-weight:700}.ed-tagval .tv-uuid{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.ed-check{display:flex;flex-direction:column;gap:10px;margin-top:6px}.ed-check .ck{display:flex;align-items:center;gap:10px;font-size:13px}.ed-check .ck .dot{width:20px;height:20px;border-radius:50%;background:var(--good);color:#070809;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}.ed-check .ck.warn .dot{background:var(--ember)}.ed-check .ck.bad .dot{background:var(--danger);color:#fff}.ed-check .ck.bad{color:var(--ink)}.ed-check .ck .sub{color:var(--ink-faint);font-size:11.5px}.ed-act{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:860px){.ed-layout{grid-template-columns:1fr}.ed-tabs{flex-direction:row;flex-wrap:wrap;position:static;gap:5px}.ed-tab{flex:1 1 auto}}@media(max-width:980px){.app{grid-template-columns:1fr}.rail{position:fixed;top:0;bottom:0;left:0;height:var(--vvh, auto);width:min(280px,86vw);z-index:65;border-right:1px solid var(--line);transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow);padding:18px 14px;overflow-y:auto;overscroll-behavior:contain}.rail.open{transform:translate(0)}.rail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.rail-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--bg-elev2);color:var(--ink-dim)}.rail-close svg{width:18px;height:18px}.rail .brand{padding:0 2px 10px;margin-bottom:6px;border:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a108c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:64;display:block;touch-action:none}.appbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.appbar-right{display:flex;align-items:center;gap:8px}.menu-toggle{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:var(--bg-elev);color:var(--ink-dim);flex:none}.menu-toggle svg{width:20px;height:20px}.menu-toggle:hover{background:var(--bg-elev2);color:var(--ink)}.view>.topbar h1{display:none}.view>.topbar{flex-wrap:wrap;margin-bottom:14px}.view>.topbar .lede{margin-top:0}.view>.topbar .tools{margin-left:auto}.main{padding:18px 18px 50px}.chat-layout,.chat-layout-3,.editor-grid,.eco-grid{grid-template-columns:1fr}.side{position:static}.chatwrap{order:-1}.chatwrap{height:70vh;height:70dvh}.appbar{position:sticky;top:0;z-index:60;background:transparent;margin-bottom:0;padding:8px 0 12px}.appbar:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;clip-path:inset(0 0 calc(100% - var(--appbar-h)) 0);background:radial-gradient(720px 420px at 8% -6%,var(--accent-soft),transparent 62%),linear-gradient(118deg,transparent 42%,var(--accent-soft) 50%,transparent 58%),radial-gradient(900px 600px at 100% 110%,rgba(0,0,0,.5),transparent 60%),var(--bg)}:root{--appbar-h:56px}.maint-bar{position:relative;z-index:61}.appbar .btn{white-space:nowrap}.appbar .menu-toggle,.appbar .btn,.appbar .mdl-pick,.appbar .dock{height:36px;padding-top:0;padding-bottom:0;align-items:center}.appbar .dock{display:flex}.appbar .mdl-pick{flex:0 1 auto;min-width:0}.appbar .mdl-pick select{max-width:112px;text-overflow:ellipsis}.appbar .dock{padding:6px 10px}.appbar .theme-toggle{display:none}}.chat-head-gear{display:none}@media(max-width:980px){.chatwrap{overflow:visible}.chat-head{position:sticky;top:var(--appbar-h);z-index:5;background:var(--bg-elev)}.chat-head-gear{display:inline-flex;position:absolute;top:10px;right:10px;width:34px;height:34px;align-items:center;justify-content:center;padding:0;border-radius:8px;border:1px solid var(--line);background:var(--bg-elev);color:var(--ink-dim);font-size:15px;flex:none;z-index:6}.chat-head-gear:hover{background:var(--bg-elev2);color:var(--ink)}.chat-head .ti{padding-right:44px}}@media(max-width:680px){input[type=text],input[type=search],input[type=password],input[type=number],input[type=email],input:not([type]),textarea,select{font-size:16px}select.lang-switch{font-size:16px}textarea{min-height:64px}.chat-input textarea{min-height:76px;max-height:40dvh;line-height:1.5;padding:12px 13px}.dock .bal .u{display:none}body{-webkit-text-size-adjust:100%;text-size-adjust:100%}.main{--main-px:12px;padding:16px var(--main-px) calc(40px + env(safe-area-inset-bottom));max-width:100%}.topbar{gap:10px;margin-bottom:16px}.topbar h1{font-size:23px}.topbar .lede{font-size:13px}.rail{padding:10px 8px;gap:4px}.rail .brand{flex-basis:auto;padding:2px 6px 6px;margin-bottom:6px}.rail .brand .mark{font-size:15px}.rail .brand .sub{display:none}.navitem{padding:9px 6px;gap:6px}.rail .role{padding:8px 10px;margin-top:4px}.chat-head{flex-wrap:wrap;gap:10px;padding:12px 13px}.chat-head .ti{flex-basis:100%;min-width:0}.chat-head .ti h2{font-size:16px}.chat-head .wt,.chat-head .mdl-pick{font-size:11px;padding:5px 8px}.gauges{gap:14px;margin-top:9px;padding-top:9px}.gauge{min-width:78px}.head-meta-btn{cursor:pointer}.head-meta-btn .chev{display:block}.head-meta-btn.meta-open .chev{transform:rotate(180deg)}.head-meta-btn:active{opacity:.7}.chat-head .ti .single-only.meta-collapsed{display:none}.chatwrap{height:calc(100vh - 73px);height:calc(var(--vvh, 100dvh) - 73px)}.view>.chat-layout>.chatwrap{margin-inline:calc(0px - var(--main-px));border-radius:0;border-left:none;border-right:none}.chat-body{padding:15px 0;gap:15px}.chat-input{padding:10px 11px calc(11px + env(safe-area-inset-bottom));gap:9px;border-bottom-left-radius:0;border-bottom-right-radius:0;box-shadow:0 -10px 22px -14px #0000008c}.sendbtn{padding:0 16px;min-height:46px}.post{max-width:100%;gap:8px}.post.narrator{max-width:100%}.post.narrator.continued{margin-left:0}.post .avatar{width:32px;height:32px;border-radius:8px}.bubble{padding:10px 12px;font-size:17px;line-height:1.55}.post.npc .npc-action{font-size:13.5px}.post.npc .scene-img,.post.narrator .scene-img{max-width:100%;border-radius:var(--r-sm)}.chat-body{padding:10px 0;gap:13px}.chat-body{scrollbar-width:none}.chat-body::-webkit-scrollbar{width:0}.post .meta,.post .post-actions,.post.player .gen-row,.post.player .retry-row{padding-inline:11px}.pp-banner{padding:12px 13px;gap:11px}.pp-banner .ic{width:30px;height:30px}.pp-banner .txt h4{font-size:15px}.post .scene-img,.post.narrator .scene-img,.pp-img{max-width:100%}.post{flex-direction:column}.post>.avatar{display:none}.post .body{min-width:0;width:100%}.post .meta{margin-bottom:0}.post.narrator .meta{align-items:flex-start}.post .avatar-inline{width:36px;height:36px;border-radius:8px;display:inline-flex;flex:none;overflow:hidden;border:1px solid var(--line-strong)}.post.narrator .avatar.gm.avatar-inline{background:#070809}.post.player{align-items:flex-end}.post.player .meta{justify-content:flex-end}.grid-sc{grid-template-columns:1fr;gap:14px}.sc-cover{height:110px}.ses-list{max-width:100%}.char-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.overlay,.modal{padding:0;align-items:stretch;justify-content:stretch}.sheet{width:100%;max-height:100vh;max-height:100dvh;border-radius:0;padding:18px 16px calc(20px + env(safe-area-inset-bottom))}.char-grid{max-height:none}.ed-layout{gap:12px}.ed-tabs{gap:4px}.ed-tab{padding:9px 10px;font-size:12px}.tbl{font-size:12.5px}.section-title{flex-wrap:wrap;row-gap:2px}.section-title h2{flex:0 0 100%}.tok-filters .grp{flex:1 1 100%;gap:8px}.tok-filters .f-sm{flex:1 1 0}.tok-filters .f-date{flex:1 1 0;min-width:118px;max-width:none}.tok-filters .btn{padding:0 12px}}@media(max-width:420px){.sendbtn{padding:0 14px;justify-content:center}.sendbtn span{display:none}.appbar{gap:6px}.appbar .mdl-pick select{max-width:88px}.tok-filters .grp{flex-wrap:wrap}.tok-filters .btn{flex:1 1 100%}}@media(pointer:coarse){.chat-hint{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.rail-locale{padding:2px 8px 10px}.rail-locale .btn{width:100%;justify-content:center}.navgrp{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);padding:16px 12px 5px}.navgrp:first-of-type{padding-top:4px}.navitem[data-admin="1"]{display:none}.rail.admin-on .navitem[data-admin="1"]{display:flex}.rail .role{flex-wrap:wrap}.rail .role .badge{margin-left:30px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--ember);color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;flex:none}.rail-theme{display:none}@media(max-width:980px){.rail-theme{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-top:6px;color:var(--ink-dim);font-size:13px;font-weight:600;letter-spacing:.02em}}.role-toggle{display:flex;gap:5px;margin-top:7px;width:100%}.role-toggle .rb{flex:1;padding:6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink-faint);font-size:11px;font-weight:600;text-align:center;letter-spacing:.04em;transition:all .15s}.role-toggle .rb.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.rail .role .av{align-self:flex-start}.auth-wrap{max-width:430px;margin:34px auto 0}.auth-card{padding:30px 30px 24px}.auth-card h1{font-family:var(--serif);font-size:27px;font-weight:600;margin:6px 0 4px;letter-spacing:-.015em}.auth-card .sub-h{font-size:13px;color:var(--ink-dim);margin:0 0 20px}.auth-alt{text-align:center;margin-top:16px;font-size:13px;color:var(--ink-dim)}.auth-ver{font-family:var(--mono);text-align:center;margin-top:10px;font-size:11px;color:var(--ink-faint);letter-spacing:.08em}.ver-beta{font:inherit;font-size:9px;color:var(--ink-faint);background:none;border:0;padding:0;margin:0 0 0 4px;letter-spacing:.08em}button.ver-beta{cursor:pointer;border-bottom:1px dotted currentColor;padding:0 0 1px;transition:color .15s}button.ver-beta:hover{color:var(--accent)}.ver-beta-info{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.02em;margin-top:3px;line-height:1.45;max-width:230px}.oauth-divider{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--ink-faint);font-size:11.5px}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.oauth-btns{display:flex;gap:8px}.oauth-btn{flex:1;justify-content:center;font-size:12.5px}.auth-note{font-size:11.5px;color:var(--ink-faint);margin-top:18px;padding-top:14px;border-top:1px solid var(--line);line-height:1.55}.verify-box{display:none;text-align:center;padding:8px 0 4px}.verify-box[open]{display:block;animation:fade .3s ease}.verify-box .ok{width:54px;height:54px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;color:var(--accent)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:22px;flex-wrap:wrap}.tab{padding:10px 15px;font-size:13.5px;font-weight:600;color:var(--ink-dim);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab:hover{color:var(--ink)}.tab.sel{color:var(--accent);border-color:var(--accent)}.tab-pane{display:none}.tab-pane[open]{display:block}.sw-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.sw-row:last-child{border:none}.sw-row .lab{font-size:14px;font-weight:500}.sw-row .lab small{display:block;color:var(--ink-faint);font-weight:400;font-size:12px;margin-top:2px;max-width:46ch}.toggle{width:42px;height:24px;border-radius:99px;background:var(--line-strong);position:relative;flex:none;transition:background .15s;cursor:pointer}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink-dim);transition:.15s}.toggle.on{background:var(--accent)}.toggle.on:after{left:21px;background:#0a0b0d}.room-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:start}.member-list{display:flex;flex-direction:column;gap:9px}.member{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.member .av{width:34px;height:34px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--accent),var(--ember))}.member .nm{flex:1;min-width:0}.member .nm b{font-size:13.5px;font-weight:600}.member .nm small{display:block;color:var(--ink-faint);font-size:11px;margin-top:1px;font-weight:400}.member .tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600}.member.owner .tag{color:var(--ember)}.member.obs{opacity:.66}.ready-bar{display:flex;align-items:center;gap:12px;padding:12px 15px;border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:var(--r-sm);margin-top:4px}.ready-bar .pct{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.room-chat{display:flex;flex-direction:column;gap:11px;max-height:230px;overflow-y:auto;padding:14px 15px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm)}.room-chat .rm{font-size:13px;line-height:1.5}.room-chat .rm b{color:var(--accent)}.room-chat .rm .t{color:var(--ink-faint);font-family:var(--mono);font-size:10px;margin-left:6px}.sync-dot{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--good)}.sync-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 #4fb58b80;animation:pulse 2.2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 7px #4fb58b00}to{box-shadow:0 0 #4fb58b00}}.steps2{display:flex;gap:9px;margin:6px 0 24px}.steps2 .st{flex:1;padding:12px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev2);font-size:12.5px}.steps2 .st .n{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase}.steps2 .st .t{font-weight:600;margin-top:3px}.steps2 .st.done{border-color:var(--accent-soft);background:var(--accent-soft)}.steps2 .st.done .n{color:var(--accent)}.steps2 .st.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.checklist{display:flex;flex-direction:column;gap:11px}.checklist .ck{display:flex;align-items:flex-start;gap:11px;font-size:13.5px;color:var(--ink-dim);line-height:1.45}.checklist .ck i{width:20px;height:20px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-top:1px}.ck.ok i{background:var(--accent);color:#0a0b0d}.ck.warn i{background:var(--ember-soft);color:var(--ember)}.ck.bad i{background:#d4634a2e;color:var(--danger)}.ck.ok{color:var(--ink)}.ck .ck-d{flex:1}.ck .ck-d small{display:block;color:var(--ink-faint);font-size:11.5px;margin-top:1px}.pub-success{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--good);border-radius:var(--r-sm);background:#4fb58b14;margin-bottom:18px}.pub-success .ps-ic{width:34px;height:34px;border-radius:50%;flex:none;background:var(--good);color:#070809;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}.pub-success h3{font-family:var(--serif);font-size:16px;margin:0 0 3px}.pub-success p{font-size:12.5px;color:var(--ink-dim);margin:0 0 8px}.pub-success .ps-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pub-cover{display:flex;gap:14px;align-items:center;margin-bottom:14px}.pub-cover .pc-th{width:128px;height:54px;border-radius:8px;overflow:hidden;border:1px solid var(--line-strong);flex:none;background:var(--surface)}.pub-cover .pc-th svg{width:100%;height:100%;display:block}.pub-cover .pc-act{flex:1}.row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.row-3 .field{margin-bottom:0}.start-row{grid-template-columns:2fr 1fr auto;align-items:flex-end;margin-bottom:0}.start-row .btn{margin-top:0}@media(max-width:680px){.start-row{grid-template-columns:1fr;gap:10px}}.pub-sum{display:flex;gap:12px;align-items:center;margin-bottom:14px}.pub-sum .ps-cover{width:84px;height:36px;border-radius:6px;overflow:hidden;flex:none;border:1px solid var(--line-strong)}.pub-sum .ps-cover svg{width:100%;height:100%;display:block}.pub-sum .by{font-size:12.5px;color:var(--ink-faint);margin-top:2px}.sum-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sum-grid>div{text-align:center;padding:10px 6px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev2)}.sum-grid b{display:block;font-family:var(--mono);font-size:20px;color:var(--ember);font-variant-numeric:tabular-nums}.sum-grid small{display:block;font-size:10.5px;color:var(--ink-faint);margin-top:2px;line-height:1.2}.mail-server-grid .field input[type=number]{max-width:130px}.mail-test-to{max-width:240px}.mail-from-wrap{overflow-x:auto}.mail-from-add-btn{margin-bottom:14px}@media(max-width:680px){.mail-server-grid{grid-template-columns:1fr!important}.mail-test-to{max-width:none;flex:1 1 160px}.mail-from-add{grid-template-columns:1fr!important;gap:0!important}.mail-from-add-btn{width:100%;align-self:auto!important;margin:0!important}}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--bg-elev)}.tbl{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}.tbl th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:11px 13px;border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}.tbl td{padding:12px 13px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:var(--bg-elev2)}.tbl tr.suspicious td{background:#d4634a17}.tbl tr.suspicious td:first-child{box-shadow:inset 2px 0 0 var(--danger)}.tbl tr.suspicious:hover td{background:#d4634a24}.secf{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;align-items:end}.secf .field{margin:0}.secf .secf-lbl{display:flex;align-items:center;justify-content:space-between;gap:8px}.secf .secf-lbl .btn{line-height:1.4;padding:2px 10px}.secf .secf-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;grid-column:1/-1}@media(max-width:700px){.secf{grid-template-columns:1fr}.secf .field{grid-column:1/-1}.secf .field select,.secf .field input{width:100%}.secf .secf-actions .btn{flex:none}}.tbl .who{font-weight:600;color:var(--ink)}.tbl .who small{display:block;color:var(--ink-faint);font-weight:400;font-size:11px;margin-top:1px}.tbl .muted-cell{color:var(--ink-dim);font-size:12.5px}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap}.pill.new{background:var(--accent-soft);color:var(--accent)}.pill.open{background:#e8b33924;color:var(--ember)}.pill.done{background:var(--bg-elev2);color:var(--ink-faint)}.pill.ban{background:#d4634a24;color:var(--danger)}.pill.ok{background:#4fb58b24;color:var(--good)}.pill.draft{background:var(--bg-elev2);color:var(--ink-dim)}.pill.warn{background:#e8b33924;color:var(--ember)}.row-act{display:flex;gap:6px;flex-wrap:wrap}.row-act button{padding:5px 10px;border:1px solid var(--line-strong);border-radius:6px;font-size:11.5px;color:var(--ink-dim);background:var(--bg-elev2);transition:all .15s}.row-act button:hover{color:var(--ink);border-color:var(--accent)}.row-act button.danger:hover{color:var(--danger);border-color:var(--danger)}.row-menu-btn{min-width:30px;text-align:center;flex:none}.row-menu{position:fixed;z-index:40;min-width:240px;max-height:70vh;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:6px 0}.row-menu .rm-h{padding:8px 14px 3px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.row-menu .rm-it{display:block;width:100%;text-align:left;padding:7px 14px;font-size:12.5px;color:var(--ink);background:none;border:none;cursor:pointer;white-space:nowrap}.row-menu .rm-it:hover{background:var(--bg-elev2)}.row-menu .rm-it.danger{color:var(--danger)}.row-menu .rm-it.danger:hover{background:#d4634a14}.row-menu .rm-it:disabled{opacity:.45;cursor:default}.row-menu .rm-sep{height:1px;background:var(--line);margin:5px 0}@media(pointer:coarse){.row-menu .rm-it{padding:10px 14px}}.refund-prev{font-size:14px;color:var(--ink)}.metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:14px;margin-bottom:22px}.metric{padding:15px 16px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}.metric .lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.metric .val{font-family:var(--mono);font-size:26px;font-weight:600;margin-top:5px;font-variant-numeric:tabular-nums;line-height:1}.metric .val small{font-size:13px;color:var(--ink-dim);font-weight:400}.metric .sub{font-size:11.5px;color:var(--ink-dim);margin-top:6px}.metric.ember .val{color:var(--ember)}.metric.accent .val{color:var(--accent)}.metric.danger .val{color:var(--danger)}.loadbar{height:5px;border-radius:3px;background:var(--line-strong);overflow:hidden;margin-top:9px}.loadbar i{display:block;height:100%;background:var(--accent);border-radius:3px}.loadbar.warn i{background:var(--ember)}.loadbar.crit i{background:var(--danger)}.kv{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;align-items:flex-start}.kv:last-child{border:none}.kv .k{color:var(--ink-faint);width:170px;flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.03em;text-transform:uppercase;padding-top:1px}.kv .v{color:var(--ink);flex:1}.kv .v small{display:block;color:var(--ink-faint);font-size:11.5px;margin-top:2px}.dual{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media(max-width:980px){.dual,.room-grid{grid-template-columns:1fr}}.view[data-active=true]{display:block;animation:fade .35s ease}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.ed-view-toggle{display:flex;gap:8px;margin:6px 0 14px}.ed-view-toggle .btn.ghost.sm.active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.plot-tree-wrap{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px}.plot-tree-canvas{flex:1;min-width:0;height:540px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.plot-tree-panel{width:340px;flex-shrink:0;max-height:540px;overflow:auto}.plot-tree-panel .card{margin-bottom:0}.plot-tree-panel-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-dim);margin:0 0 8px;font-weight:600}.plot-tree-panel-head .ed-del{font-size:16px;line-height:1;padding:2px 7px}@media(max-width:760px){.plot-tree-wrap{flex-direction:column}.plot-tree-canvas{flex:none;width:100%;height:min(540px,65vh);min-height:340px}.plot-tree-panel{width:100%;max-height:none}}.pfn{min-width:170px;max-width:210px;padding:8px 12px;background:var(--bg-elev2);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);font-size:12.5px;text-align:center;cursor:pointer;transition:border-color .12s,box-shadow .12s}.pfn:hover{border-color:var(--ink-dim)}.pfn-start{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft),var(--shadow-sm)}.pfn-sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),var(--shadow)}.pfn-head{font-weight:600;color:var(--ink);margin-bottom:2px;display:flex;align-items:center;justify-content:center;gap:6px}.pfn-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--bg);background:var(--accent);padding:1px 5px;border-radius:3px}.pfn-title{color:var(--ink-dim);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.react-flow__handle{width:9px;height:9px;background:var(--accent);border:1.5px solid var(--bg-elev);min-width:0}.react-flow__handle:hover{background:var(--ink)}.react-flow{background:var(--surface)}.react-flow__edge-path{stroke:var(--line-strong);stroke-width:1.5}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent);stroke-width:2}.react-flow__attribution{background:transparent;color:var(--ink-faint);font-size:9px}.react-flow__controls{box-shadow:var(--shadow-sm);border-radius:var(--r-sm)}.react-flow__controls-button{background:var(--bg-elev);border-bottom:1px solid var(--line);color:var(--ink);fill:var(--ink)}.react-flow__controls-button:hover{background:var(--bg-elev2)}.react-flow__controls-button svg{fill:var(--ink)}.react-flow__background{background-color:transparent}.pp-parents{display:flex;flex-direction:column;gap:4px;max-height:168px;overflow-y:auto;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.pp-parent{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-dim);cursor:pointer;white-space:nowrap}.pp-parent:hover{color:var(--ink)}.pp-parent input{accent-color:var(--accent);width:14px;height:14px;flex:none}.pp-parent span{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;min-height:14px}.pp-parents-disabled{font-size:12.5px;color:var(--ink-dim);font-style:italic;padding:7px 9px;border:1px dashed var(--line-strong);border-radius:var(--r-sm);background:var(--bg-elev2)}.pp-parents-disabled:before{content:"◆ ";color:var(--accent);font-style:normal;opacity:.8}.landing-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.landing-head .brand{padding:0;border:none;margin:0}.landing-hero{margin:6px 0 10px}.landing-title{font-family:var(--serif);font-size:34px;font-weight:600;letter-spacing:-.015em;line-height:1.15;margin:0 0 8px;text-wrap:balance}.landing-title em{font-style:normal;color:var(--accent)}.landing-title .landing-tag{display:block;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:6px}.landing-lede{color:var(--ink-dim);font-size:15px;line-height:1.55;max-width:62ch;margin:0}.landing-cta{display:flex;gap:10px;margin-top:16px}.landing-head .btn,.landing-cta .btn{white-space:nowrap}.land-adctl{display:flex;margin:0 0 2px}.landing-section{margin-bottom:6px}.legal-wrap{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.legal-card{padding:24px 26px}.legal-card h1{font-size:26px;margin:0 0 4px}.legal-md{font-size:14.5px;line-height:1.65}.legal-md h2{font-size:18px;margin:22px 0 8px}.legal-md h3{font-size:15px;margin:16px 0 6px}.legal-md p{margin:8px 0}.legal-md ul,.legal-md ol{margin:8px 0;padding-left:22px}.legal-md table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;border-spacing:0;margin:10px 0;font-size:13px}.legal-md th,.legal-md td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top;height:44px;min-width:130px}.legal-md th{background:var(--bg-elev2);white-space:nowrap}.legal-md td{white-space:normal}.legal-md blockquote{border-left:3px solid var(--line-strong);margin:10px 0;padding:2px 0 2px 12px;color:var(--ink-dim)}.legal-md hr{border:none;border-top:1px solid var(--line);margin:16px 0}.legal-md a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.legal-impressum{font-size:11.5px;margin:0;text-align:center}.legal-footer{margin-top:26px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:12.5px}.legal-footer a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.legal-check{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:-2px 0 8px;cursor:pointer}.legal-check a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.ck-banner{position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:var(--bg-elev2);border-top:1px solid var(--line-strong);box-shadow:0 -6px 24px #00000024}.ck-banner p{margin:0;font-size:12.5px;line-height:1.5;max-width:72ch;color:var(--ink-dim)}.ck-banner a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.ck-actions{display:flex;gap:8px;flex:none}@media(max-width:640px){.ck-banner{flex-direction:column;align-items:stretch;gap:10px}.ck-actions{justify-content:flex-end}}.carousel-wrap{position:relative}.carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.carousel::-webkit-scrollbar{display:none}.car-card{flex:0 0 280px;scroll-snap-align:start;display:block;color:inherit;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}.car-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}.car-card.static,.car-card.static:hover{cursor:default;transform:none}.car-media{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--accent-soft),var(--bg-elev2))}.car-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.car-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:7px}.car-body h3{font-size:16px;font-weight:600;margin:0;line-height:1.25;overflow-wrap:anywhere}.card-author{margin:0;font-size:11.5px;color:var(--ink-faint);line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.car-desc{margin:0;font-size:12.5px;color:var(--ink-dim);line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.car-card.news{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-soft),var(--shadow-sm)}.news-badge{position:absolute;top:10px;left:10px;z-index:2;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--bg-elev);border:1px solid var(--accent-line);padding:3px 9px;border-radius:99px}.ann-pop-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line);margin-bottom:12px}.ann-md{overflow-wrap:anywhere}.ann-md p{margin:0 0 9px}.ann-md p:last-child{margin-bottom:0}.ann-md h1,.ann-md h2,.ann-md h3,.ann-md h4{margin:14px 0 8px;line-height:1.3}.ann-md ul,.ann-md ol{margin:0 0 9px;padding-left:22px}.ann-md blockquote{margin:0 0 9px;padding:4px 12px;border-left:3px solid var(--line-strong);color:var(--ink-dim)}.ann-md code{font-family:var(--mono);font-size:13px;background:var(--surface);padding:1px 6px;border-radius:5px;border:1px solid var(--line)}.ann-md pre{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px;overflow-x:auto}.ann-md a{color:var(--accent)}.ann-md img{max-width:100%;border-radius:var(--r-sm)}.ann-md hr{border:0;border-top:1px solid var(--line);margin:12px 0}.car-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-elev);border:1px solid var(--line-strong);color:var(--ink-dim);box-shadow:var(--shadow-sm);transition:color .15s,border-color .15s,background .15s}.car-arrow:hover{color:var(--ink);border-color:var(--accent-line);background:var(--bg-elev2)}.car-arrow svg{width:18px;height:18px}.car-arrow.left{left:-12px}.car-arrow.right{right:-12px}.stats-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:2px;font-size:12px;color:var(--ink-dim);font-family:var(--mono);font-variant-numeric:tabular-nums}.stats-row span{display:inline-flex;align-items:center;gap:5px}.stats-row svg{width:14px;height:14px;flex:none;opacity:.75}.heart-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;border:1px solid var(--line-strong);background:var(--bg-elev2);color:var(--ink-dim);font-size:12px;font-weight:600;font-family:var(--mono);font-variant-numeric:tabular-nums;transition:color .15s,border-color .15s,background .15s;cursor:pointer;flex:none}.heart-btn svg{width:14px;height:14px;flex:none}.heart-btn:hover{color:var(--ink);border-color:var(--accent-line)}.heart-btn.on{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.heart-btn.on svg{fill:var(--accent);opacity:1}.cat-cats{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.cat-bar{max-width:420px;margin-bottom:12px}.cat-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.cat-chip{cursor:pointer;transition:all .15s;text-transform:none}.cat-chip:hover{color:var(--ink);border-color:var(--accent-line)}.cat-chip.sel{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.cat-chip.cat-cat{border-color:var(--accent-soft);color:var(--accent);background:var(--accent-soft);font-size:13px;padding:6px 14px}.cat-chip.cat-cat:hover{color:var(--accent);border-color:var(--accent-line)}.cat-chip.cat-cat.sel{border-color:var(--accent-line);background:var(--accent-line)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.cat-card{display:block;color:inherit;cursor:pointer;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .18s,border-color .18s}.cat-media{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--accent-soft),var(--bg-elev2));overflow:hidden}.cat-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.car-ov{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:26px 10px 10px;background:linear-gradient(180deg,#060a1000 30%,#060a10e0);opacity:0;transition:opacity .18s ease;pointer-events:none}.car-ov p{margin:0;font-size:11.5px;line-height:1.4;color:var(--ink);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.cat-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}.cat-body h3{font-size:14px;font-weight:600;margin:0;line-height:1.25;overflow-wrap:anywhere}.cat-desc{display:none;margin:0;font-size:12px;color:var(--ink-dim);line-height:1.4}.cat-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.cat-players,.cat-posts{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-faint);font-family:var(--mono);font-variant-numeric:tabular-nums}.cat-players svg,.cat-posts svg{width:13px;height:13px}.cat-more{display:flex;justify-content:center;margin-top:18px}.landing-empty{padding:34px 18px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r);background:var(--bg-elev)}.landing-empty p{margin:0 0 4px;color:var(--ink-dim)}.landing-empty p.faint{color:var(--ink-faint);font-size:13px}@media(hover:hover){.cat-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}.cat-card:hover .cat-media img{transform:scale(1.05)}.cat-card:hover .car-ov{opacity:1}}@media(hover:none),(pointer:coarse){.car-ov{display:none}.cat-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}}.tag-pill .tag-x{border:none;background:none;color:var(--ink-faint);font-size:13px;line-height:1;padding:0 0 0 2px;cursor:pointer}.tag-pill .tag-x:hover{color:var(--danger)}.chip .chip-edit{padding:0}.chip .chip-edit:hover:not(:disabled){text-decoration:underline}.tag-dd{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-sm);z-index:30;box-shadow:var(--shadow-sm);padding:4px}.tag-dd-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:13px;cursor:pointer;color:var(--ink)}.tag-dd-item.on,.tag-dd-item:hover{background:var(--bg-elev2)}.tag-dd-count{font-size:11px;color:var(--ink-faint);font-family:var(--mono);flex-shrink:0}.tag-dd-pin{width:12px;height:12px;flex-shrink:0;color:var(--accent);vertical-align:-2px}@media(max-width:980px){.car-arrow{display:none}.landing-title{font-size:27px}}@media(max-width:680px){.car-card{flex-basis:240px}.cat-grid{grid-template-columns:repeat(auto-fill,240px);gap:10px}}.sd-hero{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:20px;align-items:start;margin-top:16px}.sd-cover{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.sd-cover img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.sd-cover--empty{background:linear-gradient(135deg,var(--accent-soft),var(--bg-elev2))}.sd-info{display:flex;flex-direction:column;gap:10px;min-width:0}.sd-title{font-size:30px;font-weight:600;letter-spacing:-.015em;line-height:1.15;margin:0;text-wrap:balance}.sd-author{margin:0;font-size:12.5px;color:var(--ink-faint)}.sd-tags{display:flex;gap:6px;flex-wrap:wrap}.sd-stats{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:2px;font-size:13px;color:var(--ink-dim);font-family:var(--mono);font-variant-numeric:tabular-nums}.sd-stats span{display:inline-flex;align-items:center;gap:5px}.sd-stats svg{width:16px;height:16px;flex:none;opacity:.75}.sd-lede{color:var(--ink-dim);font-size:15px;line-height:1.55;max-width:62ch;margin:16px 0 0}.sd-flagbar{margin-top:14px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);max-width:720px}.sd-flagbar .muted{font-size:12.5px}.sd-section{margin-bottom:6px}.sd-md{max-width:720px}.sd-starts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.sd-start{padding:13px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.sd-start h3{font-size:14.5px;font-weight:600;margin:0 0 5px;line-height:1.3}.sd-start p{margin:0;font-size:13px;color:var(--ink-dim);line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.sd-chars{display:flex;flex-direction:column;gap:10px}.sd-char{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev)}.sd-char-av{position:relative;width:48px;height:48px;border-radius:50%;flex:none;overflow:hidden;background:var(--bg-elev2);border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);font-weight:600}.sd-char-av img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}button.sd-char-av{cursor:zoom-in;font:inherit;padding:0}.sd-char-av-crop{position:absolute;top:0;right:0;bottom:0;left:0}.sd-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000db;display:grid;place-items:center;padding:24px;cursor:zoom-out}.sd-lightbox img{max-width:100%;max-height:calc(100vh - 48px);object-fit:contain;border-radius:var(--r-sm)}.boot-grid{display:grid;place-items:center;min-height:60vh}.boot-spin{text-align:center}.spinner{width:34px;height:34px;margin:0 auto 10px;border-radius:50%;border:3px solid var(--line-strong);border-top-color:var(--accent);animation:spinner-rot .9s linear infinite}@keyframes spinner-rot{to{transform:rotate(360deg)}}button.sd-char-img{font:inherit;padding:0;background:none;border:0;cursor:zoom-in;display:block;width:100%}.sd-char-body{flex:1;min-width:0}.sd-char-body b{display:block;font-size:13.5px;font-weight:600;margin-bottom:2px}.sd-char-body p{margin:0;font-size:12.5px;color:var(--ink-dim);line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.sd-cta{margin-top:28px;padding:18px 20px;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.sd-cta .muted{margin:0;font-size:12.5px}.sd-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:26px 0 0}.sd-tile{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:18px 10px 14px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-sm)}.sd-tile b{font-size:28px;line-height:1.1;font-family:var(--serif);color:var(--accent);font-variant-numeric:tabular-nums}.sd-tile span{font-size:12px;color:var(--ink-dim)}@media(max-width:680px){.sd-hero{grid-template-columns:1fr;gap:14px}.sd-title{font-size:24px}.sd-starts-grid{grid-template-columns:1fr}.sd-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.pk-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}.pk-card{position:relative;cursor:pointer;padding:18px 16px 14px;text-align:left;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s,box-shadow .15s,transform .1s;display:flex;flex-direction:column;gap:4px}.pk-card:hover{border-color:var(--line-strong)}.pk-card.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-sm)}.pk-card:active{transform:scale(.985)}.pk-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pk-badges{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.pk-badges .chip{padding:2px 7px;font-size:10.5px}.pk-tokens{font-family:var(--serif);font-size:24px;font-weight:600;color:var(--ember);font-variant-numeric:tabular-nums;line-height:1.1;margin-top:14px}.pk-tokens small{display:block;font-family:var(--sans);font-size:11px;font-weight:400;color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}.pk-price{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.pk-old{color:var(--ink-faint);text-decoration:line-through;font-weight:400;font-size:12.5px;margin-right:6px}.pk-label{font-size:12px;color:var(--ink-dim);min-height:15px}.chip.pending{color:var(--warn);border-color:var(--ember-soft);background:var(--ember-soft)}.bal-bar{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:18px}.bal-bar b{font-family:var(--serif);font-size:22px;color:var(--ember);font-variant-numeric:tabular-nums}.bal-bar .muted{font-size:13px}.bal-sums{display:flex;flex-direction:column;gap:3px;margin-top:6px}.bal-sums .muted{font-size:13px}.fin-filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.fin-filters .field{margin-bottom:0;min-width:130px}.fin-filters .field label{font-size:11px;margin-bottom:4px}.fin-pager{display:flex;gap:12px;align-items:center;margin:12px 0 4px;font-size:12.5px;color:var(--ink-dim)}.fin-flow{--fin-m1:#199e70;--fin-m2:#c98500;--fin-m3:#9085e9}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .fin-flow{--fin-m1:#1baf7a;--fin-m2:#eda100;--fin-m3:#4a3aa7}}:root[data-theme=light] .fin-flow{--fin-m1:#1baf7a;--fin-m2:#eda100;--fin-m3:#4a3aa7}:root[data-theme=dark] .fin-flow{--fin-m1:#199e70;--fin-m2:#c98500;--fin-m3:#9085e9}.fin-flow-lede{margin:-8px 0 14px}.fin-flow-seg{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:9px}.fin-flow-seg button{border:0;background:transparent;padding:6px 12px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink-dim);cursor:pointer}.fin-flow-seg button.sel{background:var(--accent-soft);color:var(--accent)}.fin-flow-seg button:hover:not(.sel){color:var(--ink)}.fin-rate input{max-width:110px}.tok-chart .fin-bar.fin-m1{fill:var(--fin-m1)}.tok-chart .fin-bar.fin-m2{fill:var(--fin-m2)}.tok-chart .fin-bar.fin-m3{fill:var(--fin-m3)}.tok-chart .fin-col.on .fin-bar{filter:var(--tok-lift)}.fin-flow-chart-empty{padding:16px;font-size:12.5px;color:var(--ink-dim)}.fin-statline{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.fin-stat{display:flex;flex-direction:column;gap:2px;padding:9px 13px;border:1px solid var(--line);border-radius:8px;min-width:132px}.fin-stat b{font-size:15px;font-weight:700}.fin-stat span{font-size:11px;color:var(--ink-faint)}.fin-stat-accent b{color:var(--accent)}.fin-stat .fin-stat-sub{color:var(--ink-dim)}.free-cards{display:flex;gap:14px;flex-wrap:wrap}.free-cards .card{flex:1;min-width:240px;max-width:420px;display:flex;flex-direction:column;gap:8px}.free-cards .card h3{margin:0;font-size:15px;font-weight:700}.free-cards .card p{margin:0;font-size:13px;color:var(--ink-dim);line-height:1.5}@media(max-width:680px){.pk-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media(max-width:680px){.legal-card{padding:16px 14px}.legal-card h1{font-size:21px}.legal-md{font-size:14px}.legal-md h2{font-size:16.5px}.legal-md th,.legal-md td{padding:5px 7px}.legal-impressum{text-align:left}}.cw-th{font-family:var(--mono);font-size:12px;color:var(--ink-dim);margin:6px 0 2px}.cw-prog{height:6px;border-radius:3px;background:var(--surface);border:1px solid var(--line);overflow:hidden;margin:10px 0 4px}.cw-prog>i{display:block;height:100%;background:var(--ember)}.tbl tr.hl td{background:var(--ember-soft)}@media(max-width:680px){.ed-place-row .ed-row-head,.ed-char-row .ed-row-head{flex-wrap:wrap;row-gap:10px}.ed-place-row .ed-row-head>.field,.ed-char-row .ed-row-head>.field{flex:1 1 170px;min-width:0}.ed-place-row .ed-row-head>.ed-del,.ed-char-row .ed-row-head>.ed-del{order:1}.ed-place-row .ed-row-head>.ed-f-gender,.ed-char-row .ed-row-head>.ed-f-gender{flex:1 1 100%;order:2}.ed-place-row .ed-row-head>.ed-img-def,.ed-char-row .ed-row-head>.ed-img-def{order:3}.ed-place-row .ed-row-head>.field.infl,.ed-char-row .ed-row-head>.field.infl{flex:1 1 100%;order:4}}.maint-bar{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:10px 20px;margin:0 0 14px;border-radius:12px;background:var(--warn);color:#241a00;box-shadow:0 6px 24px #0000002e}.maint-bar p{margin:0;font-size:13.5px;font-weight:600;text-align:center}.maint-bar .dot{width:9px;height:9px;border-radius:50%;background:#241a00;animation:maint-blink 1.4s ease-in-out infinite}@keyframes maint-blink{50%{opacity:.25}}.maint-screen{min-height:85vh;display:flex;align-items:center;justify-content:center;padding:26px}.maint-screen .maint-card{max-width:520px;width:100%;text-align:center;padding:30px 26px}.maint-screen .maint-cog{font-size:40px;line-height:1;margin-bottom:10px;animation:maint-spin 3.2s linear infinite}@keyframes maint-spin{to{transform:rotate(360deg)}}.maint-screen h1{font-size:26px;margin:8px 0 10px}.maint-screen p{font-size:14px;color:var(--ink-dim);line-height:1.6;margin:0 0 18px}@media(prefers-reduced-motion:reduce){.maint-bar .dot,.maint-screen .maint-cog{animation:none}}:root{--mon-a:var(--accent);--mon-b:var(--warn);--mon-c:var(--danger)}.mon-statusline{font-size:13px;margin:4px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:2px}.mon-hint{cursor:help;border-bottom:1px dashed var(--line-strong);color:var(--ink-faint);margin-left:5px;padding-bottom:1px}.mon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(258px,100%),1fr));gap:14px;margin:16px 0 6px}.mon-card{min-width:0}.mon-card-h{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px;display:flex;align-items:center;gap:6px}.mon-card-h .mon-hint{margin-left:auto;padding:2px 6px}.mon-bubble{position:fixed;z-index:70;width:min(300px,calc(100vw - 24px));max-height:60vh;overflow-y:auto;overscroll-behavior:contain;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.55;color:var(--ink-dim);box-shadow:var(--shadow)}.mon-hint-open{color:var(--ink)}.env-tab{width:100%;border-collapse:collapse;font-size:13px}.env-tab th{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim);text-align:left;padding:4px 8px 6px;border-bottom:1px solid var(--line-strong)}.env-tab td{padding:6px 8px;border-top:1px solid var(--line);text-align:left;vertical-align:top}.env-tab .env-desc{display:block;font-size:11.5px;color:var(--ink-faint);margin-top:1px}.env-tab .env-scope{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-left:6px;padding:1px 5px;border-radius:8px;background:var(--line);color:var(--ink-dim);vertical-align:1px}.env-tab .env-scope-both{background:var(--accent-soft);color:var(--accent)}.env-tab .env-infile{display:inline-block;font-size:10px;font-weight:700;margin-right:5px;padding:1px 5px;border-radius:8px;background:var(--line);color:var(--ink-dim)}.env-h{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between}.env-fold{font-size:12px;color:var(--ink-dim);flex:none;padding:0 2px}.env-miss{display:inline-block;font-size:10px;font-weight:700;margin-left:7px;padding:1px 5px;border-radius:8px;background:var(--line);color:var(--ink-dim)}.mon-row{display:grid;grid-template-columns:minmax(76px,96px) max-content 1fr;align-items:center;gap:10px;padding:5px 0}.mon-row.bare{grid-template-columns:minmax(76px,96px) 1fr}.mon-l{font-size:13px;color:var(--ink-dim)}.mon-v{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.mon-bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden;min-width:56px}.mon-bar i{display:block;height:100%;border-radius:4px;background:var(--accent);transition:width .4s ease}.mon-bar i.warn{background:var(--warn)}.mon-bar i.bad{background:var(--danger)}.mon-charts-head{display:flex;margin:18px 0 12px}.mon-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:14px}.mon-chart-card{min-width:0}.mon-chart-empty{font-size:13px;padding:10px 2px 4px;color:var(--ink-dim)}.mon-line{stroke-width:2;fill:none;stroke-linejoin:round;stroke-linecap:round}.mon-dot{stroke-width:0}.mon-line.a,.mon-dot.a{stroke:var(--mon-a)}.mon-line.b,.mon-dot.b{stroke:var(--mon-b)}.mon-line.c,.mon-dot.c{stroke:var(--mon-c)}.mon-dot.a{fill:var(--mon-a)}.mon-dot.b{fill:var(--mon-b)}.mon-dot.c{fill:var(--mon-c)}.mon-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg-elev)}.mon-seg-btn{border:none;background:none;padding:7px 16px;font-size:13px;font-weight:600;color:var(--ink-dim);cursor:pointer;border-right:1px solid var(--line);min-width:64px;font-variant-numeric:tabular-nums}.mon-seg-btn:last-child{border-right:none}.mon-seg-btn:hover{color:var(--ink)}.mon-seg-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}@media(max-width:680px){.mon-charts-head{margin:14px 0 10px}.mon-seg{display:flex;width:100%}.mon-seg-btn{flex:1;min-width:0;padding:10px 8px}}@media(pointer:coarse){.mon-seg-btn{padding:11px 16px}}@media(prefers-reduced-motion:reduce){.mon-bar i{transition:none}}
