.subtitle{color:#666;margin-top:-10px;margin-bottom:30px}.card{background:#fff;border-radius:8px;padding:24px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}.info-card{background:#f8f9fa}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;margin-bottom:8px;color:#333}.form-group input{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-group small{display:block;margin-top:4px;color:#666;font-size:12px}button{background:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600}button:hover:not(:disabled){background:#0056b3}button:disabled{background:#ccc;cursor:not-allowed}.error-message{margin-top:16px;padding:12px;background:#fee;border-left:4px solid #c33;color:#c33;border-radius:4px}.token-result{margin-top:24px;padding-top:24px;border-top:2px solid #eee}.token-display{display:flex;gap:12px;align-items:flex-start;background:#f5f5f5;padding:16px;border-radius:4px;margin:12px 0}.token-display code{flex:1;word-break:break-all;font-family:Courier New,monospace;font-size:13px;color:#333}.copy-btn{background:#28a745!important;min-width:80px;padding:8px 16px;font-size:13px}.copy-btn:hover{background:#218838!important}.token-info{margin-top:12px}.token-info p{margin:8px 0;font-size:14px;color:#555}.token-info code{background:#f0f0f0;padding:2px 6px;border-radius:3px;font-size:13px}.info-card ul{margin:16px 0;padding-left:24px}.info-card li{margin:8px 0;color:#555}.note{margin-top:16px;padding:12px;background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;color:#856404}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.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:grab}.react-flow__node.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:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.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.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;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}.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-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.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:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.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:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform: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:#3367d9;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%}.page-container{padding:1.5rem;max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-title{font-size:1.75rem;font-weight:600;margin:0;color:var(--text-primary, #fff)}.page-subtitle{color:var(--text-muted, #888);margin:.25rem 0 0;font-size:.9rem}.header-actions{display:flex;gap:.5rem}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--card-bg, #1a1a2e);border-radius:12px;padding:1.25rem;border:1px solid var(--border, rgba(255,255,255,.1))}.stat-label{color:var(--text-muted, #888);font-size:.85rem;margin-bottom:.5rem}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary, #fff)}.stat-card.stat-success .stat-value{color:var(--green, #4caf50)}.stat-card.stat-danger .stat-value{color:var(--red, #f44336)}.stat-card.stat-warning .stat-value{color:var(--yellow, #ffc107)}.stat-card.stat-info .stat-value{color:var(--blue, #2196f3)}.card{background:var(--card-bg, #1a1a2e);border-radius:12px;padding:1.5rem;border:1px solid var(--border, rgba(255,255,255,.1));margin-bottom:1.5rem}.card h2,.card h3{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary, #fff)}.filters-card{padding:1rem 1.5rem}.filters-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{font-size:.8rem;color:var(--text-muted, #888)}.filter-group input,.filter-group select{background:var(--input-bg, #16162a);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:8px;padding:.5rem .75rem;color:var(--text-primary, #fff);min-width:140px}.data-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888);border-bottom:1px solid var(--border, rgba(255,255,255,.1))}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border, rgba(255,255,255,.05));color:var(--text-primary, #fff)}.data-table tbody tr:hover{background:#ffffff05}.data-table .row-warning{background:#ffc10714}.badge{display:inline-block;padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge-green{background:#4caf5033;color:#4caf50}.badge-red{background:#f4433633;color:#f44336}.badge-yellow{background:#ffc10733;color:#ffc107}.badge-blue{background:#2196f333;color:#2196f3}.badge-purple{background:#9c27b033;color:#ab47bc}.badge-cyan{background:#00bcd433;color:#00bcd4}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-weight:500;cursor:pointer;border:none;transition:all .2s ease;font-size:.9rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:#ffffff1a;color:var(--text-primary, #fff)}.btn-secondary:hover:not(:disabled){background:#ffffff26}.btn-success{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff}.btn-danger{background:linear-gradient(135deg,#f44336,#c62828);color:#fff}.btn-sm{padding:.375rem .75rem;font-size:.8rem}.btn-xs{padding:.25rem .5rem;font-size:.75rem;border-radius:4px}.empty-state,.loading-state{text-align:center;padding:3rem 2rem;color:var(--text-muted, #888)}.empty-state p,.loading-state{margin:0 0 1rem}.empty-state.success-state .success-icon{font-size:3rem;display:block;margin-bottom:1rem}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card-bg, #1a1a2e);border-radius:16px;padding:2rem;width:90%;max-width:500px;border:1px solid var(--border, rgba(255,255,255,.1));box-shadow:0 20px 60px #0006}.modal h2{margin:0 0 1.5rem;font-size:1.25rem;color:var(--text-primary, #fff)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border, rgba(255,255,255,.1))}.form-group label{display:block;font-size:.85rem;color:var(--text-muted, #888);margin-bottom:.5rem}.form-group input,.form-group textarea,.form-group select{width:100%;background:var(--input-bg, #16162a);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:8px;padding:.75rem 1rem;color:var(--text-primary, #fff);font-size:.95rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent, #667eea);box-shadow:0 0 0 3px #667eea33}.form-group small{display:block;color:var(--text-muted, #666);font-size:.8rem;margin-top:.25rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px}.file-upload{border:2px dashed var(--border, rgba(255,255,255,.2));border-radius:8px;padding:1.5rem;text-align:center;transition:border-color .2s}.file-upload:hover{border-color:var(--accent, #667eea)}.file-upload input[type=file]{cursor:pointer}.file-name{display:block;margin-top:.5rem;color:var(--accent, #667eea);font-weight:500}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.setting-item{display:flex;flex-direction:column;gap:.25rem}.setting-label{font-size:.8rem;color:var(--text-muted, #888)}.setting-value{font-size:1.1rem;font-weight:600;color:var(--accent, #667eea)}.force-cache-bust-v4{display:none}:root{--bg-dark: #0f172a;--bg-card: #1e293b;--bg-card-hover: #334155;--primary: #3b82f6;--primary-hover: #2563eb;--text-main: #f8fafc;--text-muted: #94a3b8;--border: #334155;--success: #22c55e;--success-bg: rgba(34, 197, 94, .1);--warning: #eab308;--danger: #ef4444;--radio-size: 1.25rem}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-dark);color:var(--text-main);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;letter-spacing:-.025em}.page-container{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-title{font-size:1.875rem;margin-bottom:.5rem;color:#fff}.page-subtitle{color:var(--text-muted);font-size:1rem}.card{background-color:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;border:none;gap:.5rem}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover{background-color:#ffffff26}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.form-group{margin-bottom:1.25rem}label{display:block;margin-bottom:.5rem;color:#fff!important;font-size:.875rem;font-weight:600;letter-spacing:.025em}.form-input{width:100%;padding:.625rem;background-color:#0f172a;border:1px solid var(--border);border-radius:.5rem;color:#fff;font-size:.875rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #3b82f633}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:1rem;background-color:#0003;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;border-bottom:1px solid var(--border)}.data-table td{padding:1rem;border-bottom:1px solid var(--border);color:var(--text-main);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background-color:#ffffff05}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600}.badge-blue{background-color:#3b82f61a;color:#60a5fa}.badge-green{background-color:#22c55e1a;color:#4ade80}.modal-overlay{position:fixed;inset:0;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn .2s ease-out}.modal-content{background-color:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;width:100%;max-width:500px;box-shadow:0 20px 25px -5px #0000004d;animation:slideUp .3s ease-out}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:1.25rem;color:#fff}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer}.modal-body{padding:1.5rem}.modal-footer{padding:1.5rem;background-color:#0003;display:flex;justify-content:flex-end;gap:.75rem;border-top:1px solid var(--border)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.main-layout{display:flex;min-height:100vh;background-color:var(--bg-dark)}.sidebar{width:260px;background-color:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;z-index:40}.sidebar h1{font-size:1.25rem;padding:1.5rem;color:var(--text-main);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem}.sidebar nav{flex:1;overflow-y:auto;padding:1rem 0}.menu-groups{list-style:none;padding:0;margin:0}.menu-group{margin-bottom:.5rem}.group-header{width:100%;display:flex;align-items:center;padding:.75rem 1.5rem;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:all .2s;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.group-header:hover{color:var(--text-main);background-color:#ffffff05}.group-icon{margin-right:.75rem;font-size:1rem}.group-title{flex:1;text-align:left}.chevron{font-size:.625rem;transition:transform .2s;opacity:.5}.chevron.expanded{transform:rotate(180deg)}.group-items{list-style:none;padding:0;margin:0;overflow:hidden;height:0;opacity:0;transition:all .3s ease-in-out;background-color:#0003}.group-items.expanded{height:auto;opacity:1;padding:.5rem 0}.group-items li a{display:flex;align-items:center;padding:.625rem 1.5rem .625rem 2.5rem;color:var(--text-muted);text-decoration:none;font-size:.875rem;transition:all .2s;border-left:2px solid transparent}.group-items li a:hover{color:var(--text-main);background-color:#ffffff05}.group-items li a.active{color:var(--primary);background-color:#3b82f60d;border-left-color:var(--primary)}.item-icon{margin-right:.75rem;width:1.25rem;text-align:center;opacity:.8}.sidebar-footer{padding:1rem;border-top:1px solid var(--border);background-color:#0003}.noc-toggle{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.noc-toggle label{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-muted)!important;margin:0}.user-profile{display:flex;align-items:center;gap:.75rem}.avatar{width:36px;height:36px;border-radius:50%;background-color:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.user-info{flex:1;overflow:hidden}.user-name{color:var(--text-main);font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{color:var(--text-muted);font-size:.75rem}.content{flex:1;overflow-x:hidden;width:0}body.noc-mode{--bg-dark: #000000;--bg-card: #0a0a0a;--border: #333}body.noc-mode .sidebar{border-right-color:#333}
