:root{--bg: #eef2f6;--surface: #ffffff;--surface-soft: #f7f9fc;--ink: #17202a;--muted: #667085;--line: #d7dee8;--line-strong: #b8c3d1;--nav: #182335;--nav-soft: #23324a;--nav-hover: #2f4262;--brand: #1d8f75;--brand-2: #2f7df6;--accent: #f4b740;--danger: #e13d3d;--shadow: 0 14px 40px rgba(16, 24, 40, .12)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;min-height:100%;overflow:auto;color:var(--ink);background:var(--bg);font-family:Segoe UI,Arial,sans-serif;font-size:13px}button,input,select{font:inherit}.app-frame{min-height:100%;height:100dvh;display:grid;grid-template-columns:272px 1fr;overflow:auto}.app-frame.landing-only{grid-template-columns:272px}.app-frame.landing-only .workspace{display:none}.app-frame.is-sidebar-collapsed{grid-template-columns:72px 1fr}.app-frame.landing-only.is-sidebar-collapsed{grid-template-columns:72px}.legacy-sidebar{background:var(--nav);padding:18px 16px;overflow-y:auto;overflow-x:hidden;min-height:0;border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column}.sidebar-topbar{display:flex;justify-content:flex-start;margin-bottom:10px;order:0}.legacy-sidebar .side-group{order:1}.sidebar-toggle{width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff14;color:#eef4ff;font-size:18px;font-weight:700;line-height:1;cursor:pointer}.sidebar-toggle:hover{background:#ffffff29}.app-frame.is-sidebar-collapsed .legacy-sidebar{padding:18px 8px}.app-frame.is-sidebar-collapsed .sidebar-topbar{display:block}.app-frame.is-sidebar-collapsed .sidebar-toggle{width:100%;border-radius:10px}.app-frame.is-sidebar-collapsed .brand-panel{padding:8px;justify-content:center}.app-frame.is-sidebar-collapsed .brand-panel>div{display:none}.app-frame.is-sidebar-collapsed .brand-logo{width:30px;height:30px;font-size:17px}.app-frame.is-sidebar-collapsed .group-title,.app-frame.is-sidebar-collapsed .bi-menu-container,.app-frame.is-sidebar-collapsed .db-indicator{display:none}.app-frame.is-sidebar-collapsed .side-group{background:transparent;border-color:transparent;margin-bottom:8px;max-height:none}.app-frame.is-sidebar-collapsed .side-group-items{overflow:visible;padding-bottom:0;display:grid;gap:6px}.app-frame.is-sidebar-collapsed .side-link{justify-content:center;padding:0;font-size:0;border-radius:8px}.app-frame.is-sidebar-collapsed .side-link .ico{margin:0}.app-frame.is-sidebar-collapsed .logout-link{margin-bottom:8px}.brand-panel{min-height:68px;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;margin-top:0;margin-bottom:0;border-radius:10px;background:linear-gradient(135deg,#2f7df62e,#1d8f7533);border:1px solid rgba(255,255,255,.1);color:#fff;order:4}.logout-link{order:2;margin-top:auto;margin-bottom:10px;min-height:38px;border:1px solid #7d2633;border-radius:11px;background:linear-gradient(180deg,#a94052,#892d3f 58%,#6f2232);color:#ffe9ed;font-weight:800;letter-spacing:.15px;box-shadow:0 1px #fff3,0 10px 18px #10182847;transition:transform .12s ease,filter .18s ease,box-shadow .18s ease}.logout-link:hover,.logout-link.active{background:linear-gradient(180deg,#b3485b,#983447 58%,#7a2939);color:#fff4f7;transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 2px #ffffff3d,0 12px 20px #10182852}.logout-link:active{transform:translateY(0);filter:brightness(.98)}.logout-link .ico{background:#ffffff29;border:1px solid rgba(255,255,255,.22)}.brand-logo{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--brand-2));font-size:21px;font-weight:800}.brand-panel strong{display:block;font-size:15px}.brand-panel small{display:block;margin-top:3px;color:#b7c2d4}.side-group{margin-bottom:14px;border-radius:10px;overflow:hidden;background:var(--nav-soft);border:1px solid rgba(255,255,255,.08);min-width:0;max-height:min(42dvh,360px);display:flex;flex-direction:column}.side-group-items{min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:4px}.hidden-section{display:none}.group-title{width:100%;height:36px;border:0;padding:0 38px 0 14px;color:#d9e6ff;background:linear-gradient(180deg,#ffffff14,#ffffff0d);text-align:left;font-weight:700;position:relative;z-index:2}.db-indicator{order:3;margin-bottom:10px;padding:10px;border-radius:11px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,#ffffff1a,#ffffff0f);color:#eaf0ff;display:grid;gap:4px}.db-indicator-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#b9c8e0}.db-indicator-value{font-size:13px;color:#fff;overflow-wrap:anywhere}.group-title:after{content:"⌃";position:absolute;right:12px;top:9px;width:18px;height:18px;border-radius:50%;color:#c9d8f2;background:#ffffff14;text-align:center;line-height:17px;transition:transform .2s ease}.side-group.is-collapsed>:not(.group-title){display:none}.side-group.is-collapsed .group-title:after{transform:rotate(180deg)}.side-link{width:100%;min-height:34px;border:0;padding:0 12px 0 14px;display:flex;align-items:center;gap:9px;color:#d2dcec;background:transparent;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-link:hover,.side-link.active{background:var(--nav-hover);color:#fff}.side-link.active{box-shadow:inset 3px 0 0 var(--brand)}.side-link.danger{color:#ffb4b4;font-weight:700}.side-link.danger:hover,.side-link.danger.active{background:#4b2a34;color:#ffd4d4}.bi-category-toggle{font-weight:700;border-top:1px solid rgba(255,255,255,.08)}.bi-category-toggle:after{content:"▾";margin-left:auto;color:#c9d8f2;transition:transform .2s ease}.bi-category-toggle.is-collapsed:after{transform:rotate(-90deg)}.bi-reports-list{display:block}.bi-reports-list.is-collapsed,.bi-menu-container.is-hidden{display:none}.bi-menu-container .bi-report-link{padding-left:28px}.bi-menu-container .bi-category-toggle,.bi-menu-container .bi-report-link{width:100%}.bi-menu-container{padding:4px;max-height:min(62dvh,620px);overflow:auto}.bi-menu-dialog{border:1px solid #314463;padding:0;width:min(520px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);border-radius:14px;overflow:hidden;background:#1e2d45;box-shadow:0 24px 64px #10182873}.bi-menu-dialog::backdrop{background:#080f1c8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bi-menu-dialog-shell{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.bi-menu-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:#ecf3ff;background:linear-gradient(130deg,#2f4262,#1f2f4b 58%,#1a2740);border-bottom:1px solid rgba(255,255,255,.12)}.bi-menu-close{height:30px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:#ffffff1f;color:#f1f6ff;padding:0 10px;cursor:pointer;font-weight:700}.bi-menu-close:hover{background:#fff3}.app-frame.is-sidebar-collapsed .bi-report-link{padding-left:0}.bi-filter-dialog{border:1px solid #314463;padding:0;background:#e8edf5;width:min(780px,calc(100vw - 20px));height:min(700px,calc(100vh - 20px));max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);margin:auto;top:0;right:0;bottom:0;left:0;border-radius:14px;box-shadow:0 24px 64px #10182873;overflow:hidden}.bi-filter-dialog.is-resumen-partes-mode{height:auto;max-height:min(700px,calc(100vh - 20px));margin:0;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%)}.bi-filter-dialog.is-static-season-only-mode{height:auto;max-height:min(320px,calc(100vh - 20px));margin:0;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%)}.bi-filter-dialog::backdrop{background:radial-gradient(circle at 15% 20%,rgba(47,125,246,.15),transparent 45%),#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bi-filter-form{display:grid;grid-template-rows:auto 1fr auto;min-height:0;height:100%;background:linear-gradient(180deg,#edf2f9,#e4eaf3)}.bi-filter-dialog.is-resumen-partes-mode .bi-filter-form,.bi-filter-dialog.is-static-season-only-mode .bi-filter-form{grid-template-rows:auto auto auto;height:auto}.bi-filter-header{background:linear-gradient(130deg,#2f4262,#1f2f4b 58%,#1a2740);border-bottom:1px solid rgba(255,255,255,.12);color:#f1f6ff;padding:7px 12px;letter-spacing:.2px;font-weight:700;font-size:13px}.bi-filter-grid{--bi-row-height: 34px;--bi-label-width: 114px;--bi-id-min: 102px;padding:10px;display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto;overflow-x:hidden}.bi-filter-dialog.is-resumen-partes-mode .bi-filter-grid,.bi-filter-dialog.is-static-season-only-mode .bi-filter-grid{overflow-y:visible}.bi-filter-line{display:grid;grid-template-columns:minmax(185px,.72fr) 38px minmax(260px,1fr);gap:6px;align-items:center;width:100%}.bi-filter-line--dates{grid-template-columns:minmax(185px,.72fr) 38px minmax(260px,1fr);gap:6px}.bi-filter-line>.bi-filter-spacer:last-child{display:none}.bi-filter-line>*{min-width:0}.bi-filter-spacer{width:100%;height:var(--bi-row-height);border:1px solid transparent}.bi-filter-side-text{width:100%;height:var(--bi-row-height);border:1px solid #b7c5da;border-radius:10px;background:linear-gradient(#f9fbfe,#f1f5fb);padding:0 9px;color:#33455f;font-weight:500}.bi-filter-side-text:focus{outline:none;box-shadow:inset 0 0 0 2px #2f7df640}.bi-filter-row{min-width:0;display:grid;grid-template-columns:var(--bi-label-width) minmax(var(--bi-id-min),1fr);align-items:center;border:1px solid #afbed4;background:linear-gradient(#f7faff,#edf3fc);min-height:var(--bi-row-height);border-radius:10px;overflow:hidden;box-shadow:0 1px #fffc,inset 0 0 0 1px #ffffff6b}.bi-filter-row>span{height:100%;display:flex;align-items:center;padding:0 7px;border-right:1px solid #c4d0e0;background:linear-gradient(#e5edf8,#d8e3f2);color:#263a56;font-weight:600;font-size:14px;white-space:nowrap}.bi-filter-row>input{width:100%;height:calc(var(--bi-row-height) - 2px);border:0;background:#fff;padding:0 6px;color:#1e2f44;font-size:14px}.bi-filter-row>input[type=date]{padding-right:22px;min-width:0}.bi-filter-row>input:focus{outline:none;background:#f6fbff;box-shadow:inset 0 0 0 2px #2f7df659}.bi-filter-row-inline-lookup{grid-template-columns:var(--bi-label-width) minmax(0,1fr)}.bi-filter-line--dates .bi-filter-row{grid-template-columns:var(--bi-label-width) minmax(var(--bi-id-min),1fr)}.bi-inline-lookup-wrap{display:flex;align-items:center;gap:2px;padding-right:2px;min-width:0}.bi-inline-lookup-wrap input{flex:1 1 auto;min-width:0;height:calc(var(--bi-row-height) - 2px);border:0;background:#fff;padding:0 6px;color:#1a2737;font-size:14px}.bi-inline-lookup-wrap input:focus{outline:none;background:#f6fbff;box-shadow:inset 0 0 0 2px #2f7df659}.bi-inline-lookup-button{width:34px;min-width:34px;height:28px;margin:0}.bi-lookup-button{height:var(--bi-row-height);border:1px solid #7297c4;border-radius:10px;background:linear-gradient(180deg,#ecf5ff,#bcdafe);cursor:pointer;color:#17375c;font-size:14px;font-weight:700;transition:transform .12s ease,box-shadow .18s ease,filter .18s ease}.bi-lookup-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #26599a40}.bi-lookup-button:active{transform:translateY(0);filter:brightness(.97)}.bi-filter-actions{border-top:1px solid #b7c6dc;background:linear-gradient(#e8edf4,#dce4ef);padding:9px 10px;display:flex;gap:10px;justify-content:flex-start;position:static}.bi-filter-actions button{min-width:148px;height:38px;border:1px solid #234875;border-radius:10px;cursor:pointer;font-weight:700;font-size:14px;letter-spacing:.15px;transition:transform .12s ease,box-shadow .18s ease,filter .18s ease;box-shadow:0 1px #ffffff40,0 10px 18px #1018283d}.bi-action-save{background:linear-gradient(180deg,#2f5f97,#214a79 58%,#173b61);color:#f3f8ff;border-color:#1c4068}.bi-action-cancel{background:linear-gradient(180deg,#2b578c,#1f466f 58%,#17395b);color:#f1f7ff;border-color:#1a3d62;margin-left:auto}.bi-filter-actions button:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 2px #ffffff4d,0 12px 20px #10182847}.bi-filter-actions button:active{transform:translateY(0);filter:brightness(.98)}@media (max-width: 1100px){.bi-filter-grid{--bi-label-width: 104px;--bi-id-min: 88px;gap:7px}.bi-filter-line,.bi-filter-line--dates{grid-template-columns:minmax(0,.74fr) 36px minmax(0,1fr)}.bi-inline-lookup-button{width:36px;min-width:36px}}@media (max-width: 820px){.bi-filter-dialog{width:calc(100vw - 12px);height:calc(100vh - 12px);max-width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:10px}.bi-filter-grid{padding:10px;--bi-label-width: 110px;--bi-id-min: 96px}.bi-filter-line{grid-template-columns:minmax(0,1fr) 38px}.bi-filter-line--dates{grid-template-columns:minmax(0,1fr)}.bi-filter-line--dates .bi-filter-spacer,.bi-filter-line .bi-filter-spacer,.bi-filter-side-text{display:none}.bi-lookup-dialog{width:min(820px,calc(100vw - 24px));height:min(620px,calc(100vh - 24px));max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);border-radius:10px}.bi-menu-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:10px}.bi-menu-container{max-height:min(68dvh,560px)}}.bi-lookup-dialog{border:1px solid #314463;padding:0;width:min(820px,calc(100vw - 40px));height:min(620px,calc(100vh - 56px));max-width:calc(100vw - 40px);max-height:calc(100vh - 56px);margin:auto;top:0;right:0;bottom:0;left:0;background:#eaf0f8;border-radius:14px;box-shadow:0 24px 64px #10182873;overflow:hidden}.bi-lookup-dialog::backdrop{background:radial-gradient(circle at 15% 20%,rgba(47,125,246,.15),transparent 45%),#00000085;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bi-lookup-form{display:grid;grid-template-rows:auto auto 1fr auto;min-height:0;height:100%;background:linear-gradient(180deg,#eff4fb,#e5ecf7)}.bi-lookup-header{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(130deg,#2f4262,#1f2f4b 58%,#1a2740);color:#f1f6ff;letter-spacing:.2px}.bi-lookup-toolbar{padding:10px 12px}.bi-lookup-toolbar input{width:100%;height:38px;border:1px solid #aebdd2;border-radius:10px;padding:0 12px;background:#fff}.bi-lookup-toolbar input:focus{outline:none;box-shadow:0 0 0 3px #2f7df638;border-color:#7ea3d1}.bi-lookup-table-wrap{padding:0 12px 12px;min-height:0;overflow:auto}.bi-lookup-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #b8c6da;border-radius:12px;overflow:hidden}.bi-lookup-table th,.bi-lookup-table td{border-bottom:1px solid #e1e8f3;padding:8px 10px;text-align:left;white-space:nowrap;color:#1f2d41}.bi-lookup-table th{position:sticky;top:0;background:linear-gradient(#f6f9fd,#e9f0f9);font-weight:700;z-index:1}.bi-lookup-table tbody tr{cursor:pointer;transition:background .12s ease}.bi-lookup-table tbody tr:hover{background:#edf6ff}.bi-lookup-table tbody tr.is-selected{background:linear-gradient(90deg,#dceeff,#eaf4ff);box-shadow:inset 3px 0 #2f7df6}.bi-lookup-actions{border-top:1px solid #b7c6dc;padding:10px 12px 12px;display:flex;gap:10px;justify-content:flex-end;background:linear-gradient(#e8edf4,#dce4ef);position:sticky;bottom:0;z-index:3}.bi-lookup-actions button{min-width:110px;height:38px;border:1px solid #7a8ba3;border-radius:9px;background:linear-gradient(#fff,#e2eaf5);cursor:pointer;font-weight:700;color:#1d2f4a;box-shadow:0 2px #fff9,0 10px 20px #1018281a}#biLookupSelectButton,#biLookupCloseButton{min-width:148px;border-color:#1f426b;background:linear-gradient(180deg,#2f5f97,#214a79 58%,#173b61);color:#f3f8ff;box-shadow:0 1px #ffffff40,0 10px 18px #1018283d}#biLookupSelectButton{margin-right:auto}#biLookupCloseButton{margin-left:auto}#biLookupSelectButton:hover,#biLookupCloseButton:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 2px #ffffff4d,0 12px 20px #10182847}#biLookupSelectButton:active,#biLookupCloseButton:active{transform:translateY(0);filter:brightness(.98)}#biLookupContinueWithoutConfigButton{min-width:220px;border-color:#4d6f9e;background:linear-gradient(180deg,#5f8fca,#3f73b4 58%,#315d95);color:#f5f9ff}.bi-lookup-table .bi-lookup-action-col{width:32px;text-align:center}.bi-lookup-table .bi-lookup-action-cell{text-align:center}.bi-lookup-delete-row{justify-self:auto;min-width:0!important;width:24px!important;max-width:24px;height:24px;border:1px solid #c53f3f;border-radius:5px;background:linear-gradient(#fff5f5,#ffe7e7);cursor:pointer;line-height:0;color:#b42323;display:inline-flex;align-items:center;justify-content:center;padding:0;box-shadow:inset 0 0 0 1px #fff9}.bi-lookup-delete-row:before{content:"";width:18px;height:18px;background:currentColor;filter:drop-shadow(0 0 1px rgba(77,11,11,.6));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M9 3h6l1 1h4v2H4V4h4l1-1Zm1 6h2v9h-2V9Zm4 0h2v9h-2V9ZM7 9h2v9H7V9Zm1 12h8a2 2 0 0 0 2-2V7H6v12a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M9 3h6l1 1h4v2H4V4h4l1-1Zm1 6h2v9h-2V9Zm4 0h2v9h-2V9ZM7 9h2v9H7V9Zm1 12h8a2 2 0 0 0 2-2V7H6v12a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E") center / contain no-repeat}.bi-lookup-delete-row:hover{color:#8f1717;border-color:#a22626;background:linear-gradient(#ffe9e9,#ffd8d8)}.ico{width:16px;height:16px;display:inline-block;border-radius:4px;background:#ffffff1f;position:relative;flex:0 0 auto}.ico.sum:before{content:"Σ";position:absolute;color:var(--accent);font-weight:800;left:3px;top:-2px}.ico.task:before,.ico.coins:before,.ico.chart:before,.ico.table:before,.ico.logout:before,.ico.truck:before,.ico.preview:before,.ico.html:before,.ico.xml:before,.ico.excel:before,.ico.text:before,.ico.save:before,.ico.filter:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:2px;background:var(--brand-2)}.ico.coins:before,.ico.filter:before{background:var(--accent)}.ico.excel:before,.ico.chart:before{background:var(--brand)}.ico.logout:before{top:2px;right:2px;bottom:2px;left:2px;background:#fff3f6;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M3 3h11a2 2 0 0 1 2 2v3h-2V5H5v14h9v-3h2v3a2 2 0 0 1-2 2H3V3Zm11 5 7 4-7 4v-3H8v-2h6V8Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M3 3h11a2 2 0 0 1 2 2v3h-2V5H5v14h9v-3h2v3a2 2 0 0 1-2 2H3V3Zm11 5 7 4-7 4v-3H8v-2h6V8Z'/%3E%3C/svg%3E") center / contain no-repeat}.workspace{min-width:0;min-height:0;padding:22px 22px 10px;background:radial-gradient(circle at right top,rgba(47,125,246,.08),transparent 360px),var(--bg);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;overflow:auto;position:relative}h1{margin:0;font-size:20px;font-weight:650;letter-spacing:0}.filter-strip{position:absolute;left:22px;right:22px;top:72px;z-index:15;display:flex;align-items:end;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 45px #1018282e}.filter-strip.hidden-filter-panel{display:none}.filter-strip label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.filter-strip input,.filter-strip select{height:34px;min-width:118px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:0 9px}.filter-strip input:focus,.filter-strip select:focus{outline:2px solid rgba(47,125,246,.18);border-color:var(--brand-2)}.filter-strip button{height:34px;border:0;border-radius:7px;padding:0 14px;background:var(--brand);color:#fff;cursor:pointer;font-weight:700}.pivot-shell{min-width:0;min-height:0;height:100%;position:relative;background:#dedede;border:1px solid #707070;border-radius:0;overflow:hidden;display:flex;flex-direction:column;box-shadow:none}.grid-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#e6eaf0b3;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.grid-loading-overlay[hidden]{display:none!important}.grid-loading-panel{min-width:220px;min-height:64px;padding:12px 16px;border-radius:12px;border:1px solid #9fb1c9;background:linear-gradient(180deg,#f6f9fd,#e8eef7);box-shadow:0 12px 24px #1018282e;color:#2a3f5d;display:inline-flex;align-items:center;gap:10px}.grid-loading-spinner{width:18px;height:18px;border-radius:50%;border:2px solid #b8c9de;border-top-color:#2f7df6;animation:grid-loading-spin .8s linear infinite}@keyframes grid-loading-spin{to{transform:rotate(360deg)}}.bi-config-save-panel{width:100%;display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:8px 10px 6px;border:1px solid #8ea2bc;border-radius:10px;background:linear-gradient(180deg,#e8eef8,#dce6f4);box-shadow:0 6px 18px #1018281f}.bi-config-save-status{margin-right:auto;display:flex;align-items:center;gap:18px;color:#3f5678;font-weight:600}.bi-config-save-status #status,.bi-config-save-status #rowCount{white-space:nowrap}.bi-config-secondary-button,#biSaveConfigButton{min-height:34px;border:1px solid #4d6f9e;border-radius:9px;padding:0 12px;width:auto;max-width:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,#5f8fca,#3f73b4 58%,#315d95);color:#f5f9ff;font-weight:800;font-size:12px;letter-spacing:0;cursor:pointer;box-shadow:0 2px #ffffff40,0 10px 18px #1e416e59;transition:transform .12s ease,box-shadow .18s ease,filter .18s ease}.bi-config-secondary-button:hover,#biSaveConfigButton:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 2px #ffffff4d,0 14px 22px #1e416e66}.bi-config-secondary-button:active,#biSaveConfigButton:active{transform:translateY(0);filter:brightness(.98)}#biLoadConfigButton:before,#biApplyFilterButton:before,#biSaveConfigButton:before{content:"";width:16px;height:16px;background-size:contain;background-repeat:no-repeat;background-position:center}#biLoadConfigButton:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 5h10l2 2h4v12H4V5Z' fill='%23ffffff' fill-opacity='0.18' stroke='%23ffffff' stroke-width='1.6'/%3E%3Cpath d='M12 9v7' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M9.5 13.5L12 16l2.5-2.5' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}#biApplyFilterButton:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 6h16L14 13v5l-4-2v-3L4 6Z' fill='%23ffffff' fill-opacity='0.2' stroke='%23ffffff' stroke-width='1.6' stroke-linejoin='round'/%3E%3Ccircle cx='17.5' cy='17.5' r='3.2' fill='%23cfe3ff' stroke='%23ffffff' stroke-width='1.2'/%3E%3Cpath d='M17.5 15.8v3.4M15.8 17.5h3.4' stroke='%2327597e' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E")}.bi-config-save-panel.is-hidden{display:none}#biSaveConfigButton:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 3h13l3 3v15H4V3Z' fill='%23ffffff' fill-opacity='0.18' stroke='%23ffffff' stroke-width='1.6'/%3E%3Cpath d='M8 3h7v6H8V3Z' fill='%23ffffff'/%3E%3Cpath d='M8 14h8v6H8v-6Z' fill='%23cfe3ff' stroke='%23ffffff' stroke-width='1.2'/%3E%3C/svg%3E")}.bi-config-name-dialog{border:1px solid #304764;border-radius:14px;padding:0;background:linear-gradient(180deg,#eef3fa,#e2eaf6);box-shadow:0 26px 58px #10182859}.bi-config-name-dialog::backdrop{background:radial-gradient(circle at 22% 18%,rgba(47,125,246,.17),transparent 42%),#0000006b}.bi-config-name-form{min-width:min(460px,calc(100vw - 32px));display:grid;gap:14px;padding:14px}.bi-config-name-form>header{font-size:17px;font-weight:800;color:#173459;padding:2px 2px 10px;border-bottom:1px solid #c4d1e2}.bi-config-name-form label{display:grid;gap:7px}.bi-config-mode-toggle{display:flex;flex-wrap:wrap;gap:10px}.bi-config-mode-toggle label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #b6c5d9;border-radius:10px;background:linear-gradient(180deg,#f7fafe,#edf3fb);color:#1f3554;font-weight:600}.bi-config-mode-toggle input{margin:0}#biConfigExistingSelect{width:100%;height:38px;border:1px solid #9bb0c9;border-radius:10px;background:#fff;padding:0 10px;color:#1a2a41}.bi-config-name-form label span{font-weight:700;color:#1f3554}.bi-config-name-form input{width:100%;height:40px;border:1px solid #9bb0c9;border-radius:10px;background:#fff;padding:0 12px;color:#1a2a41}.bi-config-name-form input:focus{outline:none;border-color:#658fc2;box-shadow:0 0 0 3px #2f7df638}.bi-config-name-form footer{display:flex;justify-content:space-between;gap:10px}#biConfigNameCancelButton{margin-left:auto}#biConfigNameSaveButton,#biConfigNameCancelButton{min-width:118px;height:36px;border:1px solid #7f95b2;border-radius:10px;cursor:pointer;font-weight:700}#biConfigNameSaveButton{background:linear-gradient(180deg,#4a87cd,#376dac);border-color:#3c6ea8;color:#f4f8ff}#biConfigNameCancelButton{background:linear-gradient(180deg,#f7f9fc,#e6ebf3);color:#2a3b53}.pivot-designer{display:grid;grid-template-columns:310px 1fr;grid-template-areas:"filters filters" "measures columns" "rows columns";gap:0;background:radial-gradient(circle at 180px 72px,rgba(55,190,150,.22),transparent 170px),linear-gradient(135deg,#283244,#3b4656 58%,#263140);border-bottom:1px solid #8f9bac}.designer-area{min-height:36px;padding:6px;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.filter-area{grid-area:filters}.measure-area{grid-area:measures}.column-area{grid-area:columns}.row-area{grid-area:rows}.designer-area>span{display:none}.designer-area.drag-over{background:#22c58c2e;outline:1px dashed #93f2cc;outline-offset:-3px}.field-zone{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;gap:6px;min-height:28px;padding:0;background:transparent;border-bottom:0}.measure-fields{background:#f3f6fa}.inline-fields{display:flex;align-items:center;gap:6px}.zone-gap{width:24px}.field-chip{min-width:64px;height:22px;border:1px solid rgba(255,255,255,.24);border-radius:5px;padding:0 18px 0 7px;color:#152033;background:linear-gradient(#f8fafc,#c9d1dd);text-align:left;font-size:11px;font-weight:400;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.field-chip:after{content:"";position:absolute;right:6px;top:9px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #666}.field-chip.sort:before{content:"△";position:absolute;right:20px;top:2px;color:#eef6ff;font-size:10px}.field-chip.filtered{color:#063f35;border-color:#7be0bf;background:linear-gradient(#eafff6,#a8edd4)}.field-chip.drop-before{box-shadow:inset 3px 0 #1d8f75}.field-chip.drop-after{box-shadow:inset -3px 0 #1d8f75}.field-chip.dragging{opacity:.45}.pivot-grid-wrap{flex:1 1 auto;overflow:auto;min-height:0;background:#e3e3e3}#pivotView,#pivotView .e-pivotview{width:100%;height:100%}@media (max-width: 1200px){.app-frame{grid-template-columns:236px 1fr}.workspace{padding:16px 14px 8px}}.pivot-grid{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:11px;table-layout:fixed}.pivot-grid th,.pivot-grid td{border-right:1px solid #b8b8b8;border-bottom:1px solid #c7c7c7;min-width:106px;height:19px;padding:2px 4px;white-space:nowrap;text-align:right;background:#f0f2f5}.pivot-grid th{position:sticky;top:0;z-index:2;background:linear-gradient(#2f5f97,#214a79);color:#f3f8ff;font-weight:400}.pivot-grid th.resizable-col{position:sticky}.col-resize-handle{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:7}.col-resize-handle:after{content:"";position:absolute;top:2px;bottom:2px;left:3px;width:1px;background:#23304429}body.column-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.pivot-grid thead tr:nth-child(2) th{top:19px}.pivot-grid th.row-field{min-width:104px;text-align:left;background:linear-gradient(#2f5f97,#214a79);color:#f3f8ff;position:sticky;left:0;z-index:4;cursor:pointer}.pivot-grid th.row-field:after{content:"";position:absolute;right:6px;top:8px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #dfeeff}.pivot-grid th.dimension,.pivot-grid td.dimension{min-width:104px;text-align:left;background:linear-gradient(#fff,#e9edf2)}.pivot-grid td.dimension.main{padding-left:24px;position:sticky;left:0;z-index:1;background:linear-gradient(#fff,#e9edf2)}.pivot-grid td.dimension.main:before{content:"+";position:absolute;left:8px;top:8px;width:11px;height:11px;border:1px solid #7e9fc4;border-radius:2px;color:var(--brand-2);line-height:9px;text-align:center;font-size:10px;background:#fff}.pivot-grid th.group{height:19px;text-align:left;vertical-align:middle;background:linear-gradient(#2f5f97,#214a79);color:#f3f8ff;position:sticky;top:0;padding-left:16px;cursor:pointer}.pivot-grid th.group:before{content:"+";position:absolute;left:4px;top:4px;width:9px;height:9px;border:1px solid #8db1dc;color:var(--brand-2);line-height:8px;text-align:center;font-size:10px;background:#fff}.pivot-grid tbody tr:hover td{background:#e6f7f1}.pivot-grid tr.total td{background:#d8e1ec;font-weight:700}.status-bar{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:var(--muted);background:transparent}dialog{border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}dialog form{min-width:320px;display:grid;gap:14px}dialog h2{margin:0;font-size:20px;font-weight:650}dialog p{margin:0}dialog button{justify-self:end;min-width:80px;height:32px;border:0;border-radius:7px;background:var(--brand);color:#fff}.filter-popup{position:fixed;z-index:20;width:250px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:9px}.filter-popup.hidden{display:none}.filter-popup-title{margin:-9px -9px 9px;padding:10px 12px;color:#fff;background:linear-gradient(90deg,var(--nav),var(--nav-soft));border-radius:10px 10px 0 0;font-weight:800}.filter-search{display:grid;gap:4px;margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:700}.filter-search input{height:30px;border:1px solid var(--line);border-radius:7px;padding:0 8px}.filter-options{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:7px;background:#fff}.filter-options label{min-height:28px;display:flex;align-items:center;gap:7px;padding:0 8px}.filter-options label:hover{background:#eef6ff}.filter-options input{width:auto;height:auto}.filter-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}.filter-actions button{min-width:64px;height:30px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}#filterApplyButton{border-color:var(--brand);background:var(--brand);color:#fff}@media (max-width: 980px){.app-frame{height:auto;min-height:100%;grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow:visible}.app-frame.is-sidebar-collapsed{grid-template-columns:1fr;grid-template-rows:auto 1fr}.legacy-sidebar{max-height:44dvh;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.side-group{max-height:min(30dvh,280px)}.app-frame.is-sidebar-collapsed .legacy-sidebar{padding:18px 16px}.app-frame.is-sidebar-collapsed .group-title,.app-frame.is-sidebar-collapsed .bi-menu-container{display:block}.app-frame.is-sidebar-collapsed .db-indicator{display:grid}.app-frame.is-sidebar-collapsed .side-link{justify-content:flex-start;padding:0 12px 0 14px;font-size:13px}h1{font-size:26px}.workspace{padding:16px 12px 0;gap:10px;overflow:visible}.filter-strip{flex-wrap:wrap;left:12px;right:12px;top:62px}}@media (max-width: 640px){.legacy-sidebar{max-height:38dvh;padding:12px 10px}.side-group{max-height:min(26dvh,220px)}.app-frame.is-sidebar-collapsed .legacy-sidebar{padding:12px 10px}h1{font-size:20px}.status-bar{padding:0 6px;font-size:12px}.bi-config-save-panel{padding:8px;gap:8px}.bi-config-save-status{gap:10px;font-size:12px}.bi-config-secondary-button{min-height:32px;font-size:11px;padding:0 10px}#biSaveConfigButton{min-height:36px;font-size:12px;padding:0 12px}}
