@import"https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&family=Oswald:wght@400;500;700&display=swap";.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{--paper: #eef3e9;--ink: #1f1f1f;--ink-soft: #4c5448;--edge: #c9d4be;--accent: #81d742;--accent-soft: #e8f8d8;--accent-deep: #6eb534;--signal: #1665cf;--danger: #af0000;--ink-rgb: 31, 31, 31;--accent-rgb: 129, 215, 66;--signal-rgb: 22, 101, 207;--danger-rgb: 175, 0, 0;--panel: rgba(255, 255, 255, .82);--panel-strong: rgba(255, 255, 255, .94);--shadow: 0 22px 45px rgba(19, 27, 15, .18);--radius: 18px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--touch-min: 44px}*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}#root:has(>.landing){overflow:auto}body{margin:0;font-family:Lato,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at 6% 9%,rgba(var(--accent-rgb),.24),transparent 44%),radial-gradient(circle at 94% 12%,rgba(var(--signal-rgb),.15),transparent 37%),linear-gradient(145deg,#f8fbf4,#edf3e7 46%,#e7eee0)}code{font-family:Lato,monospace;background:rgba(var(--ink-rgb),.08);border-radius:6px;padding:.1rem .35rem}.app-shell{position:fixed;top:0;right:0;bottom:0;left:0;padding:28px clamp(18px,4vw,40px);overflow:clip;display:flex;flex-direction:column}.bg-grid,.bg-glow{pointer-events:none;position:absolute}.bg-grid{top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(var(--ink-rgb),.06) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--ink-rgb),.06) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at center,black 35%,transparent 85%);mask-image:radial-gradient(circle at center,black 35%,transparent 85%)}.bg-glow{width:450px;height:450px;border-radius:50%;filter:blur(72px);opacity:.45}.bg-glow-a{top:-130px;right:-130px;background:radial-gradient(circle,var(--accent),transparent 68%)}.bg-glow-b{bottom:-180px;left:-150px;background:radial-gradient(circle,var(--signal),transparent 70%)}.chrome{position:relative;z-index:2;display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:24px;animation:rise-in .7s ease both}.brand-block{max-width:700px}.kicker{margin:0;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.brand-title{margin:6px 0 0;font-family:Oswald,sans-serif;font-size:clamp(1.75rem,3.8vw,3.15rem);letter-spacing:.01em;line-height:.96;font-weight:700;text-transform:uppercase}.chrome-right{display:flex;align-items:center;gap:12px}.panel-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:var(--panel-strong);border:1px solid rgba(var(--ink-rgb),.14);border-radius:12px;box-shadow:0 -8px 28px rgba(var(--ink-rgb),.12);padding:6px;display:flex;flex-direction:column;z-index:200;animation:rise-in .15s ease both}.panel-dropdown-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;text-decoration:none;font-size:.84rem;font-weight:600;color:var(--ink);background:transparent;border:none;cursor:pointer;font-family:inherit;width:100%;text-align:left;transition:background-color .12s ease}.panel-dropdown-link:hover{background:rgba(var(--ink-rgb),.06)}.panel-dropdown-link--active{background:rgba(var(--accent-rgb),.12);color:var(--accent-deep)}.panel-dropdown-link--danger{color:var(--danger)}.panel-dropdown-link--danger:hover{background:rgba(var(--danger-rgb),.08)}.panel-dropdown-sep{height:1px;background:rgba(var(--ink-rgb),.1);margin:4px 8px}.status-strip{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid rgba(var(--ink-rgb),.16);border-radius:999px;padding:10px 14px;box-shadow:var(--shadow);font-size:.83rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.status-dot{display:inline-flex;width:10px;height:10px;border-radius:999px}.status-dot.online{background:var(--accent);box-shadow:0 0 0 5px rgba(var(--accent-rgb),.2);animation:pulse 2s infinite}.status-dot.offline{background:#8d9788}.chip{border-radius:999px;border:1px solid rgba(var(--ink-rgb),.3);padding:4px 8px;font-size:.68rem}.chip-live{background:var(--accent-soft);border-color:rgba(var(--accent-rgb),.46)}.chip-muted{background:rgba(var(--ink-rgb),.08)}.chip-free-llm{background:rgba(var(--signal-rgb),.12);border-color:rgba(var(--signal-rgb),.4);color:var(--signal);margin-left:8px;vertical-align:middle}.chip-byo-llm{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.3);color:var(--accent);margin-left:8px;vertical-align:middle;text-transform:capitalize}.chip-refresh-idle{background:rgba(var(--ink-rgb),.08)}.chip-refresh-refreshing{background:rgba(var(--accent-rgb),.22);border-color:rgba(var(--accent-rgb),.52)}.chip-refresh-refreshed{background:rgba(var(--signal-rgb),.15);border-color:rgba(var(--signal-rgb),.42)}.chip-refresh-expired{background:rgba(var(--danger-rgb),.12);border-color:rgba(var(--danger-rgb),.45)}.layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:clamp(12px,2vw,24px);align-items:start;flex:1;min-height:0;transition:grid-template-columns .2s ease}.layout--collapsed{grid-template-columns:56px minmax(0,1fr)}.layout--no-rail{grid-template-columns:1fr}.rail{position:sticky;top:18px;display:grid;gap:14px;transition:gap .2s ease}.rail--collapsed{gap:8px}.rail-toggle{width:100%;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(var(--ink-rgb),.16);border-radius:8px;cursor:pointer;color:var(--ink-soft);font-size:.65rem;font-family:inherit;transition:background-color .14s ease}.rail-toggle:hover{background:rgba(var(--ink-rgb),.06)}.nav{display:grid;gap:8px}.rail--collapsed .nav-link{text-align:center;padding:10px 4px;font-size:1.1rem;letter-spacing:0;text-transform:none}.nav-link{text-decoration:none;color:var(--ink-soft);border:1px solid rgba(var(--ink-rgb),.2);background:var(--panel);border-radius:12px;padding:11px 13px;font-size:.88rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;transition:transform .18s ease,background-color .18s ease,color .18s ease}.nav-link:hover{transform:translate(4px)}.nav-link.active{color:var(--ink);background:linear-gradient(105deg,var(--accent),#b9ea8f)}.rail-card{background:var(--panel-strong);border:1px solid rgba(var(--ink-rgb),.16);border-radius:var(--radius);padding:16px;display:grid;gap:10px;box-shadow:var(--shadow)}.rail-label{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft)}.rail-value{margin:0;font-size:1.2rem;font-weight:700}.rail-help{margin:0;color:var(--ink-soft);line-height:1.5;font-size:.88rem}.ghost-btn{border:1px solid rgba(var(--ink-rgb),.28);background:transparent;color:var(--ink);border-radius:10px;padding:10px 12px;cursor:pointer;font-weight:700;transition:background-color .18s ease}.ghost-btn:hover{background:rgba(var(--ink-rgb),.06)}.panel{background:linear-gradient(132deg,#ffffffb0,rgba(var(--accent-rgb),.16));border:1px solid rgba(var(--ink-rgb),.18);border-radius:26px;box-shadow:var(--shadow);overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-height:0;display:flex;flex-direction:column;align-self:stretch}.panel-inner{padding:clamp(18px,3.2vw,34px);animation:rise-in .75s ease both;overflow:hidden;flex:1;min-height:0;position:relative}.view{display:grid;gap:22px;overflow-y:auto;max-height:100%}.view-head{display:grid;gap:8px;padding-bottom:14px;border-bottom:1px dashed rgba(var(--ink-rgb),.26)}.eyebrow{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);font-weight:700}.view-title{margin:0;font-family:Oswald,sans-serif;font-size:clamp(1.55rem,2.3vw,2.25rem);line-height:1.08;font-weight:600;letter-spacing:.01em}.view-subtitle{margin:0;color:var(--ink-soft);font-size:.98rem}.auth-form{display:grid;gap:14px}.field{display:grid;gap:7px}.field-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--ink-soft)}input,select,textarea{font-family:inherit;font-size:1rem;color:var(--ink);border:1px solid rgba(var(--ink-rgb),.24);background:#ffffffbd;border-radius:12px;padding:12px 13px;transition:border-color .16s ease,box-shadow .16s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 4px rgba(var(--signal-rgb),.19)}.button-row{display:flex;flex-wrap:wrap;gap:10px}.btn{border:0;border-radius:12px;cursor:pointer;padding:11px 14px;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;transition:transform .16s ease,filter .16s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;filter:grayscale(.4)}.btn-primary{background:linear-gradient(110deg,var(--accent),#a7e375);color:#17330d}.btn-danger{background:linear-gradient(110deg,#e65c5c,#c0392b);color:#fff}.btn-secondary{background:linear-gradient(110deg,#78a6e6,var(--signal));color:#eef5ff}.btn-danger{background:linear-gradient(110deg,#d24444,var(--danger));color:#fff}.error-banner{border-radius:12px;border:1px solid rgba(var(--danger-rgb),.4);background:rgba(var(--danger-rgb),.1);color:#5d0505;font-weight:600;padding:10px 12px}.state-note{margin:0;color:var(--ink-soft);font-weight:600}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kv-card{margin:0;border:1px solid rgba(var(--ink-rgb),.18);border-radius:12px;background:#ffffffad;padding:12px 13px;animation:rise-in .35s ease both}.kv-card:nth-child(2){animation-delay:40ms}.kv-card:nth-child(3){animation-delay:70ms}.kv-card:nth-child(4){animation-delay:.1s}.kv-card:nth-child(5){animation-delay:.13s}.kv-card:nth-child(6){animation-delay:.16s}.kv-card:nth-child(7){animation-delay:.19s}.kv-card:nth-child(8){animation-delay:.22s}.kv-label{margin:0;font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--ink-soft)}.kv-value{margin:5px 0 0;font-size:1rem;font-weight:600}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{box-shadow:0 0 rgba(var(--accent-rgb),.35)}70%{box-shadow:0 0 0 7px rgba(var(--accent-rgb),0)}to{box-shadow:0 0 rgba(var(--accent-rgb),0)}}.auth-link{margin:0;text-align:center;font-size:.92rem;color:var(--ink-soft)}.auth-link a{color:var(--accent-deep);text-decoration:underline;font-weight:700;transition:color .16s ease}.auth-link a:hover{color:var(--accent)}@media (max-width: 960px){.app-shell{padding:0;padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);overflow:hidden}.chrome{flex-direction:row;align-items:center;gap:10px;margin-bottom:0;padding:8px 12px;background:var(--panel-strong);border-bottom:1px solid rgba(var(--ink-rgb),.12);height:36px}.brand-block{max-width:none}.kicker{display:none}.brand-title{font-size:1rem;margin:0}.status-strip{padding:4px 10px;font-size:.72rem;gap:6px;box-shadow:none}.layout,.layout--collapsed,.layout--no-rail{display:flex;flex-direction:column;gap:0}.kv-grid{grid-template-columns:1fr}.panel{border-radius:0;border:none;box-shadow:none;flex:1;min-height:0}.panel-inner{padding:0}.panel-inner>.view{padding:24px 20px;max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:100%;align-content:center}.bg-glow{width:280px;height:280px}}@media (max-width: 768px){.status-strip .chip{display:none}.bg-glow{width:200px;height:200px}.panel-inner>.view{padding:20px 16px;gap:18px}.view-head{gap:6px;padding-bottom:12px}.view-title{font-size:1.4rem}.view-subtitle{font-size:.9rem}.auth-form{gap:12px}.auth-link{padding-top:4px}.error-banner{font-size:.88rem}}@media (max-width: 480px){.chrome{height:auto;padding:6px 8px}.brand-block{display:none}.bg-glow{width:150px;height:150px;opacity:.3}.bg-grid{background-size:28px 28px}.panel-inner>.view{padding:16px 14px;gap:14px}.view-title{font-size:1.25rem}.eyebrow{font-size:.65rem}.field-label{font-size:.68rem}}.app-body{position:relative;display:grid;grid-template-columns:240px minmax(0,1fr);flex:1;min-height:0;overflow:hidden;background:linear-gradient(132deg,#ffffffb0,rgba(var(--accent-rgb),.16));border:1px solid rgba(var(--ink-rgb),.18);border-radius:26px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rise-in .75s ease both}.sidebar-content{flex:1;min-height:0;overflow-y:auto}.sidebar-header{padding:14px}.sidebar-title{font-size:.95rem;font-weight:700;color:var(--ink);margin:4px 0 2px}.sidebar-desc{font-size:.78rem;color:var(--ink-soft);margin:0;line-height:1.4}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar-nav-link{display:block;padding:8px 12px;font-size:.82rem;font-weight:600;color:var(--ink-soft);text-decoration:none;border-radius:8px;transition:background-color .14s ease,color .14s ease}.sidebar-nav-link:hover{background:rgba(var(--ink-rgb),.06);color:var(--ink)}.chat-panel{display:flex;flex-direction:column;background:transparent;border-right:1px solid rgba(var(--ink-rgb),.08);overflow:hidden}.panel-top{padding:14px 14px 8px}.panel-action-btn{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;font-size:.82rem;font-weight:600;font-family:inherit;color:var(--ink);background:transparent;border:1px solid rgba(var(--ink-rgb),.14);border-radius:10px;cursor:pointer;transition:background-color .14s ease,border-color .14s ease}.panel-action-btn:hover{background:rgba(var(--ink-rgb),.05);border-color:rgba(var(--ink-rgb),.22)}.panel-section-header{padding:6px 16px 4px}.panel-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}.panel-bottom-nav{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-top:1px solid rgba(var(--ink-rgb),.08)}.panel-nav-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:10px;cursor:pointer;color:var(--ink-soft);transition:background-color .14s ease,color .14s ease}.panel-nav-icon:hover{background:rgba(var(--ink-rgb),.07);color:var(--ink)}.conversation-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1}.conversation-item{display:flex;flex-direction:row;align-items:center;gap:4px;background:transparent;border:1px solid transparent;border-radius:10px;padding:2px 2px 2px 0;transition:background-color .14s ease;color:var(--ink)}.conversation-item:hover{background:rgba(var(--ink-rgb),.06)}.conversation-item--active{background:transparent;border-left:3px solid var(--accent)}.conversation-icon{flex-shrink:0;color:var(--ink-soft)}.conversation-item-body{flex:1;min-width:0;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:none;padding:10px 12px;cursor:pointer;font-family:inherit;color:inherit}.conversation-action-btn{flex-shrink:0;display:none;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:var(--ink-soft);font-size:1.1rem;cursor:pointer;transition:background-color .12s ease,color .12s ease}.conversation-delete-btn{margin-right:4px}.conversation-item:hover .conversation-action-btn{display:flex}.conversation-rename-btn:hover{background:rgba(var(--accent-rgb),.15);color:var(--accent)}.conversation-delete-btn:hover{background:#dc354526;color:#dc3545}.conversation-title-input{font-size:.88rem;font-weight:600;font-family:inherit;width:100%;padding:2px 4px;border:1px solid rgba(var(--accent-rgb),.5);border-radius:4px;background:#ffffffe6;color:var(--ink);outline:none}.conversation-title{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-date{font-size:.7rem;color:var(--ink-soft);display:none}.conversation-item:hover .conversation-date{display:block}.chat-empty-hint{color:var(--ink-soft);font-size:.84rem;text-align:center;padding:20px 8px;margin:0}.chat-main{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;min-height:0}.chat-main>.view{overflow-y:auto;padding:clamp(18px,3.2vw,34px);flex:1;min-height:0}.chat-main>.empty-state{flex:1;min-height:0}.chat-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:10px;padding:40px}.chat-toolbar{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid rgba(var(--ink-rgb),.1)}.ws-status{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.ws-status:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%}.ws-status--online:before{background:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.2)}.ws-status--offline:before{background:#8d9788}.chat-window{flex:1;overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;align-items:center}.chat-content-container{max-width:720px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:4px}.message-row{display:flex;flex-direction:column;align-items:flex-start}.message-row--user,.message-row--assistant{align-items:flex-start}.message-block{width:100%;padding:16px 0;border-bottom:1px solid rgba(var(--ink-rgb),.08);animation:rise-in .2s ease both}.message-block--user{background:rgba(var(--accent-rgb),.04);border-left:3px solid rgba(var(--accent-rgb),.4);padding:14px 20px;border-radius:8px}.message-block--assistant{background:transparent}.message-role{margin:0 0 6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--ink-soft);display:flex;align-items:center;gap:6px}.message-role-icon{flex-shrink:0}.message-content{margin:0;font-size:.94rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.message-context-file{margin:0 0 8px;font-size:.76rem;font-weight:600;color:rgba(var(--ink-rgb),.7)}.message-llm-meta{margin:0 0 8px;font-size:.72rem;color:rgba(var(--ink-rgb),.68);font-weight:600}.evidence-panel{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(var(--ink-rgb),.18)}.evidence-panel__header{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.evidence-panel__title{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--ink-soft)}.confidence-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.68rem;font-weight:700;border:1px solid transparent}.confidence-badge--high{color:#0b7a3f;background:#0b7a3f1a;border-color:#0b7a3f47}.confidence-badge--medium{color:#7a5a04;background:#d2990c1f;border-color:#d2990c57}.confidence-badge--low{color:#8f1f1f;background:rgba(var(--danger-rgb),.12);border-color:rgba(var(--danger-rgb),.34)}.evidence-panel__summary{margin:6px 0 0;font-size:.72rem;color:rgba(var(--ink-rgb),.74)}.evidence-panel__reasons{margin:6px 0 0;font-size:.74rem;color:rgba(var(--ink-rgb),.74);line-height:1.45}.evidence-panel__warning{margin:6px 0 0;font-size:.74rem;color:var(--danger);font-weight:600}.evidence-panel__toggle{margin-top:8px;padding:0;border:none;background:transparent;color:var(--signal);font-size:.75rem;font-weight:700;cursor:pointer}.evidence-panel__toggle:hover{text-decoration:underline}.evidence-panel__list{margin-top:8px;display:flex;flex-direction:column;gap:8px}.evidence-item{border:1px solid rgba(var(--ink-rgb),.15);border-radius:10px;padding:8px 10px;background:rgba(var(--ink-rgb),.02)}.evidence-item--strong{border-color:#0b7a3f59;background:#0b7a3f0d}.evidence-item--medium{border-color:#d2990c59;background:#d2990c0f}.evidence-item--weak{border-color:rgba(var(--ink-rgb),.16)}.evidence-item__meta{display:flex;align-items:center;gap:8px;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(var(--ink-rgb),.64)}.evidence-item__source{font-weight:700}.evidence-item__status{font-weight:600}.evidence-item__summary{margin:6px 0 0;font-size:.78rem;line-height:1.4;color:rgba(var(--ink-rgb),.86)}.evidence-item__details{margin-top:8px;display:flex;flex-direction:column;gap:8px}.evidence-item__detail-row{border-top:1px solid rgba(var(--ink-rgb),.1);padding-top:8px}.evidence-item__detail-key{margin:0 0 4px;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);font-weight:700}.evidence-item__detail-pre{margin:0;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.73rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;background:rgba(var(--ink-rgb),.06);border-radius:6px;padding:6px 8px;max-height:180px;overflow:auto}.evidence-panel__citations{margin-top:8px;display:flex;flex-direction:column;gap:6px}.evidence-panel__no-citations{margin:8px 0 0;font-size:.72rem;color:var(--ink-soft);font-style:italic;opacity:.7}.citation-item{border:1px solid rgba(var(--ink-rgb),.12);border-radius:8px;padding:8px 10px;background:rgba(var(--ink-rgb),.03)}.citation-item__meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.citation-item__index{font-weight:700;font-size:.72rem;color:var(--accent)}.citation-item__source{font-size:.7rem;color:var(--ink-soft);font-weight:600}.citation-item__doc{font-size:.7rem;color:var(--ink);font-family:Fira Code,monospace;background:rgba(var(--ink-rgb),.08);padding:1px 5px;border-radius:4px}.citation-item__sim{font-size:.68rem;color:var(--ink-soft);margin-left:auto}.citation-item__excerpt{margin:0;font-size:.73rem;line-height:1.4;color:var(--ink-soft);max-height:60px;overflow:hidden;text-overflow:ellipsis}.typing-cursor{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink-cursor .8s steps(2) infinite}@keyframes blink-cursor{0%{opacity:1}to{opacity:0}}.chat-error{display:flex;align-items:center;gap:10px;justify-content:space-between}.chat-error-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.chat-upgrade-cta{font-size:.72rem;padding:4px 10px;border-radius:8px;background:var(--accent);color:#fff!important;text-decoration:none;font-weight:600;white-space:nowrap}.chat-upgrade-cta:hover{opacity:.85}.chat-dismiss{font-size:.72rem;padding:4px 8px;border-radius:8px}.chat-input-wrapper{max-width:720px;width:100%;margin:0 auto;padding:0 18px}.chat-input-area{display:flex;gap:10px;padding:12px 16px;background:transparent;border:1px solid rgba(var(--ink-rgb),.12);border-radius:22px;box-shadow:0 2px 12px rgba(var(--ink-rgb),.06);margin-bottom:12px}.chat-textarea{flex:1;font-family:inherit;font-size:.94rem;color:var(--ink);border:none;background:transparent;padding:8px 4px;resize:none;transition:box-shadow .16s ease}.chat-textarea:focus{outline:none;box-shadow:none}.chat-textarea:disabled{opacity:.5;cursor:not-allowed}.chat-send-btn{align-self:flex-end;padding:10px 18px;font-size:.82rem;border-radius:20px}.chat-attach-btn{width:36px;height:36px;flex-shrink:0;align-self:flex-end;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--ink-soft);transition:background-color .14s ease,color .14s ease}.chat-attach-btn:hover{background:rgba(var(--ink-rgb),.07);color:var(--ink)}.chat-attach-btn:disabled{opacity:.4;cursor:not-allowed}.chat-attach-btn:disabled:hover{background:transparent;color:var(--ink-soft)}.chat-input-attachment{padding:0 16px}.file-chip{position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(var(--signal-rgb),.28);background:rgba(var(--signal-rgb),.06);border-radius:10px;overflow:hidden;animation:rise-in .2s ease both}.file-chip--error{border-color:rgba(var(--danger-rgb),.4);background:rgba(var(--danger-rgb),.06)}.file-chip__icon{font-size:1.1rem;flex-shrink:0;line-height:1}.file-chip__info{display:flex;flex-direction:column;gap:1px;min-width:0}.file-chip__name{font-size:.82rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.file-chip__size{font-size:.68rem;color:var(--ink-soft)}.file-chip__remove{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border:none;border-radius:6px;background:transparent;color:var(--ink-soft);font-size:1rem;cursor:pointer;transition:background-color .12s ease,color .12s ease}.file-chip__remove:hover{background:rgba(var(--danger-rgb),.12);color:var(--danger)}.file-chip__remove:disabled{opacity:.3;cursor:not-allowed}.file-chip__progress{position:absolute;bottom:0;left:0;height:3px;background:var(--signal);border-radius:0 0 10px 10px;transition:width .15s ease}.file-chip__error{display:block;width:100%;font-size:.72rem;color:var(--danger);font-weight:600;margin-top:2px}.tool-calls-container{display:flex;flex-direction:column;gap:8px;align-self:flex-start;width:100%;animation:rise-in .2s ease both}.tool-call-card{border:1px solid rgba(var(--ink-rgb),.1);background:rgba(var(--ink-rgb),.03);border-radius:8px;padding:10px 14px}.tool-call-header{display:flex;align-items:center;gap:8px}.tool-call-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.tool-call-indicator--running{background:var(--signal);animation:pulse-signal 1.2s infinite}.tool-call-indicator--done{background:var(--accent)}.tool-call-indicator--failed{background:var(--danger)}.tool-call-indicator--awaiting{background:#f59e0b;animation:pulse-signal 1.8s infinite}.tool-call-confirm-btn{display:inline-block;margin-top:6px;padding:4px 14px;font-size:.78rem;font-weight:600;color:#fff;background:#f59e0b;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.tool-call-confirm-btn:hover{background:#d97706}.tool-call-name{font-size:.82rem;font-weight:600;color:var(--ink)}.tool-call-duration{font-size:.7rem;color:var(--ink-soft);margin-left:auto}.tool-call-preview{margin:6px 0 0;font-size:.78rem;color:var(--ink-soft);line-height:1.4;max-height:3.6em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tool-call-progress-wrap{margin-top:8px}.tool-call-progress-track{width:100%;height:7px;border-radius:999px;overflow:hidden;background:rgba(var(--ink-rgb),.12)}.tool-call-progress-fill{height:100%;background:linear-gradient(90deg,rgba(var(--signal-rgb),.9),rgba(var(--accent-rgb),.9));transition:width .25s ease}.tool-call-progress-fill--queued{background:linear-gradient(90deg,rgba(var(--ink-rgb),.35),rgba(var(--ink-rgb),.2))}.tool-call-progress-meta{margin-top:4px;display:flex;justify-content:space-between;gap:10px;font-size:.7rem;color:var(--ink-soft)}@keyframes pulse-signal{0%{box-shadow:0 0 rgba(var(--signal-rgb),.35)}70%{box-shadow:0 0 0 6px rgba(var(--signal-rgb),0)}to{box-shadow:0 0 rgba(var(--signal-rgb),0)}}.chat-drawer-toggle{display:none}.mobile-topbar{display:flex;align-items:center;padding:4px 10px;flex-shrink:0}@media (max-width: 960px){.app-body{grid-template-columns:1fr;grid-template-rows:1fr;border-radius:0;border:none;box-shadow:none}.chat-panel{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;z-index:100;flex-direction:column;overflow-y:auto;border-right:1px solid rgba(var(--ink-rgb),.08);background:var(--panel-strong);transform:translate(-100%);transition:transform .25s ease;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left)}.chat-panel--open{transform:translate(0)}.chat-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:99;animation:fade-in .2s ease}.conversation-item-body{min-height:var(--touch-min)}.conversation-action-btn{display:flex;width:36px;height:36px}.chat-drawer-toggle{display:flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border:1px solid rgba(var(--ink-rgb),.14);background:transparent;border-radius:10px;cursor:pointer;font-size:1.2rem;color:var(--ink-soft);margin-right:10px;flex-shrink:0;transition:background-color .14s ease}.chat-drawer-toggle:hover{background:rgba(var(--ink-rgb),.06)}.chat-main{height:100%;min-height:0}.chat-main>.view{padding:24px 20px}.chat-toolbar{padding:4px 10px}.chat-window{padding:10px;padding-bottom:calc(10px + var(--safe-bottom))}.message-block{padding:12px 0}.message-block--user{padding:10px 14px}.chat-input-wrapper{padding:0 10px}.chat-input-area{padding:8px 10px;margin-bottom:calc(8px + var(--safe-bottom));gap:8px}.chat-textarea{padding:6px 4px;font-size:1rem;min-height:var(--touch-min)}.chat-textarea--auto{min-height:38px;max-height:120px}.chat-send-btn{padding:8px 14px;font-size:.8rem;min-height:var(--touch-min)}.chat-attach-btn{width:var(--touch-min);height:var(--touch-min)}.chat-input-attachment{padding:0 10px}.file-chip__name{max-width:200px}.tool-calls-container{width:100%}}@media (max-width: 480px){.chat-window{padding:8px;padding-bottom:calc(8px + var(--safe-bottom))}.message-block{padding:10px 0}.message-block--user{padding:8px 12px}.chat-input-wrapper{padding:0 8px}.chat-input-area{padding:6px 8px;margin-bottom:calc(6px + var(--safe-bottom));border-radius:18px}.chat-input-attachment{padding:0 8px}.file-chip__name{max-width:160px}.empty-state{padding:24px 16px;gap:12px}.empty-state-grid{grid-template-columns:1fr;gap:8px}.empty-state-card{padding:12px 14px;min-height:var(--touch-min)}}.markdown-content{font-size:.94rem;line-height:1.6;word-break:break-word}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{font-family:Oswald,sans-serif;font-weight:600;margin:.8em 0 .3em;line-height:1.2}.markdown-content h1{font-size:1.35rem}.markdown-content h2{font-size:1.15rem}.markdown-content h3{font-size:1.02rem}.markdown-content h4{font-size:.94rem}.markdown-content p{margin:.4em 0}.markdown-content ul,.markdown-content ol{margin:.4em 0;padding-left:1.4em}.markdown-content li{margin:.15em 0}.markdown-content blockquote{margin:.6em 0;padding:.4em .8em;border-left:3px solid var(--accent);background:rgba(var(--accent-rgb),.06);border-radius:0 8px 8px 0}.markdown-content blockquote p{margin:0}.markdown-content table{width:100%;border-collapse:collapse;margin:.6em 0;font-size:.85rem}.markdown-content th,.markdown-content td{border:1px solid rgba(var(--ink-rgb),.18);padding:6px 10px;text-align:left}.markdown-content th{background:rgba(var(--ink-rgb),.06);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.markdown-content a{color:var(--signal);text-decoration:none;font-weight:600}.markdown-content a:hover{text-decoration:underline}.markdown-content hr{border:none;border-top:1px dashed rgba(var(--ink-rgb),.22);margin:.8em 0}.markdown-content code{font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.84em;background:rgba(var(--ink-rgb),.08);border-radius:5px;padding:.15em .35em}.markdown-content>*:first-child{margin-top:0}.markdown-content>*:last-child{margin-bottom:0}.code-block{border-radius:10px;overflow:hidden;margin:.6em 0;border:1px solid rgba(var(--ink-rgb),.18)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#2d2d2d;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.code-block-copy{display:flex;align-items:center;gap:4px;border:none;background:transparent;color:#aaa;cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:4px;transition:background-color .14s ease,color .14s ease}.code-block-copy:hover{background:#ffffff1a;color:#ddd}.code-block-copy--copied{color:var(--accent)!important}.code-block-body{background:#1e1e1e;padding:12px 14px;overflow-x:auto;white-space:pre;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.82rem;line-height:1.5;color:#d4d4d4}.code-block-body code{background:none;border-radius:0;padding:0;font-family:inherit;font-size:inherit;color:inherit}.code-block-body .hljs-keyword,.code-block-body .hljs-selector-tag,.code-block-body .hljs-built_in{color:var(--accent)}.code-block-body .hljs-string,.code-block-body .hljs-attr{color:#a8e06c}.code-block-body .hljs-comment,.code-block-body .hljs-quote{color:#6a9955;font-style:italic}.code-block-body .hljs-number,.code-block-body .hljs-literal{color:var(--signal)}.code-block-body .hljs-title,.code-block-body .hljs-section{color:#dcdcaa}.code-block-body .hljs-type,.code-block-body .hljs-name{color:#4ec9b0}.code-block-body .hljs-variable,.code-block-body .hljs-params{color:#9cdcfe}.code-block-body .hljs-meta{color:#c586c0}.tool-call-card--expandable{cursor:pointer;transition:background-color .14s ease}.tool-call-card--expandable:hover{background:rgba(var(--ink-rgb),.06)}.tool-call-chevron{margin-left:auto;font-size:.7rem;color:var(--ink-soft);transition:transform .2s ease;-webkit-user-select:none;user-select:none}.tool-call-chevron--open{transform:rotate(90deg)}.tool-call-details{margin-top:10px;padding-top:10px;border-top:1px solid rgba(var(--signal-rgb),.18)}.tool-call-detail-label{margin:0 0 4px;font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--ink-soft)}.tool-call-detail-pre{margin:0 0 10px;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.75rem;line-height:1.45;background:rgba(var(--ink-rgb),.06);border-radius:6px;padding:8px 10px;overflow-x:auto;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.tool-call-detail-pre:last-child{margin-bottom:0}.chat-textarea--auto{min-height:42px;max-height:200px;overflow-y:auto;transition:height 80ms ease}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:16px;padding:40px 24px;animation:rise-in .5s ease both}.empty-state-title{margin:0;font-family:Oswald,sans-serif;font-size:clamp(1.6rem,2.5vw,2.4rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em}.empty-state-subtitle{margin:0;color:var(--ink-soft);font-size:.95rem;max-width:420px;line-height:1.5}.empty-state-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;max-width:520px;width:100%}.empty-state-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid rgba(var(--accent-rgb),.28);background:rgba(var(--accent-rgb),.06);border-radius:10px;padding:14px 16px;text-align:left;cursor:pointer;font-family:inherit;transition:background-color .14s ease,transform .14s ease,border-color .14s ease}.empty-state-card:hover{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.42);transform:translateY(-1px)}.empty-state-card-title{font-size:.84rem;font-weight:700;color:var(--ink)}.empty-state-card-desc{font-size:.74rem;color:var(--ink-soft);line-height:1.35}.ws-status--reconnecting:before{background:#e6a817;animation:pulse-warning 1.2s infinite}.ws-status-retry{border:none;background:transparent;color:var(--signal);cursor:pointer;font-family:inherit;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:4px;transition:background-color .14s ease}.ws-status-retry:hover{background:rgba(var(--signal-rgb),.1)}.ws-status-attempt{font-size:.68rem;color:var(--ink-soft);font-weight:400}@keyframes pulse-warning{0%{box-shadow:0 0 #e6a81766}70%{box-shadow:0 0 0 6px #e6a81700}to{box-shadow:0 0 #e6a81700}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-shell--admin{padding:0;overflow:visible}.app-shell--admin>.bg-grid,.app-shell--admin>.bg-glow{display:none}.admin-layout{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:220px 1fr;background:var(--paper)}.admin-sidebar{background:var(--panel-strong);border-right:1px solid var(--edge);display:flex;flex-direction:column;padding:20px 0;overflow-y:auto}.admin-sidebar__header{padding:0 20px 16px;border-bottom:1px solid var(--edge)}.admin-sidebar__title{font-family:Oswald,sans-serif;font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:0;color:var(--ink)}.admin-sidebar__nav{flex:1;display:flex;flex-direction:column;padding:12px 0}.admin-sidebar__link{display:block;padding:10px 20px;color:var(--ink-soft);text-decoration:none;font-weight:600;font-size:.9rem;transition:background .16s ease,color .16s ease;border-left:3px solid transparent}.admin-sidebar__link:hover{background:rgba(var(--accent-rgb),.1);color:var(--ink)}.admin-sidebar__link--active{background:rgba(var(--accent-rgb),.18);color:var(--accent-deep);border-left-color:var(--accent);font-weight:700}.admin-sidebar__footer{padding:12px 20px 0;border-top:1px solid var(--edge)}.admin-sidebar__back{display:block;padding:8px 12px;text-align:center;color:var(--signal);font-weight:700;text-decoration:none;border:1px solid rgba(var(--signal-rgb),.3);border-radius:10px;transition:background .16s ease}.admin-sidebar__back:hover{background:rgba(var(--signal-rgb),.08)}.admin-content{padding:24px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.admin-content__body{flex:1}.admin-page-title{font-family:Oswald,sans-serif;font-size:1.5rem;font-weight:700;margin:0 0 16px;color:var(--ink)}.admin-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-page-header .admin-page-title{margin:0}.admin-section{margin-top:24px}.admin-section__title{font-family:Oswald,sans-serif;font-size:1.1rem;font-weight:600;margin:0 0 12px;color:var(--ink-soft)}.admin-loading,.admin-empty{text-align:center;padding:40px 0;color:var(--ink-soft);font-weight:600}.admin-error{border-radius:12px;border:1px solid rgba(var(--danger-rgb),.4);background:rgba(var(--danger-rgb),.1);color:#5d0505;font-weight:600;padding:10px 12px;margin-bottom:12px}.settings-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--edge);padding-bottom:0}.settings-tabs__item{padding:10px 20px;font-size:.9rem;font-weight:600;color:var(--ink-soft);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .16s ease,border-color .16s ease}.settings-tabs__item:hover{color:var(--ink)}.settings-tabs__item--active{color:var(--accent-deep);border-bottom-color:var(--accent)}.nav-link--admin{border-top:1px solid rgba(var(--ink-rgb),.12);margin-top:8px;padding-top:12px}.breadcrumb{font-size:.85rem;color:var(--ink-soft);margin-bottom:4px}.breadcrumb__sep{margin:0 6px;opacity:.5}.breadcrumb__link{color:var(--signal);text-decoration:none;font-weight:600}.breadcrumb__link:hover{text-decoration:underline}.breadcrumb__current{font-weight:700;color:var(--ink)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.stat-grid--small{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.stat-card{text-align:center;padding:16px}.stat-card__label{margin:0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.stat-card__value{margin:6px 0 0;font-family:Oswald,sans-serif;font-size:1.8rem;font-weight:700;color:var(--ink)}.stat-card__subtitle{margin:4px 0 0;font-size:.78rem;color:var(--ink-soft)}.data-table__search{display:flex;gap:8px;margin-bottom:12px}.data-table__input{flex:1;padding:8px 12px;border:1px solid var(--edge);border-radius:10px;font-size:.88rem;background:var(--panel-strong);color:var(--ink)}.data-table__search-btn{padding:8px 16px;border:1px solid var(--accent);border-radius:10px;background:rgba(var(--accent-rgb),.15);color:var(--accent-deep);font-weight:700;cursor:pointer;transition:background .16s ease}.data-table__search-btn:hover{background:rgba(var(--accent-rgb),.3)}.data-table__wrapper{overflow-x:auto;border-radius:12px;border:1px solid var(--edge)}.data-table__table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table__table th{text-align:left;padding:10px 14px;background:rgba(var(--ink-rgb),.05);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--edge)}.data-table__table td{padding:10px 14px;border-bottom:1px solid rgba(var(--ink-rgb),.06)}.pricing-faq{max-width:720px;margin:0 auto 2rem}.faq-item{border-bottom:1px solid var(--edge);padding:0}.faq-item summary{padding:14px 0;cursor:pointer;font-weight:600;font-size:.92rem;color:var(--ink);list-style:none;display:flex;align-items:center;gap:8px}.faq-item summary:before{content:"+";font-size:1.1rem;font-weight:700;color:var(--accent);flex-shrink:0;width:1.2em;text-align:center}.faq-item[open] summary:before{content:"−"}.faq-item p{margin:0 0 14px 1.8em;font-size:.85rem;color:var(--ink-soft);line-height:1.55}.data-table__row--clickable{cursor:pointer;transition:background .12s ease}.data-table__row--clickable:hover{background:rgba(var(--accent-rgb),.08)}.data-table__loading,.data-table__empty{text-align:center;padding:24px 0;color:var(--ink-soft);font-weight:600}.data-table__pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 0}.data-table__pagination button{padding:6px 14px;border:1px solid var(--edge);border-radius:8px;background:var(--panel-strong);cursor:pointer;font-weight:600;transition:background .16s ease}.data-table__pagination button:hover:not(:disabled){background:rgba(var(--accent-rgb),.12)}.data-table__pagination button:disabled{opacity:.4;cursor:not-allowed}.data-table__page-info{font-size:.85rem;color:var(--ink-soft)}.chip--role-owner{background:linear-gradient(110deg,rgba(var(--danger-rgb),.15),rgba(var(--danger-rgb),.08));border-color:rgba(var(--danger-rgb),.4);color:#7a0000;font-weight:700}.chip--role-admin{background:rgba(var(--signal-rgb),.12);border-color:rgba(var(--signal-rgb),.4);color:#0d4799}.chip--role-member{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.4);color:var(--accent-deep)}.chip--role-viewer,.chip--tier-free{background:rgba(var(--ink-rgb),.08);border-color:rgba(var(--ink-rgb),.2);color:var(--ink-soft)}.chip--tier-solo{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.4);color:var(--accent-deep)}.chip--tier-team{background:rgba(var(--signal-rgb),.12);border-color:rgba(var(--signal-rgb),.4);color:#0d4799}.chip--tier-enterprise{background:linear-gradient(110deg,#d4af372e,#d4af3714);border-color:#d4af3780;color:#7a6200}.chip--active{background:rgba(var(--accent-rgb),.18);border-color:rgba(var(--accent-rgb),.5);color:var(--accent-deep)}.chip--inactive{background:rgba(var(--danger-rgb),.1);border-color:rgba(var(--danger-rgb),.35);color:#7a0000}.health-overview{padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.health-overview__status{display:flex;align-items:center;gap:10px;font-size:1rem}.health-overview__uptime{margin:0;color:var(--ink-soft);font-size:.88rem}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:16px 0}.health-card{padding:16px}.health-card__header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.health-card__dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.health-card__dot--healthy{background:var(--accent);box-shadow:0 0 6px rgba(var(--accent-rgb),.5)}.health-card__dot--degraded{background:#e6a817;box-shadow:0 0 6px #e6a81780}.health-card__dot--down{background:var(--danger);box-shadow:0 0 6px rgba(var(--danger-rgb),.5)}.health-card__name{font-family:Oswald,sans-serif;font-size:1rem;font-weight:600;margin:0}.health-card__status{margin:0;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em}.health-card__latency{margin:4px 0 0;font-size:.85rem;color:var(--ink-soft)}.health-card__details{margin:4px 0 0;font-size:.8rem;color:var(--ink-soft)}.admin-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}.admin-detail-grid .kv-card{padding:16px}.admin-detail-grid .kv-card h3{font-family:Oswald,sans-serif;font-size:1rem;font-weight:600;margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em}.kv-list{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:.88rem;margin:0}.kv-list dt{font-weight:700;color:var(--ink-soft)}.kv-list dd{margin:0}.kv-list--compact{font-size:.82rem;gap:4px 10px}.admin-actions{display:flex;flex-direction:column;gap:12px}.admin-actions__group{display:flex;flex-direction:column;gap:4px}.admin-actions__group label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.admin-actions__group select{padding:8px 12px;border:1px solid var(--edge);border-radius:10px;font-size:.88rem;background:var(--panel-strong);color:var(--ink)}.btn--primary{background:linear-gradient(110deg,var(--accent),#a7e375);color:#17330d}.btn--secondary{background:linear-gradient(110deg,#78a6e6,var(--signal));color:#eef5ff}.btn--danger{background:linear-gradient(110deg,#d24444,var(--danger));color:#fff}.btn--success{background:linear-gradient(110deg,var(--accent),#6eb534);color:#fff}.ghost-btn--danger{color:var(--danger);border-color:rgba(var(--danger-rgb),.35)}.ghost-btn--danger:hover{background:rgba(var(--danger-rgb),.08)}.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.plan-card{padding:20px;display:flex;flex-direction:column;gap:10px}.plan-card--inactive{opacity:.55}.plan-card__header{display:flex;align-items:center;justify-content:space-between}.plan-card__name{font-family:Oswald,sans-serif;font-size:1.15rem;font-weight:700;margin:0}.plan-card__price{font-family:Oswald,sans-serif;font-size:1.6rem;font-weight:700;margin:0;color:var(--ink)}.plan-card__period{font-size:.8rem;font-weight:400;color:var(--ink-soft)}.plan-card__actions{display:flex;gap:8px;margin-top:8px}.audit-changes{max-width:220px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fade-in .16s ease}.modal{background:var(--panel-strong);border:1px solid var(--edge);border-radius:var(--radius);padding:24px;min-width:360px;max-width:90vw;box-shadow:var(--shadow);animation:rise-in .25s ease both}.modal--wide{min-width:480px;max-height:85vh;overflow-y:auto}.modal--xl{min-width:640px;width:720px;max-width:90vw;max-height:85vh;overflow-y:auto}.modal__title{font-family:Oswald,sans-serif;font-size:1.15rem;font-weight:700;margin:0 0 12px}.modal__message{margin:0 0 20px;color:var(--ink-soft);font-size:.92rem;line-height:1.5}.modal__actions{display:flex;justify-content:flex-end;gap:10px}.modal__btn{padding:8px 18px;border:1px solid var(--edge);border-radius:10px;font-weight:700;cursor:pointer;transition:background .16s ease;font-size:.88rem}.modal__btn--cancel{background:transparent;color:var(--ink-soft)}.modal__btn--cancel:hover{background:rgba(var(--ink-rgb),.06)}.modal__btn--confirm{background:rgba(var(--accent-rgb),.18);border-color:rgba(var(--accent-rgb),.4);color:var(--accent-deep)}.modal__btn--confirm:hover{background:rgba(var(--accent-rgb),.3)}.modal__btn--danger{background:rgba(var(--danger-rgb),.12);border-color:rgba(var(--danger-rgb),.4);color:var(--danger)}.modal__btn--danger:hover{background:rgba(var(--danger-rgb),.22)}.plan-form{display:flex;flex-direction:column;gap:12px}.plan-form__row{display:flex;flex-direction:column;gap:4px}.plan-form__row label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.plan-form__row input,.plan-form__row select,.plan-form__row textarea{padding:8px 12px;border:1px solid var(--edge);border-radius:10px;font-size:.88rem;background:var(--panel-strong);color:var(--ink)}.plan-form__row textarea{resize:vertical;min-height:80px}.plan-form__fieldset{border:1px solid var(--edge);border-radius:10px;padding:12px 16px 16px;margin:0}.plan-form__fieldset legend{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-deep, var(--accent));padding:0 6px}@media (max-width: 960px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;max-width:85vw;z-index:100;transform:translate(-100%);transition:transform .25s ease;padding-top:calc(20px + var(--safe-top));padding-bottom:calc(20px + var(--safe-bottom))}.admin-sidebar--open{transform:translate(0)}.admin-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:99;animation:fade-in .2s ease}.admin-sidebar__link{min-height:var(--touch-min);display:flex;align-items:center}.admin-drawer-toggle{display:flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border:1px solid var(--edge);background:transparent;border-radius:10px;cursor:pointer;font-size:1.2rem;color:var(--ink-soft);flex-shrink:0;transition:background-color .14s ease}.admin-drawer-toggle:hover{background:rgba(var(--ink-rgb),.06)}.admin-content{padding:16px 14px;padding-top:calc(16px + var(--safe-top))}.admin-page-header{flex-direction:column;align-items:flex-start;gap:8px}.stat-grid,.stat-grid--small{grid-template-columns:repeat(2,1fr)}.health-grid,.plans-grid,.admin-detail-grid{grid-template-columns:1fr}.data-table__wrapper{-webkit-overflow-scrolling:touch}}.admin-drawer-toggle{display:none}@media (max-width: 480px){.admin-content{padding:12px 10px}.stat-grid,.stat-grid--small{grid-template-columns:1fr}.stat-card__value{font-size:1.4rem}.admin-page-title{font-size:1.2rem}.data-table__search{flex-direction:column}}@media (max-width: 768px){.modal{min-width:0;width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:20px 16px;border-radius:14px}.modal--wide,.modal--xl{min-width:0;width:calc(100vw - 24px)}.modal__actions{flex-direction:column-reverse;gap:8px}.modal__btn{min-height:var(--touch-min);justify-content:center;text-align:center}}@media (max-width: 480px){.modal{padding:16px 12px;border-radius:12px}}@media (max-width: 768px){input,select{font-size:1rem;min-height:var(--touch-min)}.btn{min-height:var(--touch-min)}.button-row{flex-direction:column}.button-row .btn{width:100%;text-align:center}}@media (max-width: 768px){.markdown-content table{font-size:.78rem}.markdown-content th,.markdown-content td{padding:4px 6px}.code-block-body{font-size:.76rem;padding:10px 12px;-webkit-overflow-scrolling:touch}.code-block-copy{padding:6px 10px;min-height:36px}}@media (max-width: 960px){.ws-status-retry{min-height:var(--touch-min);padding:8px 12px}.ghost-btn{min-height:var(--touch-min)}.chat-dismiss{min-height:36px;padding:6px 12px}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.landing{position:relative;min-height:100vh;overflow:hidden}.landing-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(20px,5vw,48px);background:#ffffffb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(var(--ink-rgb),.1)}.landing-nav-logo{font-family:Oswald,sans-serif;font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink)}.landing-nav-actions{display:flex;align-items:center;gap:10px}.landing-nav-actions .ghost-btn,.landing-nav-actions .btn{text-decoration:none;font-size:.82rem;padding:8px 16px}.landing-hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px clamp(20px,5vw,48px) 60px;position:relative;z-index:1}.landing-hero-kicker{margin:0;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.landing-hero-title{margin:12px 0 0;font-family:Oswald,sans-serif;font-size:clamp(2.4rem,6vw,4.5rem);font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:.96;color:var(--ink)}.landing-hero-subtitle{margin:20px 0 0;font-size:clamp(1rem,1.8vw,1.2rem);color:var(--ink-soft);max-width:600px;line-height:1.6}.landing-hero-cta{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.btn--lg{padding:14px 28px;font-size:.95rem}.landing-hero-cta .btn,.landing-hero-cta .ghost-btn{text-decoration:none}.landing-section{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:80px clamp(20px,5vw,48px);text-align:center}.landing-section-title{margin:0;font-family:Oswald,sans-serif;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--ink)}.landing-section-subtitle{color:var(--ink-soft);font-size:1rem;max-width:520px;margin:10px auto 0;line-height:1.5}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px;text-align:left}.landing-feature-card{border:1px solid rgba(var(--ink-rgb),.14);border-radius:16px;background:#ffffffad;padding:24px 20px;transition:transform .2s ease,box-shadow .2s ease}.landing-feature-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #131b0f1a}.landing-feature-icon{font-size:1.6rem;display:block;margin-bottom:10px}.landing-feature-title{margin:0;font-family:Oswald,sans-serif;font-size:1.1rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.landing-feature-desc{margin:8px 0 0;font-size:.9rem;color:var(--ink-soft);line-height:1.5}.landing-steps{display:flex;gap:24px;margin-top:40px;text-align:left}.landing-step{flex:1;border:1px solid rgba(var(--ink-rgb),.14);border-radius:16px;background:#ffffffad;padding:24px 20px}.landing-step-number{font-family:Oswald,sans-serif;font-size:2rem;font-weight:700;color:var(--accent);line-height:1}.landing-step-title{margin:10px 0 0;font-family:Oswald,sans-serif;font-size:1.05rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.landing-step-desc{margin:8px 0 0;font-size:.9rem;color:var(--ink-soft);line-height:1.5}.landing-pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px;text-align:left}.landing-plan-card{border:1px solid rgba(var(--ink-rgb),.14);border-radius:16px;background:#ffffffad;padding:28px 24px;display:flex;flex-direction:column;gap:12px;transition:transform .2s ease,box-shadow .2s ease}.landing-plan-card--highlighted{border-color:rgba(var(--accent-rgb),.5);background:linear-gradient(160deg,#ffffffd9,rgba(var(--accent-rgb),.12));box-shadow:0 8px 28px rgba(var(--accent-rgb),.15)}.landing-plan-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #131b0f1a}.landing-plan-name{margin:0;font-family:Oswald,sans-serif;font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.landing-plan-price{margin:0;font-family:Oswald,sans-serif;font-size:2rem;font-weight:700;color:var(--ink);line-height:1.1}.landing-plan-period{font-size:.85rem;font-weight:400;color:var(--ink-soft);margin-left:4px}.landing-plan-features{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;flex:1}.landing-plan-features li{font-size:.88rem;color:var(--ink-soft);padding-left:18px;position:relative}.landing-plan-features li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}.landing-plan-cta{text-decoration:none;text-align:center;margin-top:8px}.landing-footer-cta{position:relative;z-index:1;text-align:center;padding:80px clamp(20px,5vw,48px) 60px}.landing-footer-cta .btn{text-decoration:none;margin-top:24px;display:inline-block}.landing-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(20px,5vw,48px);border-top:1px solid rgba(var(--ink-rgb),.1);font-size:.8rem;color:var(--ink-soft)}.landing-footer-brand{font-family:Oswald,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);font-size:.88rem}@media (max-width: 768px){.landing-hero{min-height:auto;padding:100px 20px 60px}.landing-hero-title{font-size:clamp(2rem,8vw,2.8rem)}.landing-section{padding:50px 20px}.landing-features{grid-template-columns:1fr}.landing-steps{flex-direction:column}.landing-pricing{grid-template-columns:1fr}.landing-footer-cta{padding:50px 20px}.landing-footer{flex-direction:column;gap:8px;text-align:center}}@media (max-width: 480px){.landing-nav{padding:10px 14px}.landing-nav-actions .ghost-btn,.landing-nav-actions .btn{font-size:.75rem;padding:8px 12px}.landing-hero{padding:80px 16px 40px}.landing-section{padding:40px 16px}.landing-section-title{font-size:1.5rem}.landing-feature-card,.landing-step,.landing-plan-card{padding:18px 16px}.btn--lg{padding:12px 22px;font-size:.88rem}.landing-footer-cta{padding:40px 16px}}.celery-task-log{margin-top:32px}.admin-section-title{font-family:Oswald,sans-serif;font-size:1.1rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:0 0 16px;display:flex;align-items:center;gap:8px}.celery-task-log__spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:celery-spin .6s linear infinite}@keyframes celery-spin{to{transform:rotate(360deg)}}.admin-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th{padding:10px 14px;text-align:left;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:8px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table__empty{text-align:center;color:var(--ink-soft);padding:24px 14px!important}.celery-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.celery-badge--success{background:rgba(var(--accent-rgb),.18);color:var(--accent-deep)}.celery-badge--failure{background:rgba(var(--danger-rgb),.14);color:var(--danger)}.celery-badge--started{background:rgba(var(--signal-rgb),.14);color:var(--signal)}.celery-badge--timeout{background:rgba(var(--danger-rgb),.1);color:#b45309}.celery-task-log__result{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:var(--ink-soft)}.celery-task-log__pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}.celery-task-log__page-info{font-size:.82rem;color:var(--ink-soft)}.btn--sm{padding:5px 14px;font-size:.78rem}.celery-task-row{cursor:pointer;transition:background .15s}.celery-task-row:hover{background:rgba(var(--accent-rgb),.06)}.celery-task-row--active{background:rgba(var(--accent-rgb),.1)}.celery-detail-row td{padding:0!important;border-bottom:1px solid var(--border)}.celery-detail{padding:14px 18px 16px;background:var(--panel);border-top:1px solid var(--border)}.celery-detail__grid{display:grid;grid-template-columns:130px 1fr;gap:6px 14px;margin:0;font-size:.84rem}.celery-detail__grid dt{font-weight:700;color:var(--ink-soft);white-space:nowrap}.celery-detail__grid dd{margin:0;word-break:break-all}.celery-detail__mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem}.celery-detail__pre{white-space:pre-wrap;font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem;background:var(--surface);padding:6px 10px;border-radius:6px;max-height:200px;overflow-y:auto}.celery-detail__error{color:var(--danger)}.celery-tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:28px}.celery-task-card{display:flex;flex-direction:column;gap:8px}.celery-task-card__header{display:flex;justify-content:space-between;align-items:center}.celery-task-card__title{margin:0;font-size:.92rem;font-weight:700}.celery-task-card__schedule{font-size:.75rem;color:var(--ink-soft);background:var(--surface);padding:2px 8px;border-radius:10px;white-space:nowrap}.celery-task-card__desc{font-size:.82rem;color:var(--ink-soft);margin:0;line-height:1.4}.celery-task-card__actions{display:flex;align-items:center;gap:10px;margin-top:auto}.celery-task-card__feedback{font-size:.78rem}.celery-task-card__feedback--ok{color:var(--success)}.celery-task-card__feedback--err{color:var(--danger)}.celery-history-filters{display:flex;gap:10px;margin-bottom:12px}.celery-history-filters .form-select--sm,.celery-history-filters .form-input--sm{padding:5px 10px;font-size:.82rem;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--ink)}.celery-history-filters .form-input--sm{flex:1;max-width:260px}html:has(.pcap-dashboard),html:has(.pcap-dashboard) body,html:has(.pcap-dashboard) #root{height:auto;overflow:auto}.pcap-dashboard{min-height:100vh;padding:24px clamp(16px,4vw,48px);background:radial-gradient(circle at 6% 9%,rgba(var(--accent-rgb),.12),transparent 44%),radial-gradient(circle at 94% 12%,rgba(var(--signal-rgb),.08),transparent 37%),linear-gradient(145deg,#f8fbf4,#edf3e7 46%,#e7eee0);font-family:Lato,Segoe UI,sans-serif;color:var(--ink)}.pcap-dashboard__loading,.pcap-dashboard__error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;text-align:center;color:var(--ink-soft);font-weight:600}.pcap-dashboard__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.pcap-dashboard__title{font-family:Oswald,sans-serif;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:0}.pcap-dashboard__subtitle{margin:4px 0 0;font-size:.88rem;color:var(--ink-soft)}.pcap-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--edge);padding-bottom:0}.pcap-tabs__item{padding:10px 20px;font-size:.9rem;font-weight:600;color:var(--ink-soft);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .16s ease,border-color .16s ease;font-family:inherit}.pcap-tabs__item:hover{color:var(--ink)}.pcap-tabs__item--active{color:var(--accent-deep);border-bottom-color:var(--accent)}.pcap-dashboard__content{display:flex;flex-direction:column;gap:20px}.pcap-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.pcap-stat-card{text-align:center;padding:16px;border:1px solid rgba(var(--ink-rgb),.12);border-radius:14px;background:#ffffffb8}.pcap-stat-card__label{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.pcap-stat-card__value{margin:6px 0 0;font-family:Oswald,sans-serif;font-size:1.5rem;font-weight:700;color:var(--ink)}.pcap-charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}.pcap-card{border:1px solid rgba(var(--ink-rgb),.12);border-radius:14px;background:#ffffffb8;padding:20px}.pcap-card__title{font-family:Oswald,sans-serif;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px}.pcap-card__subtitle{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:16px 0 8px}.pcap-card__detail{margin:12px 0 0;font-size:.88rem;color:var(--ink-soft)}.pcap-table-wrapper{overflow-x:auto;border-radius:10px;border:1px solid rgba(var(--ink-rgb),.1)}.pcap-table{width:100%;border-collapse:collapse;font-size:.85rem}.pcap-table th{text-align:left;padding:8px 12px;background:rgba(var(--ink-rgb),.05);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid rgba(var(--ink-rgb),.1)}.pcap-table td{padding:7px 12px;border-bottom:1px solid rgba(var(--ink-rgb),.06)}.pcap-table tbody tr:last-child td{border-bottom:none}.pcap-table__mono{font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem}.pcap-table--compact{font-size:.82rem}.pcap-table--compact th,.pcap-table--compact td{padding:5px 10px}.pcap-security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.pcap-anomaly-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pcap-anomaly-badge--info{background:rgba(var(--signal-rgb),.14);color:var(--signal)}.pcap-anomaly-badge--warning{background:#e6a8172e;color:#8a6400}.pcap-anomaly-badge--critical{background:rgba(var(--danger-rgb),.14);color:var(--danger)}.pcap-anomaly-list{margin:0;padding:0 0 0 1.2em;list-style:disc}.pcap-anomaly-item{font-size:.88rem;line-height:1.6;color:var(--ink-soft)}.pcap-ssid-list{display:flex;flex-wrap:wrap;gap:8px}.pcap-ssid-chip{display:inline-block;padding:4px 12px;border:1px solid rgba(var(--accent-rgb),.36);background:rgba(var(--accent-rgb),.08);border-radius:999px;font-size:.82rem;font-weight:600}.tool-call-dashboard-link{display:inline-block;margin-top:8px;padding:4px 12px;font-size:.78rem;font-weight:700;color:var(--signal);border:1px solid rgba(var(--signal-rgb),.3);border-radius:8px;text-decoration:none;transition:background-color .14s ease,color .14s ease}.tool-call-dashboard-link:hover{background:rgba(var(--signal-rgb),.1);color:#0d4799}@media (max-width: 768px){.pcap-dashboard{padding:16px 12px}.pcap-dashboard__header{flex-direction:column;gap:10px}.pcap-charts-row{grid-template-columns:1fr}.pcap-stats-grid{grid-template-columns:repeat(2,1fr)}.pcap-security-grid{grid-template-columns:1fr}.pcap-tabs__item{padding:8px 14px;font-size:.82rem}}@media (max-width: 480px){.pcap-stats-grid{grid-template-columns:1fr}.pcap-card{padding:14px}}.admin-tab-btn{border:1px solid var(--border);background:transparent;color:var(--ink-soft);padding:9px 18px;font-size:.84rem;font-weight:700;cursor:pointer;transition:background .16s ease,color .16s ease}.admin-tab-btn:first-child{border-radius:8px 0 0 8px}.admin-tab-btn:last-child{border-radius:0 8px 8px 0}.admin-tab-btn:not(:first-child){border-left:none}.admin-tab-btn--active{background:var(--accent);color:#17330d;border-color:var(--accent)}.admin-tab-btn:hover:not(.admin-tab-btn--active){background:rgba(var(--ink-rgb),.06)}.admin-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-cards-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-cards-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-cards-grid--auto{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.admin-stat-card{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:12px;background:#ffffffad;padding:14px 16px;animation:rise-in .3s ease both}.admin-stat-card__label{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--ink-soft)}.admin-stat-card__value{font-size:1.6rem;font-weight:800;color:var(--ink);line-height:1.1}.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.status-badge--uploaded{background:rgba(var(--signal-rgb, 100, 149, 237),.15);color:#2c5fa1}.status-badge--processing{background:#ffc1072e;color:#7a6200}.status-badge--completed{background:rgba(var(--accent-rgb),.18);color:#2d6b0e}.status-badge--failed{background:rgba(var(--danger-rgb),.15);color:#8b1a1a}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;padding:8px 0}.file-input-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-input-row{display:flex;align-items:center;gap:12px}.file-input-row label{margin:0;flex-shrink:0;cursor:pointer}.file-input-name{font-size:.84rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-filter-bar{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px;flex-wrap:wrap}.admin-filter-bar__field{display:flex;flex-direction:column;gap:4px}.admin-filter-bar__label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.admin-filter-bar__field input,.admin-filter-bar__field select{padding:8px 12px;border:1px solid var(--edge);border-radius:10px;font-size:.88rem;background:var(--panel-strong);color:var(--ink)}.admin-filter-bar__actions{display:flex;gap:8px;align-items:center;margin-left:auto}.admin-alert-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:.8rem;font-weight:700}.admin-alert-badge--info{background:rgba(var(--signal-rgb, 100, 149, 237),.12);color:#2c5fa1}.admin-alert-badge--warning{background:#ffc1072e;color:#7a6200}.admin-alert-badge--critical{background:rgba(var(--danger-rgb),.15);color:#8b1a1a}@media (max-width: 768px){.admin-cards-grid,.admin-cards-grid--4,.admin-cards-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filter-bar{flex-direction:column;align-items:stretch}.admin-filter-bar__actions{margin-left:0}}@media (max-width: 480px){.admin-cards-grid,.admin-cards-grid--4,.admin-cards-grid--5{grid-template-columns:1fr}}.topology-view{display:flex;flex-direction:column;padding:0!important;overflow:hidden}.topology-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid rgba(var(--ink-rgb),.08);flex-shrink:0}.topology-header .view-title{font-size:1.1rem;margin:0}.topology-header .view-subtitle{font-size:.82rem;margin:4px 0 0}.topology-stats{display:flex;gap:6px;flex-wrap:wrap}.topology-canvas{flex:1;min-height:0}.topology-canvas .react-flow__node{background:var(--surface);border:1px solid rgba(var(--ink-rgb),.15);border-radius:10px;padding:10px 14px;font-size:.82rem;color:var(--ink);box-shadow:0 1px 4px #0000000f}.topology-canvas .react-flow__edge-text{font-size:.7rem;fill:var(--ink-soft)}
