@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--bg-main: #1a1a2e;--bg-card: #252536;--bg-card-hover: #2c2c42;--bg-topbar: #ffffff;--bg-bottombar: #f5f0eb;--bg-input: #1e1e30;--widget-purple: #7c3aed;--widget-green: #10b981;--widget-blue: #3b82f6;--widget-red: #ef4444;--widget-orange: #f59e0b;--widget-teal: #14b8a6;--text-white: #ffffff;--text-light: #e2e8f0;--text-muted: #94a3b8;--text-dim: #64748b;--text-dark: #1e293b;--text-dark-muted: #64748b;--border-dark: rgba(255, 255, 255, .06);--border-light: #e2e8f0;--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-widget: 0 8px 32px rgba(0, 0, 0, .4);--shadow-topbar: 0 2px 12px rgba(0, 0, 0, .08)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-main);color:var(--text-white);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:10px}.mono{font-family:SF Mono,JetBrains Mono,Fira Code,monospace;font-size:.875rem}.hud-bar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:10px;background:var(--bg-topbar);box-shadow:var(--shadow-topbar)}.hud-left,.hud-right{display:flex;align-items:center;gap:20px}.hud-logo{display:flex;align-items:center;gap:12px}.logo-mark{width:36px;height:36px}.logo-main{font-size:18px;font-weight:900;letter-spacing:3px;color:var(--text-dark)}.logo-sub{display:block;font-size:10px;color:var(--text-dark-muted);letter-spacing:1.5px;font-weight:600;text-transform:uppercase}.logo-text-group{line-height:1.2}.hud-center{display:flex;align-items:center;gap:20px}.system-status{display:flex;align-items:center;gap:8px}.status-indicator{position:relative;width:10px;height:10px}.pulse-dot{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--widget-green);border-radius:50%}.pulse-dot.offline{background:var(--widget-red)}.pulse-ring{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:2px solid var(--widget-green);border-radius:50%;animation:pulse 2s ease-out infinite}.pulse-ring.offline{border-color:var(--widget-red)}@keyframes pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2);opacity:0}}.status-text{font-size:12px;font-weight:700;color:var(--widget-green);letter-spacing:.5px}.status-text.offline{color:var(--widget-red)}.hud-clock{font-size:20px;font-weight:800;color:var(--text-dark);font-variant-numeric:tabular-nums}.hud-date{font-size:12px;color:var(--text-dark-muted);font-weight:600}.hud-metric{text-align:right}.metric-label{display:block;font-size:10px;font-weight:700;letter-spacing:1px;color:var(--text-dark-muted);text-transform:uppercase}.metric-value{font-size:14px;font-weight:800;color:var(--text-dark);font-variant-numeric:tabular-nums}.hud-user{display:flex;align-items:center;gap:10px}.hud-user-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--border-light)}.hud-user-name{font-size:13px;font-weight:600;color:var(--text-dark-muted)}.hud-logout-btn{font-size:12px;font-weight:700;color:var(--text-dark-muted);background:#f1f5f9;border:none;padding:6px 14px;cursor:pointer;transition:all .15s}.hud-logout-btn:hover{color:var(--widget-red);background:#fef2f2}.dashboard-area{padding:10px;flex:1}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.react-draggable-dragging{z-index:100;opacity:.9;box-shadow:0 16px 48px #00000080!important}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:2px;right:2px;cursor:se-resize;opacity:0;transition:opacity .15s}.react-grid-item:hover>.react-resizable-handle{opacity:.4}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted)}.react-grid-placeholder{background:var(--widget-purple)!important;opacity:.12!important;border:2px dashed var(--widget-purple)!important;border-radius:0!important}.widget{border-radius:0;padding:20px;height:100%;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:box-shadow .2s}.widget:hover{box-shadow:var(--shadow-widget)}.widget-dark{background:var(--bg-card);color:var(--text-white);box-shadow:var(--shadow-card)}.widget-purple{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:var(--text-white);box-shadow:0 8px 32px #7c3aed4d}.widget-green{background:linear-gradient(135deg,#10b981,#059669);color:var(--text-white);box-shadow:0 8px 32px #10b9814d}.widget-blue{background:linear-gradient(135deg,#3b82f6,#2563eb);color:var(--text-white);box-shadow:0 8px 32px #3b82f64d}.widget-teal{background:linear-gradient(135deg,#14b8a6,#0d9488);color:var(--text-white);box-shadow:0 8px 32px #14b8a64d}.widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0}.widget-header-left{display:flex;align-items:center;gap:10px;flex-shrink:0}.widget-header-center{flex:1;display:flex;align-items:center;justify-content:center;gap:8px}.widget-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:13px;opacity:.8;background:#ffffff26}.widget-title{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;opacity:.85}.widget-badge{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 10px;background:#ffffff26}.widget-badge .live-dot{width:7px;height:7px;background:#4ade80;border-radius:50%;animation:blink 1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.widget-body{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.drag-handle{cursor:grab}.drag-handle:active{cursor:grabbing}.drag-grip{font-size:11px;opacity:.25;transition:opacity .15s}.drag-handle:hover .drag-grip{opacity:.6}.widget-move-btn{position:absolute;top:20px;right:20px;z-index:11;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:grab;opacity:.35;transition:opacity .15s;color:var(--text-white);font-size:11px}.widget-move-btn:hover{opacity:.9;background:#ffffff1a}.widget-move-btn:active{cursor:grabbing}.widget-max-btn{position:absolute;bottom:0;right:0;z-index:5;width:44px;height:44px;padding:0;background:none;border:none;pointer-events:none;overflow:hidden}.max-tri{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top left,rgba(0,0,0,.25) 50%,transparent 50%)}.max-icon{position:absolute;bottom:5px;right:5px;width:13px;height:13px;color:#ffffff80}.widget-max-btn.restore{width:44px;height:44px;pointer-events:auto;cursor:pointer;z-index:10}.widget-max-btn.restore .max-tri{background:linear-gradient(to top left,rgba(255,255,255,.15) 50%,transparent 50%);transition:background .15s}.widget-max-btn.restore:hover .max-tri{background:linear-gradient(to top left,rgba(255,255,255,.3) 50%,transparent 50%)}.widget-max-btn.restore .max-icon{bottom:6px;right:6px;width:14px;height:14px;color:#ffffff80;transition:color .15s}.widget-max-btn.restore:hover .max-icon{color:#ffffffe6}.fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d9;display:flex;align-items:stretch;justify-content:stretch;padding:24px;animation:fadeIn .2s ease;cursor:pointer}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fullscreen-content{flex:1;position:relative;background:var(--bg-card);overflow:auto;display:flex;flex-direction:column;cursor:default}.fullscreen-content .widget{flex:1;height:auto;min-height:100%}.big-number{font-size:52px;font-weight:900;line-height:1;letter-spacing:-2px;margin-bottom:4px}.big-number-label{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;opacity:.7}.calls-stats{display:flex;gap:12px;margin-top:12px}.call-stat{flex:1;text-align:center;padding:10px;background:#ffffff1a}.call-stat-value{display:block;font-size:24px;font-weight:800;line-height:1.2}.call-stat-label{font-size:10px;font-weight:700;letter-spacing:1px;opacity:.7;margin-top:2px}.gw-list{display:flex;flex-direction:column;gap:8px;overflow:auto;flex:1}.gw-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#ffffff0f;font-size:14px;transition:background .15s}.gw-item:hover{background:#ffffff1a}.gw-name{font-weight:700;display:flex;align-items:center;gap:10px}.gw-number{font-size:12px;opacity:.5;font-weight:500}.trunk-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.trunk-dot.online{background:#4ade80;box-shadow:0 0 8px #4ade8066}.trunk-dot.offline{background:var(--widget-red);box-shadow:0 0 8px #ef444466;animation:blink 1s ease-in-out infinite}.status-chip{display:inline-block;padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.5px}.status-chip.online{background:#4ade8026;color:#4ade80}.status-chip.warning{background:#f59e0b26;color:#fbbf24}.status-chip.offline{background:#ef444426;color:#f87171}.trunk-summary{display:flex;gap:14px}.trunk-count{font-size:12px;font-weight:600;display:flex;align-items:center;gap:5px}.trunk-count i{font-size:7px}.online-count{color:#4ade80}.offline-count{color:#f87171}.trunk-table-wrapper{overflow-x:auto;flex:1}.trunk-table{width:100%;border-collapse:collapse;font-size:13px}.trunk-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--text-muted);padding:10px 14px;border-bottom:1px solid var(--border-dark);text-transform:uppercase}.trunk-table td{padding:12px 14px;border-bottom:1px solid var(--border-dark);font-weight:600;color:var(--text-light)}.trunk-table td.mono{font-family:SF Mono,JetBrains Mono,monospace;font-size:12px;color:var(--text-muted)}.trunk-table tr:hover td{background:#ffffff08}.row-error td{background:#ef444414}.trunk-name{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--text-white)}.gauge-bg{fill:none;stroke:#ffffff1a;stroke-width:6}.gauge-fill{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dasharray 1s ease}.gauge-fill.cyan{stroke:var(--widget-blue)}.gauge-fill.purple{stroke:var(--widget-purple)}.gauge-fill.green{stroke:var(--widget-green)}.gauge-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge-value{font-size:18px;font-weight:800}.system-gauges{display:flex;justify-content:space-around;margin-bottom:16px;padding:12px 0}.sys-gauge{text-align:center}.sys-gauge-label{display:block;margin-top:6px;font-size:11px;font-weight:700;letter-spacing:1px;opacity:.6}.sys-details{display:flex;flex-direction:column;overflow:auto}.sys-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px;font-weight:600;color:#fff9}.sys-row:last-child{border-bottom:none}.sys-row .mono{font-family:SF Mono,JetBrains Mono,monospace;font-size:13px;font-weight:700;color:var(--text-white)}.chart-container{position:relative;flex:1;min-height:0}.chart-container canvas{width:100%!important;height:100%!important}.error-counter{font-size:13px;font-weight:700}.error-num{color:#f87171;font-weight:800}.error-feed{display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.error-item{display:flex;gap:10px;padding:10px 12px;background:#ffffff0a;transition:background .15s}.error-item:hover{background:#ffffff14}.error-item.critical{border-left:3px solid var(--widget-red)}.error-severity{font-size:10px;font-weight:800;letter-spacing:.5px;padding:3px 8px;flex-shrink:0;background:#ef444426;color:#f87171;height:fit-content}.error-msg{font-size:13px;font-weight:600;color:var(--text-light);line-height:1.4}.error-time{font-size:11px;color:var(--text-dim);margin-top:2px}.status-bar{position:sticky;bottom:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:10px;background:var(--bg-bottombar);font-size:12px;font-weight:600;color:var(--text-dark-muted);box-shadow:0 -2px 12px #00000014}.status-bar-left,.status-bar-right{display:flex;align-items:center;gap:12px}.sb-item{display:flex;align-items:center;gap:5px}.sb-item i{font-size:11px;color:var(--widget-purple)}.sb-item strong{color:var(--text-dark);font-weight:700}.sb-item strong.cyan{color:var(--widget-blue)}.sb-divider{color:#cbd5e1}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main)}.login-card{background:var(--bg-card);padding:48px;max-width:420px;width:90%;text-align:center;box-shadow:var(--shadow-widget)}.login-logo{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:8px}.login-title{font-size:24px;font-weight:900;letter-spacing:3px;color:var(--text-white)}.login-subtitle{font-size:14px;font-weight:500;color:var(--text-muted);margin-bottom:28px;margin-top:4px}.login-btn-wrap{display:flex;justify-content:center}.login-error{font-size:13px;font-weight:600;color:var(--widget-red);margin-top:16px}.loading-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main)}.loading-text{font-size:14px;font-weight:600;color:var(--text-muted);letter-spacing:2px;animation:blink 1.5s ease-in-out infinite}.live-feed{flex:1;overflow-y:auto;background:#0003;padding:10px;font-size:13px;line-height:1.8;min-height:0}.feed-line{display:flex;gap:12px;align-items:baseline;padding:3px 8px;border-bottom:1px solid rgba(255,255,255,.03)}.feed-line.hist{opacity:.4}.feed-line.live-line{opacity:1}.feed-line.live-line:last-child{background:#7c3aed1f}.feed-time{flex-shrink:0;width:76px;color:var(--text-dim);font-size:12px;font-weight:600}.feed-type{flex-shrink:0;width:130px;font-weight:800;font-size:12px;letter-spacing:.3px}.feed-detail{flex:1;color:var(--text-light);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-dir{font-weight:800;font-size:11px}.feed-separator{text-align:center;color:var(--widget-purple);font-size:11px;font-weight:700;letter-spacing:2px;padding:8px 0;opacity:.6}.hud-input,.hud-select,.hud-textarea{width:100%;background:var(--bg-input);border:1px solid var(--border-dark);padding:10px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:var(--text-white);outline:none;transition:all .15s}.hud-input:focus,.hud-select:focus,.hud-textarea:focus{border-color:var(--widget-purple);box-shadow:0 0 0 2px #7c3aed33}.hud-input::placeholder,.hud-textarea::placeholder{color:var(--text-dim)}.hud-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.hud-textarea{resize:vertical;min-height:200px;line-height:1.6}.hud-label{display:block;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase}.hud-btn{font-family:Inter,sans-serif;font-size:13px;font-weight:700;padding:10px 20px;border:none;cursor:pointer;transition:all .15s;background:var(--bg-card-hover);color:var(--text-muted);letter-spacing:.3px}.hud-btn:hover{color:var(--text-white);transform:translateY(-1px)}.hud-btn.primary{background:var(--widget-purple);color:#fff;box-shadow:0 4px 12px #7c3aed4d}.hud-btn.primary:hover{box-shadow:0 6px 20px #7c3aed66}.hud-btn.danger{background:#ef444426;color:#f87171}.hud-btn.danger:hover{background:var(--widget-red);color:#fff}.hud-btn.success{background:#10b98126;color:#34d399}.hud-btn.success:hover{background:var(--widget-green);color:#fff}.hud-btn.small{padding:6px 14px;font-size:12px}.mode-toggle{display:flex;gap:4px;background:#ffffff0f;padding:3px}.mode-toggle button{padding:6px 16px;background:none;border:none;font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s}.mode-toggle button.active{background:var(--widget-purple);color:#fff;box-shadow:0 2px 8px #7c3aed4d}.route-card{background:#ffffff0a;border:1px solid var(--border-dark);padding:18px;margin-bottom:12px;transition:background .15s}.route-card:hover{background:#ffffff0f}.route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;align-items:end}.route-section-title{font-size:14px;font-weight:700;letter-spacing:.5px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-dark)}.route-section-title.inbound{color:var(--widget-blue)}.route-section-title.transfer{color:var(--widget-purple)}.empty-state{font-size:14px;font-weight:500;color:var(--text-dim);text-align:center;padding:24px}.save-success{font-size:13px;font-weight:700;color:#34d399}.save-error{font-size:13px;font-weight:700;color:#f87171}.call-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#ffffff0a;font-size:14px;transition:background .15s}.call-item:hover{background:#ffffff14}.widget-min-btn{position:absolute;top:20px;right:48px;z-index:11;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;opacity:.35;transition:opacity .15s;color:var(--text-white);font-size:11px}.widget-min-btn:hover{opacity:.9!important;background:#ffffff1a}.widget-dock{position:sticky;bottom:38px;z-index:99;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;min-height:44px;background:#1a1a2ed9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dock-item{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;border-left:6px solid transparent;background:var(--bg-card);box-shadow:var(--shadow-card);transition:all .15s;flex-shrink:0;-webkit-user-select:none;user-select:none}.dock-item:hover{background:var(--bg-card-hover)}.dock-item:active{transform:scale(.97)}.dock-item-icon{font-size:14px;opacity:.9}.dock-item-title{font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--text-light)}.dock-badge{min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:10px;padding:0 6px;font-size:11px;font-weight:700;color:#fff}.reset-layout-btn{font-size:11px;font-weight:600;color:var(--text-dim);background:none;border:1px solid var(--border-dark);padding:4px 12px;cursor:pointer;transition:all .15s}.reset-layout-btn:hover{color:var(--text-white);border-color:var(--text-muted)}@media (max-width: 900px){.hud-bar{flex-wrap:wrap;gap:12px}.hud-center{order:3;width:100%;justify-content:center}.dashboard-area{padding:8px}}
