:root{--font-primary: "Poppins", system-ui, -apple-system, sans-serif;--font-secondary: "Inter", system-ui, -apple-system, sans-serif;font-family:var(--font-secondary);line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-bg-primary: #1a1a1a;--color-bg-secondary: #242424;--color-bg-tertiary: #2a2a2a;--color-bg-elevated: #333333;--color-bg-overlay: rgba(0, 0, 0, .7);--color-bg-input: #2a2a2a;--color-text-primary: #ffffff;--color-text-secondary: #cccccc;--color-text-tertiary: #aaaaaa;--color-text-muted: #888888;--color-text-disabled: #666666;--color-border-default: #333333;--color-border-subtle: #444444;--color-border-hover: #555555;--color-border-focus: #646cff;--color-accent-primary: #646cff;--color-accent-primary-hover: #535bf2;--color-accent-primary-bg: rgba(100, 108, 255, .1);--color-accent-primary-bg-hover: rgba(100, 108, 255, .2);--color-success: #22c55e;--color-success-bg: rgba(34, 197, 94, .1);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .1);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .1);--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .1);--color-ws-connected: #4ade80;--color-ws-connecting: #facc15;--color-ws-disconnected: #f87171;--color-stat-purple: #646cff;--color-stat-purple-bg: rgba(100, 108, 255, .15);--color-stat-green: #4ade80;--color-stat-green-bg: rgba(74, 222, 128, .15);--color-stat-pink: #f472b6;--color-stat-pink-bg: rgba(244, 114, 182, .15);--color-stat-yellow: #facc15;--color-stat-yellow-bg: rgba(250, 204, 21, .15);--gradient-card: linear-gradient(135deg, #2a2a2a 0%, #1f1f1f 100%);--gradient-accent: linear-gradient(135deg, #646cff 0%, #5558dd 100%);--gradient-accent-hover: linear-gradient(135deg, #5558dd 0%, #4448cc 100%);--color-scrollbar-track: rgba(0, 0, 0, .1);--color-scrollbar-thumb: rgba(100, 108, 255, .3);--color-scrollbar-thumb-hover: rgba(100, 108, 255, .5);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .6);--glass-bg: rgba(26, 26, 26, .85);--glass-border: rgba(255, 255, 255, .1);color:var(--color-text-secondary);background-color:var(--color-bg-secondary)}[data-theme=light]{--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #e8e8e8;--color-bg-elevated: #ffffff;--color-bg-overlay: rgba(0, 0, 0, .5);--color-bg-input: #ffffff;--color-text-primary: #1a1a1a;--color-text-secondary: #333333;--color-text-tertiary: #555555;--color-text-muted: #777777;--color-text-disabled: #999999;--color-border-default: #e0e0e0;--color-border-subtle: #d0d0d0;--color-border-hover: #c0c0c0;--color-border-focus: #646cff;--color-accent-primary: #646cff;--color-accent-primary-hover: #535bf2;--color-accent-primary-bg: rgba(100, 108, 255, .1);--color-accent-primary-bg-hover: rgba(100, 108, 255, .15);--color-success: #16a34a;--color-success-bg: rgba(22, 163, 74, .1);--color-warning: #d97706;--color-warning-bg: rgba(217, 119, 6, .1);--color-error: #dc2626;--color-error-bg: rgba(220, 38, 38, .1);--color-info: #2563eb;--color-info-bg: rgba(37, 99, 235, .1);--color-ws-connected: #16a34a;--color-ws-connecting: #ca8a04;--color-ws-disconnected: #dc2626;--color-stat-purple: #646cff;--color-stat-purple-bg: rgba(100, 108, 255, .12);--color-stat-green: #22c55e;--color-stat-green-bg: rgba(34, 197, 94, .12);--color-stat-pink: #ec4899;--color-stat-pink-bg: rgba(236, 72, 153, .12);--color-stat-yellow: #eab308;--color-stat-yellow-bg: rgba(234, 179, 8, .12);--gradient-card: linear-gradient(135deg, #ffffff 0%, #f8f8f8 100%);--gradient-accent: linear-gradient(135deg, #646cff 0%, #5558dd 100%);--gradient-accent-hover: linear-gradient(135deg, #5558dd 0%, #4448cc 100%);--color-scrollbar-track: rgba(0, 0, 0, .05);--color-scrollbar-thumb: rgba(100, 108, 255, .3);--color-scrollbar-thumb-hover: rgba(100, 108, 255, .5);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .2);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .25);--glass-bg: rgba(255, 255, 255, .9);--glass-border: rgba(0, 0, 0, .1);color:var(--color-text-secondary);background-color:var(--color-bg-secondary)}a{font-weight:500;color:var(--color-accent-primary);text-decoration:inherit}a:hover{color:var(--color-accent-primary-hover)}body{margin:0;min-width:320px;min-height:100vh}#root{width:100vw;height:100vh;height:100dvh}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:var(--font-secondary);background-color:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-accent-primary)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.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))}.app{width:100vw;height:100vh;height:100dvh;display:flex;flex-direction:column}.app.immersive-editor{position:relative}.app.immersive-editor .main-content{position:absolute;inset:0}.floating-toolbar{position:fixed;top:16px;z-index:100;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-lg)}.floating-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:var(--color-accent-primary-bg);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.floating-toolbar-btn:active{background:#646cff80}.floating-toolbar-btn--danger{color:var(--color-error)}.floating-toolbar-btn--danger:active{background:#ff646499}.floating-toolbar-btn svg{width:16px;height:16px}.floating-toolbar-left{left:16px}.floating-toolbar-right{right:16px;transition:right .4s cubic-bezier(.34,1.56,.64,1)}.floating-toolbar-right.panel-open{right:336px;animation:toolbarSlideIn .5s cubic-bezier(.34,1.56,.64,1)}@keyframes toolbarSlideIn{0%{right:16px}60%{right:370px}80%{right:326px}to{right:336px}}.toolbar-icon-btn{height:36px;padding:0 10px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-accent-primary-bg);color:var(--color-text-secondary);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;gap:0;transition:all .2s ease;overflow:hidden}.toolbar-icon-btn:hover{background:var(--color-accent-primary-bg-hover);border-color:var(--color-accent-primary);color:var(--color-text-primary)}.toolbar-icon-btn:active{transform:scale(.95)}.toolbar-icon-btn.with-label{gap:0}.toolbar-icon-btn .toolbar-btn-label{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-size:13px;font-weight:500;transition:max-width .25s ease,opacity .2s ease,margin-left .25s ease;margin-left:0}.toolbar-icon-btn.with-label:hover .toolbar-btn-label{max-width:80px;opacity:1;margin-left:6px}.toolbar{display:flex;gap:12px;padding:12px 24px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-default);align-items:center}.toolbar>button{padding:8px 16px;border:none;border-radius:4px;background:var(--color-accent-primary);color:#fff;cursor:pointer;font-size:14px;transition:background .2s}.toolbar>button:hover{background:var(--color-accent-primary-hover)}.toolbar select{padding:8px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);cursor:pointer;font-size:14px}.map-name-input{padding:8px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px;width:200px}.map-name-input:focus{outline:none;border-color:var(--color-border-focus)}.map-name-input:disabled{opacity:.7;cursor:not-allowed;background:var(--color-bg-secondary)}.main-content{flex:1;display:flex;overflow:hidden}.flow-container{flex:1;height:100%;position:relative}.react-flow__node-mindMapNode{padding:0;border-radius:0;background:transparent;border:none;width:auto;height:auto}.react-flow__node-mindMapNode.selected{box-shadow:none}.react-flow__node-mindMapNode>div{width:100%;height:100%}.react-flow__edge-path{stroke:var(--color-accent-primary);stroke-width:2}.edge-label-container{overflow:visible;pointer-events:all}.edge-label{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:12px;font-weight:500;text-align:center;background:var(--glass-bg);border-radius:4px;padding:2px 8px;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.edge-label-input{width:100%;height:100%;padding:2px 8px;border:1px solid var(--color-accent-primary);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:12px;font-weight:500;text-align:center;outline:none;box-sizing:border-box}.edge-label-input:focus{border-color:var(--color-accent-primary-hover);box-shadow:0 0 0 2px var(--color-accent-primary-bg-hover)}.react-flow__controls{background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:8px}.react-flow__controls-button{background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-default);fill:var(--color-text-primary)}.react-flow__controls-button:hover{background:var(--color-bg-elevated)}.react-flow__minimap{background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:8px}.mindmap-node-wrapper{padding:10px;margin:-10px;width:calc(100% + 20px);height:calc(100% + 20px)}.mindmap-node{padding:10px 20px;border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:2px solid var(--color-accent-primary);font-size:14px;min-width:80px;min-height:40px;width:100%;height:100%;text-align:center;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.mindmap-node.has-extensions{min-width:120px}.mindmap-node.is-selected{filter:brightness(1.02) drop-shadow(0 0 4px var(--node-glow-color, #646cff))}.mindmap-node.is-dragging,.mindmap-node-button.is-dragging{--drag-rotation: 0deg;--drag-skew-x: 0deg;--drag-skew-y: 0deg;transform:scale(1.04) rotate(var(--drag-rotation)) skew(var(--drag-skew-x)) skewY(var(--drag-skew-y))!important;box-shadow:0 12px 32px #00000080,0 24px 64px #00000059,0 40px 100px #0003,0 60px 140px #0000001a!important;filter:brightness(1.06)!important;cursor:grabbing;transition:transform .08s ease-out!important;animation:none!important}.mindmap-node.is-selected.is-dragging,.mindmap-node-button.is-selected.is-dragging{animation:none!important}@keyframes selectedNodeBreathing{0%,to{filter:brightness(1) drop-shadow(0 0 0px var(--node-glow-color, #646cff));transform:scale(1)}50%{filter:brightness(1.05) drop-shadow(0 0 8px var(--node-glow-color, #646cff));transform:scale(1.01)}}.node-hint{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);white-space:nowrap;pointer-events:none;animation:hintFadeIn .3s ease-out}.node-hint-text{background:#646cffe6;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:500;box-shadow:0 2px 8px #0000004d}@keyframes hintFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.node-delete-confirm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;animation:deleteConfirmFadeIn .15s ease-out}.node-delete-confirm-content{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 16px;background:var(--glass-bg);border:1px solid var(--color-border-subtle);border-radius:8px;box-shadow:var(--shadow-lg);white-space:nowrap}.node-delete-confirm-content span{color:var(--color-text-secondary);font-size:13px;font-weight:500}.node-delete-confirm-buttons{display:flex;gap:8px}.node-delete-confirm-btn{padding:6px 14px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.node-delete-confirm-btn--cancel{background:#ffffff1a;color:#aaa}.node-delete-confirm-btn--cancel:hover{background:#fff3;color:#fff}.node-delete-confirm-btn--confirm{background:#ff5050cc;color:#fff}.node-delete-confirm-btn--confirm:hover{background:#ff3c3c}@keyframes deleteConfirmFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.node-resizer-line{border-width:1px!important;border-radius:8px!important;z-index:10!important}.node-resizer-handle{width:6px!important;height:6px!important;border-radius:50%!important;z-index:10!important}.react-flow__node.dragging .node-resizer-line,.react-flow__node.dragging .node-resizer-handle{opacity:0!important;pointer-events:none!important}.node-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;min-height:0}.node-content.with-extensions{justify-content:flex-start;align-items:stretch}.node-title-section{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.node-title-section.has-extensions{padding-bottom:8px}.node-divider{width:100%;height:0;border-top:1px solid;opacity:.3;margin:4px 0}.node-extensions-section{flex:1;overflow-y:auto;overflow-x:hidden;text-align:left;min-height:0;display:flex;flex-direction:column;gap:4px;padding-top:4px;width:100%;position:relative}.node-extensions-section::-webkit-scrollbar{width:4px}.node-extensions-section::-webkit-scrollbar-track{background:#0000001a;border-radius:2px}.node-extensions-section::-webkit-scrollbar-thumb{background:#646cff4d;border-radius:2px}.node-extensions-section::-webkit-scrollbar-thumb:hover{background:#646cff80}.collapsed-extensions-row{display:flex;gap:4px;padding:4px 0;opacity:.6}.extension-indicator.collapsed{opacity:.5}.node-label{font-weight:500;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;cursor:pointer}.node-label-input{font-weight:500;font-size:inherit;color:inherit;background:transparent;border:none;border-bottom:1px solid currentColor;outline:none;width:100%;min-width:50px;padding:0;margin:0;font-family:inherit}.node-label-input::placeholder{color:inherit;opacity:.4;font-weight:400;font-style:italic}.node-lock-indicator{position:absolute;top:4px;right:4px;font-size:10px;opacity:.7}.node-extensions-preview{display:flex;justify-content:center;gap:4px;margin-top:6px;font-size:12px}.extension-indicator{opacity:.7;cursor:default}.node-extensions-expanded{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;min-width:250px;max-width:350px;background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:8px;padding:8px;z-index:100;box-shadow:var(--shadow-lg);text-align:left}.node-extensions-expanded:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid var(--color-border-default)}.node-extensions-expanded:after{content:"";position:absolute;top:-5px;left:50%;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid var(--color-bg-primary)}.node-extensions-section .extension-container{margin-top:0;background:transparent;flex:1;display:flex;flex-direction:column}.node-extensions-section .extension-content{flex:1;display:flex;flex-direction:column;padding:0}.node-extensions-section .image-extension-edit,.node-extensions-section .link-extension-edit,.node-extensions-section .code-extension-edit,.node-extensions-section .embed-extension-edit,.node-extensions-section .extension-input,.node-extensions-section .extension-select,.node-extensions-section textarea{width:100%;box-sizing:border-box}.node-extensions-section .youtube-extension,.node-extensions-section .youtube-extension-edit,.node-extensions-section .youtube-preview,.node-extensions-section .youtube-preview-wrapper,.node-extensions-section .youtube-url-input-wrapper{flex:1;display:flex;flex-direction:column;width:100%;min-height:0;min-width:0;overflow:hidden}.node-extensions-section .youtube-url-input-wrapper .extension-input{width:100%;box-sizing:border-box;margin-bottom:0}.node-extensions-section .youtube-preview-wrapper{position:relative}.node-extensions-section .youtube-change-btn,.node-extensions-section .youtube-remove-btn{position:absolute;top:4px;z-index:10;padding:4px 8px;border:none;border-radius:4px;font-size:11px;cursor:pointer;opacity:0;transition:opacity .2s}.node-extensions-section .youtube-preview-wrapper:hover .youtube-change-btn,.node-extensions-section .youtube-preview-wrapper:hover .youtube-remove-btn{opacity:1}.node-extensions-section .youtube-change-btn{left:4px;background:#646cffe6;color:#fff}.node-extensions-section .youtube-change-btn:hover{background:#646cff}.node-extensions-section .youtube-remove-btn{right:4px;background:#ff6464e6;color:#fff}.node-extensions-section .youtube-remove-btn:hover{background:#ff6464}.node-extensions-section .youtube-url-actions{display:flex;gap:6px;margin-top:6px;flex-shrink:0;flex-wrap:wrap}.node-extensions-section .youtube-action-btn{padding:6px 12px;border:none;border-radius:4px;font-size:11px;cursor:pointer}.node-extensions-section .youtube-confirm-btn{background:var(--color-accent-primary);color:#fff}.node-extensions-section .youtube-confirm-btn:hover{background:var(--color-accent-primary-hover)}.node-extensions-section .youtube-cancel-btn{background:var(--color-border-subtle);color:var(--color-text-secondary)}.node-extensions-section .youtube-cancel-btn:hover{background:var(--color-border-hover)}.node-extensions-section .youtube-extension iframe,.node-extensions-section .youtube-preview iframe{width:100%;flex:1;min-height:80px;border:none;border-radius:4px}.node-extensions-section .embed-extension,.node-extensions-section .embed-extension-view,.node-extensions-section .embed-preview{flex:1;display:flex;flex-direction:column;min-height:100px}.node-extensions-section .embed-extension iframe,.node-extensions-section .embed-extension-view iframe,.node-extensions-section .embed-preview iframe{width:100%;flex:1;min-height:80px;border:none;border-radius:4px}.node-extensions-section .image-extension img,.node-extensions-section .image-preview img{max-width:100%;height:auto;max-height:150px;object-fit:contain}.mindmap-node.theme-image .node-extensions-section .image-extension img,.mindmap-node.theme-image .node-extensions-section .image-extension-img{max-width:none!important;max-height:none!important;width:100%!important;height:100%!important;object-fit:cover!important}.node-extensions-section .image-extension-view{flex:1;display:flex;align-items:center;justify-content:center;min-height:60px}.mindmap-node.theme-image .node-extensions-section .image-extension-view{position:absolute!important;inset:0;min-height:0!important}.node-extensions-section .image-extension-view.image-fill-mode{position:absolute;inset:0;margin:0;padding:0;border-radius:0 0 6px 6px;overflow:hidden}.node-extensions-section .image-extension-img{width:100%;height:auto;max-height:150px;object-fit:contain}.node-extensions-section .code-block{max-height:100px;overflow-y:auto;font-size:10px}.mindmap-node.theme-code .node-extensions-section .code-block{max-height:none!important;position:absolute!important;inset:0}.mindmap-node.theme-tasks .node-extensions-section .task-list{max-height:none!important}.mindmap-node.theme-tasks .node-extensions-section .task-list-extension,.mindmap-node.theme-tasks .node-extensions-section .task-list-view,.mindmap-node.theme-tasks .node-extensions-section .task-list-editing{position:absolute!important;inset:0}.node-extensions-section .text-extension{font-size:12px;flex:1;overflow-y:auto}.node-extensions-section .text-extension-empty{opacity:.5;font-style:italic;flex:1;display:flex;align-items:center;justify-content:center}.text-placeholder{color:var(--color-text-muted);font-size:11px}.node-extensions-section .text-extension-view{flex:1;display:flex;flex-direction:column;position:relative;min-height:0}.node-extensions-section .text-edit-btn,.node-extensions-section .notes-edit-btn,.node-extensions-section .code-edit-btn,.node-extensions-section .link-edit-btn,.node-extensions-section .image-edit-btn,.node-extensions-section .embed-edit-btn,.node-extensions-section .task-manage-btn{position:absolute;top:4px;right:4px;z-index:10;padding:4px 8px;border:none;border-radius:4px;font-size:11px;cursor:pointer;opacity:0;transition:opacity .2s;background:#646cffe6;color:#fff}.node-extensions-section .text-extension-view:hover .text-edit-btn,.node-extensions-section .notes-extension-view:hover .notes-edit-btn,.node-extensions-section .code-extension-view:hover .code-edit-btn,.node-extensions-section .link-extension-view:hover .link-edit-btn,.node-extensions-section .image-extension-view:hover .image-edit-btn,.node-extensions-section .embed-extension-view:hover .embed-edit-btn,.node-extensions-section .task-list-view:hover .task-manage-btn{opacity:1}.node-extensions-section .text-edit-btn:hover,.node-extensions-section .notes-edit-btn:hover,.node-extensions-section .code-edit-btn:hover,.node-extensions-section .link-edit-btn:hover,.node-extensions-section .image-edit-btn:hover,.node-extensions-section .embed-edit-btn:hover,.node-extensions-section .task-manage-btn:hover{background:#646cff}.node-extensions-section .toolbar-btn-save{margin-left:5px;background:#22c55e;color:#fff}.node-extensions-section .toolbar-btn-save:hover{background:#16a34a}.node-extensions-section .toolbar-select{height:20px;padding:0 4px;border:none;border-radius:3px;background:var(--color-bg-elevated);color:var(--color-text-secondary);font-size:9px;cursor:pointer}.node-extensions-section .toolbar-select:hover{background:var(--color-accent-primary-bg)}.node-extensions-section .toolbar-btn-align-left,.node-extensions-section .toolbar-btn-align-center,.node-extensions-section .toolbar-btn-align-right{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:4px}.node-extensions-section .toolbar-btn-align-center{align-items:center}.node-extensions-section .toolbar-btn-align-right{align-items:flex-end}.node-extensions-section .toolbar-btn-align-left:before,.node-extensions-section .toolbar-btn-align-left:after,.node-extensions-section .toolbar-btn-align-center:before,.node-extensions-section .toolbar-btn-align-center:after,.node-extensions-section .toolbar-btn-align-right:before,.node-extensions-section .toolbar-btn-align-right:after{content:"";display:block;height:1px;background:currentColor}.node-extensions-section .toolbar-btn-align-left:before,.node-extensions-section .toolbar-btn-align-center:before,.node-extensions-section .toolbar-btn-align-right:before{width:10px}.node-extensions-section .toolbar-btn-align-left:after,.node-extensions-section .toolbar-btn-align-center:after,.node-extensions-section .toolbar-btn-align-right:after{width:6px}.node-extensions-section .text-extension-edit{font-size:12px;flex:1;display:flex;flex-direction:column;width:100%;box-sizing:border-box}.node-extensions-section .text-editor{min-height:40px;font-size:12px;flex:1}.node-extensions-section .notes-content{font-size:11px}.node-extensions-section .notes-textarea{min-height:40px;font-size:11px;width:100%;box-sizing:border-box}.node-extensions-section .notes-extension-edit{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:8px}.node-extensions-section .task-list-extension{width:100%;box-sizing:border-box;overflow:hidden;gap:6px}.node-extensions-section .task-add-row{gap:4px}.node-extensions-section .task-add-input{padding:6px 8px;font-size:11px;min-width:0}.node-extensions-section .task-add-btn{padding:6px 10px;font-size:10px}.node-extensions-section .task-filter-select{padding:4px 8px;font-size:10px}.node-extensions-section .task-list{gap:2px;max-height:150px;overflow-y:auto}.node-extensions-section .task-item{padding:6px 8px;gap:8px}.node-extensions-section .task-checkbox-wrapper{width:16px;height:16px}.node-extensions-section .task-checkmark{width:14px;height:14px}.node-extensions-section .task-checkbox-wrapper input:checked+.task-checkmark:after{font-size:10px}.node-extensions-section .task-title{font-size:11px}.node-extensions-section .task-date{font-size:9px}.node-extensions-section .task-edit-input{padding:3px 6px;font-size:11px}.node-extensions-section .task-action-btn{width:22px;height:22px;font-size:10px}.node-extensions-section .task-empty{padding:8px;font-size:10px}.node-extensions-section .extension-header{padding:2px 6px;font-size:9px}.node-extensions-section .extension-content{padding:6px}.node-extensions-section .extension-type-badge{font-size:9px}.node-extensions-section .extension-action-btn{width:16px;height:16px;font-size:10px}.node-extensions-section .text-toolbar{padding:2px;gap:2px}.node-extensions-section .toolbar-btn{width:20px;height:20px;font-size:10px}.node-extensions-section .toolbar-divider{margin:0 2px}.node-handle{width:10px;height:10px;background:transparent;border:1px solid rgba(100,108,255,.6);opacity:0;transition:opacity .2s ease,box-shadow .2s ease;z-index:20!important}.node-handle.react-flow__handle-top{top:-12px!important}.node-handle.react-flow__handle-bottom{bottom:-12px!important}.node-handle.react-flow__handle-left{left:-12px!important}.node-handle.react-flow__handle-right{right:-12px!important}.node-handle.visible{opacity:0}.react-flow__node.connecting .node-handle,.react-flow__node:hover:not(:has(.read-only-node)) .node-handle{opacity:1;animation:handleGlow .6s ease-in-out 2}@keyframes handleGlow{0%,to{box-shadow:0 0 4px 1px #646cff66}50%{box-shadow:0 0 12px 4px #646cffcc}}.save-indicator{position:absolute;bottom:10px;right:10px;padding:4px 10px;font-size:11px;border-radius:4px;background:#2a2a2ab3;color:#ffffff80;pointer-events:none;transition:opacity .3s ease,color .3s ease;z-index:5}.save-indicator.saved{opacity:.4}.save-indicator.saving{opacity:.8;color:#646cffcc}.save-indicator.unsaved{opacity:.6;color:#ffc864b3}.save-indicator.error{opacity:1;color:#ff6464e6;background:#ff323226}.save-indicator.over-limit{border:1px solid rgba(255,100,100,.5)}.save-indicator .size-info{opacity:.6;font-size:10px}.node-panel{width:320px;background:var(--color-bg-primary);border-left:1px solid var(--color-border-default);display:flex;flex-direction:column;overflow:hidden;max-height:100%}.node-panel-header{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border-default);gap:8px;flex-shrink:0}.node-panel-header h3{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary);flex:1}.node-lock-btn{background:none;border:1px solid var(--color-border-subtle);border-radius:4px;padding:4px 6px;cursor:pointer;font-size:14px;transition:all .2s;opacity:.6}.node-lock-btn:hover{opacity:1;border-color:var(--color-border-hover)}.node-lock-btn.locked{opacity:1;background:var(--color-error-bg);border-color:var(--color-error)}.node-panel-close{background:none;border:none;color:var(--color-text-muted);font-size:20px;cursor:pointer;padding:0;line-height:1;transition:color .2s}.node-panel-close:hover{color:var(--color-text-primary)}.node-panel-tabs{display:flex;border-bottom:1px solid var(--color-border-default);padding:0 16px;flex-shrink:0}.node-panel-tab{padding:10px 16px;background:none;border:none;color:var(--color-text-muted);font-size:13px;cursor:pointer;position:relative;transition:color .2s}.node-panel-tab:hover{color:var(--color-text-secondary)}.node-panel-tab.active{color:var(--color-text-primary)}.node-panel-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--color-accent-primary)}.node-panel-content{padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1;min-height:0}.node-panel-field{display:flex;flex-direction:column;gap:6px}.node-panel-field label{font-size:12px;color:var(--color-text-muted);font-weight:500}.node-panel-field input[type=text]{padding:8px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px}.node-panel-field input[type=text]:focus{outline:none;border-color:var(--color-border-focus)}.color-picker-wrapper{display:flex;gap:8px;align-items:center}.color-picker-wrapper input[type=color]{width:36px;height:36px;border:none;border-radius:4px;cursor:pointer;padding:0;background:transparent}.color-picker-wrapper input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-picker-wrapper input[type=color]::-webkit-color-swatch{border-radius:4px;border:1px solid var(--color-border-default)}.color-text-input{flex:1;padding:8px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px;font-family:monospace}.color-text-input:focus{outline:none;border-color:var(--color-border-focus)}.font-size-picker{display:flex;gap:8px;align-items:center}.font-size-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--color-border-default);border-radius:2px;cursor:pointer}.font-size-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-accent-primary);cursor:pointer}.font-size-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-accent-primary);cursor:pointer;border:none}.font-size-input{width:50px;padding:6px 8px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px;text-align:center}.font-size-input:focus{outline:none;border-color:var(--color-accent-primary)}.font-size-unit{color:var(--color-text-muted);font-size:12px}.node-panel-section{border-top:1px solid var(--color-border-default);padding-top:16px;margin-top:8px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header label{font-size:12px;color:var(--color-text-muted);font-weight:500}.add-extension-btn{padding:4px 10px;border:1px solid var(--color-border-subtle);border-radius:4px;background:transparent;color:var(--color-accent-primary);cursor:pointer;font-size:11px;transition:all .2s}.add-extension-btn:hover{background:var(--color-accent-primary-bg);border-color:var(--color-accent-primary)}.extensions-list{display:flex;flex-direction:column;gap:8px}.extension-item{border:1px solid var(--color-border-default);border-radius:6px;overflow:hidden;background:var(--color-bg-secondary)}.extension-item-header{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-default)}.extension-item-type{font-size:11px;color:var(--color-text-tertiary);text-transform:capitalize}.extension-item-actions{display:flex;gap:4px}.ext-move-btn,.ext-collapse-btn,.ext-remove-btn{width:20px;height:20px;border:none;border-radius:3px;background:var(--color-accent-primary-bg);color:var(--color-text-muted);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s}.ext-move-btn:hover,.ext-collapse-btn:hover{background:var(--color-accent-primary-bg-hover);color:var(--color-text-primary)}.ext-remove-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.no-extensions{font-size:12px;color:var(--color-text-disabled);font-style:italic;text-align:center;padding:16px 0;margin:0}.extension-item-compact,.extension-item-compact .extension-item-header{border-bottom:none}.extension-theme-settings{padding:12px 10px 8px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--color-border-default);margin-top:8px}.theme-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.theme-setting-row label{font-size:12px;color:var(--color-text-tertiary);flex-shrink:0;min-width:80px}.color-picker-compact{display:flex;align-items:center;gap:6px;flex:1;justify-content:flex-end}.color-picker-compact input[type=color]{width:28px;height:28px;padding:0;border:1px solid var(--color-border-subtle);border-radius:4px;cursor:pointer;background:transparent}.color-picker-compact input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-picker-compact input[type=color]::-webkit-color-swatch{border-radius:2px;border:none}.color-text-input-sm{width:70px;padding:4px 6px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:11px;font-family:monospace}.color-text-input-sm:focus{outline:none;border-color:var(--color-accent-primary)}.size-picker-compact{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end}.size-picker-compact input[type=range]{width:80px;height:4px;background:var(--color-border-default);border-radius:2px;cursor:pointer;-webkit-appearance:none}.size-picker-compact input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-accent-primary);cursor:pointer}.size-picker-compact input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-accent-primary);cursor:pointer;border:none}.size-picker-compact .size-value{font-size:11px;color:var(--color-text-muted);min-width:32px;text-align:right}.terminal-preset-picker{display:flex;flex-wrap:wrap;gap:4px;flex:1;justify-content:flex-end}.terminal-preset-btn{padding:4px 8px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-muted);font-size:10px;cursor:pointer;transition:all .2s}.terminal-preset-btn:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.terminal-preset-btn.selected{border-color:currentColor;color:var(--color-text-primary)}.terminal-preset-matrix.selected{background:#0d0d0d;color:#00ff41;border-color:#00ff41;text-shadow:0 0 4px #00ff41}.terminal-preset-retro.selected{background:#1a1a0d;color:#ffb000;border-color:#ffb000;text-shadow:0 0 4px #ffb000}.terminal-preset-cyberpunk.selected{background:#0a0a14;color:#f0f;border-color:#f0f;text-shadow:0 0 4px #ff00ff}.terminal-preset-hacker.selected{background:#000;color:#3f3;border-color:#3f3;text-shadow:0 0 4px #33ff33}.terminal-preset-custom.selected{background:var(--color-bg-primary);color:var(--color-accent-primary);border-color:var(--color-accent-primary)}.palette-color-picker{display:flex;flex-wrap:wrap;gap:8px}.palette-color-btn{width:32px;height:32px;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s}.palette-color-btn:hover{transform:scale(1.1);border-color:#ffffff4d}.palette-color-btn.selected{border-color:#fff;box-shadow:0 0 8px #ffffff80}.bg-color-picker{display:flex;flex-direction:column;gap:8px}.bg-color-special{display:flex;gap:8px}.bg-color-btn{padding:6px 12px;border:2px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;color:var(--color-bg-primary);background:var(--color-text-secondary)}.bg-color-btn:hover{border-color:#ffffff80}.bg-color-btn.selected{border-color:var(--color-accent-primary);box-shadow:0 0 8px #646cff80}.bg-color-btn.default-btn,.bg-color-btn.black-btn{color:#fff}.bg-color-btn.transparent-btn{background:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0px;background-color:#fff;color:var(--color-text-disabled)}.node-panel-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border-default);background:var(--color-bg-primary);flex-shrink:0}.node-panel-btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.node-panel-btn:disabled{opacity:.5;cursor:not-allowed}.node-panel-btn-cancel{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.node-panel-btn-cancel:hover:not(:disabled){background:var(--color-border-subtle);color:var(--color-text-primary)}.node-panel-btn-apply{background:var(--color-accent-primary);color:#fff}.node-panel-btn-apply:hover:not(:disabled){background:var(--color-accent-primary-hover)}.node-panel-btn-delete{background-color:var(--color-error);color:#fff;padding:8px 10px;display:flex;align-items:center;justify-content:center}.node-panel-btn-delete:hover:not(:disabled){background-color:#c0392b;color:#fff}.node-panel-footer-spacer{flex:1}.node-panel.read-only{background:var(--color-bg-primary)}.read-only-notice{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--color-accent-primary-bg);border:1px solid rgba(100,108,255,.3);border-radius:8px;margin-bottom:16px}.read-only-icon{font-size:18px;flex-shrink:0}.read-only-notice p{margin:0;font-size:13px;color:var(--color-text-tertiary);line-height:1.4}.read-only-value{padding:8px 12px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:4px;color:var(--color-text-secondary);font-size:14px}.read-only-extensions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.read-only-extension-badge{display:inline-flex;align-items:center;padding:4px 10px;background:var(--color-bg-elevated);border-radius:12px;font-size:12px;color:var(--color-text-tertiary);text-transform:capitalize}.unsaved-modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:2000}.unsaved-modal{background:var(--color-bg-tertiary);border-radius:12px;box-shadow:var(--shadow-xl);min-width:320px;max-width:400px;overflow:hidden}.unsaved-modal-header{padding:16px 20px;border-bottom:1px solid var(--color-border-default)}.unsaved-modal-header h4{margin:0;font-size:16px;color:var(--color-text-primary)}.unsaved-modal-content{padding:16px 20px}.unsaved-modal-content p{margin:0;font-size:14px;color:var(--color-text-tertiary);line-height:1.5}.unsaved-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--color-border-default);background:var(--color-bg-secondary)}.unsaved-modal-btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.unsaved-modal-btn:disabled{opacity:.5;cursor:not-allowed}.unsaved-modal-btn-discard{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.unsaved-modal-btn-discard:hover:not(:disabled){background:var(--color-border-subtle);color:var(--color-text-primary)}.unsaved-modal-btn-apply{background:var(--color-accent-primary);color:#fff}.unsaved-modal-btn-apply:hover:not(:disabled){background:var(--color-accent-primary-hover)}.unsaved-modal-btn-delete{background:var(--color-error);color:#fff}.unsaved-modal-btn-delete:hover:not(:disabled){background:#c0392b}.delete-modal .unsaved-modal-header h4{color:var(--color-error)}.pro-button{padding:8px 16px;border:none;border-radius:4px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;cursor:pointer;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s;margin-left:auto}.pro-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}.floating-toolbar .pro-button{margin-left:0;padding:6px 12px;font-size:13px;border-radius:8px}.user-menu{display:flex;align-items:center;gap:8px;margin-left:auto}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-accent-primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff;cursor:pointer;border:2px solid transparent;box-sizing:border-box;transition:border-color .2s}.user-avatar.ws-joined{border-color:#4ade80}.user-avatar.ws-connecting,.user-avatar.ws-authenticating,.user-avatar.ws-joining{border-color:#facc15}.user-avatar.ws-disconnected{border-color:#f87171}.user-email{font-size:12px;color:var(--color-text-muted);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sign-out-button{padding:6px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:12px;transition:all .2s}.sign-out-button:hover{border-color:var(--color-accent-primary);color:var(--color-text-primary)}.auth-modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.auth-modal{background:var(--color-bg-primary);border-radius:12px;padding:32px;width:100%;max-width:400px;position:relative;border:1px solid var(--color-border-default)}.auth-modal h2{margin:0 0 8px;font-size:24px;color:var(--color-text-primary)}.auth-modal-description{color:var(--color-text-muted);font-size:14px;margin:0 0 24px;line-height:1.5}.auth-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--color-text-muted);font-size:24px;cursor:pointer;padding:0;line-height:1}.auth-modal-close:hover{color:var(--color-text-primary)}.auth-error{background:var(--color-error-bg);border:1px solid rgba(239,68,68,.3);color:var(--color-error);padding:12px;border-radius:8px;font-size:14px;margin-bottom:16px}.auth-modal form{display:flex;flex-direction:column;gap:12px}.auth-modal input[type=email],.auth-modal input[type=password]{padding:12px 16px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px}.auth-modal input[type=email]:focus,.auth-modal input[type=password]:focus{outline:none;border-color:var(--color-accent-primary)}.auth-modal input::placeholder{color:var(--color-text-disabled)}.auth-submit-btn{padding:12px 16px;border:none;border-radius:8px;background:var(--color-accent-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.auth-submit-btn:hover:not(:disabled){background:var(--color-accent-primary-hover)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:16px;margin:20px 0;color:var(--color-text-disabled);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border-default)}.google-auth-button{width:100%;padding:12px 16px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s}.google-auth-button:hover:not(:disabled){border-color:var(--color-accent-primary);background:var(--color-bg-elevated)}.google-auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-switch{margin-top:20px;text-align:center;color:var(--color-text-muted);font-size:14px}.auth-switch button{background:none;border:none;color:var(--color-accent-primary);cursor:pointer;font-size:14px;padding:0}.auth-switch button:hover{text-decoration:underline}.auth-guest-note{margin-top:16px;text-align:center;color:var(--color-text-disabled);font-size:12px;font-style:italic}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--color-text-muted);font-size:14px}.save-indicator.local.saved{color:#64c864b3}.map-config-panel{width:320px;background:var(--color-bg-primary);border-left:1px solid var(--color-border-default);display:flex;flex-direction:column;overflow:hidden}.map-config-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border-default)}.map-config-header h3{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.map-config-close{background:none;border:none;color:var(--color-text-muted);font-size:20px;cursor:pointer;padding:0;line-height:1;transition:color .2s}.map-config-close:hover{color:var(--color-text-primary)}.map-config-tabs{display:flex;border-bottom:1px solid var(--color-border-default);gap:4px;padding:0 8px}.map-config-tab{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:none;border:none;color:var(--color-text-muted);font-size:14px;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.map-config-tab:hover{color:var(--color-text-primary);background:var(--color-accent-primary-bg)}.map-config-tab.active{color:var(--color-text-primary);border-bottom-color:var(--color-accent-primary);background:var(--color-accent-primary-bg);border-radius:6px 6px 0 0}.map-config-content{padding:16px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.config-section{display:flex;flex-direction:column;gap:8px}.config-label{font-size:12px;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.config-hint{font-size:11px;color:var(--color-text-disabled);margin:0}.config-textarea{padding:10px 12px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:13px;resize:vertical;font-family:inherit;min-height:60px}.config-textarea:focus{outline:none;border-color:var(--color-border-focus)}.config-input{padding:8px 12px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:13px;width:100%;box-sizing:border-box}.config-input:focus{outline:none;border-color:var(--color-border-focus)}.permission-options{display:flex;flex-direction:column;gap:8px}.permission-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-tertiary);cursor:pointer;transition:all .2s}.permission-option:hover{border-color:var(--color-border-subtle);background:var(--color-bg-elevated)}.permission-option.selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.permission-option input{display:none}.permission-icon{font-size:18px}.permission-text strong{font-size:13px;color:var(--color-text-primary)}.permission-text small{font-size:11px;color:var(--color-text-muted)}.background-options{display:flex;flex-direction:column;gap:12px}.background-color-row,.background-image-row,.background-opacity-row{display:flex;align-items:center;gap:10px}.background-color-row>span,.background-image-row>span,.background-opacity-row>span{font-size:12px;color:var(--color-text-tertiary);min-width:80px}.color-picker-inline{display:flex;align-items:center;gap:8px;flex:1}.color-picker-inline input[type=color]{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;padding:0;background:transparent}.color-picker-inline input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-picker-inline input[type=color]::-webkit-color-swatch{border-radius:4px;border:1px solid var(--color-border-subtle)}.color-hex-input{flex:1;padding:6px 10px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:12px;font-family:monospace}.color-hex-input:focus{outline:none;border-color:var(--color-accent-primary)}.background-image-row .config-input{flex:1}.opacity-slider{display:flex;align-items:center;gap:10px;flex:1}.opacity-slider input[type=range]{flex:1;height:4px;-webkit-appearance:none;background:var(--color-border-default);border-radius:2px}.opacity-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--color-accent-primary);border-radius:50%;cursor:pointer}.opacity-value{font-size:11px;color:var(--color-text-muted);min-width:35px}.background-preview{margin-top:8px;border-radius:6px;overflow:hidden;max-height:100px}.background-preview img{width:100%;height:auto;object-fit:cover}.grid-style-options{display:flex;gap:8px}.grid-style-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:2px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-tertiary);cursor:pointer;transition:all .2s}.grid-style-btn:hover{border-color:var(--color-border-subtle);background:var(--color-bg-elevated)}.grid-style-btn.selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.grid-style-icon{font-size:20px;line-height:1}.grid-style-label{font-size:11px;color:var(--color-text-muted)}.grid-style-btn.selected .grid-style-label{color:var(--color-accent-primary)}.palette-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.palette-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:2px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-tertiary);cursor:pointer;transition:all .2s}.palette-option:hover{border-color:var(--color-border-subtle);background:var(--color-bg-elevated)}.palette-option.selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.palette-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;width:100%;aspect-ratio:2 / 1}.palette-preview.free-picker{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f97316,#22c55e,#0ea5e9,#8b5cf6);border-radius:4px}.palette-preview .color-wheel{font-size:20px}.palette-color{border-radius:2px}.palette-name{font-size:10px;color:var(--color-text-muted);text-align:center}.palette-option.selected .palette-name{color:var(--color-text-primary)}.selected-palette-preview{margin-top:12px;padding:10px;background:var(--color-bg-secondary);border-radius:6px}.preview-label{font-size:11px;color:var(--color-text-muted);display:block;margin-bottom:8px}.preview-colors{display:flex;gap:6px;flex-wrap:wrap}.preview-color-swatch{width:28px;height:28px;border-radius:4px;border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:transform .2s}.preview-color-swatch:hover{transform:scale(1.1)}.config-button{padding:8px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:14px;display:flex;align-items:center;gap:6px;transition:all .2s}.config-button:hover{border-color:var(--color-accent-primary);color:var(--color-text-primary);background:var(--color-accent-primary-bg)}.config-button.active{border-color:var(--color-accent-primary);color:var(--color-accent-primary);background:var(--color-accent-primary-bg-hover)}.flow-container.has-bg-image{position:relative}.flow-background-image{position:absolute;inset:0;background-size:cover;background-position:center;pointer-events:none;z-index:0}.background-image-section{margin-top:8px}.background-image-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.background-image-label>span{font-size:12px;color:var(--color-text-tertiary)}.media-library-btn{padding:4px 10px;border:1px solid var(--color-border-subtle);border-radius:4px;background:transparent;color:var(--color-accent-primary);cursor:pointer;font-size:11px;transition:all .2s}.media-library-btn:hover{background:var(--color-accent-primary-bg);border-color:var(--color-accent-primary)}.background-image-selected{display:flex;flex-direction:column;gap:8px}.background-image-selected .background-preview{margin-top:0}.background-image-actions{display:flex;gap:8px}.change-image-btn,.remove-image-btn{flex:1;padding:6px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:pointer;font-size:12px;transition:all .2s}.change-image-btn:hover{border-color:var(--color-accent-primary);color:var(--color-text-primary)}.remove-image-btn:hover{border-color:var(--color-error);color:var(--color-error)}.background-image-empty{display:flex;flex-direction:column;gap:8px}.guest-hint{font-size:12px;color:var(--color-text-disabled);font-style:italic;margin:0;text-align:center;padding:12px;background:var(--color-bg-secondary);border-radius:6px}.add-image-btn{padding:12px;border:2px dashed var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:13px;transition:all .2s}.add-image-btn:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.url-input-row{display:flex;flex-direction:column;gap:6px}.or-divider{font-size:11px;color:var(--color-text-disabled);text-align:center}.media-library-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:2000}.media-library{width:90%;max-width:700px;max-height:90vh;background:var(--color-bg-primary);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border-default)}.media-library-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border-default)}.media-library-header h3{margin:0;font-size:16px;color:var(--color-text-primary)}.media-library-close{background:none;border:none;color:var(--color-text-muted);font-size:24px;cursor:pointer;padding:0;line-height:1}.media-library-close:hover{color:var(--color-text-primary)}.storage-usage{padding:12px 20px;background:var(--color-bg-secondary);display:flex;align-items:center;gap:12px}.storage-bar{flex:1;height:6px;background:var(--color-border-default);border-radius:3px;overflow:hidden}.storage-bar-fill{height:100%;background:var(--gradient-accent);border-radius:3px;transition:width .3s}.storage-text{font-size:11px;color:var(--color-text-muted);white-space:nowrap}.upload-area{margin:16px 20px;padding:24px;border:2px dashed var(--color-border-subtle);border-radius:8px;background:var(--color-bg-secondary);text-align:center;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:8px}.upload-area:hover:not(.disabled){border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.upload-area.drag-over{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg-hover)}.upload-area.disabled{cursor:not-allowed;opacity:.6}.upload-icon{font-size:32px;color:var(--color-accent-primary)}.upload-text{font-size:14px;color:var(--color-text-tertiary)}.upload-hint{font-size:11px;color:var(--color-text-disabled)}.upload-progress{width:100%;display:flex;flex-direction:column;gap:8px}.upload-progress-bar{height:8px;background:var(--color-border-default);border-radius:4px;overflow:hidden}.upload-progress-fill{height:100%;background:var(--color-accent-primary);border-radius:4px;transition:width .2s}.upload-progress span{font-size:12px;color:var(--color-text-muted)}.upload-error{display:flex;align-items:center;gap:8px;color:var(--color-error)}.upload-error .error-icon{width:24px;height:24px;background:var(--color-error-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.media-grid{flex:1;overflow-y:auto;padding:0 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;min-height:150px;align-content:start}.media-loading,.media-empty{grid-column:1 / -1;text-align:center;color:var(--color-text-disabled);font-size:14px;padding:40px 0}.media-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .2s}.media-item:hover{border-color:var(--color-border-subtle)}.media-item.selected{border-color:var(--color-accent-primary);box-shadow:0 0 12px #646cff66}.media-item.current{border-color:var(--color-success)}.media-item img{width:100%;height:100%;object-fit:cover}.media-item-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,transparent 40%,transparent 60%,rgba(0,0,0,.6) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:6px;opacity:0;transition:opacity .2s}.media-item:hover .media-item-overlay{opacity:1}.media-item-size{font-size:10px;color:#fff;background:#00000080;padding:2px 6px;border-radius:3px;align-self:flex-start}.media-item-delete{width:24px;height:24px;border:none;border-radius:4px;background:#ef4444cc;color:#fff;cursor:pointer;font-size:16px;align-self:flex-end;display:flex;align-items:center;justify-content:center;transition:background .2s}.media-item-delete:hover{background:var(--color-error)}.media-item-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#22c55ee6;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600}.media-library-actions{display:flex;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-default)}.media-btn-cancel,.media-btn-select{flex:1;padding:10px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.media-btn-cancel{border:1px solid var(--color-border-default);background:transparent;color:var(--color-text-muted)}.media-btn-cancel:hover{border-color:var(--color-border-subtle);color:var(--color-text-primary)}.media-btn-select{border:none;background:var(--color-accent-primary);color:#fff}.media-btn-select:hover:not(:disabled){background:var(--color-accent-primary-hover)}.media-btn-select:disabled{opacity:.5;cursor:not-allowed}.confirm-delete-overlay{position:absolute;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10}.confirm-delete-modal{background:var(--color-bg-secondary);padding:20px;border-radius:12px;text-align:center;max-width:250px}.confirm-delete-modal p{margin:0 0 16px;color:var(--color-text-primary);font-size:14px}.confirm-delete-modal img{width:100%;max-height:120px;object-fit:cover;border-radius:6px;margin-bottom:16px}.confirm-delete-actions{display:flex;gap:8px}.confirm-delete-actions button{flex:1;padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:1px solid var(--color-border-default);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);transition:all .2s}.confirm-delete-actions button:hover{border-color:var(--color-border-subtle);color:var(--color-text-primary)}.confirm-delete-actions .btn-danger{border-color:var(--color-error);background:var(--color-error-bg);color:var(--color-error)}.confirm-delete-actions .btn-danger:hover{background:var(--color-error);color:#fff}.migration-modal{max-width:480px}.migration-description{color:var(--color-text-tertiary);font-size:14px;line-height:1.5;margin-bottom:20px}.migration-comparison{background:var(--color-bg-tertiary);border-radius:8px;padding:16px;margin-bottom:20px}.migration-option-preview{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px}.migration-option-preview:first-child{border-bottom:1px solid var(--color-border-default);padding-bottom:12px;margin-bottom:4px}.migration-option-preview strong{color:var(--color-text-muted)}.migration-option-preview span{color:var(--color-text-primary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.migration-question{color:var(--color-text-primary);font-size:14px;margin-bottom:16px}.migration-options{display:flex;flex-direction:column;gap:12px}.migration-btn{width:100%;padding:16px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-primary);cursor:pointer;text-align:left;transition:all .2s}.migration-btn:hover:not(:disabled){border-color:var(--color-accent-primary);background:var(--color-bg-elevated)}.migration-btn:disabled{opacity:.6;cursor:not-allowed}.migration-btn.primary{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.migration-btn.primary:hover:not(:disabled){background:var(--color-accent-primary-bg-hover)}.migration-btn.danger:hover:not(:disabled){border-color:var(--color-error);background:var(--color-error-bg)}.migration-btn-title{display:block;font-size:14px;font-weight:600;margin-bottom:4px}.migration-btn-desc{display:block;font-size:12px;color:var(--color-text-muted)}.migration-loading{text-align:center;color:var(--color-text-muted);font-size:14px;margin-top:16px}.migration-select{background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:4px;color:var(--color-text-primary);padding:8px 12px;font-size:14px;max-width:200px;cursor:pointer}.migration-select:hover{border-color:var(--color-accent-primary)}.migration-select:focus{outline:none;border-color:var(--color-accent-primary)}.loading-modal{background:var(--color-bg-tertiary);border-radius:12px;padding:40px 48px;text-align:center;box-shadow:var(--shadow-xl);animation:modalFadeIn .2s ease-out}.loading-modal h3{margin:20px 0 8px;color:var(--color-text-primary);font-size:18px;font-weight:600}.loading-modal p{margin:0;color:var(--color-text-muted);font-size:14px}.loading-spinner{width:48px;height:48px;border:4px solid var(--color-border-default);border-top-color:var(--color-accent-primary);border-radius:50%;margin:0 auto;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.connection-limit-modal{background:var(--color-bg-tertiary);border-radius:12px;padding:40px 48px;text-align:center;box-shadow:var(--shadow-xl);animation:modalFadeIn .2s ease-out;max-width:420px}.connection-limit-modal .limit-icon{font-size:48px;color:var(--color-warning);margin-bottom:16px}.connection-limit-modal h3{margin:0 0 12px;color:var(--color-text-primary);font-size:20px;font-weight:600}.connection-limit-modal p{margin:0 0 24px;color:var(--color-text-tertiary);font-size:14px;line-height:1.6}.limit-modal-actions{display:flex;gap:12px;justify-content:center}.limit-modal-btn{padding:10px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.limit-modal-btn.primary{background:var(--color-accent-primary);color:#fff}.limit-modal-btn.primary:hover{background:var(--color-accent-primary-hover)}.limit-modal-btn.secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border-subtle)}.limit-modal-btn.secondary:hover{background:var(--color-border-subtle)}.app-logo{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .2s;-webkit-user-select:none;user-select:none}.app-logo:hover{background:var(--color-accent-primary-bg)}.logo-icon{font-size:24px;color:var(--color-accent-primary)}.logo-text{font-size:16px;font-weight:600;color:var(--color-text-primary);white-space:nowrap}.floating-toolbar .app-logo{padding:4px 8px;overflow:hidden}.floating-toolbar .app-logo .logo-icon{font-size:22px}.floating-toolbar .app-logo.with-label{gap:0}.floating-toolbar .app-logo .logo-text-label{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:600;color:var(--color-text-primary);transition:max-width .25s ease,opacity .2s ease,margin-left .25s ease;margin-left:0}.floating-toolbar .app-logo.with-label:hover .logo-text-label{max-width:120px;opacity:1;margin-left:8px}.toolbar-divider{width:1px;height:24px;background:var(--color-border-subtle);margin:0 8px}.splash-page{width:100vw;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);display:flex;flex-direction:column;align-items:center;overflow:auto;position:relative}.splash-mesh-bg{position:absolute;inset:0;z-index:0;opacity:1}.splash-page:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(102,126,234,.1) 70%,rgba(118,75,162,.15) 100%);pointer-events:none;z-index:1}.splash-content{text-align:center;padding:60px 40px 80px;max-width:900px;position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center}.splash-logo-container{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px}.splash-logo-icon{font-size:64px;filter:drop-shadow(0 4px 20px rgba(0,0,0,.2));animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.splash-logo{font-family:var(--font-primary);font-size:56px;font-weight:700;color:#fff;margin:0;text-shadow:0 4px 30px rgba(0,0,0,.3);letter-spacing:-1px}.splash-subtitle{font-family:var(--font-secondary);font-size:18px;color:#ffffffb3;margin-bottom:8px;font-weight:500;text-transform:uppercase;letter-spacing:2px}.splash-tagline{font-family:var(--font-secondary);font-size:22px;color:#ffffffe6;margin-bottom:16px;font-weight:400;text-shadow:0 2px 10px rgba(0,0,0,.2)}.splash-description{font-size:16px;color:#ffffffbf;max-width:600px;margin:0 auto 40px;line-height:1.6;padding:0 20px}.splash-tagline-redirect{color:#fff;font-weight:600;background:#0003;padding:12px 24px;border-radius:30px;display:inline-block}.splash-actions{display:flex;gap:20px;justify-content:center;margin-bottom:70px}.splash-btn{padding:16px 40px;border:none;border-radius:50px;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:1px}.splash-btn.primary{background:#fff;color:#764ba2;box-shadow:0 8px 30px #0003}.splash-btn.primary:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 40px #0000004d}.splash-btn.secondary{background:#ffffff26;color:#fff;border:2px solid rgba(255,255,255,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.splash-btn.secondary:hover{background:#ffffff40;border-color:#fff;transform:translateY(-4px)}.splash-features{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}.splash-feature{background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:32px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.splash-feature:hover{background:#ffffff40;transform:translateY(-8px);box-shadow:0 20px 40px #0003}.feature-icon-wrapper{width:70px;height:70px;background:#ffffffe6;border-radius:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:0 8px 20px #00000026}.feature-icon{font-size:32px;display:block}.splash-feature h3{color:#fff;font-size:20px;font-weight:700;margin:0 0 12px;text-shadow:0 2px 10px rgba(0,0,0,.2)}.splash-feature p{color:#ffffffd9;font-size:15px;margin:0;line-height:1.6}@media(max-width:768px){.splash-features{grid-template-columns:1fr;gap:16px}.splash-logo-container{flex-direction:column;gap:8px}.splash-logo-icon{font-size:48px}.splash-logo{font-size:36px}.splash-tagline{font-size:18px;padding:0 20px}.splash-actions{flex-direction:column;padding:0 20px}.splash-btn{width:100%}.splash-shape{opacity:.4}.logo-text{display:none}}.splash-footer{position:relative;width:100%;background:#4a3a6e;border-top:1px solid rgba(255,255,255,.15);margin-top:auto;z-index:10}.splash-footer-content{max-width:1200px;margin:0 auto;padding:48px 24px 32px;display:flex;justify-content:space-between;gap:48px}.splash-footer-brand{max-width:300px}.splash-footer-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-primary);font-size:1.5rem;font-weight:600;color:#fff;margin-bottom:12px}.splash-footer-logo svg{color:var(--accent-color, #6366f1)}.splash-footer-tagline{color:#fff9;font-size:14px;line-height:1.5;margin:0}.splash-footer-links{display:flex;gap:64px}.splash-footer-column{display:flex;flex-direction:column;gap:12px}.splash-footer-column h4{font-family:var(--font-primary);color:#fff;font-size:14px;font-weight:600;margin:0 0 4px;text-transform:uppercase;letter-spacing:.5px}.splash-footer-column a,.splash-footer-column button{color:#fff9;text-decoration:none;font-size:14px;transition:color .2s;background:none;border:none;padding:0;cursor:pointer;text-align:left;font-family:inherit}.splash-footer-column a:hover,.splash-footer-column button:hover{color:#fff}.splash-footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:20px 24px;text-align:center}.splash-footer-bottom p{color:#fff6;font-size:13px;margin:0}@media(max-width:768px){.splash-footer-content{flex-direction:column;gap:32px;padding:32px 20px 24px}.splash-footer-brand{max-width:100%;text-align:center}.splash-footer-logo{justify-content:center}.splash-footer-links{flex-wrap:wrap;gap:32px;justify-content:center}.splash-footer-column{align-items:center;text-align:center;min-width:120px}.splash-footer-column button{text-align:center}}.dashboard-page{width:100vw;height:100vh;background:var(--color-bg-primary);display:flex;flex-direction:column;overflow:auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-default)}.dashboard-logo{display:flex;align-items:center;gap:8px}.dashboard-logo .logo-icon{font-size:28px}.dashboard-logo .logo-text{font-size:20px;font-weight:600;color:var(--color-text-primary)}.dashboard-user{display:flex;align-items:center;gap:16px}.dashboard-user .user-email{color:var(--color-text-muted);font-size:14px}.dashboard-content{flex:1;padding:32px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.dashboard-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.dashboard-title-row h1{color:var(--color-text-primary);font-size:28px;font-weight:600;margin:0}.create-map-btn{padding:12px 24px;background:var(--color-accent-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.create-map-btn:hover{background:var(--color-accent-primary-hover);transform:translateY(-2px)}.maps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.no-maps{grid-column:1 / -1;text-align:center;padding:60px 20px;color:var(--color-text-muted)}.no-maps p{margin-bottom:20px;font-size:16px}.dashboard-loading{grid-column:1 / -1;text-align:center;padding:60px 20px;color:var(--color-text-muted)}.dashboard-loading .loading-spinner{margin:0 auto 16px}.dashboard-loading p{font-size:14px}.dashboard-creating-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.creating-modal{background:var(--color-bg-tertiary);border-radius:12px;padding:40px 60px;text-align:center;box-shadow:var(--shadow-lg)}.creating-modal .loading-spinner{margin:0 auto 16px}.creating-modal p{color:var(--color-text-primary);font-size:16px;margin:0}.delete-modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1001;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.delete-modal{background:var(--gradient-card);border:1px solid var(--color-border-subtle);border-radius:16px;padding:32px;max-width:400px;width:90%;text-align:center;box-shadow:var(--shadow-xl);animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.delete-modal-icon{font-size:48px;margin-bottom:16px;filter:grayscale(.3)}.delete-modal h3{color:var(--color-text-primary);font-size:22px;font-weight:600;margin:0 0 12px}.delete-modal p{color:var(--color-text-tertiary);font-size:14px;line-height:1.6;margin:0 0 24px}.delete-modal p strong{color:var(--color-text-primary)}.delete-modal-actions{display:flex;gap:12px;justify-content:center}.delete-modal-btn{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.delete-modal-btn.cancel{background:transparent;border:1px solid var(--color-border-hover);color:var(--color-text-secondary)}.delete-modal-btn.cancel:hover:not(:disabled){background:var(--color-bg-elevated);border-color:var(--color-border-subtle)}.delete-modal-btn.confirm{background:var(--color-error);border:1px solid var(--color-error);color:#fff}.delete-modal-btn.confirm:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.delete-modal-btn:disabled{opacity:.6;cursor:not-allowed}.delete-modal.create-modal{max-width:380px}.create-modal-icon{width:56px;height:56px;border-radius:50%;background:var(--gradient-accent);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:24px;color:#fff;box-shadow:0 4px 12px #646cff4d}.create-modal-subtitle{color:var(--color-text-muted);font-size:14px;margin:0 0 24px}.create-map-name-input{width:100%;padding:14px 16px;font-size:15px;border:1px solid var(--glass-border);border-radius:10px;background:var(--color-bg-input);color:var(--color-text-primary);margin-bottom:24px;transition:border-color .2s,box-shadow .2s,background .2s;box-sizing:border-box}.create-map-name-input::placeholder{color:var(--color-text-disabled)}.create-map-name-input:hover{border-color:var(--color-border-hover)}.create-map-name-input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #646cff26}.create-map-name-input:disabled{opacity:.6;cursor:not-allowed}.delete-modal-btn.confirm.create{background:var(--gradient-accent);border:none}.delete-modal-btn.confirm.create:hover:not(:disabled){background:var(--gradient-accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #646cff4d}.delete-error-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--color-error);color:#fff;padding:12px 20px;border-radius:8px;display:flex;align-items:center;gap:12px;font-size:14px;z-index:1002;box-shadow:0 4px 16px #dc26264d;animation:slideUp .2s ease-out}.delete-error-toast button{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0;line-height:1;opacity:.8}.delete-error-toast button:hover{opacity:1}.create-map-btn:disabled{opacity:.6;cursor:not-allowed}.map-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s;position:relative}.map-card:hover{border-color:var(--color-accent-primary);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.map-card.active{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.map-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.map-card-header h3{color:var(--color-text-primary);font-size:16px;font-weight:600;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}.delete-map-btn{background:transparent;border:none;color:var(--color-text-disabled);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s;opacity:0}.map-card:hover .delete-map-btn{opacity:1}.delete-map-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.map-card-info{display:flex;justify-content:space-between;color:var(--color-text-muted);font-size:13px}.map-card-date{color:var(--color-text-disabled)}.map-card-badge{position:absolute;top:-8px;right:12px;background:var(--color-accent-primary);color:#fff;font-size:11px;font-weight:600;padding:4px 8px;border-radius:4px}.shared-section{margin-top:16px}.shared-section .dashboard-section-title{display:flex;align-items:center;gap:10px}.shared-section .dashboard-section-title svg{color:var(--color-accent-primary)}.map-card.shared-map{border-left:3px solid var(--color-accent-primary)}.map-card.shared-map .map-card-header{flex-wrap:wrap;gap:8px}.permission-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;flex-shrink:0}.permission-badge.view{background:var(--color-stat-purple-bg);color:var(--color-stat-purple)}.permission-badge.edit{background:var(--color-stat-green-bg);color:var(--color-stat-green)}.map-card-owner{margin-top:8px;font-size:12px;color:var(--color-text-disabled);font-style:italic}.maps-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.search-input-wrapper{position:relative;display:flex;flex:1;max-width:400px;min-width:200px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-disabled);font-size:14px}.maps-search-input{width:100%;padding:10px 36px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-subtle);border-radius:8px;color:var(--color-text-primary);font-size:14px;transition:all .2s}.maps-search-input:focus{outline:none;border-color:var(--color-accent-primary);background:var(--color-bg-elevated)}.maps-search-input::placeholder{color:var(--color-text-disabled)}.search-clear-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--color-text-disabled);cursor:pointer;padding:4px 8px;font-size:12px}.search-clear-btn:hover{color:var(--color-text-primary)}.maps-count{color:var(--color-text-muted);font-size:13px;white-space:nowrap}.maps-table-container{background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:12px;overflow:hidden}.maps-table{width:100%;border-collapse:collapse;table-layout:fixed}.maps-table thead{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-subtle)}.maps-table th{padding:14px 16px;text-align:left;color:var(--color-text-muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.maps-table th:hover{color:var(--color-text-primary)}.sort-icon{margin-left:6px;font-size:10px;opacity:.5}.maps-table th:hover .sort-icon{opacity:1}.maps-table .col-name{width:35%}.maps-table .col-owner{width:30%}.maps-table .col-nodes{width:10%;text-align:center}.maps-table .col-updated{width:15%}.maps-table .col-actions{width:10%;text-align:center;cursor:default}.maps-table tbody tr{border-bottom:1px solid var(--color-border-default);cursor:pointer;transition:background .15s}.maps-table tbody tr:last-child{border-bottom:none}.maps-table tbody tr:hover{background:var(--color-bg-elevated)}.maps-table tbody tr.active{background:var(--color-accent-primary-bg)}.maps-table tbody tr.shared{background:#646cff0d}.maps-table tbody tr.shared:hover{background:var(--color-accent-primary-bg)}.maps-table td{padding:14px 16px;color:var(--color-text-secondary);font-size:14px;vertical-align:middle}.maps-table td.col-nodes{text-align:center;color:var(--color-text-muted)}.map-name-cell{display:flex;align-items:center;gap:10px}.map-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.active-badge{background:var(--color-accent-primary);color:#fff;font-size:10px;font-weight:600;padding:3px 6px;border-radius:4px;flex-shrink:0}.owner-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.maps-table .owner-cell,.maps-table .owner-cell span{color:var(--color-text-secondary)}.owner-cell.is-owner .owner-icon{color:var(--color-accent-primary)}.owner-cell.is-shared .owner-icon{color:var(--color-stat-yellow)}.owner-icon{font-size:12px}.owner-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary)}.permission-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;flex-shrink:0}.permission-tag.view{background:var(--color-stat-purple-bg);color:var(--color-stat-purple)}.permission-tag.edit{background:var(--color-stat-green-bg);color:var(--color-stat-green)}.permission-tag svg{font-size:9px}.table-delete-btn{background:transparent;border:none;color:var(--color-text-disabled);cursor:pointer;padding:6px 10px;border-radius:4px;transition:all .2s;font-size:14px}.table-delete-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.shared-indicator{color:var(--color-stat-yellow);font-size:14px}.no-results{text-align:center;color:var(--color-text-disabled);padding:40px 16px!important;font-style:italic}.maps-mobile-list{display:none}.map-mobile-card{background:var(--color-bg-elevated);border-radius:8px;padding:14px;margin-bottom:10px;cursor:pointer;position:relative;transition:all .15s}.map-mobile-card:hover{background:var(--color-bg-tertiary)}.map-mobile-card.active{background:var(--color-accent-primary-bg);border:1px solid var(--color-accent-primary)}.map-mobile-card.shared{border-left:3px solid var(--color-stat-yellow)}.mobile-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.mobile-card-header .map-name{font-weight:500;font-size:15px;color:var(--color-text-primary)}.mobile-card-meta{display:flex;flex-direction:column;gap:6px}.mobile-card-meta .owner-cell{font-size:13px;color:var(--color-text-tertiary)}.mobile-card-stats{display:flex;gap:16px;font-size:12px;color:var(--color-text-disabled)}.mobile-delete-btn{position:absolute;top:12px;right:12px;background:transparent;border:none;color:var(--color-text-disabled);cursor:pointer;padding:6px 8px;border-radius:4px}.mobile-delete-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.no-results-mobile{text-align:center;color:var(--color-text-disabled);padding:30px 16px;font-style:italic}@media(max-width:800px){.maps-table{display:none}.maps-mobile-list{display:block;padding:10px}.maps-table-toolbar{flex-direction:column;align-items:stretch}.search-input-wrapper{max-width:none}.maps-count{text-align:center}}.back-to-editor{position:fixed;bottom:24px;left:24px;padding:12px 20px;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-subtle);border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.back-to-editor:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}@media(max-width:768px){.dashboard-header{padding:12px 16px}.dashboard-content{padding:20px 16px}.dashboard-title-row{flex-direction:column;align-items:flex-start;gap:16px}.dashboard-title-row h1{font-size:22px}.maps-grid{grid-template-columns:1fr}.dashboard-user .user-email{display:none}}.dashboard-stats-section{margin-bottom:32px}.dashboard-section-title{color:var(--color-text-primary);font-size:20px;font-weight:600;margin:0 0 20px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{background:var(--gradient-card);border:1px solid var(--color-border-default);border-top:3px solid;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px}.stat-card-content{flex:1}.stat-card-value{font-size:28px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.stat-card-label{font-size:13px;color:var(--color-text-muted);margin-top:4px}.dashboard-charts-section{margin-bottom:32px}.charts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.dashboard-chart{background:var(--gradient-card);border:1px solid var(--color-border-default);border-radius:12px;padding:20px}.dashboard-chart-title{color:var(--color-text-primary);font-size:14px;font-weight:600;margin:0 0 16px}.mini-bar-chart{display:flex;flex-direction:column;gap:12px}.mini-bar-row{display:flex;align-items:center;gap:12px}.mini-bar-label{width:80px;font-size:12px;color:var(--color-text-muted);flex-shrink:0}.mini-bar-container{flex:1;height:8px;background:var(--color-bg-elevated);border-radius:4px;overflow:hidden}.mini-bar-fill{height:100%;border-radius:4px;transition:width .5s ease}.mini-bar-value{width:30px;font-size:13px;font-weight:600;color:var(--color-text-primary);text-align:right}.activity-chart{display:flex;align-items:flex-end;justify-content:space-between;height:120px;gap:8px;padding-top:20px}.activity-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.activity-bar{width:100%;max-width:32px;border-radius:4px 4px 0 0;transition:height .5s ease,background-color .3s ease;display:flex;align-items:flex-start;justify-content:center;position:relative}.activity-count{position:absolute;top:-18px;font-size:11px;font-weight:600;color:var(--color-accent-primary)}.activity-day{font-size:11px;color:var(--color-text-disabled);margin-top:8px}.donut-chart-container{display:flex;flex-direction:column;align-items:center}.donut-chart{position:relative;width:100px;height:100px;margin:0 auto}.donut-svg{width:100%;height:100%}.donut-progress{transition:stroke-dashoffset .8s ease}.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.donut-value{font-size:24px;font-weight:700;color:var(--color-text-primary);line-height:1}.donut-label{font-size:10px;color:var(--color-text-muted);margin-top:4px}.dashboard-maps-section{margin-top:16px}@media(max-width:1200px){.stats-grid,.charts-grid{grid-template-columns:repeat(2,1fr)}.charts-grid .donut-chart-container{grid-column:span 2}}@media(max-width:768px){.stats-grid,.charts-grid{grid-template-columns:1fr}.charts-grid .donut-chart-container{grid-column:span 1}.stat-card{padding:16px}.stat-card-value{font-size:24px}.stat-card-icon{width:40px;height:40px;font-size:18px}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-default)}.navbar-left{display:flex;align-items:center;gap:8px}.navbar-right{display:flex;align-items:center;gap:12px}.navbar-link{padding:8px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:20px;line-height:1;transition:all .2s}.navbar-link:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.navbar .logo-icon{font-size:28px}.navbar .logo-text{font-size:20px;font-weight:600;color:var(--color-text-primary)}.user-dropdown-container{position:relative;margin-left:auto}.floating-toolbar .user-dropdown-container{margin-left:0}.user-avatar-btn{width:36px!important;height:36px!important;border-radius:50%!important;background:var(--color-accent-primary)!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:15px!important;font-weight:600!important;color:#fff!important;cursor:pointer!important;border:2px solid transparent!important;box-sizing:border-box!important;transition:all .2s!important;padding:0!important}.user-avatar-btn:hover{transform:scale(1.05);background:var(--color-accent-primary)!important}.user-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.user-avatar-btn.ws-joined{border-color:var(--color-ws-connected)}.user-avatar-btn.ws-connecting,.user-avatar-btn.ws-authenticating,.user-avatar-btn.ws-joining{border-color:var(--color-ws-connecting)}.user-avatar-btn.ws-disconnected{border-color:var(--color-ws-disconnected)}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-sm{width:32px;height:32px;font-size:14px}.avatar-md{width:40px;height:40px;font-size:16px}.avatar-lg{width:48px;height:48px;font-size:18px}.avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--color-accent-primary);color:#fff;font-weight:600}.user-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:8px;box-shadow:var(--shadow-lg);z-index:9999;overflow:hidden}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-dropdown-header{padding:12px 16px;border-bottom:1px solid var(--color-border-default)}.user-dropdown-email{font-size:13px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.user-dropdown-divider{height:1px;background:var(--color-border-default);margin:4px 0}.user-dropdown-item{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;padding:10px 16px!important;background:none!important;border:none!important;border-radius:0!important;color:var(--color-text-secondary)!important;font-size:14px!important;cursor:pointer!important;text-align:left!important;transition:all .15s!important}.user-dropdown-item:hover{background:var(--color-accent-primary-bg)!important;color:var(--color-text-primary)!important}.user-dropdown-item .dropdown-icon{font-size:16px;width:20px;text-align:center}.user-dropdown-signout{color:var(--color-ws-disconnected)!important}.user-dropdown-signout:hover{background:var(--color-error-bg)!important;color:var(--color-ws-disconnected)!important}.user-dropdown-theme{display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.user-dropdown-theme-label{font-size:13px;color:var(--color-text-muted)}.user-dropdown-theme-options{display:flex;gap:4px;background:var(--color-bg-tertiary);padding:3px;border-radius:6px}.theme-option-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s}.theme-option-btn:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.theme-option-btn.active{background:var(--color-accent-primary);color:#fff}.settings-page{width:100vw;min-height:100vh;background:var(--color-bg-primary);display:flex;flex-direction:column}.settings-content{flex:1;padding:32px;max-width:800px;margin:0 auto;width:100%}.settings-content h1{color:var(--color-text-primary);font-size:28px;font-weight:600;margin:0 0 32px}.settings-section{margin-bottom:32px}.settings-section h2{color:var(--color-text-muted);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.settings-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:12px;padding:20px}.settings-field{margin-bottom:16px}.settings-field:last-child{margin-bottom:0}.settings-field label{display:block;font-size:13px;color:var(--color-text-muted);margin-bottom:8px}.settings-value{font-size:14px;color:var(--color-text-primary);padding:10px 14px;background:var(--color-bg-primary);border-radius:6px}.settings-input{width:100%;padding:10px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:6px;color:var(--color-text-primary);font-size:14px;box-sizing:border-box}.settings-input:focus{outline:none;border-color:var(--color-accent-primary)}.settings-select{padding:10px 14px;background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:6px;color:var(--color-text-primary);font-size:14px;cursor:pointer}.settings-select:focus{outline:none;border-color:var(--color-accent-primary)}.settings-toggle{display:flex;align-items:center;gap:10px}.settings-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent-primary);cursor:pointer}.settings-toggle label{font-size:14px;color:var(--color-text-secondary);margin:0;cursor:pointer}.settings-danger{border-color:#ef44444d}.settings-danger-item{display:flex;justify-content:space-between;align-items:center;gap:20px}.settings-danger-item strong{color:var(--color-text-primary);font-size:14px}.settings-danger-item p{color:var(--color-text-muted);font-size:13px;margin:4px 0 0}.settings-btn-danger{padding:10px 20px;background:transparent;border:1px solid var(--color-error);border-radius:6px;color:var(--color-error);font-size:14px;cursor:pointer;transition:all .2s;white-space:nowrap}.settings-btn-danger:hover:not(:disabled){background:var(--color-error-bg)}.settings-btn-danger:disabled{opacity:.5;cursor:not-allowed}.settings-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border-default)}.settings-btn-primary{padding:10px 24px;background:var(--color-info);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.settings-btn-primary:hover:not(:disabled){filter:brightness(.9)}.settings-btn-primary:disabled{opacity:.5;cursor:not-allowed}.settings-message{padding:10px 14px;border-radius:6px;font-size:14px;margin-top:12px}.settings-message-success{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.settings-message-error{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.billing-page{width:100vw;min-height:100vh;background:var(--color-bg-primary);display:flex;flex-direction:column}.billing-content{flex:1;padding:32px;max-width:900px;margin:0 auto;width:100%}.billing-content h1{color:var(--color-text-primary);font-size:28px;font-weight:600;margin:0 0 32px}.billing-section{margin-bottom:32px}.billing-section h2{color:var(--color-text-muted);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.billing-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:12px;padding:20px}.billing-plan-card{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.plan-info{flex:1}.plan-badge{display:inline-block;padding:4px 12px;background:var(--color-accent-primary-bg-hover);color:var(--color-accent-primary);border-radius:20px;font-size:12px;font-weight:600;margin-bottom:8px}.plan-info h3{color:var(--color-text-primary);font-size:20px;margin:0 0 4px}.plan-info p{color:var(--color-text-muted);font-size:14px;margin:0}.plan-features ul{list-style:none;padding:0;margin:0}.plan-features li{color:var(--color-text-tertiary);font-size:13px;padding:4px 0 4px 20px;position:relative}.plan-features li:before{content:"✓";position:absolute;left:0;color:var(--color-success)}.billing-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.billing-upgrade-card{position:relative;display:flex;flex-direction:column}.billing-upgrade-card.featured{border-color:var(--color-accent-primary);background:linear-gradient(180deg,var(--color-accent-primary-bg) 0%,var(--color-bg-tertiary) 100%)}.featured-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);padding:4px 12px;background:var(--color-accent-primary);color:#fff;font-size:11px;font-weight:600;border-radius:20px;white-space:nowrap}.plan-header{margin-bottom:16px}.plan-header h3{color:var(--color-text-primary);font-size:20px;margin:0 0 8px}.plan-price{display:flex;align-items:baseline;gap:4px}.plan-price .price{font-size:32px;font-weight:700;color:var(--color-text-primary)}.plan-price .period{font-size:14px;color:var(--color-text-muted)}.plan-features-list{list-style:none;padding:0;margin:0 0 20px;flex:1}.plan-features-list li{color:var(--color-text-secondary);font-size:14px;padding:8px 0 8px 24px;position:relative;border-bottom:1px solid var(--color-border-default)}.plan-features-list li:last-child{border-bottom:none}.plan-features-list li:before{content:"✓";position:absolute;left:0;color:var(--color-success)}.billing-btn-upgrade{width:100%;padding:12px 20px;background:var(--color-accent-primary);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.billing-btn-upgrade:hover:not(:disabled){background:#535bf2}.billing-btn-upgrade:disabled{opacity:.6;cursor:not-allowed}.usage-item{margin-bottom:16px}.usage-item:last-child{margin-bottom:0}.usage-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.usage-label span{font-size:14px;color:var(--color-text-secondary)}.usage-count{color:var(--color-text-muted)!important;font-size:13px!important}.usage-bar{height:8px;background:var(--color-border-default);border-radius:4px;overflow:hidden}.usage-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-accent-primary),#8b5cf6);border-radius:4px;transition:width .3s}@media(max-width:768px){.settings-content,.billing-content{padding:20px 16px}.settings-content h1,.billing-content h1{font-size:22px}.billing-plan-card{flex-direction:column}.settings-danger-item{flex-direction:column;align-items:flex-start}}.access-denied-page{width:100vw;min-height:100vh;background:var(--color-bg-primary);display:flex;flex-direction:column}.access-denied-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center}.access-denied-icon{font-size:64px;margin-bottom:24px}.access-denied-content h1{color:var(--color-text-primary);font-size:32px;font-weight:600;margin:0 0 16px}.access-denied-content p{color:var(--color-text-muted);font-size:16px;max-width:400px;margin:0 0 32px;line-height:1.5}.access-denied-btn{padding:12px 24px;background:var(--color-accent-primary);border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.access-denied-btn:hover{background:#535bf2}.theme-setting-row.vertical{flex-direction:column;align-items:stretch;gap:6px}.theme-setting-row.vertical label{min-width:unset}.extension-input{width:100%;padding:8px 10px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;box-sizing:border-box}.extension-input::placeholder{color:var(--color-text-disabled)}.extension-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.extension-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.extension-preview-small{margin-top:8px;border-radius:4px;overflow:hidden;max-height:80px}.extension-preview-small img{width:100%;height:auto;object-fit:cover;display:block}.extension-preview-node{margin-top:12px;border-radius:8px;overflow:hidden;background:var(--color-bg-primary);border:1px solid var(--glass-border);aspect-ratio:16 / 9}.extension-preview-node iframe{width:100%;height:100%;border:none;display:block}.extension-preview-node.extension-preview-image{aspect-ratio:auto;max-height:200px}.extension-preview-node.extension-preview-image img{width:100%;height:100%;object-fit:contain;display:block;max-height:200px}.image-source-row{display:flex;gap:8px}.image-source-btn{padding:6px 12px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:12px;cursor:pointer;transition:all .2s}.image-source-btn:hover{border-color:var(--color-accent-primary);background:var(--color-border-default)}.link-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:500;cursor:pointer;transition:all .2s ease;border-width:2px;border-style:solid;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.link-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.link-button:active{transform:translateY(0)}.link-button-small{padding:6px 12px;font-size:12px;min-height:28px}.link-button-medium{padding:10px 20px;font-size:14px;min-height:40px}.link-button-large{padding:14px 28px;font-size:16px;min-height:52px}.link-button-rounded{border-radius:8px}.link-button-pill{border-radius:50px}.link-button-square{border-radius:0}.link-button-ghost{border-color:transparent}.link-button-ghost:hover{background:#ffffff1a!important}.link-button-gradient{border:none}.link-button-empty{opacity:.6;cursor:default;border-style:dashed}.link-button-empty:hover{transform:none;box-shadow:none}.node-content.link-button-mode{padding:0}.link-extension-view{width:100%;position:relative}.link-extension-view .link-anchor{color:var(--color-accent-primary);text-decoration:none;font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-extension-view .link-anchor:hover{text-decoration:underline}.link-extension-empty{text-align:center;padding:8px}.link-extension-empty .link-placeholder{color:var(--color-text-disabled);font-size:11px;font-style:italic}.link-button-node{width:100%;height:100%}.mindmap-node-button{position:relative;width:100%;height:100%;min-width:80px;min-height:40px}.mindmap-node-button:hover{filter:brightness(1.1)}.mindmap-node-button:active{filter:brightness(.95)}.mindmap-node-button.is-selected{filter:brightness(1.02) drop-shadow(0 0 4px var(--node-glow-color, #646cff))}.link-button-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;padding:0 8px}.link-button-label-input{background:transparent;border:none;outline:none;font:inherit;width:100%;max-width:100%}.link-button-toolbar{position:absolute;top:-44px;left:50%;transform:translate(-50%);display:flex;gap:6px;padding:6px 8px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:8px;box-shadow:var(--shadow-lg);z-index:100}.link-button-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:var(--color-accent-primary-bg);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.link-button-toolbar-btn svg{width:16px;height:16px}.link-button-toolbar-btn:hover{background:var(--color-accent-primary-bg-hover);color:var(--color-text-primary)}.link-button-toolbar-btn:active{background:#646cff80}.link-button-toolbar-btn--danger{color:var(--color-error)}.link-button-toolbar-btn--danger:hover{background:#ff646466;color:#fff}.link-button-toolbar-btn--danger:active{background:#ff646499}.notification-bell-container{position:relative;display:inline-block}.notification-bell-btn{background:transparent;border:none;cursor:pointer;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s;position:relative;color:var(--color-text-muted)}.notification-bell-btn:hover{background:var(--color-accent-primary-bg);color:var(--color-text-primary)}.bell-icon{font-size:20px}.notification-badge{position:absolute;top:2px;right:2px;background:var(--color-error);color:#fff;font-size:10px;font-weight:700;padding:2px 5px;border-radius:10px;min-width:16px;text-align:center}.notification-dropdown{position:absolute;top:100%;right:0;width:360px;max-height:480px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:8px;box-shadow:var(--shadow-lg);z-index:1000;display:flex;flex-direction:column;overflow:hidden}.notification-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border-default)}.notification-header h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.mark-all-read-btn{background:transparent;border:none;color:var(--color-accent-primary);font-size:12px;cursor:pointer;padding:4px 8px;border-radius:4px}.mark-all-read-btn:hover{background:var(--color-accent-primary-bg)}.notification-categories{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--color-border-default);overflow-x:auto}.category-tab{background:transparent;border:none;color:var(--color-text-muted);font-size:12px;cursor:pointer;padding:6px 10px;border-radius:4px;display:flex;align-items:center;gap:4px;white-space:nowrap}.category-tab:hover{background:var(--color-accent-primary-bg);color:var(--color-text-primary)}.category-tab.active{background:var(--color-accent-primary-bg-hover);color:var(--color-accent-primary)}.tab-badge{background:var(--color-error);color:#fff;font-size:10px;padding:1px 5px;border-radius:8px;min-width:14px;text-align:center}.notification-list{flex:1;overflow-y:auto}.notification-loading,.notification-empty{padding:32px;text-align:center;color:var(--color-text-disabled)}.notification-item{padding:12px 16px;border-bottom:1px solid var(--color-border-default);cursor:pointer;transition:background .2s}.notification-item:hover{background:var(--color-accent-primary-bg)}.notification-item.unread{background:var(--color-accent-primary-bg);border-left:3px solid var(--color-accent-primary)}.notification-content{display:flex;gap:12px;align-items:flex-start}.notification-image{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.notification-avatar{width:40px;height:40px;font-size:16px}.notification-text{flex:1;min-width:0}.notification-title{font-weight:600;color:var(--color-text-primary);font-size:13px;margin-bottom:4px}.notification-message{color:var(--color-text-tertiary);font-size:12px;line-height:1.4;margin-bottom:4px;word-wrap:break-word}.notification-time{color:var(--color-text-disabled);font-size:11px}.notification-dismiss{background:transparent;border:none;color:var(--color-text-disabled);font-size:18px;cursor:pointer;padding:4px;line-height:1;border-radius:4px;flex-shrink:0}.notification-dismiss:hover{background:var(--color-accent-primary-bg);color:var(--color-text-primary)}.notification-actions{display:flex;gap:8px;margin-top:10px;padding-left:52px}.notification-action-btn{padding:6px 12px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:none;transition:background .2s}.notification-action-btn.primary{background:var(--color-accent-primary);color:#fff}.notification-action-btn.primary:hover{background:var(--color-accent-primary-hover)}.notification-action-btn.secondary{background:var(--color-bg-elevated);color:var(--color-text-primary)}.notification-action-btn.secondary:hover{background:var(--color-border-subtle)}.notification-action-btn.danger{background:var(--color-error);color:#fff}.notification-action-btn.danger:hover{background:#b91c1c}.notification-action-btn:disabled{opacity:.6;cursor:not-allowed}.theme-toggle{display:flex;flex-direction:column;gap:8px}.theme-toggle-label{font-size:12px;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.theme-toggle-options{display:flex;gap:4px;background:var(--color-bg-tertiary);padding:4px;border-radius:8px;border:1px solid var(--color-border-default)}.theme-option{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);font-size:12px;cursor:pointer;transition:all .2s;flex:1}.theme-option:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.theme-option.active{background:var(--color-accent-primary);color:#fff}.theme-toggle-compact{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-muted);font-size:16px;cursor:pointer;transition:all .2s}.theme-toggle-compact:hover{background:var(--color-bg-elevated);border-color:var(--color-accent-primary);color:var(--color-accent-primary)}@media(max-width:768px){.flow-container{width:100%!important;flex:1 1 100%!important}.floating-toolbar-right.panel-open{right:16px!important;animation:none!important}body:has(.node-panel) .floating-toolbar:not(.floating-toolbar-left):not(.floating-toolbar-right){display:none!important}.node-panel,.map-config-panel{position:fixed;inset:70px 8px 8px;width:auto!important;max-width:none;height:auto;max-height:none;z-index:1000;border-left:none;border-radius:16px;box-shadow:0 8px 32px #0000004d;flex:none!important}.node-panel:before,.map-config-panel:before{content:"";position:fixed;inset:0;background:#00000080;z-index:-1;pointer-events:none}.node-panel-header,.map-config-header{border-radius:16px 16px 0 0}.node-panel-content,.map-config-content{padding-bottom:env(safe-area-inset-bottom,16px)}.node-panel-footer,.map-config-panel>:last-child{border-radius:0 0 16px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.mindmap-node.is-selected,.mindmap-node-button.is-selected{animation:mobileSelectionGlow 1s ease-out forwards!important;filter:none!important}.mindmap-node.is-selected.glow-fade-done,.mindmap-node-button.is-selected.glow-fade-done{filter:none!important;animation:none!important}@keyframes mobileSelectionGlow{0%{filter:brightness(1.05) drop-shadow(0 0 8px var(--node-glow-color, #646cff))}to{filter:none}}.react-flow__node.selected .node-handle{opacity:1}}.floating-toolbar{display:flex;gap:4px;padding:4px 6px;background:var(--glass-bg);border:1px solid var(--color-border-subtle);border-radius:6px;box-shadow:var(--shadow-md);z-index:10000;pointer-events:auto}.floating-toolbar-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:var(--color-accent-primary-bg);color:var(--color-text-tertiary);cursor:pointer;transition:all .15s ease}.floating-toolbar-btn:hover{background:var(--color-accent-primary-bg-hover);color:var(--color-text-primary)}.floating-toolbar-btn--primary{background:#646cff4d;color:#a5a8ff}.floating-toolbar-btn--primary:hover{background:#646cff80;color:#fff}.floating-toolbar-btn--danger{background:var(--color-error-bg);color:var(--color-error)}.floating-toolbar-btn--danger:hover{background:#ff646466;color:#fff}.floating-toolbar-btn svg{display:block}.floating-toolbar-btn.drag-handle{cursor:grab}.floating-toolbar-btn.drag-handle:active{cursor:grabbing}.text-formatting-toolbar{display:flex;align-items:center;gap:4px;padding:6px 8px;background:var(--glass-bg);border:1px solid var(--color-border-subtle);border-radius:6px;box-shadow:var(--shadow-md);z-index:10000;pointer-events:auto}.text-formatting-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background:var(--color-accent-primary-bg);color:var(--color-text-tertiary);cursor:pointer;transition:all .15s ease}.text-formatting-btn:hover{background:var(--color-accent-primary-bg-hover);color:var(--color-text-primary)}.text-formatting-btn svg{display:block}.text-formatting-btn--save{background:var(--color-success-bg);color:var(--color-success)}.text-formatting-btn--save:hover{background:#28c84080;color:#fff}.text-formatting-divider{width:1px;height:20px;background:var(--color-border-subtle);margin:0 2px}.text-formatting-select{height:28px;padding:0 8px;border:none;border-radius:4px;background:var(--color-accent-primary-bg);color:var(--color-text-tertiary);font-size:12px;cursor:pointer;transition:all .15s ease}.text-formatting-select:hover{background:var(--color-accent-primary-bg-hover);color:var(--color-text-primary)}.text-formatting-select:focus{outline:none;background:var(--color-accent-primary-bg-hover)}.text-formatting-select option{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.extension-container{position:relative;margin-top:8px;border-radius:6px;overflow:visible;background:#0003}.extension-header{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:#0000004d;font-size:10px}.extension-type-badge{text-transform:uppercase;color:#888;font-weight:600;letter-spacing:.5px}.extension-actions{display:flex;gap:4px}.extension-action-btn{width:18px;height:18px;border:none;border-radius:3px;background:#ffffff1a;color:#888;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s}.extension-action-btn:hover{background:#fff3;color:#fff}.extension-remove-btn:hover{background:#ff64644d;color:#f66}.extension-content{padding:8px}.extension-collapsed{padding:6px 10px;background:#0003;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:11px;color:#888;margin-top:4px}.extension-collapsed:hover{background:#0000004d}.extension-collapsed-icon{font-weight:700}.extension-empty{color:#666;font-size:12px;font-style:italic}.extension-input{width:100%;padding:6px 10px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:12px;margin-bottom:6px}.extension-input:focus{outline:none;border-color:var(--color-accent-primary)}.extension-select{width:100%;padding:6px 10px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:12px;margin-bottom:6px;cursor:pointer}.extension-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;color:#aaa;cursor:pointer}.extension-checkbox input{cursor:pointer}.youtube-extension,.youtube-preview{border-radius:4px;overflow:hidden}.youtube-preview{margin-top:8px}.text-extension-edit{display:flex;flex-direction:column;gap:6px}.text-toolbar{display:flex;gap:4px;padding:4px;background:#0000004d;border-radius:4px}.toolbar-btn{width:24px;height:24px;border:none;border-radius:3px;background:transparent;color:#aaa;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.toolbar-btn:hover{background:#ffffff1a;color:#fff}.toolbar-divider{width:1px;background:#444;margin:0 4px}.text-editor{min-height:60px;padding:8px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;line-height:1.5;cursor:text;user-select:text;-webkit-user-select:text}.text-editor.focused{border-color:var(--color-accent-primary)}.text-editor:focus{outline:none}.text-extension{font-size:13px;line-height:1.5;color:#ddd}.text-extension ul,.text-extension ol{margin:4px 0;padding-left:20px}.image-extension,.image-preview{text-align:center}.image-extension{width:100%;height:100%;min-height:60px;display:flex;align-items:center;justify-content:center}.image-extension-img{width:100%;height:100%;max-width:100%;border-radius:4px}.image-extension img,.image-preview img{border-radius:4px;max-width:100%}.link-anchor{color:#646cff;text-decoration:none;font-size:12px;word-break:break-all}.link-anchor:hover{text-decoration:underline}.code-extension-edit .code-textarea{width:100%;min-height:80px;padding:8px;border:1px solid #444;border-radius:4px;background:#0d0d0d;color:#e0e0e0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;resize:vertical;margin-bottom:6px}.code-extension{position:relative}.code-language-badge{position:absolute;top:4px;right:4px;padding:2px 6px;background:#646cff4d;border-radius:3px;font-size:9px;text-transform:uppercase;color:#aaa}.code-block{margin:0;padding:8px;background:#0d0d0d;border-radius:4px;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;line-height:1.4}.code-line{display:flex}.line-number{width:24px;color:#555;text-align:right;padding-right:8px;-webkit-user-select:none;user-select:none}.line-content{flex:1;white-space:pre}.task-list-extension{display:flex;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}.task-add-row{display:flex;gap:8px}.task-add-input{flex:1;padding:8px 12px;border:none;border-radius:6px;background:#646cff;color:#fff;font-size:13px}.task-add-input::placeholder{color:#ffffffb3}.task-add-input:focus{outline:none;background:#5558dd}.task-add-btn{padding:8px 16px;border:none;border-radius:6px;background:#646cff;color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.task-add-btn:hover:not(:disabled){background:#5558dd}.task-add-btn:disabled{opacity:.5;cursor:not-allowed}.task-filter-row{display:flex;justify-content:flex-end}.task-filter-select{padding:6px 12px;border:none;border-radius:6px;background:#646cff33;color:#a5a8ff;font-size:12px;cursor:pointer}.task-filter-select:focus{outline:none}.task-list{display:flex;flex-direction:column;gap:4px}.task-item{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff0d;border-radius:8px;transition:background .2s}.task-item:hover{background:#ffffff14}.task-item.completed .task-title{text-decoration:line-through;opacity:.6}.task-checkbox-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.task-checkbox-wrapper input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;margin:0}.task-checkmark{width:18px;height:18px;border:2px solid #888;border-radius:4px;background:transparent;transition:all .2s}.task-checkbox-wrapper input:checked+.task-checkmark{background:#646cff;border-color:#646cff}.task-checkbox-wrapper input:checked+.task-checkmark:after{content:"✓";display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}.task-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.task-title{font-size:13px;color:#fff;word-break:break-word}.task-date{font-size:11px;color:#888}.task-edit-input{width:100%;padding:4px 8px;border:1px solid #646cff;border-radius:4px;background:#1a1a1a;color:#fff;font-size:13px}.task-edit-input:focus{outline:none}.task-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.task-item:hover .task-actions{opacity:1}.task-action-btn{width:28px;height:28px;border:none;border-radius:4px;background:#ffffff1a;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.task-action-btn:hover{background:#fff3;color:#fff}.task-delete-btn:hover{background:#ff64644d;color:#f66}.task-empty{padding:16px;text-align:center;color:#666;font-size:12px;font-style:italic}.task-hidden-count{padding:8px;text-align:center;color:#666;font-size:11px}.task-list-view .task-item{padding:8px}.task-list-view .task-title{font-size:12px}.task-list-view .task-date{font-size:10px}.notes-textarea{width:100%;padding:8px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:12px;resize:vertical;font-family:inherit}.notes-content{margin:0;white-space:pre-wrap;font-size:12px;color:var(--color-text-secondary);font-family:inherit}.embed-edit-row{display:flex;gap:8px;align-items:center}.embed-edit-row .extension-input{flex:1}.embed-extension-edit{display:flex;flex-direction:column;gap:8px;flex:1}.embed-preview,.embed-extension,.embed-extension-view{border-radius:4px;overflow:hidden;flex:1;display:flex;flex-direction:column;min-height:150px}.embed-preview iframe,.embed-extension iframe,.embed-extension-view iframe{display:block;width:100%;height:100%;flex:1;border:none}.extension-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.extension-picker-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:pointer;font-size:10px;transition:all .2s}.extension-picker-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-accent-primary);color:var(--color-text-primary)}.extension-picker-icon{font-size:18px}.extensions-loading{color:#888;font-size:12px;font-style:italic;padding:8px 0}.extensions-error{color:#f66;font-size:12px;background:#ff64641a;border-radius:4px;padding:8px;margin-top:8px}.text-edit-btn,.notes-edit-btn,.code-edit-btn,.link-edit-btn,.image-edit-btn,.embed-edit-btn,.task-manage-btn{position:absolute;top:4px;right:4px;padding:3px 8px;border:none;border-radius:4px;background:#646cff4d;color:#a5a8ff;font-size:10px;font-weight:500;cursor:pointer;z-index:10;transition:all .2s;opacity:0}.text-extension-view:hover .text-edit-btn,.notes-extension-view:hover .notes-edit-btn,.code-extension-view:hover .code-edit-btn,.link-extension-view:hover .link-edit-btn,.image-extension-view:hover .image-edit-btn,.embed-extension-view:hover .embed-edit-btn,.task-list-view:hover .task-manage-btn{opacity:1}.text-edit-btn:hover,.notes-edit-btn:hover,.code-edit-btn:hover,.link-edit-btn:hover,.image-edit-btn:hover,.embed-edit-btn:hover,.task-manage-btn:hover{background:#646cff80;color:#fff}.notes-done-btn,.code-done-btn,.link-done-btn,.image-done-btn,.embed-done-btn,.task-done-btn,.toolbar-btn-save{padding:4px 10px;border:none;border-radius:4px;background:#646cff;color:#fff;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s}.notes-done-btn:hover,.code-done-btn:hover,.link-done-btn:hover,.image-done-btn:hover,.embed-done-btn:hover,.task-done-btn:hover,.toolbar-btn-save:hover{background:#5558dd}.text-extension-view,.notes-extension-view,.code-extension-view,.link-extension-view,.image-extension-view,.embed-extension-view,.youtube-extension-view,.task-list-view{position:relative}.text-extension-clickable,.notes-extension-clickable,.code-extension-clickable,.link-extension-clickable,.image-extension-clickable,.embed-extension-clickable,.youtube-extension-clickable,.task-extension-clickable{cursor:pointer;padding:16px;text-align:center;border:1px dashed #555;border-radius:6px;background:#646cff0d;transition:all .2s}.text-extension-clickable:hover,.notes-extension-clickable:hover,.code-extension-clickable:hover,.link-extension-clickable:hover,.image-extension-clickable:hover,.embed-extension-clickable:hover,.youtube-extension-clickable:hover,.task-extension-clickable:hover{background:#646cff1a;border-color:#646cff}.text-placeholder,.notes-placeholder,.code-placeholder,.link-placeholder,.image-placeholder,.embed-placeholder,.youtube-placeholder,.task-placeholder{color:#888;font-size:12px;font-style:italic}.code-edit-header{display:flex;gap:8px;align-items:center;margin-bottom:8px}.code-edit-header .extension-select{width:auto;margin-bottom:0}.code-edit-header .extension-checkbox{margin-left:auto}.link-edit-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.image-edit-footer{display:flex;gap:8px;align-items:center;margin-bottom:8px}.image-edit-footer .extension-select{width:auto;margin-bottom:0}.image-source-buttons{display:flex;align-items:center;gap:10px;margin-bottom:8px}.image-source-btn{padding:6px 12px;border:none;border-radius:4px;background:#646cff;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.image-source-btn:hover{background:#5558dd}.image-source-or{color:#888;font-size:11px}.task-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.task-edit-title{font-size:12px;font-weight:500;color:#888}.task-list-view{position:relative}.task-list-view .task-manage-btn{position:absolute;top:0;right:0}.task-list-editing .task-action-btn{width:auto;padding:4px 8px;font-size:10px}.task-list-readonly .task-status{width:20px;text-align:center;flex-shrink:0}.task-list-readonly .task-status.done{color:#646cff}.task-list-readonly .task-status.pending{color:#666}.youtube-extension-empty{min-height:60px;display:flex;align-items:center;justify-content:center}.mindmap-node.theme-notepad{--notepad-bg: #fffef0;--notepad-text: #3d3929;--notepad-font-size: 14px;--notepad-line-color: #e8d4b8;--notepad-line-thickness: 1px;--notepad-margin-color: #f5a5a5;background:var(--notepad-bg)!important;border-color:#d4a574!important;border-width:1px!important;border-radius:4px!important;box-shadow:2px 2px 8px #00000026,inset 0 0 0 1px #ffffff80;position:relative;overflow:visible!important;padding:12px 12px 12px 36px!important}.mindmap-node.theme-notepad:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(transparent,transparent 23px,var(--notepad-line-color) 23px,var(--notepad-line-color) calc(23px + var(--notepad-line-thickness)));opacity:.4;border-radius:inherit}.mindmap-node.theme-notepad:after{content:"";position:absolute;top:0;bottom:0;left:28px;width:1px;background:var(--notepad-margin-color);opacity:.6;pointer-events:none}.mindmap-node.theme-notepad .node-label,.mindmap-node.theme-notepad .node-label-input{color:var(--notepad-text)!important;font-size:var(--notepad-font-size)!important;font-family:Patrick Hand,Comic Sans MS,cursive,sans-serif}.mindmap-node.theme-notepad .node-label-input{background:transparent!important;border-color:#d4a574!important}.mindmap-node.theme-notepad .node-divider{border-color:#d4a574!important;opacity:.5}.mindmap-node.theme-notepad .notes-content{color:var(--notepad-text);font-size:var(--notepad-font-size);font-family:Patrick Hand,Comic Sans MS,cursive,sans-serif;line-height:24px;padding:5px 8px 0 0;margin:0}.mindmap-node.theme-notepad .notes-extension-view{position:absolute!important;inset:0;padding:8px 8px 8px 36px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(212,165,116,.4) transparent}.mindmap-node.theme-notepad .notes-extension-view::-webkit-scrollbar{width:6px}.mindmap-node.theme-notepad .notes-extension-view::-webkit-scrollbar-track{background:transparent}.mindmap-node.theme-notepad .notes-extension-view::-webkit-scrollbar-thumb{background:#d4a57466;border-radius:3px}.mindmap-node.theme-notepad .notes-extension-view::-webkit-scrollbar-thumb:hover{background:#d4a57499}.mindmap-node.theme-notepad .notes-placeholder{color:#8b7355}.mindmap-node.theme-notepad .notes-extension-clickable{border-color:#d4a574;background:#d4a5741a}.mindmap-node.theme-notepad .notes-extension-clickable:hover{background:#d4a57433;border-color:#c49264}.mindmap-node.theme-tasks{--task-bg: #1e3a5f;--task-text: #e0f0ff;--task-accent: #4a90d9;--task-font-size: 13px;background:linear-gradient(135deg,var(--task-bg) 0%,color-mix(in srgb,var(--task-bg) 85%,white 15%) 100%)!important;border-color:var(--task-accent)!important;border-radius:8px!important;padding:0!important;overflow:visible!important;min-width:150px;min-height:80px;position:relative}.mindmap-node.theme-tasks .node-title-section,.mindmap-node.theme-tasks .node-divider{display:none!important}.mindmap-node.theme-tasks .node-content{position:absolute!important;inset:0;padding:0!important;margin:0!important;overflow:hidden;border-radius:inherit;z-index:1}.mindmap-node.theme-tasks .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-tasks .extension-container{position:absolute!important;inset:0;margin:0!important;padding:0!important;background:transparent!important}.mindmap-node.theme-tasks .extension-content{position:absolute!important;inset:0;padding:0!important;margin:0!important}.mindmap-node.theme-tasks .task-list-extension,.mindmap-node.theme-tasks .task-list-view,.mindmap-node.theme-tasks .task-list-editing,.mindmap-node.theme-tasks .task-list-readonly{position:absolute!important;inset:0;margin:0!important;padding:12px!important;box-sizing:border-box;border-radius:inherit;display:flex!important;flex-direction:column!important;overflow:hidden}.mindmap-node.theme-tasks .task-list{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--task-accent) 40%,transparent 60%) transparent;min-height:0}.mindmap-node.theme-tasks .task-list::-webkit-scrollbar{width:4px}.mindmap-node.theme-tasks .task-list::-webkit-scrollbar-track{background:transparent}.mindmap-node.theme-tasks .task-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--task-accent) 40%,transparent 60%);border-radius:2px}.mindmap-node.theme-tasks .task-list-editing{display:flex!important;flex-direction:column!important;gap:8px}.mindmap-node.theme-tasks .task-edit-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.mindmap-node.theme-tasks .task-edit-title{color:var(--task-text);font-weight:600;font-size:var(--task-font-size)}.mindmap-node.theme-tasks .task-done-btn{background:var(--task-accent)}.mindmap-node.theme-tasks .task-done-btn:hover{background:color-mix(in srgb,var(--task-accent) 80%,black 20%)}.mindmap-node.theme-tasks .task-item{background:#ffffff14}.mindmap-node.theme-tasks .task-item:hover{background:#ffffff1f}.mindmap-node.theme-tasks .task-title{color:var(--task-text);font-size:var(--task-font-size)}.mindmap-node.theme-tasks .task-checkmark{border-color:color-mix(in srgb,var(--task-accent) 60%,var(--task-text) 40%)}.mindmap-node.theme-tasks .task-checkbox-wrapper input:checked+.task-checkmark{background:var(--task-accent);border-color:var(--task-accent)}.mindmap-node.theme-tasks .task-placeholder,.mindmap-node.theme-tasks .task-empty,.mindmap-node.theme-tasks .task-extension-empty{color:color-mix(in srgb,var(--task-text) 50%,transparent 50%);text-align:center;padding:20px;flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--task-font-size)}.mindmap-node.theme-tasks .task-add-input{background:color-mix(in srgb,var(--task-accent) 30%,transparent 70%);border:1px solid var(--task-accent);color:var(--task-text);font-size:var(--task-font-size)}.mindmap-node.theme-tasks .task-add-input::placeholder{color:color-mix(in srgb,var(--task-text) 70%,transparent 30%)}.mindmap-node.theme-tasks .task-add-input:focus{background:color-mix(in srgb,var(--task-accent) 40%,transparent 60%);border-color:color-mix(in srgb,var(--task-accent) 80%,white 20%)}.mindmap-node.theme-tasks .task-add-btn{background:var(--task-accent);font-size:var(--task-font-size)}.mindmap-node.theme-tasks .task-add-btn:hover:not(:disabled){background:color-mix(in srgb,var(--task-accent) 80%,black 20%)}.mindmap-node.theme-tasks .task-filter-select{background:color-mix(in srgb,var(--task-accent) 20%,transparent 80%);color:color-mix(in srgb,var(--task-text) 80%,var(--task-accent) 20%);font-size:calc(var(--task-font-size) - 1px)}.mindmap-node.theme-code{padding:0!important;overflow:visible!important;min-width:150px;min-height:80px;position:relative;background:#0d0d0d!important}.mindmap-node.theme-code .node-title-section,.mindmap-node.theme-code .node-divider{display:none!important}.mindmap-node.theme-code .node-handle,.mindmap-node.theme-code .node-handle.visible,.mindmap-node.theme-code .react-flow__handle{opacity:0!important;pointer-events:auto;z-index:20!important}.mindmap-node.theme-code:hover .node-handle,.mindmap-node-wrapper:hover .mindmap-node.theme-code .node-handle,.react-flow__node:hover .mindmap-node.theme-code .node-handle,.react-flow__node.connecting .mindmap-node.theme-code .node-handle{opacity:0!important}.mindmap-node.theme-code .node-content{position:absolute!important;inset:0;padding:0!important;margin:0!important;overflow:hidden;border-radius:inherit;z-index:1}.mindmap-node.theme-code .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-code .extension-container{position:absolute!important;inset:0;margin:0!important;padding:0!important;background:transparent!important;border-radius:inherit}.mindmap-node.theme-code .extension-content{position:absolute!important;inset:0;padding:0!important;margin:0!important}.mindmap-node.theme-code .code-extension,.mindmap-node.theme-code .code-extension-view,.mindmap-node.theme-code .code-extension-view.terminal-theme,.mindmap-node.theme-code .code-extension-edit,.mindmap-node.theme-code .code-extension-edit.terminal-theme{position:absolute!important;inset:0!important;margin:0!important;padding:0!important;border-radius:inherit!important;background:transparent!important;border:none!important;box-shadow:none!important}.mindmap-node.theme-code .code-block,.mindmap-node.theme-code .code-extension-view.terminal-theme .code-block,.mindmap-node.theme-code .terminal-theme .code-block{position:absolute!important;inset:0;margin:0!important;padding:28px 8px 8px!important;box-sizing:border-box;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(0,255,65,.3) transparent;border-radius:0!important}.mindmap-node.theme-code .code-block code{display:block;width:100%}.mindmap-node.theme-code .code-extension-edit{display:flex!important;flex-direction:column!important}.mindmap-node.theme-code .code-extension-edit .code-edit-header{flex-shrink:0;position:relative;z-index:10}.mindmap-node.theme-code .code-extension-edit .code-textarea{position:absolute!important;inset:36px 0 0;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:8px!important;box-sizing:border-box;border:none!important;border-radius:0!important;resize:none!important}.mindmap-node.theme-code .code-block::-webkit-scrollbar{width:4px;height:4px}.mindmap-node.theme-code .code-block::-webkit-scrollbar-track{background:transparent}.mindmap-node.theme-code .code-block::-webkit-scrollbar-thumb{background:#00ff414d;border-radius:2px}.mindmap-node.theme-code .code-block::-webkit-scrollbar-thumb:hover{background:#00ff4180}.mindmap-node.theme-code .code-extension-empty{position:absolute!important;inset:0!important;display:flex;align-items:center;justify-content:center}.mindmap-node.theme-notepad.is-selected{box-shadow:0 0 0 2px #d4a574,0 0 12px #d4a57466,2px 2px 8px #00000026}.mindmap-node.theme-notepad .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-notepad .extension-container{position:absolute!important;inset:0;margin:0!important;padding:0!important;background:transparent!important}.mindmap-node.theme-notepad .extension-content{position:absolute!important;inset:0;padding:0!important;margin:0!important}.mindmap-node.theme-notepad .notes-extension-edit{position:absolute!important;inset:0;display:flex;flex-direction:column;padding:8px 8px 8px 36px;box-sizing:border-box;z-index:10}.mindmap-node.theme-notepad .notes-extension-edit .notes-textarea{flex:1;width:100%!important;min-height:0!important;margin:0!important;padding:5px 8px 0 0!important;box-sizing:border-box;resize:none!important;background:transparent!important;color:var(--notepad-text)!important;font-family:Patrick Hand,Comic Sans MS,cursive,sans-serif!important;font-size:var(--notepad-font-size)!important;border:none!important;border-radius:0!important;outline:none;line-height:24px}.mindmap-node.theme-notepad .notes-extension-edit .notes-textarea:focus{border:none!important;box-shadow:none!important}.mindmap-node.theme-notepad .notes-extension-edit .notes-done-btn{align-self:flex-end;margin-top:8px;background:#d4a574}.mindmap-node.theme-notepad .notes-extension-edit .notes-done-btn:hover{background:#c49264}.mindmap-node.theme-tasks.is-selected{box-shadow:0 0 0 2px var(--task-accent),0 0 12px color-mix(in srgb,var(--task-accent) 40%,transparent 60%)}.mindmap-node.theme-code.is-selected{box-shadow:0 0 0 2px #00ff41,0 0 20px #00ff4180,inset 0 0 30px #00ff411a}.mindmap-node.theme-image{padding:0!important;overflow:visible!important;min-width:100px;min-height:80px;position:relative}.mindmap-node.theme-image .react-flow__handle{z-index:20!important}.mindmap-node.theme-image .node-title-section,.mindmap-node.theme-image .node-divider{display:none!important}.mindmap-node.theme-image .node-content{position:absolute!important;inset:0;padding:0!important;margin:0!important;overflow:hidden;border-radius:inherit;z-index:1}.mindmap-node.theme-image .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-image .image-extension,.mindmap-node.theme-image .image-extension-view{position:absolute!important;inset:0;width:100%;height:100%;margin:0!important;padding:0!important;border-radius:inherit;display:flex;align-items:center;justify-content:center}.mindmap-node.theme-image .image-extension-img{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;object-fit:cover;border-radius:inherit;display:block;max-width:none!important;max-height:none!important}.mindmap-node.theme-image .image-extension-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:80px;background:#646cff0d}.mindmap-node.theme-image.is-selected{box-shadow:0 0 0 2px var(--border-color, #646cff),0 0 12px #646cff66}.mindmap-node.theme-youtube{padding:0!important;overflow:visible!important;min-width:200px;min-height:120px;position:relative}.mindmap-node.theme-youtube .react-flow__handle{z-index:20!important}.mindmap-node.theme-youtube .node-title-section,.mindmap-node.theme-youtube .node-divider{display:none!important}.mindmap-node.theme-youtube .node-content{position:absolute!important;inset:0;padding:0!important;margin:0!important;overflow:hidden;border-radius:inherit;z-index:1}.mindmap-node.theme-youtube .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-youtube .youtube-extension,.mindmap-node.theme-youtube .youtube-extension-view{position:absolute!important;inset:0;width:100%;height:100%;margin:0!important;padding:0!important;border-radius:inherit}.mindmap-node.theme-youtube .youtube-extension iframe,.mindmap-node.theme-youtube .youtube-extension-view iframe{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;border:none;border-radius:inherit}.mindmap-node.theme-youtube .youtube-extension-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:120px;background:#ff00000d}.mindmap-node.theme-youtube .youtube-preview-wrapper,.mindmap-node.theme-youtube .youtube-preview{position:absolute;inset:0}.mindmap-node.theme-youtube .youtube-preview-disabled,.mindmap-node.theme-youtube .youtube-preview-disabled iframe{pointer-events:none}.youtube-drag-handle{position:absolute;top:50%;left:8px;transform:translateY(-50%);width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#000000b3;border-radius:10px;color:#fff;cursor:grab;opacity:0;transition:opacity .2s ease;z-index:10}.youtube-drag-handle:active{cursor:grabbing}.youtube-preview-wrapper:hover .youtube-drag-handle{opacity:1}.youtube-drag-handle:hover{background:#000000d9}.react-flow__node.dragging .youtube-preview iframe,.react-flow__node.dragging .youtube-preview{pointer-events:none!important}.mindmap-node.theme-youtube.is-selected{box-shadow:0 0 0 2px var(--border-color, #ff0000),0 0 12px #f006}.mindmap-node.theme-embed{padding:0!important;overflow:visible!important;min-width:200px;min-height:150px;position:relative;border-radius:8px!important}.mindmap-node.theme-embed .node-title-section,.mindmap-node.theme-embed .node-divider{display:none!important}.mindmap-node.theme-embed .node-content{position:absolute!important;inset:0;padding:0!important;margin:0!important;overflow:hidden;border-radius:inherit;z-index:1}.mindmap-node.theme-embed .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-embed .extension-container{position:absolute!important;inset:0;margin:0!important;padding:0!important;background:transparent!important;border-radius:inherit}.mindmap-node.theme-embed .extension-content{position:absolute!important;inset:0;padding:0!important;margin:0!important}.mindmap-node.theme-embed .embed-extension,.mindmap-node.theme-embed .embed-extension-view{position:absolute!important;inset:0;margin:0!important;padding:0!important;border-radius:inherit;display:flex;flex-direction:column;background:#1e1e1e}.mindmap-node.theme-embed .embed-extension:before,.mindmap-node.theme-embed .embed-extension-view:before{content:"";position:absolute;top:0;left:0;right:0;height:28px;background:linear-gradient(180deg,#3a3a3a,#2d2d2d);border-bottom:1px solid #1a1a1a;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;z-index:5}.mindmap-node.theme-embed .embed-extension:after,.mindmap-node.theme-embed .embed-extension-view:after{content:"";position:absolute;top:9px;left:10px;width:10px;height:10px;background:#ff5f57;border-radius:50%;box-shadow:16px 0 #febc2e,32px 0 #28c840;z-index:6}.mindmap-node.theme-embed .embed-extension iframe,.mindmap-node.theme-embed .embed-extension-view iframe{position:absolute!important;inset:28px 0 0;width:100%!important;height:calc(100% - 28px)!important;border:none;border-radius:0 0 inherit inherit;background:#fff}.mindmap-node.theme-embed .embed-extension-empty{position:absolute;inset:28px 0 0;display:flex;align-items:center;justify-content:center;background:#2a2a2a;border-radius:0 0 inherit inherit}.mindmap-node.theme-embed .embed-placeholder{color:#888;font-size:12px}.mindmap-node.theme-embed .embed-extension-edit{position:absolute!important;inset:0;margin:0!important;padding:0!important;border-radius:inherit;display:flex;flex-direction:column;background:#1e1e1e}.mindmap-node.theme-embed .embed-extension-edit:before{content:"";position:absolute;top:0;left:0;right:0;height:28px;background:linear-gradient(180deg,#3a3a3a,#2d2d2d);border-bottom:1px solid #1a1a1a;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;z-index:1}.mindmap-node.theme-embed .embed-extension-edit:after{content:"";position:absolute;top:9px;left:10px;width:10px;height:10px;background:#ff5f57;border-radius:50%;box-shadow:16px 0 #febc2e,32px 0 #28c840;z-index:2}.mindmap-node.theme-embed .embed-edit-row{position:absolute;top:4px;left:56px;right:8px;height:20px;display:flex;gap:6px;z-index:3}.mindmap-node.theme-embed .embed-edit-row .extension-input{flex:1;height:20px;padding:2px 8px;margin:0;border:none;border-radius:4px;background:#1a1a1a;color:#ccc;font-size:11px}.mindmap-node.theme-embed .embed-edit-row .extension-input:focus{outline:none;background:#222}.mindmap-node.theme-embed .embed-done-btn{height:20px;padding:0 10px;font-size:10px;border-radius:4px}.mindmap-node.theme-embed .embed-preview{position:absolute!important;inset:28px 0 0;margin:0!important;border-radius:0 0 inherit inherit;overflow:hidden}.mindmap-node.theme-embed .embed-preview iframe{width:100%!important;height:100%!important;border:none;background:#fff}.mindmap-node.theme-embed .embed-preview-wrapper{position:absolute;inset:28px 0 0}.mindmap-node.theme-embed .embed-preview-wrapper .embed-preview{position:absolute;inset:0}.mindmap-node.theme-embed .embed-preview-wrapper .embed-preview iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;background:#fff}.embed-drag-handle{position:absolute;top:50%;left:8px;transform:translateY(-50%);width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#000000b3;border-radius:10px;color:#fff;cursor:grab;opacity:0;transition:opacity .2s ease;z-index:10}.embed-drag-handle:active{cursor:grabbing}.embed-preview-wrapper:hover .embed-drag-handle{opacity:1}.embed-drag-handle:hover{background:#000000d9}.react-flow__node.dragging .embed-preview iframe,.react-flow__node.dragging .embed-preview{pointer-events:none!important}.mindmap-node.theme-embed.is-selected{box-shadow:0 0 0 2px var(--border-color, #646cff),0 0 12px #646cff66}.mindmap-node.theme-text{padding:0!important;overflow:visible!important;min-width:150px;min-height:80px;position:relative}.mindmap-node.theme-text .node-title-section,.mindmap-node.theme-text .node-divider{display:none!important}.mindmap-node.theme-text .node-content{position:absolute!important;inset:2px;padding:0!important;margin:0!important;overflow:hidden;border-radius:inherit;z-index:1}.mindmap-node.theme-text .node-extensions-section{position:absolute!important;inset:0;margin:0!important;padding:0!important}.mindmap-node.theme-text .extension-container{position:absolute!important;inset:0;margin:0!important;padding:0!important;background:transparent!important;border-radius:inherit}.mindmap-node.theme-text .extension-content{position:absolute!important;inset:0;padding:0!important;margin:0!important}.mindmap-node.theme-text .text-extension,.mindmap-node.theme-text .text-extension-view{position:absolute!important;inset:0;margin:0!important;padding:10px!important;border-radius:inherit;overflow:auto;box-sizing:border-box}.mindmap-node.theme-text .text-extension{color:inherit;font-size:inherit;line-height:1.5}.mindmap-node.theme-text .text-extension-empty{display:flex;align-items:center;justify-content:center}.mindmap-node.theme-text .text-placeholder{color:#fff6;font-size:12px;font-style:italic}.mindmap-node.theme-text .text-extension-edit{position:absolute!important;inset:0;margin:0!important;padding:0!important;border-radius:inherit;overflow:hidden}.mindmap-node.theme-text .text-editor{position:absolute!important;inset:0;margin:0!important;padding:12px!important;border:none!important;border-radius:inherit!important;background:transparent!important;overflow:auto;color:inherit;box-sizing:border-box}.mindmap-node.theme-text .text-editor.focused{border:none!important;outline:none}.mindmap-node.theme-text .text-extension::-webkit-scrollbar,.mindmap-node.theme-text .text-editor::-webkit-scrollbar{width:4px}.mindmap-node.theme-text .text-extension::-webkit-scrollbar-track,.mindmap-node.theme-text .text-editor::-webkit-scrollbar-track{background:transparent}.mindmap-node.theme-text .text-extension::-webkit-scrollbar-thumb,.mindmap-node.theme-text .text-editor::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.mindmap-node.theme-text .text-extension::-webkit-scrollbar-thumb:hover,.mindmap-node.theme-text .text-editor::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.mindmap-node.theme-text.is-selected{box-shadow:0 0 0 2px var(--border-color, #646cff),0 0 12px #646cff66}.terminal-theme{position:relative;overflow:hidden}.terminal-scanlines{position:absolute;inset:0;pointer-events:none;z-index:5;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15) 0px,rgba(0,0,0,.15) 1px,transparent 1px,transparent 2px)}.terminal-code{position:relative;border-radius:4px;border:1px solid rgba(0,255,65,.2)}.terminal-theme .code-language-badge{position:absolute;top:4px;right:4px;padding:2px 8px;background:#0009;border:1px solid;border-radius:3px;font-size:9px;text-transform:uppercase;font-family:Monaco,Menlo,Ubuntu Mono,monospace;letter-spacing:1px;z-index:10}@keyframes terminal-blink{0%,49%{opacity:1}50%,to{opacity:0}}.terminal-theme .code-placeholder:after{content:"_";animation:terminal-blink 1s infinite;margin-left:2px}.code-extension-view.terminal-theme{border-radius:6px;border:2px solid rgba(0,255,65,.3);background:linear-gradient(180deg,rgba(0,20,0,.3) 0%,transparent 100%)}.code-extension-view.terminal-theme .code-block{margin:0;padding:24px 8px 8px;border-radius:4px}.mindmap-node.theme-code .code-extension-view.terminal-theme,.mindmap-node.theme-code .code-extension-edit.terminal-theme{border:none!important;border-radius:inherit}.code-extension-edit.terminal-theme{border-radius:6px;border:2px solid rgba(0,255,65,.3);background:#000a0080}.code-extension-edit.terminal-theme .code-edit-header{background:#0006;border-bottom:1px solid rgba(0,255,65,.2);padding:6px 8px}.code-extension-edit.terminal-theme .code-textarea{border:1px solid rgba(0,255,65,.2);font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;caret-color:#00ff41}.terminal-theme .code-extension-empty{padding:20px;text-align:center;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#0000004d;border-radius:4px}@keyframes crt-flicker{0%{opacity:.97}5%{opacity:.98}10%{opacity:.96}15%{opacity:.99}20%{opacity:.97}50%{opacity:.98}80%{opacity:.97}to{opacity:.98}}.collaborators-tab{padding:16px}.upgrade-overlay{display:flex;align-items:center;justify-content:center;padding:24px 16px}.upgrade-content{text-align:center;max-width:280px}.upgrade-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(135deg,var(--color-warning),#d97706);display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff}.upgrade-content h3{margin:0 0 12px;font-size:20px;font-weight:600;color:var(--color-text-primary)}.upgrade-content p{margin:0 0 16px;font-size:14px;color:var(--color-text-muted);line-height:1.5}.upgrade-features{list-style:none;padding:0;margin:0 0 20px;text-align:left}.upgrade-features li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--color-text-tertiary)}.upgrade-features li:before{content:"✓";color:var(--color-success);font-weight:600}.upgrade-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--color-warning),#d97706);color:#fff;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s}.upgrade-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.collaborators-header{margin-bottom:16px}.collaborators-description{margin:0 0 12px;font-size:13px;color:var(--color-text-muted);line-height:1.5}.add-collaborator-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;background:var(--color-accent-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.add-collaborator-btn:hover:not(:disabled){background:var(--color-accent-primary-hover)}.add-collaborator-btn:disabled{opacity:.5;cursor:not-allowed}.collaborators-loading,.collaborators-error{text-align:center;padding:32px 16px;color:var(--color-text-muted);font-size:14px}.collaborators-error{color:var(--color-error)}.collaborators-empty{text-align:center;padding:32px 16px;background:var(--color-bg-secondary);border-radius:8px;border:1px dashed var(--color-border-subtle)}.collaborators-empty p{margin:0;font-size:15px;color:var(--color-text-muted)}.collaborators-empty small{display:block;margin-top:8px;font-size:13px;color:var(--color-text-disabled)}.collaborators-list{display:flex;flex-direction:column;gap:8px}.collaborator-card{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--color-bg-secondary);border-radius:8px;border:1px solid var(--color-border-default)}.collaborator-info{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}.collaborator-avatar,.collaborator-avatar-placeholder{width:36px;height:36px;border-radius:50%;flex-shrink:0}.collaborator-avatar{object-fit:cover}.collaborator-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-border-subtle);color:var(--color-text-primary);font-size:14px;font-weight:600}.collaborator-details{display:flex;flex-direction:column;min-width:0;overflow:hidden}.collaborator-name{font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collaborator-email{font-size:11px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collaborator-actions{display:flex;align-items:center;gap:8px}.permission-select{flex:1;padding:8px 10px;border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;cursor:pointer;outline:none}.permission-select:focus{border-color:var(--color-border-focus)}.remove-collaborator-btn{width:36px;height:36px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.remove-collaborator-btn:hover:not(:disabled){background:var(--color-error);border-color:var(--color-error);color:#fff}.remove-collaborator-btn:disabled{opacity:.5;cursor:not-allowed}.collaborator-modal-overlay{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;background:#000000b3!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:9999!important;padding:0!important;margin:0!important}.collaborator-modal{background:var(--color-bg-tertiary)!important;border-radius:12px!important;width:90%!important;max-width:440px!important;max-height:80vh!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;box-sizing:border-box!important;border:1px solid var(--color-border-default)!important}.collaborator-modal .modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:16px 20px!important;border-bottom:1px solid var(--color-border-default)!important;flex-shrink:0!important;box-sizing:border-box!important;width:100%!important;background:var(--color-bg-tertiary)!important}.collaborator-modal .modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.collaborator-modal .modal-header .close-btn{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .2s}.collaborator-modal .modal-header .close-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.collaborator-modal .modal-content{padding:20px!important;overflow-y:auto!important;box-sizing:border-box!important;width:100%!important}.collaborator-modal .no-friends-message{text-align:center;padding:24px}.collaborator-modal .no-friends-message p{margin:0;font-size:15px;color:var(--color-text-muted)}.collaborator-modal .no-friends-message small{display:block;margin-top:8px;font-size:13px;color:var(--color-text-disabled)}.collaborator-modal .form-group{margin-bottom:16px}.collaborator-modal .form-group>label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--color-text-primary)}.collaborator-modal .add-method-tabs{display:flex;gap:8px;margin-bottom:16px}.collaborator-modal .add-method-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-muted);font-size:14px;cursor:pointer;transition:all .2s}.collaborator-modal .add-method-tab:hover{border-color:var(--color-border-subtle);color:var(--color-text-primary)}.collaborator-modal .add-method-tab.active{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg);color:var(--color-text-primary)}.collaborator-modal .email-input{width:100%;padding:10px 12px;border:1px solid var(--color-border-default);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;outline:none;box-sizing:border-box}.collaborator-modal .email-input:focus{border-color:var(--color-border-focus)}.collaborator-modal .email-input::placeholder{color:var(--color-text-disabled)}.collaborator-modal .form-hint{display:block;margin-top:8px;font-size:12px;color:var(--color-text-disabled)}.collaborator-modal .friend-select-list{max-height:200px;overflow-y:auto;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-primary)}.collaborator-modal .friend-select-item{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--color-border-default)}.collaborator-modal .friend-select-item:last-child{border-bottom:none}.collaborator-modal .friend-select-item:hover{background:var(--color-bg-tertiary)}.collaborator-modal .friend-select-item.selected{background:var(--color-accent-primary-bg);border-color:var(--color-accent-primary)}.collaborator-modal .friend-avatar,.collaborator-modal .friend-avatar-placeholder{width:36px;height:36px;border-radius:50%;flex-shrink:0}.collaborator-modal .friend-avatar{object-fit:cover}.collaborator-modal .friend-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-border-subtle);color:var(--color-text-primary);font-size:14px;font-weight:600}.collaborator-modal .friend-details{display:flex;flex-direction:column;min-width:0}.collaborator-modal .friend-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.collaborator-modal .friend-email{font-size:12px;color:var(--color-text-muted)}.collaborator-modal .permission-options{display:flex;flex-direction:column;gap:8px}.collaborator-modal .permission-option{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-primary);cursor:pointer;transition:all .2s}.collaborator-modal .permission-option:hover{border-color:var(--color-border-subtle)}.collaborator-modal .permission-option.selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg)}.collaborator-modal .permission-option input[type=radio]{display:none}.collaborator-modal .permission-option svg{width:20px;color:var(--color-text-muted)}.collaborator-modal .permission-option.selected svg{color:var(--color-accent-primary)}.collaborator-modal .permission-option div{display:flex;flex-direction:column}.collaborator-modal .permission-option strong{font-size:14px;color:var(--color-text-primary)}.collaborator-modal .permission-option small{font-size:12px;color:var(--color-text-muted);margin-top:2px}.collaborator-modal .add-error{padding:10px 12px;background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:6px;color:var(--color-error);font-size:13px;margin-bottom:16px}.collaborator-modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border-default)}.collaborator-modal .modal-actions .cancel-btn{padding:10px 16px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-primary);font-size:14px;cursor:pointer;transition:all .2s}.collaborator-modal .modal-actions .cancel-btn:hover:not(:disabled){background:var(--color-bg-elevated)}.collaborator-modal .modal-actions .add-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;background:var(--color-accent-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.collaborator-modal .modal-actions .add-btn:hover:not(:disabled){background:var(--color-accent-primary-hover)}.collaborator-modal .modal-actions .add-btn:disabled,.collaborator-modal .modal-actions .cancel-btn:disabled{opacity:.5;cursor:not-allowed}.share-settings{display:flex;flex-direction:column;gap:16px}.share-loading{text-align:center;padding:24px;color:var(--color-text-muted);font-size:14px}.share-error{padding:10px 12px;background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:6px;color:var(--color-error);font-size:13px}.share-description{margin:0;font-size:13px;color:var(--color-text-muted);line-height:1.5}.share-section{background:var(--color-bg-secondary);border-radius:8px;padding:12px;border:1px solid var(--color-border-default)}.share-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.share-type-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--color-text-primary)}.share-type-label svg{color:var(--color-accent-primary)}.share-type-desc{margin:0 0 12px;font-size:12px;color:var(--color-text-muted)}.create-link-btn{width:28px;height:28px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.create-link-btn:hover:not(:disabled){background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.create-link-btn:disabled{opacity:.5;cursor:not-allowed}.share-links-list{display:flex;flex-direction:column;gap:8px}.no-links{text-align:center;padding:16px;color:var(--color-text-muted);font-size:13px;background:var(--color-bg-primary);border-radius:6px;border:1px dashed var(--color-border-default)}.share-link-item{display:flex;align-items:center;justify-content:space-between;padding:10px;background:var(--color-bg-primary);border-radius:6px;border:1px solid var(--color-border-default);gap:8px}.share-link-info{flex:1;min-width:0;overflow:hidden}.share-link-url{display:flex;align-items:center;gap:6px;color:var(--color-text-primary);font-size:13px;font-family:monospace}.share-link-url .link-icon{color:var(--color-text-muted);flex-shrink:0}.share-link-url .link-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-link-meta{margin-top:4px;font-size:11px;color:var(--color-text-muted)}.share-link-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.copy-link-btn,.revoke-link-btn{width:30px;height:30px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.copy-link-btn:hover{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.copy-link-btn.copied{background:var(--color-success);border-color:var(--color-success);color:#fff}.revoke-link-btn:hover:not(:disabled){background:var(--color-error);border-color:var(--color-error);color:#fff}.revoke-link-btn:disabled{opacity:.5;cursor:not-allowed}.expiry-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 6px;background:var(--color-accent-primary-bg);border-radius:4px;color:var(--color-accent-primary);font-size:10px}.expiry-badge.expired{background:var(--color-error-bg);color:var(--color-error)}.share-link-item.expired{opacity:.6}.expiry-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.expiry-modal{background:var(--color-bg-tertiary);border-radius:12px;width:100%;max-width:360px;border:1px solid var(--color-border-default);box-shadow:0 8px 32px #0000004d}.expiry-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--color-border-default)}.expiry-modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.expiry-modal-header h3 svg{color:var(--color-accent-primary)}.close-modal-btn{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-modal-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.expiry-modal-desc{margin:0;padding:16px 20px 12px;font-size:13px;color:var(--color-text-muted);line-height:1.5}.expiry-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 20px 16px}.expiry-option{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-bg-primary);border:1px solid var(--color-border-default);border-radius:8px;cursor:pointer;transition:all .2s;font-size:13px;color:var(--color-text-tertiary)}.expiry-option:hover{border-color:var(--color-border-subtle);color:var(--color-text-primary)}.expiry-option.selected{border-color:var(--color-accent-primary);background:var(--color-accent-primary-bg);color:var(--color-text-primary)}.expiry-option input[type=radio]{display:none}.expiry-option svg{color:var(--color-accent-primary)}.custom-date-picker{padding:12px 16px}.date-input{width:100%;padding:10px 12px;border:1px solid var(--color-border-default);border-radius:8px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;outline:none;box-sizing:border-box}.date-input:focus{border-color:var(--color-border-focus)}.expiry-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px;border-top:1px solid var(--color-border-default)}.expiry-modal-actions .cancel-btn{padding:10px 16px;border:1px solid var(--color-border-subtle);border-radius:8px;background:transparent;color:var(--color-text-primary);font-size:14px;cursor:pointer;transition:all .2s}.expiry-modal-actions .cancel-btn:hover{background:var(--color-bg-elevated)}.expiry-modal-actions .create-btn{padding:10px 20px;border:none;border-radius:8px;background:var(--color-accent-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.expiry-modal-actions .create-btn:hover:not(:disabled){background:var(--color-accent-primary-hover)}.expiry-modal-actions .create-btn:disabled{opacity:.5;cursor:not-allowed}.edge-toolbar{position:fixed;top:80px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:6px 8px;background:var(--glass-bg);border:1px solid var(--color-border-subtle);border-radius:8px;box-shadow:var(--shadow-lg);z-index:1000;animation:edgeToolbarSlideIn .15s ease-out}@keyframes edgeToolbarSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.edge-toolbar-divider{width:1px;height:24px;background:var(--color-border-subtle);margin:0 4px}.edge-toolbar-dropdown{position:relative}.edge-toolbar-dropdown-btn{display:flex;align-items:center;gap:4px;padding:6px 8px;border:none;border-radius:6px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all .15s ease}.edge-toolbar-dropdown-btn:hover,.edge-toolbar-dropdown-btn.active{background:var(--color-bg-elevated);color:var(--color-text-primary)}.edge-toolbar-dropdown-btn .dropdown-arrow{opacity:.6;transition:transform .15s ease}.edge-toolbar-dropdown-btn.active .dropdown-arrow{transform:rotate(180deg)}.dropdown-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.edge-toolbar-dropdown-panel{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:140px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-subtle);border-radius:8px;padding:8px;box-shadow:var(--shadow-lg);z-index:10;animation:dropdownFadeIn .15s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dropdown-section{display:flex;flex-direction:column;gap:6px}.dropdown-section-label{font-size:10px;color:var(--color-text-disabled);text-transform:uppercase;letter-spacing:.5px;padding:0 4px}.dropdown-options{display:flex;flex-direction:column;gap:2px}.dropdown-options.horizontal{flex-direction:row;gap:4px}.dropdown-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;border-radius:4px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.dropdown-option:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.dropdown-option.active{background:var(--color-accent-primary);color:#fff}.dropdown-option span{font-size:12px}.dropdown-option-small{display:flex;align-items:center;justify-content:center;width:32px;height:28px;padding:4px;border:none;border-radius:4px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all .15s ease}.dropdown-option-small:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.dropdown-option-small.active{background:var(--color-accent-primary);color:#fff}.dropdown-divider{height:1px;background:var(--color-border-subtle);margin:8px 0}.color-preview{width:16px;height:16px;border-radius:3px;border:1px solid var(--glass-border)}.color-panel{min-width:160px}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.color-swatch{width:24px;height:24px;border-radius:4px;border:2px solid transparent;cursor:pointer;transition:all .15s ease}.color-swatch:hover{transform:scale(1.1);border-color:var(--glass-border)}.color-swatch.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px #646cff80}.color-custom{display:flex;align-items:center;gap:8px}.color-custom input[type=color]{width:28px;height:22px;padding:0;border:none;border-radius:4px;cursor:pointer;background:transparent}.color-custom input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-custom input[type=color]::-webkit-color-swatch{border:1px solid var(--color-border-hover);border-radius:4px}.color-custom span{font-size:12px;color:var(--color-text-muted)}.text-size-preview{font-size:13px;font-weight:600;min-width:18px;text-align:center}.text-panel{min-width:auto}.line-panel{min-width:160px}.text-option span{font-weight:500}.edge-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:28px;padding:4px;border:none;border-radius:4px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all .15s ease}.edge-toolbar-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.edge-toolbar-btn.active{background:var(--color-accent-primary);color:#fff}.edge-toolbar-btn svg{display:block}.edge-toolbar-paint.active{animation:paintPulse 1.5s ease-in-out infinite}@keyframes paintPulse{0%,to{box-shadow:0 0 #646cff66}50%{box-shadow:0 0 0 4px #646cff00}}.edge-toolbar-delete{color:var(--color-error)}.edge-toolbar-delete:hover{background:var(--color-error-bg);color:var(--color-error)}.admin-page{min-height:100vh;background:var(--color-bg-secondary)}.admin-header{background:var(--color-bg-primary);color:var(--color-text-primary);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--color-border-subtle)}.admin-header-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.admin-header h1{margin:0;font-size:20px}.admin-header-right{display:flex;align-items:center;gap:16px}.admin-user{color:var(--color-text-muted)}.back-button{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border-subtle);padding:8px 16px;border-radius:4px;cursor:pointer}.back-button:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-hover)}.sign-out-button{background:transparent;color:var(--color-error);border:1px solid var(--color-error);padding:8px 16px;border-radius:4px;cursor:pointer}.sign-out-button:hover{background:var(--color-error);color:#fff}.admin-tabs{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-subtle);display:flex;padding:0 24px;overflow-x:auto}.admin-tab{background:none;border:none;padding:16px 24px;font-size:14px;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap}.admin-tab:hover{color:var(--color-text-primary)}.admin-tab.active{color:var(--color-accent-primary);border-bottom-color:var(--color-accent-primary)}.admin-content{max-width:1400px;margin:0 auto;padding:24px}.admin-section{background:var(--color-bg-primary);border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-subtle)}.admin-section h2{margin:0 0 16px;font-size:18px;color:var(--color-text-primary)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.section-header h2{margin:0}.section-actions{display:flex;gap:8px;flex-wrap:wrap}.section-actions button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;background:var(--color-accent-primary);color:#fff}.section-actions button:hover{background:var(--color-accent-primary-hover)}.section-actions button:disabled{background:var(--color-text-disabled);cursor:not-allowed}.danger-button{background:var(--color-error)!important}.danger-button:hover{background:#c82333!important}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.metrics-grid-wide{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.metric-card{background:var(--color-bg-tertiary);border-radius:8px;padding:16px;text-align:center;border:1px solid var(--color-border-subtle)}.metric-card-large{padding:20px}.metric-card h3{margin:0 0 8px;font-size:14px;color:var(--color-text-muted)}.metric-value{font-size:36px;font-weight:700;color:var(--color-text-primary)}.metric-label{font-size:12px;color:var(--color-text-muted);margin-top:4px}.metric-secondary{font-size:11px;color:var(--color-text-disabled);margin-top:8px}.metric-card-pro{background:linear-gradient(135deg,#805ad5,#9f7aea)}.metric-card-pro h3,.metric-card-pro .metric-value,.metric-card-pro .metric-label{color:#fff!important}.stats-timestamp{font-size:12px;color:var(--color-text-muted);margin-bottom:20px}.cache-note{margin-left:8px;color:var(--color-text-disabled);font-style:italic}.stats-row{margin-bottom:32px}.stats-row:last-child{margin-bottom:0}.stats-row-title{font-size:16px;color:var(--color-text-primary);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--color-border-subtle)}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.bar-chart-card{background:var(--color-bg-tertiary);border-radius:8px;padding:16px;grid-column:span 1;border:1px solid var(--color-border-subtle)}.bar-chart-card-wide{grid-column:span 2}.bar-chart{margin-top:0}.bar-chart-title{font-size:13px;color:var(--color-text-secondary);margin:0 0 12px;font-weight:600}.bar-chart-container{display:flex;flex-direction:column;gap:10px}.bar-chart-row{display:flex;align-items:center;gap:12px}.bar-chart-label{width:90px;font-size:13px;color:var(--color-text-secondary);flex-shrink:0}.bar-chart-bar-container{flex:1;display:flex;align-items:center;background:var(--color-bg-elevated);border-radius:4px;height:28px;overflow:hidden;position:relative}.bar-chart-bar{height:100%;border-radius:4px;min-width:4px;transition:width .3s ease}.bar-chart-value{font-size:13px;font-weight:600;color:var(--color-text-primary);padding:0 12px;position:absolute;right:0}.error-message{background:var(--color-error-bg);color:var(--color-error);padding:12px;border-radius:4px;margin-bottom:16px}.info-message{background:var(--color-success-bg);color:var(--color-success);padding:12px;border-radius:4px;margin-bottom:16px}.user-search{margin-top:8px}.search-form{display:flex;align-items:center;gap:12px;margin-bottom:20px}.search-form input{flex:1;max-width:400px;padding:12px 16px;border:1px solid var(--color-border-subtle);border-radius:6px;font-size:14px;background:var(--color-bg-input);color:var(--color-text-primary)}.search-form input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-primary-bg)}.search-form button{padding:12px 24px;background:var(--color-accent-primary);color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;white-space:nowrap}.search-form button:hover:not(:disabled){background:var(--color-accent-primary-hover)}.search-form button:disabled{background:var(--color-text-disabled);cursor:not-allowed}.user-management-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.search-results-column,.user-details-column{min-width:0}.search-results{border:1px solid var(--color-border-subtle);border-radius:8px;overflow:hidden}.search-result-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--color-border-subtle);transition:background .15s;background:var(--color-bg-primary)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--color-bg-tertiary)}.search-result-item.selected{background:var(--color-accent-primary-bg)}.result-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-bg-elevated);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.result-avatar img{width:100%;height:100%;object-fit:cover}.result-avatar span{font-weight:600;color:var(--color-text-secondary)}.result-info{flex:1;min-width:0}.result-email{font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-name{font-size:13px;color:var(--color-text-muted)}.result-badges{display:flex;gap:6px;flex-shrink:0}.badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-free{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.badge-pro{background:#805ad5;color:#fff}.badge-admin{background:#fed7e2;color:#97266d}.no-results{text-align:center;color:var(--color-text-muted);padding:24px;background:var(--color-bg-tertiary);border-radius:8px}.select-user-hint{text-align:center;color:var(--color-text-muted);padding:48px 24px;background:var(--color-bg-tertiary);border-radius:8px;border:2px dashed var(--color-border-subtle)}.user-details-loading{text-align:center;color:var(--color-text-muted);padding:48px 24px;background:var(--color-bg-tertiary);border-radius:8px}.user-card{background:var(--color-bg-tertiary);border-radius:8px;padding:24px;border:1px solid var(--color-border-subtle)}.user-card-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border-subtle);position:relative}.user-card-close{position:absolute;top:0;right:0;background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;line-height:1;border-radius:4px}.user-card-close:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.user-avatar-large{width:64px;height:64px;border-radius:50%;background:var(--color-bg-elevated);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.user-avatar-large img{width:100%;height:100%;object-fit:cover}.user-avatar-large span{font-size:24px;font-weight:600;color:var(--color-text-secondary)}.user-header-info h3{margin:0 0 4px;font-size:18px;color:var(--color-text-primary)}.user-email{color:var(--color-text-muted);font-size:14px}.user-info{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:20px}.user-field{display:flex;flex-direction:column}.user-field label{font-size:12px;color:var(--color-text-muted);margin-bottom:4px}.user-field span{font-size:14px;color:var(--color-text-primary)}.user-field .monospace{font-family:monospace;font-size:11px;background:var(--color-bg-elevated);padding:4px 8px;border-radius:4px;word-break:break-all}.tier-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700}.tier-badge.free{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.tier-badge.pro{background:#805ad5;color:#fff}.role-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700}.role-badge.user{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.role-badge.sysadmin{background:#fed7e2;color:#97266d}.user-actions{border-top:1px solid var(--color-border-subtle);padding-top:16px}.user-actions h4{margin:0 0 12px;font-size:14px;color:var(--color-text-muted)}.role-buttons{display:flex;gap:8px}.role-buttons button{padding:8px 20px;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer}.role-buttons button:hover:not(:disabled){background:var(--color-bg-tertiary)}.role-buttons button.active{background:var(--color-accent-primary);color:#fff;border-color:var(--color-accent-primary)}.role-buttons button:disabled{cursor:not-allowed;opacity:.6}.tier-buttons .pro-button{background:linear-gradient(135deg,#9333ea,#7c3aed);color:#fff;border-color:#9333ea}.tier-buttons .pro-button:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.tier-buttons .pro-button.active{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#6d28d9}.admin-loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:18px;color:var(--color-text-muted);background:var(--color-bg-secondary)}.ip-bans-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.active-only-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--color-text-secondary);font-size:14px}.active-only-toggle input{width:16px;height:16px;cursor:pointer}.add-ban-button{background:var(--color-error)!important}.add-ban-button:hover{background:#c82333!important}.ip-bans-table-container{overflow-x:auto}.ip-bans-table{width:100%;border-collapse:collapse;font-size:14px}.ip-bans-table th,.ip-bans-table td{padding:12px;text-align:left;border-bottom:1px solid var(--color-border-subtle)}.ip-bans-table th{background:var(--color-bg-tertiary);font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.ip-bans-table td{color:var(--color-text-primary)}.ip-bans-table tr:hover{background:var(--color-bg-tertiary)}.ip-bans-table tr.inactive{opacity:.6}.ip-cell{font-family:monospace;font-weight:500}.reason-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ban-type{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600}.ban-type.auto{background:var(--color-warning-bg);color:var(--color-warning)}.ban-type.manual{background:#fed7e2;color:#97266d}.ban-status{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600}.ban-status.active{background:var(--color-error-bg);color:var(--color-error)}.ban-status.expired{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.ban-status.unbanned{background:var(--color-success-bg);color:var(--color-success)}.unban-button{padding:6px 12px;background:var(--color-success);color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer}.unban-button:hover{opacity:.9}.no-bans{text-align:center;color:var(--color-text-muted);padding:24px!important}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px}.pagination button{padding:8px 16px;background:var(--color-accent-primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.pagination button:hover:not(:disabled){background:var(--color-accent-primary-hover)}.pagination button:disabled{background:var(--color-text-disabled);cursor:not-allowed}.page-info{color:var(--color-text-secondary);font-size:14px}.modal-content{background:var(--color-bg-primary);border-radius:8px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--color-border-subtle)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border-subtle)}.modal-header h3{margin:0;font-size:18px;color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--color-text-primary)}.modal-body{padding:20px}.form-field{margin-bottom:16px}.form-field:last-child{margin-bottom:0}.form-field label{display:block;font-size:14px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px}.form-field input,.form-field textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border-subtle);border-radius:6px;font-size:14px;box-sizing:border-box;background:var(--color-bg-input);color:var(--color-text-primary)}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-primary-bg)}.form-field textarea{resize:vertical;min-height:80px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-subtle)}.modal-footer button{padding:10px 20px;border-radius:6px;font-size:14px;cursor:pointer}.modal-footer button:first-child{background:var(--color-bg-elevated);color:var(--color-text-secondary);border:none}.modal-footer button:first-child:hover{background:var(--color-bg-tertiary)}@media(max-width:1200px){.bar-chart-card-wide{grid-column:span 1}}@media(max-width:900px){.user-management-layout{grid-template-columns:1fr}.stats-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.admin-content,.admin-section{padding:16px}}@media(max-width:600px){.admin-header{padding:12px 16px}.admin-header h1{font-size:16px}.admin-header-right{gap:8px}.admin-user{display:none}.admin-tabs{padding:0 16px}.admin-tab{padding:12px 16px;font-size:13px}.metrics-grid,.metrics-grid-wide{grid-template-columns:repeat(2,1fr)}.metric-value{font-size:28px}.stats-cards{grid-template-columns:1fr 1fr}.search-form{flex-direction:column;align-items:stretch}.search-form input{max-width:none}.user-card-header{flex-wrap:wrap}.user-info{grid-template-columns:1fr}.result-badges{flex-direction:column;gap:4px}.ip-bans-controls{flex-direction:column;align-items:stretch}.ip-bans-table{font-size:12px}.ip-bans-table th,.ip-bans-table td{padding:8px}.modal-content{margin:16px;max-width:calc(100% - 32px)}}@media(max-width:400px){.metrics-grid,.metrics-grid-wide,.stats-cards{grid-template-columns:1fr}.bar-chart-label{width:70px;font-size:12px}}.friends-page{min-height:100vh;background:var(--color-bg-primary);color:var(--color-text-primary)}.friends-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-default)}.friends-header h1{margin:0;font-size:24px;font-weight:600}.back-btn{padding:8px 16px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-primary);cursor:pointer;font-size:14px;transition:all .2s}.back-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}.add-friend-btn{padding:8px 16px;border:none;border-radius:6px;background:var(--color-accent-primary);color:#fff;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.add-friend-btn:hover{background:var(--color-accent-primary-hover)}.friends-tabs{display:flex;gap:4px;padding:12px 24px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-default)}.friends-tabs .tab{padding:10px 20px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;gap:8px}.friends-tabs .tab:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.friends-tabs .tab.active{background:var(--color-accent-primary);color:#fff}.friends-tabs .badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--color-error);color:#fff;font-size:12px;font-weight:600}.friends-content{padding:24px;max-width:800px;margin:0 auto}.loading,.empty{text-align:center;padding:48px 24px;color:var(--color-text-muted);font-size:16px}.friends-list,.requests-list,.blocked-list{display:flex;flex-direction:column;gap:12px}.requests-list h3{margin:24px 0 12px;font-size:16px;font-weight:600;color:var(--color-text-muted)}.requests-list h3:first-child{margin-top:0}.friend-card,.request-card,.blocked-card,.search-result{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--color-bg-tertiary);border-radius:8px;border:1px solid var(--color-border-default);transition:border-color .2s}.friend-card:hover,.request-card:hover,.blocked-card:hover{border-color:var(--color-border-subtle)}.user-info{display:flex;align-items:center;gap:12px}.user-info .name{font-size:16px;font-weight:500;color:var(--color-text-primary)}.user-info .email{font-size:14px;color:var(--color-text-muted);margin-top:2px}.user-info .since,.user-info .status{font-size:12px;color:var(--color-text-disabled);margin-top:4px}.user-info .message{font-size:13px;color:var(--color-text-tertiary);font-style:italic;margin-top:4px}.actions{display:flex;gap:8px}.remove-btn,.cancel-btn,.decline-btn,.unblock-btn{padding:8px 16px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-primary);cursor:pointer;font-size:13px;transition:all .2s;min-width:90px}.remove-btn:disabled,.cancel-btn:disabled,.decline-btn:disabled,.unblock-btn:disabled{opacity:.6;cursor:not-allowed}.remove-btn:hover,.cancel-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}.decline-btn:hover{background:var(--color-error);border-color:var(--color-error)}.unblock-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}.accept-btn,.send-request-btn{padding:8px 16px;border:none;border-radius:6px;background:var(--color-accent-primary);color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:background .2s;min-width:90px}.accept-btn:disabled,.send-request-btn:disabled{opacity:.6;cursor:not-allowed}.accept-btn:hover,.send-request-btn:hover{background:var(--color-accent-primary-hover)}.load-more-btn{width:100%;padding:12px;border:1px solid var(--color-border-subtle);border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:14px;transition:all .2s;margin-top:12px}.load-more-btn:hover:not(:disabled){background:var(--color-bg-elevated);color:var(--color-text-primary);border-color:var(--color-border-hover)}.load-more-btn:disabled{cursor:not-allowed;opacity:.6}.modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--color-bg-tertiary);border-radius:12px;width:90%;max-width:480px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-default)}.modal-header h2{margin:0;font-size:18px;font-weight:600}.close-btn{width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.modal-content{padding:20px;overflow-y:auto}.search-input-container{display:flex;gap:8px}.search-input-container input{flex:1;padding:12px 16px;border:1px solid var(--color-border-subtle);border-radius:8px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;outline:none;transition:border-color .2s}.search-input-container input:focus{border-color:var(--color-border-focus)}.search-input-container input::placeholder{color:var(--color-text-disabled)}.search-btn{padding:12px 20px;border:none;border-radius:8px;background:var(--color-accent-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.search-btn:hover:not(:disabled){background:var(--color-accent-primary-hover)}.search-btn:disabled{opacity:.6;cursor:not-allowed}.search-error{margin-top:8px;padding:8px 12px;background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:6px;color:var(--color-error);font-size:13px}.searching{text-align:center;padding:16px;color:var(--color-text-muted)}.search-results{margin-top:16px;display:flex;flex-direction:column;gap:8px}.search-result{padding:12px}.no-results{text-align:center;padding:24px;color:var(--color-text-disabled)}.request-sent-success{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.request-sent-success .success-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--color-success-bg);color:var(--color-success);font-size:32px;margin-bottom:16px}.request-sent-success p{margin:0;font-size:18px;font-weight:500;color:var(--color-text-primary)}.share-landing{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#1a1a2e);padding:24px;box-sizing:border-box}.share-landing-content{width:100%;max-width:480px}.share-loading{text-align:center;color:#888}.share-loading svg{margin-bottom:16px;color:#646cff}.share-loading p{margin:0;font-size:14px}.share-error-state{text-align:center;padding:48px 32px;background:#242424f2;border-radius:16px;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.share-error-state .error-icon{width:72px;height:72px;margin:0 auto 20px;border-radius:50%;background:#ff47571a;display:flex;align-items:center;justify-content:center;color:#ff4757;font-size:28px}.share-error-state h2{margin:0 0 8px;font-size:22px;color:#fff;font-weight:600}.share-error-state p{margin:0 0 28px;color:#888;font-size:15px}.back-home-btn{padding:12px 28px;border:none;border-radius:10px;background:#646cff;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.back-home-btn:hover{background:#535bf2;transform:translateY(-1px)}.share-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px;color:#fff;font-size:22px;font-weight:600}.share-logo svg{color:#646cff;font-size:26px}.share-card{background:#242424f2;border-radius:20px;padding:32px;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 60px #0000004d}.share-owner-section{display:flex;align-items:center;gap:14px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,.06)}.share-owner-section .owner-avatar{border:2px solid rgba(100,108,255,.3)}.owner-info{display:flex;flex-direction:column;gap:2px}.owner-label{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px}.owner-name{font-size:16px;font-weight:600;color:#fff}.share-map-info{text-align:center;margin-bottom:24px}.share-map-name{margin:0 0 8px;font-size:28px;font-weight:700;color:#fff;line-height:1.3}.share-map-description{margin:0 0 16px;font-size:15px;color:#999;line-height:1.6}.share-stats{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:12px}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#666}.stat-item svg{font-size:12px;color:#555}.share-permission-section{margin-bottom:24px}.permission-badge-large{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.permission-badge-large>svg{font-size:24px;flex-shrink:0}.permission-badge-large.view>svg{color:#646cff}.permission-badge-large.edit>svg{color:#4ade80}.permission-text{display:flex;flex-direction:column;gap:2px}.permission-title{font-size:15px;font-weight:600;color:#fff}.permission-desc{font-size:13px;color:#888}.share-card-header{display:flex;justify-content:center;margin-bottom:16px}.permission-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.permission-badge.view{background:#646cff26;color:#646cff}.permission-badge.edit{background:#4ade8026;color:#4ade80}.share-actions{display:flex;flex-direction:column;gap:12px}.share-action-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.share-action-btn.primary{background:linear-gradient(135deg,#646cff,#535bf2);border:none;color:#fff;box-shadow:0 4px 20px #646cff4d}.share-action-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 25px #646cff66}.share-action-btn.secondary{background:transparent;border:2px solid rgba(100,108,255,.5);color:#646cff}.share-action-btn.secondary:hover{background:#646cff1a;border-color:#646cff}.share-action-btn.text{background:transparent;border:none;color:#888;padding:10px;font-weight:500}.share-action-btn.text:hover{color:#fff}.share-action-btn:disabled{opacity:.6;cursor:not-allowed}.share-note{margin:20px 0 0;font-size:13px;color:#666;text-align:center;line-height:1.5}@media(max-width:520px){.share-landing{padding:16px}.share-card{padding:24px 20px;border-radius:16px}.share-map-name{font-size:24px}.share-stats{flex-direction:column;gap:8px}.permission-badge-large{flex-direction:column;text-align:center;padding:20px}.permission-text{align-items:center}}.legal-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column}.legal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.legal-logo{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:600;color:var(--accent-color);text-decoration:none}.legal-logo:hover{opacity:.8}.legal-back{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);text-decoration:none;font-size:.9rem;padding:.5rem 1rem;border-radius:6px;transition:all .2s}.legal-back:hover{background:var(--bg-tertiary);color:var(--text-primary)}.legal-content{flex:1;max-width:800px;margin:0 auto;padding:2rem;line-height:1.7}.legal-content h1{font-family:var(--font-primary);font-size:2.5rem;margin-bottom:.5rem;color:var(--text-primary)}.legal-updated{color:var(--text-tertiary);font-size:.9rem;margin-bottom:2rem}.legal-content section{margin-bottom:2rem}.legal-content h2{font-family:var(--font-primary);font-size:1.4rem;margin-top:2rem;margin-bottom:1rem;color:var(--text-primary);padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.legal-content h3{font-family:var(--font-primary);font-size:1.1rem;margin-top:1.5rem;margin-bottom:.75rem;color:var(--text-primary)}.legal-content p{margin-bottom:1rem;color:var(--text-secondary)}.legal-content ul{margin:1rem 0;padding-left:1.5rem}.legal-content li{margin-bottom:.5rem;color:var(--text-secondary)}.legal-content a{color:var(--accent-color);text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-contact{background:var(--bg-secondary);padding:1rem;border-radius:8px;border:1px solid var(--border-color)}.legal-footer{padding:1.5rem 2rem;border-top:1px solid var(--border-color);background:var(--bg-secondary);text-align:center}.legal-footer p{color:var(--text-tertiary);font-size:.85rem;margin-bottom:.5rem}.legal-footer-links{display:flex;justify-content:center;gap:2rem}.legal-footer-links a{color:var(--text-secondary);text-decoration:none;font-size:.85rem}.legal-footer-links a:hover{color:var(--accent-color)}@media(max-width:768px){.legal-header{padding:1rem}.legal-logo{font-size:1.25rem}.legal-back span{display:none}.legal-content{padding:1.5rem 1rem}.legal-content h1{font-size:1.75rem}.legal-content h2{font-size:1.2rem}}
