body:has(.admin-login){min-width:320px}.admin-login{background:#fafbf8;grid-template-columns:minmax(360px,1fr) minmax(420px,1fr);min-height:100dvh;display:grid}.admin-login-brand{background:#e9eee5;border-right:1px solid #dce3d7;flex-direction:column;padding:clamp(32px,5vw,80px);display:flex}.admin-login-brand .brand{gap:14px;padding:0;font-size:21px}.admin-login-brand .brand-seal{width:44px;height:44px;font-size:24px}.admin-login-intro{margin:auto 0;padding:80px 0}.admin-login-intro .eyebrow{color:#627761;letter-spacing:.22em}.admin-login-intro h1{letter-spacing:-.04em;color:#2c4c39;margin:24px 0;font-size:clamp(36px,4vw,58px);font-weight:550;line-height:1.45}.admin-login-intro>p:last-child{color:#697965;font-size:15px;line-height:2}.admin-login-signature{color:#65755f;letter-spacing:.08em;border-top:1px solid #cbd6c6;padding-top:24px;font-size:12px}.admin-login-panel{width:min(100%,490px);margin:auto;padding:60px 40px}.admin-login-panel h2{letter-spacing:-.04em;margin:16px 0 12px;font-size:30px}.admin-login-description{color:#6c776d;min-height:24px;margin-bottom:34px}.admin-login-form{flex-direction:column;gap:22px;display:flex}.admin-login-form label{gap:10px;font-size:14px}.admin-login-form input{background:#fff;min-height:48px}.admin-password-field{display:flex;position:relative}.admin-password-field input{padding-right:64px}.admin-password-field button{color:#5b705d;min-height:40px;font-size:12px;position:absolute;top:4px;right:4px}.admin-login-submit{justify-content:center;align-items:center;gap:10px;min-height:49px;margin-top:8px;font-size:15px;display:flex}.admin-login-links{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-top:30px;padding-top:28px;font-size:12px;display:flex}.admin-login-links a{color:#55705a;text-decoration:none}.admin-login-links a:hover{text-decoration:underline}.admin-login-links button{font-size:12px;font-weight:400}.admin-login-spinner{border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite admin-login-spin}.admin-account{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin:20px 0;padding-top:18px;display:flex}.admin-account strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.admin-account button{flex-shrink:0;font-size:12px}.admin-account-error{margin-bottom:12px}@keyframes admin-login-spin{to{transform:rotate(360deg)}}@media (width<=760px){.admin-login{grid-template-columns:1fr}.admin-login-brand{border-bottom:1px solid #dce3d7;border-right:0;padding:24px}.admin-login-intro,.admin-login-signature{display:none}.admin-login-panel{padding:36px 24px}}@media (prefers-reduced-motion:reduce){.admin-login-spinner{border-style:dotted;animation:none}}.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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{color:#25312c;font-synthesis:none;--surface:#fff;--canvas:#f4f6f3;--line:#e0e5df;--ink:#25312c;--muted:#758078;--accent:#355d49;--accent-soft:#e8f0e9;--error:#923e2c;--error-soft:#fff4ee;--gold:#886c2f;background:#f7f8f5;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:1024px;margin:0;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);color:var(--ink);white-space:nowrap;background:#fff;border-radius:7px;min-height:38px;padding:8px 14px;transition:border-color .15s,background .15s}button:hover:not(:disabled){background:#f6f8f5;border-color:#a1b2a4}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #b3cfb9}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#274d3a;border-color:#274d3a}button.quiet{background:0 0;border-color:#0000}button.text-button{min-height:28px;color:var(--accent);background:0 0;border:0;padding:0;font-weight:600}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #dbe2db;border-radius:6px;min-height:40px;padding:10px 12px}input::placeholder,textarea::placeholder{color:#a2aaa4}textarea{resize:vertical;line-height:1.6}label{flex-direction:column;gap:8px;font-size:13px;font-weight:550;display:flex}h1,h2,h3,p{margin:0}h1{letter-spacing:-.045em;font-size:30px;font-weight:650}h2{font-size:18px;font-weight:650}h3{font-size:15px;font-weight:600}p{line-height:1.65}.small{font-size:12px}.subtle{color:var(--muted)}.eyebrow{color:#89958c;letter-spacing:.15em;font-family:Avenir Next,sans-serif;font-size:10px;font-weight:650}.badge{color:#738075;white-space:nowrap;background:#eef1ed;border-radius:4px;align-items:center;gap:5px;padding:4px 7px;font-size:11px;font-weight:500;display:inline-flex}.badge-accent{color:var(--gold);background:#f7f1df}.badge-success{color:#3e744e;background:#e9f3e9}.badge-warning{color:#946828;background:#fff0dc}.workspace{min-height:100vh;display:flex}.main-sidebar{border-right:1px solid var(--line);background:#f0f3ee;flex-direction:column;flex:0 0 228px;width:228px;padding:34px 20px 20px;display:flex}.brand{align-items:center;gap:11px;margin-bottom:46px;padding-left:5px;display:flex}.brand-seal{color:#355d49;background:#fbfcf8;border:1px solid #b8c6b8;border-radius:10px;place-items:center;width:39px;height:43px;font-family:Kaiti SC,serif;font-size:24px;display:grid}.brand strong{letter-spacing:.08em;font-size:17px;font-weight:650;display:block}.brand div span{color:var(--muted);letter-spacing:.12em;margin-top:3px;font-size:11px;display:block}.nav-caption{color:#919b92;letter-spacing:.12em;margin:20px 12px 10px;font-size:10px}.nav-item{text-align:left;background:0 0;border:0;align-items:center;gap:6px;min-height:42px;margin-bottom:4px;padding:12px 13px;display:flex}.nav-item.active{color:var(--accent);background:#fff;font-weight:600;box-shadow:0 2px 6px #263b2b08}.nav-item span{color:#859b87;margin-left:auto;font-size:11px}.nav-item small{color:#819082;margin-left:auto;font-size:9px;font-weight:400}.local-note{color:#667568;margin-top:auto;padding:48px 9px 6px;font-size:11px}.local-note i,.status-dot{vertical-align:middle;background:#86a78a;border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.local-note p{color:#949c94;margin-top:9px;font-size:10px;line-height:1.8}.library{flex:1;min-width:0;padding:46px clamp(28px,4vw,72px)}.library-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:37px;display:flex}.library-header h1{margin:13px 0 10px}.library-header .primary{padding:11px 19px}.library-toolbar{justify-content:space-between;align-items:center;padding:29px 0 20px;display:flex}.toolbar-label{align-items:center;gap:9px;font-size:14px;font-weight:600;display:flex}.search-field{color:var(--muted);flex-direction:row;align-items:center;gap:10px}.search-field input{width:225px;min-height:35px;padding:7px 11px;font-size:12px}.empty-state{text-align:center;min-height:370px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:38px;display:flex}.empty-mark{letter-spacing:.3em;color:#8ca58d;background:#eef3eb;border:1px solid #d7e0d4;border-radius:17px;margin-bottom:24px;padding:0 22px;font-size:30px;line-height:1.8}.empty-state h2{color:#455447;margin-bottom:12px;font-size:21px;font-weight:550}.empty-state p{max-width:450px;font-size:13px;line-height:1.9}.empty-state button{margin-top:23px}.library .empty-state{background:#fcfdf9;border:1px dashed #d8e0d5;border-radius:10px;min-height:400px}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.library-availability{white-space:nowrap;align-items:center;gap:9px;font-size:12px;display:flex}.publication-switch{background:#d8dfd7;border:1px solid #b9c3ba;border-radius:20px;flex-shrink:0;width:38px;height:23px;min-height:23px;padding:2px}.publication-switch>span{background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .12s;display:block;box-shadow:0 1px 3px #243d3220}.publication-switch[aria-checked=true],.publication-switch[aria-checked=true]:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.publication-switch[aria-checked=true]>span{transform:translate(14px)}.publication-switch:focus-visible{outline-offset:3px;outline:2px solid #52785c}.publication-manage{margin-top:7px;font-size:11px}.toolbar-label>.quiet{margin-left:12px;font-size:12px}table{border-collapse:collapse;text-align:left;width:100%}th{color:#8b968c;background:#f1f4ef;padding:13px 19px;font-size:11px;font-weight:500}td{border-top:1px solid #e9ede7;padding:21px 19px;font-size:13px}td .small{margin-top:5px}.story-link{background:0 0;border:0;min-height:25px;padding:0;font-size:15px;font-weight:650}.library-footer{color:#99a198;padding-top:25px;font-size:11px}.loading,.fatal-error{text-align:center;color:var(--muted);padding:60px}.fatal-error h1,.fatal-error p{margin-bottom:24px}.error-strip{background:var(--error-soft);color:var(--error);border:1px solid #edcaba;border-radius:7px;justify-content:space-between;align-items:center;gap:20px;margin:12px 0;padding:13px 19px;font-size:12px;display:flex}.error-strip strong{font-size:13px}.error-strip p{max-width:850px}.error-strip button{flex-shrink:0}.inline-note{color:#748072;background:#f3f5f0;border-radius:6px;padding:12px 14px;font-size:12px;line-height:1.75}.inline-error{background:var(--error-soft);color:var(--error);border-radius:5px;padding:12px 14px;font-size:13px}.modal{color:var(--ink);border:1px solid #d6dfd4;border-radius:12px;width:540px;max-height:min(900px,90vh);padding:0;box-shadow:0 25px 100px #26342829}.modal-wide{width:920px}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e2b244d}.modal-header{z-index:2;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;padding:18px 26px;display:flex;position:sticky;top:0}.modal-header h2{font-size:18px}.modal>.form-stack{padding:24px 26px}.form-stack{flex-direction:column;gap:20px;display:flex}.form-stack>.subtle{font-size:12px}.modal-actions{justify-content:flex-end;align-items:center;gap:10px;padding-top:6px;display:flex}.modal-actions>.subtle{margin-right:auto}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:9px;font-size:13px;font-weight:550}.choice-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice{text-align:left;white-space:normal;padding:15px}.choice strong{margin-bottom:8px;font-size:14px;display:block}.choice span{color:var(--muted);font-size:11px;line-height:1.6;display:block}.choice.selected{background:#f0f5ed;border-color:#84a18b}.category-list{max-height:230px;margin:0;padding:0;list-style:none;overflow:auto}.category-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 3px;font-size:13px;display:flex}.file-picker{background:#f7faf3;border:1px dashed #a4b6a4;border-radius:8px;padding:22px}.file-picker input{background:0 0;border:0;padding:7px 0}.file-picker span{color:var(--muted);font-size:11px;font-weight:400;line-height:1.7}.file-picker.disabled{opacity:.55}.upload-list{max-height:290px;overflow:auto}.upload-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:13px 0;display:flex}.upload-row>div{flex:1;min-width:0}.upload-row strong{overflow-wrap:anywhere;font-size:13px}.upload-row p{color:var(--muted);margin-top:6px;font-size:11px}.upload-row button{font-size:12px}.upload-recovery{background:#f4f7f0;border:1px solid #ccd9c7;border-left:3px solid #557847;border-radius:8px;gap:8px;padding:16px;display:grid}.upload-recovery p{color:var(--muted);margin:5px 0 8px;font-size:12px}.upload-recovery button{text-align:left;font-size:12px}.upload-recovery button[aria-pressed=true]{color:#355d49;border-color:#557847}.upload-current{justify-content:space-between;align-items:center;gap:12px;display:flex}.upload-current strong{font-size:14px}.upload-current button{font-size:12px}.upload-reselect{color:#526a48;margin-top:9px;font-size:12px;display:block}.upload-reselect input{background:0 0;border:0;min-height:0;padding:5px 0;font-size:12px}.editor-shell{background:#fff;flex-direction:column;min-width:1080px;height:100vh;display:flex}.editor-header{border-bottom:1px solid var(--line);flex:0 0 88px;align-items:center;gap:13px;height:88px;padding:14px 24px 14px 14px;display:flex}.story-identity{flex:1;min-width:180px;padding-left:5px}.story-identity h1{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.025em;max-width:440px;font-size:22px;overflow:hidden}.story-identity p{color:var(--muted);margin-top:7px;font-size:12px}.save-state{color:#8c968d;white-space:nowrap;padding-right:5px;font-size:11px}.editor-header button{font-size:12px}.editor-notices{padding:0 20px}.content-publication-notice{border-bottom:1px solid var(--line);background:#f6f8f3;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 20px;font-size:12px;display:flex}.content-publication-notice.has-changes{background:#fbf4e7;border-bottom-color:#e5d6b8}.content-publication-notice strong{color:#355d49;font-size:12px}.content-publication-notice.has-changes strong{color:#86622b}.content-publication-notice p{color:var(--muted);margin:4px 0 0;font-size:11px}.content-publication-notice button{flex-shrink:0;font-size:12px}.conflict-strip{margin:10px 20px}.conflict-comparison{color:#844e36;background:#fff4ee;border-radius:5px;margin:10px 0 18px;padding:12px;font-size:11px}.conflict-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;font-size:10px;line-height:1.7}.conflict-comparison summary{cursor:pointer;padding:7px 0}.editor-body{flex:1;grid-template-columns:220px minmax(500px,1fr) 324px;min-height:0;display:grid}.chapter-sidebar{border-right:1px solid var(--line);background:#f1f4ef;flex-direction:column;padding:26px 15px 20px;display:flex;position:relative;overflow-y:auto}.section-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px;display:flex}.section-heading h2{font-size:16px}.section-heading>span{color:#93a08f;font-size:12px}.chapter-list{flex-direction:column;gap:6px;display:flex}.chapter{text-align:left;white-space:normal;background:0 0;border-color:#0000;align-items:flex-start;gap:10px;padding:12px 10px;font-size:12px;line-height:1.5;display:flex}.chapter>span{color:#8a9888;padding-top:2px;font-size:10px}.chapter.active{color:#355d49;background:#fff;border:1px solid #c7d3c3;box-shadow:0 2px 3px #244c2403}.dashed-button{background:0 0;border:1px dashed #bdcdb8;margin:16px 0 2px;font-size:12px}.sidebar-help{color:#8c9888;margin-top:21px;padding:0 5px;font-size:10px;line-height:1.9}.sidebar-bottom{color:#9ca696;margin-top:auto;padding:40px 5px 0;font-size:10px}.sidebar-bottom p{margin-top:10px;line-height:1.9}.graph-column{flex-direction:column;min-width:0;min-height:0;display:flex}.graph-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:10px;height:70px;padding:11px 22px;display:flex}.graph-toolbar>div{min-width:90px;margin-right:auto}.graph-toolbar h2{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:14px;overflow:hidden}.graph-toolbar span{color:#97a08f;margin-top:5px;font-size:10px;display:block}.graph-toolbar button{font-size:11px}.graph-stage{background:var(--canvas);flex:1;min-height:280px}.graph-stage>.empty-state{min-height:100%}.graph-stage .react-flow{background:var(--canvas)}.edge-context-menu{z-index:30;border:1px solid var(--line);background:var(--surface);border-radius:8px;width:208px;padding:6px;position:fixed;box-shadow:0 6px 24px #25312c24}.edge-context-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:5px 8px 8px;font-size:11px;overflow:hidden}.edge-context-menu button{text-align:left;width:100%;min-height:36px;color:var(--error);border:0;font-size:12px}.edge-context-menu button:hover:not(:disabled),.edge-context-menu button:focus-visible{background:var(--error-soft)}.edge-context-hint{color:var(--muted);padding:6px 8px 4px;font-size:10px}.node-context-menu{width:240px}.node-context-impact{color:var(--text);padding:6px 8px 0;font-size:11px;line-height:1.5}.node-context-menu .edge-context-hint{line-height:1.5}.graph-toolbar .selection-count{color:#355d49;font-weight:600}.graph-stage .react-flow__selection,.graph-stage .react-flow__nodesselection-rect{background:#45694f0d;border:1px dashed #45694f}.graph-footer{border-top:1px solid var(--line);min-height:78px;padding:17px 23px 13px}.graph-footer>div{align-items:center;gap:6px;font-size:11px;display:flex}.graph-footer strong{font-weight:550}.graph-footer p{color:#91a08d;margin-top:7px;font-size:10px}.separator{color:#c4cdc0;margin:0 7px}.clip-card{background:#fff;border:1px solid #d5ddd1;border-radius:8px;width:228px;padding:12px;position:relative;box-shadow:0 3px 10px #34422d07}.clip-card.selected{border-color:#45694f;box-shadow:0 0 0 1px #45694f,0 5px 16px #34422d0c}.entry-tag{color:#54765c;font-size:11px;font-weight:600;position:absolute;top:-26px;left:1px}.clip-thumb{aspect-ratio:1;background:#e9eee4;border-radius:4px;width:202px;overflow:hidden}.clip-thumb video{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.media-unavailable{color:#95a48e;place-items:center;height:100%;font-size:13px;display:grid}.clip-body{padding:11px 0 2px}.clip-body strong{color:#354431;white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.clip-meta{color:#94a18e;margin-top:7px;font-size:10px}.clip-body p{color:#778570;margin-top:5px;font-size:11px}.clip-exits{color:var(--accent);border-top:1px solid var(--line);flex-direction:column;margin:8px -12px -12px;font-size:11px;display:flex}.clip-exit{align-items:center;min-height:32px;padding:6px 16px 6px 12px;display:flex;position:relative}.clip-exit+.clip-exit{border-top:1px solid var(--line)}.clip-exit>span{text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.clip-branch-setup{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.clip-branch-setup>span{color:var(--muted);font-size:11px}.clip-branch-setup button{min-height:28px;color:var(--accent);background:var(--accent-soft);padding:4px 8px;font-size:11px}.branch-setup{border:1px solid var(--line);background:var(--accent-soft);border-radius:7px;margin-bottom:18px;padding:12px}.branch-setup button{width:100%;color:var(--accent)}.branch-setup p,.choice-help{color:var(--accent);margin-top:8px;font-size:11px;line-height:1.7}.choice-advanced{color:var(--muted);font-size:11px}.choice-advanced summary{cursor:pointer;padding:5px 0}.choice-advanced>div{margin-top:12px}.clip-card .react-flow__handle{background:#fff;border:2px solid #78916d;width:11px;height:11px}.clip-card .react-flow__handle:hover{background:#6f8f65}.react-flow__controls{border:1px solid #d4ded0;border-radius:5px;overflow:hidden;box-shadow:0 2px 6px #30452b10}.react-flow__controls button{border-radius:0;min-height:29px}.react-flow__attribution{opacity:.7;font-size:9px}.inspector{border-left:1px solid var(--line);padding:25px 23px;overflow-y:auto}.inspector-empty .eyebrow{font-size:9px}.inspector-empty h2{margin-top:11px}.inspector-empty p{color:#8a9783;margin-top:20px;font-size:12px}.inspector-empty ol{color:#a0aa99;margin-top:29px;padding-left:16px;font-size:11px;line-height:2.7}.inspector-form{gap:17px}.inspector-form label{gap:7px;font-size:12px}.inspector-form input,.inspector-form select,.inspector-form textarea{padding:9px 10px;font-size:12px}.asset-info{color:var(--muted);font-size:11px;line-height:1.7}.asset-info p{margin:6px 0 3px}.asset-info small{color:#a1ab9a;font-size:10px}.inspector-form>button{font-size:12px}.speaker-cue-editor{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0}.speaker-cue-editor>summary{cursor:pointer;color:var(--ink);font-size:12px;font-weight:600}.speaker-cue-editor>summary span{color:var(--muted);margin-left:5px;font-size:10px;font-weight:400}.speaker-cue-editor>p{margin:12px 0;font-size:11px;line-height:1.65}.speaker-cue-row{border:1px solid var(--line);background:#f8faf6;border-radius:9px;min-width:0;margin:13px 0;padding:10px}.speaker-cue-row legend{color:var(--muted);padding:0 5px;font-size:10px}.speaker-cue-times{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:10px;display:grid}.speaker-cue-times input{min-width:0}.speaker-cue-row .speaker-cue-remove{margin:8px 0 0 auto;padding:4px 2px;font-size:11px;display:block}.speaker-cue-add{background:0 0;border-style:dashed;width:100%;font-size:11px}.connection-summary{border-top:1px solid var(--line);margin-top:26px;padding-top:20px}.connection-summary h3{margin-bottom:14px;font-size:12px}.outlet-line{align-items:center;gap:9px;margin:15px 0;display:flex}.outlet-badge{color:#7e9371;background:#edf1e9;border-radius:5px;place-items:center;width:25px;height:25px;font-size:11px;display:grid}.outlet-line>div{flex:1;min-width:0}.outlet-line strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.outlet-line small{color:#a0ac97;margin-top:5px;font-size:9px;display:block}.outlet-line button{font-size:10px}.inspector-scope{color:#a1ac9b;border-top:1px solid var(--line);margin-top:22px;padding-top:19px;font-size:10px;line-height:1.8}.preview-grid{grid-template-columns:440px 1fr;gap:26px;padding:26px;display:grid}.preview-stage{aspect-ratio:1;background:#e4ebdf;border-radius:10px;position:relative;overflow:hidden}.route-video{object-fit:contain;background:#142014;width:100%;height:100%;display:block}.preview-idle{text-align:center;background:#eef3e9;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.preview-idle h3{color:#627659;margin:18px 0 29px;font-size:25px;font-weight:500;line-height:1.6}.preview-grid section>p{margin-top:13px;font-size:10px;line-height:1.9}.video-title{color:#fff;text-shadow:0 1px 5px #0009;pointer-events:none;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex;position:absolute;top:15px;left:16px;right:16px}.video-title span{background:#11241573;border-radius:5px;padding:5px 9px}.video-title small{background:#11241573;border-radius:5px;padding:5px 7px;font-size:10px}.video-question{color:#fff;text-align:center;position:absolute;bottom:22px;left:20px;right:20px}.video-question strong{background:#152316ba;border-radius:7px;padding:8px 12px;font-size:16px;font-weight:550;display:inline-block}.video-question>div{justify-content:center;gap:12px;margin-top:14px;display:flex}.video-question button{color:#f6f3db;background:#203320dc;border:1px solid #e1d29b;border-radius:25px;padding:8px 18px;font-size:13px}.video-ending{color:#fff;text-align:center;background:#152d20d9;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:20px;display:flex;position:absolute;inset:80px 40px}.video-ending p{font-size:12px}.path-trace{border:1px solid var(--line);color:#7e8d76;border-radius:6px;margin-top:17px;padding:13px;font-size:11px;line-height:1.8}.path-trace span{color:#a0ac98;margin-bottom:6px;font-size:10px;display:block}.check-panel h3{margin:13px 0;font-size:18px}.check-panel .inline-note{margin-top:21px;font-size:10px}.violation-list{max-height:355px;margin:18px 0 0;padding:0;list-style:none;overflow-y:auto}.violation-list li{border-bottom:1px solid var(--line);padding:12px 0}.violation-list strong{color:#b48a57;letter-spacing:.04em;font-size:9px;display:block}.violation-list p{color:#758269;margin:5px 0 3px;font-size:12px}.violation-list button{font-size:11px}.violation-list .check-success{color:#699260;font-size:12px}@media (width<=1300px){.editor-body{grid-template-columns:190px minmax(440px,1fr) 280px}.editor-header{gap:6px}.editor-header button{padding:8px 10px}.story-identity h1{max-width:260px}.save-state{font-size:10px}.graph-toolbar{gap:6px;padding:10px 15px}.graph-toolbar h2{max-width:140px}.inspector{padding:23px 18px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.experience-link{color:var(--accent);border-top:1px solid var(--line);border-radius:0;margin-top:22px;text-decoration:none}.category-edit-list{gap:12px;display:grid}.category-edit-row{background:#f6f8f3;border-radius:8px;grid-template-columns:minmax(120px,1fr) 92px 70px auto;align-items:end;gap:8px;padding:12px;display:grid}.category-edit-row label{color:var(--muted);font-size:10px}.category-edit-row input,.category-edit-row select{font-size:12px}.category-edit-row button{margin-bottom:1px}.history-actions{gap:0;display:flex}.history-actions button{border-radius:0;padding:7px 9px;font-size:11px}.history-actions button:first-child{border-radius:7px 0 0 7px}.history-actions button:last-child{border-left:0;border-radius:0 7px 7px 0}.settings-intro{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.form-columns{grid-template-columns:1fr 1fr;gap:14px;display:grid}.age-band-options{flex-wrap:wrap;gap:7px;display:flex}.age-band-options .age-check{border:1px solid #dce3d7;border-radius:7px;flex-direction:row;align-items:center;gap:7px;padding:9px;font-size:12px;display:flex}.age-band-options .age-check.checked{background:#e8f0e2;border-color:#aabfa0}.age-band-options input{accent-color:#355d49;width:auto;margin:0}.settings-cover{object-fit:cover;border:1px solid var(--line);border-radius:10px;width:100px;height:100px}.chapter-manage-list{gap:12px;display:grid}.chapter-manage-row{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding-bottom:12px;display:flex}.chapter-number{color:#7e937b;font:italic 20px Georgia,serif}.chapter-rename{flex:1;gap:6px;min-width:0;display:flex}.chapter-rename input{min-width:0}.chapter-order-buttons{gap:4px;display:flex}.chapter-order-buttons button{padding:7px 9px}.danger-quiet{color:#984938;background:#fff9f5;border-color:#e8d8cc}.segment-maintenance{border-top:1px solid var(--line);margin-top:20px;padding:18px 0}.segment-maintenance summary{cursor:pointer;color:#687768;font-size:12px}.segment-maintenance>button{width:100%;margin-top:10px;display:block}.segment-maintenance label{font-size:11px}.publication-mode{align-items:center;gap:10px;display:flex}.publication-mode strong{font-size:12px}.publication-current{background:#f0f4eb;border-left:3px solid #91a789;padding:16px 18px}.publication-current>strong{margin:8px 0;font-size:16px;display:block}.publication-current code{color:var(--muted);font-size:10px}.publication-controls{flex-wrap:wrap;gap:8px;display:flex}.publication-controls a{font-size:12px}.publication-panel h3{margin:10px 0 0;font-size:13px}.release-list{gap:10px;max-height:280px;display:grid;overflow:auto}.release-row{border:1px solid var(--line);border-radius:8px;align-items:center;gap:15px;padding:14px;display:flex}.release-row>div{flex:1;min-width:0}.release-row strong,.release-row code,.release-row small{display:block}.release-row strong{font-size:12px}.release-row code{color:var(--muted);overflow-wrap:anywhere;margin:5px 0;font-size:9px}.release-row small{color:var(--muted);font-size:10px}.publication-errors{color:#844a35;background:#fff4ee;border:1px solid #e7d6ca;border-radius:8px;padding:14px;font-size:12px}.publication-errors summary{cursor:pointer;font-weight:600}.publication-errors p{margin-top:10px}.publication-errors li{margin-bottom:10px}.publication-errors code{overflow-wrap:anywhere;font-size:10px;display:block}.publication-errors pre{white-space:pre-wrap}.cover-upload{gap:12px;display:grid}.cover-upload input[type=file]{background:#f5f7f2;padding:8px;font-size:12px}.cover-upload>button{justify-self:start}.cover-upload details{color:var(--muted);font-size:11px}.cover-upload summary{cursor:pointer;margin-bottom:10px}
