:root { color-scheme:light; --accent:#1769aa; --accent-dark:#0f4f82; --ink:#172333; --muted:#667385; --line:#dbe2ea; --surface:#fff; --canvas:#f2f5f9; --danger:#a12727; --fresh:#147d4f; --stale:#a04f00; --history:#596579; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; font-family:"Segoe UI",Arial,sans-serif; color:var(--ink); background:var(--canvas); }
a { color:inherit; }
body.auth-page { display:flex; min-height:100vh; align-items:center; justify-content:center; padding:28px 18px; }
.auth-shell { width:100%; max-width:460px; }
.brand { margin-bottom:18px; text-align:center; }
.brand-title { font-size:26px; font-weight:700; letter-spacing:-.3px; }
.brand-subtitle,.workspace-heading p,.history-panel>p { color:var(--muted); margin-top:3px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:0 14px 40px rgba(27,49,73,.11); padding:30px; }
.steps { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:28px; }
.step { display:flex; align-items:center; gap:8px; color:#8993a0; font-size:13px; }
.step-number { width:27px; height:27px; border:1px solid #bbc5d0; border-radius:50%; display:grid; place-items:center; font-weight:700; }
.step.active { color:var(--accent); font-weight:600; }
.step.active .step-number { color:#fff; background:var(--accent); border-color:var(--accent); }
h1,h2,p { overflow-wrap:anywhere; }
h1 { margin:0 0 5px; font-size:24px; }
.form-intro { margin:0 0 22px; color:var(--muted); font-size:14px; }
.field { margin-bottom:17px; }
.field label { display:block; margin-bottom:6px; font-size:14px; font-weight:600; }
.input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #b8c4d0; border-radius:8px; background:#fff; color:var(--ink); font:inherit; }
.input:focus { outline:3px solid rgba(23,105,170,.16); border-color:var(--accent); }
.button,.button-primary,.button-secondary { min-height:40px; border-radius:8px; padding:9px 14px; font-family:inherit; font-size:14px; font-weight:600; line-height:20px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.button,.button-primary { border:1px solid var(--accent); background:var(--accent); color:#fff; }
.button { width:100%; min-height:46px; font-size:15px; }
.button:hover,.button-primary:hover { background:var(--accent-dark); }
.button:disabled { opacity:.65; cursor:wait; }
.button-secondary { border:1px solid #b8c4d0; background:#fff; color:var(--ink); }
.button-secondary:hover { border-color:var(--accent); color:var(--accent-dark); }
.error { margin:0 0 18px; border:1px solid #e4b5b5; border-radius:8px; background:#fff4f4; color:var(--danger); padding:10px 12px; font-size:14px; }
.footer { margin-top:16px; text-align:center; color:var(--muted); font-size:13px; }
.workspace-header,.dashboard-header { display:flex; align-items:center; gap:18px; padding:12px max(18px,calc((100vw - 1240px)/2)); border-bottom:1px solid var(--line); background:#fff; }
.workspace-header { display:grid; grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(220px,1fr); align-items:center; min-height:86px; padding-top:10px; padding-bottom:10px; }
.app-brand { font-size:18px; font-weight:750; white-space:nowrap; }
.report-subline { color:var(--muted); font-size:13px; margin-top:2px; }
.workspace-title { min-width:0; overflow:hidden; color:var(--ink); font-size:22px; font-weight:700; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.workspace-actions { display:flex; justify-self:end; gap:8px; }
.workspace-shell { width:min(1240px,calc(100% - 36px)); margin:0 auto; padding:34px 0 56px; }
.workspace-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:24px; }
.workspace-heading p { margin-bottom:0; }
.workspace-context { min-width:0; max-width:min(42%,480px); text-align:right; }
.workspace-context-customer { overflow-wrap:anywhere; font-size:14px; font-weight:700; line-height:1.35; }
.workspace-context-detail { margin-top:3px; color:var(--muted); font-size:12px; line-height:1.35; }
.dashboard-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.dashboard-card { display:flex; flex-direction:column; min-height:295px; padding:22px; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:0 8px 24px rgba(27,49,73,.07); }
.dashboard-card h2 { margin:17px 0 15px; font-size:19px; line-height:1.3; }
.card-topline { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.badge { display:inline-flex; align-items:center; min-height:26px; padding:4px 9px; border-radius:999px; font-size:12px; font-weight:700; }
.badge-fresh { color:#0d603b; background:#e5f6ed; border:1px solid #b8e2ca; }
.badge-stale { color:#824000; background:#fff0d9; border:1px solid #edc992; }
.badge-history { color:#465166; background:#edf0f5; border:1px solid #d0d6df; }
.refresh-note { color:var(--muted); font-size:12px; }
.card-details,.summary-details { margin:0; }
.card-details div { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-top:1px solid #edf0f4; }
dt { color:var(--muted); font-size:12px; }
dd { margin:0; font-size:13px; font-weight:600; text-align:right; }
.parameter-summary { min-height:36px; margin:14px 0 18px; color:#415064; font-size:13px; }
.card-action { width:100%; margin-top:auto; }
.empty-state { max-width:680px; margin:64px auto; padding:34px; border:1px solid var(--line); border-radius:14px; background:#fff; text-align:center; }
.empty-state h2 { margin-top:0; }
.empty-state p { color:var(--muted); margin-bottom:24px; }
.dashboard-page { height:100vh; height:100dvh; overflow:hidden; background:#fff; }
.dashboard-page #DashboardForm { display:flex; flex-direction:column; height:100vh; height:100dvh; overflow:hidden; }
.dashboard-header { display:grid; grid-template-columns:minmax(410px,1.25fr) minmax(260px,1.5fr) auto; align-items:center; gap:16px; flex:0 0 auto; min-height:68px; position:relative; z-index:7; padding:8px 18px; border-bottom:1px solid var(--line); background:#fff; }
.dashboard-nav { display:flex; min-width:0; align-items:center; gap:12px; }
.dashboard-brand { display:inline-flex; flex:0 0 52px; width:52px; height:50px; align-items:center; justify-content:center; text-decoration:none; }
.dashboard-brand img { display:block; width:52px; height:auto; max-height:50px; object-fit:contain; }
.dashboard-nav-copy { display:flex; min-width:0; flex:1 1 auto; flex-direction:column; gap:2px; }
.back-link { overflow:hidden; color:var(--accent-dark); font-size:16px; font-weight:650; line-height:1.25; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-context { overflow:hidden; color:var(--muted); font-size:11px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.report-heading { position:absolute; left:50%; min-width:0; max-width:min(38vw,560px); pointer-events:none; text-align:center; transform:translateX(-50%); }
.report-heading h1 { margin:0; overflow:hidden; font-size:22px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-actions { display:flex; justify-self:end; gap:8px; }
.dashboard-actions .button-secondary { white-space:nowrap; }
.dashboard-detail { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; }
.dashboard-summary { position:relative; flex:0 0 auto; padding:8px 18px 10px; border-bottom:1px solid var(--line); background:#f8fafc; }
.summary-handle { position:absolute; top:4px; right:10px; z-index:2; display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; }
.summary-handle>span { display:none; }
.panel-toggle,.history-open-control,.notice-dismiss { border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.panel-toggle { display:inline-flex; width:30px; height:28px; align-items:center; justify-content:center; border:1px solid transparent; border-radius:6px; }
.panel-toggle:hover,.panel-toggle:focus-visible,.history-open-control:hover,.history-open-control:focus-visible { border-color:#b8c4d0; background:#fff; color:var(--accent-dark); outline:none; }
.panel-toggle-icon { font-size:17px; line-height:1; }
.summary-content { padding-top:17px; }
.dashboard-summary.is-collapsed { min-height:34px; padding:3px 10px; }
.dashboard-summary.is-collapsed .summary-handle { position:static; justify-content:flex-end; }
.dashboard-summary.is-collapsed .summary-handle>span { display:inline; }
.dashboard-summary.is-collapsed .summary-content { display:none; }
.summary-grid { display:grid; grid-template-columns:minmax(300px,2.2fr) minmax(105px,.75fr) minmax(145px,1fr) minmax(155px,1.1fr) minmax(180px,1.5fr); align-items:end; gap:12px; }
.summary-field { display:flex; min-width:0; flex-direction:column; gap:5px; }
.summary-label,.summary-label-line>label { color:var(--muted); font-size:11px; font-weight:600; line-height:1.2; }
.summary-label-line { display:flex; min-width:0; min-height:22px; align-items:center; gap:7px; }
.summary-label-line>label { color:var(--ink); font-size:12px; }
.summary-badges { display:flex; min-width:0; align-items:center; gap:5px; }
.summary-badges .badge { min-height:22px; padding:2px 7px; font-size:11px; }
.summary-field strong { min-width:0; overflow:hidden; font-size:12px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.summary-field-parameters strong { display:-webkit-box; max-height:34px; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.history-select { width:100%; min-height:34px; padding:5px 30px 5px 9px; border:1px solid #b8c4d0; border-radius:7px; background:#fff; color:var(--ink); font-family:inherit; font-size:13px; }
.history-select:focus { outline:3px solid rgba(23,105,170,.16); border-color:var(--accent); }
.history-select option { color:var(--ink); }
.summary-notices { display:grid; gap:6px; margin-top:8px; }
.notice { display:flex; min-height:32px; align-items:center; gap:8px; margin:0; padding:6px 9px; border-radius:7px; font-size:12px; line-height:18px; }
.notice[hidden],.qtbi-notice-stale-dismissed [data-notice-key="stale"],.qtbi-notice-history-dismissed [data-notice-key="history"] { display:none; }
.notice-icon { display:inline-flex; flex:0 0 20px; width:20px; height:20px; align-items:center; justify-content:center; border:1px solid currentColor; border-radius:50%; font-weight:800; }
.notice-text { display:-webkit-box; min-width:0; max-height:54px; flex:1; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.notice-dismiss { flex:0 0 28px; width:28px; height:26px; border-radius:5px; font-size:18px; line-height:1; }
.notice-dismiss:hover,.notice-dismiss:focus-visible { background:rgba(0,0,0,.06); outline:none; }
.notice-stale { color:#754000; border:1px solid #e5c38d; background:#fff5e4; }
.notice-history { color:#465166; border:1px solid #cfd6e0; background:#f0f3f7; }
.badge-error { color:#8b1d1d; background:#fff0f0; border:1px solid #e8b7b7; }
.dashboard-workspace { display:grid; grid-template-columns:270px minmax(0,1fr); flex:1 1 auto; min-height:0; overflow:hidden; background:#fff; transition:grid-template-columns .18s ease; }
.dashboard-detail.mode-online .dashboard-workspace { grid-template-columns:minmax(0,1fr); }
.dashboard-detail.mode-online .summary-grid { grid-template-columns:minmax(220px,1fr); }
.history-dock { position:relative; min-width:0; min-height:0; height:100%; }
.history-panel { display:flex; height:100%; min-height:0; flex-direction:column; overflow:hidden; border-right:1px solid var(--line); background:#f8fafc; }
.history-panel-heading { display:flex; flex:0 0 auto; align-items:flex-start; justify-content:space-between; gap:8px; padding:14px 10px 10px 14px; }
.history-panel h2 { margin:0; font-size:16px; }
.history-panel-heading p { margin:3px 0 0; color:var(--muted); font-size:11px; }
.history-list { min-height:0; overflow:auto; padding:0 12px 14px; }
.history-item { display:block; margin-bottom:8px; padding:10px; border:1px solid var(--line); border-radius:9px; background:#fff; text-decoration:none; }
.history-item:hover { border-color:#8eb5d5; }
.history-item.selected { border-color:var(--accent); box-shadow:0 0 0 2px rgba(23,105,170,.11); }
.history-date,.history-meta,.history-parameters { display:block; }
.history-date { font-size:13px; font-weight:700; }
.history-meta { margin-top:3px; color:var(--muted); font-size:11px; }
.history-parameters { margin-top:6px; color:#405064; font-size:11px; }
.history-open-control { display:none; width:100%; height:100%; align-items:flex-start; justify-content:center; padding-top:16px; border-right:1px solid var(--line); background:#f8fafc; color:var(--accent-dark); font-size:24px; }
.history-backdrop { display:none; }
.dashboard-workspace.side-panel-collapsed { grid-template-columns:42px minmax(0,1fr); }
.dashboard-workspace.side-panel-collapsed .history-panel { display:none; }
.dashboard-workspace.side-panel-collapsed .history-open-control { display:flex; }
.viewer { min-width:0; min-height:0; width:100%; height:100%; overflow:hidden; }
.dashboard-error { margin-top:80px; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media (max-width:1100px) {
  .summary-grid { grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(145px,1fr)); }
  .summary-field-selector { grid-column:span 2; }
  .summary-field-parameters { grid-column:span 2; }
}
@media (max-width:960px) {
  .dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-header { grid-template-columns:minmax(0,1fr) auto; gap:7px 14px; }
  .dashboard-nav { min-width:0; }
  .report-heading { position:static; grid-column:1/-1; grid-row:2; max-width:none; transform:none; }
  .dashboard-actions { grid-column:2; grid-row:1; }
  .summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .summary-field-selector,.summary-field-parameters { grid-column:span 2; }
  .dashboard-workspace { grid-template-columns:230px minmax(0,1fr); }
}
@media (max-width:760px) {
  body.auth-page { align-items:flex-start; padding:18px 12px; }
  .workspace-header { grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; min-height:0; padding:8px 12px; }
  .workspace-title { grid-column:1/-1; grid-row:2; font-size:19px; }
  .workspace-actions { grid-column:2; grid-row:1; }
  .workspace-actions .button-secondary { min-height:36px; padding:7px 10px; }
  .card { padding:23px 19px; border-radius:11px; }
  .brand-title { font-size:23px; }
  .step { font-size:12px; }
  .workspace-shell { width:min(100% - 24px,1240px); padding-top:22px; }
  .workspace-heading { align-items:flex-start; }
  .workspace-context { max-width:48%; }
  .dashboard-grid { grid-template-columns:1fr; }
  .dashboard-card { min-height:0; }
  .dashboard-header { grid-template-columns:minmax(0,1fr) auto; padding:7px 10px; }
  .dashboard-brand { flex-basis:44px; width:44px; height:42px; }
  .dashboard-brand img { width:44px; max-height:42px; }
  .back-link { font-size:14px; }
  .dashboard-context { display:-webkit-box; overflow:hidden; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .report-heading h1 { font-size:18px; }
  .dashboard-actions { overflow:auto; max-width:100%; padding-bottom:1px; }
  .dashboard-actions .button-secondary { min-height:36px; padding:7px 10px; }
  .dashboard-summary { padding-left:12px; padding-right:12px; }
  .summary-grid { grid-template-columns:1fr; gap:9px; }
  .summary-field-selector,.summary-field-parameters { grid-column:auto; }
  .summary-field strong { white-space:normal; }
  .dashboard-workspace,.dashboard-workspace.side-panel-collapsed { position:relative; grid-template-columns:minmax(0,1fr); }
  .history-dock { position:absolute; inset:0 auto 0 0; z-index:9; width:0; height:100%; overflow:visible; }
  .history-panel { position:fixed; z-index:11; top:0; bottom:0; left:0; width:min(86vw,320px); border-right:1px solid var(--line); box-shadow:10px 0 28px rgba(23,35,51,.18); transform:translateX(0); transition:transform .2s ease; }
  .dashboard-workspace.side-panel-collapsed .history-panel { display:flex; transform:translateX(-105%); box-shadow:none; }
  .history-open-control { position:absolute; z-index:7; top:10px; left:8px; width:36px; height:44px; padding:0; align-items:center; border:1px solid #b8c4d0; border-radius:0 8px 8px 0; background:#fff; box-shadow:0 4px 12px rgba(23,35,51,.1); }
  .dashboard-workspace.side-panel-collapsed .history-open-control { display:flex; }
  .history-backdrop { position:fixed; z-index:10; inset:0; width:100vw; height:100vh; border:0; background:rgba(23,35,51,.34); }
  .dashboard-workspace:not(.side-panel-collapsed) .history-backdrop { display:block; }
}
@media (max-width:430px) {
  .workspace-heading { display:block; }
  .workspace-heading .button-secondary { margin-top:14px; }
  .workspace-context { max-width:none; margin-top:14px; text-align:left; }
  .dashboard-nav { gap:7px; }
  .dashboard-brand { flex-basis:38px; width:38px; height:38px; }
  .dashboard-brand img { width:38px; max-height:38px; }
  .dashboard-actions { gap:5px; }
  .dashboard-actions .button-secondary { padding:6px 8px; font-size:12px; }
  .summary-content { padding-top:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .dashboard-workspace,.history-panel { transition:none; }
}
.login-product-logo { display:block; width:min(100%,360px); height:auto; margin:0 auto; }
.brand .brand-subtitle { margin-top:8px; }
.footer { display:flex; flex-direction:column; align-items:center; gap:7px; }
.dolmen-logo { display:block; width:128px; max-width:42%; height:auto; }
.product-brand { display:inline-flex; align-items:center; text-decoration:none; }
.product-brand img { display:block; width:220px; max-width:42vw; height:auto; }
@media (max-width:680px) {
  .login-product-logo { width:min(100%,320px); }
  .product-brand img { width:190px; max-width:62vw; }
}

/* Public demo viewer */
.demo-page { height:100vh; min-height:100vh; overflow:hidden; background:#f5fbfb; color:#10242c; }
.demo-page #DemoForm { display:flex; flex-direction:column; height:100%; min-height:0; }
.demo-header { flex:0 0 auto; display:grid; grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr); align-items:center; gap:18px; padding:10px 20px; background:#fff; border-bottom:1px solid var(--line); }
.demo-brand { display:inline-flex; justify-self:start; align-items:center; }
.demo-brand img { display:block; width:178px; height:auto; }
.demo-heading { min-width:0; justify-self:center; text-align:center; }
.demo-heading h1 { margin:0; overflow:hidden; font-size:24px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.demo-back { display:inline-flex; justify-self:end; align-items:center; min-height:40px; padding:0 14px; border-radius:8px; background:var(--teal); color:#062e35; font-weight:800; text-decoration:none; white-space:nowrap; }
.demo-shell { display:flex; flex:1 1 auto; flex-direction:column; width:100%; min-height:0; margin:0; padding:12px 16px 16px; }
.demo-selector { flex:0 0 auto; display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.demo-tab { min-height:40px; display:inline-flex; align-items:center; padding:0 14px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--navy); font-weight:800; text-decoration:none; }
.demo-tab.is-active { border-color:var(--teal); background:var(--teal); color:#062e35; }
.demo-viewer { flex:1 1 auto; width:100%; min-height:0; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 12px 30px rgba(23,35,51,.1); }
.demo-viewer .dx-dashboard-control { width:100%; height:100%; }

.demo-viewer .qtbi-demo-pivot .dx-area-description-cell,
.demo-viewer .qtbi-demo-pivot .dx-area-row-cell,
.demo-viewer .qtbi-demo-pivot div.dx-pivotgrid-vertical-headers,
.demo-viewer .qtbi-demo-pivot div.dx-pivotgrid-vertical-headers table {
  width:var(--qtbi-pivot-row-width) !important;
  min-width:var(--qtbi-pivot-row-width) !important;
  max-width:var(--qtbi-pivot-row-width) !important;
}
.demo-viewer .qtbi-demo-pivot div.dx-pivotgrid-vertical-headers col:first-child {
  width:var(--qtbi-pivot-row-width) !important;
}
.demo-viewer .qtbi-demo-pivot div.dx-pivotgrid-vertical-headers td {
  white-space:normal;
  overflow-wrap:anywhere;
}
.demo-viewer .qtbi-demo-pivot-compact div.dx-pivotgrid-horizontal-headers td:last-child,
.demo-viewer .qtbi-demo-pivot-compact div.dx-pivotgrid-area-data td:last-child {
  min-width:190px !important;
  padding-right:12px !important;
  text-align:right !important;
  white-space:nowrap !important;
}
.demo-viewer .dxrs-range-selector {
  background-color:#dff7f5 !important;
  border-radius:4px;
  box-shadow:inset 0 0 0 1px #9edbd7;
}
.demo-viewer .dxrs-range-selector .slider-marker path {
  fill:#005d63 !important;
  stroke:#003f44 !important;
  stroke-width:1.5px !important;
}
.demo-viewer .dxrs-range-selector .slider > path {
  fill:#005d63 !important;
  stroke:#003f44 !important;
  stroke-width:3px !important;
}
.demo-viewer .dxrs-range-selector .slider,
.demo-viewer .dxrs-range-selector .slider-marker {
  opacity:1 !important;
  visibility:visible !important;
}
.demo-viewer .dxrs-range-selector .dxrs-range-selector-axis text {
  fill:#3d5962 !important;
  font-weight:600 !important;
}
.demo-viewer .dxrs-range-selector .dxrs-range-selector-line {
  stroke:#0fa9a3 !important;
}
.demo-state { padding:64px 24px; background:#fff; border:1px solid var(--line); border-radius:8px; text-align:center; }
.qtbi-dashboard-viewer .qtbi-dashboard-title-hidden,
.qtbi-dashboard-viewer .qtbi-dashboard-title-row-hidden {
  display:none !important;
  width:0 !important;
  height:0 !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}
.qtbi-dashboard-viewer .dx-dashboard-viewer.qtbi-dashboard-title-removed > .dx-layout-root {
  top:0 !important;
}
.qtbi-dashboard-viewer .dx-dashboard-mobile-layout-widget.qtbi-dashboard-title-removed > .dx-dashboard-mobile-layout {
  top:0 !important;
  bottom:0 !important;
  height:auto !important;
}
@media (max-width:720px) {
  .dashboard-header { height:auto; min-height:0; align-items:start; }
  .report-heading { width:100%; min-width:0; max-width:100%; overflow:visible; }
  .report-heading h1 {
    display:-webkit-box;
    max-height:2.5em;
    overflow:hidden;
    font-size:18px;
    line-height:1.25;
    overflow-wrap:normal;
    text-overflow:ellipsis;
    white-space:normal;
    word-break:normal;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .demo-page { height:auto; min-height:100vh; overflow:auto; }
  .demo-page #DemoForm { min-height:100vh; }
  .demo-header { grid-template-columns:1fr auto; gap:10px; padding:10px 12px; }
  .demo-heading { grid-column:1/-1; grid-row:2; width:100%; }
  .demo-brand { grid-column:1; grid-row:1; }
  .demo-brand img { width:154px; }
  .demo-back { grid-column:2; grid-row:1; min-height:38px; }
  .demo-heading h1 { font-size:20px; white-space:normal; }
  .demo-shell { flex:none; min-height:720px; padding:10px; }
  .demo-viewer { height:calc(100vh - 230px); min-height:520px; }

  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-item,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-item-row {
    box-sizing:border-box !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular {
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular-row {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular .dx-datagrid,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular .dx-pivotgrid,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular .dx-datagrid-rowsview,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular .dx-pivotgrid-container {
    box-sizing:border-box !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-tabular .dx-scrollable-container {
    max-width:100% !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox {
    height:var(--qtbi-mobile-textbox-height,auto) !important;
    min-height:72px !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox-row {
    height:var(--qtbi-mobile-textbox-row-height,auto) !important;
    min-height:84px !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox .dx-scrollable-wrapper,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox .dx-scrollable-container,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox .dx-scrollable-content,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox .dx-scrollview-content {
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox img,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-textbox svg {
    max-width:100% !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter {
    height:var(--qtbi-mobile-range-height,148px) !important;
    min-height:148px !important;
    max-height:148px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter-row {
    height:var(--qtbi-mobile-range-row-height,160px) !important;
    min-height:160px !important;
    max-height:160px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter .dxrs-range-selector {
    height:114px !important;
    min-height:114px !important;
    max-height:114px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter .slider-marker path {
    fill:#005d63 !important;
    stroke:#003f44 !important;
    stroke-width:1.5px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter .slider > path {
    fill:#005d63 !important;
    stroke:#003f44 !important;
    stroke-width:3px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter .slider,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-range-filter .slider-marker {
    opacity:1 !important;
    visibility:visible !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi {
    height:108px !important;
    min-height:108px !important;
    max-height:108px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi-row {
    height:120px !important;
    min-height:120px !important;
    max-height:120px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-card-scrollable-holder,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-scrollable-wrapper,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-scrollable-container,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-scrollable-content,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-scrollview-content,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .widget-viewer-table,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .widget-viewer-row,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .widget-viewer-cell {
    height:108px !important;
    min-height:108px !important;
    max-height:108px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .widget-viewer-cell {
    vertical-align:middle !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:calc(100% - 6px) !important;
    height:102px !important;
    min-height:102px !important;
    max-height:102px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-content {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:center !important;
    gap:6px;
    width:calc(100% - 24px) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:94px !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-content-top-rows,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-content-bottom-rows,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-content > div {
    flex:0 0 auto !important;
    height:auto !important;
    min-height:0 !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-row,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-row-left-right,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-row-center-only {
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    text-align:center !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-row-element {
    overflow:visible !important;
    text-align:center !important;
    text-overflow:clip !important;
    white-space:normal !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-content-top-rows .dx-flex-card-layout-row-element,
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-content-bottom-rows .dx-flex-card-layout-row-element {
    font-size:13px !important;
    line-height:1.2 !important;
  }
  .qtbi-dashboard-viewer .dx-dashboard-mobile-layout .qtbi-mobile-kpi .dx-flex-card-layout-row-center-only .dx-flex-card-layout-row-element {
    font-size:16px !important;
    line-height:1.25 !important;
  }
  .demo-tab { flex:1 1 calc(50% - 8px); justify-content:center; padding:0 8px; text-align:center; }
}
