.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--bg-body: #09090b;--bg-sidebar: #0f0f11;--bg-card: #18181b;--bg-hover: #27272a;--bg-elevated: #1f1f23;--bg-secondary: #27272a;--bg-tertiary: #3f3f46;--border-default: #27272a;--border-subtle: #27272a;--border-active: #3f3f46;--border-hover: #3f3f46;--text-primary: #f4f4f5;--text-secondary: #f1f1ff;--text-tertiary: #bebed1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3);--scrollbar-track: #18181b;--scrollbar-thumb: #3f3f46;--scrollbar-thumb-hover: #52525b;--bg-code: #1a1a2e;--text-code: #e2e8f0;--grid-color: rgba(255, 255, 255, .02)}[data-theme=light]{--bg-body: #f8fafc;--bg-sidebar: #f1f5f9;--bg-card: #ffffff;--bg-hover: #f1f5f9;--bg-elevated: #ffffff;--bg-secondary: #e2e8f0;--bg-tertiary: #cbd5e1;--border-default: #e2e8f0;--border-subtle: #e2e8f0;--border-active: #cbd5e1;--border-hover: #cbd5e1;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--scrollbar-track: #f1f5f9;--scrollbar-thumb: #cbd5e1;--scrollbar-thumb-hover: #94a3b8;--bg-code: #f1f5f9;--text-code: #334155;--grid-color: rgba(99, 102, 241, .06)}@media (prefers-color-scheme: light){[data-theme=system]{--bg-body: #f8fafc;--bg-sidebar: #f1f5f9;--bg-card: #ffffff;--bg-hover: #f1f5f9;--bg-elevated: #ffffff;--bg-secondary: #e2e8f0;--bg-tertiary: #cbd5e1;--border-default: #e2e8f0;--border-subtle: #e2e8f0;--border-active: #cbd5e1;--border-hover: #cbd5e1;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--scrollbar-track: #f1f5f9;--scrollbar-thumb: #cbd5e1;--scrollbar-thumb-hover: #94a3b8;--bg-code: #f1f5f9;--text-code: #334155;--grid-color: rgba(99, 102, 241, .06)}}*{margin:0;padding:0;box-sizing:border-box;outline:none}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-body);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit}img{max-width:100%;height:auto}ul,ol{list-style:none}::selection{background:#6366f1;color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-body)}::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;letter-spacing:-.5px}h1{font-size:24px}h2{font-size:18px}h3{font-size:16px}h4{font-size:14px}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-success{color:#10b981}.text-warning{color:#f59e0b}.text-danger{color:#ef4444}.text-accent{color:#6366f1}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subtitle{color:var(--text-tertiary);margin-top:4px;font-size:14px}.section-title{font-size:18px;margin-bottom:20px;font-weight:600}.sidebar{width:280px;background-color:var(--bg-body);border-right:1px solid var(--border-default);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:30;padding:0 1rem}@media (max-width: 768px){.sidebar{display:none}}.brand-section{height:70px;display:flex;align-items:center;gap:10px;margin-bottom:1rem;padding:0 .5rem;flex-shrink:0}.brand-logo{width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;position:relative}.brand-logo:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;background:radial-gradient(circle,rgba(99,102,241,.35) 0%,transparent 70%);border-radius:14px;filter:blur(10px);opacity:.85;z-index:-1}.brand-logo img{width:100%;height:100%;filter:drop-shadow(0 0 8px rgba(99,102,241,.4))}.brand-text{font-size:1.15rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;background:linear-gradient(135deg,var(--text-primary) 0%,#a5b4fc 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-star{margin-left:auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--text-tertiary);transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:visible}.brand-star svg{position:relative;z-index:2;transition:all .3s ease}.brand-star .star-particles,.brand-star .star-ring,.brand-star .star-tooltip{pointer-events:none;position:absolute}.brand-star .star-particles{top:0;right:0;bottom:0;left:0}.brand-star .star-particles span{position:absolute;width:4px;height:4px;background:#f59e0b;border-radius:50%;opacity:0;top:50%;left:50%}.brand-star .star-ring{top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid #f59e0b;opacity:0;transform:scale(.8)}.brand-star .star-tooltip{top:50%;left:calc(100% + 10px);transform:translateY(-50%) translate(-4px);background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:.65rem;font-weight:600;padding:4px 10px;border-radius:6px;white-space:nowrap;opacity:0;box-shadow:0 4px 12px #f59e0b66}.brand-star .star-tooltip:after{content:"";position:absolute;top:50%;left:-4px;transform:translateY(-50%);border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #d97706}.brand-star:hover{color:#f59e0b;background:#f59e0b26;transform:scale(1.1);box-shadow:0 0 20px #f59e0b4d}.brand-star:active{transform:scale(.95)}.brand-star.animating{animation:starPop 1.5s cubic-bezier(.34,1.56,.64,1)}.brand-star.animating svg{color:#f59e0b;animation:starSpin 1.5s cubic-bezier(.34,1.56,.64,1),starGlow 1.5s ease-in-out}.brand-star.animating .star-particles span{animation:particleBurst 1s cubic-bezier(.34,1.56,.64,1) forwards}.brand-star.animating .star-particles span:nth-child(1){--angle: 0deg;--distance: 20px;animation-delay:.1s}.brand-star.animating .star-particles span:nth-child(2){--angle: 60deg;--distance: 24px;animation-delay:.15s}.brand-star.animating .star-particles span:nth-child(3){--angle: 120deg;--distance: 18px;animation-delay:.1s}.brand-star.animating .star-particles span:nth-child(4){--angle: 180deg;--distance: 22px;animation-delay:.2s}.brand-star.animating .star-particles span:nth-child(5){--angle: 240deg;--distance: 20px;animation-delay:.12s}.brand-star.animating .star-particles span:nth-child(6){--angle: 300deg;--distance: 26px;animation-delay:.18s}.brand-star.animating .star-ring{animation:ringExpand .8s cubic-bezier(.22,1,.36,1) forwards}.brand-star.animating .star-ring.ring-2{animation-delay:.15s;border-color:#fbbf24}.brand-star.animating .star-ring.ring-3{animation-delay:.3s;border-color:#fcd34d;border-width:1px}.brand-star.animating .star-tooltip{animation:tooltipPop 1.5s cubic-bezier(.34,1.56,.64,1) forwards}.brand-star.animating:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;background:radial-gradient(circle,rgba(245,158,11,.4) 0%,transparent 70%);animation:bgFlash .6s ease-out forwards;z-index:-1}.brand-star.animating:after{content:"";position:absolute;top:0;left:-100%;width:200%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shineSweep .5s .2s ease-out forwards;border-radius:50%;z-index:3}@keyframes starSpin{0%{transform:rotate(0) scale(1)}25%{transform:rotate(-15deg) scale(1.2)}50%{transform:rotate(15deg) scale(1.3)}75%{transform:rotate(-5deg) scale(1.1)}to{transform:rotate(0) scale(1)}}@keyframes starPop{0%{transform:scale(1)}20%{transform:scale(1.4)}40%{transform:scale(1.1)}60%{transform:scale(1.25)}80%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes starGlow{0%,to{filter:drop-shadow(0 0 2px rgba(245,158,11,.4))}30%{filter:drop-shadow(0 0 8px #f59e0b) drop-shadow(0 0 16px rgba(245,158,11,.8)) drop-shadow(0 0 24px rgba(245,158,11,.4))}60%{filter:drop-shadow(0 0 6px rgba(245,158,11,.8))}}@keyframes particleBurst{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(var(--distance) * -.7)) scale(1.2)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scale(0)}}@keyframes ringExpand{0%{transform:scale(.8);opacity:1}to{transform:scale(2.5);opacity:0}}@keyframes tooltipPop{0%{opacity:0;transform:translateY(-50%) translate(-4px) scale(.8)}20%{opacity:1;transform:translateY(-50%) translate(0) scale(1.05)}30%{transform:translateY(-50%) translate(0) scale(1)}70%{opacity:1;transform:translateY(-50%) translate(0) scale(1)}to{opacity:0;transform:translateY(-50%) translate(4px) scale(.9)}}@keyframes bgFlash{0%{opacity:0;transform:scale(.5)}30%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(2)}}@keyframes shineSweep{0%{left:-200%;opacity:1}to{left:100%;opacity:0}}.nav-scroll{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.nav-scroll::-webkit-scrollbar{display:none}.nav-category{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:1.5rem 0 .5rem .75rem;opacity:.6}.nav-category:first-of-type{margin-top:.5rem}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:.5rem .75rem;border-radius:8px;color:var(--text-tertiary);text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s ease;margin-bottom:2px;position:relative}.nav-item:hover{color:var(--text-primary);background-color:#ffffff08}.nav-item.active{background-color:#6366f126;color:#6366f1}.nav-item.active:after{content:"";position:absolute;right:8px;width:4px;height:4px;border-radius:50%;background-color:#6366f1;box-shadow:0 0 6px #6366f1}.nav-sub-item{padding-left:2.25rem;font-size:.8rem}.nav-icon{width:18px;height:18px;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.8;flex-shrink:0}.sidebar-footer{padding:1rem 0;margin-top:auto;border-top:1px solid var(--border-default);flex-shrink:0;position:relative}.user-context-menu{position:absolute;bottom:calc(100% + 4px);left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 8px 24px #00000040,0 2px 8px #00000026;padding:4px;z-index:60;animation:contextMenuIn .15s ease-out}@keyframes contextMenuIn{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.context-menu-section{padding:6px 8px}.context-menu-label{font-size:.65rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;opacity:.6}.theme-switcher{display:flex;gap:2px;background:var(--bg-secondary);border-radius:6px;padding:2px}.theme-btn{flex:1;display:flex;align-items:center;justify-content:center;padding:6px 0;border:none;background:transparent;color:var(--text-tertiary);border-radius:4px;cursor:pointer;transition:all .15s ease}.theme-btn:hover{color:var(--text-primary)}.theme-btn.active{background:#6366f126;color:#6366f1;box-shadow:0 1px 3px #00000026}.context-menu-divider{height:1px;background:var(--border-subtle);margin:4px 0}.context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:left}.context-menu-item:hover{background:#ffffff0a;color:var(--text-primary)}.context-menu-item.danger{color:#ef4444}.context-menu-item.danger:hover{background:#ef44441a;color:#ef4444}.context-menu-arrow{margin-left:auto;opacity:.4}.user-mini{display:flex;align-items:center;gap:10px;padding:.5rem;cursor:pointer;border-radius:8px;transition:all .2s ease}.user-mini:hover{background:var(--bg-secondary)}.user-avatar{width:28px;height:28px;background:var(--text-tertiary);border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:600;color:#fff}.user-menu-arrow{margin-left:auto;color:var(--text-tertiary);opacity:.5;transition:transform .2s ease,opacity .2s ease}.user-menu-arrow.open{opacity:1;transform:rotate(180deg)}.user-mini:hover .user-menu-arrow{opacity:.8}.user-meta{display:flex;flex-direction:column}.user-handle{font-size:.8rem;font-weight:500;color:var(--text-primary)}.user-status{font-size:.7rem;color:#10b981;display:flex;align-items:center;gap:4px}.user-status:before{content:"";width:6px;height:6px;background:currentColor;border-radius:50%}.dashboard-layout{display:flex;min-height:100vh}.main-content{margin-left:280px;flex:1;padding:40px;overflow-y:auto;background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:40px 40px}@media (max-width: 768px){.main-content{margin-left:0;padding:20px}}.main-content:has(.workflow-page.fullscreen){padding:0;overflow:hidden}.top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.top-bar h1{font-size:24px;font-weight:600;letter-spacing:-.5px}@media (max-width: 768px){.top-bar{flex-direction:column;align-items:flex-start;gap:16px}}.top-bar-actions{display:flex;gap:12px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.page-header .page-header-content .page-description{color:var(--text-secondary);font-size:12px;margin:0}.page-header .page-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-header .page-header-actions{justify-content:flex-end}}.page{font-size:24px;color:var(--text-secondary)}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-secondary)}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:32px}@media (max-width: 1280px){.stats-strip{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.stats-strip{grid-template-columns:1fr}}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}@media (max-width: 768px){.overview-grid{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;background:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn-primary{background-color:#6366f1;color:#fff;box-shadow:0 4px 12px #6366f14d}.btn-primary:hover:not(:disabled){background-color:#4f46e5}.btn-secondary{background-color:transparent;border-color:var(--border-active);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover)}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:4px 8px;font-size:11px}.btn-lg{padding:12px 24px;font-size:14px}.btn-full{width:100%;justify-content:center}.btn-icon{padding:8px}.btn-icon svg{width:18px;height:18px}.btn-expand{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px 8px;font-size:12px;display:flex;align-items:center;justify-content:flex-start;gap:4px;transition:color .2s ease}.btn-expand:hover{color:var(--text-primary)}.card{background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease;padding:24px;position:relative;overflow:hidden}.card:hover{border-color:var(--border-active)}.card:hover{transform:translateY(-2px)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.card h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.card-link{color:var(--text-secondary);text-decoration:none;font-size:13px;transition:color .2s ease}.card-link:hover{color:#6366f1}.app-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px;font-size:18px;font-weight:700;color:#fff}.metric-row{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.metric-item{display:flex;flex-direction:column;gap:4px}.metric-value{font-weight:600;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}@media (max-width: 1280px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.stats-grid{grid-template-columns:1fr}}.stat-card{background:var(--bg-card);padding:20px;border-radius:12px;border:1px solid var(--border-subtle);display:flex;align-items:center;gap:16px}.stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0;background:#6366f11a;color:#6366f1}.stat-icon svg{width:24px;height:24px;stroke:currentColor;stroke-width:2;fill:none}.stat-icon.backups{background:#6366f11a;color:#6366f1}.stat-icon.apps{background:#10b9811a;color:#10b981}.stat-icon.databases{background:#3367911a;color:#336791}.stat-icon.size{background:#f59e0b1a;color:#f59e0b}.stat-icon.alerts{background:#ef44441a;color:#ef4444}.stat-icon.schedules{background:#2496ed1a;color:#2496ed}.stat-content{display:flex;flex-direction:column;gap:4px;min-width:0}.stat-label{font-size:12px;color:var(--text-tertiary);font-weight:500}.stat-value{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-suffix{font-size:14px;color:var(--text-tertiary);font-weight:400}.progress-bar{height:4px;background:var(--bg-hover);border-radius:2px;overflow:hidden;margin-top:4px}.progress-fill{height:100%;border-radius:2px;transition:width .2s ease}.empty-state{text-align:center;padding:64px 20px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border-subtle)}.empty-state h3{font-size:16px;font-weight:600;margin-bottom:8px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-header h3{font-size:16px;font-weight:600}.danger-zone{border-color:#ef44444d;background:#ef44440d}.danger-zone h4{color:#ef4444;margin-bottom:8px}.danger-zone p{color:var(--text-secondary);margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:40;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.modal::-webkit-scrollbar{width:6px;height:6px}.modal::-webkit-scrollbar-track{background:var(--bg-body)}.modal::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.modal::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.modal-lg{max-width:800px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:18px;font-weight:600}.modal-close{background:none;border:none;color:var(--text-tertiary);font-size:24px;cursor:pointer;line-height:1;padding:4px;transition:color .2s ease}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:24px;max-height:60vh;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px;height:6px}.modal-body::-webkit-scrollbar-track{background:var(--bg-body)}.modal-body::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.modal form{padding:24px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-subtle)}.modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border-subtle)}.app-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;padding:24px}.app-type-card{background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:all .2s ease}.app-type-card:hover{border-color:#6366f1;background:var(--bg-hover)}.app-type-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:12px;font-size:20px;font-weight:700;color:#fff;margin:0 auto 16px}.app-type-card h3{font-size:14px;font-weight:600;margin-bottom:4px;color:var(--text-primary)}.app-type-card p{font-size:12px;color:var(--text-tertiary);line-height:1.5}.confirm-dialog{max-width:400px;text-align:center}.confirm-dialog-content{padding:32px 24px 24px}.confirm-dialog-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;margin:0 auto 16px}.confirm-dialog-icon svg{width:32px;height:32px}.confirm-dialog-icon-danger{background:#ef444426;color:#ef4444}.confirm-dialog-icon-warning{background:#f59e0b26;color:#f59e0b}.confirm-dialog-icon-info{background:#6366f126;color:#6366f1}.confirm-dialog-title{font-size:18px;font-weight:600;margin-bottom:8px}.confirm-dialog-message{font-size:12px;color:var(--text-secondary);line-height:1.6}.confirm-dialog-actions{display:flex;gap:12px;justify-content:center;padding:16px 24px 24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:14px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#6366f1;outline:none}.form-group input::placeholder,.form-group select::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}.form-group textarea{font-family:Fira Code,Monaco,Consolas,monospace;resize:vertical;min-height:120px}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.install-form,.env-form,.command-input{display:flex;gap:12px;margin-bottom:24px}.install-form input,.env-form input,.command-input input{flex:1;width:100%;padding:12px 16px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:14px;transition:border-color .2s ease}.install-form input:focus,.env-form input:focus,.command-input input:focus{border-color:#6366f1;outline:none}.install-form input::placeholder,.env-form input::placeholder,.command-input input::placeholder{color:var(--text-tertiary)}.hint{color:var(--text-tertiary);font-size:13px;margin-bottom:16px}.error-message{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:13px}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;padding:12px 16px;border-radius:8px;margin-bottom:24px}.filter-toggle{display:flex;align-items:center;justify-content:flex-start;gap:8px}.filter-toggle label{display:flex;align-items:center;justify-content:flex-start;gap:8px;color:var(--text-secondary);font-size:13px;cursor:pointer}.filter-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1}.code-editor{width:100%;min-height:400px;padding:16px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;resize:vertical;transition:border-color .2s ease}.code-editor:focus{border-color:#6366f1}.status-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:600;border:1px solid transparent}.status-dot{width:6px;height:6px;background:currentColor;border-radius:9999px}.status-active{background:#10b9811a;color:#10b981;border-color:#10b98133}.status-warning{background:#f59e0b1a;color:#f59e0b;border-color:#f59e0b33}.status-stopped{background:#71717a1a;color:var(--text-tertiary);border-color:#71717a33}.status-error{background:#ef44441a;color:#ef4444;border-color:#ef444433}.app-type{background:var(--bg-hover);padding:2px 8px;border-radius:4px;font-weight:600;font-size:10px;letter-spacing:.5px;text-transform:uppercase}.ssl-badge{background:#10b9811a;color:#10b981;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.active-badge{background:#10b9811a;color:#10b981;padding:4px 12px;border-radius:9999px;font-size:12px;font-weight:600}.db-type-badge{display:inline-flex;align-items:center;gap:4px;background:var(--bg-hover);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.db-type-badge.mysql{color:#f29111}.db-type-badge.postgresql{color:#336791}.privilege-tag{background:#6366f126;color:#6366f1;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.table-tag{background:var(--bg-hover);border:1px solid var(--border-subtle);padding:6px 12px;border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-secondary)}.env-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;border:1px solid transparent}.env-badge.env-production{background:#10b98126;color:#10b981;border-color:#10b9814d}.env-badge.env-development{background:#6366f126;color:#6366f1;border-color:#6366f14d}.env-badge.env-staging{background:#f59e0b26;color:#f59e0b;border-color:#f59e0b4d}.env-badge .env-linked-icon{opacity:.7}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-subtle);margin-bottom:24px;overflow-x:auto}.tabs::-webkit-scrollbar{width:6px;height:6px}.tabs::-webkit-scrollbar-track{background:var(--bg-body)}.tabs::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.tabs::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (max-width: 768px){.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}}.tab{background:none;border:none;padding:12px 20px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease;white-space:nowrap}.tab:hover{color:var(--text-primary)}.tab.active{color:#6366f1;border-bottom-color:#6366f1}.tab-content{min-height:400px}.list-base{display:flex;flex-direction:column;gap:8px}.info-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.info-label{color:var(--text-tertiary);font-size:13px}.info-value{color:var(--text-primary);font-weight:500}.info-value.mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.packages-list{display:flex;flex-direction:column;gap:8px}.package-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.package-item:hover{border-color:var(--border-active)}.package-name{font-weight:500}.package-version{color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.env-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.env-key{font-weight:600;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:#6366f1;min-width:150px}.env-value{flex:1;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-secondary);word-break:break-all}.plugins-list,.themes-list{display:flex;flex-direction:column;gap:8px}.plugin-item,.theme-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.plugin-item:hover,.theme-item:hover{border-color:var(--border-active)}.plugin-item.active,.theme-item.active{border-color:#10b981;background:#10b9810d}.plugin-info,.theme-info{display:flex;align-items:center;justify-content:flex-start;gap:12px}.plugin-name,.theme-name{font-weight:500}.plugin-version,.theme-version{color:var(--text-tertiary);font-size:12px}.backups-list{display:flex;flex-direction:column;gap:8px}.backup-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.backup-item:hover{border-color:var(--border-active)}.backup-info{display:flex;align-items:center;justify-content:flex-start;gap:20px}.backup-name{font-weight:500;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.backup-size,.backup-date{color:var(--text-tertiary);font-size:13px}.domain-item{display:flex;align-items:center;justify-content:flex-start;gap:8px}.domain-item a{color:#6366f1;transition:color .2s ease}.domain-item a:hover{text-decoration:underline}.tables-list{display:flex;flex-wrap:wrap;gap:8px}.privileges-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}.services-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.service-item{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;font-size:13px}.service-dot{width:8px;height:8px;border-radius:9999px}.service-dot.running{background:#10b981;box-shadow:0 0 8px #10b981}.service-dot.stopped{background:var(--text-tertiary)}.service-name{font-weight:500;color:var(--text-primary)}.service-status{color:var(--text-tertiary);font-size:12px}.live-indicator{color:#10b981;font-size:12px;font-weight:500}.live-indicator:before{content:"";display:inline-block;width:6px;height:6px;background:#10b981;border-radius:9999px;margin-right:4px;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.log-viewer{background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;max-height:500px;overflow-y:auto;line-height:1.5}.log-viewer::-webkit-scrollbar{width:6px;height:6px}.log-viewer::-webkit-scrollbar-track{background:var(--bg-body)}.log-viewer::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.log-viewer::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.log-controls{display:flex;align-items:center;justify-content:flex-start;gap:12px}.log-controls select{padding:8px 12px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:13px}.command-output{background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin-top:20px}.command-output pre{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;color:var(--text-primary)}.command-output.error{border-color:#ef4444}.command-output .stderr{color:#ef4444}.quick-commands{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.credentials-box{background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin:16px 0}.credentials-box h4{font-size:14px;font-weight:600;margin-bottom:12px;color:#10b981}.credentials-box .warning{font-size:12px;color:#f59e0b;margin-bottom:12px;display:flex;align-items:center;justify-content:flex-start;gap:6px}.credential-row{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.credential-row:last-child{border-bottom:none}.credential-label{font-size:12px;color:var(--text-tertiary);min-width:80px}.credential-value{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;font-size:13px;color:var(--text-primary);background:var(--bg-hover);padding:4px 8px;border-radius:4px;flex:1}.credential-copy{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;transition:color .2s ease}.credential-copy:hover{color:#6366f1}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-slide-in .3s ease-out}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.toast-icon svg{width:18px;height:18px}.toast-message{flex:1;font-size:12px;line-height:1.4;color:var(--text-primary)}.toast-dismiss{flex-shrink:0;background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary);border-radius:4px;transition:all .2s ease}.toast-dismiss:hover{color:var(--text-primary);background:var(--bg-hover)}.toast-success{border-color:#10b9814d;background:#10b9811a}.toast-success .toast-icon{color:#10b981}.toast-error{border-color:#ef44444d;background:#ef44441a}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-color:#f59e0b4d;background:#f59e0b1a}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-color:#6366f14d;background:#6366f11a}.toast-info .toast-icon{color:#6366f1}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.spinner{display:inline-flex;align-items:center;justify-content:center}.spinner-sm{width:16px;height:16px}.spinner-sm .spinner-ring{width:16px;height:16px;border-width:2px}.spinner-md{width:24px;height:24px}.spinner-md .spinner-ring{width:24px;height:24px;border-width:3px}.spinner-lg{width:40px;height:40px}.spinner-lg .spinner-ring{width:40px;height:40px;border-width:4px}.spinner-ring{border-radius:50%;border-style:solid;border-color:#6366f14d;border-top-color:#6366f1;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;color:var(--text-secondary)}.loading-state span{font-size:12px}.btn-loading{position:relative;pointer-events:none;color:transparent!important}.btn-loading .spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn-loading .spinner .spinner-ring{border-color:var(--border-subtle);border-top-color:var(--text-primary)}.btn-loading.btn-primary .spinner .spinner-ring{border-color:#ffffff4d;border-top-color:#fff}.btn-loading.btn-secondary .spinner .spinner-ring{border-color:#f4f4f54d;border-top-color:var(--text-primary)}.btn-loading.btn-danger .spinner .spinner-ring{border-color:#ffffff4d;border-top-color:#fff}.uptime-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:24px}.uptime-card.loading,.uptime-card.error{display:flex;align-items:center;justify-content:center;gap:12px;min-height:200px;color:var(--text-tertiary)}.uptime-card.error{color:#ef4444}.uptime-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.uptime-title{display:flex;align-items:center;gap:12px}.uptime-title .uptime-icon{color:#10b981}.uptime-title h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.uptime-status{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.uptime-status .status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}.uptime-status.online{color:#10b981}.uptime-status.online .status-dot{background:#10b981;box-shadow:0 0 8px #10b981;animation:pulse-dot 2s ease-in-out infinite}.uptime-status.degraded{color:#f59e0b}.uptime-status.degraded .status-dot{background:#f59e0b}.uptime-status.offline{color:#ef4444}.uptime-status.offline .status-dot{background:#ef4444}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}.uptime-percentage{text-align:right}.uptime-percentage .percentage-value{display:block;font-size:24px;font-weight:700;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary)}.uptime-percentage .percentage-value.excellent,.uptime-percentage .percentage-value.good{color:#10b981}.uptime-percentage .percentage-value.fair{color:#f59e0b}.uptime-percentage .percentage-value.poor{color:#ef4444}.uptime-percentage .percentage-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.uptime-counter{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px;background:linear-gradient(135deg,#6366f10d,#10b9810d);border:1px solid var(--border-subtle);border-radius:8px;margin-bottom:24px}.uptime-counter-item{display:flex;flex-direction:column;align-items:center;min-width:60px}.uptime-counter-item .counter-value{font-size:32px;font-weight:700;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary);line-height:1}.uptime-counter-item .counter-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.counter-separator{font-size:32px;font-weight:700;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-tertiary);margin:0 4px 16px}.uptime-graph-section{margin-bottom:20px}.uptime-graph-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.uptime-graph-header .graph-title{font-size:12px;font-weight:500;color:var(--text-secondary)}.period-selector{display:flex;gap:4px;background:var(--bg-hover);padding:4px;border-radius:6px}.period-btn{padding:4px 12px;font-size:10px;font-weight:500;color:var(--text-tertiary);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.period-btn:hover{color:var(--text-primary)}.period-btn.active{background:#6366f1;color:#fff}.uptime-graph{display:flex;gap:2px;height:32px;background:var(--bg-hover);border-radius:6px;overflow:hidden;padding:4px}.graph-bar{flex:1;border-radius:2px;transition:transform .15s ease,opacity .15s ease;cursor:pointer;min-width:4px}.graph-bar:hover{transform:scaleY(1.1);opacity:.8}.graph-bar.up{background:#10b981}.graph-bar.degraded{background:#f59e0b}.graph-bar.down{background:#ef4444}.graph-bar.no_data,.graph-bar.no-data{background:var(--border-subtle)}.uptime-graph-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:var(--text-tertiary)}.uptime-legend{display:flex;align-items:center;justify-content:center;gap:20px;padding:12px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.legend-item{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:2px}.legend-dot.up{background:#10b981}.legend-dot.degraded{background:#f59e0b}.legend-dot.down{background:#ef4444}.legend-dot.no-data{background:var(--border-subtle)}.uptime-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.uptime-stat{display:flex;flex-direction:column;align-items:center;padding:12px;background:var(--bg-hover);border-radius:6px}.uptime-stat .stat-period{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:4px}.uptime-stat .stat-value{font-size:16px;font-weight:700;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary)}.uptime-stat .stat-value.excellent,.uptime-stat .stat-value.good{color:#10b981}.uptime-stat .stat-value.fair{color:#f59e0b}.uptime-stat .stat-value.poor{color:#ef4444}.uptime-compact{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.uptime-compact-status{display:flex;align-items:center;gap:12px}.uptime-compact-status .uptime-compact-label{font-size:12px;color:var(--text-secondary)}.uptime-compact-status .uptime-compact-percent{font-size:14px;font-weight:700;font-family:Fira Code,Monaco,Consolas,monospace;padding:4px 8px;border-radius:4px;background:#10b9811a;color:#10b981}.uptime-compact-status .uptime-compact-percent.fair{background:#f59e0b1a;color:#f59e0b}.uptime-compact-status .uptime-compact-percent.poor{background:#ef44441a;color:#ef4444}.uptime-compact-time{display:flex;align-items:baseline;gap:2px;font-family:Fira Code,Monaco,Consolas,monospace}.uptime-compact-time .value{font-size:18px;font-weight:700;color:var(--text-primary)}.uptime-compact-time .unit{font-size:12px;color:var(--text-tertiary);margin-right:4px}@media (max-width: 768px){.uptime-counter-item{min-width:50px}.uptime-counter-item .counter-value,.counter-separator{font-size:24px}.uptime-stats-grid{grid-template-columns:repeat(2,1fr)}.uptime-legend{flex-wrap:wrap;gap:12px}}.metrics-graph-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:24px;margin-bottom:24px}.metrics-graph-card.loading,.metrics-graph-card.error,.metrics-graph-card.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;color:var(--text-tertiary)}.metrics-graph-card.loading .muted,.metrics-graph-card.error .muted,.metrics-graph-card.empty .muted{font-size:12px}.metrics-graph-card.error{color:#ef4444}.metrics-graph-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.graph-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.metrics-summary-row{display:flex;gap:24px;padding:16px;background:var(--bg-hover);border-radius:8px;margin-bottom:20px}.summary-stat{display:flex;align-items:center;gap:12px}.summary-stat svg{color:var(--text-tertiary)}.summary-stat .stat-label{display:block;font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.summary-stat .stat-value{display:block;font-size:18px;font-weight:700;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary)}.metrics-chart-container{margin-bottom:16px;background:linear-gradient(180deg,var(--bg-hover) 0%,transparent 100%);border-radius:8px;padding:8px 0}.metrics-chart-container.compact{margin-bottom:12px;background:transparent;padding:0}.metrics-chart-container .recharts-area-area{animation:fadeIn .6s ease-out}.metrics-chart-container .recharts-area-curve{animation:drawLine 1s ease-out}@keyframes drawLine{0%{stroke-dasharray:1000;stroke-dashoffset:1000}to{stroke-dasharray:1000;stroke-dashoffset:0}}.metrics-tooltip{background:#18181bf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:8px;padding:12px 16px;box-shadow:0 8px 32px #0006;min-width:140px}.metrics-tooltip .tooltip-time{font-size:10px;color:var(--text-tertiary);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle);text-align:center}.metrics-tooltip .tooltip-row{display:flex;align-items:center;gap:8px;font-size:12px;padding:4px 0}.metrics-tooltip .tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.metrics-tooltip .tooltip-label{color:var(--text-secondary);flex:1}.metrics-tooltip .tooltip-value{font-family:Fira Code,Monaco,Consolas,monospace;font-weight:700;min-width:48px;text-align:right}.metrics-filter-legend{display:flex;align-items:center;gap:8px;background:var(--bg-hover);padding:4px;border-radius:6px;border:1px solid var(--border-subtle)}.filter-btn{background:transparent;border:1px solid transparent;color:var(--text-tertiary);padding:6px 12px;font-size:10px;font-weight:600;border-radius:4px;cursor:pointer;transition:all .15s ease;text-transform:uppercase}.filter-btn:hover{color:var(--text-primary)}.filter-btn.active{opacity:1}.filter-btn.cpu.active{background:#6366f11a;color:#6366f1;border-color:#6366f14d}.filter-btn.memory.active{background:#10b9811a;color:#10b981;border-color:#10b9814d}.filter-btn.disk.active{background:#f59e0b1a;color:#f59e0b;border-color:#f59e0b4d}.metrics-legend{display:flex;align-items:center;justify-content:center;gap:32px;padding-top:16px;margin-top:8px;border-top:1px solid var(--border-subtle)}.legend-item{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-secondary);padding:4px 12px;border-radius:9999px;transition:.15s ease}.legend-item:hover{background:var(--bg-hover);color:var(--text-primary)}.legend-line{width:24px;height:3px;border-radius:2px;position:relative}.legend-line:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:inherit}.legend-line.cpu{background:#6366f1;box-shadow:0 0 8px #6366f180}.legend-line.memory{background:#10b981;box-shadow:0 0 8px #10b98180}.legend-line.disk{background:#f59e0b;box-shadow:0 0 8px #f59e0b80}.metrics-graph-compact{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:16px;margin-bottom:24px}.metrics-graph-compact .metrics-graph-header{margin-bottom:12px}.metrics-graph-compact .metrics-graph-header .graph-title{font-size:12px}.metrics-summary-compact{display:flex;align-items:center;justify-content:center;gap:20px;padding-top:12px;border-top:1px solid var(--border-subtle)}.metrics-summary-compact .summary-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.metrics-summary-compact .summary-item svg{color:var(--text-tertiary)}.metrics-summary-compact .summary-item span{font-family:Fira Code,Monaco,Consolas,monospace;font-weight:500}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border-subtle);opacity:.5}.recharts-text{fill:var(--text-secondary)}.recharts-tooltip-cursor{stroke:var(--text-tertiary);stroke-dasharray:4 4}@media (max-width: 768px){.metrics-summary-row{flex-wrap:wrap;gap:16px}.summary-stat{flex:1 1 calc(50% - 8px);min-width:140px}.metrics-legend{flex-wrap:wrap;gap:12px}}@media (max-width: 640px){.metrics-graph-header{flex-direction:column;gap:12px;align-items:flex-start}.summary-stat{flex:1 1 100%}}.env-vars-container .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.env-vars-container .section-header h3{margin:0}.env-vars-container .section-header .header-actions{display:flex;gap:8px}.env-vars-container .hint{color:var(--text-tertiary);font-size:12px;margin-bottom:24px}.env-add-form{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:16px;margin-bottom:24px}.env-add-form .env-form-row{display:flex;gap:8px;margin-bottom:8px}.env-add-form .env-key-input{width:200px;flex-shrink:0;font-family:Fira Code,Monaco,Consolas,monospace;text-transform:uppercase}.env-add-form .env-value-input{flex:1}.env-add-form .env-secret-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:4px;cursor:pointer;color:var(--text-tertiary);transition:all .2s}.env-add-form .env-secret-toggle input{display:none}.env-add-form .env-secret-toggle:hover{border-color:#6366f1;color:#6366f1}.env-add-form .env-secret-toggle:has(input:checked){background:#6366f133;border-color:#6366f1;color:#6366f1}.env-add-form .env-description-input{width:100%;font-size:12px;color:var(--text-secondary)}.env-filter{position:relative;margin-bottom:16px}.env-filter input{width:100%;padding-right:36px}.env-filter .filter-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:18px;padding:4px 8px}.env-filter .filter-clear:hover{color:var(--text-primary)}.env-list{display:flex;flex-direction:column;gap:8px}.env-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:16px;transition:border-color .2s}.env-item:hover{border-color:var(--border-active)}.env-item.is-secret{border-left:3px solid #f59e0b}.env-item .env-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.env-item .env-key{font-family:Fira Code,Monaco,Consolas,monospace;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:4px}.env-item .env-key .secret-badge{color:#f59e0b}.env-item .env-item-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.env-item:hover .env-item-actions{opacity:1}.env-item .env-value{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-secondary);word-break:break-all;padding:4px 0}.env-item .env-description{font-size:10px;color:var(--text-tertiary);margin-top:4px;font-style:italic}.env-item .env-edit-row{display:flex;gap:8px;margin-top:8px}.env-item .env-edit-row input{flex:1;font-family:Fira Code,Monaco,Consolas,monospace}.btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon.btn-danger:hover{background:#ef444433;color:#ef4444}.env-empty{text-align:center;padding:32px;color:var(--text-tertiary);background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:6px}.env-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-subtle)}.env-footer .env-count{color:var(--text-tertiary);font-size:12px}.import-file-upload{margin-bottom:16px}.import-textarea{width:100%;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:4px;padding:16px;resize:vertical;min-height:200px}.import-textarea::placeholder{color:var(--text-tertiary)}.modal-lg{max-width:700px}.private-url-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:20px;margin-bottom:20px}.private-url-section .section-header{margin-bottom:16px}.private-url-section .section-header h3{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:500;color:var(--text-primary)}.private-url-section .section-header h3 svg{color:#6366f1}.private-url-disabled .hint{color:var(--text-secondary);font-size:12px;margin-bottom:16px;line-height:1.5}.private-url-disabled .slug-hint{color:var(--text-tertiary);font-size:10px;margin-top:8px}.private-url-form,.slug-edit-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.private-url-form .input-group,.slug-edit-form .input-group{display:flex;align-items:center;flex:1;min-width:200px}.private-url-form .input-prefix,.slug-edit-form .input-prefix{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-right:none;border-radius:4px 0 0 4px;padding:8px 12px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;height:40px;display:flex;align-items:center}.private-url-form .slug-input,.slug-edit-form .slug-input{flex:1;border-radius:0 4px 4px 0;font-family:Fira Code,Monaco,Consolas,monospace;min-width:150px}.private-url-enabled .private-url-display{background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:6px;padding:16px;margin-bottom:16px}.private-url-enabled .url-box{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.private-url-enabled .url-label{color:var(--text-secondary);font-size:12px}.private-url-enabled .url-value{background:var(--bg-secondary);padding:8px 12px;border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);word-break:break-all;-webkit-user-select:all;user-select:all}.private-url-enabled .url-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-link{background:none;border:none;color:#6366f1;cursor:pointer;padding:0;font-size:12px}.btn-link:hover{text-decoration:underline}.slug-edit-form,.private-url-footer{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.private-url-indicator{display:inline-flex;align-items:center;gap:4px;color:#10b981;font-size:12px}.private-url-indicator svg{width:14px;height:14px}.totp-inputs{display:flex;justify-content:center;gap:8px;margin:24px 0}.totp-input{width:48px;height:56px;font-size:24px;font-weight:600;text-align:center;border:2px solid var(--border-subtle);border-radius:6px;background:var(--bg-card);color:var(--text-primary);transition:all .2s}.totp-input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f133}.totp-input::placeholder{color:var(--text-tertiary)}.auth-footer-links{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:24px}.link-button{background:none;border:none;color:#6366f1;cursor:pointer;font-size:12px;padding:0}.link-button:hover{text-decoration:underline}.two-fa-card{border:1px solid var(--border-subtle);border-radius:8px;padding:24px;margin-bottom:24px}.two-fa-header{display:flex;gap:16px;margin-bottom:24px}.two-fa-header .two-fa-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#6366f126;border-radius:6px;color:#6366f1;flex-shrink:0}.two-fa-header h3{margin:0 0 4px}.two-fa-header p{margin:0;color:var(--text-secondary);font-size:12px}.two-fa-disabled .two-fa-description{color:var(--text-secondary);margin-bottom:16px}.two-fa-enabled .two-fa-status{display:flex;align-items:center;gap:8px;margin-bottom:16px}.two-fa-enabled .two-fa-info{color:var(--text-secondary);font-size:12px}.two-fa-enabled .two-fa-backup-info{background:var(--bg-hover);padding:8px 16px;border-radius:4px;margin-bottom:16px;display:flex;flex-direction:column;gap:4px}.two-fa-enabled .two-fa-backup-info .warning-text{color:#f59e0b;font-size:12px}.two-fa-enabled .two-fa-actions{display:flex;gap:8px}.setup-steps{display:flex;flex-direction:column;gap:24px}.setup-step{display:flex;gap:16px}.setup-step .step-number{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#6366f1;color:#fff;border-radius:50%;font-weight:600;font-size:12px;flex-shrink:0}.setup-step .step-content{flex:1}.setup-step .step-content h4{margin:0 0 4px}.setup-step .step-content p{color:var(--text-secondary);margin:0 0 16px;font-size:12px}.qr-code-container{display:flex;justify-content:center;padding:16px;background:#fff;border-radius:6px;margin-bottom:16px}.qr-code{width:200px;height:200px}.qr-fallback{background:var(--bg-hover);padding:16px;border-radius:6px;text-align:center}.qr-fallback .secret-key{display:block;font-size:18px;padding:8px;margin-top:8px;background:var(--bg-body);border-radius:4px;word-break:break-all}.manual-entry{margin-top:16px;font-size:12px;color:var(--text-secondary)}.manual-entry summary{cursor:pointer;color:#6366f1}.manual-entry summary:hover{text-decoration:underline}.manual-entry p{margin:4px 0}.manual-entry code{background:var(--bg-hover);padding:2px 6px;border-radius:4px}.verification-input{font-size:24px;font-weight:600;text-align:center;letter-spacing:.5em;padding:16px;width:100%;max-width:200px}.warning-box{display:flex;gap:16px;padding:16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px;margin-bottom:24px}.warning-box svg{flex-shrink:0;color:#f59e0b}.warning-box p{margin:0;color:var(--text-primary);font-size:12px}.error-text{color:#ef4444;font-size:12px;margin-top:4px}.backup-codes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:24px}.backup-code{display:block;padding:8px 16px;background:var(--bg-hover);border-radius:4px;text-align:center;font-size:16px;font-family:Fira Code,Monaco,Consolas,monospace}.backup-codes-actions{display:flex;justify-content:center;gap:8px}.backup-codes-actions .btn svg{margin-right:4px}.modal-md{max-width:500px}.loading-sm{color:var(--text-tertiary);font-size:12px}.notification-tabs{display:flex;gap:8px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.notification-tab{display:flex;align-items:center;gap:8px;padding:12px 16px;background:transparent;border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.notification-tab svg{stroke-width:2}.notification-tab:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-primary)}.notification-tab.active{background:#6366f126;border-color:#6366f1;color:#6366f1}.notification-tab.active svg{stroke:#6366f1}.user-notification-prefs{display:flex;flex-direction:column;gap:16px}.channel-toggles,.category-toggles{display:flex;flex-wrap:wrap;gap:12px}.channel-toggle,.category-toggle{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:all .15s ease}.channel-toggle input[type=checkbox],.category-toggle input[type=checkbox]{accent-color:#6366f1}.channel-toggle span,.category-toggle span{font-size:12px;color:var(--text-secondary)}.channel-toggle:hover,.category-toggle:hover{background:var(--bg-hover);border-color:var(--border-default)}.channel-toggle:has(input:checked),.category-toggle:has(input:checked){background:#6366f126;border-color:#6366f166}.channel-toggle:has(input:checked) span,.category-toggle:has(input:checked) span{color:var(--text-primary)}.notification-channels{display:flex;flex-direction:column;gap:16px}.notification-channel-card{border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-card);overflow:hidden;transition:border-color .2s}.notification-channel-card.enabled{border-color:#10b98166}.channel-header{display:flex;align-items:center;gap:16px;padding:16px 24px;cursor:pointer;transition:background .2s}.channel-header:hover{background:var(--bg-hover)}.channel-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:6px;flex-shrink:0}.channel-icon svg{color:var(--text-secondary)}.notification-channel-card.enabled .channel-icon svg{color:#6366f1}.channel-info{flex:1;min-width:0}.channel-info h3{margin:0 0 4px;font-size:16px}.channel-info p{margin:0;color:var(--text-secondary);font-size:12px}.channel-status{display:flex;align-items:center;gap:16px}.expand-icon{color:var(--text-tertiary);transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.channel-config{padding:24px;border-top:1px solid var(--border-subtle);background:var(--bg-body)}.toggle-switch-label{display:flex;justify-content:space-between;align-items:center}.toggle-switch-label span{font-weight:500}.severity-toggles{display:flex;flex-wrap:wrap;gap:8px}.severity-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;background:var(--bg-hover);cursor:pointer;transition:all .2s;font-size:12px}.severity-toggle input{display:none}.severity-toggle span{padding:2px 4px;border-radius:4px}.severity-toggle.critical span{background:#ef444433;color:#ef4444}.severity-toggle.warning span{background:#f59e0b33;color:#f59e0b}.severity-toggle.info span{background:#6366f133;color:#6366f1}.severity-toggle.success span{background:#10b98133;color:#10b981}.severity-toggle input:checked+span{font-weight:600}.severity-toggle:has(input:not(:checked)){opacity:.5}.severity-toggle:hover{opacity:1}.channel-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-subtle)}.query-runner-overlay.modal-overlay{padding:0;background:#000c}.query-runner-modal{width:100%;height:100%;max-width:100%;max-height:100%;display:flex;flex-direction:column;background:var(--bg-body);border-radius:0;overflow:hidden}.query-runner-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-sidebar);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.query-runner-title{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;color:var(--text-primary)}.query-runner-title svg{color:#6366f1}.query-runner-title .db-type-badge{font-size:10px;padding:4px 8px;border-radius:4px;font-weight:500}.query-runner-title .db-type-badge.mysql{background:#f2911126;color:#f29111}.query-runner-title .db-type-badge.postgresql{background:#33679126;color:#5f9ab8}.query-runner-title .db-type-badge.sqlite{background:#6366f126;color:#6366f1}.query-runner-actions{display:flex;align-items:center;gap:12px}.query-runner-actions .readonly-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.query-runner-actions .readonly-toggle input[type=checkbox]{accent-color:#f59e0b}.query-runner-actions .modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;border-radius:6px;transition:all .15s ease}.query-runner-actions .modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.query-runner-body{flex:1;display:flex;overflow:hidden}.query-runner-sidebar{width:260px;flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.sidebar-section{display:flex;flex-direction:column;overflow:hidden}.sidebar-section:first-child{flex:1;min-height:150px}.sidebar-section:last-child{border-top:1px solid var(--border-subtle);max-height:40%}.sidebar-section h4{padding:12px 16px;margin:0;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-card);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.sidebar-section h4 .btn-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:4px;transition:all .15s ease}.sidebar-section h4 .btn-icon:hover{background:var(--bg-hover);color:#6366f1}.tables-list,.columns-list{flex:1;overflow-y:auto;padding:8px}.table-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .15s ease}.table-item:hover{background:var(--bg-hover)}.table-item.selected{background:#6366f126;border:1px solid rgba(99,102,241,.3)}.table-item .table-name{font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-item .table-rows{font-size:10px;color:var(--text-tertiary);flex-shrink:0;margin-left:8px}.column-item{display:flex;align-items:center;justify-content:space-between;padding:4px 12px;border-radius:4px;cursor:pointer;transition:all .15s ease}.column-item:hover{background:var(--bg-hover)}.column-item .column-name{font-size:12px;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary)}.column-item .column-type{font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-tertiary)}.query-runner-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-body)}.query-editor{flex-shrink:0;padding:16px;border-bottom:1px solid var(--border-subtle)}.query-editor textarea{width:100%;height:150px;padding:12px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;line-height:1.6;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);resize:vertical;transition:border-color .15s ease}.query-editor textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.query-editor textarea::placeholder{color:var(--text-tertiary)}.query-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.query-hints{display:flex;align-items:center;gap:8px}.query-hints .hint{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-tertiary)}.query-hints .hint svg{color:#f59e0b}.query-error{display:flex;align-items:flex-start;gap:8px;padding:12px 16px;background:#ef44441a;border-bottom:1px solid rgba(239,68,68,.2);color:#ef4444;font-size:12px}.query-error svg{flex-shrink:0;margin-top:2px}.query-results{flex:1;display:flex;flex-direction:column;overflow:hidden}.results-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.results-header .results-info{font-size:12px;color:var(--text-secondary)}.results-table-container{flex:1;overflow:auto}.results-table{width:100%;border-collapse:collapse;font-size:12px}.results-table th,.results-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis}.results-table th{position:sticky;top:0;background:var(--bg-card);font-weight:500;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.results-table th:hover{background:var(--bg-hover)}.results-table th.sorted-asc,.results-table th.sorted-desc{color:#6366f1}.results-table th .sort-indicator{font-size:10px;margin-left:4px}.results-table td{font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary)}.results-table td.null-value{color:var(--text-tertiary);font-style:italic}.results-table tbody tr:hover{background:#27272a80}.query-history-panel{position:absolute;top:60px;right:0;width:400px;max-height:calc(100% - 80px);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:50;margin:16px;overflow:hidden}.history-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.history-header h4{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.history-list{flex:1;overflow-y:auto;padding:8px}.history-item{padding:12px;border-radius:6px;cursor:pointer;transition:all .15s ease}.history-item:hover{background:var(--bg-hover)}.history-item code{display:block;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.history-item .history-time{font-size:10px;color:var(--text-tertiary)}.db-item-icon.sqlite{color:#6366f1}.deploy-tab{display:flex;flex-direction:column;gap:24px}.deploy-setup .empty-state{text-align:center;padding:48px 32px;background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:8px}.deploy-setup .empty-state svg{color:var(--text-tertiary);margin-bottom:16px}.deploy-setup .empty-state h3{margin-bottom:8px}.deploy-setup .empty-state p{color:var(--text-secondary);margin-bottom:24px;max-width:400px;margin-left:auto;margin-right:auto}.deploy-header{margin-bottom:16px}.deploy-status-card{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.deploy-repo-info{display:flex;align-items:center;gap:12px}.deploy-repo-info svg{color:var(--text-secondary)}.deploy-repo-info .repo-url{display:block;font-weight:500;color:var(--text-primary)}.deploy-repo-info .repo-branch{display:block;font-size:12px;color:var(--text-secondary)}.deploy-actions{display:flex;gap:12px}.deploy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.webhook-url{display:flex;gap:8px;align-items:center;margin-top:12px;padding:12px;background:var(--bg-hover);border-radius:6px;overflow:hidden}.webhook-url code{flex:1;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.webhook-logs-toggle{margin-top:16px}.webhook-logs{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.webhook-logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.webhook-logs-header h4{margin:0;font-size:12px;font-weight:600;color:var(--text-secondary)}.webhook-logs-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.webhook-log-item{padding:12px;background:var(--bg-hover);border-radius:6px;border:1px solid var(--border-subtle)}.webhook-log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.provider-badge{display:inline-block;padding:4px 8px;font-size:10px;font-weight:500;border-radius:4px;text-transform:capitalize}.provider-badge.github{background:#33333326;color:#333}.provider-badge.gitlab{background:#fc6d2626;color:#fc6d26}.provider-badge.bitbucket{background:#0052cc26;color:#0052cc}.webhook-log-time{font-size:10px;color:var(--text-tertiary)}.webhook-log-details{margin-bottom:8px}.webhook-log-size{font-size:12px;color:var(--text-secondary)}.webhook-log-preview{margin:0;padding:8px;background:var(--bg-body);border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all;max-height:100px;overflow-y:auto}.input-with-action{display:flex;gap:8px}.input-with-action input{flex:1}.input-with-action .btn{flex-shrink:0}.scripts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 768px){.scripts-grid{grid-template-columns:1fr}}.script-section h4{margin:0 0 8px;font-size:12px;color:var(--text-secondary)}.script-code{margin:0;padding:12px;background:var(--bg-hover);border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-all}.card-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.build-tab{display:flex;flex-direction:column;gap:24px}.detection-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:16px}.detection-item{display:flex;flex-direction:column;gap:4px}.detection-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.detection-value{font-size:16px;font-weight:500;color:var(--text-primary);text-transform:capitalize}.detection-value.text-success{color:#10b981}.build-actions{display:flex;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.info-label{font-size:12px;color:var(--text-secondary)}.info-value{font-size:12px;font-weight:500;color:var(--text-primary)}.info-value.mono{font-family:Fira Code,Monaco,Consolas,monospace}.current-deployment{background:linear-gradient(135deg,#10b9810d,#6366f10d);border-color:#10b9814d}.current-deployment .deployment-current-info{display:flex;flex-direction:column;gap:12px;margin-top:16px}.current-deployment .deployment-version{display:flex;align-items:center;gap:12px}.current-deployment .version-number{font-size:24px;font-weight:700;color:var(--text-primary)}.current-deployment .deployment-commit{display:flex;align-items:center;gap:8px}.current-deployment .commit-hash{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;padding:4px 8px;background:var(--bg-hover);border-radius:4px}.current-deployment .commit-message{font-size:12px;color:var(--text-secondary);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-deployment .deployment-meta{display:flex;gap:16px;font-size:12px;color:var(--text-tertiary)}.current-deployment .deployment-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.version-tag{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;font-weight:500}.build-logs-list{display:flex;flex-direction:column;gap:8px}.build-log-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-hover);border-radius:6px;cursor:pointer;transition:all .15s ease}.build-log-item:hover{background:var(--bg-card);box-shadow:var(--shadow-sm)}.build-log-item .build-log-method{font-size:12px;font-weight:500;color:var(--text-primary);text-transform:capitalize}.build-log-item .build-log-time{font-size:12px;color:var(--text-secondary)}.build-log-item .build-log-lines{font-size:10px;color:var(--text-tertiary);margin-left:auto}.build-log-meta{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.build-log-meta span{font-size:12px;color:var(--text-secondary)}.build-log-output{margin:0;padding:16px;background:var(--bg-body);border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;line-height:1.6;color:var(--text-primary);max-height:500px;overflow:auto;white-space:pre-wrap;word-break:break-all}.alert{position:relative;padding:16px;border-radius:6px;margin-bottom:16px}.alert-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444}.alert-close{position:absolute;top:8px;right:12px;background:none;border:none;font-size:18px;color:inherit;opacity:.6;cursor:pointer}.alert-close:hover{opacity:1}.btn-xs{padding:4px 8px;font-size:10px}.mono{font-family:Fira Code,Monaco,Consolas,monospace}.setup-card{max-width:480px}.setup-info{display:flex;gap:16px;padding:16px;background:#6366f11a;border-radius:6px;margin-bottom:24px}.setup-info .setup-info-icon{flex-shrink:0;color:#6366f1}.setup-info p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}.setup-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-default);color:var(--text-tertiary);font-size:12px}.setup-footer svg{color:#10b981}.users-tab .tab-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.users-tab .tab-header .tab-header-content h3{margin:0 0 4px;font-size:18px;font-weight:600}.users-tab .tab-header .tab-header-content p{margin:0;color:var(--text-secondary);font-size:12px}.users-table-container{overflow-x:auto;border:1px solid var(--border-default);border-radius:6px}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:16px;text-align:left;border-bottom:1px solid var(--border-default)}.users-table th{background:var(--bg-hover);font-weight:500;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover td{background:var(--bg-card)}.users-table tr.inactive{opacity:.6}.users-table tr.inactive td{background:#f59e0b0d}.users-table .user-info{display:flex;align-items:center;gap:16px}.users-table .user-avatar{width:40px;height:40px;border-radius:50%;background:#6366f1;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;flex-shrink:0}.users-table .user-details{display:flex;flex-direction:column;gap:2px}.users-table .user-details .username{font-weight:500;display:flex;align-items:center;gap:8px}.users-table .user-details .email{font-size:12px;color:var(--text-secondary)}.users-table .you-badge{font-size:10px;padding:2px 6px;background:#6366f1;color:#fff;border-radius:4px;font-weight:500}.users-table .status-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:9999px;font-size:10px;font-weight:500}.users-table .status-badge.active{background:#10b98126;color:#10b981}.users-table .status-badge.inactive{background:#f59e0b26;color:#f59e0b}.users-table .date-cell{font-size:12px;color:var(--text-secondary);white-space:nowrap}.users-table .actions-cell{display:flex;gap:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 600px){.form-row{grid-template-columns:1fr}}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label .checkbox-text{font-weight:400}.form-help{display:block;margin-top:4px;font-size:10px;color:var(--text-tertiary)}.role-descriptions{margin-top:24px;padding:16px;background:var(--bg-hover);border-radius:6px}.role-descriptions h4{margin:0 0 16px;font-size:12px;font-weight:600;color:var(--text-secondary)}.role-descriptions .role-item{display:flex;gap:8px;padding:8px 0}.role-descriptions .role-item:not(:last-child){border-bottom:1px solid var(--border-default)}.role-descriptions .role-item .role-name{font-weight:500;min-width:80px;font-size:12px}.role-descriptions .role-item .role-desc{font-size:12px;color:var(--text-secondary)}.audit-log-tab .tab-header{margin-bottom:24px}.audit-log-tab .tab-header h3{margin:0 0 4px;font-size:18px;font-weight:600}.audit-log-tab .tab-header p{margin:0;color:var(--text-secondary);font-size:12px}.filters-bar{display:flex;gap:16px;align-items:flex-end;margin-bottom:24px;padding:16px;background:var(--bg-hover);border-radius:6px}.filters-bar .filter-group{display:flex;flex-direction:column;gap:4px}.filters-bar .filter-group label{font-size:12px;font-weight:500;color:var(--text-secondary)}.filters-bar .filter-group select{min-width:180px}.audit-log-list{display:flex;flex-direction:column;gap:8px}.log-entry{display:flex;gap:16px;padding:16px;background:var(--bg-card);border-radius:6px;border-left:3px solid transparent}.log-entry.action-success{border-left-color:#10b981}.log-entry.action-warning{border-left-color:#f59e0b}.log-entry.action-danger{border-left-color:#ef4444}.log-entry.action-info{border-left-color:#6366f1}.log-entry .log-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:4px;color:var(--text-secondary)}.log-entry .log-content{flex:1;min-width:0}.log-entry .log-header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:4px}.log-entry .log-header .log-action{font-weight:500;text-transform:capitalize}.log-entry .log-header .log-user{color:var(--text-secondary);font-size:12px}.log-entry .log-header .log-target{color:var(--text-tertiary);font-size:12px}.log-entry .log-details{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.log-entry .log-details .detail-item{display:inline-flex;gap:4px;padding:2px 8px;background:var(--bg-hover);border-radius:4px;font-size:10px}.log-entry .log-details .detail-item .detail-key{color:var(--text-tertiary)}.log-entry .log-details .detail-item .detail-value{color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-entry .log-meta{display:flex;gap:16px;font-size:10px;color:var(--text-tertiary)}.log-entry .log-meta .log-ip{font-family:Fira Code,Monaco,Consolas,monospace}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-default)}.pagination .pagination-info{font-size:12px;color:var(--text-secondary)}.settings-nav-divider{padding:8px 16px;margin-top:16px;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em}.loading-state,.empty-state{padding:40px;text-align:center;color:var(--text-secondary)}.btn.text-warning{color:#f59e0b}.btn.text-warning:hover{background:#f59e0b1a}.btn.text-success{color:#10b981}.btn.text-success:hover{background:#10b9811a}.btn.text-danger{color:#ef4444}.btn.text-danger:hover{background:#ef44441a}.linked-apps-section{margin-top:16px}.linked-apps-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.linked-apps-header h3{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.linked-apps-content{display:flex;flex-direction:column;gap:16px}.current-environment{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-hover);border-radius:6px}.current-environment .env-label{font-size:12px;color:var(--text-secondary)}.linked-apps-divider{display:flex;align-items:center;gap:12px;color:var(--text-tertiary);font-size:12px}.linked-apps-divider:before,.linked-apps-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.linked-apps-list{display:flex;flex-direction:column;gap:12px}.linked-app-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;transition:border-color .15s ease}.linked-app-item:hover{border-color:var(--border-default)}.linked-app-info{display:flex;align-items:center;gap:12px}.linked-app-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#6366f126;color:#6366f1;border-radius:6px}.linked-app-details{display:flex;flex-direction:column;gap:4px}.linked-app-name{font-weight:500;color:var(--text-primary)}.linked-app-meta{display:flex;align-items:center;gap:8px;font-size:12px}.linked-app-port{color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px}.linked-app-actions{display:flex;gap:8px}.linked-apps-empty,.linked-apps-info{padding:16px;text-align:center;background:var(--bg-hover);border-radius:6px}.linked-apps-empty p,.linked-apps-info p{margin:0 0 12px;color:var(--text-secondary);font-size:12px}.linked-apps-empty .btn,.linked-apps-info .btn{margin-top:8px}.linked-apps-info p{margin:0}.shared-config-info{padding:12px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:6px}.shared-config-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:#6366f1;margin-bottom:8px}.shared-config-details{display:flex;flex-wrap:wrap;gap:12px;font-size:10px;color:var(--text-secondary);font-family:Fira Code,Monaco,Consolas,monospace}.shared-config-details span{background:var(--bg-card);padding:4px 8px;border-radius:4px}.link-app-modal{max-width:500px}.link-app-modal .modal-header h2{display:flex;align-items:center;gap:8px}.link-app-current{display:flex;align-items:center;gap:8px;padding:12px;background:var(--bg-hover);border-radius:6px;margin-bottom:16px}.link-app-current .link-app-label{color:var(--text-tertiary);font-size:12px}.link-app-current .link-app-name{font-weight:500;color:var(--text-primary)}.link-app-empty{text-align:center;padding:24px}.link-app-empty svg{color:var(--text-tertiary);margin-bottom:12px}.link-app-empty h3{margin:0 0 8px;font-size:18px}.link-app-empty p{color:var(--text-secondary);font-size:12px;margin-bottom:16px}.env-radio-group{display:flex;gap:8px}.env-radio-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:var(--bg-card);border:2px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:all .15s ease}.env-radio-option input{display:none}.env-radio-option:hover{border-color:var(--border-default)}.env-radio-option.selected{border-color:#6366f1;background:#6366f126}.env-radio-option .env-radio-label{font-size:10px;color:var(--text-secondary)}.link-preview{margin:16px 0;padding:16px;background:var(--bg-hover);border-radius:6px}.link-preview-title{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.link-preview-diagram{display:flex;align-items:center;justify-content:center;gap:16px}.link-preview-app{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;min-width:120px}.link-preview-name{font-size:12px;font-weight:500;color:var(--text-primary)}.link-preview-connector{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#6366f126;color:#6366f1;border-radius:50%}.modal-loading{padding:24px;text-align:center;color:var(--text-secondary)}.status-badge-sm{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:9999px;font-size:10px;font-weight:500}.status-badge-sm .status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-badge-sm.status-active{background:#10b9811a;color:#10b981}.status-badge-sm.status-stopped{background:#71717a1a;color:var(--text-tertiary)}.status-badge-sm.status-error{background:#ef44441a;color:#ef4444}.status-badge-sm.status-warning{background:#f59e0b1a;color:#f59e0b}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:40px}.auth-header{text-align:center;margin-bottom:32px}.auth-header .brand-logo{width:48px;height:48px;margin:0 auto 16px}.auth-header h1{font-size:24px;font-weight:700;margin-bottom:8px}.auth-header p{color:var(--text-secondary)}.auth-footer{text-align:center;margin-top:24px;color:var(--text-secondary)}.auth-footer a{color:#6366f1;font-weight:500}.auth-footer a:hover{text-decoration:underline}.dashboard-page{display:flex;flex-direction:column;gap:24px;min-height:100%}.top-bar{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.server-identity h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace}.status-dot-live{width:10px;height:10px;background:#10b981;border-radius:50%;box-shadow:0 0 10px #10b981;display:inline-block}.server-details{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:12px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.server-details .detail-separator{color:var(--border-default);-webkit-user-select:none;user-select:none}.top-bar-right{display:flex;align-items:center;gap:20px}.clock-widget{display:flex;flex-direction:column;align-items:flex-end}.clock-time{font-family:Fira Code,Monaco,Consolas,monospace;font-size:1.25rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.clock-zone{color:#6366f1;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.grid-container{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;max-width:1800px;margin:0 auto;width:100%}.metric-tile{grid-column:span 3;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;padding:20px;position:relative;overflow:hidden}.metric-tile:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,#6366f1,transparent);opacity:.5}@media (max-width: 1280px){.metric-tile{grid-column:span 6}}@media (max-width: 768px){.metric-tile{grid-column:span 12}}.tile-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tile-title{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.05em}.tile-icon.cpu{color:#6366f1}.tile-icon.memory{color:#10b981}.tile-icon.network{color:#f59e0b}.tile-icon.disk{color:#ef4444}.tile-val{font-family:Fira Code,Monaco,Consolas,monospace;font-size:1.75rem;font-weight:700;color:var(--text-primary)}.tile-val-unit{font-size:14px;font-weight:400;color:var(--text-tertiary);margin-left:4px}.tile-sub{font-size:12px;color:var(--text-tertiary);margin-top:8px;display:flex;justify-content:space-between}.trend-up{color:#f59e0b}.trend-down{color:#10b981}.chart-panel{grid-column:span 8;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;padding:20px;min-height:450px;display:flex;flex-direction:column}.chart-panel .metrics-graph-card{background:transparent;border:none;padding:0;margin-bottom:0;height:100%;display:flex;flex-direction:column}.chart-panel .metrics-graph-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px}.chart-panel .graph-title{font-weight:600;font-size:14px;color:var(--text-primary)}.chart-panel .metrics-chart-container{flex-grow:1;margin-bottom:0}@media (max-width: 1024px){.chart-panel{grid-column:span 12;min-height:400px}}@media (max-width: 768px){.chart-panel .metrics-graph-header{flex-wrap:wrap;gap:12px}}.spec-panel{grid-column:span 4;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:16px}@media (max-width: 1024px){.spec-panel{grid-column:span 12}}.spec-panel-title{font-size:12px;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;letter-spacing:.05em}.spec-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--border-subtle);padding-bottom:12px;font-size:12px}.spec-row:last-child{border:none;padding-bottom:0}.spec-label{color:var(--text-tertiary)}.spec-data{font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary);text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-action{width:100%;padding:12px;background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-weight:600;font-size:12px;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;transition:all .15s ease}.btn-action:hover{border-color:#6366f1;background:#6366f126}.btn-action svg{color:var(--text-tertiary)}.table-panel{grid-column:span 12;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:4px;overflow:hidden}.table-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-subtle);font-weight:600;color:var(--text-primary)}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:16px 20px;background:var(--bg-hover);color:var(--text-tertiary);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.data-table td{padding:16px 20px;border-bottom:1px solid var(--border-subtle);font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-secondary)}.data-table tr:hover{background:var(--bg-hover)}.app-name-cell{display:flex;align-items:center;gap:8px;color:var(--text-primary)}.app-icon-mini{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.badge{padding:2px 8px;border-radius:4px;font-size:10px;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.badge-running{color:#10b981;background:#10b9811a;border:1px solid rgba(16,185,129,.2)}.badge-warning{color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2)}.badge-stopped{color:#ef4444;background:#ef44441a;border:1px solid rgba(239,68,68,.2)}@media (max-width: 768px){.top-bar{flex-direction:column;align-items:flex-start;gap:16px}.server-details{flex-wrap:wrap;gap:12px}.clock-widget{text-align:left}.data-table th:nth-child(3),.data-table th:nth-child(5),.data-table td:nth-child(3),.data-table td:nth-child(5){display:none}}@media (max-width: 640px){.server-details{flex-direction:column;gap:4px}.metric-tile{padding:16px}.tile-val{font-size:1.5rem}}.refresh-control{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-left:20px;border-left:1px solid var(--border-subtle)}.refresh-control .refresh-select,.refresh-control .btn-refresh{width:100%}.refresh-select{background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;padding:4px 8px;cursor:pointer;outline:none}.refresh-select:hover{border-color:#6366f1}.refresh-select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.btn-refresh{display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);padding:8px;cursor:pointer;transition:all .15s ease}.btn-refresh:hover{border-color:#6366f1;color:#6366f1;background:#6366f126}.status-dot-live.disconnected{background:#f59e0b;box-shadow:0 0 10px #f59e0b}@media (max-width: 768px){.refresh-control{width:100%;justify-content:flex-start;margin-left:0;padding-left:0}}.applications-page{display:flex;flex-direction:column;gap:16px}.apps-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.apps-toolbar-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.apps-toolbar-right{display:flex;align-items:center;gap:12px}.apps-search-wrapper{position:relative;max-width:300px;flex:1}.apps-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.apps-search-input{width:100%;padding:8px 32px 8px 36px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);font-size:12px;transition:border-color .2s ease}.apps-search-input::placeholder{color:var(--text-tertiary)}.apps-search-input:focus{outline:none;border-color:#6366f1}.apps-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .2s ease}.apps-search-clear:hover{color:var(--text-primary)}.apps-count{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.apps-sort-wrapper{position:relative}.apps-sort-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:8px 32px 8px 12px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:border-color .2s ease}.apps-sort-select:focus{outline:none;border-color:#6366f1}.apps-sort-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.apps-view-toggle{display:flex;background:var(--bg-card);border:1px solid var(--border-default);border-radius:6px;overflow:hidden}.apps-view-btn{padding:8px;background:transparent;border:none;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.apps-view-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.apps-view-btn.active{color:#6366f1;background:#6366f126}.apps-view-btn:first-child{border-right:1px solid var(--border-default)}.apps-bulk-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#6366f126;border:1px solid rgba(99,102,241,.3);border-radius:8px;gap:16px;flex-wrap:wrap}.apps-bulk-info{display:flex;align-items:center;gap:8px;color:#6366f1;font-size:12px;font-weight:500}.apps-bulk-clear{background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;padding:4px 8px;margin-left:8px;border-radius:4px;transition:color .2s ease}.apps-bulk-clear:hover{color:var(--text-primary)}.apps-bulk-actions{display:flex;gap:8px}.apps-checkbox-label{display:inline-flex;align-items:center;cursor:pointer;position:relative}.apps-checkbox-label input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.apps-checkbox-label input[type=checkbox]:checked+.apps-checkbox-custom{background:#6366f1;border-color:#6366f1}.apps-checkbox-label input[type=checkbox]:checked+.apps-checkbox-custom:after{opacity:1}.apps-checkbox-label input[type=checkbox]:focus+.apps-checkbox-custom{box-shadow:0 0 0 2px #6366f126}.apps-checkbox-custom{width:18px;height:18px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:4px;position:relative;transition:all .2s ease}.apps-checkbox-custom:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--text-primary);border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity .2s ease}.apps-checkbox-custom:hover{border-color:#6366f1}.apps-list{display:flex;flex-direction:column;gap:8px}.apps-list-header{display:flex;align-items:center;gap:16px;padding:8px 16px;color:var(--text-tertiary);font-size:12px;font-weight:500}.apps-list-header-text{margin-left:4px}.app-row{gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease;display:flex;align-items:center;gap:16px;transition:all .2s ease}.app-row.selected{background:#6366f126;border-color:#6366f14d}.app-row:hover{border-color:var(--border-active)}.app-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.app-icon{width:40px;height:40px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0}.app-icon svg{color:#fff}.app-details{min-width:0;flex:1}.app-details h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-meta{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:12px;color:var(--text-tertiary);flex-wrap:wrap}.app-meta a{color:var(--text-secondary);transition:color .2s ease}.app-meta a:hover{color:#6366f1}.app-type-badge{font-size:10px;font-weight:500;color:#6366f1;background:#6366f126;padding:2px 8px;border-radius:4px}.app-port{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-secondary)}.app-domains-info{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary)}.app-domains-info a{color:var(--text-secondary)}.app-domains-info a:hover{color:#6366f1}.private-url-indicator{display:inline-flex;align-items:center;gap:4px;color:#10b981;font-size:10px}.app-status{flex-shrink:0}.status-badge-enhanced{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:500;text-transform:capitalize}.status-badge-enhanced.status-active{background:#10b9811a;color:#10b981}.status-badge-enhanced.status-active .status-dot-animated{background:#10b981;animation:pulse-green 2s ease-in-out infinite}.status-badge-enhanced.status-stopped{background:var(--bg-tertiary);color:var(--text-secondary)}.status-badge-enhanced.status-stopped .status-dot-animated{background:var(--text-tertiary)}.status-badge-enhanced.status-error{background:#ef44441a;color:#ef4444}.status-badge-enhanced.status-error .status-dot-animated{background:#ef4444}.status-badge-enhanced.status-warning{background:#f59e0b1a;color:#f59e0b}.status-badge-enhanced.status-warning .status-dot-animated{background:#f59e0b;animation:pulse-yellow 2s ease-in-out infinite}.status-badge-enhanced.transitioning .status-dot-animated{animation:pulse-fast .5s ease-in-out infinite}.status-dot-animated{width:8px;height:8px;border-radius:50%;flex-shrink:0}@keyframes pulse-green{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 4px #10b98100}}@keyframes pulse-yellow{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 4px #f59e0b00}}@keyframes pulse-fast{0%,to{opacity:1}50%{opacity:.4}}.app-actions{display:flex;gap:8px;flex-shrink:0}@media (max-width: 768px){.app-actions .btn-text{display:none}}.apps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.app-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px;padding:16px;cursor:pointer;position:relative;transition:all .2s ease}.app-card:hover{border-color:var(--border-active);transform:translateY(-2px);box-shadow:var(--shadow-md)}.app-card.selected{background:#6366f126;border-color:#6366f14d}.app-card-checkbox{position:absolute;top:12px;left:12px;z-index:1}.app-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-left:32px}.app-card-body h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:12px}.app-card-info{display:flex;flex-direction:column;gap:4px;min-height:48px}.app-card-info-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.app-card-info-row svg{color:var(--text-tertiary);flex-shrink:0}.app-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.btn-icon{padding:8px!important}.btn-icon svg{margin:0!important}.confirm-modal{max-width:420px}.confirm-modal-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.confirm-modal-header h2{margin:0;font-size:18px}.confirm-icon-danger{color:#ef4444;flex-shrink:0}.confirm-modal-message{color:var(--text-secondary);font-size:14px;line-height:1.6;margin-bottom:20px}.app-header-info{display:flex;align-items:center;justify-content:flex-start;gap:20px}@media (max-width: 768px){.app-header-info{flex-direction:column;align-items:flex-start}}.app-header-title{display:flex;align-items:center;justify-content:flex-start;gap:16px}.app-header-title h1{font-size:24px}.deploy-tab{display:flex;flex-direction:column;gap:20px}.deploy-tab .deploy-setup{padding:32px 0}.deploy-tab .deploy-header{margin-bottom:20px}.deploy-tab .deploy-status-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}@media (max-width: 768px){.deploy-tab .deploy-status-card{flex-direction:column;align-items:flex-start}}.deploy-tab .deploy-repo-info{display:flex;align-items:center;gap:12px}.deploy-tab .deploy-repo-info svg{flex-shrink:0;color:var(--text-secondary)}.deploy-tab .deploy-repo-info>div{display:flex;flex-direction:column;gap:4px}.deploy-tab .deploy-repo-info .repo-url{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);word-break:break-all}.deploy-tab .deploy-repo-info .repo-branch{font-size:10px;color:var(--text-tertiary)}.deploy-tab .deploy-actions{display:flex;gap:8px;flex-shrink:0}.deploy-tab .deploy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.deploy-tab .webhook-url{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;background:var(--bg-hover);border-radius:6px}.deploy-tab .webhook-url code{flex:1;font-size:10px;color:var(--text-secondary);word-break:break-all}.deploy-tab .webhook-url .btn{flex-shrink:0}.deploy-tab .scripts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.deploy-tab .script-section h4{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.deploy-tab .script-code{padding:12px;background:var(--bg-hover);border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-secondary);overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin:0}.deploy-tab .card-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.deploy-tab .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.deploy-tab .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.deploy-tab .checkbox-label span{font-size:12px;color:var(--text-primary)}.deploy-tab .form-help{display:block;margin-top:4px;font-size:10px;color:var(--text-tertiary)}.deploy-tab textarea{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;resize:vertical;min-height:80px}.deploy-tab .text-danger{color:#ef4444;font-size:12px}.deploy-tab .text-muted{color:var(--text-tertiary);font-size:12px}.diagnostics-card .card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.diagnostics-card .card-header-row h3{margin:0}.diagnostics-card .diagnostics-hint{color:var(--text-tertiary);font-size:12px;margin:0}.diagnostics-card .diagnostics-results{display:flex;flex-direction:column;gap:16px}.diagnostics-card .health-summary{padding:12px 16px;border-radius:6px;font-weight:500}.diagnostics-card .health-summary.healthy{background:#22c55e1a;color:#10b981}.diagnostics-card .health-summary.unhealthy{background:#ef44441a;color:#ef4444}.diagnostics-card .diagnostics-section h4{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:8px}.diagnostics-card .diagnostics-section.issues,.diagnostics-card .diagnostics-section.recommendations{padding:12px;border-radius:6px}.diagnostics-card .diagnostics-section.issues{background:#ef44440d;border:1px solid rgba(239,68,68,.2)}.diagnostics-card .diagnostics-section.recommendations{background:#eab3080d;border:1px solid rgba(234,179,8,.2)}.diagnostics-card .check-list{display:flex;flex-wrap:wrap;gap:8px 16px}.diagnostics-card .check-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.diagnostics-card .health-icon{font-weight:700;font-size:14px}.diagnostics-card .health-icon.healthy{color:#10b981}.diagnostics-card .health-icon.unhealthy{color:#ef4444}.diagnostics-card .issues-list,.diagnostics-card .recommendations-list{margin:0;padding-left:20px;font-size:12px}.diagnostics-card .issues-list li,.diagnostics-card .recommendations-list li{margin-bottom:4px}.diagnostics-card .issues-list li:last-child,.diagnostics-card .recommendations-list li:last-child{margin-bottom:0}.diagnostics-card .issues-list{color:#ef4444}.diagnostics-card .recommendations-list{color:#f59e0b}.diagnostics-card .config-preview{margin:8px 0 0;padding:12px;background:var(--bg-hover);border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-secondary);overflow-x:auto;white-space:pre;max-height:300px;overflow-y:auto}.port-status{font-size:10px;margin-left:8px}.port-status.accessible{color:#10b981}.port-status.not-accessible{color:#ef4444}.app-detail-page{display:flex;flex-direction:column;gap:16px}.app-detail-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.app-detail-breadcrumbs{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-tertiary)}.app-detail-breadcrumbs a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.app-detail-breadcrumbs a:hover{color:#6366f1}.app-detail-breadcrumbs .breadcrumb-separator{color:var(--text-tertiary)}.app-detail-breadcrumbs .breadcrumb-current{color:var(--text-primary);font-weight:500}.app-detail-actions{display:flex;gap:8px}.app-detail-header{display:flex;align-items:center;gap:16px;padding:20px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px}.app-detail-icon{width:56px;height:56px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px;font-weight:700;color:#fff}.app-detail-icon img{width:100%;height:100%;object-fit:contain;border-radius:8px}.app-detail-icon svg{color:#fff}.app-detail-title-block{flex:1;min-width:0}.app-detail-title-block h1{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 4px;display:flex;align-items:center;gap:12px}.app-detail-meta{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--text-tertiary)}.app-detail-meta span{display:flex;align-items:center;gap:4px}.app-detail-meta a{color:var(--text-secondary);transition:color .2s ease}.app-detail-meta a:hover{color:#6366f1}.app-status-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:9999px;font-size:12px;font-weight:500}.app-status-badge.running{background:#10b9811a;color:#10b981}.app-status-badge.stopped{background:var(--bg-tertiary);color:var(--text-secondary)}.app-status-badge.error{background:#ef44441a;color:#ef4444}.pulse-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.running .pulse-dot{animation:pulse-green 2s ease-in-out infinite}.app-detail-tabs{display:flex;gap:4px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px;padding:4px;overflow-x:auto}.app-detail-tab{padding:8px 16px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease}.app-detail-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.app-detail-tab.active{color:#6366f1;background:#6366f126}.app-detail-content{min-height:400px}.app-overview-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media (max-width: 1024px){.app-overview-grid{grid-template-columns:1fr}}.app-overview-left,.app-overview-right{display:flex;flex-direction:column;gap:16px}.app-panel{background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.app-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-subtle)}.app-panel-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.app-panel-body{padding:16px}.app-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 640px){.app-info-grid{grid-template-columns:1fr}}.app-info-item{display:flex;flex-direction:column;gap:4px}.app-info-item .info-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.app-info-item .info-value{font-size:12px;color:var(--text-primary);font-weight:500}.app-info-item .info-value.mono{font-family:Fira Code,Monaco,Consolas,monospace}.app-info-item .info-value a{color:#6366f1;transition:color .2s ease}.app-info-item .info-value a:hover{text-decoration:underline}.private-url-box{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-hover);border-radius:6px}.private-url-box code{flex:1;font-size:12px;color:var(--text-secondary);word-break:break-all}.resource-bar-container{display:flex;flex-direction:column;gap:12px}.resource-bar-item{display:flex;align-items:center;gap:12px}.resource-bar-label{width:40px;font-size:12px;color:var(--text-secondary);flex-shrink:0}.resource-bar-track{flex:1;height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden}.resource-bar-fill{height:100%;border-radius:4px;transition:width .2s ease}.resource-bar-fill.cpu{background:#6366f1}.resource-bar-fill.ram{background:#f59e0b}.resource-bar-value{width:48px;font-size:12px;font-weight:500;color:var(--text-primary);text-align:right;flex-shrink:0}.env-link-section{display:flex;flex-direction:column;gap:12px}.env-link-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-hover);border-radius:6px}.env-link-item .env-link-info{display:flex;align-items:center;gap:12px}.env-link-item .env-link-info .env-badge{padding:4px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.env-link-item .env-link-info .env-badge.prod{background:#ef444426;color:#ef4444}.env-link-item .env-link-info .env-badge.dev{background:#22c55e26;color:#10b981}.env-link-item .env-link-info .env-badge.staging{background:#eab30826;color:#f59e0b}.env-link-item .env-link-info .env-name{font-size:12px;color:var(--text-primary)}.process-list{display:flex;flex-direction:column;gap:8px}.process-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-hover);border-radius:6px}.process-item .process-name{font-size:12px;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace}.process-item .process-status{display:flex;align-items:center;gap:8px;font-size:10px}.process-item .process-status.running{color:#10b981}.process-item .process-status.stopped{color:var(--text-tertiary)}.domains-list{display:flex;flex-direction:column;gap:8px}.domain-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-hover);border-radius:6px}.domain-item .domain-url{font-size:12px;color:var(--text-primary)}.domain-item .domain-url a{color:#6366f1;transition:color .2s ease}.domain-item .domain-url a:hover{text-decoration:underline}.domain-item .domain-ssl{display:flex;align-items:center;gap:4px;font-size:10px;color:#10b981}.domain-item .domain-ssl.no-ssl{color:var(--text-tertiary)}.panel-empty{text-align:center;padding:24px;color:var(--text-tertiary);font-size:12px}.resources-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--text-tertiary);font-size:12px}@media (max-width: 768px){.apps-toolbar,.apps-toolbar-left{flex-direction:column;align-items:stretch}.apps-search-wrapper{max-width:none}.apps-toolbar-right{justify-content:space-between}.apps-bulk-bar{flex-direction:column;align-items:stretch}.apps-bulk-actions{justify-content:flex-end}.app-row{flex-wrap:wrap}.app-actions{width:100%;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}}.docker-page-new{padding:0}.docker-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.docker-page-title h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.docker-page-subtitle{color:var(--text-secondary);font-size:12px;margin-top:4px}.docker-page-actions{display:flex;align-items:center;gap:12px}.server-selector{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 12px;margin-right:8px}.server-selector svg{color:var(--text-tertiary);flex-shrink:0}.server-selector select{background:transparent;border:none;color:var(--text-primary);font-size:12px;cursor:pointer;padding-right:16px;min-width:140px}.server-selector select:focus{outline:none}.server-selector select option{background:var(--bg-card);color:var(--text-primary)}.server-selector select option:disabled{color:var(--text-tertiary)}.docker-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}@media (max-width: 1024px){.docker-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.docker-stats-row{grid-template-columns:1fr}}.docker-stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:20px}.docker-stat-label{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:8px;letter-spacing:.05em}.docker-stat-value{font-family:Fira Code,Monaco,Consolas,monospace;font-size:24px;font-weight:700;color:var(--text-primary)}.docker-stat-meta{font-size:10px;color:var(--text-tertiary);margin-top:4px;display:flex;align-items:center;gap:12px}.docker-stat-running{color:#10b981}.docker-stat-running:before{content:"";display:inline-block;width:6px;height:6px;background:#10b981;border-radius:50%;margin-right:4px}.docker-stat-stopped{color:var(--text-tertiary)}.docker-stat-stopped:before{content:"";display:inline-block;width:6px;height:6px;background:var(--text-tertiary);border-radius:50%;margin-right:4px}.docker-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}.docker-panel-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.docker-panel-tabs{display:flex;gap:24px}.docker-panel-tab{color:var(--text-tertiary);font-size:12px;font-weight:500;cursor:pointer;padding-bottom:4px;border-bottom:2px solid transparent;transition:all .2s}.docker-panel-tab:hover{color:var(--text-primary)}.docker-panel-tab.active{color:var(--text-primary);border-color:#6366f1}.docker-panel-actions{display:flex;gap:8px}.docker-table-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border-subtle);background:var(--bg-hover)}.docker-filter-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.docker-filter-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#6366f1}.docker-search{background:var(--bg-card);border:1px solid var(--border-subtle);padding:8px 12px;border-radius:4px;color:var(--text-primary);font-size:10px;width:200px}.docker-search::placeholder{color:var(--text-tertiary)}.docker-search:focus{outline:none;border-color:#6366f1}.docker-table{width:100%;border-collapse:collapse;font-size:12px}.docker-table th{text-align:left;padding:12px 20px;background:var(--bg-hover);color:var(--text-tertiary);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.docker-table td{padding:16px 20px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.docker-table tr:hover{background:#f4f4f505}.docker-table tr:last-child td{border-bottom:none}.docker-container-name{font-weight:600;color:var(--text-primary);font-size:12px;display:block;margin-bottom:4px}.docker-container-id{font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1;font-size:10px}.docker-image-tag{font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-secondary);font-size:10px;background:var(--bg-hover);padding:4px 8px;border-radius:4px}.docker-status-pill{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:600;padding:4px 8px;border-radius:9999px}.docker-status-pill.running{background:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.2)}.docker-status-pill.exited{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.docker-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.docker-status-detail{font-size:10px;color:var(--text-tertiary);margin-top:4px}.docker-ports{font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-primary);font-size:10px;line-height:1.6}.docker-ports.faded{opacity:.4}.docker-res-container{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--text-tertiary);margin-bottom:4px}.docker-res-container:last-child{margin-bottom:0}.docker-res-label{width:28px;flex-shrink:0}.docker-res-track{width:50px;height:4px;background:var(--bg-hover);border-radius:2px;overflow:hidden}.docker-res-fill{height:100%;border-radius:2px;transition:width .3s ease}.docker-res-value{width:32px;text-align:right;font-family:Fira Code,Monaco,Consolas,monospace}.faded{opacity:.3}.docker-actions-cell{text-align:right;white-space:nowrap}.docker-icon-action{background:transparent;border:1px solid transparent;color:var(--text-tertiary);width:28px;height:28px;border-radius:4px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;padding:0}.docker-icon-action:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-subtle)}.docker-icon-action:disabled{opacity:.5;cursor:not-allowed}.docker-icon-action svg{width:14px;height:14px}.docker-empty{text-align:center;padding:48px;color:var(--text-secondary)}.docker-empty h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.docker-empty p{margin:0;font-size:12px}.docker-loading{text-align:center;padding:48px;color:var(--text-secondary)}.docker-list{display:flex;flex-direction:column;gap:12px}.docker-item{display:flex;align-items:center;gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.docker-item:hover{border-color:var(--border-active)}.docker-item-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.docker-item-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-hover);border-radius:8px;color:#2496ed}.docker-item-icon.image-icon{color:#a78bfa}.docker-item-icon.network-icon{color:#34d399}.docker-item-icon.volume-icon{color:#fbbf24}.docker-item-details{min-width:0}.docker-item-details h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docker-item-meta{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:12px;color:var(--text-tertiary);flex-wrap:wrap}.docker-item-meta .mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;background:var(--bg-hover);padding:2px 6px;border-radius:4px}.docker-item-status{flex-shrink:0}.docker-item-actions{display:flex;gap:8px;flex-shrink:0}.exec-modal-body{display:flex;flex-direction:column;height:400px}.exec-output{flex:1;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:16px;overflow-y:auto;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;margin-bottom:12px}.exec-welcome{color:var(--text-secondary);text-align:center;padding:32px 0}.exec-welcome p{margin-bottom:8px}.exec-welcome code{background:var(--bg-hover);padding:4px 8px;border-radius:4px;color:#6366f1}.exec-line{margin-bottom:8px}.exec-line pre{margin:0;white-space:pre-wrap;word-break:break-all}.exec-line.exec-command{color:#6366f1;font-weight:500}.exec-line.exec-output{color:var(--text-primary)}.exec-line.exec-error{color:#ef4444}.exec-line.exec-info{color:var(--text-tertiary);font-size:10px}.exec-line.exec-loading{color:var(--text-secondary);display:flex;align-items:center;gap:8px}.exec-input-form{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 12px}.exec-input-form:focus-within{border-color:#6366f1}.exec-prompt{color:#6366f1;font-family:Fira Code,Monaco,Consolas,monospace;font-weight:600}.exec-input{flex:1;border:none;background:transparent;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;outline:none}.exec-input::placeholder{color:var(--text-tertiary)}.exec-input:disabled{opacity:.5}.docker-page .page-header{margin-bottom:24px}.docker-page .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.docker-page .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.docker-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;max-width:600px;margin:0 auto}.docker-unavailable .docker-unavailable-icon{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:#2496ed1a;border-radius:12px;margin-bottom:24px}.docker-unavailable .docker-unavailable-icon svg{stroke:#2496ed;opacity:.6}.docker-unavailable h2{font-size:20px;font-weight:600;margin:0 0 8px;color:var(--text-primary)}.docker-unavailable .docker-unavailable-message{color:var(--text-secondary);font-size:14px;margin:0 0 16px}.docker-unavailable .docker-unavailable-details{width:100%;margin-bottom:24px}.docker-unavailable .docker-unavailable-details code{display:block;padding:12px 16px;background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-tertiary);word-break:break-all;text-align:left}.docker-unavailable .docker-unavailable-help{width:100%;padding:20px;background:var(--bg-hover);border-radius:8px;text-align:left;margin-bottom:24px}.docker-unavailable .docker-unavailable-help h4{font-size:12px;font-weight:600;margin:0 0 12px;color:var(--text-primary)}.docker-unavailable .docker-unavailable-help ul{margin:0;padding-left:20px}.docker-unavailable .docker-unavailable-help ul li{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.docker-unavailable .docker-unavailable-help ul li:last-child{margin-bottom:0}.docker-unavailable .btn{display:inline-flex;align-items:center;gap:8px}.docker-unavailable .btn svg{width:16px;height:16px}.db-status{display:flex;gap:24px;margin-bottom:24px}@media (max-width: 768px){.db-status{flex-direction:column}}.db-status-item{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:16px 24px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;flex:1}.status-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px;font-size:20px;font-weight:700}.status-icon.mysql{background:linear-gradient(135deg,#00758f,#f29111);color:#fff}.status-icon.postgresql{background:linear-gradient(135deg,#336791,#5f9ab8);color:#fff}.status-info h3{font-size:16px;font-weight:600;margin-bottom:4px}.status-info span{font-size:13px;color:var(--text-secondary)}.status-info span.running{color:#10b981}.status-info span.stopped{color:#ef4444}.db-list{display:flex;flex-direction:column;gap:12px}.db-item{display:flex;align-items:center;gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.db-item:hover{border-color:var(--border-active)}.db-item-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.db-item-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-hover);border-radius:8px}.db-item-icon.mysql{color:#f29111}.db-item-icon.postgresql{color:#336791}.db-item-icon.user{color:#6366f1}.db-item-details{min-width:0}.db-item-details h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-item-meta{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:12px;color:var(--text-tertiary);flex-wrap:wrap}.db-item-meta .mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;background:var(--bg-hover);padding:2px 6px;border-radius:4px}.db-item-meta .host{color:var(--text-secondary)}.db-item-actions{display:flex;gap:8px;flex-shrink:0}.users-header{display:flex;align-items:center;justify-content:space-between;margin:32px 0 16px;padding-top:24px;border-top:1px solid var(--border-subtle)}.users-header h3{font-size:16px;font-weight:600}.ssl-status-bar{display:flex;gap:24px;margin-bottom:32px}@media (max-width: 768px){.ssl-status-bar{flex-direction:column}}.ssl-status-item{display:flex;align-items:center;justify-content:flex-start;gap:16px;padding:20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;flex:1}.ssl-status-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px}.ssl-status-icon.active{background:#10b9811a;color:#10b981}.ssl-status-icon.inactive{background:#ef44441a;color:#ef4444}.ssl-status-info h4{font-size:16px;font-weight:600;margin-bottom:4px}.ssl-status-info span{font-size:13px;color:var(--text-secondary)}.domain-list{display:flex;flex-direction:column;gap:12px}.domain-item{display:flex;align-items:center;gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.domain-item:hover{border-color:var(--border-active)}.domain-item-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.domain-item-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-hover);border-radius:8px;color:var(--text-secondary)}.domain-item-icon.ssl{background:#10b9811a;color:#10b981}.domain-item-details{min-width:0}.domain-item-details h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px;display:flex;align-items:center;justify-content:flex-start;gap:8px}.primary-badge{background:#6366f126;color:#6366f1;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.domain-item-meta{display:flex;align-items:center;justify-content:flex-start;gap:16px;font-size:12px;color:var(--text-tertiary)}.domain-item-meta span{display:flex;align-items:center;justify-content:flex-start;gap:4px}.app-link{color:var(--text-secondary)}.ssl-badge{color:#10b981}.domain-item-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.cert-list{display:flex;flex-direction:column;gap:12px}.cert-item{display:flex;align-items:center;gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease}.cert-item:hover{border-color:var(--border-active)}.cert-item-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.cert-item-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#10b9811a;border-radius:8px;color:#10b981}.cert-item-details{min-width:0}.cert-item-details h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.cert-item-meta{display:flex;align-items:center;justify-content:flex-start;gap:16px;font-size:12px;color:var(--text-tertiary)}.cert-item-meta span{display:flex;align-items:center;justify-content:flex-start;gap:4px}.cert-item-meta span.valid{color:#10b981}.cert-item-meta span.expiring{color:#f59e0b}.cert-status{flex-shrink:0}.ssl-info-box{display:flex;align-items:center;justify-content:flex-start;gap:16px;padding:20px;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:8px;margin-bottom:20px;color:#10b981}.ssl-info-box h4{font-size:14px;font-weight:600;margin-bottom:4px}.ssl-info-box p{font-size:12px;color:var(--text-secondary)}.ssl-info-box p strong{color:var(--text-primary)}.checkbox-label{display:flex;align-items:center;justify-content:flex-start;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1}.monitoring-page .monitoring-overview{display:flex;flex-direction:column;gap:24px}.monitoring-page .threshold-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.monitoring-page .threshold-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-hover);border-radius:6px}.monitoring-page .threshold-label{color:var(--text-secondary);font-size:12px}.monitoring-page .threshold-value{font-size:18px;font-weight:600;color:#6366f1}.monitoring-page .threshold-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}.monitoring-page .alert-list{display:flex;flex-direction:column;gap:8px}.monitoring-page .alert-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-hover);border-radius:6px}.monitoring-page .alert-item .badge{flex-shrink:0}.monitoring-page .alert-item .alert-message{flex:1;font-size:12px;color:var(--text-primary)}.monitoring-page .alert-item .alert-time{color:var(--text-tertiary);font-size:10px;white-space:nowrap}.monitoring-page .stat-icon.status{background:#10b9811a;color:#10b981}.monitoring-page .stat-icon.alerts{background:#ef44441a;color:#ef4444}.monitoring-page .stat-icon.interval{background:#6366f11a;color:#6366f1}.monitoring-page .stat-icon.notifications{background:#a855f71a;color:#a855f7}.monitoring-page .text-success{color:#10b981}.monitoring-page .text-muted{color:var(--text-tertiary)}.monitoring-page .input-group{display:flex;gap:8px}.monitoring-page .input-group input{flex:1}.monitoring-page .input-group .btn{flex-shrink:0}.monitoring-page .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.monitoring-page .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.monitoring-page .checkbox-label span{font-size:12px;color:var(--text-primary)}.monitoring-page .form-help{display:block;margin-top:4px;font-size:10px;color:var(--text-tertiary)}.backups-page .stat-icon.backups{background:#10b9811a;color:#10b981}.backups-page .stat-icon.apps{background:#6366f11a;color:#6366f1}.backups-page .stat-icon.databases{background:#a855f71a;color:#a855f7}.backups-page .stat-icon.size{background:#f59e0b1a;color:#f59e0b}.backups-page .filter-select{padding:8px 12px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-hover);color:var(--text-primary);font-size:12px}.backups-page .filter-select:focus{outline:none;border-color:#6366f1}.backups-page .backup-name{display:flex;align-items:center;gap:8px}.backups-page .backup-name svg{stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.backups-page .backup-name .icon-app{color:#6366f1}.backups-page .backup-name .icon-db{color:#a855f7}.backups-page .action-buttons{display:flex;gap:4px}.backups-page .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.backups-page .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.backups-page .checkbox-label span{font-size:12px;color:var(--text-primary)}.backups-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.backups-page .form-help{display:block;margin-top:4px;font-size:10px;color:var(--text-tertiary)}.backups-page .restore-warning{text-align:center;padding:24px;background:#ef44441a;border-radius:6px;margin-bottom:24px}.backups-page .restore-warning svg{stroke:#ef4444;fill:none;stroke-width:2;margin-bottom:8px}.backups-page .restore-warning h3{color:#ef4444;margin-bottom:8px}.backups-page .restore-warning p{color:var(--text-secondary);font-size:12px}.backups-page .restore-details{background:var(--bg-hover);border-radius:6px;padding:16px}.backups-page .restore-details .detail-row{display:flex;justify-content:space-between;padding:8px 0}.backups-page .restore-details .detail-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.backups-page .restore-details .detail-label{color:var(--text-tertiary);font-size:12px}.backups-page .restore-details .detail-value{font-weight:500;font-size:12px;color:var(--text-primary)}.terminal-page .tabs .tab{display:flex;align-items:center;gap:8px}.terminal-page .tabs .tab svg{stroke:currentColor;fill:none;stroke-width:2}.logs-container{height:calc(100vh - 280px);min-height:500px}.logs-layout{display:grid;grid-template-columns:300px 1fr;gap:24px;height:100%}@media (max-width: 1024px){.logs-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}}.logs-sidebar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.logs-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.logs-sidebar .sidebar-header h3{font-size:12px;font-weight:600;margin:0}.log-files-list{flex:1;overflow-y:auto;padding:8px}.log-files-list .empty-hint{padding:24px;text-align:center;color:var(--text-tertiary);font-size:12px}.log-file-item{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .15s ease}.log-file-item:hover{background:var(--bg-tertiary)}.log-file-item.active{background:var(--primary);color:#fff}.log-file-item.active .log-file-path,.log-file-item.active .log-file-size{color:#ffffffb3}.log-file-item.active .log-icon{background:#fff3;color:#fff}.log-file-item .log-icon{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-tertiary)}.log-file-item .log-icon svg{stroke:currentColor;fill:none;stroke-width:2}.log-file-item .log-icon.error{color:#ef4444}.log-file-item .log-icon.access{color:#10b981}.log-file-item .log-icon.nginx{color:#6366f1}.log-file-item .log-icon.database{color:#a855f7}.log-file-item .log-file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.log-file-item .log-file-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-file-item .log-file-path{font-size:10px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-file-item .log-file-size{font-size:10px;color:var(--text-tertiary);flex-shrink:0}.logs-viewer{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.viewer-toolbar .toolbar-left,.viewer-toolbar .toolbar-right{display:flex;align-items:center;gap:8px}.search-input{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px}.search-input svg{stroke:var(--text-tertiary);fill:none;stroke-width:2;flex-shrink:0}.search-input input{border:none;background:none;padding:0;font-size:12px;width:180px}.search-input input:focus{outline:none}.lines-select{padding:4px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-tertiary);color:var(--text-primary);font-size:12px}.auto-refresh-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.auto-refresh-toggle input{cursor:pointer}.log-content{flex:1;overflow:auto;padding:16px;background:var(--bg-code)}.log-content pre{margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.6;color:var(--text-code);white-space:pre-wrap;word-break:break-all}.log-content .empty-viewer{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary)}.log-content .empty-viewer svg{stroke:currentColor;fill:none;stroke-width:1.5;margin-bottom:16px;opacity:.5}.log-content .empty-viewer p{font-size:12px}.journal-container{display:flex;flex-direction:column;gap:24px;height:calc(100vh - 280px);min-height:500px}.journal-controls{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap}.journal-controls .control-group{display:flex;flex-direction:column;gap:4px}.journal-controls .control-group label{font-size:10px;font-weight:500;color:var(--text-secondary)}.journal-controls .control-group input,.journal-controls .control-group select{padding:4px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);font-size:12px}.journal-controls .control-group input{width:200px}.input-with-suggestions{display:flex;flex-direction:column;gap:8px}.quick-units{display:flex;flex-wrap:wrap;gap:4px}.unit-chip{padding:2px 8px;border:1px solid var(--border-color);border-radius:9999px;background:var(--bg-secondary);font-size:10px;cursor:pointer;transition:all .15s ease}.unit-chip:hover{border-color:var(--primary);color:var(--primary)}.unit-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.journal-viewer{flex:1;background:var(--bg-code);border-radius:8px;overflow:auto;padding:16px}.journal-viewer pre{margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.6;color:var(--text-code);white-space:pre-wrap;word-break:break-all}.processes-container{display:flex;flex-direction:column;gap:24px}.processes-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.processes-toolbar .toolbar-left,.processes-toolbar .toolbar-right{display:flex;align-items:center;gap:8px}.processes-toolbar select{padding:4px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);font-size:12px}.processes-table-wrapper{overflow-x:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.processes-table{width:100%;min-width:800px}.processes-table th{position:sticky;top:0;background:var(--bg-secondary);z-index:1}.processes-table tr{cursor:pointer;transition:background .15s ease}.processes-table tr:hover{background:var(--bg-tertiary)}.processes-table tr.selected{background:#3b82f61a}.processes-table .mono{font-family:JetBrains Mono,monospace;font-size:10px}.processes-table .process-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.processes-table .usage-cell{position:relative;min-width:100px}.processes-table .usage-cell .usage-bar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:4px;border-radius:2px;opacity:.3}.processes-table .usage-cell .usage-bar.cpu{background:#6366f1}.processes-table .usage-cell .usage-bar.memory{background:#a855f7}.processes-table .usage-cell span{position:relative;font-size:10px;font-family:monospace}.processes-table .action-buttons{display:flex;gap:4px}.btn-xs{padding:2px 6px;font-size:11px}.btn-xs svg{stroke:currentColor;fill:none;stroke-width:2}.process-details-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.process-details-panel .panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.process-details-panel .panel-header h3{font-size:16px;font-weight:600;margin:0}.process-details-panel .panel-body{padding:16px}.process-details-panel .details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.process-details-panel .detail-item{display:flex;flex-direction:column;gap:4px}.process-details-panel .detail-item .detail-label{font-size:10px;color:var(--text-tertiary)}.process-details-panel .detail-item .detail-value{font-size:12px;font-weight:500}.process-details-panel .detail-item .detail-value.mono{font-family:monospace}.process-details-panel .command-line{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.process-details-panel .command-line .detail-label{display:block;font-size:10px;color:var(--text-tertiary);margin-bottom:4px}.process-details-panel .command-line code{display:block;padding:8px;background:var(--bg-tertiary);border-radius:4px;font-family:monospace;font-size:10px;word-break:break-all}.services-container{display:flex;flex-direction:column;gap:24px}.services-toolbar{display:flex;align-items:center;gap:8px}.services-toolbar .btn svg{stroke:currentColor;fill:none;stroke-width:2}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.service-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px}.service-card .service-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.service-card .service-header .service-info{display:flex;align-items:center;gap:8px}.service-card .service-header .service-info .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.service-card .service-header .service-info .status-dot.success{background:#10b981}.service-card .service-header .service-info .status-dot.danger{background:#ef4444}.service-card .service-header .service-info .status-dot.warning{background:#f59e0b}.service-card .service-header .service-info .status-dot.secondary{background:var(--text-tertiary)}.service-card .service-header .service-info h4{font-size:12px;font-weight:600;margin:0}.service-card .service-description{font-size:10px;color:var(--text-secondary);margin:0}.service-card .service-meta{display:flex;gap:16px;font-size:10px;color:var(--text-tertiary)}.service-card .service-meta .meta-label{color:var(--text-secondary)}.service-card .service-actions{display:flex;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}.modal-lg{max-width:900px;width:90%}.modal-log-viewer{max-height:500px;overflow:auto;background:var(--bg-code);border-radius:6px;padding:16px}.modal-log-viewer pre{margin:0;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.6;color:var(--text-code);white-space:pre-wrap;word-break:break-all}.settings-page .page-header{margin-bottom:24px}.settings-page .page-header h1{font-size:24px;font-weight:600;margin:0 0 4px}.settings-page .page-header .page-subtitle{color:var(--text-secondary);margin:0}.settings-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;min-height:calc(100vh - 200px)}@media (max-width: 1024px){.settings-layout{grid-template-columns:1fr}}.settings-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}.settings-nav::-webkit-scrollbar{width:4px}.settings-nav::-webkit-scrollbar-track{background:transparent}.settings-nav::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:9999px}@media (max-width: 1024px){.settings-nav{flex-direction:row;flex-wrap:wrap;position:static;max-height:none;overflow-y:visible;background:var(--bg-card);padding:8px;border-radius:8px}}.settings-nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.settings-nav-item svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.settings-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-nav-item.active{background:#6366f1;color:#fff}.settings-nav-item.active svg{stroke:#fff}@media (max-width: 1024px){.settings-nav-item{width:auto;padding:8px 12px}}.settings-content{min-width:0}.settings-section{display:flex;flex-direction:column;gap:20px}.settings-section .section-header{margin-bottom:8px}.settings-section .section-header h2{font-size:18px;font-weight:600;margin:0 0 4px}.settings-section .section-header p{color:var(--text-secondary);margin:0;font-size:12px}.settings-section h3{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text-primary)}.settings-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:20px}.settings-card h3{margin-bottom:8px}.settings-card>p{color:var(--text-secondary);font-size:12px;margin:0 0 16px}.settings-form{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:20px}.settings-form .form-group{margin-bottom:16px}.settings-form .form-group:last-of-type{margin-bottom:0}.settings-form .form-group label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.settings-form .form-group input,.settings-form .form-group select,.settings-form .form-group textarea{width:100%;padding:12px;background:var(--bg-hover);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;transition:border-color .15s ease}.settings-form .form-group input:focus,.settings-form .form-group select:focus,.settings-form .form-group textarea:focus{outline:none;border-color:#6366f1}.settings-form .form-group input:disabled,.settings-form .form-group select:disabled,.settings-form .form-group textarea:disabled,.settings-form .form-group input.input-disabled,.settings-form .form-group select.input-disabled,.settings-form .form-group textarea.input-disabled{opacity:.6;cursor:not-allowed;background:var(--bg-body)}.settings-form .form-group .form-help{display:block;margin-top:4px;font-size:10px;color:var(--text-tertiary)}.settings-form .form-actions{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-subtle);display:flex;gap:8px}.alert{padding:12px 16px;border-radius:6px;font-size:12px;margin-bottom:16px}.alert.alert-success{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#10b981}.alert.alert-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444}.alert.alert-warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#f59e0b}.session-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-hover);border-radius:6px;margin-top:12px}.session-item .session-info{display:flex;align-items:center;gap:12px}.session-item .session-info svg{stroke:var(--text-secondary);fill:none;stroke-width:2}.session-item .session-info .session-device{display:block;font-weight:500;color:var(--text-primary)}.session-item .session-info .session-details{display:block;font-size:10px;color:var(--text-tertiary)}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 768px){.theme-options{grid-template-columns:1fr}}.theme-option{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;background:transparent;border:2px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s ease}.theme-option:hover{border-color:var(--border-active)}.theme-option.active{border-color:#6366f1;background:#6366f10d}.theme-option span{font-size:12px;font-weight:500;color:var(--text-primary)}.theme-preview{width:100%;height:80px;border-radius:6px;display:flex;overflow:hidden}.theme-preview .preview-sidebar{width:25%;background:#18181b}.theme-preview .preview-content{flex:1;padding:8px;display:flex;flex-direction:column;gap:4px}.theme-preview .preview-card{flex:1;border-radius:4px}.theme-preview.dark{border:1px solid var(--border-subtle)}.theme-preview.dark .preview-sidebar{background:#0f0f11}.theme-preview.dark .preview-content{background:#09090b}.theme-preview.dark .preview-card{background:#18181b}.theme-preview.light{border:1px solid #e5e5e5}.theme-preview.light .preview-sidebar{background:#f5f5f5}.theme-preview.light .preview-content{background:#fff}.theme-preview.light .preview-card{background:#f5f5f5}.theme-preview.system{border:1px solid var(--border-subtle);background:linear-gradient(135deg,#09090b 50%,#fff 50%)}.theme-preview.system .preview-sidebar{background:linear-gradient(180deg,#0f0f11 50%,#f5f5f5 50%)}.theme-preview.system .preview-content{background:transparent}.theme-preview.system .preview-card{background:linear-gradient(135deg,#18181b 50%,#f5f5f5 50%)}.density-options{display:flex;gap:16px}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer}.radio-option input[type=radio]{width:18px;height:18px;accent-color:#6366f1;cursor:pointer}.radio-option span{font-size:12px;color:var(--text-primary)}.notification-options{display:flex;flex-direction:column;gap:12px}.notification-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-hover);border-radius:6px;gap:16px}.notification-item .notification-info{flex:1}.notification-item .notification-info .notification-title{display:block;font-weight:500;color:var(--text-primary);margin-bottom:4px}.notification-item .notification-info .notification-desc{display:block;font-size:10px;color:var(--text-tertiary)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch input:checked+.toggle-slider{background:#6366f1}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 2px #6366f14d}.toggle-switch .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border-active);border-radius:24px;transition:all .15s ease}.toggle-switch .toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .15s ease}.system-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 768px){.system-info-grid{grid-template-columns:1fr}}.info-list .info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.info-list .info-item:last-child{border-bottom:none}.info-list .info-item .info-label{font-size:12px;color:var(--text-tertiary)}.info-list .info-item .info-value{font-size:12px;font-weight:500;color:var(--text-primary)}.timezone-selector{display:flex;gap:12px;align-items:center}.timezone-selector select{flex:1;max-width:300px}.timezone-selector .btn{flex-shrink:0}.timezone-message{margin-top:8px;padding:8px 12px;border-radius:6px;font-size:12px}.timezone-message.success{background:#10b98126;color:#10b981}.timezone-message.error{background:#ef444426;color:#ef4444}.about-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:32px;text-align:center}.about-card .about-logo{width:80px;height:80px;margin:0 auto 16px;background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:12px;display:flex;align-items:center;justify-content:center}.about-card .about-logo svg{stroke:#fff}.about-card h3{font-size:20px;margin-bottom:4px}.about-card .version{color:var(--text-tertiary);font-size:12px;margin-bottom:16px}.about-card .description{color:var(--text-secondary);font-size:12px;line-height:1.6;max-width:500px;margin:0 auto}.about-card .update-check{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.about-card .update-check .btn-sm{font-size:10px;padding:8px 12px;display:inline-flex;align-items:center;gap:4px}.about-card .update-check .btn-sm .spinning{animation:spin 1s linear infinite}.about-card .update-check .update-status{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px}.about-card .update-check .update-status.current{color:#10b981}.about-card .update-check .update-status.available{color:#f59e0b;flex-wrap:wrap}.about-card .update-check .update-status.available .btn{margin-left:8px;display:inline-flex;align-items:center;gap:4px}.about-card .update-check .update-status.error{color:#ef4444}.about-card .update-check .update-status.error .btn-link{background:none;border:none;color:#6366f1;cursor:pointer;text-decoration:underline;font-size:12px;padding:0;margin-left:8px}.about-card .update-check .update-status.error .btn-link:hover{color:#4f46e5}.star-prompt-card{position:relative;background:linear-gradient(135deg,#6366f126,#6366f114);border:1px solid rgba(99,102,241,.3);border-radius:8px;padding:24px;display:flex;align-items:flex-start;gap:16px}.star-prompt-card .dismiss-btn{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.star-prompt-card .dismiss-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.star-prompt-card .star-icon{flex-shrink:0;width:48px;height:48px;background:linear-gradient(135deg,#f59e0b,#c57f08);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.star-prompt-card .star-content{flex:1;padding-right:24px}.star-prompt-card .star-content h4{margin:0 0 8px;font-size:16px;font-weight:600}.star-prompt-card .star-content p{margin:0 0 16px;font-size:12px;color:var(--text-secondary);line-height:1.6}.star-prompt-card .star-content .btn{display:inline-flex;align-items:center;gap:8px}@media (max-width: 640px){.star-prompt-card{flex-direction:column;text-align:center}.star-prompt-card .star-content{padding-right:0}}.feature-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (max-width: 768px){.feature-list{grid-template-columns:1fr}}.feature-list li{display:flex;align-items:center;gap:8px;padding:8px;font-size:12px;color:var(--text-secondary)}.feature-list li svg{stroke:#10b981;fill:none;stroke-width:2;flex-shrink:0}.link-list{display:flex;flex-direction:column;gap:8px}.link-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-hover);border-radius:6px;color:var(--text-secondary);text-decoration:none;font-size:12px;transition:all .15s ease}.link-item svg{stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.link-item:hover{background:#6366f1;color:#fff}.license-text{color:var(--text-secondary);font-size:12px;margin:0}.loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--text-secondary);font-size:12px}.settings-row{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:var(--bg-hover);border-radius:6px;gap:16px}.settings-row:not(:last-child){margin-bottom:12px}.settings-row.settings-linked-warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2)}.settings-label{flex:1}.settings-label>span:first-child{display:block;font-weight:500;color:var(--text-primary);margin-bottom:4px}.settings-label .settings-hint{display:block;font-size:10px;color:var(--text-tertiary)}.settings-control{display:flex;align-items:center;gap:8px;flex-shrink:0}.settings-select{min-width:160px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:border-color .15s ease}.settings-select:hover{border-color:var(--border-default)}.settings-select:focus{outline:none;border-color:#6366f1}.settings-select:disabled{opacity:.6;cursor:not-allowed}.settings-saving{font-size:10px;color:var(--text-tertiary);font-style:italic}.icon-reference-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:12px}.icon-reference-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border:1px solid var(--border-default);border-radius:6px;background:var(--bg-card);cursor:pointer;transition:all .15s ease}.icon-reference-item:hover{border-color:#6366f1;background:var(--bg-hover)}.icon-reference-item.copied{border-color:#10b981;background:#10b9811a}.icon-reference-item svg{color:var(--text-primary);opacity:.8}.icon-reference-item .icon-reference-name{font-size:10px;color:var(--text-secondary);text-align:center;word-break:break-word;line-height:1.2}.icon-reference-item.copied .icon-reference-name{color:#10b981;font-weight:500}.file-manager{display:flex;flex-direction:column;gap:16px}.file-manager .page-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px}.file-manager .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.file-manager .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.file-manager .page-header .page-header-actions{display:flex;gap:8px;flex-wrap:wrap}.file-manager .page-header .page-header-actions .btn{display:flex;align-items:center;gap:8px}.file-manager .upload-progress{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border-radius:8px}.file-manager .upload-progress .progress-bar{flex:1;height:8px;background:var(--border-default);border-radius:4px;overflow:hidden}.file-manager .upload-progress .progress-bar .progress-fill{height:100%;background:#6366f1;transition:width .2s ease}.file-manager .upload-progress span{font-size:12px;font-weight:500;color:var(--text-secondary);min-width:40px}.file-manager .file-manager-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-card);border-radius:8px;gap:16px;flex-wrap:wrap}.file-manager .file-manager-toolbar .path-breadcrumb{display:flex;align-items:center;gap:8px}.file-manager .file-manager-toolbar .path-breadcrumb .current-path{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);background:var(--bg-tertiary);padding:8px 12px;border-radius:6px}.file-manager .file-manager-toolbar .toolbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-manager .file-manager-toolbar .toolbar-actions .search-box{display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border-radius:6px;padding:0 8px;position:relative}.file-manager .file-manager-toolbar .toolbar-actions .search-box .search-icon{color:var(--text-tertiary);flex-shrink:0}.file-manager .file-manager-toolbar .toolbar-actions .search-box input{background:transparent;border:none;padding:8px 12px;font-size:12px;width:180px;color:var(--text-primary)}.file-manager .file-manager-toolbar .toolbar-actions .search-box input::placeholder{color:var(--text-tertiary)}.file-manager .file-manager-toolbar .toolbar-actions .search-box input:focus{outline:none}.file-manager .file-manager-toolbar .toolbar-actions .checkbox-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.file-manager .file-manager-toolbar .toolbar-actions .checkbox-label input[type=checkbox]{width:16px;height:16px}.file-manager .file-manager-toolbar .toolbar-actions .checkbox-label svg{color:var(--text-tertiary)}.file-manager .file-manager-layout{display:flex;gap:16px;min-height:0}.file-manager .file-manager-main{flex:1;min-width:0}.file-manager .file-manager-content{display:grid;grid-template-columns:1fr 400px;gap:16px}@media (max-width: 1280px){.file-manager .file-manager-content{grid-template-columns:1fr}}.file-manager .file-manager-sidebar{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:16px;transition:all .2s ease}@media (max-width: 1024px){.file-manager .file-manager-sidebar{position:fixed;right:0;top:64px;bottom:0;width:100%;max-width:360px;background:var(--bg-body);padding:16px;z-index:50;box-shadow:-4px 0 20px #0000004d;overflow-y:auto}}@media (max-width: 1024px){.file-manager:not(.sidebar-open) .file-manager-sidebar{transform:translate(100%)}}.file-manager .sidebar-section{background:var(--bg-card);border-radius:8px;overflow:hidden}.file-manager .sidebar-section-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-elevated);border:none;width:100%;text-align:left;cursor:pointer;color:var(--text-primary);font-size:12px;font-weight:500;transition:background .2s ease}.file-manager .sidebar-section-header:hover{background:var(--bg-tertiary)}.file-manager .sidebar-section-header.static{cursor:default}.file-manager .sidebar-section-header.static:hover{background:var(--bg-elevated)}.file-manager .sidebar-section-header span{flex:1}.file-manager .sidebar-section-header .close-btn{margin-left:auto}.file-manager .sidebar-section-content{padding:12px 16px}.file-manager .disk-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.file-manager .disk-updated{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-tertiary)}.file-manager .disk-mount-item{padding:12px 0;border-bottom:1px solid var(--border-subtle)}.file-manager .disk-mount-item:last-child{border-bottom:none;padding-bottom:0}.file-manager .disk-mount-item:first-child{padding-top:0}.file-manager .disk-mount-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.file-manager .disk-mount-point{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary)}.file-manager .disk-percent{font-size:12px;font-weight:500}.file-manager .disk-percent.healthy{color:#10b981}.file-manager .disk-percent.warning{color:#f59e0b}.file-manager .disk-percent.critical{color:#ef4444}.file-manager .disk-progress{height:6px;background:var(--border-default);border-radius:4px;overflow:hidden;margin-bottom:8px}.file-manager .disk-progress .disk-progress-fill{height:100%;transition:width .2s ease}.file-manager .disk-progress.healthy .disk-progress-fill{background:#10b981}.file-manager .disk-progress.warning .disk-progress-fill{background:#f59e0b}.file-manager .disk-progress.critical .disk-progress-fill{background:#ef4444}.file-manager .disk-mount-info{display:flex;justify-content:space-between;font-size:10px;color:var(--text-tertiary)}.file-manager .disk-device{font-family:Fira Code,Monaco,Consolas,monospace}.file-manager .analysis-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 0;color:var(--text-secondary);font-size:12px}.file-manager .analysis-total{font-size:12px;font-weight:500;color:var(--text-primary);margin-bottom:12px}.file-manager .analysis-tabs{display:flex;gap:8px;margin-bottom:12px}.file-manager .analysis-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:8px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:6px;font-size:10px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.file-manager .analysis-tab:hover{background:var(--bg-hover)}.file-manager .analysis-tab.active{background:#6366f126;border-color:#6366f14d;color:#6366f1}.file-manager .analysis-bars{display:flex;flex-direction:column;gap:8px}.file-manager .analysis-bar-item{cursor:pointer;padding:8px;border-radius:6px;transition:background .2s ease}.file-manager .analysis-bar-item:hover{background:var(--bg-hover)}.file-manager .analysis-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.file-manager .analysis-bar-name{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-manager .analysis-bar-name svg{color:#f59e0b;flex-shrink:0}.file-manager .analysis-bar-size{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.file-manager .analysis-bar-track{height:4px;background:var(--border-default);border-radius:4px;overflow:hidden}.file-manager .analysis-bar-fill{height:100%;background:#6366f1;transition:width .2s ease}.file-manager .analysis-files{display:flex;flex-direction:column;gap:4px}.file-manager .analysis-file-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;cursor:pointer;transition:background .2s ease}.file-manager .analysis-file-item:hover{background:var(--bg-hover)}.file-manager .analysis-file-item svg{color:var(--text-tertiary);flex-shrink:0}.file-manager .analysis-file-name{flex:1;font-size:10px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-manager .analysis-file-size{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.file-manager .analysis-empty{padding:16px 0;text-align:center;color:var(--text-tertiary);font-size:12px}.file-manager .type-breakdown-chart{margin-bottom:12px}.file-manager .type-breakdown-legend{display:flex;flex-direction:column;gap:8px}.file-manager .type-legend-item{display:flex;align-items:center;gap:8px}.file-manager .type-legend-color{width:10px;height:10px;border-radius:4px;flex-shrink:0}.file-manager .type-legend-name{flex:1;font-size:10px;color:var(--text-primary)}.file-manager .type-legend-size{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.file-manager .file-list-container{background:var(--bg-card);border-radius:8px;overflow:hidden}.file-manager .file-list-container .loading-state,.file-manager .file-list-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--text-tertiary)}.file-manager .file-list-container .loading-state svg,.file-manager .file-list-container .empty-state svg{margin-bottom:16px}.file-manager .file-list-container .loading-state p,.file-manager .file-list-container .empty-state p{margin:0}.file-manager .file-list .file-list-header{display:grid;grid-template-columns:1fr 100px 120px 120px 120px;padding:12px 16px;background:var(--bg-tertiary);font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-default)}.file-manager .file-list .file-item{display:grid;grid-template-columns:1fr 100px 120px 120px 120px;padding:12px 16px;border-bottom:1px solid var(--border-default);cursor:pointer;transition:background .2s ease}.file-manager .file-list .file-item:hover{background:var(--bg-hover)}.file-manager .file-list .file-item.selected{background:#6366f126}.file-manager .file-list .file-item .col-name{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-manager .file-list .file-item .col-name .link-indicator{color:var(--text-tertiary);font-size:12px}.file-manager .file-list .file-item .col-size,.file-manager .file-list .file-item .col-modified,.file-manager .file-list .file-item .col-permissions{font-size:12px;color:var(--text-secondary)}.file-manager .file-list .file-item .col-permissions{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px}.file-manager .file-list .file-item .col-actions{display:flex;gap:4px;justify-content:flex-end}.file-manager .file-list .file-item .col-actions .btn-icon{opacity:0;transition:opacity .2s ease}.file-manager .file-list .file-item:hover .col-actions .btn-icon{opacity:1}.file-manager .file-icon-svg{flex-shrink:0;color:var(--text-tertiary)}.file-manager .file-icon-svg.folder{color:#f59e0b}.file-manager .file-icon-svg.code{color:#8b5cf6}.file-manager .file-icon-svg.image{color:#10b981}.file-manager .file-icon-svg.video{color:#ec4899}.file-manager .file-icon-svg.audio{color:#f59e0b}.file-manager .file-icon-svg.archive{color:#ef4444}.file-manager .file-icon-svg.data{color:#14b8a6}.file-manager .file-icon-svg.text{color:var(--text-secondary)}.file-manager .file-icon-svg.terminal{color:#10b981}.file-manager .file-preview{background:var(--bg-card);border-radius:8px;display:flex;flex-direction:column;max-height:calc(100vh - 300px)}.file-manager .file-preview .preview-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-default)}.file-manager .file-preview .preview-header h3{margin:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-manager .file-preview .preview-header .preview-actions{display:flex;gap:8px}.file-manager .file-preview .preview-info{display:flex;gap:16px;padding:12px 16px;background:var(--bg-tertiary);font-size:10px;color:var(--text-secondary);flex-wrap:wrap}.file-manager .file-preview .file-editor{flex:1;padding:16px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;line-height:1.6;background:var(--bg-body);border:none;resize:none;color:var(--text-primary)}.file-manager .file-preview .file-editor:focus{outline:none}.file-manager .file-preview .file-editor[readonly]{background:var(--bg-tertiary)}.file-manager .file-preview .preview-unavailable{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--text-tertiary)}.file-manager .file-preview .preview-unavailable svg{margin-bottom:16px}.file-manager .file-preview .preview-unavailable p{margin-bottom:16px}.file-manager .permissions-help{margin-top:16px;padding:12px;background:var(--bg-tertiary);border-radius:6px;font-size:12px}.file-manager .permissions-help p{margin:0 0 8px;font-weight:500}.file-manager .permissions-help ul{margin:0;padding-left:20px}.file-manager .permissions-help ul li{margin-bottom:4px}.file-manager .permissions-help ul code{background:var(--bg-body);padding:2px 8px;border-radius:4px}.file-manager .spinning{animation:spin 1s linear infinite}@media (max-width: 768px){.file-manager .page-header{flex-direction:column;align-items:stretch}.file-manager .page-header .page-header-actions{justify-content:flex-end}.file-manager .file-manager-toolbar{flex-direction:column;align-items:stretch}.file-manager .file-manager-toolbar .path-breadcrumb{order:1}.file-manager .file-manager-toolbar .toolbar-actions{order:2;justify-content:space-between}.file-manager .file-list .file-list-header,.file-manager .file-list .file-item{grid-template-columns:1fr 80px 100px}.file-manager .file-list .file-list-header .col-permissions,.file-manager .file-list .file-item .col-permissions,.file-manager .file-list .file-list-header .col-modified,.file-manager .file-list .file-item .col-modified{display:none}}@media (max-width: 640px){.file-manager .file-list .file-list-header,.file-manager .file-list .file-item{grid-template-columns:1fr 80px}.file-manager .file-list .file-list-header .col-size,.file-manager .file-list .file-item .col-size{display:none}.file-manager .file-manager-content{grid-template-columns:1fr!important}}.ftp-server .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.ftp-server .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.ftp-server .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.ftp-server .page-header .page-header-actions{display:flex;gap:8px}.ftp-server .page-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.ftp-server .empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;background:var(--card-bg);border-radius:12px;text-align:center}.ftp-server .empty-state-large .icon{font-size:64px;color:var(--text-tertiary);margin-bottom:24px}.ftp-server .empty-state-large h2{margin:0 0 12px;font-size:24px;font-weight:600}.ftp-server .empty-state-large p{margin:0 0 24px;color:var(--text-secondary);max-width:400px}.ftp-server .status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.ftp-server .status-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--card-bg);border-radius:12px;border-left:4px solid var(--border-color)}.ftp-server .status-card.success{border-left-color:var(--success)}.ftp-server .status-card.success .status-icon{color:var(--success)}.ftp-server .status-card.warning{border-left-color:var(--warning)}.ftp-server .status-card.warning .status-icon{color:var(--warning)}.ftp-server .status-card .status-icon .icon{font-size:32px}.ftp-server .status-card .status-info{display:flex;flex-direction:column;gap:4px}.ftp-server .status-card .status-info .status-label{font-size:13px;color:var(--text-secondary)}.ftp-server .status-card .status-info .status-value{font-size:18px;font-weight:600}.ftp-server .tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-color)}.ftp-server .tabs .tab{padding:12px 20px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;position:relative;transition:color .2s}.ftp-server .tabs .tab:hover{color:var(--text-primary)}.ftp-server .tabs .tab.active{color:var(--primary)}.ftp-server .tabs .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--primary)}.ftp-server .tab-content .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ftp-server .tab-content .section-header h3{margin:0;font-size:16px;font-weight:600}.ftp-server .tab-content .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;background:var(--card-bg);border-radius:8px;color:var(--text-tertiary)}.ftp-server .tab-content .empty-state .icon{font-size:48px;margin-bottom:16px}.ftp-server .tab-content .empty-state p{margin-bottom:16px}.ftp-server .overview-tab{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 900px){.ftp-server .overview-tab{grid-template-columns:1fr}}.ftp-server .overview-tab .config-section,.ftp-server .overview-tab .info-section{background:var(--card-bg);border-radius:8px;padding:20px}.ftp-server .overview-tab .config-section h3,.ftp-server .overview-tab .info-section h3{margin:0 0 16px;font-size:16px;font-weight:600}.ftp-server .overview-tab .config-grid,.ftp-server .overview-tab .info-grid{display:grid;gap:12px}.ftp-server .overview-tab .config-item,.ftp-server .overview-tab .info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-color)}.ftp-server .overview-tab .config-item:last-child,.ftp-server .overview-tab .info-item:last-child{border-bottom:none}.ftp-server .overview-tab .config-item .config-label,.ftp-server .overview-tab .info-item .config-label,.ftp-server .overview-tab .config-item .info-label,.ftp-server .overview-tab .info-item .info-label{font-size:13px;color:var(--text-secondary)}.ftp-server .overview-tab .config-item .config-value,.ftp-server .overview-tab .info-item .config-value{font-size:13px;font-weight:500}.ftp-server .overview-tab .config-item .config-value.success,.ftp-server .overview-tab .info-item .config-value.success{color:var(--success)}.ftp-server .overview-tab .config-item .config-value.warning,.ftp-server .overview-tab .info-item .config-value.warning{color:var(--warning)}.ftp-server .overview-tab .config-item code,.ftp-server .overview-tab .info-item code{font-family:var(--font-mono);font-size:13px;background:var(--bg-tertiary);padding:4px 8px;border-radius:4px}.ftp-server .users-tab .users-table,.ftp-server .connections-tab .users-table,.ftp-server .users-tab .connections-table,.ftp-server .connections-tab .connections-table{background:var(--card-bg);border-radius:8px;overflow:hidden}.ftp-server .users-tab .users-table table,.ftp-server .connections-tab .users-table table,.ftp-server .users-tab .connections-table table,.ftp-server .connections-tab .connections-table table{width:100%;border-collapse:collapse}.ftp-server .users-tab .users-table table th,.ftp-server .connections-tab .users-table table th,.ftp-server .users-tab .connections-table table th,.ftp-server .connections-tab .connections-table table th,.ftp-server .users-tab .users-table table td,.ftp-server .connections-tab .users-table table td,.ftp-server .users-tab .connections-table table td,.ftp-server .connections-tab .connections-table table td{padding:12px 16px;text-align:left}.ftp-server .users-tab .users-table table th,.ftp-server .connections-tab .users-table table th,.ftp-server .users-tab .connections-table table th,.ftp-server .connections-tab .connections-table table th{background:var(--bg-tertiary);font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary)}.ftp-server .users-tab .users-table table td,.ftp-server .connections-tab .users-table table td,.ftp-server .users-tab .connections-table table td,.ftp-server .connections-tab .connections-table table td{border-bottom:1px solid var(--border-color);font-size:13px}.ftp-server .users-tab .users-table table td:last-child,.ftp-server .connections-tab .users-table table td:last-child,.ftp-server .users-tab .connections-table table td:last-child,.ftp-server .connections-tab .connections-table table td:last-child{border-bottom:none}.ftp-server .users-tab .users-table table td code,.ftp-server .connections-tab .users-table table td code,.ftp-server .users-tab .connections-table table td code,.ftp-server .connections-tab .connections-table table td code{font-family:var(--font-mono);font-size:12px;background:var(--bg-tertiary);padding:2px 6px;border-radius:4px}.ftp-server .users-tab .users-table table tr:last-child td,.ftp-server .connections-tab .users-table table tr:last-child td,.ftp-server .users-tab .connections-table table tr:last-child td,.ftp-server .connections-tab .connections-table table tr:last-child td{border-bottom:none}.ftp-server .users-tab .users-table .user-name,.ftp-server .connections-tab .users-table .user-name,.ftp-server .users-tab .connections-table .user-name,.ftp-server .connections-tab .connections-table .user-name{font-weight:500;margin-right:8px}.ftp-server .users-tab .users-table .badge,.ftp-server .connections-tab .users-table .badge,.ftp-server .users-tab .connections-table .badge,.ftp-server .connections-tab .connections-table .badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:500;border-radius:4px}.ftp-server .users-tab .users-table .badge.badge-info,.ftp-server .connections-tab .users-table .badge.badge-info,.ftp-server .users-tab .connections-table .badge.badge-info,.ftp-server .connections-tab .connections-table .badge.badge-info{background:rgba(var(--primary-rgb),.1);color:var(--primary)}.ftp-server .users-tab .users-table .badge.badge-warning,.ftp-server .connections-tab .users-table .badge.badge-warning,.ftp-server .users-tab .connections-table .badge.badge-warning,.ftp-server .connections-tab .connections-table .badge.badge-warning{background:#ffc1071a;color:#f59e0b}.ftp-server .users-tab .users-table .status-badge,.ftp-server .connections-tab .users-table .status-badge,.ftp-server .users-tab .connections-table .status-badge,.ftp-server .connections-tab .connections-table .status-badge{display:inline-block;padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px}.ftp-server .users-tab .users-table .status-badge.active,.ftp-server .connections-tab .users-table .status-badge.active,.ftp-server .users-tab .connections-table .status-badge.active,.ftp-server .connections-tab .connections-table .status-badge.active{background:#22c55e1a;color:var(--success)}.ftp-server .users-tab .users-table .status-badge.inactive,.ftp-server .connections-tab .users-table .status-badge.inactive,.ftp-server .users-tab .connections-table .status-badge.inactive,.ftp-server .connections-tab .connections-table .status-badge.inactive{background:#9ca3af1a;color:var(--text-tertiary)}.ftp-server .users-tab .users-table .actions,.ftp-server .connections-tab .users-table .actions,.ftp-server .users-tab .connections-table .actions,.ftp-server .connections-tab .connections-table .actions{display:flex;gap:4px}.ftp-server .logs-tab .log-viewer{background:var(--card-bg);border-radius:8px;padding:16px;max-height:500px;overflow:auto}.ftp-server .logs-tab .log-viewer pre{margin:0;font-family:var(--font-mono);font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:var(--text-secondary)}.ftp-server .install-info{padding:16px;background:var(--bg-tertiary);border-radius:8px;margin-top:16px}.ftp-server .install-info p{margin:0;font-size:14px;line-height:1.6}.ftp-server .install-info p strong{color:var(--primary)}.firewall-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.firewall-page .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.firewall-page .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.firewall-page .page-header .page-header-actions{display:flex;gap:8px}.firewall-page .page-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.firewall-page .empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;background:var(--bg-card);border-radius:12px;text-align:center}.firewall-page .empty-state-large .icon{font-size:64px;color:var(--text-tertiary);margin-bottom:24px}.firewall-page .empty-state-large h2{margin:0 0 12px;font-size:24px;font-weight:600}.firewall-page .empty-state-large p{margin:0 0 24px;color:var(--text-secondary);max-width:400px}.firewall-page .status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.firewall-page .status-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--bg-card);border-radius:12px;border-left:4px solid var(--border-subtle)}.firewall-page .status-card.success{border-left-color:#10b981}.firewall-page .status-card.success .status-icon{color:#10b981}.firewall-page .status-card.danger{border-left-color:#ef4444}.firewall-page .status-card.danger .status-icon{color:#ef4444}.firewall-page .status-card.warning{border-left-color:#f59e0b}.firewall-page .status-card.warning .status-icon{color:#f59e0b}.firewall-page .status-card .status-icon .icon{font-size:32px}.firewall-page .status-card .status-info{display:flex;flex-direction:column;gap:4px}.firewall-page .status-card .status-info .status-label{font-size:12px;color:var(--text-secondary)}.firewall-page .status-card .status-info .status-value{font-size:18px;font-weight:600}.firewall-page .tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-subtle)}.firewall-page .tabs .tab{padding:12px 20px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;position:relative;transition:color .15s ease}.firewall-page .tabs .tab:hover{color:var(--text-primary)}.firewall-page .tabs .tab.active{color:#6366f1}.firewall-page .tabs .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#6366f1}.firewall-page .tab-content .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.firewall-page .tab-content .section-header h3{margin:0;font-size:16px;font-weight:600}.firewall-page .tab-content .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;background:var(--bg-card);border-radius:8px;color:var(--text-tertiary)}.firewall-page .tab-content .empty-state .icon{font-size:48px;margin-bottom:16px}.firewall-page .tab-content .empty-state p{margin-bottom:16px}.firewall-page .overview-tab{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 768px){.firewall-page .overview-tab{grid-template-columns:1fr}}.firewall-page .overview-tab .info-card,.firewall-page .overview-tab .protection-summary{background:var(--bg-card);border-radius:8px;padding:20px}.firewall-page .overview-tab .info-card h3,.firewall-page .overview-tab .protection-summary h3{margin:0 0 16px;font-size:16px;font-weight:600}.firewall-page .overview-tab .info-grid{display:grid;gap:12px}.firewall-page .overview-tab .info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.firewall-page .overview-tab .info-item:last-child{border-bottom:none}.firewall-page .overview-tab .info-item .info-label{font-size:12px;color:var(--text-secondary)}.firewall-page .overview-tab .info-item .info-value{font-size:12px;font-weight:500}.firewall-page .overview-tab .info-item .info-value.text-success{color:#10b981}.firewall-page .overview-tab .info-item .info-value.text-danger{color:#ef4444}.firewall-page .overview-tab .summary-grid{display:flex;flex-direction:column;gap:12px}.firewall-page .overview-tab .summary-item{display:flex;align-items:center;gap:12px}.firewall-page .overview-tab .summary-item .summary-icon.text-success{color:#10b981}.firewall-page .overview-tab .summary-item .summary-icon.text-danger{color:#ef4444}.firewall-page .overview-tab .summary-item .summary-text{font-size:12px}.firewall-page .rules-tab .rules-table{background:var(--bg-card);border-radius:8px;overflow:hidden}.firewall-page .rules-tab .rules-table table{width:100%;border-collapse:collapse}.firewall-page .rules-tab .rules-table table th,.firewall-page .rules-tab .rules-table table td{padding:12px 16px;text-align:left}.firewall-page .rules-tab .rules-table table th{background:var(--bg-hover);font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary)}.firewall-page .rules-tab .rules-table table td{border-bottom:1px solid var(--border-subtle);font-size:12px}.firewall-page .rules-tab .rules-table table td .rule-code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;background:var(--bg-hover);padding:4px 8px;border-radius:4px}.firewall-page .rules-tab .rules-table table tr:last-child td{border-bottom:none}.firewall-page .blocked-tab .blocked-list{display:flex;flex-direction:column;gap:12px}.firewall-page .blocked-tab .blocked-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-subtle)}.firewall-page .blocked-tab .blocked-item .blocked-info{display:flex;flex-direction:column;gap:4px}.firewall-page .blocked-tab .blocked-item .blocked-info .blocked-ip{font-weight:600;color:#ef4444}.firewall-page .blocked-tab .blocked-item .blocked-info .blocked-rule{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-tertiary)}.firewall-page .quick-tab h3{margin:0 0 8px;font-size:16px;font-weight:600}.firewall-page .quick-tab .quick-ports{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:24px}.firewall-page .quick-tab .quick-port-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-subtle)}.firewall-page .quick-tab .quick-port-item .port-info{display:flex;flex-direction:column;gap:4px}.firewall-page .quick-tab .quick-port-item .port-info .port-name{font-weight:500}.firewall-page .quick-tab .quick-port-item .port-info .port-number{font-size:12px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.firewall-page .install-info{padding:16px;background:var(--bg-hover);border-radius:8px;margin-top:16px}.firewall-page .install-info p{margin:0;font-size:12px;line-height:1.6}.firewall-page .install-info p strong{color:#6366f1}.firewall-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cron-page .page-header{margin-bottom:24px}.cron-page .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.cron-page .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.stat-icon.cron{background:#6366f11a;color:#6366f1}.stat-icon.jobs{background:#2496ed1a;color:#2496ed}.stat-icon.active{background:#10b9811a;color:#10b981}.stat-icon.platform{background:#f59e0b1a;color:#f59e0b}.cron-list{display:flex;flex-direction:column;gap:12px}.cron-item{display:flex;align-items:center;gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease;transition:opacity .2s ease}.cron-item:hover{border-color:var(--border-active)}.cron-item.disabled{opacity:.6}.cron-item.disabled .cron-item-icon{color:var(--text-tertiary)}.cron-item-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.cron-item-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-hover);border-radius:8px;color:#6366f1}.cron-item-details{min-width:0;flex:1}.cron-item-details h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cron-item-meta{display:flex;align-items:center;justify-content:flex-start;gap:12px;font-size:12px;color:var(--text-tertiary);flex-wrap:wrap;margin-bottom:8px}.cron-item-meta .mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;background:var(--bg-hover);padding:2px 6px;border-radius:4px}.cron-item-meta .description{color:var(--text-secondary)}.cron-item-command code{display:inline-block;max-width:100%;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-secondary);background:var(--bg-hover);padding:4px 8px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cron-item-status{flex-shrink:0;margin-right:12px}.cron-item-actions{display:flex;gap:8px;flex-shrink:0}.cron-item-actions .btn{padding:8px}.cron-item-actions .btn svg{stroke:currentColor;stroke-width:2;fill:none}.cron-item-actions .btn-warning{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.cron-item-actions .btn-warning:hover{background:#f59e0b33}.cron-item-actions .btn-success{background:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.2)}.cron-item-actions .btn-success:hover{background:#10b98133}.spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid var(--border-subtle);border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}.security-page .tabs-nav{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-subtle);padding-bottom:8px;overflow-x:auto}.security-page .tabs-nav .tab-btn{padding:8px 16px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:6px;white-space:nowrap;transition:all .2s}.security-page .tabs-nav .tab-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.security-page .tabs-nav .tab-btn.active{background:#6366f1;color:#fff}.security-overview .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.security-overview .stat-card{display:flex;align-items:center;gap:16px;padding:24px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-subtle)}.security-overview .stat-card.success{border-color:#10b9814d}.security-overview .stat-card.success .stat-icon{color:#10b981;background:#10b98126}.security-overview .stat-card.warning{border-color:#f59e0b4d}.security-overview .stat-card.warning .stat-icon{color:#f59e0b;background:#f59e0b26}.security-overview .stat-card.danger{border-color:#ef44444d}.security-overview .stat-card.danger .stat-icon{color:#ef4444;background:#ef444426}.security-overview .stat-card.info{border-color:#6366f14d}.security-overview .stat-card.info .stat-icon{color:#6366f1;background:#6366f126}.security-overview .stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:6px;flex-shrink:0}.security-overview .stat-content{display:flex;flex-direction:column}.security-overview .stat-content .stat-value{font-size:20px;font-weight:700}.security-overview .stat-content .stat-label{color:var(--text-secondary);font-size:12px}.security-overview .security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.scanner-tab .scan-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;align-items:start}.scanner-tab .scan-preset{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.scanner-tab .scan-preset .btn-lg{display:flex;align-items:center;gap:8px;padding:16px 32px;font-size:16px}.scanner-tab .scan-preset .btn-lg svg{flex-shrink:0}.scanner-tab .scan-preset .scan-desc{color:var(--text-secondary);font-size:12px}.scanner-tab .scan-custom label{display:block;margin-bottom:8px;font-weight:500}.scanner-tab .scan-custom .input-group{display:flex;gap:8px}.scanner-tab .scan-custom .input-group input{flex:1}.scanner-tab .scan-progress{margin-top:24px;border-color:#6366f1}.scanner-tab .scan-progress .progress-info{display:flex;align-items:center;gap:16px}.scanner-tab .scan-progress .progress-info .spinner{width:32px;height:32px}.scanner-tab .scan-progress .progress-info p{margin:0}.scanner-tab .scan-progress .progress-info p:not(:last-child){margin-bottom:4px}.scanner-tab .path-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.quarantine-tab .empty-state{display:flex;flex-direction:column;align-items:center;padding:32px;text-align:center}.quarantine-tab .empty-state svg{color:#10b981;margin-bottom:16px}.quarantine-tab .empty-state p{font-size:18px;margin-bottom:4px}.integrity-tab .description{color:var(--text-secondary);margin-bottom:24px}.integrity-tab .integrity-actions{display:flex;gap:16px}.integrity-tab .change-section{margin-bottom:24px}.integrity-tab .change-section h4{margin-bottom:8px;color:#f59e0b}.integrity-tab .file-list{list-style:none;padding:0;margin:0;background:var(--bg-hover);border-radius:6px;max-height:300px;overflow-y:auto}.integrity-tab .file-list li{padding:8px 16px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;border-bottom:1px solid var(--border-subtle)}.integrity-tab .file-list li:last-child{border-bottom:none}.events-tab .card-warning{border-color:#f59e0b}.events-tab .failed-login-summary{display:flex;align-items:baseline;gap:8px}.events-tab .failed-login-summary .count{font-size:24px;font-weight:700}.events-tab .failed-login-summary .count.danger{color:#ef4444}.events-tab .failed-login-summary .label{color:var(--text-secondary)}.events-tab .recent-failures{margin-top:16px}.events-tab .recent-failures summary{cursor:pointer;color:#6366f1}.events-tab .recent-failures summary:hover{text-decoration:underline}.events-tab .recent-failures pre{margin-top:8px;padding:16px;background:var(--bg-hover);border-radius:6px;font-size:10px;max-height:200px;overflow:auto}.events-tab .events-list{display:flex;flex-direction:column;gap:8px}.events-tab .event-item{display:flex;align-items:flex-start;gap:16px;padding:16px;background:var(--bg-hover);border-radius:6px;border-left:3px solid var(--border-subtle)}.events-tab .event-item.malware{border-left-color:#ef4444}.events-tab .event-item.malware .event-icon{color:#ef4444}.events-tab .event-item.integrity{border-left-color:#f59e0b}.events-tab .event-item.integrity .event-icon{color:#f59e0b}.events-tab .event-icon{flex-shrink:0;color:var(--text-secondary)}.events-tab .event-content{flex:1;min-width:0}.events-tab .event-content .event-message{display:block;margin-bottom:4px}.events-tab .event-content .event-time{font-size:12px;color:var(--text-tertiary)}.settings-tab .card{margin-bottom:24px}.settings-tab .form-actions{margin-top:24px}.not-installed{text-align:center;padding:24px}.not-installed p{margin-bottom:16px;color:var(--text-secondary)}.info-list{display:flex;flex-direction:column;gap:8px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.info-item:last-child{border-bottom:none}.info-item .info-label{color:var(--text-secondary)}.info-item .info-value{font-weight:500}.help-text{color:var(--text-secondary);font-size:12px}.loading-sm{color:var(--text-tertiary);font-size:12px;padding:16px}.firewall-tab .firewall-header{margin-bottom:24px}.firewall-tab .firewall-status-row{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-subtle)}.firewall-tab .status-indicator{display:flex;align-items:center;gap:8px;font-weight:600}.firewall-tab .status-indicator.active{color:#10b981}.firewall-tab .status-indicator.inactive{color:#ef4444}.firewall-tab .status-indicator .firewall-type{color:var(--text-tertiary);font-weight:400}.firewall-tab .firewall-actions{display:flex;gap:8px}.firewall-tab .firewall-stats{display:flex;gap:16px;margin-bottom:24px}.firewall-tab .stat-mini{display:flex;flex-direction:column;align-items:center;padding:16px 24px;background:var(--bg-card);border-radius:6px;border:1px solid var(--border-subtle);min-width:100px}.firewall-tab .stat-mini .stat-value{font-size:20px;font-weight:700}.firewall-tab .stat-mini .stat-label{color:var(--text-tertiary);font-size:12px}.firewall-tab .subtabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border-subtle);padding-bottom:8px}.firewall-tab .subtabs .subtab{padding:8px 12px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:4px;font-size:12px;transition:all .2s}.firewall-tab .subtabs .subtab:hover{background:var(--bg-hover);color:var(--text-primary)}.firewall-tab .subtabs .subtab.active{background:var(--bg-hover);color:#6366f1}.firewall-tab .quick-ports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.firewall-tab .quick-port-card{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-hover);border-radius:6px}.firewall-tab .quick-port-card .port-info{display:flex;flex-direction:column}.firewall-tab .quick-port-card .port-info .port-name{font-weight:500}.firewall-tab .quick-port-card .port-info .port-number{color:var(--text-tertiary);font-size:12px;font-family:Fira Code,Monaco,Consolas,monospace}.firewall-tab .blocked-list{display:flex;flex-direction:column;gap:8px}.firewall-tab .blocked-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-hover);border-radius:6px}.firewall-tab .blocked-item .blocked-ip{font-family:Fira Code,Monaco,Consolas,monospace;font-weight:500}.firewall-tab .empty-state-sm{text-align:center;padding:24px;color:var(--text-secondary)}.firewall-tab .install-info{margin-top:16px;padding:16px;background:var(--bg-hover);border-radius:6px}.firewall-tab .install-info p{margin:0;font-size:12px}.tabs-nav-scrollable{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.tabs-nav-scrollable::-webkit-scrollbar{height:4px}.tabs-nav-scrollable::-webkit-scrollbar-track{background:transparent}.tabs-nav-scrollable::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.fail2ban-tab .card-actions{display:flex;gap:8px}.ssh-keys-tab .fingerprint{font-size:10px;word-break:break-all}.ssh-keys-tab .modal-lg{max-width:600px}.ssh-keys-tab textarea{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.ip-lists-tab .ip-lists-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px}.ip-lists-tab .ip-list{display:flex;flex-direction:column;gap:8px}.ip-lists-tab .ip-list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-hover);border-radius:6px}.ip-lists-tab .ip-info{display:flex;align-items:center;gap:12px}.ip-lists-tab .ip-info code{font-weight:500}.ip-lists-tab .ip-info .ip-allowed{color:#10b981}.ip-lists-tab .ip-info .ip-blocked{color:#ef4444}.ip-lists-tab .ip-info .ip-comment{color:var(--text-secondary);font-size:12px}.ip-lists-tab .ip-info .ip-date{color:var(--text-tertiary);font-size:10px}.audit-tab .loading-state{display:flex;flex-direction:column;align-items:center;padding:32px;gap:16px}.audit-tab .loading-state .spinner{width:40px;height:40px}.audit-tab .audit-results{display:flex;flex-direction:column;gap:24px}.audit-tab .audit-score{display:flex;flex-direction:column;align-items:center;padding:24px;background:var(--bg-hover);border-radius:8px;text-align:center}.audit-tab .audit-score .score-value{font-size:3rem;font-weight:700}.audit-tab .audit-score .score-label{color:var(--text-secondary)}.audit-tab .audit-score.score-excellent{border:2px solid #10b981}.audit-tab .audit-score.score-excellent .score-value{color:#10b981}.audit-tab .audit-score.score-good{border:2px solid #6366f1}.audit-tab .audit-score.score-good .score-value{color:#6366f1}.audit-tab .audit-score.score-fair{border:2px solid #f59e0b}.audit-tab .audit-score.score-fair .score-value{color:#f59e0b}.audit-tab .audit-score.score-poor{border:2px solid #ef4444}.audit-tab .audit-score.score-poor .score-value{color:#ef4444}.audit-tab .audit-timestamp{text-align:center;color:var(--text-tertiary);font-size:12px}.audit-tab .audit-section h4{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.audit-tab .audit-section.recommendations{background:#6366f11a;padding:16px;border-radius:6px}.audit-tab .audit-section.recommendations ul{margin:0;padding-left:24px}.audit-tab .audit-section.recommendations ul li{margin-bottom:8px}.audit-tab .audit-section.recommendations ul li:last-child{margin-bottom:0}.audit-tab .findings-list{display:flex;flex-direction:column;gap:8px}.audit-tab .finding-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-hover);border-radius:4px}.audit-tab .finding-item .finding-message{flex:1;font-size:12px}.vulnerability-tab .scan-section{margin-bottom:24px}.vulnerability-tab .scan-section h4{margin-bottom:12px;color:var(--text-secondary)}.vulnerability-tab .findings-list.compact{list-style:none;padding:0;margin:0;background:var(--bg-hover);border-radius:6px;max-height:300px;overflow-y:auto}.vulnerability-tab .findings-list.compact li{padding:8px 16px;font-size:12px;border-bottom:1px solid var(--border-subtle)}.vulnerability-tab .findings-list.compact li:last-child{border-bottom:none}.vulnerability-tab .findings-list.compact li.warning{border-left:3px solid #f59e0b}.vulnerability-tab .findings-list.compact li.suggestion{border-left:3px solid #6366f1}.auto-updates-tab .auto-updates-actions{display:flex;gap:16px}.auto-updates-tab .help-text{background:var(--bg-hover);padding:16px;border-radius:6px}.auto-updates-tab .help-text p{margin:0}.empty-state{display:flex;flex-direction:column;align-items:center;padding:32px;text-align:center}.empty-state svg{color:var(--text-tertiary);margin-bottom:16px}.empty-state h3{margin-bottom:8px}.empty-state p{color:var(--text-secondary);margin-bottom:24px}.empty-state-sm{text-align:center;padding:24px;color:var(--text-secondary)}.templates-page .page-description{color:var(--text-secondary);margin-top:8px}.templates-page .empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px;color:var(--text-tertiary)}.templates-page .empty-state svg{opacity:.5}.templates-page .empty-state p{margin:0;font-size:18px}.templates-filters{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.search-box{position:relative;max-width:400px}.search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.search-box input{width:100%;padding:12px 40px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:14px}.search-box input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.search-box .search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:4px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.search-box .search-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.category-filters{display:flex;flex-wrap:wrap;gap:8px}.category-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s ease;text-transform:capitalize}.category-btn:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-primary)}.category-btn.active{background:#6366f126;border-color:#6366f1;color:#6366f1}.active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 4px 4px 8px;background:#6366f126;border:1px solid #6366f1;border-radius:9999px;font-size:12px;color:#6366f1}.filter-chip svg:first-child{flex-shrink:0}.filter-chip button{display:flex;align-items:center;justify-content:center;padding:4px;margin-left:4px;background:transparent;border:none;border-radius:9999px;color:#6366f1;cursor:pointer;transition:all .15s ease}.filter-chip button:hover{background:#6366f1;color:#fff}.clear-all-btn{padding:4px 12px;background:transparent;border:1px solid var(--border-subtle);border-radius:9999px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.clear-all-btn:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-primary)}.templates-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.results-count{font-size:12px;color:var(--text-secondary)}.sort-dropdown{display:flex;align-items:center;gap:8px;position:relative}.sort-dropdown label{font-size:12px;color:var(--text-tertiary)}.sort-dropdown select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:8px 32px 8px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;font-size:12px;color:var(--text-primary);cursor:pointer}.sort-dropdown select:focus{outline:none;border-color:#6366f1}.sort-dropdown .dropdown-icon{position:absolute;right:8px;pointer-events:none;color:var(--text-tertiary)}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.template-card{position:relative;display:flex;gap:16px;padding:20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s ease}.template-card:hover{border-color:#6366f1;box-shadow:var(--shadow-md);transform:translateY(-2px)}.featured-badge{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:4px;font-size:10px;font-weight:500;color:#fff}.featured-badge svg{fill:currentColor}.template-icon{width:64px;height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:6px;overflow:hidden;color:#6366f1}.template-icon img{width:100%;height:100%;object-fit:contain;padding:8px}.template-icon svg{flex-shrink:0}.template-icon-placeholder{font-size:24px;font-weight:700;color:#6366f1}.template-icon-large{width:80px;height:80px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);border-radius:8px;overflow:hidden;color:#6366f1}.template-icon-large img{width:100%;height:100%;object-fit:contain;padding:8px}.template-icon-large .template-icon-placeholder{font-size:30px}.template-info{flex:1;min-width:0}.template-info h3{margin:0 0 8px;font-size:18px;font-weight:600}.template-description{margin:0 0 12px;color:var(--text-secondary);font-size:12px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.template-full-description{margin-bottom:16px;color:var(--text-secondary);line-height:1.6}.template-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.template-version{font-size:10px;font-weight:500;color:#6366f1;padding:4px 8px;background:#6366f126;border-radius:4px}.template-link-indicator{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--bg-hover);border-radius:4px;color:var(--text-tertiary)}.template-link-indicator:hover{color:#6366f1}.template-categories{display:flex;flex-wrap:wrap;gap:4px}.category-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:10px;color:var(--text-secondary);background:var(--bg-hover);border-radius:4px;text-transform:capitalize}.template-detail-header{display:flex;align-items:center;gap:16px}.template-detail-header h2{margin:0}.template-links{display:flex;gap:8px;margin-bottom:24px}.template-links .btn{display:inline-flex;align-items:center;gap:8px}.template-details-grid{display:flex;flex-direction:column;gap:24px}.detail-section h4{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.detail-section h4 svg{flex-shrink:0}.detail-section h4 .copy-btn{margin-left:auto;padding:4px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:4px;display:flex;align-items:center;transition:all .15s ease}.detail-section h4 .copy-btn:hover{color:#6366f1;background:var(--bg-hover)}.requirements-list{display:flex;flex-wrap:wrap;gap:12px}.requirement-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-hover);border-radius:6px}.requirement-item .requirement-label{font-size:12px;color:var(--text-tertiary)}.requirement-item .requirement-value{font-size:12px;font-weight:500;color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace}.variables-list{display:flex;flex-direction:column;gap:12px}.variable-item{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--bg-hover);border-radius:6px;border-left:3px solid transparent}.variable-item.required{border-left-color:#6366f1}.variable-item .variable-header{display:flex;align-items:center;gap:8px}.variable-name{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;font-weight:500;color:#6366f1}.required-badge{font-size:10px;padding:2px 8px;background:#6366f1;color:#fff;border-radius:4px;font-weight:500}.auto-badge{font-size:10px;padding:2px 8px;background:#10b9811a;color:#10b981;border-radius:4px;font-weight:500}.variable-description{font-size:12px;color:var(--text-secondary)}.variable-default{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.ports-list{display:flex;flex-wrap:wrap;gap:8px}.port-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-hover);border-radius:6px}.port-number{font-family:Fira Code,Monaco,Consolas,monospace;font-weight:500;color:var(--text-primary)}.port-protocol{font-size:10px;padding:4px;background:var(--bg-card);border-radius:4px;color:var(--text-secondary);text-transform:uppercase}.port-description{font-size:12px;color:var(--text-secondary)}.compose-preview{padding:16px;background:var(--bg-elevated);border-radius:6px;border:1px solid var(--border-subtle)}.compose-preview code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-secondary)}.install-modal h4{margin:16px 0 12px;font-size:14px;font-weight:600;padding-top:16px;border-top:1px solid var(--border-subtle)}@media (max-width: 768px){.templates-grid{grid-template-columns:1fr}.templates-results-header{flex-direction:column;align-items:flex-start;gap:12px}.sort-dropdown{width:100%}.sort-dropdown select{flex:1}.template-card{flex-direction:column}.template-icon{width:48px;height:48px}.featured-badge{top:8px;right:8px}}.workflow-page{display:flex;flex-direction:column;height:calc(100vh - 24px);padding:16px}.workflow-page.fullscreen{height:100vh;padding:0}.workflow-page.fullscreen .workflow-canvas{border-radius:0;border:none}.workflow-page .page-header{flex-shrink:0;margin-bottom:16px}.workflow-page .page-header h1{margin:0 0 4px;font-size:20px;font-weight:600}.workflow-page .page-header .page-subtitle{margin:0;color:var(--text-secondary);font-size:12px}.workflow-canvas{flex:1;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;position:relative}.workflow-canvas .react-flow{background:var(--bg-body)}.workflow-canvas .react-flow__controls{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-lg)}.workflow-canvas .react-flow__controls button{background:var(--bg-card);border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);width:28px;height:28px}.workflow-canvas .react-flow__controls button:hover{background:var(--bg-hover);color:var(--text-primary)}.workflow-canvas .react-flow__controls button:last-child{border-bottom:none}.workflow-canvas .react-flow__controls button svg{fill:currentColor}.workflow-canvas .react-flow__minimap{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-lg)}.workflow-canvas .react-flow__background{background:var(--bg-body)}.workflow-node{min-width:180px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:var(--shadow-md);transition:all .15s ease}.workflow-node:hover{border-color:var(--border-active);box-shadow:var(--shadow-lg)}.workflow-node.selected{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.workflow-node-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:2px solid #6366f1;border-top-left-radius:8px;border-top-right-radius:8px}.workflow-node-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#6366f1;border-radius:6px;color:#fff}.workflow-node-type{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary)}.workflow-node-body{padding:12px}.workflow-node-label{font-size:12px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.workflow-node-status{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:9999px;font-size:10px;font-weight:500}.workflow-node-status.status-running{background:#10b9811a;color:#10b981}.workflow-node-status.status-stopped{background:#71717a1a;color:var(--text-tertiary)}.workflow-node-status.status-error{background:#ef44441a;color:#ef4444}.workflow-handle{width:12px!important;height:12px!important;background:var(--bg-card)!important;border:2px solid var(--border-active)!important;transition:all .15s ease}.workflow-handle:hover{background:#6366f1!important;border-color:#6366f1!important;transform:scale(1.2)}.workflow-handle-target{left:-6px!important}.workflow-handle-source{right:-6px!important}.react-flow__edge-path{stroke:var(--border-active);stroke-width:2}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke:#6366f1}.react-flow__edge.animated path{stroke-dasharray:5;animation:flowAnimation .5s linear infinite}@keyframes flowAnimation{0%{stroke-dashoffset:10}to{stroke-dashoffset:0}}.workflow-palette{position:absolute;top:16px;left:16px;z-index:10;display:flex;flex-direction:column;gap:4px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:8px;box-shadow:var(--shadow-lg);max-height:calc(100% - 120px);overflow-y:auto}.palette-section{display:flex;flex-direction:column;gap:4px}.palette-section:not(:last-child){padding-bottom:8px;border-bottom:1px solid var(--border-subtle);margin-bottom:4px}.palette-header{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:4px 8px}.palette-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;text-align:left}.palette-item svg{flex-shrink:0}.palette-item:hover{background:var(--bg-hover);color:var(--text-primary)}.palette-item.palette-item-docker:hover{background:#2496ed26;color:#2496ed;border-color:#2496ed4d}.palette-item.palette-item-database:hover{background:#f59e0b26;color:#f59e0b;border-color:#f59e0b4d}.palette-item.palette-item-domain:hover{background:#10b98126;color:#10b981;border-color:#10b9814d}.palette-item.palette-item-service:hover{background:#6366f126;color:#6366f1;border-color:#6366f14d}.workflow-node-docker .node-header-docker{border-color:#2496ed}.workflow-node-docker .node-icon-docker{background:#2496ed}.workflow-node-database .node-header-database{border-color:#f59e0b}.workflow-node-database .node-icon-database{background:#f59e0b}.workflow-node-domain .node-header-domain{border-color:#10b981}.workflow-node-domain .node-icon-domain{background:#10b981}.workflow-node-domain .node-label-domain{font-size:14px;font-weight:600;font-family:Fira Code,Monaco,Consolas,monospace}.workflow-node-service .node-header-service{border-color:#6366f1}.workflow-node-service .node-icon-service{background:#6366f1}.node-detail{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:10px}.node-detail .node-detail-label{color:var(--text-tertiary)}.node-detail .node-detail-value{color:var(--text-secondary);font-family:Fira Code,Monaco,Consolas,monospace}.node-detail-image .node-detail-value{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-detail-memory,.node-detail-size{color:var(--text-tertiary)}.node-detail-memory svg,.node-detail-size svg{opacity:.7}.node-description{font-size:10px;color:var(--text-tertiary);margin-top:4px}.node-ports{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.node-port-pill{display:inline-flex;align-items:center;padding:2px 8px;background:#6366f126;border:1px solid rgba(99,102,241,.3);border-radius:9999px;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1}.node-type-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;color:#fff;margin-top:4px}.node-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.node-ssl-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid;border-radius:4px;font-size:10px;font-weight:500}.node-dns-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500}.node-dns-badge.dns-propagated{background:#10b9811a;color:#10b981}.node-dns-badge.dns-pending{background:#f59e0b26;color:#f59e0b}.node-status-dot{width:8px;height:8px;border-radius:50%;margin-left:auto}.node-status-dot.status-running{background:#10b981;box-shadow:0 0 0 2px #10b9814d;animation:pulseRunning 2s ease-in-out infinite}.node-status-dot.status-stopped{background:var(--text-tertiary)}.node-status-dot.status-error{background:#ef4444;box-shadow:0 0 0 2px #ef44444d;animation:pulseError 1s ease-in-out infinite}@keyframes pulseRunning{0%,to{box-shadow:0 0 0 2px #10b9814d}50%{box-shadow:0 0 0 4px #10b98126}}@keyframes pulseError{0%,to{box-shadow:0 0 0 2px #ef44444d}50%{box-shadow:0 0 0 4px #ef444426}}.workflow-handle-database{bottom:-6px!important;left:50%!important;transform:translate(-50%)}.config-panel{position:absolute;top:0;right:0;width:320px;height:100%;background:var(--bg-card);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);z-index:20;display:flex;flex-direction:column;transform:translate(100%);opacity:0;transition:transform .25s ease-out,opacity .2s ease-out;pointer-events:none}.config-panel.open{transform:translate(0);opacity:1;pointer-events:auto}.config-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:2px solid #6366f1;flex-shrink:0}.config-panel-title{display:flex;align-items:center;gap:12px}.config-panel-title h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.config-panel-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:#fff}.config-panel-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.config-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.config-panel-body{flex:1;overflow-y:auto;padding:16px}.config-panel-body::-webkit-scrollbar{width:6px;height:6px}.config-panel-body::-webkit-scrollbar-track{background:var(--bg-body)}.config-panel-body::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.config-panel-body::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.config-panel-body .form-group{margin-bottom:16px}.config-panel-body .form-group label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.config-panel-body .form-group input,.config-panel-body .form-group select,.config-panel-body .form-group textarea{width:100%;padding:8px 12px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;transition:border-color .15s ease}.config-panel-body .form-group input:focus,.config-panel-body .form-group select:focus,.config-panel-body .form-group textarea:focus{outline:none;border-color:#6366f1}.config-panel-body .form-group input::placeholder,.config-panel-body .form-group select::placeholder,.config-panel-body .form-group textarea::placeholder{color:var(--text-tertiary)}.config-panel-body .form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.config-panel-body .form-group textarea{resize:vertical;min-height:80px;font-family:inherit}.config-panel-body .form-group .input-readonly{background:var(--bg-hover);cursor:not-allowed;color:var(--text-tertiary)}.config-panel-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.config-panel-body .form-hint{display:block;font-size:10px;color:var(--text-tertiary);margin-top:4px}.config-panel-footer{padding:16px;border-top:1px solid var(--border-subtle);flex-shrink:0}.port-list{display:flex;flex-direction:column;gap:8px}.port-item{display:flex;gap:8px}.port-item input{flex:1}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:6px;flex-shrink:0}.btn-danger-ghost{background:transparent;border:1px solid transparent;color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.btn-danger-ghost:hover{background:#ef44441a;border-color:#ef444433;color:#ef4444}.connection-error-toast{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:30;padding:8px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:6px;color:#ef4444;font-size:12px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.edge-label{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500;color:#fff;white-space:nowrap;transition:all .15s ease;opacity:0}.react-flow__edge:hover .edge-label,.edge-label.edge-label-selected{opacity:1}.edge-label.edge-label-selected{color:var(--bg-body)}.edge-label-text{line-height:1}.edge-delete-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;margin-left:4px;background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:all .15s ease}.edge-delete-btn:hover{background:#eb1515}.workflow-handle{transition:all .15s ease}.workflow-handle:hover{transform:scale(1.3)}.react-flow__handle-connecting.react-flow__handle-valid{background:#10b981!important;box-shadow:0 0 6px #10b98199}.react-flow__handle-connecting:not(.react-flow__handle-valid){background:#ef4444!important;box-shadow:0 0 6px #ef444499}.react-flow__edge{cursor:pointer}.react-flow__edge.selected .react-flow__edge-path{stroke:#fff!important;stroke-width:2!important}.workflow-toolbar{position:absolute;top:16px;right:16px;z-index:15;display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:8px 12px;box-shadow:var(--shadow-lg)}.toolbar-left{display:flex;align-items:center;gap:12px}.toolbar-right{display:flex;align-items:center;gap:8px}.workflow-name-input{width:180px;padding:8px 12px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;font-weight:500;transition:border-color .15s ease}.workflow-name-input:focus{outline:none;border-color:#6366f1}.workflow-name-input::placeholder{color:var(--text-tertiary)}.workflow-id-badge{padding:4px 8px;background:var(--bg-hover);border-radius:4px;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-tertiary)}.toolbar-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.toolbar-btn svg{flex-shrink:0}.toolbar-btn:hover{background:var(--bg-hover);border-color:var(--border-active);color:var(--text-primary)}.toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.toolbar-btn-primary{background:#6366f1;border-color:#6366f1;color:#fff}.toolbar-btn-primary:hover{background:#4c4fef;border-color:#4c4fef;color:#fff}.toolbar-message{position:absolute;top:100%;right:0;margin-top:8px;padding:8px 12px;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:6px;color:#10b981;font-size:10px;font-weight:500;white-space:nowrap;animation:slideDown .2s ease-out}.workflow-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#09090bcc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.workflow-modal{width:500px;max-width:90vw;max-height:80vh;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.workflow-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.workflow-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.modal-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.workflow-modal-content{flex:1;overflow-y:auto;padding:16px}.workflow-modal-content::-webkit-scrollbar{width:6px;height:6px}.workflow-modal-content::-webkit-scrollbar-track{background:var(--bg-body)}.workflow-modal-content::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.workflow-modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.workflow-list-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;color:var(--text-tertiary)}.workflow-list-loading .spin{animation:spin 1s linear infinite}.workflow-list-error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;color:#ef4444}.workflow-list-error button{padding:8px 16px;background:#ef4444;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s ease}.workflow-list-error button:hover{background:#eb1515}.workflow-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:var(--text-tertiary)}.workflow-list-empty p{margin:0;font-size:14px;font-weight:500;color:var(--text-secondary)}.workflow-list-empty span{font-size:12px}.workflow-list{display:flex;flex-direction:column;gap:8px}.workflow-list-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s ease}.workflow-list-item:hover{border-color:#6366f1;background:#6366f10d}.workflow-item-main{flex:1;min-width:0}.workflow-item-name{font-size:12px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-item-desc{font-size:10px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.workflow-item-meta{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.workflow-item-stats{display:flex;gap:12px}.workflow-item-stats .stat,.workflow-item-date{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-tertiary)}.workflow-item-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-tertiary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.workflow-item-delete:hover{background:#ef44441a;border-color:#ef444433;color:#ef4444}.workflow-item-delete:disabled{opacity:.5;cursor:not-allowed}.workflow-item-delete .spin{animation:spin 1s linear infinite}.toolbar-btn-deploy{background:#10b981;border-color:#10b981;color:#fff}.toolbar-btn-deploy:hover:not(:disabled){background:#0ea271;border-color:#0ea271;color:#fff}.toolbar-btn-deploy:disabled{opacity:.5;cursor:not-allowed}.deployment-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#09090bcc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease-out}.deployment-modal{width:520px;max-width:90vw;max-height:80vh;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:scaleIn .2s ease-out}.deployment-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.deployment-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.deployment-modal-content{flex:1;overflow-y:auto;padding:16px}.deployment-modal-content::-webkit-scrollbar{width:6px;height:6px}.deployment-modal-content::-webkit-scrollbar-track{background:var(--bg-body)}.deployment-modal-content::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}.deployment-modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.deployment-modal-footer{padding:16px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end}.deployment-modal-footer .btn-primary{padding:8px 20px;background:#6366f1;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s ease}.deployment-modal-footer .btn-primary:hover{background:#4c4fef}.deployment-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;color:var(--text-tertiary)}.deployment-loading .spin{animation:spin 1s linear infinite}.deployment-loading p{margin:0;font-size:14px;font-weight:500;color:var(--text-secondary)}.deployment-loading span{font-size:12px}.deployment-summary{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:12px;font-weight:500}.deployment-summary.success{background:#10b9811a;border:1px solid rgba(16,185,129,.2);color:#10b981}.deployment-summary.has-errors{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444}.deployment-results{display:flex;flex-direction:column;gap:8px}.deployment-result-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:6px;transition:all .15s ease}.deployment-result-item.success{border-color:#10b9814d}.deployment-result-item.error{border-color:#ef44444d;background:#ef44440d}.deployment-result-item.pending{opacity:.6}.result-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:#fff;flex-shrink:0}.result-info{flex:1;min-width:0}.result-name{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-type{font-size:10px;color:var(--text-tertiary)}.result-status{display:flex;align-items:center;flex-shrink:0}.result-status .spin{animation:spin 1s linear infinite;color:var(--text-tertiary)}.result-status .status-success{color:#10b981}.result-status .status-error{color:#ef4444}.result-status .status-pending{font-size:10px;color:var(--text-tertiary)}.result-link{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-tertiary);text-decoration:none;transition:all .15s ease;flex-shrink:0}.result-link:hover{background:var(--bg-hover);border-color:#6366f1;color:#6366f1}.deployment-errors{margin-top:16px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:6px}.deployment-errors h4{margin:0 0 8px;font-size:12px;font-weight:600;color:#ef4444}.error-item{display:flex;align-items:flex-start;gap:8px;padding:8px 0;font-size:10px;color:#ef4444}.error-item svg{flex-shrink:0;margin-top:2px}.error-item:not(:last-child){border-bottom:1px solid rgba(239,68,68,.2)}.workflow-node.deployed{border-color:#10b981}.workflow-node.deployed:after{content:"";position:absolute;top:-4px;right:-4px;width:12px;height:12px;background:#10b981;border:2px solid var(--bg-card);border-radius:50%}.workflow-node.is-real{border-color:#6366f1}.workflow-node.is-real .workflow-node-header{background:#6366f126}.palette-submenu{display:flex;flex-direction:column;gap:4px;margin-left:12px;margin-bottom:8px;padding-left:8px;border-left:2px solid var(--border-subtle)}.palette-subitem{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-size:10px;cursor:pointer;transition:all .15s ease}.palette-subitem:hover{background:var(--bg-hover);border-color:#6366f1;color:var(--text-primary)}.palette-subitem .status-badge{font-size:10px;padding:1px 6px}.palette-empty{padding:8px;color:var(--text-tertiary);font-size:10px;font-style:italic}.palette-section-info{margin-top:auto;padding-top:12px;border-top:1px solid var(--border-subtle)}.palette-hint{font-size:10px;color:var(--text-tertiary);line-height:1.4}.node-domains{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.node-domain-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:9999px;font-size:10px;color:#10b981}.node-domain-pill svg{opacity:.7}.node-domain-more{font-size:10px;color:var(--text-tertiary);padding:2px 4px}.node-detail-private-url{display:flex;align-items:center;gap:4px;margin-top:8px;padding:4px 8px;background:#22d3ee1a;border-radius:4px}.node-detail-private-url svg{color:#22d3ee;flex-shrink:0}.node-detail-private-url .node-detail-value{font-size:10px;color:#22d3ee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-btn-overview{background:#22d3ee26!important;border-color:#22d3ee4d!important;color:#22d3ee!important}.toolbar-btn-overview:hover:not(:disabled){background:#22d3ee40!important;border-color:#22d3ee!important}.form-value{padding:8px 12px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:6px;font-size:12px;color:var(--text-primary)}.form-value.status-badge{display:inline-flex;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:500;text-transform:capitalize}.form-value.status-running{background:#10b9811a;border-color:#10b98133;color:#10b981}.form-value.status-stopped{background:var(--bg-body);border-color:var(--border-subtle);color:var(--text-tertiary)}.form-value.status-error{background:#ef44441a;border-color:#ef444433;color:#ef4444}.form-value-link{display:flex;align-items:center;gap:8px;cursor:pointer;color:#6366f1}.form-value-link:hover{text-decoration:underline}.form-value-link svg:last-child{opacity:.5;margin-left:auto}.form-domains{display:flex;flex-direction:column;gap:8px}.form-domain-item{display:flex;align-items:center;gap:8px;padding:8px;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:6px;font-size:12px}.form-domain-item svg{color:#10b981}.form-domain-item .ssl-badge{margin-left:auto;padding:2px 6px;background:#10b9811a;border-radius:4px;font-size:10px;font-weight:500;color:#10b981}.action-buttons{display:flex;gap:8px;flex-wrap:wrap}.action-buttons .btn{flex:1;min-width:70px}.action-message{margin-top:8px;padding:8px;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:4px;font-size:10px;color:#10b981;text-align:center}.btn-block{width:100%;justify-content:center}.git-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.git-page .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.git-page .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.git-page .page-header .page-header-actions{display:flex;gap:8px}.git-page .page-loading{display:flex;justify-content:center;align-items:center;min-height:400px}.git-page .empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;background:var(--bg-card);border-radius:12px;text-align:center}.git-page .empty-state-large .empty-icon{color:var(--text-tertiary);margin-bottom:24px}.git-page .empty-state-large h2{margin:0 0 12px;font-size:24px;font-weight:600}.git-page .empty-state-large p{margin:0 0 24px;color:var(--text-secondary);max-width:400px}.git-page .resource-warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;padding:20px;margin-bottom:24px;text-align:left;max-width:500px}.git-page .resource-warning .warning-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#f59e0b}.git-page .resource-warning .warning-header strong{color:var(--text-primary)}.git-page .resource-warning ul{margin:0;padding-left:20px;color:var(--text-secondary);font-size:12px}.git-page .resource-warning ul li{margin-bottom:4px}.git-page .resource-warning ul li:last-child{margin-bottom:0}.git-page .resource-warning ul li strong{color:var(--text-primary)}.git-page .status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.git-page .status-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--bg-card);border-radius:12px;border-left:4px solid var(--border-subtle)}.git-page .status-card.success{border-left-color:#10b981}.git-page .status-card.success .status-icon{color:#10b981}.git-page .status-card.danger{border-left-color:#ef4444}.git-page .status-card.danger .status-icon{color:#ef4444}.git-page .status-card.warning{border-left-color:#f59e0b}.git-page .status-card.warning .status-icon{color:#f59e0b}.git-page .status-card .status-icon{color:var(--text-tertiary)}.git-page .status-card .status-info{display:flex;flex-direction:column;gap:4px}.git-page .status-card .status-info .status-label{font-size:12px;color:var(--text-secondary)}.git-page .status-card .status-info .status-value{font-size:18px;font-weight:600}.git-page .tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-subtle)}.git-page .tabs .tab{padding:12px 20px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;position:relative;transition:color .15s ease}.git-page .tabs .tab:hover{color:var(--text-primary)}.git-page .tabs .tab.active{color:#6366f1}.git-page .tabs .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#6366f1}.git-page .tab-content .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.git-page .tab-content .section-header h3{margin:0;font-size:16px;font-weight:600}.git-page .overview-tab{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 768px){.git-page .overview-tab{grid-template-columns:1fr}}.git-page .overview-tab .info-card{background:var(--bg-card);border-radius:8px;padding:20px}.git-page .overview-tab .info-card h3{margin:0 0 16px;font-size:16px;font-weight:600}.git-page .overview-tab .info-grid{display:grid;gap:12px}.git-page .overview-tab .info-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.git-page .overview-tab .info-item:last-child{border-bottom:none}.git-page .overview-tab .info-item .info-label{font-size:12px;color:var(--text-secondary)}.git-page .overview-tab .info-item .info-value{font-size:12px;font-weight:500}.git-page .overview-tab .info-item .info-value.text-success{color:#10b981}.git-page .overview-tab .info-item .info-value.text-danger{color:#ef4444}.git-page .overview-tab .info-item .info-value.code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;background:var(--bg-hover);padding:4px 8px;border-radius:4px}.git-page .overview-tab .info-item .info-value a{color:#6366f1;text-decoration:none}.git-page .overview-tab .info-item .info-value a:hover{text-decoration:underline}.git-page .overview-tab .quick-actions{display:flex;gap:12px;flex-wrap:wrap}.git-page .access-tab{display:flex;flex-direction:column;gap:16px}.git-page .access-tab .info-card{background:var(--bg-card);border-radius:8px;padding:20px}.git-page .access-tab .info-card h3{margin:0 0 8px;font-size:16px;font-weight:600}.git-page .access-tab .info-card .text-muted{color:var(--text-secondary);font-size:12px;margin:0 0 16px}.git-page .access-tab .access-url{display:flex;align-items:center;gap:12px;background:var(--bg-hover);padding:12px 16px;border-radius:6px;margin-bottom:12px}.git-page .access-tab .access-url code{flex:1;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:#6366f1;word-break:break-all}.git-page .access-tab .ssh-note{font-size:12px;color:var(--text-secondary);padding:12px;background:#3b82f61a;border-radius:6px;border-left:3px solid #3b82f6}.git-page .access-tab .ssh-note strong{color:var(--text-primary)}.git-page .settings-tab{display:flex;flex-direction:column;gap:16px}.git-page .settings-tab .info-card{background:var(--bg-card);border-radius:8px;padding:20px}.git-page .settings-tab .info-card h3{margin:0 0 16px;font-size:16px;font-weight:600}.git-page .settings-tab .info-card.danger-zone{border:1px solid rgba(239,68,68,.3);background:#ef44440d}.git-page .settings-tab .info-card.danger-zone h3{color:#ef4444}.git-page .settings-tab .info-card.danger-zone .text-muted{color:var(--text-secondary);font-size:12px;margin:0}.git-page .settings-tab .settings-actions{display:flex;gap:12px}.git-page .modal-lg{max-width:500px}.git-page .install-warning{display:flex;gap:12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;padding:16px;margin-bottom:20px}.git-page .install-warning svg{flex-shrink:0;color:#3b82f6}.git-page .install-warning strong{display:block;margin-bottom:8px}.git-page .install-warning ul{margin:0;padding-left:16px;font-size:12px;color:var(--text-secondary)}.git-page .install-warning ul li{margin-bottom:4px}.git-page .required{color:#ef4444}.git-page .webhooks-tab .webhooks-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.git-page .webhooks-tab .webhooks-header h3{margin:0 0 4px;font-size:16px;font-weight:600}.git-page .webhooks-tab .webhooks-header .text-muted{color:var(--text-secondary);font-size:12px;margin:0}.git-page .webhooks-tab .loading-state{display:flex;justify-content:center;padding:40px}.git-page .webhooks-tab .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:var(--bg-card);border-radius:12px;text-align:center}.git-page .webhooks-tab .empty-state svg{color:var(--text-tertiary);margin-bottom:16px}.git-page .webhooks-tab .empty-state h4{margin:0 0 8px;font-size:18px;font-weight:600}.git-page .webhooks-tab .empty-state p{margin:0 0 20px;color:var(--text-secondary)}.git-page .webhooks-tab .webhooks-list{display:flex;flex-direction:column;gap:16px}.git-page .webhooks-tab .webhook-card{background:var(--bg-card);border-radius:8px;padding:20px;border:1px solid var(--border-subtle);transition:border-color .15s ease}.git-page .webhooks-tab .webhook-card:hover{border-color:var(--border-default)}.git-page .webhooks-tab .webhook-card.inactive{opacity:.7;background:var(--bg-hover)}.git-page .webhooks-tab .webhook-card .webhook-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.git-page .webhooks-tab .webhook-card .webhook-header .webhook-info{display:flex;align-items:center;gap:12px}.git-page .webhooks-tab .webhook-card .webhook-header .webhook-info h4{margin:0;font-size:16px;font-weight:600}.git-page .webhooks-tab .webhook-card .webhook-header .webhook-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.git-page .webhooks-tab .webhook-card .webhook-header .webhook-status .status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}.git-page .webhooks-tab .webhook-card .webhook-header .webhook-status .status-dot.active{background:#10b981}.git-page .webhooks-tab .webhook-card .webhook-header .webhook-status .status-dot.inactive{background:var(--text-tertiary)}.git-page .webhooks-tab .webhook-card .webhook-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;padding:16px;background:var(--bg-hover);border-radius:6px}.git-page .webhooks-tab .webhook-card .webhook-details .detail-item{display:flex;flex-direction:column;gap:4px}.git-page .webhooks-tab .webhook-card .webhook-details .detail-item .label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.git-page .webhooks-tab .webhook-card .webhook-details .detail-item .value{font-size:12px;color:var(--text-primary);word-break:break-all}.git-page .webhooks-tab .webhook-card .webhook-actions{display:flex;gap:8px;flex-wrap:wrap}.git-page .webhooks-tab .source-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:500;text-transform:uppercase}.git-page .webhooks-tab .source-badge.github{background:#33333326;color:#333}@media (prefers-color-scheme: dark){.git-page .webhooks-tab .source-badge.github{background:#f0f0f026;color:#f0f0f0}}.git-page .webhooks-tab .source-badge.gitlab{background:#fc6d2626;color:#fc6d26}.git-page .webhooks-tab .source-badge.bitbucket{background:#0052cc26;color:#0052cc}.git-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 640px){.git-page .form-row{grid-template-columns:1fr}}.git-page .form-group.checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:400}.git-page .form-group.checkbox label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.git-page .secret-warning{display:flex;align-items:center;gap:12px;padding:16px;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:6px;margin-bottom:16px}.git-page .secret-warning svg{color:#f59e0b;flex-shrink:0}.git-page .secret-warning span{font-weight:500}.git-page .secret-display{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-hover);border-radius:6px;margin-bottom:16px}.git-page .secret-display code{flex:1;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;word-break:break-all}.git-page .repositories-tab .repos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.git-page .repositories-tab .repos-header h3{margin:0;font-size:16px;font-weight:600}.git-page .repositories-tab .loading-state{display:flex;justify-content:center;padding:40px}.git-page .repositories-tab .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:var(--bg-card);border-radius:12px;text-align:center}.git-page .repositories-tab .empty-state svg{color:var(--text-tertiary);margin-bottom:16px}.git-page .repositories-tab .empty-state h4{margin:0 0 8px;font-size:18px;font-weight:600}.git-page .repositories-tab .empty-state p{margin:0 0 20px;color:var(--text-secondary)}.git-page .repositories-tab .repos-list{display:flex;flex-direction:column;gap:12px}.git-page .repositories-tab .repo-card{display:flex;align-items:center;padding:16px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-subtle);cursor:pointer;transition:all .15s ease}.git-page .repositories-tab .repo-card:hover{border-color:#6366f1;background:var(--bg-hover)}.git-page .repositories-tab .repo-card:hover .repo-arrow{color:#6366f1}.git-page .repositories-tab .repo-card .repo-info{flex:1;min-width:0}.git-page .repositories-tab .repo-card .repo-info .repo-name{display:flex;align-items:center;gap:8px;margin-bottom:8px}.git-page .repositories-tab .repo-card .repo-info .repo-name .owner{color:var(--text-secondary)}.git-page .repositories-tab .repo-card .repo-info .repo-name .name{font-weight:600}.git-page .repositories-tab .repo-card .repo-info .repo-name .badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500}.git-page .repositories-tab .repo-card .repo-info .repo-name .badge.private{background:#f59e0b33;color:#f59e0b}.git-page .repositories-tab .repo-card .repo-info .repo-name .badge.fork{background:#3b82f633;color:#3b82f6}.git-page .repositories-tab .repo-card .repo-info .repo-description{margin:0 0 8px;font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.git-page .repositories-tab .repo-card .repo-info .repo-meta{display:flex;align-items:center;gap:16px;font-size:10px;color:var(--text-tertiary)}.git-page .repositories-tab .repo-card .repo-info .repo-meta .meta-item{display:flex;align-items:center;gap:4px}.git-page .repositories-tab .repo-card .repo-info .repo-meta .meta-item svg{opacity:.6}.git-page .repositories-tab .repo-card .repo-info .repo-meta .meta-item.updated{margin-left:auto}.git-page .repositories-tab .repo-card .repo-arrow{color:var(--text-tertiary);transition:color .15s ease}.git-page .repositories-tab .repo-detail .repo-detail-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.git-page .repositories-tab .repo-detail .repo-detail-header .btn-ghost{padding:8px}.git-page .repositories-tab .repo-detail .repo-detail-header .repo-title{flex:1}.git-page .repositories-tab .repo-detail .repo-detail-header .repo-title h3{margin:0 0 4px;font-size:18px;font-weight:600}.git-page .repositories-tab .repo-detail .repo-detail-header .repo-title p{margin:0;font-size:12px;color:var(--text-secondary)}.git-page .repositories-tab .repo-detail .repo-detail-header .branch-selector select{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:6px;font-size:12px;color:var(--text-primary);cursor:pointer}.git-page .repositories-tab .repo-detail .repo-detail-header .branch-selector select:focus{outline:none;border-color:#6366f1}.git-page .repositories-tab .repo-detail .repo-detail-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border-subtle)}.git-page .repositories-tab .repo-detail .repo-detail-tabs .tab{display:flex;align-items:center;gap:8px;padding:12px 16px;background:none;border:none;font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;position:relative;transition:color .15s ease}.git-page .repositories-tab .repo-detail .repo-detail-tabs .tab:hover{color:var(--text-primary)}.git-page .repositories-tab .repo-detail .repo-detail-tabs .tab.active{color:#6366f1}.git-page .repositories-tab .repo-detail .repo-detail-tabs .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#6366f1}.git-page .repositories-tab .repo-detail .repo-detail-content{background:var(--bg-card);border-radius:8px;border:1px solid var(--border-subtle)}.git-page .repositories-tab .files-browser .breadcrumb{display:flex;align-items:center;padding:12px 16px;background:var(--bg-hover);border-bottom:1px solid var(--border-subtle);font-size:12px}.git-page .repositories-tab .files-browser .breadcrumb button{background:none;border:none;color:#6366f1;cursor:pointer;padding:0}.git-page .repositories-tab .files-browser .breadcrumb button:hover{text-decoration:underline}.git-page .repositories-tab .files-browser .breadcrumb .separator{margin:0 8px;color:var(--text-tertiary)}.git-page .repositories-tab .files-browser .files-list .file-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);transition:background .15s ease}.git-page .repositories-tab .files-browser .files-list .file-item:last-child{border-bottom:none}.git-page .repositories-tab .files-browser .files-list .file-item.dir{cursor:pointer}.git-page .repositories-tab .files-browser .files-list .file-item.dir:hover{background:var(--bg-hover)}.git-page .repositories-tab .files-browser .files-list .file-item .file-icon{color:var(--text-tertiary)}.git-page .repositories-tab .files-browser .files-list .file-item.dir .file-icon svg{color:#3b82f6}.git-page .repositories-tab .files-browser .files-list .file-item .file-name{flex:1;font-size:12px}.git-page .repositories-tab .files-browser .files-list .file-item .file-size{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.git-page .repositories-tab .commits-list .commit-item{display:flex;align-items:flex-start;gap:16px;padding:16px;border-bottom:1px solid var(--border-subtle)}.git-page .repositories-tab .commits-list .commit-item:last-child{border-bottom:none}.git-page .repositories-tab .commits-list .commit-item .commit-info{flex:1;min-width:0}.git-page .repositories-tab .commits-list .commit-item .commit-info .commit-message{font-size:12px;font-weight:500;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.git-page .repositories-tab .commits-list .commit-item .commit-info .commit-meta{font-size:10px;color:var(--text-tertiary)}.git-page .repositories-tab .commits-list .commit-item .commit-info .commit-meta .author{color:var(--text-secondary);margin-right:8px}.git-page .repositories-tab .commits-list .commit-item .commit-sha code{padding:4px 8px;background:var(--bg-hover);border-radius:4px;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1}.git-page .repositories-tab .commits-list .btn-block{width:100%;margin:16px;width:calc(100% - 32px)}.git-page .repositories-tab .branches-list .branch-item{display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid var(--border-subtle)}.git-page .repositories-tab .branches-list .branch-item:last-child{border-bottom:none}.git-page .repositories-tab .branches-list .branch-item.active{background:#6366f10d}.git-page .repositories-tab .branches-list .branch-item .branch-info{flex:1}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-name{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;margin-bottom:4px}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-name svg{color:var(--text-tertiary)}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-name .badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-name .badge.default{background:#10b98133;color:#10b981}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-name .badge.protected{background:#f59e0b33;color:#f59e0b}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-commit{font-size:10px;color:var(--text-tertiary)}.git-page .repositories-tab .branches-list .branch-item .branch-info .branch-commit code{color:#6366f1;margin-right:8px}.git-page .deployments-tab .deployments-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.git-page .deployments-tab .deployments-header h3{margin:0 0 4px;font-size:16px;font-weight:600}.git-page .deployments-tab .deployments-header .text-muted{color:var(--text-secondary);font-size:12px;margin:0}.git-page .deployments-tab .loading-state{display:flex;justify-content:center;padding:40px}.git-page .deployments-tab .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:var(--bg-card);border-radius:12px;text-align:center}.git-page .deployments-tab .empty-state svg{color:var(--text-tertiary);margin-bottom:16px}.git-page .deployments-tab .empty-state h4{margin:0 0 8px;font-size:18px;font-weight:600}.git-page .deployments-tab .empty-state p{margin:0 0 20px;color:var(--text-secondary)}.git-page .deployments-tab .deployments-list{display:flex;flex-direction:column;gap:16px}.git-page .deployments-tab .deployment-card{background:var(--bg-card);border-radius:8px;padding:20px;border:1px solid var(--border-subtle);border-left:4px solid var(--border-subtle)}.git-page .deployments-tab .deployment-card.success{border-left-color:#10b981}.git-page .deployments-tab .deployment-card.failed{border-left-color:#ef4444}.git-page .deployments-tab .deployment-card.running{border-left-color:#f59e0b}.git-page .deployments-tab .deployment-card .deployment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version{display:flex;align-items:center;gap:12px}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .version{font-size:18px;font-weight:600}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .badge.rollback{background:#3b82f633;color:#3b82f6}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .status-badge{padding:4px 8px;border-radius:6px;font-size:10px;font-weight:500;text-transform:uppercase}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .status-badge.success{background:#10b98126;color:#10b981}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .status-badge.failed{background:#ef444426;color:#ef4444}.git-page .deployments-tab .deployment-card .deployment-header .deployment-version .status-badge.running{background:#f59e0b26;color:#f59e0b}.git-page .deployments-tab .deployment-card .deployment-header .deployment-time{font-size:12px;color:var(--text-tertiary)}.git-page .deployments-tab .deployment-card .deployment-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;padding:16px;background:var(--bg-hover);border-radius:6px}.git-page .deployments-tab .deployment-card .deployment-details .detail-item{display:flex;align-items:center;gap:8px;font-size:12px}.git-page .deployments-tab .deployment-card .deployment-details .detail-item .label{color:var(--text-tertiary)}.git-page .deployments-tab .deployment-card .deployment-details .detail-item .value{color:var(--text-primary)}.git-page .deployments-tab .deployment-card .deployment-details .detail-item code{padding:2px 8px;background:var(--bg-card);border-radius:4px;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1}.git-page .deployments-tab .deployment-card .deployment-details .detail-item.commit-message{grid-column:1 / -1}.git-page .deployments-tab .deployment-card .deployment-details .detail-item.commit-message .message{color:var(--text-secondary);font-style:italic}.git-page .deployments-tab .deployment-card .deployment-details .detail-item.error{grid-column:1 / -1;color:#ef4444}.git-page .deployments-tab .deployment-card .deployment-details .detail-item.error .value{color:#ef4444}.git-page .deployments-tab .deployment-card .deployment-actions{display:flex;gap:8px;flex-wrap:wrap}.git-page .form-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-subtle)}.git-page .form-section h4{margin:0 0 4px;font-size:14px;font-weight:600}.git-page .form-section .text-muted{color:var(--text-secondary);font-size:12px;margin:0 0 16px}.git-page .form-hint{display:block;font-size:10px;color:var(--text-tertiary);margin-top:4px}.git-page .form-group textarea{width:100%;min-height:80px;padding:12px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);resize:vertical}.git-page .form-group textarea:focus{outline:none;border-color:#6366f1}.git-page .form-group textarea::placeholder{color:var(--text-tertiary)}.git-page .modal-xl{max-width:800px}.git-page .deployment-summary{display:flex;flex-wrap:wrap;gap:16px;padding:16px;background:var(--bg-hover);border-radius:6px;margin-bottom:16px}.git-page .deployment-summary .summary-item{display:flex;align-items:center;gap:8px;font-size:12px}.git-page .deployment-summary .summary-item .label{color:var(--text-tertiary)}.git-page .deployment-summary .summary-item .status-badge{padding:4px 8px;border-radius:6px;font-size:10px;font-weight:500;text-transform:uppercase}.git-page .deployment-summary .summary-item .status-badge.success{background:#10b98126;color:#10b981}.git-page .deployment-summary .summary-item .status-badge.failed{background:#ef444426;color:#ef4444}.git-page .deployment-summary .summary-item .status-badge.running{background:#f59e0b26;color:#f59e0b}.git-page .deployment-summary .summary-item code{padding:2px 8px;background:var(--bg-card);border-radius:4px;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1}.git-page .deployment-error{padding:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;margin-bottom:16px;color:#ef4444;font-size:12px}.git-page .deployment-error strong{margin-right:8px}.git-page .log-section{margin-bottom:16px}.git-page .log-section h4{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-secondary)}.git-page .log-section .log-output{padding:16px;background:var(--bg-hover);border-radius:6px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-primary);white-space:pre-wrap;word-break:break-all;max-height:300px;overflow-y:auto;margin:0}.git-page .no-logs{padding:24px;text-align:center;color:var(--text-tertiary)}.servers-page{padding:0}.servers-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}@media (max-width: 1024px){.servers-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.servers-stats{grid-template-columns:1fr}}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:20px;display:flex;align-items:center;gap:16px}.stat-icon{width:48px;height:48px;border-radius:6px;display:flex;align-items:center;justify-content:center}.stat-icon svg{width:24px;height:24px}.stat-icon.total{background:#6366f126;color:#6366f1}.stat-icon.online{background:#10b9811a;color:#10b981}.stat-icon.offline{background:#ef44441a;color:#ef4444}.stat-icon.connecting{background:#f59e0b1a;color:#f59e0b}.stat-content .stat-value{font-family:Fira Code,Monaco,Consolas,monospace;font-size:24px;font-weight:700;color:var(--text-primary)}.stat-content .stat-label{font-size:12px;color:var(--text-tertiary)}.servers-toolbar{display:flex;gap:16px;margin-bottom:24px}@media (max-width: 640px){.servers-toolbar{flex-direction:column}}.search-box{position:relative;flex:1}.search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary)}.search-box input{width:100%;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:12px 12px 12px 40px;color:var(--text-primary);font-size:12px}.search-box input::placeholder{color:var(--text-tertiary)}.search-box input:focus{outline:none;border-color:#6366f1}.group-filter select{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:12px 16px;color:var(--text-primary);font-size:12px;min-width:160px}.group-filter select:focus{outline:none;border-color:#6366f1}.servers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.server-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.server-card:hover{border-color:var(--border-active)}.server-card.online:hover{border-color:#10b981;box-shadow:0 0 0 1px #10b98133}.server-card.offline{opacity:.8}.server-card-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-subtle)}.server-status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.server-info{flex:1;min-width:0}.server-info .server-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-info .server-hostname{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.server-actions-dropdown .btn-icon{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:8px;border-radius:4px}.server-actions-dropdown .btn-icon:hover{color:var(--text-primary);background:var(--bg-hover)}.server-card-body{padding:16px}.server-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-item .meta-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.meta-item .meta-value{font-size:12px;color:var(--text-secondary)}.server-metrics-mini{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.metric-bar{display:flex;align-items:center;gap:8px}.metric-bar .metric-label{font-size:10px;color:var(--text-tertiary);width:32px}.metric-bar .bar-track{flex:1;height:4px;background:var(--bg-secondary);border-radius:9999px;overflow:hidden}.metric-bar .bar-fill{height:100%;border-radius:9999px;transition:width .2s ease}.metric-bar .bar-fill.cpu{background:#6366f1}.metric-bar .bar-fill.memory{background:#10b981}.metric-bar .bar-fill.disk{background:#f59e0b}.metric-bar .metric-value{font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-tertiary);width:32px;text-align:right}.server-group-badge{display:inline-flex;align-items:center;gap:4px;background:var(--bg-hover);color:var(--text-secondary);font-size:10px;padding:4px 8px;border-radius:4px}.server-card-footer{display:flex;gap:8px;padding:12px 16px;background:var(--bg-hover);border-top:1px solid var(--border-subtle)}.server-card-footer .btn{flex:1;justify-content:center}.server-card-footer .btn-sm{padding:8px 12px;font-size:10px}.empty-state{text-align:center;padding:64px 24px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.empty-state .empty-icon{width:64px;height:64px;color:var(--text-tertiary);margin-bottom:16px}.empty-state h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.empty-state p{color:var(--text-secondary);margin:0 0 24px}.server-detail-page{padding:0}.page-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:12px}.page-breadcrumb a{color:var(--text-tertiary);text-decoration:none}.page-breadcrumb a:hover{color:var(--text-primary)}.page-breadcrumb .breadcrumb-separator{color:var(--text-tertiary)}.page-breadcrumb span:last-child{color:var(--text-secondary)}.server-title{display:flex;align-items:center;gap:12px}.server-title h1{margin:0}.status-dot{width:12px;height:12px;border-radius:50%}.status-dot.large{width:14px;height:14px}.server-detail-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-subtle);padding-bottom:0}.tab-btn{background:transparent;border:none;color:var(--text-tertiary);font-size:12px;font-weight:500;padding:12px 16px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--text-primary);border-bottom-color:#6366f1}.overview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 1024px){.overview-grid{grid-template-columns:1fr}}.info-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:20px}.info-card h3{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px}.info-list{display:flex;flex-direction:column;gap:12px}.info-item{display:flex;justify-content:space-between;align-items:center}.info-item .info-label{font-size:12px;color:var(--text-tertiary)}.info-item .info-value{font-size:12px;color:var(--text-primary)}.info-item .info-value.mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:500;text-transform:capitalize}.status-badge.online{background:#10b9811a;color:#10b981}.status-badge.offline{background:#ef44441a;color:#ef4444}.status-badge.connecting{background:#f59e0b1a;color:#f59e0b}.status-badge.pending{background:var(--bg-secondary);color:var(--text-tertiary)}.metrics-card{grid-column:span 2}@media (max-width: 1024px){.metrics-card{grid-column:span 1}}.resource-meters{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media (max-width: 768px){.resource-meters{grid-template-columns:1fr}}.resource-meter .resource-header{display:flex;justify-content:space-between;margin-bottom:8px}.resource-meter .resource-header .resource-label{font-size:12px;color:var(--text-secondary)}.resource-meter .resource-header .resource-value{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary)}.resource-meter .resource-bar{height:8px;background:var(--bg-secondary);border-radius:9999px;overflow:hidden}.resource-meter .resource-bar .resource-fill{height:100%;border-radius:9999px;transition:width .2s ease}.offline-card{grid-column:span 2}@media (max-width: 1024px){.offline-card{grid-column:span 1}}.offline-message{text-align:center;padding:24px}.offline-message svg{color:var(--text-tertiary);margin-bottom:16px}.offline-message h4{font-size:18px;color:var(--text-primary);margin:0 0 8px}.offline-message p{color:var(--text-secondary);margin:0}.offline-notice{text-align:center;padding:48px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.offline-notice svg{color:var(--text-tertiary);margin-bottom:16px}.offline-notice h4{font-size:18px;color:var(--text-primary);margin:0 0 8px}.offline-notice p{color:var(--text-secondary);margin:0}.docker-tab{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden}.docker-sub-tabs{display:flex;border-bottom:1px solid var(--border-subtle);padding:0 16px}.sub-tab{background:transparent;border:none;color:var(--text-tertiary);font-size:12px;padding:16px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.sub-tab:hover{color:var(--text-primary)}.sub-tab.active{color:var(--text-primary);border-bottom-color:#6366f1}.containers-list,.images-list{padding:16px}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:12px;border-bottom:1px solid var(--border-subtle)}.data-table td{padding:12px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.data-table tr:last-child td{border-bottom:none}.data-table .container-name{display:block;color:var(--text-primary);font-weight:500}.data-table .container-id{display:block;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-tertiary)}.data-table .mono{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px}.status-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:500}.status-pill.running{background:#10b9811a;color:#10b981}.status-pill.stopped{background:var(--bg-secondary);color:var(--text-tertiary)}.actions-cell{display:flex;gap:4px;justify-content:flex-end}.btn-icon{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:8px;border-radius:4px;display:flex;align-items:center;justify-content:center}.btn-icon:hover{color:var(--text-primary);background:var(--bg-hover)}.btn-icon.success{color:#10b981}.btn-icon.success:hover{background:#10b9811a}.btn-icon.danger{color:#ef4444}.btn-icon.danger:hover{background:#ef44441a}.empty-list{text-align:center;padding:32px;color:var(--text-tertiary)}.metrics-tab{padding:0}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media (max-width: 1024px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.metrics-grid{grid-template-columns:1fr}}.metric-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:20px}.metric-card.large{display:flex;flex-direction:column;align-items:center}.metric-card h3{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px;text-align:center}.metric-gauge{display:flex;justify-content:center;margin-bottom:16px}.circular-gauge{width:120px;height:120px}.circular-gauge .gauge-bg{fill:none;stroke:var(--bg-secondary);stroke-width:8}.circular-gauge .gauge-fill{fill:none;stroke-width:8;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center}.circular-gauge .gauge-text{font-family:Fira Code,Monaco,Consolas,monospace;font-size:20px;font-weight:700;fill:var(--text-primary);text-anchor:middle;dominant-baseline:middle}.metric-details{width:100%}.detail-item{display:flex;justify-content:space-between;padding:8px 0;font-size:12px;border-top:1px solid var(--border-subtle)}.detail-item:first-child{border-top:none}.detail-item span:first-child{color:var(--text-tertiary)}.detail-item span:last-child{color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace}.network-stats,.docker-stats{display:flex;flex-direction:column;gap:16px}.net-stat,.docker-stat{display:flex;align-items:center;gap:12px}.net-stat svg,.docker-stat svg{color:var(--text-tertiary)}.net-stat span:first-of-type,.docker-stat span:first-of-type{color:var(--text-tertiary);font-size:12px;flex:1}.net-stat .value,.docker-stat .value{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary)}.settings-tab{max-width:600px}.settings-form{margin-bottom:32px}.form-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:24px;margin-bottom:24px}.form-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.form-section .section-description{color:var(--text-secondary);font-size:12px;margin-bottom:16px}.form-section.danger-zone{border-color:#ef444433}.form-section.danger-zone h3{color:#ef4444}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 640px){.form-row{grid-template-columns:1fr}}.permissions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (max-width: 640px){.permissions-grid{grid-template-columns:1fr}}.permission-checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.permission-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1}.permission-checkbox:hover{color:var(--text-primary)}.install-instructions{padding:16px 0}.success-banner{display:flex;align-items:center;gap:12px;background:#10b9811a;color:#10b981;padding:16px;border-radius:6px;margin-bottom:24px}.success-banner svg{flex-shrink:0}.install-tabs{display:flex;flex-direction:column;gap:16px}.install-tab{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}.install-tab-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-hover);border-bottom:1px solid var(--border-subtle)}.install-tab-header svg{color:var(--text-tertiary)}.install-tab-header span{flex:1;font-size:12px;font-weight:500;color:var(--text-primary)}.install-script{padding:16px;margin:0;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-secondary);background:var(--bg-body);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.install-info{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-subtle)}.install-info h4{font-size:12px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.install-info ol{margin:0 0 16px;padding-left:20px;color:var(--text-secondary);font-size:12px}.install-info li{margin-bottom:8px}.install-info .text-muted{color:var(--text-tertiary);font-size:10px}.group-form{display:flex;gap:12px;margin-bottom:20px}.group-form input{flex:1;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:12px;color:var(--text-primary);font-size:12px}.group-form input::placeholder{color:var(--text-tertiary)}.group-form input:focus{outline:none;border-color:#6366f1}.groups-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.group-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px}.group-item input{flex:1;background:var(--bg-card);border:1px solid #6366f1;border-radius:4px;padding:8px;color:var(--text-primary);font-size:12px}.group-item input:focus{outline:none}.group-item .group-name{flex:1;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-primary)}.group-item .group-name svg{color:var(--text-tertiary)}.group-item .group-count{font-size:10px;color:var(--text-tertiary)}.group-item .group-actions{display:flex;gap:4px}.empty-groups{text-align:center;padding:24px;color:var(--text-tertiary);font-size:12px}.downloads-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.downloads-page .page-header .page-header-content h1{margin-bottom:8px}.downloads-page .page-header .page-header-content .page-subtitle{color:var(--text-secondary);font-size:14px;max-width:600px}.downloads-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;color:var(--text-secondary)}.downloads-page .loading-container .loading-spinner{width:40px;height:40px;border:3px solid var(--border-default);border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.downloads-page .alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:16px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between}.downloads-page .alert-error p{color:#ef4444;margin:0}.downloads-page .alert-error button{background:transparent;border:1px solid #ef4444;color:#ef4444;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s}.downloads-page .alert-error button:hover{background:#ef4444;color:#f4f4f5}.downloads-page .version-banner{background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:8px;padding:24px;margin-bottom:32px;display:flex;justify-content:space-between;align-items:center;color:var(--text-primary)}.downloads-page .version-banner .version-info{display:flex;flex-direction:column;gap:4px}.downloads-page .version-banner .version-info .version-label{font-size:12px;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.downloads-page .version-banner .version-info .version-number{font-size:30px;font-weight:700}.downloads-page .version-banner .version-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.downloads-page .version-banner .version-meta span{font-size:12px;opacity:.9}.downloads-page .version-banner .version-meta .release-notes-link{color:#f4f4f5;text-decoration:underline;font-size:12px;opacity:.9;transition:opacity .2s}.downloads-page .version-banner .version-meta .release-notes-link:hover{opacity:1}.downloads-page .downloads-section{margin-bottom:40px}.downloads-page .downloads-section h2{font-size:20px;font-weight:600;margin-bottom:8px}.downloads-page .downloads-section .section-description{color:var(--text-secondary);margin-bottom:24px}.downloads-page .downloads-section .section-description code{background:var(--bg-secondary);padding:4px 8px;border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px}.downloads-page .download-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.downloads-page .download-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:16px;transition:all .2s}.downloads-page .download-card:hover{border-color:#6366f1;box-shadow:0 0 0 1px #6366f1}.downloads-page .download-card.unavailable{opacity:.5}.downloads-page .download-card.unavailable:hover{border-color:var(--border-default);box-shadow:none}.downloads-page .download-card .platform-header{display:flex;align-items:center;gap:12px}.downloads-page .download-card .platform-header .platform-icon{width:40px;height:40px;color:var(--text-primary)}.downloads-page .download-card .platform-header .platform-info h3{font-size:18px;font-weight:600;margin:0}.downloads-page .download-card .platform-header .platform-info .platform-arch{font-size:12px;color:var(--text-secondary)}.downloads-page .download-card .download-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.downloads-page .download-card .download-btn svg{width:18px;height:18px}.downloads-page .install-commands{display:flex;flex-direction:column;gap:16px}.downloads-page .command-block{background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.downloads-page .command-block .command-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-default);background:var(--bg-elevated)}.downloads-page .command-block .command-header .platform-icon{width:24px;height:24px;color:var(--text-primary)}.downloads-page .command-block .command-header h3{font-size:14px;font-weight:600;margin:0}.downloads-page .command-block .command-content{position:relative;padding:16px;background:var(--bg-body)}.downloads-page .command-block .command-content pre{margin:0;padding:0;background:transparent;overflow-x:auto}.downloads-page .command-block .command-content pre code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-all}.downloads-page .command-block .command-content .copy-btn{position:absolute;top:12px;right:12px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;padding:8px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.downloads-page .command-block .command-content .copy-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:#6366f1}.downloads-page .command-block .command-content .copy-btn svg{width:16px;height:16px}.downloads-page .command-block .command-note{padding:12px 16px;background:#f59e0b1a;color:#f59e0b;font-size:12px;margin:0;border-top:1px solid rgba(245,158,11,.2)}.downloads-page .manual-steps{display:flex;flex-direction:column;gap:16px}.downloads-page .step{display:flex;gap:16px;padding:16px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:8px}.downloads-page .step .step-number{flex-shrink:0;width:32px;height:32px;background:#6366f1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:var(--text-primary)}.downloads-page .step .step-content{flex:1}.downloads-page .step .step-content h4{font-size:14px;font-weight:600;margin:0 0 8px}.downloads-page .step .step-content p{color:var(--text-secondary);margin:0 0 8px;font-size:12px}.downloads-page .step .step-content p:last-child{margin-bottom:0}.downloads-page .step .step-content p code{background:var(--bg-secondary);padding:4px 8px;border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-primary)}.downloads-page .step .step-content pre{background:var(--bg-body);padding:12px;border-radius:6px;margin:8px 0;overflow-x:auto}.downloads-page .step .step-content pre code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);background:transparent;padding:0}.downloads-page .step .step-content .step-note{color:var(--text-tertiary);font-size:10px;font-style:italic}.downloads-page .verification-command{margin-top:16px}.downloads-page .verification-command pre{background:var(--bg-card);border:1px solid var(--border-default);padding:16px;border-radius:8px;margin:0}.downloads-page .verification-command pre code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary)}@keyframes spin{to{transform:rotate(360deg)}}.wordpress-standalone-page .empty-state-large .empty-icon svg{stroke:#21759b}.wordpress-standalone-page .status-card.success{border-left-color:#10b981}.wordpress-standalone-page .status-card.success .status-icon{color:#10b981}.wordpress-standalone-page .status-card.danger{border-left-color:#ef4444}.wordpress-standalone-page .status-card.danger .status-icon{color:#ef4444}.wordpress-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding:16px 16px 0;flex-wrap:wrap;gap:16px}.wordpress-page .page-header .page-header-content h1{font-size:24px;font-weight:600;margin:0 0 4px}.wordpress-page .page-header .page-header-content .page-description{color:var(--text-secondary);margin:0}.wordpress-page .page-header .page-header-actions{display:flex;gap:8px}.wordpress-page .empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;background:var(--bg-card);border-radius:12px;text-align:center;margin:0 16px}.wordpress-page .empty-state-large .empty-icon{color:var(--text-tertiary);margin-bottom:24px}.wordpress-page .empty-state-large .empty-icon svg{stroke:#21759b}.wordpress-page .empty-state-large h2{margin:0 0 12px;font-size:24px;font-weight:600}.wordpress-page .empty-state-large p{margin:0 0 24px;color:var(--text-secondary);max-width:460px}.wordpress-page .install-warning{display:flex;gap:12px;padding:16px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:6px;margin-bottom:16px}.wordpress-page .install-warning>svg{flex-shrink:0;color:#f59e0b;margin-top:2px}.wordpress-page .install-warning strong{display:block;margin-bottom:8px}.wordpress-page .install-warning ul{margin:0;padding-left:16px;color:var(--text-secondary);font-size:12px}.wordpress-page .install-warning ul li{margin-bottom:4px}.wordpress-page .form-hint{display:block;font-size:10px;color:var(--text-tertiary);margin-top:4px}.wordpress-page .docker-empty .wp-empty-icon{color:var(--text-tertiary);margin-bottom:16px}.wordpress-page .docker-empty .wp-empty-icon svg{stroke:currentColor}.wp-sites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;padding:16px}.wp-site-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s ease}.wp-site-card:hover{border-color:var(--border-hover);box-shadow:0 4px 12px #00000014}.wp-site-card-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-subtle)}.wp-site-icon{width:40px;height:40px;background:linear-gradient(135deg,#21759b,#1a5f7f);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.wp-site-info{flex:1;min-width:0}.wp-site-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-site-url{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.wp-site-status{display:flex;align-items:center;gap:6px;font-size:10px;padding:4px 10px;border-radius:9999px;font-weight:500}.wp-site-status .status-dot{width:6px;height:6px;border-radius:50%}.wp-site-status.running{background:#10b9811f;color:#10b981}.wp-site-status.running .status-dot{background:#10b981}.wp-site-status.stopped{background:#71717a1f;color:var(--text-tertiary)}.wp-site-status.stopped .status-dot{background:var(--text-tertiary)}.wp-site-card-body{padding:16px}.wp-site-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.wp-site-meta-item .meta-label{display:block;font-size:10px;color:var(--text-tertiary);margin-bottom:2px}.wp-site-meta-item .meta-value{font-size:12px;color:var(--text-primary);font-weight:500}.wp-site-meta-item .meta-value.git-connected{color:#10b981}.wp-site-badge{display:inline-block;font-size:10px;font-weight:500;padding:2px 8px;border-radius:4px;margin-top:12px}.wp-site-badge.production{background:#ef44441f;color:#ef4444}.wp-site-badge.development{background:#22d3ee1f;color:#22d3ee}.wp-site-card-links{display:flex;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.wp-site-link{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:500;color:#6366f1;text-decoration:none}.wp-site-link:hover{text-decoration:underline}.wp-site-card-footer{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.wp-site-card-footer .btn{flex:1;justify-content:center}.wp-site-card-footer .btn.btn-danger{flex:0;color:#ef4444}.wp-site-card-footer .btn.btn-danger:hover{background:#ef44441a}.wp-detail-page .wp-icon{background:linear-gradient(135deg,#21759b,#1a5f7f)!important}.environments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:16px}.wp-env-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.wp-env-card.production{border-color:#ef44444d;border-left:3px solid #ef4444}.wp-env-card.stale{border-color:#f59e0b66;background:#f59e0b08}.wp-env-status-group{display:flex;align-items:center;gap:8px}.wp-env-stale-badge{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:500;padding:2px 8px;border-radius:4px;background:#f59e0b26;color:#f59e0b}.wp-env-stale-badge svg{flex-shrink:0}.text-warning{color:#f59e0b!important}.wp-env-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-subtle)}.wp-env-info{display:flex;align-items:center;gap:12px}.wp-env-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.wp-env-badge.env-production{background:#ef44441f;color:#ef4444}.wp-env-badge.env-staging{background:#f59e0b1f;color:#f59e0b}.wp-env-badge.env-development{background:#22d3ee1f;color:#22d3ee}.wp-env-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.wp-env-status{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:500}.wp-env-status .status-dot{width:6px;height:6px;border-radius:50%}.wp-env-status.running{color:#10b981}.wp-env-status.running .status-dot{background:#10b981}.wp-env-status.stopped{color:var(--text-tertiary)}.wp-env-status.stopped .status-dot{background:var(--text-tertiary)}.wp-env-body{padding:16px}.wp-env-url{margin-bottom:12px}.wp-env-url a{font-size:12px;color:#6366f1;font-family:Fira Code,Monaco,Consolas,monospace}.wp-env-url a:hover{text-decoration:underline}.wp-env-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.wp-env-meta-item .meta-label{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-tertiary);margin-bottom:2px}.wp-env-meta-item .meta-value{font-size:12px;color:var(--text-primary)}.wp-env-meta-item .meta-value.mono{font-family:Fira Code,Monaco,Consolas,monospace}.wp-env-footer{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.wp-snapshot-table .snapshot-name-cell{display:flex;flex-direction:column;gap:2px}.wp-snapshot-table .snapshot-name{font-weight:500;color:var(--text-primary)}.wp-snapshot-table .snapshot-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#22d3ee;background:#22d3ee1a;padding:2px 6px;border-radius:4px;width:fit-content}.wp-snapshot-table .snapshot-desc{font-size:10px;color:var(--text-tertiary)}.wp-snapshot-table .compressed-badge{display:inline-block;font-size:10px;background:#10b9811a;color:#10b981;padding:1px 4px;border-radius:3px;margin-left:8px}.wp-snapshot-table .git-context{display:flex;align-items:center;gap:6px;color:var(--text-secondary)}.wp-snapshot-table .git-context svg{color:var(--text-tertiary)}.wp-snapshot-table .git-context .commit-msg{font-size:10px;color:var(--text-tertiary);margin-left:8px}.git-connect-form{max-width:600px}.git-connect-form h4{margin:0 0 8px}.git-connect-form .hint{color:var(--text-tertiary);margin-bottom:16px}.git-connected-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:20px;max-width:600px}.git-connected-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.git-connected-header>svg{color:#10b981;flex-shrink:0}.git-connected-header h4{margin:0 0 4px;font-size:14px}.git-repo-url{font-size:12px;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-secondary)}.git-repo-url:hover{color:#6366f1}.git-connected-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px;background:var(--bg-tertiary);border-radius:6px;margin-bottom:16px}.git-meta-item .meta-label{display:block;font-size:10px;color:var(--text-tertiary);margin-bottom:2px}.git-meta-item .meta-value{font-size:12px;color:var(--text-primary)}.git-meta-item .meta-value.mono{font-family:Fira Code,Monaco,Consolas,monospace}.git-connected-actions{display:flex;justify-content:flex-end}.commit-list{display:flex;flex-direction:column;gap:4px;max-width:800px}.commit-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;transition:all .15s ease}.commit-item:hover{border-color:var(--border-hover)}.commit-item.current{border-color:#10b98166;background:#10b9810a}.commit-icon{color:var(--text-tertiary);margin-top:2px}.commit-icon .current-icon{color:#10b981}.commit-info{flex:1;min-width:0}.commit-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.commit-sha{font-size:12px;font-weight:500;color:var(--text-secondary)}.current-badge{font-size:10px;background:#10b981;color:#fff;padding:1px 6px;border-radius:4px}.commit-date{font-size:10px;color:var(--text-tertiary);margin-left:auto}.commit-message{font-size:12px;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commit-author{font-size:10px;color:var(--text-tertiary)}.commit-actions{display:flex;gap:8px;flex-shrink:0}.commit-message-preview{font-style:italic;color:var(--text-secondary);padding:12px;background:var(--bg-tertiary);border-radius:6px;margin:12px 0}.git-commits-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-subtle)}.quick-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-action-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.quick-action-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.hint-box{padding:16px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:6px;margin-top:16px}.hint-box p{margin:0;color:var(--text-secondary);font-size:12px}.hint-box p:not(:last-child){margin-bottom:8px}.empty-state-small{padding:24px;text-align:center;color:var(--text-tertiary)}.empty-state-small p{margin:0}.empty-state-small p:not(:last-child){margin-bottom:8px}.empty-state-small .hint{font-size:12px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.wp-site-card-skeleton-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-subtle)}.wp-site-card-skeleton-icon{width:40px;height:40px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton-info{flex:1;display:flex;flex-direction:column;gap:8px}.wp-site-card-skeleton-name{width:60%;height:16px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton-url{width:80%;height:12px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton-status{width:64px;height:24px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton-body{padding:16px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.wp-site-card-skeleton-meta{display:flex;flex-direction:column;gap:4px}.wp-site-card-skeleton-label{width:50%;height:10px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton-value{width:70%;height:14px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-site-card-skeleton-footer{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.wp-site-card-skeleton-btn{flex:1;height:32px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-env-card-skeleton{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.wp-env-card-skeleton-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-subtle)}.wp-env-card-skeleton-badge{width:60px;height:20px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-env-card-skeleton-status{width:64px;height:20px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-env-card-skeleton-body{padding:16px}.wp-env-card-skeleton-url{width:70%;height:14px;margin-bottom:12px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-env-card-skeleton-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.wp-env-card-skeleton-meta-item .skeleton-label{width:40%;height:10px;margin-bottom:4px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-env-card-skeleton-meta-item .skeleton-value{width:60%;height:14px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.wp-env-card-skeleton-footer{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.docker-stat-card-skeleton{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px}.docker-stat-card-skeleton-label{width:60%;height:12px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.docker-stat-card-skeleton-value{width:40%;height:28px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.docker-stat-card-skeleton-meta{width:80%;height:12px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.skeleton-table-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.skeleton-table-row .skeleton-cell{height:16px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.skeleton-table-row .skeleton-cell.cell-name{width:25%}.skeleton-table-row .skeleton-cell.cell-tag{width:15%}.skeleton-table-row .skeleton-cell.cell-size{width:10%}.skeleton-table-row .skeleton-cell.cell-date{width:15%}.skeleton-table-row .skeleton-cell.cell-actions{width:20%;margin-left:auto}.tab-loading{display:flex;flex-direction:column;gap:16px;padding:16px}.tab-loading-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tab-loading-title{width:120px;height:24px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.tab-loading-btn{width:140px;height:36px;background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(39,39,42,.5) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.error-boundary,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;min-height:200px}.error-boundary-icon,.error-state-icon{color:#ef4444;margin-bottom:16px;padding:12px;background:#ef44441a;border-radius:50%}.error-boundary h3,.error-state-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.error-boundary-message,.error-state-message{font-size:12px;color:var(--text-secondary);margin:0 0 16px;max-width:400px}.error-state-compact{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:6px;color:#ef4444;font-size:12px}.error-state-compact svg{flex-shrink:0}.error-state-compact span{flex:1}.error-state-compact .btn{flex-shrink:0}.confirm-dialog-details{margin-top:12px;padding:12px;background:var(--bg-tertiary);border-radius:6px;font-size:12px;color:var(--text-secondary);text-align:left}.confirm-dialog-details ul{margin:0;padding-left:16px}.confirm-dialog-details ul li{margin-bottom:4px}.confirm-dialog-details ul li:last-child{margin-bottom:0}.confirm-dialog-details strong{color:var(--text-primary)}.confirm-dialog-details code{background:var(--bg-tertiary);padding:2px 6px;border-radius:3px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.9em}.env-preview-url{display:flex;align-items:center;gap:8px;padding:12px;background:#10b98114;border:1px solid rgba(16,185,129,.2);border-radius:6px;margin-bottom:16px}.env-preview-url .preview-label{font-size:10px;color:var(--text-secondary)}.env-preview-url .preview-url{font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:#10b981;font-weight:500}.form-hint-domain code{background:var(--bg-tertiary);padding:2px 6px;border-radius:3px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.9em}.confirm-dialog-input{margin-top:16px;text-align:left}.confirm-dialog-input label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:8px}.confirm-dialog-input label strong{color:var(--text-primary);font-family:Fira Code,Monaco,Consolas,monospace}.confirm-dialog-input input{width:100%;padding:12px;border:1px solid var(--border-subtle);border-radius:6px;font-size:14px;background:var(--bg-card);color:var(--text-primary)}.confirm-dialog-input input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.confirm-dialog-input input::placeholder{color:var(--text-tertiary)}.resource-gate{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:24px}.resource-gate-container{max-width:700px;text-align:center}.resource-gate-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:#f59e0b1f;border-radius:50%;color:#f59e0b;margin-bottom:20px}.resource-gate-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 12px}.resource-gate-description{font-size:14px;color:var(--text-secondary);margin:0 0 24px;line-height:1.6}.resource-gate-description strong{color:#f59e0b;font-weight:600}.resource-gate-specs{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px}@media (max-width: 600px){.resource-gate-specs{flex-direction:column;gap:12px}}.resource-gate-spec-arrow{color:var(--text-tertiary)}@media (max-width: 600px){.resource-gate-spec-arrow{transform:rotate(90deg)}}.resource-gate-spec-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;min-width:200px}.resource-gate-spec-card.current{border-color:#ef444466;background:#ef44440a}.resource-gate-spec-card.required{border-color:#10b98166;background:#10b9810a}.resource-gate-spec-header{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.resource-gate-spec-items{display:flex;flex-direction:column;gap:8px}.resource-gate-spec-item{display:flex;align-items:center;gap:8px;font-size:12px}.resource-gate-spec-item svg{color:var(--text-tertiary);flex-shrink:0}.resource-gate-spec-item .spec-label{color:var(--text-secondary);flex:1}.resource-gate-spec-item .spec-value{font-weight:600;color:#10b981;font-family:Fira Code,Monaco,Consolas,monospace}.resource-gate-spec-item .spec-value.insufficient{color:#ef4444}.resource-gate-recommendation{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin-bottom:24px;text-align:left}.resource-gate-recommendation h4{font-size:12px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.resource-gate-recommendation p{font-size:12px;color:var(--text-secondary);margin:0;line-height:1.5}.resource-gate-recommendation p strong{color:var(--text-primary)}.resource-gate-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 600px){.resource-gate-tiers{grid-template-columns:1fr}}.resource-gate-tier{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:12px;text-align:center}.resource-gate-tier.current{border-color:#f59e0b;background:#f59e0b0f}.resource-gate-tier .tier-name{font-size:12px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.resource-gate-tier .tier-specs{font-size:10px;color:var(--text-tertiary);margin-bottom:8px}.resource-gate-tier .tier-wp{font-size:10px;font-weight:500;color:#ef4444;padding:2px 8px;background:#ef44441a;border-radius:4px;display:inline-block}.resource-gate-tier .tier-wp.allowed{color:#10b981;background:#10b9811a}.page-loading{display:flex;align-items:center;justify-content:center;min-height:400px}.wp-projects-page{padding:16px}.wp-projects-page .page-header{margin-bottom:24px}.wp-projects-page .page-header-content h1{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.wp-projects-page .page-description{font-size:12px;color:var(--text-tertiary);margin:0}.wp-projects-page .empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;background:var(--bg-card);border-radius:12px;text-align:center}.wp-projects-page .empty-state-large .empty-icon{color:var(--text-tertiary);margin-bottom:16px}.wp-projects-page .empty-state-large h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.wp-projects-page .empty-state-large p{font-size:12px;color:var(--text-secondary);max-width:460px;margin:0}.wp-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.wp-project-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;transition:all .15s ease}.wp-project-card:hover{border-color:var(--border-hover);box-shadow:0 4px 12px #00000014}.wp-project-card-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--border-subtle)}.wp-project-info{flex:1;min-width:0}.wp-project-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.wp-project-domain{font-size:10px;color:var(--text-tertiary);font-family:Fira Code,Monaco,Consolas,monospace}.wp-project-card-body{padding:16px}.wp-project-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.wp-project-meta-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.wp-project-meta-item svg{color:var(--text-tertiary)}.wp-project-env-badges{display:flex;gap:4px}.wp-project-card-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.wp-project-card-cta{font-size:12px;font-weight:500;color:#6366f1}.wp-project-page .wp-icon{background:linear-gradient(135deg,#21759b,#1a5f7f)!important}.pipeline-tab{padding:16px 0}.pipeline-operation-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#22d3ee1a;border:1px solid rgba(34,211,238,.25);border-radius:6px;margin-bottom:16px;font-size:12px;color:#22d3ee}.pipeline-view{margin-bottom:24px}.pipeline-row{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding-bottom:8px}.pipeline-card{flex:1;min-width:220px;max-width:320px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;position:relative}.pipeline-card.production{border-color:#ef44444d;border-left:3px solid #ef4444}.pipeline-card.locked{opacity:.85}.pipeline-card.empty{border-style:dashed;border-color:var(--border-subtle);display:flex;align-items:center;justify-content:center;min-height:180px}.pipeline-empty-content{text-align:center;color:var(--text-tertiary)}.pipeline-empty-content p{margin:8px 0 0;font-size:12px}.pipeline-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.env-status-badge-group{display:flex;align-items:center;gap:8px}.env-locked-badge{display:flex;align-items:center;padding:2px 4px;background:#f59e0b26;color:#f59e0b;border-radius:4px}.pipeline-card-menu-wrapper{position:relative}.pipeline-card-menu-btn{padding:4px!important}.pipeline-card-menu{position:absolute;right:0;top:100%;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:0 8px 24px #0003;z-index:100;min-width:140px;padding:4px}.pipeline-card-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:4px;text-align:left}.pipeline-card-menu button:hover{background:var(--bg-hover);color:var(--text-primary)}.pipeline-card-menu button.danger{color:#ef4444}.pipeline-card-menu button.danger:hover{background:#ef44441a}.pipeline-card-body{flex:1;padding:16px}.pipeline-card-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.pipeline-card-domain{display:block;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1;margin-bottom:8px;text-decoration:none}.pipeline-card-domain:hover{text-decoration:underline}.pipeline-card-meta{display:flex;flex-wrap:wrap;gap:8px}.pipeline-meta-item{font-size:10px;color:var(--text-tertiary)}.pipeline-card-footer{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.pipeline-card-lock-banner{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#f59e0b1a;font-size:10px;color:#f59e0b;border-radius:0 0 8px 8px}.pipeline-arrow{display:flex;align-items:center;justify-content:center;min-width:80px;padding:0 8px}.pipeline-arrow.disabled{opacity:.3;pointer-events:none}.pipeline-arrow-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .15s ease}.pipeline-arrow-btn:hover:not(:disabled){border-color:#6366f1;color:#6366f1;background:#6366f10d}.pipeline-arrow-btn:disabled{cursor:not-allowed;opacity:.4}.pipeline-arrow-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.pipeline-sync-row{display:flex;gap:0;margin-top:8px}.pipeline-sync-row .pipeline-sync-action{flex:1;min-width:220px;max-width:320px;display:flex;justify-content:center}.pipeline-multidev-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--border-subtle)}.pipeline-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pipeline-section-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.pipeline-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#6366f11f;color:#6366f1;border-radius:10px;font-size:11px;font-weight:700;text-transform:none;letter-spacing:0}.pipeline-multidev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.pipeline-multidev-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:8px;text-align:center}.pipeline-multidev-empty>svg{color:var(--text-tertiary);margin-bottom:12px}.pipeline-multidev-empty p{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0 0 4px}.pipeline-multidev-empty>span{font-size:12px;color:var(--text-tertiary);margin-bottom:16px}.multidev-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;transition:border-color .15s ease}.multidev-card:hover{border-color:var(--border-hover)}.multidev-card.locked{opacity:.85}.multidev-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.multidev-card-header-left{display:flex;align-items:center;gap:8px}.multidev-lock-icon{color:#f59e0b}.multidev-card-menu-wrapper{position:relative}.multidev-card-body{padding:12px 16px}.multidev-card-name{font-size:12px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.multidev-branch{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 8px;border-radius:4px;margin-bottom:8px}.multidev-domain{display:block;font-size:10px;font-family:Fira Code,Monaco,Consolas,monospace;color:#6366f1;text-decoration:none;margin-bottom:8px}.multidev-domain:hover{text-decoration:underline}.multidev-card-meta{display:flex;flex-wrap:wrap;gap:8px}.multidev-meta-item{font-size:10px;color:var(--text-tertiary)}.multidev-card-footer{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.wp-env-badge.env-multidev{background:#6366f11f;color:#6366f1}.branch-selected{display:flex;align-items:center;gap:8px;padding:12px;background:#6366f114;border:1px solid rgba(99,102,241,.25);border-radius:6px}.branch-selected svg{color:#6366f1;flex-shrink:0}.branch-selected-name{flex:1;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;font-weight:500;color:var(--text-primary)}.branch-picker-loading{display:flex;align-items:center;gap:8px;padding:16px;justify-content:center;color:var(--text-tertiary);font-size:12px}.branch-picker{border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}.branch-picker-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-tertiary)}.branch-picker-search svg{color:var(--text-tertiary);flex-shrink:0}.branch-picker-search input{flex:1;border:none;background:none;font-size:12px;color:var(--text-primary);outline:none;padding:0}.branch-picker-search input::placeholder{color:var(--text-tertiary)}.branch-picker-list{max-height:240px;overflow-y:auto}.branch-picker-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 12px;border:none;border-bottom:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;text-align:left;transition:background .1s ease}.branch-picker-item:last-child{border-bottom:none}.branch-picker-item:hover:not(:disabled){background:var(--bg-hover)}.branch-picker-item:disabled{opacity:.5;cursor:not-allowed}.branch-picker-item.has-env{background:#71717a08}.branch-picker-item-main{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-primary)}.branch-picker-item-main svg{color:var(--text-tertiary);flex-shrink:0}.branch-name{font-family:Fira Code,Monaco,Consolas,monospace;font-weight:500}.branch-tag{font-size:10px;font-weight:500;padding:1px 6px;border-radius:4px;background:#71717a1a;color:var(--text-tertiary)}.branch-tag.env{background:#6366f11a;color:#6366f1}.branch-picker-item-meta{display:flex;align-items:center;gap:8px;padding-left:20px}.branch-picker-item-meta .branch-sha{font-family:Fira Code,Monaco,Consolas,monospace;font-size:11px;color:var(--text-tertiary)}.branch-picker-item-meta .branch-msg{font-size:11px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branch-picker-empty{padding:16px;text-align:center;font-size:12px;color:var(--text-tertiary)}.branch-picker-custom{width:100%;border-top:1px solid var(--border-subtle);border-radius:0 0 6px 6px;justify-content:center;color:#6366f1!important}.promote-direction,.sync-direction{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:var(--bg-tertiary);border-radius:6px;margin-bottom:16px}.promote-env-pill{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;min-width:120px}.promote-env-pill .promote-env-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.promote-env-pill .promote-env-name{font-size:12px;color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.promote-env-pill.production .promote-env-type{color:#ef4444}.promote-env-pill.staging .promote-env-type{color:#f59e0b}.promote-env-pill.development .promote-env-type{color:#22d3ee}.promote-env-pill.multidev .promote-env-type{color:#6366f1}.promote-arrow{color:var(--text-tertiary);flex-shrink:0}.promote-warning,.sync-warning{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:6px;margin-top:16px;font-size:12px;color:var(--text-secondary)}.promote-warning>svg,.sync-warning>svg{color:#f59e0b;flex-shrink:0;margin-top:2px}.promote-warning strong,.sync-warning strong{color:var(--text-primary)}.promote-warning p,.sync-warning p{margin:4px 0 0}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-label{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:all .15s ease}.radio-label:hover{border-color:var(--border-hover);background:var(--bg-hover)}.radio-label:has(input:checked){border-color:#6366f1;background:#6366f10d}.radio-label input[type=radio]{margin-top:4px;accent-color:var(--color-primary, #3b82f6)}.radio-content{display:flex;flex-direction:column;gap:2px}.radio-content strong{font-size:12px;color:var(--text-primary)}.radio-content span{font-size:10px;color:var(--text-tertiary)}.checkbox-group{display:flex;flex-direction:column;gap:8px}.activity-feed{display:flex;flex-direction:column;gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden}.activity-feed.compact .activity-item{padding:8px 12px}.activity-feed-empty{padding:24px;text-align:center;color:var(--text-tertiary);font-size:12px}.activity-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card)}.activity-item-skeleton{display:flex;align-items:center;gap:12px;padding:12px 16px}.activity-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;flex-shrink:0}.activity-icon.success{background:#10b9811f;color:#10b981}.activity-icon.danger{background:#ef44441f;color:#ef4444}.activity-icon.warning{background:#f59e0b1f;color:#f59e0b}.activity-icon.info{background:#22d3ee1f;color:#22d3ee}.activity-icon.primary{background:#6366f11f;color:#6366f1}.activity-icon.default{background:#71717a1f;color:var(--text-tertiary)}.activity-content{flex:1;min-width:0}.activity-description{font-size:12px;color:var(--text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-error{font-size:10px;color:#ef4444;display:block;margin-top:2px}.activity-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.activity-time{font-size:10px;color:var(--text-tertiary);white-space:nowrap}.activity-status-badge{font-size:10px;font-weight:500;padding:2px 6px;border-radius:4px}.activity-status-badge.failed{background:#ef44441f;color:#ef4444}.activity-status-badge.running{background:#22d3ee1f;color:#22d3ee}.activity-load-more{background:var(--bg-card);padding:12px;text-align:center;width:100%;justify-content:center}.pipeline-activity-preview{margin-top:24px}.pipeline-logs-overlay{position:fixed;bottom:0;right:0;width:600px;max-width:100%;height:400px;z-index:200;box-shadow:-4px -4px 24px #0000004d;border-radius:8px 8px 0 0;overflow:hidden}@media (max-width: 768px){.pipeline-logs-overlay{width:100%}}.container-logs-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-body);border:1px solid var(--border-subtle);border-radius:8px 8px 0 0}.container-logs-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated)}.container-logs-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-primary)}.container-logs-controls{display:flex;align-items:center;gap:8px}.logs-service-select,.logs-lines-select{padding:4px 8px;font-size:10px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-card);color:var(--text-primary)}.container-logs-body{flex:1;overflow-y:auto;background:var(--bg-body)}.logs-loading,.logs-empty{padding:24px;text-align:center;color:var(--text-tertiary);font-size:12px}.logs-content{margin:0;padding:12px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all}.log-line{padding:1px 0}.log-line:hover{background:#f4f4f50d}.compare-header{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--bg-tertiary);margin:0 -20px;padding:16px 20px}.compare-env-pill{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;min-width:120px}.compare-env-pill .compare-env-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.compare-env-pill .compare-env-name{font-size:12px;color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-env-pill.production .compare-env-type{color:#ef4444}.compare-env-pill.staging .compare-env-type{color:#f59e0b}.compare-env-pill.development .compare-env-type{color:#22d3ee}.compare-env-pill.multidev .compare-env-type{color:#6366f1}.compare-vs-icon{color:var(--text-tertiary);flex-shrink:0}.compare-body{padding:16px 0;max-height:60vh;overflow-y:auto}.compare-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;color:var(--text-tertiary);font-size:12px}.compare-error{text-align:center;padding:24px}.compare-error p{color:#ef4444;margin:0 0 12px}.compare-section{margin-bottom:16px}.compare-section:last-child{margin-bottom:0}.compare-section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px;margin-bottom:8px}.compare-section-header h4{margin:0;font-size:12px;font-weight:600;color:var(--text-primary)}.compare-section-summary{font-size:10px;color:var(--text-tertiary)}.compare-table{border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}.compare-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-subtle);font-size:12px;align-items:center}.compare-row:last-child{border-bottom:none}.compare-row.match .compare-row-icon{color:#10b981}.compare-row.different{background:#ef44440d}.compare-row.different .compare-row-icon{color:#ef4444}.compare-row.different .compare-row-value-a,.compare-row.different .compare-row-value-b{font-weight:500}.compare-row.only-a .compare-row-icon{color:#f59e0b}.compare-row.only-a .compare-row-value-b{opacity:.4}.compare-row.only-b .compare-row-icon{color:#f59e0b}.compare-row.only-b .compare-row-value-a{opacity:.4}.compare-row-label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary)}.compare-row-icon{flex-shrink:0}.compare-row-value-a,.compare-row-value-b{font-size:10px;color:var(--text-secondary);font-family:Fira Code,Monaco,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-na{color:var(--text-tertiary);font-style:italic}.compare-empty-row{padding:16px;text-align:center;font-size:12px;color:var(--text-tertiary)}.pipeline-compare-row{display:flex;gap:12px;justify-content:center;margin-top:8px;padding:8px 0}.pipeline-compare-btn{color:var(--text-tertiary)!important;font-size:10px!important}.pipeline-compare-btn:hover{color:#6366f1!important}.sanitization-profiles-body{padding:16px 0;max-height:60vh;overflow-y:auto}.sanitization-loading{display:flex;align-items:center;justify-content:center;padding:32px}.sanitization-profile-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.sanitization-profile-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:12px 16px;transition:border-color .15s ease}.sanitization-profile-card:hover{border-color:var(--border-hover)}.sanitization-profile-card.default{border-color:#6366f14d;border-left:3px solid #6366f1}.sanitization-profile-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sanitization-profile-card-title{display:flex;align-items:center;gap:8px}.sanitization-profile-card-title h5{margin:0;font-size:12px;font-weight:600;color:var(--text-primary)}.sanitization-tag{font-size:10px;font-weight:500;padding:1px 6px;border-radius:4px}.sanitization-tag.builtin{background:#71717a1a;color:var(--text-tertiary)}.sanitization-tag.default{background:#6366f11f;color:#6366f1}.sanitization-profile-card-actions{display:flex;gap:4px}.sanitization-profile-desc{font-size:10px;color:var(--text-secondary);margin:0 0 8px}.sanitization-rule-tags{display:flex;flex-wrap:wrap;gap:4px}.sanitization-rule-tag{font-size:10px;padding:2px 8px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-tertiary)}.sanitization-rule-tag.empty{font-style:italic}.sanitization-add-btn{width:100%;justify-content:center}.sanitization-editor{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:6px;padding:16px;margin-top:12px}.sanitization-editor h4{margin:0 0 12px;font-size:12px;font-weight:600;color:var(--text-primary)}.sanitization-editor .form-group{margin-bottom:12px}.sanitization-editor .form-group:last-of-type{margin-bottom:16px}.sanitization-editor-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--border-subtle)}.pipeline-card-checkbox{margin-right:4px;accent-color:var(--color-primary, #3b82f6)}.pipeline-card-menu-divider{height:1px;background:var(--border-subtle);margin:4px 0}.resource-limits-modal{max-width:480px}.resource-limits-env-name{font-size:12px;font-weight:600;color:var(--text-primary);padding-bottom:12px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.resource-limits-presets{display:flex;align-items:center;gap:8px;margin-bottom:16px}.resource-limits-presets-label{font-size:12px;color:var(--text-secondary)}.resource-preset-btn{text-transform:capitalize}.resource-limits-section{margin-bottom:16px}.resource-limits-section h4{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary);margin:0 0 12px}.resource-limits-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.resource-limits-row label{font-size:12px;color:var(--text-primary)}.resource-limits-row select{width:120px;padding:4px 8px;font-size:12px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-card);color:var(--text-primary)}.resource-limits-warning{display:flex;align-items:center;gap:8px;padding:12px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:6px;margin-top:12px;margin-bottom:12px;font-size:10px;color:#f59e0b}.basic-auth-modal{max-width:460px}.basic-auth-body{padding:16px 0}.basic-auth-env-name{font-size:12px;font-weight:600;color:var(--text-primary);padding-bottom:12px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.basic-auth-loading{display:flex;align-items:center;gap:8px;justify-content:center;padding:16px;color:var(--text-tertiary);font-size:12px}.basic-auth-toggle{margin-bottom:16px}.basic-auth-toggle-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.basic-auth-toggle-label span{font-size:12px;font-weight:500;color:var(--text-primary)}.basic-auth-description{font-size:10px;color:var(--text-tertiary);margin:4px 0 0}.toggle-switch{position:relative;width:44px;height:24px;border:none;border-radius:12px;background:var(--bg-tertiary);cursor:pointer;transition:background .2s ease;padding:0}.toggle-switch.active{background:var(--color-primary, #3b82f6)}.toggle-switch-slider{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s ease}.toggle-switch.active .toggle-switch-slider{transform:translate(20px)}.basic-auth-current{padding:12px;background:var(--bg-tertiary);border-radius:6px}.basic-auth-credentials{display:flex;flex-direction:column;gap:12px}.basic-auth-credential-warning{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:6px;font-size:10px;color:#f59e0b}.basic-auth-field{display:flex;flex-direction:column;gap:4px}.basic-auth-field label{font-size:10px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.basic-auth-value{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:4px}.basic-auth-value code{flex:1;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary)}.basic-auth-hint{font-size:10px;color:var(--text-tertiary);margin-top:8px}.wpcli-terminal-modal{max-width:700px;height:560px;display:flex;flex-direction:column}.wpcli-quick-actions{display:flex;flex-wrap:wrap;gap:4px;padding:8px 16px;border-bottom:1px solid var(--border-subtle);background:var(--bg-tertiary)}.wpcli-history{border-bottom:1px solid var(--border-subtle);max-height:200px;overflow-y:auto}.wpcli-history-item{display:block;width:100%;padding:8px 16px;border:none;background:none;text-align:left;cursor:pointer;border-bottom:1px solid var(--border-subtle)}.wpcli-history-item:last-child{border-bottom:none}.wpcli-history-item:hover{background:var(--bg-hover)}.wpcli-history-item code{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-primary)}.wpcli-output{flex:1;overflow-y:auto;padding:12px;background:var(--bg-body);font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;line-height:1.6}.wpcli-output-empty{color:var(--text-tertiary);text-align:center;padding:24px;font-size:12px}.wpcli-output-command{display:flex;gap:8px;color:#6366f1;margin-top:8px}.wpcli-output-command:first-child{margin-top:0}.wpcli-output-text{margin:0;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all}.wpcli-output-error{margin:0;color:#ef4444;white-space:pre-wrap;word-break:break-all}.wpcli-prompt{color:#10b981;font-weight:700;-webkit-user-select:none;user-select:none}.wpcli-executing{display:flex;align-items:center;gap:8px;padding:8px 0;color:var(--text-tertiary);font-size:10px}.wpcli-input-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border-subtle);background:var(--bg-elevated)}.wpcli-input{flex:1;border:none;background:none;font-family:Fira Code,Monaco,Consolas,monospace;font-size:12px;color:var(--text-primary);outline:none;padding:4px 0}.wpcli-input::placeholder{color:var(--text-tertiary)}.health-status-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:16px}.health-panel-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--text-tertiary);font-size:12px}.health-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.health-panel-header h4{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.health-panel-grid{display:flex;flex-direction:column;gap:12px}.health-panel-env{padding:12px;background:var(--bg-tertiary);border-radius:6px}.health-panel-env-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.health-panel-env-name{flex:1;font-size:12px;font-weight:600;color:var(--text-primary)}.health-panel-overall{font-size:10px;font-weight:500;padding:2px 8px;border-radius:4px}.health-panel-overall.health-healthy{background:#10b9811f;color:#10b981}.health-panel-overall.health-degraded{background:#f59e0b1f;color:#f59e0b}.health-panel-overall.health-unhealthy{background:#ef44441f;color:#ef4444}.health-panel-overall.health-unknown{background:#71717a1f;color:var(--text-tertiary)}.health-panel-checks{display:flex;flex-direction:column;gap:4px}.health-panel-check{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:10px}.health-panel-check-name{font-weight:500;color:var(--text-secondary);min-width:80px}.health-panel-check-msg{color:var(--text-tertiary)}.health-panel-empty{text-align:center;padding:24px;color:var(--text-tertiary);font-size:12px}.health-dot{flex-shrink:0}.disk-usage-compact{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--text-tertiary)}.disk-usage-compact-text{font-family:Fira Code,Monaco,Consolas,monospace}.disk-usage-bar-container{padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px}.disk-usage-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;color:var(--text-primary)}.disk-usage-total{font-weight:600;font-family:Fira Code,Monaco,Consolas,monospace}.disk-usage-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--bg-tertiary)}.disk-usage-segment{height:100%;transition:width .3s ease}.disk-usage-segment.wordpress.green{background:#10b981}.disk-usage-segment.wordpress.yellow{background:#f59e0b}.disk-usage-segment.wordpress.red{background:#ef4444}.disk-usage-segment.mysql{background:#22d3ee}.disk-usage-segment.snapshots{background:#71717a4d}.disk-usage-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.disk-usage-legend-item{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-tertiary)}.disk-usage-legend-dot{width:8px;height:8px;border-radius:2px}.disk-usage-legend-dot.wordpress{background:#10b981}.disk-usage-legend-dot.mysql{background:#22d3ee}.disk-usage-legend-dot.snapshots{background:#71717a4d}.auto-sync-modal{max-width:480px}.auto-sync-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--text-tertiary);font-size:12px}.auto-sync-body{padding:16px 0}.auto-sync-env-name{font-size:12px;font-weight:600;color:var(--text-primary);padding-bottom:12px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.auto-sync-toggle{margin-bottom:16px}.auto-sync-toggle-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.auto-sync-toggle-label span{font-size:12px;font-weight:500;color:var(--text-primary)}.auto-sync-description{font-size:10px;color:var(--text-tertiary);margin:4px 0 0}.auto-sync-presets{display:flex;flex-direction:column;gap:8px}.auto-sync-cron-display{font-family:Fira Code,Monaco,Consolas,monospace;font-size:10px;color:var(--text-tertiary)}.auto-sync-cron-input{font-family:Fira Code,Monaco,Consolas,monospace}.auto-sync-next-runs{margin-top:16px;padding:12px;background:var(--bg-tertiary);border-radius:6px}.auto-sync-next-runs h5{margin:0 0 8px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.auto-sync-next-runs ul{list-style:none;margin:0;padding:0}.auto-sync-next-runs li{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:10px;color:var(--text-secondary)}.auto-sync-next-runs li svg{color:var(--text-tertiary)}.bulk-actions-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:6px;margin-bottom:16px}.bulk-actions-info{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.bulk-actions-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;background:#6366f1;color:#fff;border-radius:12px;font-size:10px;font-weight:700}.bulk-actions-buttons{display:flex;gap:4px;flex:1}.bulk-actions-clear{color:var(--text-tertiary)!important}.bulk-actions-confirm{display:flex;align-items:center;gap:12px;width:100%}.bulk-actions-confirm span{flex:1;font-size:12px;color:var(--text-primary);font-weight:500}.operation-progress-content{flex:1;display:flex;flex-direction:column;gap:8px}.operation-progress{display:flex;flex-direction:column;gap:4px}.operation-progress-bar{height:4px;background:#22d3ee33;border-radius:2px;overflow:hidden}.operation-progress-fill{height:100%;background:#22d3ee;border-radius:2px;transition:width .3s ease}.operation-progress-step{font-size:10px;color:var(--text-tertiary)}.health-tab{padding:16px 0}@media (max-width: 900px){.pipeline-row{flex-direction:column;align-items:stretch}.pipeline-row .pipeline-card{max-width:none}.pipeline-arrow{min-width:auto;padding:8px 0}.pipeline-arrow .pipeline-arrow-btn{flex-direction:row}.pipeline-arrow svg{transform:rotate(90deg)}.pipeline-sync-row{flex-direction:column}.pipeline-sync-row .pipeline-sync-action{max-width:none}.bulk-actions-bar,.bulk-actions-buttons{flex-wrap:wrap}}.ssl-status-icon.warning{background:#f59e0b1a;color:#f59e0b}.ssl-cert-list{display:flex;flex-direction:column;gap:12px}.ssl-cert-item{display:flex;align-items:center;gap:20px;padding:16px 20px;background-color:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .2s ease;gap:16px}.ssl-cert-item:hover{border-color:var(--border-active)}@media (max-width: 768px){.ssl-cert-item{flex-wrap:wrap}}.ssl-cert-item-info{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:1;min-width:0}.ssl-cert-item-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#10b9811a;border-radius:8px;color:#10b981}.ssl-cert-item-icon.expiring{background:#f59e0b1a;color:#f59e0b}.ssl-cert-item-details{min-width:0}.ssl-cert-item-details h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.ssl-cert-item-meta{display:flex;align-items:center;justify-content:flex-start;gap:16px;font-size:12px;color:var(--text-tertiary);flex-wrap:wrap}.ssl-cert-item-meta span{display:flex;align-items:center;justify-content:flex-start;gap:4px}.ssl-cert-item-meta span.valid{color:#10b981}.ssl-cert-item-meta span.expiring{color:#f59e0b}.ssl-cert-item-status{flex-shrink:0}.ssl-cert-item-actions{display:flex;gap:8px;flex-shrink:0}.ssl-warning-banner{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:16px 20px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:12px;margin-top:24px;color:#f59e0b}.ssl-warning-banner div{flex:1;font-size:12px;color:var(--text-secondary)}.ssl-warning-banner div strong{color:#f59e0b}.ssl-warning-banner .btn{flex-shrink:0}.spin{animation:ssl-spin 1s linear infinite}@keyframes ssl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skeleton-box{background:var(--bg-hover);border-radius:6px;animation:ssl-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ssl-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.setup-wizard{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg-body)}.wizard-card{width:100%;max-width:700px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:40px}.wizard-header{text-align:center;margin-bottom:32px}.wizard-header .wizard-logo{width:48px;height:48px;margin:0 auto 16px}.wizard-header h1{font-size:24px;font-weight:700;margin-bottom:8px}.wizard-header p{color:var(--text-secondary)}.wizard-progress{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:32px}.wizard-progress-step{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9999px;font-size:12px;font-weight:600;border:2px solid var(--border-default);color:var(--text-tertiary);background:transparent;transition:all .2s ease}.wizard-progress-step.active{border-color:#6366f1;background:#6366f1;color:#fff}.wizard-progress-step.completed{border-color:#6366f1;background:#6366f126;color:#6366f1}.wizard-progress-line{width:40px;height:2px;background:var(--border-default);transition:background .2s ease}.wizard-progress-line.active{background:#6366f1}.wizard-step{animation:wizardFadeIn .3s ease}@keyframes wizardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-step-title{font-size:18px;font-weight:600;margin-bottom:8px}.wizard-step-description{color:var(--text-secondary);font-size:14px;margin-bottom:24px}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}@media (max-width: 640px){.option-grid{grid-template-columns:1fr}}.option-card{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative}.option-card:hover{border-color:var(--border-active)}.option-card.selected{border-color:#6366f1;background:#6366f114}.option-card .option-card-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-secondary);color:var(--text-secondary);border-radius:8px}.option-card .option-card-label{font-weight:600;font-size:14px}.option-card .option-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.5}.option-card .option-card-check{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:#6366f1;color:#fff;opacity:0;transform:scale(.5);transition:all .2s ease}.option-card.selected .option-card-check{opacity:1;transform:scale(1)}.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}@media (max-width: 768px){.tier-grid{grid-template-columns:1fr}}.tier-card{display:flex;flex-direction:column;padding:20px;background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:12px;transition:all .2s ease}.tier-card.detected{border-color:#6366f1;background:#6366f114}.tier-card .tier-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.tier-card .tier-card-name{font-weight:700;font-size:16px}.tier-card .tier-card-badge{font-size:10px;padding:2px 8px;background:#6366f1;color:#fff;border-radius:9999px;font-weight:500}.tier-card .tier-card-specs{font-size:12px;color:var(--text-secondary);margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-default)}.tier-card .tier-features{display:flex;flex-direction:column;gap:8px;flex:1}.tier-card .tier-feature{display:flex;align-items:center;gap:8px;font-size:12px}.tier-card .tier-feature .feature-icon{flex-shrink:0;width:16px;height:16px}.tier-card .tier-feature.available .feature-icon{color:#10b981}.tier-card .tier-feature.unavailable,.tier-card .tier-feature.unavailable .feature-icon{color:var(--text-tertiary)}.tier-warning{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:8px;margin-bottom:24px}.tier-warning .tier-warning-icon{flex-shrink:0;color:#f59e0b}.tier-warning .tier-warning-text{font-size:12px;color:var(--text-secondary);line-height:1.5}.summary-panel{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:12px;padding:24px;margin-bottom:24px}.summary-section:not(:last-child){margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--border-default)}.summary-section-title{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.summary-row .summary-label{color:var(--text-secondary);font-size:12px}.summary-row .summary-value{font-weight:500;font-size:12px}.summary-tags{display:flex;flex-wrap:wrap;gap:8px}.summary-tag{display:inline-flex;align-items:center;padding:4px 12px;background:#6366f11f;color:#6366f1;border-radius:9999px;font-size:12px;font-weight:500}.recommendation-chips{display:flex;flex-wrap:wrap;gap:8px}.recommendation-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;font-size:12px;color:var(--text-primary)}.wizard-nav{display:flex;justify-content:space-between;align-items:center;margin-top:32px;padding-top:24px;border-top:1px solid var(--border-default)}.btn-wizard-prev{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;background:none;color:var(--text-secondary);border-color:var(--border-default);background:transparent}.btn-wizard-prev:disabled{opacity:.6;cursor:not-allowed}.btn-wizard-prev:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-wizard-next{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;background:none;background:#6366f1;color:#fff;margin-left:auto}.btn-wizard-next:hover{background:#4f46e5}.btn-wizard-next:disabled{opacity:.6;cursor:not-allowed}.wizard-info-banner{display:flex;gap:16px;padding:16px;background:#6366f11a;border-radius:6px;margin-bottom:24px}.wizard-info-banner .wizard-info-icon{flex-shrink:0;color:#6366f1}.wizard-info-banner p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}.wizard-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary)}
