:root{color:#142033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#eef3f8;font-family:Aptos,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100vh}body{background:#eef3f8;min-width:1260px;min-height:100vh;margin:0;overflow-x:auto}button,input,select{font:inherit}@media (width<=760px){body{min-width:0;overflow-x:hidden}}:root{--bg:#eef2f7;--card:#fff;--panel:#f8fafc;--muted:#64748b;--ink:#0f172a;--text:#1f2937;--line:#e2e8f0;--brand:#2563eb;--brand2:#0891b2;--blue:#2563eb;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--shadow:0 1px 2px #0f172a0a, 0 10px 24px #0f172a14;--radius:12px;--nav-width:236px}.shell{min-width:1180px;min-height:100vh;padding-left:var(--nav-width);box-sizing:border-box;background:var(--bg);color:var(--text);font-size:13px;display:block}.rail{z-index:30;width:var(--nav-width);color:#dce7f7;box-sizing:border-box;background:linear-gradient(#0b1324 0%,#142033 100%);height:100vh;padding:18px 14px;position:fixed;top:0;left:0;overflow-y:auto;box-shadow:0 12px 30px #0f172a38}.brand{color:#fff;letter-spacing:.01em;margin:6px 8px 18px;font-size:18px;font-weight:700}.brand span{color:#8fa3c7;text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:11px;display:block}.rail-menu{gap:8px;display:grid}.rail button{appearance:none;color:#dce7f7;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;margin-bottom:7px;padding:10px 11px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.rail button span{color:#fff;letter-spacing:0;background:#ffffff29;border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:900;display:inline-grid}.rail button:hover,.rail button.active{background:var(--brand);color:#fff;box-shadow:0 8px 18px #2563eb4d}.rail-note{color:#9fb1cf;margin:18px 8px 0;font-size:11px;font-weight:700;line-height:1.55}.workspace{box-sizing:border-box;width:min(1540px,100%);min-width:0;min-height:100vh;margin:20px auto;padding:0 24px 28px}.topbar{flex-wrap:nowrap;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 auto 16px;display:flex}.topbar>div:first-child{flex:auto;min-width:0}h1{letter-spacing:-.02em;color:var(--brand);white-space:nowrap;margin:6px 0 12px;font-size:42px;font-weight:700;line-height:1.05}h2{color:var(--ink);margin:0;font-size:15px;font-weight:600}.muted,.section-sub{color:var(--muted);margin:2px 0 0;font-size:12px;font-weight:500}.top-actions,.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.top-actions{flex:none;justify-content:flex-end}.hidden-file{display:none}.btn-primary,.btn-outline,.btn-danger{white-space:nowrap;border:1px solid #0000;border-radius:8px;min-height:32px;padding:6px 12px;font-size:12px;font-weight:600}.btn-primary{background:var(--brand);color:#fff}.btn-outline{color:#334155;background:#fff;border-color:#cbd5e1}.btn-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.stack{gap:14px;display:grid}.cardx,.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:14px 16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi-card{min-height:112px;padding:14px}.kpi-card [data-slot=content]{padding:0}.metric-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;font-size:11px;font-weight:600;line-height:1.15}.metric-info{cursor:help;vertical-align:middle;text-transform:none;letter-spacing:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:6px;line-height:1;display:inline-flex;position:relative;top:-1px}.metric-info svg{display:block}.metric-tooltip{color:#0f172a;text-transform:none;background:#fff;border:1px solid #cbd5e1;border-radius:6px;max-width:280px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.45;box-shadow:0 6px 18px #0f172a2e}.carry-banner{color:#7c5a00;background:#fffbeb;border:1px solid #fde8a6;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;line-height:1.5;display:flex}.carry-banner-icon{flex-shrink:0;align-items:center;display:inline-flex}.carry-banner strong{color:#5a4300;font-weight:700}.carry-banner em{font-style:normal;font-weight:600}.carry-banner-body{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.carry-banner-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.carry-banner-tickets{flex-wrap:nowrap;flex-shrink:0;gap:6px;display:inline-flex}.carry-ticket-more{opacity:.85;font-style:italic}.carry-ticket-chip{color:#7c5a00;cursor:help;font-variant-numeric:tabular-nums;background:#fef3c7;border:1px solid #fde68a;border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.metric-value{color:var(--ink);letter-spacing:-.02em;margin:0 0 8px;font-size:32px;font-weight:700;line-height:1}.metric-value.blue{color:var(--brand)}.metric-value.orange{color:var(--warn)}.metric-value.red{color:var(--bad)}.metric-value.green{color:var(--ok)}.kpi-card .muted{color:var(--muted);font-size:12px;line-height:1.25}.kpi-metric-row{justify-content:space-between;align-items:center;gap:16px;min-height:74px;margin-bottom:8px;display:flex}.kpi-metric-row .metric-value{margin-bottom:0}.kpi-period-stack{flex-direction:column;flex-shrink:0;align-items:stretch;gap:6px;display:flex}.kpi-period-pill{color:#047857;white-space:nowrap;background:#f0fdf4;border:1px solid #86efac;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;min-height:42px;padding:0 15px;font-size:13px;font-weight:800;display:inline-flex}.kpi-period-stack .kpi-period-pill{min-height:34px;padding:0 12px}.kpi-period-stack .kpi-period-icon{width:20px;height:20px}.kpi-period-pill-blue{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.kpi-period-pill-orange{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.kpi-period-pill-red{color:#dc2626;background:#fef2f2;border-color:#fecaca}.kpi-period-pill-neutral{color:#64748b;background:#f8fafc;border-color:#cbd5e1}.kpi-period-icon{stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:25px;height:25px}.kpi-period-icon.down{transform:scaleY(-1)}.kpi-period-pill-action{cursor:pointer}.kpi-period-pill-action:hover{background:#d1fae5;border-color:#34d399}.charts{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.aging-card .chart-body{min-height:250px}.wide-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.card-title{padding:0 0 10px;display:block}.chart-body{min-width:0;min-height:230px;padding:0}.status-mix-card{container-type:inline-size}.status-donut{grid-template-columns:minmax(0,1fr);align-items:center;min-width:0;min-height:250px;display:grid}.status-donut-chart{width:100%;min-width:0;height:250px}.status-donut-legend{color:#0891b2;flex-wrap:wrap;justify-content:center;gap:4px;margin:0;padding:0 8px 8px;font-size:12px;font-weight:800;list-style:none;display:flex}.status-donut-legend li{white-space:nowrap;align-items:center;gap:5px;display:flex}.status-donut-swatch{flex:none;width:14px;height:10px}@container (width<=320px){.status-donut-chart{height:190px}.status-donut-legend{gap:5px 14px}}.chart-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.evolution-head,.trend-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:0 0 12px;display:flex}.evolution-title{color:var(--ink);margin:0;font-size:26px;font-weight:900}.warn-chip{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:900;display:inline-flex}.mini-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;display:grid}.evo-kpi{border:1px solid var(--line);background:#fbfdff;border-radius:10px;padding:13px}.evo-kpi span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900;display:block}.evo-kpi strong{color:var(--ink);font-size:30px;font-weight:900;line-height:1.1;display:block}.evo-kpi em{color:var(--muted);font-size:12px;font-style:normal;font-weight:900}.trend-body{min-height:300px}.comparison-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:0 0 12px;display:flex}.comparison-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;display:flex}.comparison-legend{color:var(--muted);gap:14px;font-size:11px;font-weight:900;display:flex}.comparison-legend span:before{content:"";border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.comparison-legend .snapshot-a:before{background:#94a3b8}.comparison-legend .snapshot-b:before{background:var(--brand)}.comparison-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0;display:grid}.comparison-chart{min-width:0;padding:0}.comparison-chart+.comparison-chart{border-left:1px solid var(--line);padding-left:20px}.comparison-chart-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.comparison-chart h3{color:var(--ink);margin:0 0 8px;font-size:15px;font-weight:900}.share-value{fill:#fff;font-size:10px;font-weight:900}.comparison-value{fill:var(--ink);font-size:10px;font-weight:900}.comparison-deltas{flex-wrap:wrap;gap:5px;min-height:23px;display:flex}.comparison-deltas span{color:var(--muted);background:#fff;border:1px solid #cbd5e1;border-radius:5px;padding:3px 6px;font-size:10px;font-weight:900}.comparison-deltas .up{color:#15803d;border-color:#bbf7d0}.comparison-deltas .down{color:#b91c1c;border-color:#fecaca}.priority-changes{gap:12px;display:grid}.table-wrap.compact{max-height:360px}.no-data{min-height:220px;color:var(--muted);place-items:center;font-weight:900;display:grid}.heatmap{max-height:none}.heatmap th,.heatmap td{text-align:center}.heatmap th:first-child{text-align:left}.heat-cell{color:#0f172a;border-radius:6px;place-items:center;width:100%;min-height:30px;font-weight:900;display:inline-grid}.segmented{align-items:center;gap:6px;margin:20px 0 12px;display:flex}.segmented .btn-primary,.segmented .btn-outline{min-height:36px;padding:8px 16px;font-size:13px}.wide-grid .chart-body{min-height:0}.chart-body .recharts-responsive-container{min-width:0}.recharts-cartesian-axis-tick-value{fill:#64748b;font-size:12px;font-weight:700}.recharts-default-tooltip{border:1px solid var(--line)!important;box-shadow:var(--shadow)!important;opacity:1!important;background:#fff!important;border-radius:10px!important}.recharts-tooltip-wrapper{z-index:30;opacity:1!important}.chart-value-label{fill:var(--ink);font-size:11px;font-weight:900}.batch-list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;display:grid}.batch-item{appearance:none;border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);text-align:left;cursor:pointer;box-shadow:none;background:#f8fafc;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:5px;padding:10px;display:grid}.batch-item:hover,.batch-item.active{background:#eff6ff;border-color:#93c5fd}.batch-item span,.batch-item em{color:var(--muted);font-size:10px;font-style:normal;font-weight:800;line-height:1.35}.batch-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;overflow:hidden}.data-management{margin-top:14px;scroll-margin-top:24px}.change-table{max-height:380px;overflow:auto}.change-table table{border-collapse:collapse;width:100%;font-size:12px}.change-table th,.change-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:9px 10px}.change-table th{color:#334155;background:#fff;font-weight:900;position:sticky;top:0}.change-type{color:#075985;background:#e0f2fe;border-radius:999px;padding:3px 8px;font-weight:900;display:inline-flex}.change-type.inserted{color:#166534;background:#dcfce7}.change-type.missing{color:#991b1b;background:#fee2e2}.loading.small{min-height:120px}.chip{color:#334155;white-space:nowrap;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.chip.danger{color:#991b1b;background:#fee2e2;border-color:#fecaca}.chip.resolved{color:#047857;background:#ecfdf5;border-color:#bbf7d0}.chip.confirm{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.chip.open{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.table-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:0 0 12px;display:flex}.filters{grid-template-columns:1.2fr repeat(6,minmax(130px,180px)) auto;align-items:center;gap:8px;width:100%;display:grid}.filters input,.select-trigger{width:100%;min-height:32px;color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700}.select-trigger{justify-content:space-between;align-items:center;display:flex}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;min-width:0;max-height:560px;overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:12px}.title-cell{min-width:360px;max-width:560px}.table-wrap th,.table-wrap td{text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:8px 10px}.table-wrap th{z-index:2;color:#334155;white-space:nowrap;background:#f8fafc;font-weight:900;position:sticky;top:0}.sort-header-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:inline-flex}.sort-header-button:hover,.sort-header-button.active{color:var(--blue)}.sort-header-button:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}.sort-indicator{color:#64748b;min-width:10px;font-size:9px;line-height:1}.issue-row:hover td{background:#f8fafc}.link-button{min-width:0;height:auto;color:var(--blue);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.details-drawer{z-index:50;background:#fff;width:min(620px,100vw - 236px);max-width:calc(100vw - 236px);height:100dvh;position:fixed;top:0;bottom:0;right:0;overflow:auto;box-shadow:-18px 0 42px #0f172a38}.details-head{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:22px 24px 16px;display:flex}.details-head h2{color:var(--ink);margin:6px 0 0;font-size:20px;line-height:1.3}.details-id{color:var(--blue);font-size:12px;font-weight:900}.details-close{width:34px;height:34px;color:var(--muted);cursor:pointer;background:#f8fafc;border:1px solid #0000;border-radius:999px;align-self:flex-start;place-items:center;padding:0;font-size:22px;font-weight:900;line-height:1;display:grid}.details-close:hover{border-color:var(--line);color:var(--ink);background:#eef2f7}.details-body{gap:18px;padding:20px 24px 28px;display:grid}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.details-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-item,.details-block{border:1px solid var(--line);background:#f8fafc;border-radius:8px;padding:12px}.detail-item span,.details-block h3{color:var(--muted);text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:900;display:block}.detail-item strong,.details-block p{color:var(--ink);margin:0;font-size:13px;line-height:1.45}.empty-table{color:var(--muted);text-align:center;padding:36px 10px;font-weight:800}.data-card,.empty-state{max-width:760px}.data-body{gap:14px;display:grid}.loading{min-height:360px;color:var(--muted);place-items:center;font-weight:800;display:grid}.error{color:#b91c1c;border-color:#fecaca;margin-bottom:14px}.notice{color:#047857;background:#ecfdf5;border-color:#bbf7d0;margin-bottom:14px;font-weight:800}.data-page{gap:14px;display:grid}.data-topbar{align-items:flex-start}.sub{color:var(--muted);max-width:980px;margin:0 0 14px;font-weight:700;line-height:1.5}.data-import-grid{grid-template-columns:5fr 7fr;gap:16px;padding:0;display:grid}.drop{background:#f8faff;border:1px dashed #9aa8da;border-radius:10px;min-height:154px;padding:16px}.drop.dragover{border-color:var(--brand);background:#eff6ff;box-shadow:0 0 0 3px #2563eb24}.drop h3{margin:0 0 6px;font-size:15px;font-weight:900}.drop p{color:var(--muted);margin:0 0 10px;font-weight:700;line-height:1.45}.file-input{width:100%;min-height:32px;color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:700}.status{color:var(--muted);margin-top:8px;font-size:12px;font-weight:800}.status.ok{color:var(--ok)}.status.err{color:var(--bad)}.status.warn{color:var(--warn)}.data-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.mini{border:1px solid var(--line);background:#fbfdff;border-radius:10px;min-height:82px;padding:12px}.mini strong{color:var(--brand);font-size:24px;font-weight:900;line-height:1;display:block}.mini span{color:var(--muted);text-transform:uppercase;margin-top:6px;font-size:11px;font-weight:800;display:block}.alert-list{color:var(--warn);margin:8px 0 0;padding-left:18px;font-weight:800}.preview{border:1px solid var(--line);width:100%;min-height:260px;color:var(--ink);background:#fbfdff;border-radius:10px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}@media (width<=1280px){.shell{min-width:1180px}.kpis,.charts{grid-template-columns:repeat(4,minmax(0,1fr))}.wide-grid{grid-template-columns:1fr 1fr}}.batch-timeline{padding-top:8px}.batch-strip{scroll-snap-type:x proximity;flex-wrap:nowrap;align-items:stretch;gap:10px;padding:8px 4px 12px;scroll-padding-inline:20px;display:flex;overflow:auto visible}.batch-strip::-webkit-scrollbar{height:8px}.batch-strip::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.batch-strip::-webkit-scrollbar-thumb:hover{background:#94a3b8}.batch-strip::-webkit-scrollbar-track{background:0 0}.batch-strip>.batch-chip-wrap{scroll-snap-align:center;flex:0 0 220px}.batch-strip>.batch-viewall-btn{flex:none}@media (width<=760px){.shell{min-width:0;padding-left:0}.rail{width:100%;height:auto;padding:10px 14px;position:static;overflow:visible}.brand{margin:0;font-size:16px}.brand span{margin:0 0 0 8px;display:inline}.rail-note{display:none}.workspace{width:100%;margin:0;padding:12px 10px 24px}.topbar{flex-wrap:wrap;align-items:flex-start}h1{letter-spacing:0;white-space:normal;font-size:28px}.kpis,.charts,.wide-grid,.filters{grid-template-columns:minmax(0,1fr)}.pagination,.pagination-controls{align-items:stretch}.pagination-controls{flex-wrap:wrap;gap:8px}.carry-banner-body{flex-wrap:wrap}.carry-banner-text{white-space:normal}.cardx,.kpi-card{padding:12px}}.batch-chip{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:10px;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"id file""id date""id meta";justify-content:start;align-items:center;gap:2px 10px;min-width:0;padding:8px 12px;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid}.batch-chip:hover{border-color:var(--blue);box-shadow:0 4px 14px #2563eb1a}.batch-chip.active{border-color:var(--blue);background:#eff6ff;box-shadow:0 6px 20px #2563eb2e}.batch-chip-id{color:var(--blue);grid-area:id;align-self:center;font-size:20px;font-weight:700}.batch-chip-file{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;grid-area:file;font-size:12px;font-weight:600;overflow:hidden}.batch-chip-date{color:var(--muted);grid-area:date;font-size:11px}.batch-chip-meta{color:#475569;grid-area:meta;font-size:11px;font-weight:500}.batch-chip.compare{background:#fffbeb;border-color:#f59e0b}.batch-chip.compare.active{border-color:var(--blue);background:#eff6ff}.batch-chip-wrap{min-width:0;display:flex;position:relative}.batch-chip-wrap>.batch-chip{flex:auto;width:100%}.batch-chip-delete{color:#fff;cursor:pointer;opacity:0;z-index:2;background:#dc2626;border:1px solid #dc2626;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:14px;font-weight:700;line-height:1;transition:opacity .12s,transform .12s,background .12s;display:flex;position:absolute;top:-6px;right:-6px;transform:scale(.85);box-shadow:0 2px 6px #dc26264d}.batch-chip-wrap:hover .batch-chip-delete,.batch-chip-delete:focus-visible{opacity:1;transform:scale(1)}.batch-chip-delete:hover{background:#b91c1c;border-color:#b91c1c}.confirm-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;animation:.12s confirm-fade-in;display:flex;position:fixed;inset:0}.confirm-modal{border:1px solid var(--line);background:#fff;border-radius:14px;width:min(440px,100vw - 32px);padding:22px 24px 18px;animation:.14s confirm-pop-in;box-shadow:0 20px 50px #0f172a40}.confirm-modal.danger{border-top:4px solid #dc2626;padding-top:19px}.confirm-title{color:var(--ink);margin-bottom:12px;font-size:18px;font-weight:700}.confirm-body{color:var(--ink);font-size:14px;line-height:1.55}.confirm-body p{margin:0 0 10px}.confirm-body p:last-child{margin-bottom:0}.confirm-body .muted{color:var(--muted)}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-pop-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.category-proportion{flex-direction:column;gap:8px;padding:8px 8px 4px;display:flex}.category-proportion-controls{flex-direction:column;justify-content:flex-start;gap:4px;display:flex}.category-proportion-breakdown{color:var(--muted);letter-spacing:.02em;margin:0;font-size:11px;font-weight:600}.category-proportion-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;flex-direction:column;gap:4px;width:100%;font-size:11px;font-weight:600;display:flex}.category-proportion-label .native-select{width:100%}.category-proportion-chart{flex:1;position:relative}.category-proportion-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.category-proportion-pct{color:#2563eb;font-size:26px;font-weight:800;line-height:1.1}.category-proportion-count{color:var(--muted);margin-top:2px;font-size:12px}.batch-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.batch-compare-picker{align-items:center;gap:8px;font-size:12px;display:flex}.batch-compare-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.batch-compare-select{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;min-width:220px;max-width:320px;padding:6px 10px;font-size:12px}.batch-compare-select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2563eb26}.batch-compare-reset{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:11px}.batch-compare-reset:hover{color:var(--ink);border-color:#cbd5e1}.batch-viewall-btn{color:var(--blue);cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;align-self:stretch;padding:8px 16px;font-size:12px;font-weight:600}.batch-viewall-btn:hover{border-color:var(--blue);background:#eff6ff}.batch-sparkline{background:#f8fafc;border:1px solid #eef2f7;border-radius:8px;align-items:flex-end;gap:6px;height:52px;margin:14px 0 4px;padding:6px 8px;display:flex}.spark-bar{cursor:pointer;background:#cbd5e1;border:none;border-radius:3px 3px 0 0;flex:8px;min-width:6px;max-width:22px;padding:0;transition:background .12s,transform .12s}.spark-bar:hover{transform-origin:bottom;background:#94a3b8;transform:scaleY(1.05)}.spark-bar.has-carry{background:#fbbf24}.spark-bar.has-carry:hover{background:#f59e0b}.spark-bar.compare{background:#f59e0b;outline:1px solid #d97706}.spark-bar.active{background:var(--blue);z-index:1;outline:2px solid #1d4ed8;transform:translateY(-2px);box-shadow:0 0 0 3px #2563eb38}.batch-drawer{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.batch-drawer-search{max-width:360px}.batch-drawer-list{flex-direction:column;gap:12px;max-height:420px;padding-right:4px;display:flex;overflow-y:auto}.batch-drawer-group{flex-direction:column;gap:4px;display:flex}.batch-drawer-groupHead{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #eef2f7;padding:4px 6px 2px;font-size:11px;font-weight:600}.batch-row{cursor:pointer;text-align:left;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:56px 1fr auto auto;align-items:center;gap:12px;padding:8px 10px;font-size:12px;display:grid}.batch-row:hover{border-color:var(--line);background:#f8fafc}.batch-row.active{border-color:var(--blue);background:#eff6ff}.batch-row-id{color:var(--blue);font-variant-numeric:tabular-nums;font-weight:700}.batch-row-file{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.batch-row-date{color:var(--muted);font-size:11px}.batch-row-meta{color:#475569;font-size:11px;font-weight:600}.batch-row-carried{color:#c98a00;font-weight:700}.diff-signals{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;display:grid}.diff-card-active{box-shadow:0 0 0 2px #2563eb2e;border-color:#2563eb!important}.diff-metric-label{margin-bottom:6px}.diff-detail-card{margin-top:8px;position:relative}.diff-detail-card:before{content:"";background:linear-gradient(90deg,#0000,#d6dbe4 20% 80%,#0000);height:1px;position:absolute;top:-14px;left:8%;right:8%}.diff-card-actions{align-items:center;gap:10px;display:flex}.diff-count-chip{text-align:center;min-width:34px;color:var(--ink);background:#eef2f7;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.diff-count-chip.blue{color:#1d4ed8;background:#dbeafe}.diff-count-chip.green{color:#15803d;background:#dcfce7}.diff-count-chip.amber{color:#92400e;background:#fef3c7}.diff-count-chip.orange{color:#c2410c;background:#ffedd5}.diff-count-chip.red{color:#b91c1c;background:#fee2e2}.reactivated-list{flex-direction:column;gap:16px;display:flex}.reactivated-item{border:1px solid var(--line);background:#fffdf5;border-radius:10px;padding:12px 14px}.reactivated-item-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.reactivated-ticket-id{color:var(--blue);white-space:nowrap;font-size:14px;font-weight:700}.reactivated-item-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.reactivated-item-meta{flex-shrink:0;align-items:center;gap:8px;font-size:12px;display:flex}.history-timeline{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.history-entry{align-items:center;gap:4px;display:flex}.history-arrow{color:#aab0bc;margin:0 2px;font-size:12px}.history-entry-inner{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;display:flex}.history-entry.history-current .history-entry-inner{background:#fef9c3;border-color:#fde68a}.history-batch-label{color:#64748b;white-space:nowrap}.history-now-badge{color:#92400e;text-transform:uppercase;background:#fde68a;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.status-chip{white-space:nowrap;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}.status-chip.status-resolved,.status-chip.status-fixed,.status-chip.status-closed{color:#15803d;background:#dcfce7}.status-chip.status-assigned{color:#1d4ed8;background:#dbeafe}.status-chip.status-feedback{color:#c2410c;background:#ffedd5}.status-chip.status-open{color:#b91c1c;background:#fee2e2}.status-chip{color:#475569;background:#f1f5f9}.native-select{border:1px solid var(--line);height:36px;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:0 10px;font-size:13px;font-weight:700}.native-select:focus{outline-offset:1px;border-color:var(--blue);outline:2px solid #2563eb59}.loading{color:var(--muted);align-items:center;gap:10px;padding:24px;font-weight:800;display:flex}.loading.small{padding:10px 0}.btn-clickable,.btn-clickable button,button.btn-clickable{cursor:pointer}.btn-clickable[disabled],.btn-clickable:disabled,.btn-clickable[aria-disabled=true]{cursor:not-allowed}.issue-table-block{grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;display:grid}.pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 4px 4px;font-size:12px;font-weight:700;display:flex}.pagination-info{color:#475569}.pagination-controls{align-items:center;gap:16px;display:flex}.pagination-size{color:#475569;align-items:center;gap:8px;font-weight:700;display:inline-flex}.pagination-size .native-select{height:32px;padding:0 8px;font-size:12px}.pagination-nav{align-items:center;gap:4px;display:inline-flex}.page-btn{border:1px solid var(--line);min-width:32px;height:32px;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:0 8px;font-size:13px;font-weight:800;transition:background-color .12s,border-color .12s,color .12s}.page-btn:hover:not(:disabled):not(.active){border-color:var(--blue);color:var(--blue);background:#eff6ff}.page-btn.active{background:var(--blue);border-color:var(--blue);color:#fff;cursor:default}.page-btn:disabled{color:#cbd5e1;cursor:not-allowed;background:#f8fafc}.page-gap{color:var(--muted);padding:0 4px;font-weight:900}.batch-chip-carried{color:#15803d;font-weight:800}
