.fab-cluster{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;align-items:center;gap:12px;z-index:10000}.fab{width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0003,0 1px 4px #0000001a;transition:all .25s cubic-bezier(.4,0,.2,1)}.fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #00000040}.fab-chat{background:linear-gradient(135deg,#0071c5,#00285a);color:#fff}.fab-chat.fab-active{background:linear-gradient(135deg,#dc3545,#a71d2a)}.fab-profile{width:40px;height:40px;font-size:15px;font-weight:700;background:#fff;color:#0071c5;border:2px solid #0071C5}.fab-profile:hover{background:#e8f0fe}@keyframes fabPulse{0%,to{box-shadow:0 4px 16px #0071c54d}50%{box-shadow:0 4px 32px #0071c599}}.fab-pulse{animation:fabPulse 2s ease-in-out infinite}.chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:10001;display:flex;justify-content:flex-end;animation:fadeIn .15s ease-out;height:100vh;height:100dvh}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-panel{width:440px;max-width:100vw;height:100vh;height:100dvh;background:#fff;display:flex;flex-direction:column;box-shadow:-4px 0 24px #0000001f;animation:slideIn .2s cubic-bezier(.4,0,.2,1);transition:width .25s cubic-bezier(.4,0,.2,1);overflow:hidden}.chat-overlay-max{justify-content:stretch}.chat-panel-max{width:100vw;max-width:100vw;box-shadow:none;animation:none}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#00285a,#0071c5);color:#fff;flex-shrink:0}.chat-header-left{display:flex;align-items:center;gap:12px}.chat-logo{font-size:28px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.chat-title{margin:0;font-size:16px;font-weight:700;letter-spacing:-.02em}.chat-subtitle{font-size:11px;opacity:.7;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.chat-header-actions{display:flex;gap:4px}.chat-icon-btn{width:32px;height:32px;border:none;border-radius:6px;background:#ffffff26;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.chat-icon-btn:hover{background:#ffffff4d}.chat-nav{display:flex;gap:2px;padding:4px 8px;background:#f7f8fa;border-bottom:1px solid #e4e7eb;flex-shrink:0}.chat-nav-btn{flex:1;padding:8px 4px;border:none;border-radius:6px;background:transparent;color:#666;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.chat-nav-btn:hover{background:#e8f0fe;color:#0071c5}.chat-nav-btn.active{background:#0071c5;color:#fff}.chat-messages{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:16px;display:flex;flex-direction:column;gap:16px}.chat-msg{display:flex;gap:10px;max-width:92%;flex-shrink:0}.chat-msg-user{align-self:flex-end;flex-direction:row-reverse}.chat-msg-assistant{align-self:flex-start;max-width:96%}.chat-msg-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:#f0f4f8}.chat-msg-user .chat-msg-avatar{background:#0071c5}.chat-msg-body{display:flex;flex-direction:column;gap:2px}.chat-msg-meta{display:flex;align-items:center;gap:8px;font-size:11px}.chat-msg-name{font-weight:600;color:#333}.chat-msg-time{color:#999}.chat-msg-content{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}.chat-msg-user .chat-msg-content{background:linear-gradient(135deg,#0071c5,#005a9e);color:#fff;border-bottom-right-radius:4px}.chat-msg-assistant .chat-msg-content{background:#f0f4f8;color:#1a1a2e;border:1px solid #e4e7eb;border-bottom-left-radius:4px}.chat-msg-content.md-content{white-space:normal}.chat-msg-content.md-content .md-p{margin:0 0 8px}.chat-msg-content.md-content .md-p:last-child{margin-bottom:0}.chat-msg-content.md-content .md-h{margin:12px 0 6px;font-weight:700;line-height:1.3}.chat-msg-content.md-content h1.md-h{font-size:17px}.chat-msg-content.md-content h2.md-h{font-size:15px}.chat-msg-content.md-content h3.md-h{font-size:14px}.chat-msg-content.md-content .md-pre{background:#1e1e2e;color:#cdd6f4;border-radius:8px;padding:12px;margin:8px 0;overflow-x:auto;overflow-y:auto;max-height:300px;font-size:12px;line-height:1.5;position:relative}.chat-msg-content.md-content .md-code{font-family:Cascadia Code,Fira Code,Consolas,monospace;white-space:pre}.chat-msg-content.md-content .md-ic{background:#0071c51a;color:#0071c5;padding:1px 5px;border-radius:4px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px}.chat-msg-content.md-content .md-tbl{width:100%;border-collapse:collapse;margin:8px 0;font-size:12px;display:block;overflow-x:auto}.chat-msg-content.md-content .md-tbl th{background:#e4e7eb;font-weight:600;text-align:left;padding:6px 10px;border:1px solid #d0d5dd}.chat-msg-content.md-content .md-tbl td{padding:5px 10px;border:1px solid #e4e7eb}.chat-msg-content.md-content .md-ul,.chat-msg-content.md-content .md-ol{margin:6px 0;padding-left:20px}.chat-msg-content.md-content li{margin:2px 0}.chat-msg-content.md-content .md-bq{border-left:3px solid #0071C5;padding:6px 12px;margin:8px 0;background:#0071c50d;color:#555}.chat-msg-content.md-content .md-hr{border:none;border-top:1px solid #e4e7eb;margin:10px 0}.chat-msg-content.md-content a{color:#0071c5;text-decoration:underline}.chat-msg-content.md-content strong{font-weight:700}.chat-msg-content.md-content em{font-style:italic}.md-mermaid-wrap{margin:8px 0}.md-mermaid{background:#f8f9fa;border:1px solid #e4e7eb;border-radius:8px;padding:16px;text-align:center;overflow-x:auto}.md-mermaid svg{max-width:100%;height:auto}.md-mermaid-rendered{min-height:60px}.md-mermaid-error{background:#fff5f5;border-color:#fecaca}.md-mermaid-code{margin-top:4px;font-size:12px;color:#666}.md-mermaid-code summary{cursor:pointer;padding:4px 8px;border-radius:4px;-webkit-user-select:none;user-select:none}.md-mermaid-code summary:hover{background:#f0f4f8}.md-mermaid-code .md-pre{max-height:200px}.md-mermaid-toolbar{display:flex;justify-content:flex-end;gap:6px;margin-bottom:4px}.md-mermaid-expand{background:#0071c5;color:#fff;border:none;border-radius:4px;padding:3px 10px;font-size:11px;cursor:pointer;font-family:inherit}.md-mermaid-expand:hover{background:#005a9e}.md-mermaid-refresh{background:#f0f4f8;color:#333;border:1px solid #ccc;border-radius:4px;padding:3px 10px;font-size:11px;cursor:pointer;font-family:inherit}.md-mermaid-refresh:hover{background:#e3f2fd;border-color:#0071c5}.md-bpmn-drill{display:inline-block;background:#f8fafc;color:#0071c5;border:1px solid #b0c4de;border-radius:6px;padding:6px 12px;margin:3px 0;font-size:12px;cursor:pointer;font-family:inherit;text-align:left;transition:background .15s,border-color .15s,transform .1s;width:100%}.md-bpmn-drill:hover{background:#e3f2fd;border-color:#0071c5;transform:translate(2px)}.md-bpmn-drill:active{background:#0071c5;color:#fff}.md-mermaid-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:100000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.md-mermaid-overlay-content{background:#fff;border-radius:8px;padding:48px 24px 24px;width:calc(100vw - 48px);height:calc(100vh - 48px);overflow:auto;position:relative;box-shadow:0 8px 32px #0000004d;box-sizing:border-box}.md-mermaid-overlay-content svg{width:100%;height:100%;max-width:none}.md-mermaid-overlay-close{position:absolute;top:8px;right:12px;background:#e4e7eb;border:none;border-radius:50%;width:32px;height:32px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}.md-mermaid-overlay-close:hover{background:#ccc}.chat-typing{display:flex;gap:5px;padding:12px 16px}.chat-typing span{width:7px;height:7px;background:#0071c5;border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.chat-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;flex:1}.chat-welcome-icon{font-size:48px;margin-bottom:12px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.chat-welcome h4{margin:0 0 8px;font-size:18px;color:#00285a}.chat-welcome p{color:#666;font-size:13px;margin:0 0 20px;max-width:300px}.chat-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:340px}.chat-quick-btn{padding:10px 12px;border:1px solid #e4e7eb;border-radius:8px;background:#fff;color:#333;font-size:12px;cursor:pointer;text-align:left;transition:all .15s}.chat-quick-btn:hover{border-color:#0071c5;background:#e8f0fe;color:#0071c5}.chat-input-area{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #e4e7eb;background:#fff;flex-shrink:0}.chat-input{flex:1;padding:10px 14px;border:1.5px solid #d0d5dd;border-radius:10px;font-size:13px;font-family:inherit;resize:none;min-height:20px;max-height:120px;outline:none;transition:border-color .15s}.chat-input:focus{border-color:#0071c5;box-shadow:0 0 0 3px #0071c51a}.chat-send-btn{width:40px;height:40px;border:none;border-radius:10px;background:#0071c5;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.chat-send-btn:hover:not(:disabled){background:#005a9e}.chat-send-btn:disabled{opacity:.4;cursor:default}.chat-templates{flex:1;overflow-y:auto;display:flex;flex-direction:column}.chat-template-cats{display:flex;gap:4px;padding:12px 16px 8px;flex-wrap:wrap}.chat-cat-btn{padding:4px 12px;border:1px solid #d0d5dd;border-radius:16px;background:#fff;color:#666;font-size:12px;cursor:pointer;transition:all .15s}.chat-cat-btn:hover{border-color:#0071c5;color:#0071c5}.chat-cat-btn.active{background:#0071c5;color:#fff;border-color:#0071c5}.chat-template-list{padding:8px 16px;display:flex;flex-direction:column;gap:8px}.chat-template-card{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid #e4e7eb;border-radius:10px;cursor:pointer;transition:all .15s}.chat-template-card:hover{border-color:#0071c5;background:#f8faff;box-shadow:0 2px 8px #0071c514}.chat-template-icon{font-size:20px;flex-shrink:0;margin-top:2px}.chat-template-title{font-size:13px;font-weight:600;color:#1a1a2e;margin-bottom:4px}.chat-template-desc{font-size:12px;color:#888;line-height:1.4}.chat-history{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.chat-history-item{padding:12px 14px;border:1px solid #e4e7eb;border-radius:10px;transition:all .15s;display:flex;align-items:center;gap:8px}.chat-history-item:hover{border-color:#0071c5;background:#f8faff}.chat-history-content{flex:1;cursor:pointer;min-width:0}.chat-history-toolbar{display:flex;justify-content:space-between;align-items:center;padding:4px 0 8px}.chat-history-count{font-size:12px;color:#666}.chat-history-clear-all{background:none;border:1px solid #e4e7eb;border-radius:6px;padding:4px 10px;font-size:11px;color:#dc3545;cursor:pointer;transition:all .15s}.chat-history-clear-all:hover{background:#fef2f2;border-color:#dc3545}.chat-history-del{background:none;border:none;font-size:14px;cursor:pointer;padding:4px;border-radius:4px;opacity:.4;transition:opacity .15s;flex-shrink:0}.chat-history-del:hover{opacity:1;background:#fef2f2}.chat-history-preview{font-size:13px;color:#333;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-history-meta{font-size:11px;color:#999}.chat-empty{display:flex;align-items:center;justify-content:center;height:200px;color:#999;font-size:13px}.chat-admin{flex:1;overflow-y:auto;padding:16px 20px}.chat-admin-title{margin:0 0 16px;font-size:15px;color:#00285a}.chat-admin-label{display:block;font-size:12px;font-weight:600;color:#555;margin:12px 0 4px}.chat-admin-input,.chat-admin-select{width:100%;padding:8px 12px;border:1.5px solid #d0d5dd;border-radius:6px;font-size:13px;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s}.chat-admin-input:focus,.chat-admin-select:focus{border-color:#0071c5}.chat-admin-hint{font-size:11px;color:#999;margin-top:4px;display:block}.chat-admin-save{margin-top:20px;width:100%;padding:10px;border:none;border-radius:8px;background:#0071c5;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.chat-admin-save:hover{background:#005a9e}.chat-admin-section{margin-top:28px;padding-top:20px;border-top:1px solid #e4e7eb}.chat-admin-roles{display:flex;flex-direction:column;gap:8px;margin-top:12px}.chat-role-card{padding:10px 14px;border:1px solid #e4e7eb;border-radius:8px;display:flex;flex-direction:column;gap:2px}.chat-role-card strong{font-size:13px;color:#00285a}.chat-role-card span{font-size:12px;color:#888}.profile-panel{width:380px;max-width:100vw;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;margin:auto;padding:24px;animation:fadeIn .15s ease-out;max-height:90vh;overflow-y:auto}.profile-header{display:flex;align-items:center;gap:14px;margin-bottom:24px}.profile-close-btn{margin-left:auto;width:32px;height:32px;border:1px solid #d0d5dd;border-radius:6px;background:#f7f8fa;color:#666;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.profile-close-btn:hover{background:#fee;border-color:#c62828;color:#c62828}.profile-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#0071c5,#00285a);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}.profile-name{margin:0;font-size:16px;color:#1a1a2e}.profile-role-badge{display:inline-block;padding:2px 8px;border-radius:10px;background:#e8f0fe;color:#0071c5;font-size:11px;font-weight:600;text-transform:capitalize}.profile-section{margin-bottom:20px}.profile-section h4{margin:0 0 8px;font-size:14px;color:#00285a}.dm-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.dm-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid #e4e7eb;border-radius:8px;background:#fff;color:#333;font-size:12px;cursor:pointer;transition:all .15s}.dm-btn:hover{border-color:#0071c5;background:#f8faff}.dm-danger{color:#dc3545;border-color:#fecaca}.dm-danger:hover{background:#fef2f2;border-color:#dc3545}.chat-footer{padding:8px 16px;border-top:1px solid #e4e7eb;text-align:center;flex-shrink:0}.chat-footer-text{font-size:11px;color:#999}@media(max-width:768px){.chat-panel{width:100vw}}@media(max-width:480px){.chat-panel{width:100vw;border-radius:0}.chat-header{padding:12px 14px}.chat-title{font-size:14px}.chat-messages{padding:12px;gap:12px}.chat-input-area{padding:10px 12px}.chat-input{font-size:16px}.chat-welcome{padding:24px 16px}.chat-quick-actions{grid-template-columns:1fr}.profile-panel{width:95vw;border-radius:8px}.fab-cluster{bottom:16px;right:16px}.fab-chat{width:48px;height:48px}.fab-profile{width:36px;height:36px;font-size:13px}}.health-check-panel{padding:16px;display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:auto}.hc-header{display:flex;align-items:center;justify-content:space-between}.hc-header h3{margin:0;font-size:15px;color:#1a1a2e;font-weight:700}.hc-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.hc-status-badge.pass{background:#dcfce7;color:#166534}.hc-status-badge.warn{background:#fef9c3;color:#854d0e}.hc-status-badge.fail{background:#fee2e2;color:#991b1b}.hc-status-badge.running{background:#e0f2fe;color:#075985}.hc-check-list{display:flex;flex-direction:column;gap:8px}.hc-check-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e4e7eb;border-radius:8px;background:#fafbfc;transition:border-color .15s}.hc-check-item.pass{border-color:#bbf7d0;background:#f0fdf4}.hc-check-item.warn{border-color:#fde68a;background:#fefce8}.hc-check-item.fail{border-color:#fecaca;background:#fef2f2}.hc-check-item.skip{border-color:#e4e7eb;background:#f9fafb;opacity:.7}.hc-check-icon{font-size:16px;flex-shrink:0;margin-top:1px}.hc-check-body{flex:1;min-width:0}.hc-check-name{font-size:13px;font-weight:600;color:#1a1a2e;margin-bottom:2px}.hc-check-detail{font-size:12px;color:#666;word-break:break-word}.hc-check-fix{font-size:11px;color:#a0c4ff;margin-top:4px;line-height:1.4;padding:4px 8px;background:#0071c514;border-left:2px solid #0071c5;border-radius:3px}.hc-check-latency{font-size:11px;color:#999;flex-shrink:0;margin-top:2px}.hc-progress-bar{width:100%;height:4px;background:#e4e7eb;border-radius:2px;overflow:hidden}.hc-progress-fill{height:100%;background:linear-gradient(90deg,#0071c5,#00a1e0);border-radius:2px;transition:width .3s ease}.hc-run-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border:none;border-radius:8px;background:#0071c5;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.hc-run-btn:hover{background:#005a9e}.hc-run-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes hcSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hc-spinning{animation:hcSpin 1s linear infinite;display:inline-block}@supports (padding-bottom: env(safe-area-inset-bottom)){.chat-input-area{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.chat-footer{padding-bottom:calc(8px + env(safe-area-inset-bottom))}}:root{--intel-blue: #0071c5;--intel-dark: #00285a;--intel-light: #e8f0fe;--header-bg: #1F4E79;--success-green: #28a745;--danger-red: #dc3545;--warning-amber: #ffc107;--text-primary: #333;--text-secondary: #666;--border-color: #ddd;--bg-page: #f5f7fa}.ag-cell{line-height:1.4!important}.ag-cell-wrap-text{word-break:break-word!important;white-space:normal!important;padding-top:6px!important;padding-bottom:6px!important}.ag-large-text-input{min-height:120px!important;font-size:13px!important;line-height:1.5!important;padding:8px!important}.ag-popup-editor{z-index:9999!important;overflow:visible!important}.ag-popup-editor .ag-popup-child{overflow:visible!important}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg-page);color:var(--text-primary)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.sidebar-resizable{display:flex;flex-shrink:0;position:relative}.sidebar-resize-handle{width:4px;cursor:col-resize;background:transparent;transition:background .15s;flex-shrink:0}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:var(--intel-blue, #0071C5)}.ft-collapsed{width:36px;background:#f8fafc;border-right:1px solid var(--border-color);display:flex;align-items:flex-start;justify-content:center;padding-top:12px;cursor:pointer;flex-shrink:0;transition:background .15s}.ft-collapsed:hover{background:var(--intel-light)}.ft-collapsed-icon{font-size:18px}.ft-sidebar{width:100%;background:#fff;border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.ft-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-color);background:#f8fafc}.ft-title{font-size:13px;font-weight:600;color:var(--intel-dark)}.ft-header-actions{display:flex;align-items:center;gap:4px}.ft-refresh-btn{background:none;border:none;font-size:13px;cursor:pointer;color:var(--text-secondary);padding:2px 6px;border-radius:4px;transition:transform .2s}.ft-refresh-btn:hover{background:#e4e8ed;transform:rotate(90deg)}.ft-collapse-btn{background:none;border:none;font-size:12px;cursor:pointer;color:var(--text-secondary);padding:2px 6px;border-radius:4px}.ft-collapse-btn:hover{background:#e4e8ed}.ft-search{padding:8px 12px;border-bottom:1px solid var(--border-color)}.ft-search input{width:100%;padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;font-size:12px;outline:none}.ft-search input:focus{border-color:var(--intel-blue);box-shadow:0 0 0 2px #0071c51f}.ft-info{display:flex;flex-direction:column;padding:6px 12px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:#fafbfc}.ft-info strong{color:var(--intel-dark)}.ft-info-hint{font-size:10px;color:#aaa;margin-top:2px;font-style:italic}.ft-tree{flex:1;overflow-y:auto;padding:4px 0}.ft-empty{padding:16px 12px;font-size:12px;color:#999;text-align:center;font-style:italic}.ft-node{display:flex;align-items:center;gap:4px;padding:3px 8px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:0;transition:background .1s}.ft-node:hover{background:#f0f4f8}.ft-node.ft-active{background:var(--intel-light);font-weight:600}.ft-node.ft-active .ft-name{color:var(--intel-blue)}.ft-arrow{font-size:8px;color:#999;transition:transform .15s;width:12px;text-align:center;flex-shrink:0}.ft-arrow-open{transform:rotate(90deg)}.ft-icon{font-size:13px;flex-shrink:0}.ft-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.ft-file .ft-name{color:var(--text-secondary)}.ft-tag{font-size:9px;padding:1px 5px;border-radius:3px;font-weight:600;flex-shrink:0;text-transform:uppercase;letter-spacing:.3px}.ft-tag-universal{background:#e8f5e9;color:#2e7d32}.ft-tag-r3{background:#e3f2fd;color:#1565c0}.ft-tag-r4{background:#fff3e0;color:#e65100}.ft-tag-r5{background:#f3e5f5;color:#7b1fa2}.ft-xlsx{cursor:pointer}.ft-xlsx:hover{background:#0071c514}.ft-xlsx .ft-name{color:var(--intel-blue);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.ft-loading{opacity:.6;pointer-events:none}.ft-info-tabs{font-size:10px;color:#888;font-style:italic;line-height:1.3}.loading-banner{background:#e3f2fd;color:#1565c0;padding:8px 24px;font-size:13px;text-align:center;flex-shrink:0;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.error-banner{background:#fdecea;color:#c62828;padding:8px 24px;font-size:13px;text-align:center;flex-shrink:0;cursor:pointer}.error-banner .dismiss{margin-left:12px;font-weight:700}.loaded-banner{background:#e8f5e9;color:#2e7d32;padding:6px 24px;font-size:13px;text-align:center;flex-shrink:0}.loaded-template{background:#fff3e0;color:#e65100}.app-header{background:linear-gradient(135deg,var(--intel-dark),var(--header-bg));color:#fff;padding:12px 24px;display:flex;align-items:baseline;gap:16px;flex-shrink:0}.header-logo{height:28px;width:28px;object-fit:contain;margin-right:4px}.app-header h1{font-size:20px;font-weight:600}.header-subtitle{font-size:14px;opacity:.8}.project-selector{font-size:18px;font-weight:600;background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:4px 12px;cursor:pointer;outline:none}.project-selector option{color:#00285a;background:#fff}.portal-switch{margin-left:auto;padding:6px 16px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s}.portal-switch:hover{background:#ffffff40}.app-controls{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:#fff;border-bottom:1px solid var(--border-color);flex-shrink:0;gap:24px;flex-wrap:wrap}.tower-selector{display:flex;gap:16px;align-items:center}.selector-group{display:flex;align-items:center;gap:8px}.selector-group label{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.selector-group select{padding:6px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background:#fff;min-width:200px}.selector-group select:focus{outline:none;border-color:var(--intel-blue);box-shadow:0 0 0 2px #0071c526}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0071c51f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;pointer-events:none;animation:drop-fade-in .15s ease}@keyframes drop-fade-in{0%{opacity:0}to{opacity:1}}.drop-overlay-content{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 64px;border:3px dashed var(--intel-blue);border-radius:16px;background:#ffffffeb;box-shadow:0 8px 32px #00000026}.drop-icon{font-size:48px;line-height:1}.drop-title{font-size:20px;font-weight:700;color:var(--intel-blue)}.drop-subtitle{font-size:13px;color:#666}.toolbar-stack{display:flex;flex-direction:column;gap:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px}.toolbar-data{background:#f0f4f8;border-bottom:1px solid var(--border-color)}.toolbar-diagrams{background:#f5f0fa;border-bottom:1px solid #e0d6ed}.toolbar-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:2px 8px;border-right:1px solid var(--border-color);margin-right:4px;white-space:nowrap}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:8px}.file-info{font-size:13px;color:var(--text-secondary);font-weight:500;padding:4px 12px;background:var(--intel-light);border-radius:4px}.file-badge{font-size:12px;color:var(--intel-blue);font-weight:600;padding:3px 10px;background:#dbeafe;border:1px solid var(--intel-blue);border-radius:4px;margin-left:8px;font-family:Consolas,Courier New,monospace}.btn{padding:6px 16px;border:1px solid var(--border-color);border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;background:#fff;transition:all .15s ease}.btn:hover{background:#f0f0f0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--intel-blue);color:#fff;border-color:var(--intel-blue)}.btn-primary:hover{background:#005ea2}.btn-success{background:var(--success-green);color:#fff;border-color:var(--success-green)}.btn-success:hover{background:#218838}.btn-save{background:#e3f2fd;color:var(--intel-blue);border-color:var(--intel-blue)}.btn-save:hover{background:#bbdefb}.btn-save-dirty{background:var(--intel-blue);color:#fff;border-color:var(--intel-blue);animation:save-pulse 2s ease-in-out infinite}.btn-save-dirty:hover{background:#005ea2}@keyframes save-pulse{0%,to{box-shadow:0 0 #0071c566}50%{box-shadow:0 0 0 4px #0071c51a}}.btn-github{background:#24292e;color:#fff;border-color:#24292e}.btn-github:hover{background:#1b1f23}.btn-github:disabled{background:#586069;border-color:#586069;cursor:not-allowed;opacity:.6}.btn-error{background:#fff5f5;color:#c53030;border-color:#fc8181}.btn-icon{min-width:auto;padding:6px 10px;font-size:16px;background:transparent;border-color:var(--border);color:var(--text-secondary)}.btn-icon:hover{background:var(--bg-hover);color:var(--intel-blue)}.github-error{font-size:11px;color:#c53030;margin-right:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-divider{display:inline-block;width:1px;height:24px;background:var(--border);margin:0 6px;vertical-align:middle}.btn-diagram{background:#4a148c;color:#fff;border-color:#4a148c}.btn-diagram:hover{background:#38006b}.btn-diagram:disabled{background:#9e9e9e;border-color:#9e9e9e;cursor:wait;opacity:.7}.template-dropdown-wrap{position:relative;display:inline-block}.btn-template{background:#1565c0;color:#fff;border-color:#1565c0}.btn-template:hover{background:#0d47a1}.template-dropdown{position:absolute;top:100%;left:0;z-index:1000;min-width:260px;margin:4px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000026}.template-dropdown li button{display:block;width:100%;padding:8px 14px;border:none;background:none;text-align:left;font-size:13px;color:var(--text-primary);cursor:pointer}.template-dropdown li button:hover{background:var(--intel-light)}.diagram-success{font-size:11px;color:var(--success-green);margin-right:12px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagram-error{font-size:11px;color:#c53030;margin-right:12px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:12px;padding:24px;width:440px;max-width:90vw;box-shadow:0 8px 32px #0003}.modal-content h3{margin:0 0 8px;font-size:18px;color:var(--intel-blue)}.modal-desc{font-size:13px;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.modal-desc code{background:#f0f4f8;padding:1px 6px;border-radius:4px;font-size:12px}.modal-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:monospace;margin-bottom:12px;box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--intel-blue);box-shadow:0 0 0 2px #0071c526}.modal-actions{display:flex;gap:8px;margin-bottom:8px}.modal-status{font-size:12px;padding:8px 12px;border-radius:6px;background:#f0f4f8;color:var(--text-secondary)}.modal-status.status-ok{background:#f0fff4;color:#276749}.modal-status.status-err{background:#fff5f5;color:#c53030}.save-timestamp{font-size:11px;color:var(--text-secondary);margin-right:12px;white-space:nowrap}.btn-add{color:var(--success-green);border-color:var(--success-green)}.btn-add:hover{background:#e6f7e9}.btn-delete{color:var(--danger-red);border-color:var(--danger-red)}.btn-delete:hover{background:#fde8ea}.btn-auto{color:var(--intel-blue);border-color:var(--intel-blue)}.btn-auto:hover{background:#e3f2fd}.ctx-menu{background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 4px 12px #00000026;padding:4px 0;min-width:200px}.ctx-menu button{display:block;width:100%;text-align:left;padding:8px 16px;border:none;background:transparent;cursor:pointer;font-size:13px;color:#333}.ctx-menu button:hover{background:#e3f2fd;color:var(--intel-blue)}@media(max-width:768px){.ctx-menu{min-width:220px;border-radius:10px;box-shadow:0 6px 24px #0003}.ctx-menu button{padding:14px 18px;font-size:15px}}.dirty-banner{background:var(--warning-amber);color:#333;padding:6px 24px;font-size:13px;text-align:center;flex-shrink:0}.tab-editor{flex:1;display:flex;flex-direction:column;overflow:hidden;outline:none;position:relative}.tab-ribbon{display:flex;background:#fff;border-bottom:2px solid var(--border-color);padding:0 24px;flex-shrink:0;overflow-x:auto}.tab-btn{padding:10px 20px;border:none;background:none;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s ease;white-space:nowrap;display:flex;align-items:center;gap:6px}.tab-btn:hover{color:var(--intel-blue);background:var(--intel-light)}.tab-btn.active{color:var(--intel-blue);border-bottom-color:var(--intel-blue);font-weight:600}.tab-count{font-size:11px;background:var(--intel-blue);color:#fff;border-radius:10px;padding:1px 7px;min-width:20px;text-align:center}.row-toolbar{display:flex;align-items:center;gap:10px;padding:8px 24px;background:#fafbfc;border-bottom:1px solid var(--border-color);flex-shrink:0}.row-info{font-size:12px;color:var(--text-secondary);margin-left:auto}.clipboard-hint{font-size:11px;color:#999;margin-left:12px;border-left:1px solid var(--border-color);padding-left:12px}.touch-hint{display:none;font-size:11px;color:#999;margin-left:8px}@media(max-width:768px){.touch-hint{display:inline}}.clipboard-toast{position:absolute;top:8px;right:24px;background:#00285aeb;color:#fff;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:500;z-index:100;pointer-events:none;animation:toast-in .2s ease-out;box-shadow:0 4px 12px #0003}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.grid-container{flex:1;overflow:hidden}.split-resize-handle{width:5px;cursor:col-resize;background:#e0e4ea;transition:background .15s;flex-shrink:0}.split-resize-handle:hover,.split-resize-handle:active{background:var(--intel-blue, #0071C5)}.sheet-frame{flex:1;margin:12px 16px 16px;border:2px solid #b0c4de;border-radius:6px;background:#fff;box-shadow:0 2px 12px #00285a1f,0 1px 3px #0000000f;display:flex;flex-direction:column;overflow:hidden}.sheet-frame .tab-editor{flex:1;display:flex;flex-direction:column;overflow:hidden}.sheet-frame .tab-ribbon{border-radius:4px 4px 0 0;padding:0 16px;background:#f8fafc}.sheet-frame .row-toolbar{padding:6px 16px}@media(max-width:1024px){.app-controls{padding:8px 16px;gap:12px}.tower-selector{flex-wrap:wrap;gap:8px}.selector-group select{min-width:140px;font-size:13px}.toolbar{flex-wrap:wrap;gap:8px}.toolbar-right{flex-wrap:wrap;gap:6px}.toolbar-label{font-size:10px;padding:2px 6px;margin-right:2px}.ft-sidebar{width:100%}.sidebar-resizable{max-width:220px}}@media(max-width:768px){.app{height:100dvh;height:100vh}.ft-sidebar,.ft-collapsed,.sidebar-resizable{display:none!important}.app-header{padding:8px 12px;gap:8px;flex-wrap:wrap}.app-header h1{font-size:15px}.header-subtitle{font-size:11px;flex-basis:100%}.header-logo{height:22px;width:22px}.portal-switch{font-size:11px;padding:4px 10px;order:-1;margin-left:0}.app-controls{padding:8px 10px;gap:8px;flex-direction:column;align-items:stretch}.tower-selector{display:grid;grid-template-columns:1fr 1fr;gap:6px}.selector-group{flex-direction:column;align-items:stretch;gap:2px}.selector-group label{font-size:10px;letter-spacing:.3px}.selector-group select{min-width:0;width:100%;font-size:16px;padding:8px 10px;border-radius:6px}.toolbar{flex-direction:column;gap:6px;align-items:stretch;padding:6px 10px}.toolbar-label{font-size:0;border-right:none;padding:0;margin-right:0}.toolbar-label:before{font-size:14px}.toolbar-data,.toolbar-diagrams{padding:4px 8px}.template-dropdown-wrap{position:static}.template-dropdown{position:fixed;left:8px;right:8px;width:auto;z-index:1000}.diagram-success,.diagram-error,.github-error{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-left{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;flex-shrink:0}.toolbar-left .btn{white-space:nowrap;font-size:12px;padding:6px 10px;flex-shrink:0}.toolbar-right{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;justify-content:flex-end}.file-info{font-size:11px;padding:2px 8px}.file-badge{font-size:10px;padding:2px 6px}.save-timestamp{font-size:10px}.tab-ribbon{padding:0 8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-ribbon::-webkit-scrollbar{display:none}.tab-btn{padding:8px 12px;font-size:12px;flex-shrink:0}.row-toolbar{padding:6px 10px;gap:6px;flex-wrap:wrap}.row-toolbar .btn{font-size:11px;padding:4px 8px}.clipboard-hint{display:none}.loading-banner,.error-banner,.loaded-banner,.dirty-banner{padding:6px 12px;font-size:12px}.modal-content{width:95vw;padding:16px;border-radius:10px}.sheet-frame{margin:4px;border-radius:4px}.sheet-frame .tab-ribbon{padding:0 8px}.sheet-frame .row-toolbar{padding:4px 8px}}@media(max-width:480px){.app-header h1{font-size:13px}.header-subtitle{display:none}.tower-selector{grid-template-columns:1fr}.toolbar-stack{gap:0}.toolbar-data,.toolbar-diagrams{padding:3px 6px}.toolbar-label{display:none}.toolbar-left .btn{font-size:11px;padding:5px 8px}.file-info{display:none}.file-badge{font-size:9px}.save-timestamp{display:none}.tab-btn{padding:6px 10px;font-size:11px}.tab-count{font-size:9px;padding:0 5px}}
