.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;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;-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)}.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:bottom right;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-w,.react-resizable-handle-e{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)}:root{--bg: #f4f6f9;--panel: #ffffff;--panel-2: #eef2f6;--line: #dde4ec;--text: #0f1a24;--muted: #5a6b7b;--blue: #1e6fb8;--cyan: #128f95;--green: #2f7a48;--yellow: #9a6a08;--violet: #6c40c9;--red: #b23a36;--grey: #7b8b9b;--radius: 12px;--shadow: 0 1px 2px rgba(15, 26, 36, .06), 0 8px 24px rgba(15, 26, 36, .05)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #030912;--panel: #0b1928;--panel-2: #102238;--line: #17324b;--text: #f5f9fd;--muted: #9bb0c5;--blue: #2b8fe8;--cyan: #4fd5d5;--green: #50c768;--yellow: #f4bd2d;--violet: #8d5bea;--red: #f05252;--grey: #8293a4;--shadow: 0 22px 60px rgba(0, 0, 0, .28)}}:root[data-theme=dark]{--bg: #030912;--panel: #0b1928;--panel-2: #102238;--line: #17324b;--text: #f5f9fd;--muted: #9bb0c5;--blue: #2b8fe8;--cyan: #4fd5d5;--green: #50c768;--yellow: #f4bd2d;--violet: #8d5bea;--red: #f05252;--grey: #8293a4;--shadow: 0 22px 60px rgba(0, 0, 0, .28)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}.app{padding:16px 18px 32px}.topbar{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.page-title{font-size:21px;font-weight:700;letter-spacing:-.01em}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--line);overflow-x:auto}.tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted, var(--text));padding:9px 14px;font:inherit;cursor:pointer;white-space:nowrap}.tab:hover{color:var(--text)}.tab--active{color:var(--text);border-bottom-color:var(--blue);font-weight:600}.tab:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.btn{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 13px;font:inherit;cursor:pointer}.btn:hover{background:var(--panel-2)}.btn--primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn--primary:hover{filter:brightness(1.08)}.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}select,input[type=number],input[type=date],input[type=text]{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font:inherit}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;height:100%}.card__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 14px 6px}.card__title{font-size:14px;font-weight:600}.card__meta{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px}.tbl-search{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding-bottom:6px;background:var(--panel)}.tbl-search input{flex:1;min-width:0;font:inherit;font-size:13px;height:32px;color:var(--text);border:1.5px solid var(--blue);border-radius:6px;padding:4px 10px 4px 32px;background:var(--panel-2) no-repeat 9px center / 15px url(/search.svg)}.tbl-search input::placeholder{color:var(--text);opacity:.75}.tbl-search input:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 30%,transparent)}.tbl-search .muted{font-size:11px;white-space:nowrap}.error--banner{margin:0 4px 10px;padding:8px 10px;font-size:12px;background:var(--panel);border:1px solid var(--red);border-radius:6px}.funnel{display:flex;flex-direction:column;gap:14px;padding:4px 2px}.funnel__row{display:grid;grid-template-columns:150px 1fr 120px;align-items:end;gap:12px}.funnel__name{font-size:12px;color:var(--muted);text-align:right;padding-bottom:18px}.funnel__bars{min-width:0}.funnel__plan{position:relative;height:26px}.funnel__mark{position:absolute;bottom:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;line-height:1.15;font-size:10px;color:var(--muted);white-space:nowrap}.funnel__mark:first-child{transform:translate(-10%)}.funnel__mark:last-child{transform:translate(-90%)}.funnel__mark:only-child{transform:translate(-50%)}.funnel__mark i{font-style:normal;font-weight:600;color:var(--text)}.funnel__mark--late,.funnel__mark--late i{color:var(--red)}.funnel__mark button{position:absolute;top:-12px;right:-10px;font:inherit;line-height:1;color:var(--muted);background:none;border:none;cursor:pointer}.funnel__mark button:hover{color:var(--red)}.funnel__track{position:relative;height:20px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;overflow:hidden}.funnel__fill{height:100%;background:var(--blue)}.funnel__caption{padding-top:4px;font-size:11px;color:var(--text);font-variant-numeric:tabular-nums}.funnel__rest{padding-bottom:18px;font-size:11px;font-variant-numeric:tabular-nums}.funnel__rest b{display:block;color:var(--red);font-size:13px}.funnel__rest .muted{font-size:10px}.funnel__ruler{display:flex;justify-content:space-between;margin-left:162px;margin-right:132px;padding-top:2px;border-top:1px dashed var(--line);font-size:10px;color:var(--muted)}.funnel__form{display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}.funnel__form select,.funnel__form input,.funnel__form button{font:inherit;font-size:11px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:3px 6px}.funnel__form input[type=number]{width:64px}.funnel__percent{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}.funnel__form button{cursor:pointer}.funnel__form button:disabled{color:var(--muted);cursor:default}.funnel__form .funnel__submit{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600;padding:4px 12px}.funnel__form .funnel__submit:hover:not(:disabled){filter:brightness(1.08)}.funnel__form .funnel__submit:disabled{color:#fff;opacity:.55;cursor:default}.funnel__form .funnel__submit:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 4px 10px}.filter{position:relative;display:inline-flex;align-items:center;gap:6px}.filter__title{font-size:12px;color:var(--muted)}.filter__select,.filter__button{font:inherit;font-size:12px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 8px;cursor:pointer}.filter__button:hover,.filter__select:hover{border-color:var(--muted)}.filter__menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:240px;max-height:320px;overflow:auto;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.filter__option{display:flex;align-items:center;gap:8px;padding:3px 2px;font-size:12px;cursor:pointer}.filter--range{flex-wrap:nowrap}.filter__search{width:100%;box-sizing:border-box;margin-bottom:6px;padding:4px 8px;font:inherit;font-size:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}.filter__search:focus{outline:none;border-color:var(--blue)}.filter__option:hover{color:var(--blue)}.filter__reset{display:block;width:100%;margin-bottom:6px;padding:4px;font:inherit;font-size:12px;color:var(--muted);background:none;border:1px solid var(--line);border-radius:6px;cursor:pointer}.card__param{font:inherit;font-size:11px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 4px;cursor:pointer}.card__param:hover{border-color:var(--muted)}.card__param[type=date]{cursor:text;color-scheme:light dark}.card__search{cursor:text;width:300px;max-width:45vw;height:32px;font-size:13px;padding:4px 10px 4px 32px;border:1.5px solid var(--blue);border-radius:6px;background:var(--panel-2) no-repeat 9px center / 15px url(/search.svg)}.card__search::placeholder{color:var(--text);opacity:.75}.card__search:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 30%,transparent)}.card__crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:0 14px 4px;font-size:12px;color:var(--text)}.card__crumbs button{font:inherit;color:var(--blue);background:none;border:none;padding:0;cursor:pointer}.card__crumbs button:hover{text-decoration:underline}.card__crumbs-sep{color:var(--muted);margin:0 6px}.cell-link{color:inherit;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.tbl__row--drill{cursor:pointer}.tbl__row--drill:hover td{background:color-mix(in srgb,var(--blue) 8%,transparent)}.cell-link:hover{color:var(--blue);text-decoration-style:solid}.card__body{flex:1;min-height:0;padding:6px 14px 14px;overflow:auto}.muted{color:var(--muted)}.empty{color:var(--muted);font-size:13px;padding:12px 0}.error{color:var(--red);font-size:13px;padding:12px 0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(132px,100%),1fr));gap:10px;align-content:start;min-height:100%}.kpi{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;display:flex;flex-direction:column;gap:4px;border-left:3px solid var(--tone, var(--grey))}.kpi__label{font-size:11px;color:var(--muted);line-height:1.25}.kpi__value{font-size:25px;font-weight:700;font-variant-numeric:tabular-nums}.indicator{display:flex;flex-direction:column;justify-content:center;height:100%}.indicator__value{font-size:42px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.indicator__unit{font-size:15px;color:var(--muted);margin-left:6px}.ranked{display:flex;flex-direction:column;gap:8px;height:100%;overflow-y:auto}.ranked__row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.ranked__label{font-size:13px}.ranked__value{font-weight:600;font-variant-numeric:tabular-nums}.ranked__bar{grid-column:1 / -1;height:4px;border-radius:2px;background:var(--panel-2)}.ranked__bar span{display:block;height:100%;border-radius:2px;background:var(--tone, var(--blue))}.tbl-wrap{overflow:auto;height:100%}table.tbl{border-collapse:collapse;width:100%;font-size:13px}table.tbl th{position:sticky;top:0;background:var(--panel-2);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}table.tbl td{padding:7px 10px;border-bottom:1px solid var(--line)}table.tbl td.num{text-align:right;font-variant-numeric:tabular-nums}.react-grid-item.react-grid-placeholder{background:var(--blue);opacity:.18;border-radius:var(--radius)}.react-grid-item>.react-resizable-handle{z-index:3}.widget-actions{display:flex;gap:6px}.widget-actions button{background:none;border:1px solid var(--line);color:var(--muted);border-radius:6px;cursor:pointer;font-size:11px;padding:2px 7px}.widget-actions button:hover{color:var(--text)}.drawer{position:fixed;inset:0 0 0 auto;width:min(380px,92vw);background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow);padding:18px;overflow-y:auto;z-index:40}.drawer h2{font-size:16px;margin:0 0 12px}.drawer__item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;background:var(--panel-2)}.drawer__item:hover{border-color:var(--blue)}.drawer__item b{display:block;font-size:13px}.drawer__item span{font-size:12px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12px;color:var(--muted)}.center{display:grid;place-items:center;min-height:60vh;text-align:center;padding:24px}.filters-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.filters-row .filters{flex:1}.btn--ghost{background:transparent}.print-head{display:none}@page{size:A4 landscape;margin:10mm}@media print{:root,:root[data-theme=dark]{--bg: #ffffff;--panel: #ffffff;--panel-2: #f4f6f9;--line: #c8d2dd;--text: #0f1a24;--muted: #4a5a6a;--shadow: none}body{background:#fff}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.topbar,.filters,.tabs,.print-hide,.widget-actions,.widget-param,.funnel__form{display:none!important}.print-head{display:block;font-size:16px;font-weight:700;padding:0 4px 12px}.app{padding:0}.widget{box-shadow:none;border:1px solid var(--line)}.react-grid-layout{display:flex!important;flex-wrap:wrap;gap:12px;height:auto!important}.react-grid-item{position:static!important;transform:none!important;break-inside:avoid;page-break-inside:avoid}}
