::-webkit-scrollbar{width:.4em;height:.4em}::-webkit-scrollbar-track{box-shadow:inset 0 0 6px transparent;webkit-box-shadow:inset 0 0 6px transparent;border-radius:10px}::-webkit-scrollbar-thumb{box-shadow:inset 0 0 6px rgba(0,0,0,.3);webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#555}.ant-picker-calendar-date-content{transition:.6s}tr:hover td.ant-picker-cell .ant-picker-calendar-date-content{height:300px!important}.ant-picker-cell-in-view:hover,.ant-picker-cell:hover{background-color:#fff!important}.ant-picker-calendar-date-content::-webkit-scrollbar{width:.4em;height:.4em}.ant-picker-calendar-date-content::-webkit-scrollbar-track{box-shadow:inset 0 0 6px transparent;webkit-box-shadow:inset 0 0 6px transparent;border-radius:10px}.ant-picker-calendar-date-content::-webkit-scrollbar-thumb{box-shadow:inset 0 0 6px rgba(0,0,0,.3);webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#555}.ant-picker-dropdown,.ant-select-dropdown,.ant-tooltip{z-index:1300!important}.ant-image-preview-mask,.ant-image-preview-operations-wrapper,.ant-image-preview-wrap,.ant-spin-fullscreen{z-index:2301!important}.ant-input-number,.ant-picker{width:100%}.ant-tabs-nav{padding-left:.5rem}.tabs-extra-left-button{margin-right:16px}.ant-row-rtl .tabs-extra-left-button{margin-right:0;margin-left:16px}.react-calendar-timeline .rct-header-root{background:#fff!important;border-bottom:1px solid #bbb!important;color:#000!important}.react-calendar-timeline .rct-dateHeader-primary{color:#000!important}.react-calendar-timeline .rct-header-root:first-child{border-top:1px solid #bbb!important;border-right:2px solid #bbb!important}.leaflet-container{height:100%;width:100%}.calender-panel{transition:.6s;cursor:pointer}.dashboard-icon{cursor:pointer;font-size:1.5rem;color:grey;transition:.2s}.dashboard-icon:hover{color:#3a3a3a}.inside-tab{min-width:1000px!important}.grid-item{height:100%}@media print{.ant-card,.ant-card-body,.grid-item,.react-grid-item{page-break-inside:avoid;break-inside:avoid}}.grid-item-child{height:100%}.widget-dashboard .device-panel{box-shadow:5px 5px 10px 1px rgba(50,50,50,.3)}.widget-dashboard .device-panel,.widget-dashboard .normal-panel{height:100%;transition:.6s;cursor:pointer;overflow-y:scroll;overflow-x:hidden}.widget-dashboard .normal-panel{box-shadow:none;border:none}.widget-dashboard .device-panel:hover{box-shadow:5px 5px 10px 1px #787878}.widget-dashboard .device-panel .ant-card-head+.ant-card-body,.widget-dashboard .normal-panel .ant-card-head+.ant-card-body{height:calc(100% - 56px);overflow-y:auto}.widget-dashboard .device-panel .ant-card-body,.widget-dashboard .normal-panel .ant-card-body{height:100%}.widget-dashboard .break-line-panel .ant-card-body{padding:15px 0}.widget-dashboard .break-line-panel .ant-card-head{border-bottom:1px solid #d9d9d9}.widget-dashboard .setting-icon{cursor:pointer;font-size:1.5rem;color:grey;transition:.2s}.widget-dashboard .setting-icon:hover{color:#3a3a3a}.apex-pie-chart .apexcharts-legend{height:80px}.echart-tooltip{z-index:99999}.fcqc-v9{--primary:#1a56db;--primary-dk:#1240a8;--primary-lt:#e8f0fe;--success:#16a34a;--success-bg:#f0fdf4;--warning:#d97706;--danger:#dc2626;--danger-bg:#fff5f5;--bg:#f5f7fa;--surface:#fff;--border:#e2e8f0;--text:#1e293b;--muted:#64748b;--light:#94a3b8;--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.1);--shadow-lg:0 8px 24px rgba(0,0,0,.14);--r:8px;--rl:12px;--font:"Arial",sans-serif;--accent:#1a56db;font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;min-height:100%;line-height:1.5}.fcqc-v9,.fcqc-v9 *,.fcqc-v9 :after,.fcqc-v9 :before{box-sizing:border-box}.fcqc-v9 .app-header{background:var(--surface);border-bottom:2px solid var(--accent);padding:0 24px;display:flex;align-items:center;justify-content:space-between;min-height:60px;position:relative;z-index:200;box-shadow:var(--shadow-md)}.fcqc-v9 .hdr-left{display:flex;align-items:center;gap:12px}.fcqc-v9 .hdr-logo{width:34px;height:34px;background:var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.fcqc-v9 .hdr-title{font-size:15px;font-weight:700;line-height:1.25}.fcqc-v9 h1.hdr-title{margin:0;color:var(--text)}.fcqc-v9 .hdr-sub{font-size:11px;color:var(--muted);line-height:1.3;margin-top:1px}.fcqc-v9 .hdr-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.fcqc-v9 .meta-item{display:flex;flex-direction:column;align-items:flex-end}.fcqc-v9 .meta-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--light)}.fcqc-v9 .meta-value{font-size:12px;font-weight:700}.fcqc-v9 .ver-badge{background:var(--primary-lt);color:var(--primary);border:1px solid var(--primary);border-radius:20px;padding:2px 10px;font-size:11px;font-weight:700}.fcqc-v9 .toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 24px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fcqc-v9 .btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s;white-space:nowrap;background:none}.fcqc-v9 .btn svg{width:14px;height:14px;flex-shrink:0}.fcqc-v9 .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.fcqc-v9 .btn-primary:hover{filter:brightness(.9)}.fcqc-v9 .btn-primary:disabled{opacity:.45;pointer-events:none}.fcqc-v9 .btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.fcqc-v9 .btn-secondary:hover{background:var(--bg)}.fcqc-v9 .btn-sm{font-size:12px;padding:5px 10px}.fcqc-v9 .tb-sep{width:1px;height:28px;background:var(--border);margin:0 2px}.fcqc-v9 .filter-pills{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:3px 6px}.fcqc-v9 .filter-label{font-size:11px;color:var(--light);font-weight:600;padding:0 4px}.fcqc-v9 .pill{padding:4px 14px;border-radius:16px;font-size:12px;font-weight:700;cursor:pointer;border:none;background:none;color:var(--muted);transition:all .15s;font-family:var(--font)}.fcqc-v9 .pill.active{background:var(--accent);color:#fff}.fcqc-v9 .pill:hover:not(.active){background:var(--border);color:var(--text)}.fcqc-v9 .sticky-outer{position:-webkit-sticky;position:sticky;top:56px;z-index:1100;background:var(--surface);border-bottom:2px solid var(--accent);box-shadow:0 3px 10px rgba(0,0,0,.1);overflow:visible;transition:max-height .3s ease,opacity .3s ease,border-bottom .3s,box-shadow .2s}.fcqc-v9 .sticky-outer.sticky-hidden{max-height:0;opacity:0;border-bottom:none;pointer-events:none;padding:0;margin:0;overflow:hidden;box-shadow:none}.fcqc-v9 .sticky-top-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:8px 20px 6px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface) 0,#fafbfc 100%)}.fcqc-v9 .sticky-top-left{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;flex:1 1;min-width:0}.fcqc-v9 .sticky-top-left .hdr-left{align-items:center;max-width:min(100%,400px)}@media (max-width:600px){.fcqc-v9 .sticky-top-left .hdr-left{width:100%;max-width:none}}.fcqc-v9 .fcqc-btn-refresh{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;background:#fff;color:#000;border:1px solid #000;flex-shrink:0;transition:background .15s,filter .15s}.fcqc-v9 .fcqc-btn-refresh:hover{background:#f3f4f6}.fcqc-v9 .fcqc-btn-refresh svg{width:14px;height:14px;flex-shrink:0;stroke:#000}.fcqc-v9 .fcqc-btn-refresh.fcqc-btn-refresh-loading{opacity:.65;pointer-events:none}.fcqc-v9 .sticky-top-left .filter-pills{flex:0 1 auto}.fcqc-v9 .sticky-top-actions{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.fcqc-v9 .sticky-records-loaded{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap}.fcqc-v9 .sticky-records-loaded .num{color:var(--accent);font-weight:800}.fcqc-v9 .sticky-inner{display:block;padding:0 16px 10px;overflow-x:auto}.fcqc-v9 .sticky-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r);font-size:11px;font-weight:700;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--muted);flex-shrink:0;align-self:center;font-family:var(--font)}.fcqc-v9 .sticky-toggle-btn:hover{background:var(--primary-lt);color:var(--primary);border-color:var(--primary)}.fcqc-v9 .sticky-kpi-table{flex:1 1;border-collapse:collapse;font-size:12px;min-width:560px}.fcqc-v9 .sticky-kpi-table th{padding:6px 14px;text-align:center;font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg);vertical-align:middle}.fcqc-v9 .sticky-kpi-table th.kpi-m{text-align:left;min-width:190px}.fcqc-v9 .sticky-kpi-table td{padding:4px 14px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle}.fcqc-v9 .sticky-kpi-table td:last-child{border-right:none}.fcqc-v9 .sticky-kpi-table tr:last-child td{border-bottom:none}.fcqc-v9 .sticky-kpi-table tr:hover td{background:var(--primary-lt)}.fcqc-v9 .sticky-kpi-table th.kpi-mon,.fcqc-v9 .sticky-kpi-table th.kpi-yday{text-align:center;white-space:nowrap}.fcqc-v9 .fcqc-summary-head-row{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap;min-width:0;max-width:100%}.fcqc-v9 .fcqc-summary-month-head{gap:8px}.fcqc-v9 .fcqc-summary-month-head .ctrl-label{flex-shrink:0;font-size:10px;font-weight:700;color:var(--muted)}.fcqc-v9 .fcqc-summary-date-dd{width:104px;min-width:104px;height:26px;box-sizing:border-box;font-size:11px;padding:0 6px;border:1px solid var(--border);border-radius:4px;color:var(--text);background:var(--surface);font-weight:700;text-align:center;flex-shrink:0}.fcqc-v9 .fcqc-summary-inline-label{flex:0 0 auto;color:var(--text);font-size:10px;font-weight:800;line-height:1.1;text-transform:uppercase;letter-spacing:.2px}.fcqc-v9 .fcqc-summary-paren{text-transform:none;font-weight:700;color:var(--light);letter-spacing:0;white-space:nowrap}.fcqc-v9 .fcqc-summary-date-input{width:88px;height:26px;box-sizing:border-box;font-size:11px;padding:0 6px;border:1px solid var(--border);border-radius:4px;color:var(--text);background:var(--surface);font-weight:700;text-align:center;flex-shrink:0}.fcqc-v9 .fcqc-summary-date-picker-wrap{position:relative;width:26px;height:26px;flex:0 0 26px;flex-shrink:0}.fcqc-v9 .fcqc-summary-date-btn-visual{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--muted);pointer-events:none}.fcqc-v9 .fcqc-summary-date-btn-visual svg{width:14px;height:14px}.fcqc-v9 .fcqc-summary-native-date-overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:16px}.fcqc-v9 .fcqc-summary-native-date-overlay::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer;opacity:0}.fcqc-v9 .fcqc-summary-reset{height:26px;box-sizing:border-box;font-size:10px;padding:0 8px;border-radius:4px;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--muted);font-weight:800;flex-shrink:0}.fcqc-v9 .fcqc-summary-reset:hover{border-color:var(--accent);color:var(--accent)}.fcqc-v9 .fcqc-summary-month-input.ctrl-input{width:auto;min-width:118px;max-width:150px;height:26px;box-sizing:border-box;padding:2px 8px;font-size:12px;flex-shrink:0}.fcqc-v9 .fcqc-summary-cutoff-badge{max-width:min(340px,48vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;font-size:10px;font-weight:700;color:var(--light);letter-spacing:0}.fcqc-v9 .kpi-met{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.fcqc-v9 .kpi-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fcqc-v9 .kpi-cell{display:flex;flex-direction:column;align-items:center;position:relative}.fcqc-v9 .kpi-pct{font-size:14px;font-weight:800;line-height:1.2}.fcqc-v9 .kpi-nav-btn{width:24px;height:24px;min-width:24px;background:none;border:1px solid var(--border);border-radius:4px;cursor:pointer;padding:0;font-size:12px;color:var(--muted);line-height:1.4}.fcqc-v9 .kpi-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--primary-lt)}.fcqc-v9 .kpi-nav-btn:disabled{opacity:.3;cursor:default}.fcqc-v9 .kpi-yday{background:rgba(26,86,219,.03)}.fcqc-v9 .kpi-mon{background:rgba(22,163,74,.03)}.fcqc-v9 .kpi-row-divider td{border-top:2px solid var(--border)!important}.fcqc-v9 .pct-hi{color:#dc2626;font-weight:800}.fcqc-v9 .pct-md{color:#d97706;font-weight:700}.fcqc-v9 .pct-lo{color:#16a34a}.fcqc-v9 .tabs-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;display:flex;gap:2px;overflow-x:auto}.fcqc-v9 .tab-btn{display:inline-flex;align-items:center;gap:7px;padding:12px 18px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;margin-bottom:-1px;white-space:nowrap}.fcqc-v9 .tab-btn:hover{color:var(--accent)}.fcqc-v9 .tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--primary-lt);border-radius:6px 6px 0 0}.fcqc-v9 .tab-btn svg{width:15px;height:15px}.fcqc-v9 .tab-panel{display:none;padding:20px 24px 40px;background:var(--bg)}.fcqc-v9 .tab-panel.active{display:block}.fcqc-v9 .graph-tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:4px}.fcqc-v9 .graph-tab{flex:1 1;padding:8px 12px;border:none;background:none;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;border-radius:6px;text-align:center;font-family:var(--font)}.fcqc-v9 .graph-tab.active{background:var(--accent);color:#fff}.fcqc-v9 .graph-pane{display:none}.fcqc-v9 .graph-pane.active{display:block}.fcqc-v9 .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);box-shadow:var(--shadow-sm);margin-bottom:16px}.fcqc-v9 .card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.fcqc-v9 .card-title{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}.fcqc-v9 .card-title svg{color:var(--accent);width:15px;height:15px;flex-shrink:0}.fcqc-v9 .card-body{padding:18px}.fcqc-v9 .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.fcqc-v9 .stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:18px 16px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.fcqc-v9 .stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--sc,var(--accent))}.fcqc-v9 .stat-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;margin-bottom:8px}.fcqc-v9 .stat-val{font-size:26px;font-weight:700;line-height:1;margin-bottom:4px}.fcqc-v9 .stat-sub{font-size:11px;color:var(--muted)}.fcqc-v9 .filter-banner{display:flex;align-items:center;gap:10px;background:var(--primary-lt);border:1px solid #c3d9fb;border-radius:var(--r);padding:10px 16px;margin-bottom:16px;font-size:13px;color:var(--accent);font-weight:600}.fcqc-v9 .filter-banner svg{width:16px;height:16px;flex-shrink:0}.fcqc-v9 .defect-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:16px}@media (max-width:900px){.fcqc-v9 .defect-grid{grid-template-columns:1fr}}.fcqc-v9 .chart-wrap{position:relative;height:360px;margin-bottom:8px}.fcqc-v9 .chart-wrap-tall{height:420px}.fcqc-v9 .fcqc-g1-date-row{align-items:center}.fcqc-v9 .fcqc-g1-date-input-wrap{position:relative;display:inline-flex;align-items:center;vertical-align:middle}.fcqc-v9 .fcqc-g1-date-text{width:122px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em;padding:6px 34px 6px 10px}.fcqc-v9 .fcqc-g1-cal-pick{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-family:var(--font)}.fcqc-v9 .fcqc-g1-cal-pick:hover{background:var(--bg);color:var(--accent)}.fcqc-v9 .fcqc-sr-only{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0;pointer-events:none}.fcqc-v9 .chart-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.fcqc-v9 .ctrl-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.fcqc-v9 .ctrl-input,.fcqc-v9 .ctrl-select{padding:6px 10px;border:1px solid var(--border);border-radius:var(--r);font-family:var(--font);font-size:13px;color:var(--text);background:var(--surface);min-width:120px}.fcqc-v9 .ctrl-input:focus,.fcqc-v9 .ctrl-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(26,86,219,.15)}.fcqc-v9 .toggle-line-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r);font-size:12px;font-weight:700;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-family:var(--font)}.fcqc-v9 .toggle-line-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.fcqc-v9 .chart-note{font-size:11px;margin-top:6px;padding:6px 10px;border-left:3px solid var(--accent)}.fcqc-v9 .chart-note,.fcqc-v9 .graph-table-toggle{color:var(--muted);background:var(--bg);border-radius:var(--r)}.fcqc-v9 .graph-table-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer;border:1px solid var(--border);margin-top:10px;font-family:var(--font)}.fcqc-v9 .graph-table-body{display:none;margin-top:10px}.fcqc-v9 .graph-table-body.open{display:block}.fcqc-v9 .defect-select-wrap{display:flex;flex-wrap:wrap;gap:6px;padding:12px;background:var(--bg);border-radius:var(--r);border:1px solid var(--border);max-height:140px;overflow-y:auto}.fcqc-v9 .defect-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);background:var(--surface);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font)}.fcqc-v9 .defect-chip:hover{border-color:var(--accent);color:var(--accent)}.fcqc-v9 .defect-chip.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.fcqc-v9 .chip-qty{font-size:10px;color:#ef4444;font-weight:800}.fcqc-v9 .defect-chip.selected .chip-qty{color:#ffcdd2}.fcqc-v9 .collapsible-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:14px 18px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fcqc-v9 .collapsible-header:hover{background:var(--bg)}.fcqc-v9 .collapsible-body{overflow:hidden;transition:max-height .35s ease;max-height:0}.fcqc-v9 .collapsible-body.open{max-height:2000px;padding:0 18px 18px}.fcqc-v9 .chevron{transition:transform .3s;width:16px;height:16px;flex-shrink:0}.fcqc-v9 .chevron.open{transform:rotate(180deg)}.fcqc-v9 .table-wrap{overflow-x:auto}.fcqc-v9 table{width:100%;border-collapse:collapse;font-size:13px}.fcqc-v9 thead tr{background:var(--bg);border-bottom:2px solid var(--border)}.fcqc-v9 th{padding:9px 13px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;white-space:nowrap}.fcqc-v9 td.num,.fcqc-v9 td.r,.fcqc-v9 th.r{text-align:right}.fcqc-v9 td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fcqc-v9 tbody tr{border-bottom:1px solid var(--border)}.fcqc-v9 tbody tr:hover{background:var(--primary-lt)}.fcqc-v9 td{padding:9px 13px;white-space:nowrap}.fcqc-v9 .tfoot-row td{font-weight:700;background:var(--bg);border-top:2px solid var(--border)}.fcqc-v9 .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 24px;text-align:center;color:var(--muted);gap:10px}.fcqc-v9 .empty-state svg{width:44px;height:44px;color:var(--light)}.fcqc-v9 .empty-state h3{font-size:15px;color:var(--text);font-weight:700}.fcqc-v9 .empty-state p{font-size:13px;max-width:400px;line-height:1.6}.fcqc-v9 .fcqc-graph-empty-inset{padding:36px 20px;margin-top:4px}.fcqc-v9 .fcqc-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:2000;display:flex;align-items:center;justify-content:center;padding:18px}.fcqc-v9 .fcqc-modal{background:var(--surface);border-radius:var(--rl);box-shadow:var(--shadow-lg);width:min(980px,94vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden}.fcqc-v9 .fcqc-modal-hdr{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.fcqc-v9 .fcqc-modal-title{font-size:14px;font-weight:800;color:var(--text)}.fcqc-v9 .fcqc-modal-sub{font-size:12px;color:var(--muted);margin-top:2px}.fcqc-v9 .fcqc-modal-close{border:1px solid var(--border);background:var(--surface);color:var(--muted);width:30px;height:30px;border-radius:8px;cursor:pointer;font-weight:800;flex:0 0 auto}.fcqc-v9 .fcqc-modal-close:hover{border-color:var(--accent);color:var(--accent);background:var(--primary-lt)}.fcqc-v9 .fcqc-modal-body{padding:14px 18px;overflow:auto}.fcqc-v9 .fcqc-modal-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.fcqc-v9 .cutoff-badge{background:rgba(26,86,219,.1);border:1px solid rgba(26,86,219,.2);color:var(--accent);border-radius:6px;padding:3px 10px;font-size:11px;font-weight:700}.fcqc-v9 .settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:20px;gap:20px}.fcqc-v9 .form-group{margin-bottom:14px}.fcqc-v9 .form-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:5px}.fcqc-v9 .form-input{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--r);font-size:13px;color:var(--text);background:var(--surface);font-family:var(--font)}.fcqc-v9 .form-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fcqc-v9 .color-swatch{width:36px;height:36px;border-radius:var(--r);border:2px solid var(--border);cursor:pointer;padding:0}.fcqc-v9 .log-placeholder{padding:30px;text-align:center;color:var(--muted);font-size:13px}.fcqc-v9 .fcqc-loader{position:fixed;inset:0;background:hsla(0,0%,100%,.8);z-index:9998;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.fcqc-v9 .fcqc-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:fcqcSpin .7s linear infinite}@keyframes fcqcSpin{to{transform:rotate(1turn)}}.fcqc-v9 .inline-check{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}.fcqc-v9 .inline-check input{width:16px;height:16px;accent-color:var(--accent)}.fcqc-v9 .switch-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-weight:600}.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 img{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.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;-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-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{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)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+");background-position:100% 100%;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}