@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

*, ::before, ::after{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: DM Sans, system-ui, sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

*, *::before, *::after { box-sizing: border-box; }

html {
    font-family: 'DM Sans', system-ui, sans-serif;
    color: var(--text);
    background-color: var(--bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transition: background-color 0.3s ease, color 0.3s ease;
  }

body { margin: 0; min-height: 100vh; }

h1, h2, h3, h4, h5, h6 {
    font-family: 'DM Serif Display', Georgia, serif;
    font-weight: 400;
  }

a { color: inherit; text-decoration: none; }

input, button, select, textarea { font-family: inherit; }

.container{
  width: 100%;
}

@media (min-width: 640px){

  .container{
    max-width: 640px;
  }
}

@media (min-width: 768px){

  .container{
    max-width: 768px;
  }
}

@media (min-width: 1024px){

  .container{
    max-width: 1024px;
  }
}

@media (min-width: 1280px){

  .container{
    max-width: 1280px;
  }
}

@media (min-width: 1536px){

  .container{
    max-width: 1536px;
  }
}

.sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.pointer-events-none{
  pointer-events: none;
}

.pointer-events-auto{
  pointer-events: auto;
}

.visible{
  visibility: visible;
}

.invisible{
  visibility: hidden;
}

.collapse{
  visibility: collapse;
}

.static{
  position: static;
}

.fixed{
  position: fixed;
}

.absolute{
  position: absolute;
}

.relative{
  position: relative;
}

.sticky{
  position: sticky;
}

.-inset-2{
  inset: -8px;
}

.inset-0{
  inset: 0px;
}

.inset-x-3{
  left: 12px;
  right: 12px;
}

.inset-y-0{
  top: 0px;
  bottom: 0px;
}

.-bottom-1{
  bottom: -4px;
}

.-right-0\.5{
  right: -0.125rem;
}

.-right-1{
  right: -4px;
}

.-top-0\.5{
  top: -0.125rem;
}

.-top-1{
  top: -4px;
}

.bottom-0{
  bottom: 0px;
}

.bottom-20{
  bottom: 80px;
}

.bottom-4{
  bottom: 16px;
}

.bottom-6{
  bottom: 24px;
}

.bottom-7{
  bottom: 1.75rem;
}

.bottom-full{
  bottom: 100%;
}

.left-0{
  left: 0px;
}

.left-0\.5{
  left: 0.125rem;
}

.left-2{
  left: 8px;
}

.left-2\.5{
  left: 0.625rem;
}

.left-3{
  left: 12px;
}

.left-\[15px\]{
  left: 15px;
}

.left-\[19px\]{
  left: 19px;
}

.left-full{
  left: 100%;
}

.right-0{
  right: 0px;
}

.right-1\.5{
  right: 0.375rem;
}

.right-2{
  right: 8px;
}

.right-2\.5{
  right: 0.625rem;
}

.right-3{
  right: 12px;
}

.right-4{
  right: 16px;
}

.right-6{
  right: 24px;
}

.right-7{
  right: 1.75rem;
}

.top-0{
  top: 0px;
}

.top-0\.5{
  top: 0.125rem;
}

.top-1\/2{
  top: 50%;
}

.top-14{
  top: 3.5rem;
}

.top-2{
  top: 8px;
}

.top-20{
  top: 80px;
}

.top-4{
  top: 16px;
}

.top-8{
  top: 32px;
}

.top-\[-4px\]{
  top: -4px;
}

.top-\[6px\]{
  top: 6px;
}

.top-full{
  top: 100%;
}

.z-10{
  z-index: 10;
}

.z-20{
  z-index: 20;
}

.z-30{
  z-index: 30;
}

.z-40{
  z-index: 40;
}

.z-50{
  z-index: 50;
}

.z-\[1000\]{
  z-index: 1000;
}

.z-\[100\]{
  z-index: 100;
}

.z-\[110\]{
  z-index: 110;
}

.z-\[60\]{
  z-index: 60;
}

.z-\[90\]{
  z-index: 90;
}

.z-\[999\]{
  z-index: 999;
}

.order-last{
  order: 9999;
}

.col-span-1{
  grid-column: span 1 / span 1;
}

.col-span-2{
  grid-column: span 2 / span 2;
}

.col-span-3{
  grid-column: span 3 / span 3;
}

.m-4{
  margin: 16px;
}

.-mx-1{
  margin-left: -4px;
  margin-right: -4px;
}

.-mx-2{
  margin-left: -8px;
  margin-right: -8px;
}

.-mx-6{
  margin-left: -24px;
  margin-right: -24px;
}

.mx-0\.5{
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}

.mx-1{
  margin-left: 4px;
  margin-right: 4px;
}

.mx-2{
  margin-left: 8px;
  margin-right: 8px;
}

.mx-3{
  margin-left: 12px;
  margin-right: 12px;
}

.mx-4{
  margin-left: 16px;
  margin-right: 16px;
}

.mx-auto{
  margin-left: auto;
  margin-right: auto;
}

.my-0\.5{
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
}

.my-1{
  margin-top: 4px;
  margin-bottom: 4px;
}

.my-3{
  margin-top: 12px;
  margin-bottom: 12px;
}

.my-4{
  margin-top: 16px;
  margin-bottom: 16px;
}

.-mb-0\.5{
  margin-bottom: -0.125rem;
}

.-mb-1{
  margin-bottom: -4px;
}

.-mb-px{
  margin-bottom: -1px;
}

.-ml-1{
  margin-left: -4px;
}

.-ml-\[13px\]{
  margin-left: -13px;
}

.-mt-0\.5{
  margin-top: -0.125rem;
}

.-mt-1{
  margin-top: -4px;
}

.-mt-2{
  margin-top: -8px;
}

.mb-0\.5{
  margin-bottom: 0.125rem;
}

.mb-1{
  margin-bottom: 4px;
}

.mb-1\.5{
  margin-bottom: 0.375rem;
}

.mb-2{
  margin-bottom: 8px;
}

.mb-3{
  margin-bottom: 12px;
}

.mb-4{
  margin-bottom: 16px;
}

.mb-5{
  margin-bottom: 20px;
}

.mb-6{
  margin-bottom: 24px;
}

.mb-8{
  margin-bottom: 32px;
}

.ml-0\.5{
  margin-left: 0.125rem;
}

.ml-1{
  margin-left: 4px;
}

.ml-1\.5{
  margin-left: 0.375rem;
}

.ml-10{
  margin-left: 40px;
}

.ml-11{
  margin-left: 2.75rem;
}

.ml-2{
  margin-left: 8px;
}

.ml-3{
  margin-left: 12px;
}

.ml-4{
  margin-left: 16px;
}

.ml-6{
  margin-left: 24px;
}

.ml-8{
  margin-left: 32px;
}

.ml-\[22px\]{
  margin-left: 22px;
}

.ml-auto{
  margin-left: auto;
}

.mr-0\.5{
  margin-right: 0.125rem;
}

.mr-1{
  margin-right: 4px;
}

.mr-1\.5{
  margin-right: 0.375rem;
}

.mr-2{
  margin-right: 8px;
}

.mr-3{
  margin-right: 12px;
}

.mr-auto{
  margin-right: auto;
}

.mt-0\.5{
  margin-top: 0.125rem;
}

.mt-1{
  margin-top: 4px;
}

.mt-1\.5{
  margin-top: 0.375rem;
}

.mt-2{
  margin-top: 8px;
}

.mt-3{
  margin-top: 12px;
}

.mt-4{
  margin-top: 16px;
}

.mt-5{
  margin-top: 20px;
}

.mt-6{
  margin-top: 24px;
}

.mt-7{
  margin-top: 1.75rem;
}

.mt-8{
  margin-top: 32px;
}

.mt-auto{
  margin-top: auto;
}

.line-clamp-1{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.line-clamp-2{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.line-clamp-3{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.line-clamp-6{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
}

.block{
  display: block;
}

.inline-block{
  display: inline-block;
}

.inline{
  display: inline;
}

.flex{
  display: flex;
}

.inline-flex{
  display: inline-flex;
}

.table{
  display: table;
}

.grid{
  display: grid;
}

.contents{
  display: contents;
}

.\!hidden{
  display: none !important;
}

.hidden{
  display: none;
}

.\!h-\[36px\]{
  height: 36px !important;
}

.h-0\.5{
  height: 0.125rem;
}

.h-1{
  height: 4px;
}

.h-1\.5{
  height: 0.375rem;
}

.h-10{
  height: 40px;
}

.h-11{
  height: 2.75rem;
}

.h-12{
  height: 48px;
}

.h-14{
  height: 3.5rem;
}

.h-16{
  height: 64px;
}

.h-2{
  height: 8px;
}

.h-2\.5{
  height: 0.625rem;
}

.h-20{
  height: 80px;
}

.h-24{
  height: 6rem;
}

.h-28{
  height: 7rem;
}

.h-3{
  height: 12px;
}

.h-3\.5{
  height: 0.875rem;
}

.h-32{
  height: 8rem;
}

.h-4{
  height: 16px;
}

.h-40{
  height: 10rem;
}

.h-44{
  height: 11rem;
}

.h-48{
  height: 12rem;
}

.h-5{
  height: 20px;
}

.h-6{
  height: 24px;
}

.h-64{
  height: 16rem;
}

.h-7{
  height: 1.75rem;
}

.h-8{
  height: 32px;
}

.h-9{
  height: 2.25rem;
}

.h-96{
  height: 24rem;
}

.h-\[18px\]{
  height: 18px;
}

.h-\[260px\]{
  height: 260px;
}

.h-\[32px\]{
  height: 32px;
}

.h-\[36px\]{
  height: 36px;
}

.h-\[40px\]{
  height: 40px;
}

.h-\[42px\]{
  height: 42px;
}

.h-\[480px\]{
  height: 480px;
}

.h-\[600px\]{
  height: 600px;
}

.h-\[65vh\]{
  height: 65vh;
}

.h-\[92vh\]{
  height: 92vh;
}

.h-\[calc\(100vh-56px\)\]{
  height: calc(100vh - 56px);
}

.h-\[calc\(100vh-var\(--nav-h\2c 56px\)\)\]{
  height: calc(100vh - var(--nav-h,56px));
}

.h-fit{
  height: -moz-fit-content;
  height: fit-content;
}

.h-full{
  height: 100%;
}

.h-nav{
  height: 56px;
}

.h-px{
  height: 1px;
}

.h-screen{
  height: 100vh;
}

.max-h-32{
  max-height: 8rem;
}

.max-h-40{
  max-height: 10rem;
}

.max-h-44{
  max-height: 11rem;
}

.max-h-48{
  max-height: 12rem;
}

.max-h-52{
  max-height: 13rem;
}

.max-h-60{
  max-height: 15rem;
}

.max-h-64{
  max-height: 16rem;
}

.max-h-72{
  max-height: 18rem;
}

.max-h-80{
  max-height: 20rem;
}

.max-h-\[280px\]{
  max-height: 280px;
}

.max-h-\[320px\]{
  max-height: 320px;
}

.max-h-\[350px\]{
  max-height: 350px;
}

.max-h-\[360px\]{
  max-height: 360px;
}

.max-h-\[400px\]{
  max-height: 400px;
}

.max-h-\[420px\]{
  max-height: 420px;
}

.max-h-\[60vh\]{
  max-height: 60vh;
}

.max-h-\[65vh\]{
  max-height: 65vh;
}

.max-h-\[80vh\]{
  max-height: 80vh;
}

.max-h-\[90vh\]{
  max-height: 90vh;
}

.max-h-\[92vh\]{
  max-height: 92vh;
}

.max-h-\[calc\(100vh-11rem\)\]{
  max-height: calc(100vh - 11rem);
}

.max-h-\[calc\(100vh-300px\)\]{
  max-height: calc(100vh - 300px);
}

.min-h-0{
  min-height: 0px;
}

.min-h-10{
  min-height: 40px;
}

.min-h-24{
  min-height: 6rem;
}

.min-h-\[100px\]{
  min-height: 100px;
}

.min-h-\[120px\]{
  min-height: 120px;
}

.min-h-\[180px\]{
  min-height: 180px;
}

.min-h-\[200px\]{
  min-height: 200px;
}

.min-h-\[24px\]{
  min-height: 24px;
}

.min-h-\[400px\]{
  min-height: 400px;
}

.min-h-\[40px\]{
  min-height: 40px;
}

.min-h-\[48px\]{
  min-height: 48px;
}

.min-h-\[88px\]{
  min-height: 88px;
}

.min-h-\[calc\(100vh-200px\)\]{
  min-height: calc(100vh - 200px);
}

.min-h-full{
  min-height: 100%;
}

.min-h-screen{
  min-height: 100vh;
}

.\!w-full{
  width: 100% !important;
}

.w-0\.5{
  width: 0.125rem;
}

.w-1{
  width: 4px;
}

.w-1\.5{
  width: 0.375rem;
}

.w-1\/2{
  width: 50%;
}

.w-1\/3{
  width: 33.333333%;
}

.w-10{
  width: 40px;
}

.w-11{
  width: 2.75rem;
}

.w-12{
  width: 48px;
}

.w-14{
  width: 3.5rem;
}

.w-16{
  width: 64px;
}

.w-2{
  width: 8px;
}

.w-2\.5{
  width: 0.625rem;
}

.w-2\/3{
  width: 66.666667%;
}

.w-20{
  width: 80px;
}

.w-24{
  width: 6rem;
}

.w-28{
  width: 7rem;
}

.w-3{
  width: 12px;
}

.w-3\.5{
  width: 0.875rem;
}

.w-3\/4{
  width: 75%;
}

.w-32{
  width: 8rem;
}

.w-36{
  width: 9rem;
}

.w-4{
  width: 16px;
}

.w-40{
  width: 10rem;
}

.w-44{
  width: 11rem;
}

.w-48{
  width: 12rem;
}

.w-5{
  width: 20px;
}

.w-52{
  width: 13rem;
}

.w-56{
  width: 14rem;
}

.w-6{
  width: 24px;
}

.w-64{
  width: 16rem;
}

.w-7{
  width: 1.75rem;
}

.w-72{
  width: 18rem;
}

.w-8{
  width: 32px;
}

.w-80{
  width: 20rem;
}

.w-9{
  width: 2.25rem;
}

.w-96{
  width: 24rem;
}

.w-\[14px\]{
  width: 14px;
}

.w-\[260px\]{
  width: 260px;
}

.w-\[286px\]{
  width: 286px;
}

.w-\[300px\]{
  width: 300px;
}

.w-\[32px\]{
  width: 32px;
}

.w-\[3px\]{
  width: 3px;
}

.w-\[40px\]{
  width: 40px;
}

.w-\[46\%\]{
  width: 46%;
}

.w-\[480px\]{
  width: 480px;
}

.w-\[52px\]{
  width: 52px;
}

.w-\[72px\]{
  width: 72px;
}

.w-\[76px\]{
  width: 76px;
}

.w-\[84px\]{
  width: 84px;
}

.w-\[86px\]{
  width: 86px;
}

.w-\[calc\(100vw-32px\)\]{
  width: calc(100vw - 32px);
}

.w-auto{
  width: auto;
}

.w-fit{
  width: -moz-fit-content;
  width: fit-content;
}

.w-full{
  width: 100%;
}

.w-max{
  width: -moz-max-content;
  width: max-content;
}

.w-px{
  width: 1px;
}

.min-w-0{
  min-width: 0px;
}

.min-w-12{
  min-width: 48px;
}

.min-w-16{
  min-width: 64px;
}

.min-w-32{
  min-width: 8rem;
}

.min-w-\[120px\]{
  min-width: 120px;
}

.min-w-\[12rem\]{
  min-width: 12rem;
}

.min-w-\[140px\]{
  min-width: 140px;
}

.min-w-\[160px\]{
  min-width: 160px;
}

.min-w-\[180px\]{
  min-width: 180px;
}

.min-w-\[18px\]{
  min-width: 18px;
}

.min-w-\[200px\]{
  min-width: 200px;
}

.min-w-\[220px\]{
  min-width: 220px;
}

.min-w-\[240px\]{
  min-width: 240px;
}

.min-w-\[32px\]{
  min-width: 32px;
}

.min-w-\[340px\]{
  min-width: 340px;
}

.min-w-\[420px\]{
  min-width: 420px;
}

.min-w-\[48px\]{
  min-width: 48px;
}

.min-w-\[500px\]{
  min-width: 500px;
}

.min-w-\[540px\]{
  min-width: 540px;
}

.min-w-\[700px\]{
  min-width: 700px;
}

.min-w-\[80px\]{
  min-width: 80px;
}

.min-w-\[8rem\]{
  min-width: 8rem;
}

.min-w-max{
  min-width: -moz-max-content;
  min-width: max-content;
}

.max-w-2xl{
  max-width: 42rem;
}

.max-w-3xl{
  max-width: 48rem;
}

.max-w-4xl{
  max-width: 56rem;
}

.max-w-5xl{
  max-width: 64rem;
}

.max-w-6xl{
  max-width: 72rem;
}

.max-w-\[100px\]{
  max-width: 100px;
}

.max-w-\[1400px\]{
  max-width: 1400px;
}

.max-w-\[140px\]{
  max-width: 140px;
}

.max-w-\[160px\]{
  max-width: 160px;
}

.max-w-\[16rem\]{
  max-width: 16rem;
}

.max-w-\[180px\]{
  max-width: 180px;
}

.max-w-\[200px\]{
  max-width: 200px;
}

.max-w-\[220px\]{
  max-width: 220px;
}

.max-w-\[280px\]{
  max-width: 280px;
}

.max-w-\[320px\]{
  max-width: 320px;
}

.max-w-\[370px\]{
  max-width: 370px;
}

.max-w-\[400px\]{
  max-width: 400px;
}

.max-w-\[620px\]{
  max-width: 620px;
}

.max-w-\[80px\]{
  max-width: 80px;
}

.max-w-\[88\%\]{
  max-width: 88%;
}

.max-w-\[90px\]{
  max-width: 90px;
}

.max-w-\[calc\(100vw-24px\)\]{
  max-width: calc(100vw - 24px);
}

.max-w-content{
  max-width: 1120px;
}

.max-w-full{
  max-width: 100%;
}

.max-w-lg{
  max-width: 32rem;
}

.max-w-md{
  max-width: 28rem;
}

.max-w-none{
  max-width: none;
}

.max-w-sm{
  max-width: 24rem;
}

.max-w-xl{
  max-width: 36rem;
}

.max-w-xs{
  max-width: 20rem;
}

.flex-1{
  flex: 1 1 0%;
}

.flex-shrink{
  flex-shrink: 1;
}

.flex-shrink-0{
  flex-shrink: 0;
}

.shrink{
  flex-shrink: 1;
}

.shrink-0{
  flex-shrink: 0;
}

.grow{
  flex-grow: 1;
}

.basis-full{
  flex-basis: 100%;
}

.caption-bottom{
  caption-side: bottom;
}

.border-collapse{
  border-collapse: collapse;
}

.border-separate{
  border-collapse: separate;
}

.border-spacing-0{
  --tw-border-spacing-x: 0px;
  --tw-border-spacing-y: 0px;
  border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);
}

.-translate-x-full{
  --tw-translate-x: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-1\/2{
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-\[25px\]{
  --tw-translate-y: -25px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-x-0{
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-x-0\.5{
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-x-4{
  --tw-translate-x: 16px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-rotate-90{
  --tw-rotate: -90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.rotate-180{
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.rotate-90{
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-100{
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-95{
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes bounce{

  0%, 100%{
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50%{
    transform: none;
    animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}

.animate-bounce{
  animation: bounce 1s infinite;
}

@keyframes ping{

  75%, 100%{
    transform: scale(2);
    opacity: 0;
  }
}

.animate-ping{
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes pulse{

  50%{
    opacity: .5;
  }
}

.animate-pulse{
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes spin{

  to{
    transform: rotate(360deg);
  }
}

.animate-spin{
  animation: spin 1s linear infinite;
}

.cursor-default{
  cursor: default;
}

.cursor-grab{
  cursor: grab;
}

.cursor-move{
  cursor: move;
}

.cursor-not-allowed{
  cursor: not-allowed;
}

.cursor-pointer{
  cursor: pointer;
}

.select-none{
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.select-all{
  -webkit-user-select: all;
     -moz-user-select: all;
          user-select: all;
}

.resize-none{
  resize: none;
}

.resize-y{
  resize: vertical;
}

.resize{
  resize: both;
}

.list-inside{
  list-style-position: inside;
}

.list-decimal{
  list-style-type: decimal;
}

.list-disc{
  list-style-type: disc;
}

.appearance-none{
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.grid-cols-1{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-7{
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-\[1fr_180px\]{
  grid-template-columns: 1fr 180px;
}

.grid-cols-\[1fr_260px\]{
  grid-template-columns: 1fr 260px;
}

.grid-cols-\[220px_1fr\]{
  grid-template-columns: 220px 1fr;
}

.grid-cols-\[minmax\(0\2c 7rem\)_1fr\]{
  grid-template-columns: minmax(0,7rem) 1fr;
}

.flex-row{
  flex-direction: row;
}

.flex-col{
  flex-direction: column;
}

.flex-wrap{
  flex-wrap: wrap;
}

.place-items-center{
  place-items: center;
}

.items-start{
  align-items: flex-start;
}

.items-end{
  align-items: flex-end;
}

.items-center{
  align-items: center;
}

.items-baseline{
  align-items: baseline;
}

.items-stretch{
  align-items: stretch;
}

.justify-start{
  justify-content: flex-start;
}

.justify-end{
  justify-content: flex-end;
}

.justify-center{
  justify-content: center;
}

.justify-between{
  justify-content: space-between;
}

.gap-0{
  gap: 0px;
}

.gap-0\.5{
  gap: 0.125rem;
}

.gap-1{
  gap: 4px;
}

.gap-1\.5{
  gap: 0.375rem;
}

.gap-2{
  gap: 8px;
}

.gap-2\.5{
  gap: 0.625rem;
}

.gap-3{
  gap: 12px;
}

.gap-4{
  gap: 16px;
}

.gap-5{
  gap: 20px;
}

.gap-6{
  gap: 24px;
}

.gap-8{
  gap: 32px;
}

.gap-px{
  gap: 1px;
}

.gap-x-3{
  -moz-column-gap: 12px;
       column-gap: 12px;
}

.gap-x-4{
  -moz-column-gap: 16px;
       column-gap: 16px;
}

.gap-x-5{
  -moz-column-gap: 20px;
       column-gap: 20px;
}

.gap-x-6{
  -moz-column-gap: 24px;
       column-gap: 24px;
}

.gap-x-8{
  -moz-column-gap: 32px;
       column-gap: 32px;
}

.gap-y-0\.5{
  row-gap: 0.125rem;
}

.gap-y-1{
  row-gap: 4px;
}

.gap-y-1\.5{
  row-gap: 0.375rem;
}

.gap-y-4{
  row-gap: 16px;
}

.gap-y-5{
  row-gap: 20px;
}

.space-y-0 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}

.space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}

.space-y-1 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(4px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(4px * var(--tw-space-y-reverse));
}

.space-y-1\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}

.space-y-2 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(8px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(8px * var(--tw-space-y-reverse));
}

.space-y-2\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}

.space-y-3 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(12px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(12px * var(--tw-space-y-reverse));
}

.space-y-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(16px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(16px * var(--tw-space-y-reverse));
}

.space-y-5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(20px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(20px * var(--tw-space-y-reverse));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(24px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(24px * var(--tw-space-y-reverse));
}

.divide-x > :not([hidden]) ~ :not([hidden]){
  --tw-divide-x-reverse: 0;
  border-right-width: calc(1px * var(--tw-divide-x-reverse));
  border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
}

.divide-y > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}

.divide-y-0 > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse: 0;
  border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
}

.divide-\[var\(--border\)\] > :not([hidden]) ~ :not([hidden]){
  border-color: var(--border);
}

.divide-border > :not([hidden]) ~ :not([hidden]){
  border-color: var(--border);
}

.divide-gray-100 > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
}

.divide-gray-200 > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1));
}

.self-start{
  align-self: flex-start;
}

.self-end{
  align-self: flex-end;
}

.self-stretch{
  align-self: stretch;
}

.overflow-auto{
  overflow: auto;
}

.overflow-hidden{
  overflow: hidden;
}

.overflow-visible{
  overflow: visible;
}

.overflow-x-auto{
  overflow-x: auto;
}

.overflow-y-auto{
  overflow-y: auto;
}

.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-ellipsis{
  text-overflow: ellipsis;
}

.whitespace-nowrap{
  white-space: nowrap;
}

.whitespace-pre-line{
  white-space: pre-line;
}

.whitespace-pre-wrap{
  white-space: pre-wrap;
}

.break-words{
  overflow-wrap: break-word;
}

.break-all{
  word-break: break-all;
}

.\!rounded-full{
  border-radius: 9999px !important;
}

.\!rounded-lg{
  border-radius: 12px !important;
}

.rounded{
  border-radius: 8px;
}

.rounded-2xl{
  border-radius: 24px;
}

.rounded-\[10px\]{
  border-radius: 10px;
}

.rounded-full{
  border-radius: 9999px;
}

.rounded-lg{
  border-radius: 12px;
}

.rounded-md{
  border-radius: 8px;
}

.rounded-none{
  border-radius: 0px;
}

.rounded-sm{
  border-radius: 4px;
}

.rounded-xl{
  border-radius: 16px;
}

.rounded-b-xl{
  border-bottom-right-radius: 16px;
  border-bottom-left-radius: 16px;
}

.rounded-l-lg{
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
}

.rounded-r-lg{
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
}

.rounded-t-2xl{
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
}

.rounded-t-xl{
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.rounded-tl-lg{
  border-top-left-radius: 12px;
}

.rounded-tr-lg{
  border-top-right-radius: 12px;
}

.border{
  border-width: 1px;
}

.border-0{
  border-width: 0px;
}

.border-2{
  border-width: 2px;
}

.border-4{
  border-width: 4px;
}

.border-\[3px\]{
  border-width: 3px;
}

.border-b{
  border-bottom-width: 1px;
}

.border-b-2{
  border-bottom-width: 2px;
}

.border-b-\[3px\]{
  border-bottom-width: 3px;
}

.border-l{
  border-left-width: 1px;
}

.border-l-2{
  border-left-width: 2px;
}

.border-l-4{
  border-left-width: 4px;
}

.border-l-\[3px\]{
  border-left-width: 3px;
}

.border-r{
  border-right-width: 1px;
}

.border-t{
  border-top-width: 1px;
}

.border-t-2{
  border-top-width: 2px;
}

.border-dashed{
  border-style: dashed;
}

.border-none{
  border-style: none;
}

.\!border-coral{
  border-color: var(--coral) !important;
}

.border-\[\#DA7756\]{
  --tw-border-opacity: 1;
  border-color: rgb(218 119 86 / var(--tw-border-opacity, 1));
}

.border-\[\#E8E4DC\]{
  --tw-border-opacity: 1;
  border-color: rgb(232 228 220 / var(--tw-border-opacity, 1));
}

.border-\[\#F0EDE6\]{
  --tw-border-opacity: 1;
  border-color: rgb(240 237 230 / var(--tw-border-opacity, 1));
}

.border-\[\#ccc\]{
  --tw-border-opacity: 1;
  border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));
}

.border-\[\#da7756\]{
  --tw-border-opacity: 1;
  border-color: rgb(218 119 86 / var(--tw-border-opacity, 1));
}

.border-\[rgba\(163\2c 45\2c 45\2c 0\.30\)\]{
  border-color: rgba(163,45,45,0.30);
}

.border-\[var\(--amber\)\]{
  border-color: var(--amber);
}

.border-\[var\(--bg-card\)\]{
  border-color: var(--bg-card);
}

.border-\[var\(--border\)\]{
  border-color: var(--border);
}

.border-\[var\(--border-md\)\]{
  border-color: var(--border-md);
}

.border-\[var\(--coral-40\)\]{
  border-color: var(--coral-40);
}

.border-\[var\(--forest-20\)\]{
  border-color: var(--forest-20);
}

.border-\[var\(--sky\)\]{
  border-color: var(--sky);
}

.border-\[var\(--stone\)\]{
  border-color: var(--stone);
}

.border-\[var\(--violet-20\)\]{
  border-color: var(--violet-20);
}

.border-amber{
  border-color: var(--amber);
}

.border-amber-200{
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}

.border-blue-200{
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.border-blue-300{
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.border-border{
  border-color: var(--border);
}

.border-border-md{
  border-color: var(--border-md);
}

.border-coral{
  border-color: var(--coral);
}

.border-coral-20{
  border-color: var(--coral-20);
}

.border-coral-40{
  border-color: var(--coral-40);
}

.border-crimson{
  border-color: var(--crimson);
}

.border-crimson-10{
  border-color: var(--crimson-10);
}

.border-current{
  border-color: currentColor;
}

.border-forest{
  border-color: var(--forest);
}

.border-forest-20{
  border-color: var(--forest-20);
}

.border-gray-100{
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
}

.border-gray-200{
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}

.border-gray-300{
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}

.border-green-200{
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}

.border-indigo-200{
  --tw-border-opacity: 1;
  border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));
}

.border-indigo-300{
  --tw-border-opacity: 1;
  border-color: rgb(165 180 252 / var(--tw-border-opacity, 1));
}

.border-indigo-500{
  --tw-border-opacity: 1;
  border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}

.border-indigo-600{
  --tw-border-opacity: 1;
  border-color: rgb(79 70 229 / var(--tw-border-opacity, 1));
}

.border-lavender{
  border-color: var(--lavender);
}

.border-purple-200{
  --tw-border-opacity: 1;
  border-color: rgb(233 213 255 / var(--tw-border-opacity, 1));
}

.border-red-200{
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}

.border-transparent{
  border-color: transparent;
}

.border-violet-20{
  border-color: var(--violet-20);
}

.border-white{
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.border-white\/10{
  border-color: rgb(255 255 255 / 0.1);
}

.border-white\/25{
  border-color: rgb(255 255 255 / 0.25);
}

.border-t-coral{
  border-top-color: var(--coral);
}

.border-t-transparent{
  border-top-color: transparent;
}

.border-opacity-20{
  --tw-border-opacity: 0.2;
}

.\!bg-white{
  --tw-bg-opacity: 1 !important;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important;
}

.bg-\[\#0d0d0f\]{
  --tw-bg-opacity: 1;
  background-color: rgb(13 13 15 / var(--tw-bg-opacity, 1));
}

.bg-\[\#111113\]{
  --tw-bg-opacity: 1;
  background-color: rgb(17 17 19 / var(--tw-bg-opacity, 1));
}

.bg-\[\#18181a\]{
  --tw-bg-opacity: 1;
  background-color: rgb(24 24 26 / var(--tw-bg-opacity, 1));
}

.bg-\[\#222224\]{
  --tw-bg-opacity: 1;
  background-color: rgb(34 34 36 / var(--tw-bg-opacity, 1));
}

.bg-\[\#6b9bcc\]{
  --tw-bg-opacity: 1;
  background-color: rgb(107 155 204 / var(--tw-bg-opacity, 1));
}

.bg-\[\#C72030\]{
  --tw-bg-opacity: 1;
  background-color: rgb(199 32 48 / var(--tw-bg-opacity, 1));
}

.bg-\[\#DA7756\]\/10{
  background-color: rgb(218 119 86 / 0.1);
}

.bg-\[\#F2EEE9\]{
  --tw-bg-opacity: 1;
  background-color: rgb(242 238 233 / var(--tw-bg-opacity, 1));
}

.bg-\[\#F6F4EE\]{
  --tw-bg-opacity: 1;
  background-color: rgb(246 244 238 / var(--tw-bg-opacity, 1));
}

.bg-\[\#FAFAF8\]{
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 248 / var(--tw-bg-opacity, 1));
}

.bg-\[\#da7756\]{
  --tw-bg-opacity: 1;
  background-color: rgb(218 119 86 / var(--tw-bg-opacity, 1));
}

.bg-\[\#da7756\]\/10{
  background-color: rgb(218 119 86 / 0.1);
}

.bg-\[\#da7756\]\/15{
  background-color: rgb(218 119 86 / 0.15);
}

.bg-\[\#f0ede6\]{
  --tw-bg-opacity: 1;
  background-color: rgb(240 237 230 / var(--tw-bg-opacity, 1));
}

.bg-\[rgba\(163\2c 45\2c 45\2c 0\.06\)\]{
  background-color: rgba(163,45,45,0.06);
}

.bg-\[var\(--amber-10\)\]{
  background-color: var(--amber-10);
}

.bg-\[var\(--bg\)\]{
  background-color: var(--bg);
}

.bg-\[var\(--bg-card\)\]{
  background-color: var(--bg-card);
}

.bg-\[var\(--bg-white\)\]{
  background-color: var(--bg-white);
}

.bg-\[var\(--border\)\]{
  background-color: var(--border);
}

.bg-\[var\(--border-md\)\]{
  background-color: var(--border-md);
}

.bg-\[var\(--coral-10\)\]{
  background-color: var(--coral-10);
}

.bg-\[var\(--cream\)\]{
  background-color: var(--cream);
}

.bg-\[var\(--forest-10\)\]{
  background-color: var(--forest-10);
}

.bg-\[var\(--ghost-hover\)\]{
  background-color: var(--ghost-hover);
}

.bg-\[var\(--nav-bg\)\]{
  background-color: var(--nav-bg);
}

.bg-\[var\(--sky-10\)\]{
  background-color: var(--sky-10);
}

.bg-\[var\(--stone-10\)\]{
  background-color: var(--stone-10);
}

.bg-\[var\(--toggle-bg\2c var\(--ghost-hover\)\)\]{
  background-color: var(--toggle-bg,var(--ghost-hover));
}

.bg-\[var\(--violet-10\)\]{
  background-color: var(--violet-10);
}

.bg-accent{
  background-color: var(--ghost-hover);
}

.bg-amber{
  background-color: var(--amber);
}

.bg-amber-10{
  background-color: var(--amber-10);
}

.bg-amber-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}

.bg-amber-50{
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}

.bg-amber-500{
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}

.bg-black{
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.bg-black\/30{
  background-color: rgb(0 0 0 / 0.3);
}

.bg-black\/40{
  background-color: rgb(0 0 0 / 0.4);
}

.bg-black\/50{
  background-color: rgb(0 0 0 / 0.5);
}

.bg-black\/60{
  background-color: rgb(0 0 0 / 0.6);
}

.bg-black\/75{
  background-color: rgb(0 0 0 / 0.75);
}

.bg-blue-100{
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}

.bg-blue-50{
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.bg-blue-500{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}

.bg-blue-600{
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}

.bg-border{
  background-color: var(--border);
}

.bg-border-md{
  background-color: var(--border-md);
}

.bg-charcoal{
  background-color: var(--charcoal);
}

.bg-coral{
  background-color: var(--coral);
}

.bg-coral-10{
  background-color: var(--coral-10);
}

.bg-coral-20{
  background-color: var(--coral-20);
}

.bg-cream{
  background-color: var(--cream);
}

.bg-crimson{
  background-color: var(--crimson);
}

.bg-crimson-10{
  background-color: var(--crimson-10);
}

.bg-cyan-100{
  --tw-bg-opacity: 1;
  background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1));
}

.bg-emerald-100{
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}

.bg-emerald-50{
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}

.bg-forest{
  background-color: var(--forest);
}

.bg-forest-10{
  background-color: var(--forest-10);
}

.bg-gray-100{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.bg-gray-200{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}

.bg-gray-300{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}

.bg-gray-400{
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
}

.bg-gray-50{
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}

.bg-green-100{
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.bg-green-50{
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.bg-green-500{
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}

.bg-green-600{
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}

.bg-indigo-100{
  --tw-bg-opacity: 1;
  background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
}

.bg-indigo-50{
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}

.bg-indigo-600{
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}

.bg-input{
  background-color: var(--bg-white);
}

.bg-lavender-20{
  background-color: var(--lavender-20);
}

.bg-muted{
  background-color: var(--border-md);
}

.bg-orange-100{
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}

.bg-orange-50{
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}

.bg-orange-500{
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
}

.bg-page{
  background-color: var(--bg);
}

.bg-pink-100{
  --tw-bg-opacity: 1;
  background-color: rgb(252 231 243 / var(--tw-bg-opacity, 1));
}

.bg-pink-500{
  --tw-bg-opacity: 1;
  background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));
}

.bg-popover{
  background-color: var(--bg-card);
}

.bg-purple-100{
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}

.bg-purple-500{
  --tw-bg-opacity: 1;
  background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));
}

.bg-purple-600{
  --tw-bg-opacity: 1;
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
}

.bg-red-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}

.bg-red-50{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.bg-red-500{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}

.bg-sand-10{
  background-color: var(--sand-10);
}

.bg-sky{
  background-color: var(--sky);
}

.bg-sky-10{
  background-color: var(--sky-10);
}

.bg-sky-50{
  --tw-bg-opacity: 1;
  background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));
}

.bg-slate-100{
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}

.bg-slate-200{
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
}

.bg-slate-50{
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

.bg-slate-500{
  --tw-bg-opacity: 1;
  background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));
}

.bg-stone{
  background-color: var(--stone);
}

.bg-stone-10{
  background-color: var(--stone-10);
}

.bg-surface{
  background-color: var(--bg-card);
}

.bg-teal-100{
  --tw-bg-opacity: 1;
  background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));
}

.bg-transparent{
  background-color: transparent;
}

.bg-violet{
  background-color: var(--violet);
}

.bg-violet-10{
  background-color: var(--violet-10);
}

.bg-violet-50{
  --tw-bg-opacity: 1;
  background-color: rgb(245 243 255 / var(--tw-bg-opacity, 1));
}

.bg-violet-500{
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}

.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-white\/10{
  background-color: rgb(255 255 255 / 0.1);
}

.bg-white\/20{
  background-color: rgb(255 255 255 / 0.2);
}

.bg-white\/5{
  background-color: rgb(255 255 255 / 0.05);
}

.bg-white\/50{
  background-color: rgb(255 255 255 / 0.5);
}

.bg-yellow-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}

.bg-yellow-50{
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}

.bg-yellow-500{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}

.bg-opacity-10{
  --tw-bg-opacity: 0.1;
}

.bg-opacity-20{
  --tw-bg-opacity: 0.2;
}

.bg-gradient-to-b{
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.bg-gradient-to-br{
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.from-coral{
  --tw-gradient-from: var(--coral) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-transparent{
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.via-transparent{
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-\[\#c56845\]{
  --tw-gradient-to: #c56845 var(--tw-gradient-to-position);
}

.to-\[var\(--cream\)\]{
  --tw-gradient-to: var(--cream) var(--tw-gradient-to-position);
}

.fill-amber-500{
  fill: #f59e0b;
}

.fill-current{
  fill: currentColor;
}

.object-contain{
  -o-object-fit: contain;
     object-fit: contain;
}

.object-cover{
  -o-object-fit: cover;
     object-fit: cover;
}

.p-0{
  padding: 0px;
}

.p-0\.5{
  padding: 0.125rem;
}

.p-1{
  padding: 4px;
}

.p-1\.5{
  padding: 0.375rem;
}

.p-10{
  padding: 40px;
}

.p-12{
  padding: 48px;
}

.p-2{
  padding: 8px;
}

.p-2\.5{
  padding: 0.625rem;
}

.p-3{
  padding: 12px;
}

.p-3\.5{
  padding: 0.875rem;
}

.p-4{
  padding: 16px;
}

.p-5{
  padding: 20px;
}

.p-6{
  padding: 24px;
}

.p-7{
  padding: 1.75rem;
}

.p-8{
  padding: 32px;
}

.px-1{
  padding-left: 4px;
  padding-right: 4px;
}

.px-1\.5{
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}

.px-2{
  padding-left: 8px;
  padding-right: 8px;
}

.px-2\.5{
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.px-3{
  padding-left: 12px;
  padding-right: 12px;
}

.px-3\.5{
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}

.px-4{
  padding-left: 16px;
  padding-right: 16px;
}

.px-5{
  padding-left: 20px;
  padding-right: 20px;
}

.px-6{
  padding-left: 24px;
  padding-right: 24px;
}

.px-8{
  padding-left: 32px;
  padding-right: 32px;
}

.px-\[15px\]{
  padding-left: 15px;
  padding-right: 15px;
}

.py-0\.5{
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

.py-1{
  padding-top: 4px;
  padding-bottom: 4px;
}

.py-1\.5{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.py-10{
  padding-top: 40px;
  padding-bottom: 40px;
}

.py-12{
  padding-top: 48px;
  padding-bottom: 48px;
}

.py-16{
  padding-top: 64px;
  padding-bottom: 64px;
}

.py-2{
  padding-top: 8px;
  padding-bottom: 8px;
}

.py-2\.5{
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.py-20{
  padding-top: 80px;
  padding-bottom: 80px;
}

.py-24{
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.py-3{
  padding-top: 12px;
  padding-bottom: 12px;
}

.py-3\.5{
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

.py-4{
  padding-top: 16px;
  padding-bottom: 16px;
}

.py-5{
  padding-top: 20px;
  padding-bottom: 20px;
}

.py-6{
  padding-top: 24px;
  padding-bottom: 24px;
}

.py-8{
  padding-top: 32px;
  padding-bottom: 32px;
}

.pb-0{
  padding-bottom: 0px;
}

.pb-0\.5{
  padding-bottom: 0.125rem;
}

.pb-1{
  padding-bottom: 4px;
}

.pb-16{
  padding-bottom: 64px;
}

.pb-2{
  padding-bottom: 8px;
}

.pb-3{
  padding-bottom: 12px;
}

.pb-4{
  padding-bottom: 16px;
}

.pb-5{
  padding-bottom: 20px;
}

.pb-6{
  padding-bottom: 24px;
}

.pb-8{
  padding-bottom: 32px;
}

.pl-0\.5{
  padding-left: 0.125rem;
}

.pl-1{
  padding-left: 4px;
}

.pl-10{
  padding-left: 40px;
}

.pl-2{
  padding-left: 8px;
}

.pl-2\.5{
  padding-left: 0.625rem;
}

.pl-3{
  padding-left: 12px;
}

.pl-4{
  padding-left: 16px;
}

.pl-5{
  padding-left: 20px;
}

.pl-6{
  padding-left: 24px;
}

.pl-7{
  padding-left: 1.75rem;
}

.pl-8{
  padding-left: 32px;
}

.pl-9{
  padding-left: 2.25rem;
}

.pr-1{
  padding-right: 4px;
}

.pr-1\.5{
  padding-right: 0.375rem;
}

.pr-10{
  padding-right: 40px;
}

.pr-12{
  padding-right: 48px;
}

.pr-2{
  padding-right: 8px;
}

.pr-3{
  padding-right: 12px;
}

.pr-4{
  padding-right: 16px;
}

.pr-5{
  padding-right: 20px;
}

.pr-6{
  padding-right: 24px;
}

.pr-7{
  padding-right: 1.75rem;
}

.pr-8{
  padding-right: 32px;
}

.pr-9{
  padding-right: 2.25rem;
}

.pt-0\.5{
  padding-top: 0.125rem;
}

.pt-1{
  padding-top: 4px;
}

.pt-1\.5{
  padding-top: 0.375rem;
}

.pt-14{
  padding-top: 3.5rem;
}

.pt-2{
  padding-top: 8px;
}

.pt-2\.5{
  padding-top: 0.625rem;
}

.pt-3{
  padding-top: 12px;
}

.pt-4{
  padding-top: 16px;
}

.pt-5{
  padding-top: 20px;
}

.pt-6{
  padding-top: 24px;
}

.pt-nav{
  padding-top: 56px;
}

.text-left{
  text-align: left;
}

.\!text-center{
  text-align: center !important;
}

.text-center{
  text-align: center;
}

.text-right{
  text-align: right;
}

.align-top{
  vertical-align: top;
}

.align-middle{
  vertical-align: middle;
}

.font-\[Poppins\]{
  font-family: Poppins;
}

.font-mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.font-sans{
  font-family: DM Sans, system-ui, sans-serif;
}

.font-serif{
  font-family: DM Serif Display, Georgia, serif;
}

.text-2xl{
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl{
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-4xl{
  font-size: 2.25rem;
  line-height: 2.5rem;
}

.text-\[0\.9em\]{
  font-size: 0.9em;
}

.text-\[10px\]{
  font-size: 10px;
}

.text-\[11px\]{
  font-size: 11px;
}

.text-\[12px\]{
  font-size: 12px;
}

.text-\[13px\]{
  font-size: 13px;
}

.text-\[14px\]{
  font-size: 14px;
}

.text-\[15px\]{
  font-size: 15px;
}

.text-\[16px\]{
  font-size: 16px;
}

.text-\[20px\]{
  font-size: 20px;
}

.text-\[21px\]{
  font-size: 21px;
}

.text-\[22px\]{
  font-size: 22px;
}

.text-\[24px\]{
  font-size: 24px;
}

.text-\[32px\]{
  font-size: 32px;
}

.text-\[8px\]{
  font-size: 8px;
}

.text-\[9px\]{
  font-size: 9px;
}

.text-base{
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-body-lg{
  font-size: 1rem;
  line-height: 1.6;
}

.text-body-md{
  font-size: 0.875rem;
  line-height: 1.6;
}

.text-body-sm{
  font-size: 0.75rem;
  line-height: 1.5;
}

.text-caption{
  font-size: 0.6875rem;
  line-height: 1.4;
}

.text-heading-lg{
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.text-heading-md{
  font-size: 1.5rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.text-heading-sm{
  font-size: 1.25rem;
  line-height: 1.3;
}

.text-heading-xs{
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 600;
}

.text-label-sm{
  font-size: 0.75rem;
  line-height: 1.4;
  font-weight: 500;
}

.text-lg{
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm{
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl{
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs{
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-\[Work_Sans\]{
  font-weight: Work Sans;
}

.font-bold{
  font-weight: 700;
}

.font-medium{
  font-weight: 500;
}

.font-normal{
  font-weight: 400;
}

.font-semibold{
  font-weight: 600;
}

.uppercase{
  text-transform: uppercase;
}

.capitalize{
  text-transform: capitalize;
}

.normal-case{
  text-transform: none;
}

.italic{
  font-style: italic;
}

.tabular-nums{
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}

.leading-none{
  line-height: 1;
}

.leading-relaxed{
  line-height: 1.625;
}

.leading-snug{
  line-height: 1.375;
}

.leading-tight{
  line-height: 1.25;
}

.tracking-\[\.05em\]{
  letter-spacing: .05em;
}

.tracking-\[\.06em\]{
  letter-spacing: .06em;
}

.tracking-\[\.07em\]{
  letter-spacing: .07em;
}

.tracking-\[\.08em\]{
  letter-spacing: .08em;
}

.tracking-\[\.12em\]{
  letter-spacing: .12em;
}

.tracking-\[\.1em\]{
  letter-spacing: .1em;
}

.tracking-\[0\.5em\]{
  letter-spacing: 0.5em;
}

.tracking-\[0\.5px\]{
  letter-spacing: 0.5px;
}

.tracking-normal{
  letter-spacing: 0em;
}

.tracking-tight{
  letter-spacing: -0.025em;
}

.tracking-wide{
  letter-spacing: 0.025em;
}

.tracking-wider{
  letter-spacing: 0.05em;
}

.tracking-widest{
  letter-spacing: 0.1em;
}

.\!text-coral{
  color: var(--coral) !important;
}

.\!text-white{
  --tw-text-opacity: 1 !important;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
}

.text-\[\#1A1A1A\]{
  --tw-text-opacity: 1;
  color: rgb(26 26 26 / var(--tw-text-opacity, 1));
}

.text-\[\#676767\]{
  --tw-text-opacity: 1;
  color: rgb(103 103 103 / var(--tw-text-opacity, 1));
}

.text-\[\#DA7756\]{
  --tw-text-opacity: 1;
  color: rgb(218 119 86 / var(--tw-text-opacity, 1));
}

.text-\[\#da7756\]{
  --tw-text-opacity: 1;
  color: rgb(218 119 86 / var(--tw-text-opacity, 1));
}

.text-\[var\(--amber\)\]{
  color: var(--amber);
}

.text-\[var\(--forest\)\]{
  color: var(--forest);
}

.text-\[var\(--sky\)\]{
  color: var(--sky);
}

.text-\[var\(--success-text\)\]{
  color: var(--success-text);
}

.text-\[var\(--text\)\]{
  color: var(--text);
}

.text-\[var\(--text-light\)\]{
  color: var(--text-light);
}

.text-\[var\(--text-muted\)\]{
  color: var(--text-muted);
}

.text-\[var\(--violet\)\]{
  color: var(--violet);
}

.text-\[var\(--warning-text\)\]{
  color: var(--warning-text);
}

.text-accent{
  color: var(--ghost-hover);
}

.text-amber{
  color: var(--amber);
}

.text-amber-500{
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}

.text-amber-600{
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}

.text-amber-700{
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}

.text-amber-900{
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}

.text-black{
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.text-blue-500{
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.text-blue-600{
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.text-blue-700{
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.text-blue-800{
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.text-blue-900{
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.text-border-md{
  color: var(--border-md);
}

.text-coral{
  color: var(--coral);
}

.text-crimson{
  color: var(--crimson);
}

.text-current{
  color: currentColor;
}

.text-cyan-500{
  --tw-text-opacity: 1;
  color: rgb(6 182 212 / var(--tw-text-opacity, 1));
}

.text-cyan-600{
  --tw-text-opacity: 1;
  color: rgb(8 145 178 / var(--tw-text-opacity, 1));
}

.text-cyan-700{
  --tw-text-opacity: 1;
  color: rgb(14 116 144 / var(--tw-text-opacity, 1));
}

.text-emerald-500{
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
}

.text-emerald-600{
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}

.text-emerald-700{
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}

.text-error-text{
  color: var(--error-text);
}

.text-forest{
  color: var(--forest);
}

.text-gray-300{
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.text-gray-400{
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.text-gray-500{
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.text-gray-600{
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.text-gray-700{
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}

.text-gray-800{
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}

.text-gray-900{
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

.text-green-400{
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}

.text-green-500{
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.text-green-600{
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.text-green-700{
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.text-green-800{
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}

.text-indigo-500{
  --tw-text-opacity: 1;
  color: rgb(99 102 241 / var(--tw-text-opacity, 1));
}

.text-indigo-600{
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}

.text-indigo-700{
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}

.text-muted-foreground{
  color: var(--text-muted);
}

.text-orange-500{
  --tw-text-opacity: 1;
  color: rgb(249 115 22 / var(--tw-text-opacity, 1));
}

.text-orange-600{
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / var(--tw-text-opacity, 1));
}

.text-orange-700{
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}

.text-pink-500{
  --tw-text-opacity: 1;
  color: rgb(236 72 153 / var(--tw-text-opacity, 1));
}

.text-pink-600{
  --tw-text-opacity: 1;
  color: rgb(219 39 119 / var(--tw-text-opacity, 1));
}

.text-popover-foreground{
  color: var(--text);
}

.text-purple-500{
  --tw-text-opacity: 1;
  color: rgb(168 85 247 / var(--tw-text-opacity, 1));
}

.text-purple-600{
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / var(--tw-text-opacity, 1));
}

.text-purple-700{
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}

.text-purple-800{
  --tw-text-opacity: 1;
  color: rgb(107 33 168 / var(--tw-text-opacity, 1));
}

.text-red-200{
  --tw-text-opacity: 1;
  color: rgb(254 202 202 / var(--tw-text-opacity, 1));
}

.text-red-400{
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.text-red-500{
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-red-600{
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.text-red-700{
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.text-red-800{
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}

.text-sky{
  color: var(--sky);
}

.text-slate-500{
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}

.text-stone{
  color: var(--stone);
}

.text-success-text{
  color: var(--success-text);
}

.text-teal-500{
  --tw-text-opacity: 1;
  color: rgb(20 184 166 / var(--tw-text-opacity, 1));
}

.text-text{
  color: var(--text);
}

.text-text-light{
  color: var(--text-light);
}

.text-text-muted{
  color: var(--text-muted);
}

.text-violet{
  color: var(--violet);
}

.text-violet-600{
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}

.text-warning-text{
  color: var(--warning-text);
}

.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/30{
  color: rgb(255 255 255 / 0.3);
}

.text-white\/35{
  color: rgb(255 255 255 / 0.35);
}

.text-white\/40{
  color: rgb(255 255 255 / 0.4);
}

.text-white\/50{
  color: rgb(255 255 255 / 0.5);
}

.text-white\/55{
  color: rgb(255 255 255 / 0.55);
}

.text-white\/60{
  color: rgb(255 255 255 / 0.6);
}

.text-white\/70{
  color: rgb(255 255 255 / 0.7);
}

.text-white\/75{
  color: rgb(255 255 255 / 0.75);
}

.text-white\/80{
  color: rgb(255 255 255 / 0.8);
}

.text-white\/85{
  color: rgb(255 255 255 / 0.85);
}

.text-yellow-500{
  --tw-text-opacity: 1;
  color: rgb(234 179 8 / var(--tw-text-opacity, 1));
}

.text-yellow-600{
  --tw-text-opacity: 1;
  color: rgb(202 138 4 / var(--tw-text-opacity, 1));
}

.text-yellow-700{
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}

.underline{
  text-decoration-line: underline;
}

.line-through{
  text-decoration-line: line-through;
}

.underline-offset-4{
  text-underline-offset: 4px;
}

.placeholder-text-muted::-moz-placeholder{
  color: var(--text-muted);
}

.placeholder-text-muted::placeholder{
  color: var(--text-muted);
}

.accent-\[var\(--coral\)\]{
  accent-color: var(--coral);
}

.accent-coral{
  accent-color: var(--coral);
}

.accent-forest{
  accent-color: var(--forest);
}

.opacity-0{
  opacity: 0;
}

.opacity-100{
  opacity: 1;
}

.opacity-25{
  opacity: 0.25;
}

.opacity-30{
  opacity: 0.3;
}

.opacity-40{
  opacity: 0.4;
}

.opacity-50{
  opacity: 0.5;
}

.opacity-55{
  opacity: 0.55;
}

.opacity-60{
  opacity: 0.6;
}

.opacity-70{
  opacity: 0.7;
}

.opacity-75{
  opacity: 0.75;
}

.opacity-80{
  opacity: 0.8;
}

.opacity-90{
  opacity: 0.9;
}

.shadow{
  --tw-shadow: 0 2px 8px rgba(44,44,42,0.08);
  --tw-shadow-colored: 0 2px 8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-2xl{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-card{
  --tw-shadow: var(--shadow-card);
  --tw-shadow-colored: var(--shadow-card);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg{
  --tw-shadow: 0 8px 32px rgba(44,44,42,0.12);
  --tw-shadow-colored: 0 8px 32px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-md{
  --tw-shadow: 0 4px 16px rgba(44,44,42,0.10);
  --tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-none{
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm{
  --tw-shadow: 0 1px 2px rgba(44,44,42,0.06);
  --tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl{
  --tw-shadow: 0 16px 48px rgba(44,44,42,0.16);
  --tw-shadow-colored: 0 16px 48px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.outline-none{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.outline{
  outline-style: solid;
}

.ring{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-2{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-accent{
  --tw-ring-color: var(--ghost-hover);
}

.ring-coral{
  --tw-ring-color: var(--coral);
}

.ring-offset-2{
  --tw-ring-offset-width: 2px;
}

.grayscale{
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter{
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.backdrop-blur-md{
  --tw-backdrop-blur: blur(12px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-blur-sm{
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.transition{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[left\]{
  transition-property: left;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[margin\]{
  transition-property: margin;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[width\]{
  transition-property: width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-all{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-opacity{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-shadow{
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-transform{
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-100{
  transition-duration: 100ms;
}

.duration-1000{
  transition-duration: 1000ms;
}

.duration-150{
  transition-duration: 150ms;
}

.duration-200{
  transition-duration: 200ms;
}

.duration-300{
  transition-duration: 300ms;
}

.duration-500{
  transition-duration: 500ms;
}

.ease-in{
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}

.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.ease-linear{
  transition-timing-function: linear;
}

.scrollbar-thin {
    scrollbar-width: thin;
    scrollbar-color: var(--border-md) transparent;
  }

.scrollbar-thin::-webkit-scrollbar { width: 4px; }

.scrollbar-thin::-webkit-scrollbar-track { background: transparent; }

.scrollbar-thin::-webkit-scrollbar-thumb {
    background-color: var(--border-md);
    border-radius: 2px;
  }

.theme-transition {
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
  }

@keyframes slideUp {
    from { opacity: 0; transform: translateY(24px) scale(0.96); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
  }

.\[color-scheme\:light\]{
  color-scheme: light;
}

.\[writing-mode\:vertical-rl\]{
  writing-mode: vertical-rl;
}

/* ============================================================
   LIGHT MODE TOKENS (default / [data-theme="light"])
============================================================ */

:root,
[data-theme="light"] {
  color-scheme: light;
  --coral:        #DA7756;
  --coral-10:     rgba(218,119,86,0.08);
  --coral-20:     rgba(218,119,86,0.15);
  --coral-40:     rgba(218,119,86,0.35);
  --cream:        #F6F4EE;
  --charcoal:     #2C2C2A;

  --violet:       #534AB7;
  --violet-10:    rgba(83,74,183,0.08);
  --violet-20:    rgba(83,74,183,0.18);
  --forest:       #085041;
  --forest-10:    rgba(8,80,65,0.08);
  --forest-20:    rgba(8,80,65,0.18);

  --sky:          #185FA5;
  --sky-10:       rgba(24,95,165,0.08);
  --amber:        #BA7517;
  --amber-10:     rgba(186,117,23,0.10);
  --crimson:      #A32D2D;
  --crimson-10:   rgba(163,45,45,0.08);
  --leaf:         #3B6D11;
  --leaf-10:      rgba(59,109,17,0.08);
  --lavender:     #CECBF6;
  --lavender-20:  rgba(206,203,246,0.30);
  --stone:        #888780;
  --stone-10:     rgba(136,135,128,0.10);

  --sand:         #C4B89D;
  --sand-10:      rgba(196,184,157,0.15);
  --sand-warm:    #DBC2A9;
  --mist:         #D5DBDB;

  --success:      #A4F4E7;
  --success-text: #085041;
  --warning:      #F4C790;
  --warning-text: #7A4A00;
  --error:        #E4626F;
  --error-text:   #6B0F1A;
  --exception:    #AAB9C5;

  --text:         #1A1A1A;
  --text-muted:   #5A5A56;
  --text-light:   #8A8A84;
  --bg:           #F6F4EE;
  --bg-white:     #FAFAFA;
  --bg-card:      #FFFFFF;
  --border:       rgba(44,44,42,0.10);
  --border-md:    rgba(44,44,42,0.18);

  --nav-bg:       rgba(246,244,238,0.92);
  --sidebar-bg:   #F6F4EE;
  --ghost-hover:  #F0EDE6;
  --toggle-bg:    #E8E6E0;
  --toggle-knob:  #FFFFFF;
  --shadow-card:  0 4px 40px rgba(0,0,0,0.06);
}

/* ============================================================
   DARK MODE TOKENS ([data-theme="dark"])
============================================================ */

[data-theme="dark"] {
  color-scheme: dark;
  --coral:        #E8865F;
  --coral-10:     rgba(232,134,95,0.10);
  --coral-20:     rgba(232,134,95,0.18);
  --coral-40:     rgba(232,134,95,0.32);
  --cream:        #1E1D1A;
  --charcoal:     #F0EDE6;

  --violet:       #7B73D4;
  --violet-10:    rgba(123,115,212,0.12);
  --violet-20:    rgba(123,115,212,0.22);
  --forest:       #2FA882;
  --forest-10:    rgba(47,168,130,0.10);
  --forest-20:    rgba(47,168,130,0.20);

  --sky:          #4A90D4;
  --sky-10:       rgba(74,144,212,0.10);
  --amber:        #D4930F;
  --amber-10:     rgba(212,147,15,0.12);
  --crimson:      #CF4D4D;
  --crimson-10:   rgba(207,77,77,0.10);
  --leaf:         #5A9E22;
  --leaf-10:      rgba(90,158,34,0.10);
  --lavender:     #7A74C8;
  --lavender-20:  rgba(122,116,200,0.20);
  --stone:        #9A9890;
  --stone-10:     rgba(154,152,144,0.12);

  --sand:         #A89A82;
  --sand-10:      rgba(168,154,130,0.15);
  --sand-warm:    #C4A882;
  --mist:         #4A5050;

  --success:      #1A8C74;
  --success-text: #5DD4B8;
  --warning:      #C07820;
  --warning-text: #F4C790;
  --error:        #CF4D58;
  --error-text:   #F09098;
  --exception:    #7A8E9A;

  --text:         #F0EDE6;
  --text-muted:   #A8A49C;
  --text-light:   #6A6860;
  --bg:           #141412;
  --bg-white:     #1A1917;
  --bg-card:      #1E1D1A;
  --border:       rgba(240,237,230,0.08);
  --border-md:    rgba(240,237,230,0.14);

  --nav-bg:       rgba(20,20,18,0.92);
  --sidebar-bg:   #1A1917;
  --ghost-hover:  #282624;
  --toggle-bg:    #3A3830;
  --toggle-knob:  #E8865F;
  --shadow-card:  0 4px 40px rgba(0,0,0,0.40);
}

/* ============================================================
   BASE STYLES
============================================================ */

/* ============================================================
   UTILITIES
============================================================ */

/* ============================================================
   GRAPESJS DARK THEME — Settings Email Builder
============================================================ */

/* Hide default GJS panel chrome */

.gjs-pn-panels { display: none !important; }

.gjs-pn-btn.fa { display: none; }

/* ── Canvas ── */

.gjs-cv-canvas  { background: #18181a; }

.gjs-frame-wrapper { background: #18181a; }

/* ── Block manager ── */

#gjsBlocks .gjs-block-categories { padding: 6px; }

#gjsBlocks .gjs-block-category .gjs-title {
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.4);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 3px;
  border: none;
}

#gjsBlocks .gjs-block-category .gjs-caret-icon { color: rgba(255,255,255,0.3); }

#gjsBlocks .gjs-blocks-cs {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px 6px 8px;
}

#gjsBlocks .gjs-block {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 6px;
  color: rgba(255,255,255,0.55);
  font-size: 10px;
  font-family: 'DM Sans', Arial, sans-serif;
  padding: 10px 6px 8px;
  text-align: center;
  cursor: grab;
  transition: all 0.12s ease;
  min-height: auto !important;
  height: auto !important;
  width: auto !important;
}

#gjsBlocks .gjs-block:hover {
  background: rgba(218,119,86,0.12);
  border-color: rgba(218,119,86,0.35);
  color: #DA7756;
}

#gjsBlocks .gjs-block .gjs-block__media { margin-bottom: 4px; font-size: 16px; line-height: 1; }

#gjsBlocks .gjs-block-label { font-size: 10px !important; line-height: 1.3; }

/* ── Style manager ── */

#gjsStyles .gjs-sm-sectors { padding: 0; }

#gjsStyles .gjs-sm-sector-title {
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.45);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 7px 12px;
  cursor: pointer;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

#gjsStyles .gjs-sm-sector-title:hover { color: rgba(255,255,255,0.75); }

#gjsStyles .gjs-sm-sector-title .gjs-sm-sector-caret { color: rgba(255,255,255,0.3); }

#gjsStyles .gjs-sm-properties { padding: 8px 10px; }

#gjsStyles .gjs-sm-property { margin-bottom: 8px; }

#gjsStyles .gjs-sm-label {
  color: rgba(255,255,255,0.4);
  font-size: 10px;
  margin-bottom: 3px;
  font-family: 'DM Sans', Arial, sans-serif;
}

#gjsStyles input[type="text"],
#gjsStyles input[type="number"],
#gjsStyles select,
#gjsStyles .gjs-field {
  background: rgba(255,255,255,0.07) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 4px !important;
  color: rgba(255,255,255,0.82) !important;
  font-size: 11px !important;
  font-family: 'DM Sans', Arial, sans-serif;
  padding: 4px 7px !important;
}

#gjsStyles input:focus,
#gjsStyles select:focus { border-color: #DA7756 !important; outline: none !important; }

#gjsStyles .gjs-sm-radio input:checked + .gjs-sm-radio-item,
#gjsStyles .gjs-field-radio input:checked + label {
  background: #DA7756 !important;
  color: #fff !important;
  border-color: #DA7756 !important;
}

#gjsStyles .gjs-sm-radio-item,
#gjsStyles .gjs-field-radio label {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.45);
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 3px;
  transition: all 0.1s ease;
}

#gjsStyles .gjs-sm-radio-item:hover { border-color: rgba(218,119,86,0.4); color: #DA7756; }

/* Color picker */

.gjs-field-colorp { border: 1px solid rgba(255,255,255,0.10) !important; border-radius: 4px !important; }

.gjs-field-color-picker { border-radius: 3px !important; }

/* ── Trait manager ── */

#gjsTraits .gjs-trt-trait { padding: 6px 10px; border-bottom: 1px solid rgba(255,255,255,0.05); }

#gjsTraits .gjs-label {
  color: rgba(255,255,255,0.4);
  font-size: 10px;
  font-family: 'DM Sans', Arial, sans-serif;
}

#gjsTraits input,
#gjsTraits select,
#gjsTraits textarea {
  background: rgba(255,255,255,0.07) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 4px !important;
  color: rgba(255,255,255,0.82) !important;
  font-size: 11px !important;
  padding: 4px 7px !important;
  width: 100%;
}

#gjsTraits input:focus,
#gjsTraits select:focus { border-color: #DA7756 !important; outline: none !important; }

/* ── Layer manager ── */

#gjsLayers .gjs-layer { color: rgba(255,255,255,0.55); font-size: 11px; border: none; }

#gjsLayers .gjs-layer:hover { background: rgba(255,255,255,0.04); }

#gjsLayers .gjs-layer.gjs-hovered { background: rgba(255,255,255,0.05); }

#gjsLayers .gjs-layer.gjs-selected { background: rgba(218,119,86,0.12); color: #DA7756; }

#gjsLayers .gjs-layer-title { padding: 5px 10px; }

#gjsLayers .gjs-layer-count { color: rgba(255,255,255,0.25); font-size: 10px; }

/* ── Canvas selection & hover ── */

.gjs-selected { outline: 2px solid #DA7756 !important; outline-offset: -2px !important; }

.gjs-hovered  { outline: 1px dashed rgba(218,119,86,0.45) !important; outline-offset: -1px !important; }

/* ── Toolbar (floating controls on selected) ── */

.gjs-toolbar { background: #DA7756 !important; border-radius: 5px !important; padding: 2px !important; box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important; }

.gjs-toolbar-item { color: #fff !important; padding: 4px 8px !important; }

.gjs-toolbar-item:hover { background: rgba(0,0,0,0.15) !important; border-radius: 3px; }

.gjs-toolbar-item svg { fill: #fff; stroke: #fff; }

/* ── Badge ── */

.gjs-badge { background: #DA7756 !important; color: #fff !important; font-size: 10px !important; border-radius: 3px !important; padding: 1px 6px !important; }

/* ── Drag placeholder ── */

.gjs-placeholder { border: 2px dashed #DA7756 !important; background: rgba(218,119,86,0.07) !important; }

/* ── Resizers ── */

.gjs-resizer-h { border: 1px solid #DA7756 !important; background: #DA7756 !important; border-radius: 50% !important; }

/* ── Modals (import/export) ── */

.gjs-mdl-dialog {
  background: #222224 !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 10px !important;
  color: rgba(255,255,255,0.8) !important;
}

.gjs-mdl-title { color: #fff !important; font-family: 'DM Sans', Arial, sans-serif; }

.gjs-mdl-btn-close { color: rgba(255,255,255,0.4) !important; }

.gjs-mdl-btn-close:hover { color: #fff !important; }

/* Editor container */

.gjs-editor { font-family: 'DM Sans', Arial, sans-serif; }

@keyframes slideInRight {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.file\:border-0::file-selector-button{
  border-width: 0px;
}

.file\:bg-transparent::file-selector-button{
  background-color: transparent;
}

.file\:text-sm::file-selector-button{
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.file\:font-medium::file-selector-button{
  font-weight: 500;
}

.placeholder\:text-gray-400::-moz-placeholder{
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.placeholder\:text-gray-400::placeholder{
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.placeholder\:text-gray-500::-moz-placeholder{
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.placeholder\:text-gray-500::placeholder{
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.placeholder\:text-text-light::-moz-placeholder{
  color: var(--text-light);
}

.placeholder\:text-text-light::placeholder{
  color: var(--text-light);
}

.placeholder\:text-text-muted::-moz-placeholder{
  color: var(--text-muted);
}

.placeholder\:text-text-muted::placeholder{
  color: var(--text-muted);
}

.placeholder\:text-white\/20::-moz-placeholder{
  color: rgb(255 255 255 / 0.2);
}

.placeholder\:text-white\/20::placeholder{
  color: rgb(255 255 255 / 0.2);
}

.placeholder\:text-white\/25::-moz-placeholder{
  color: rgb(255 255 255 / 0.25);
}

.placeholder\:text-white\/25::placeholder{
  color: rgb(255 255 255 / 0.25);
}

.first\:mt-0:first-child{
  margin-top: 0px;
}

.first\:border-0:first-child{
  border-width: 0px;
}

.first\:pt-0:first-child{
  padding-top: 0px;
}

.last\:mb-0:last-child{
  margin-bottom: 0px;
}

.last\:border-0:last-child{
  border-width: 0px;
}

.last\:border-b-0:last-child{
  border-bottom-width: 0px;
}

.focus-within\:border-coral:focus-within{
  border-color: var(--coral);
}

.focus-within\:bg-\[var\(--cream\)\]:focus-within{
  background-color: var(--cream);
}

.focus-within\:opacity-100:focus-within{
  opacity: 1;
}

.focus-within\:ring-2:focus-within{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-within\:ring-coral-10:focus-within{
  --tw-ring-color: var(--coral-10);
}

.hover\:-translate-y-0\.5:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:-translate-y-px:hover{
  --tw-translate-y: -1px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-105:hover{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-110:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:border-\[\#DA7756\]:hover{
  --tw-border-opacity: 1;
  border-color: rgb(218 119 86 / var(--tw-border-opacity, 1));
}

.hover\:border-border:hover{
  border-color: var(--border);
}

.hover\:border-border-md:hover{
  border-color: var(--border-md);
}

.hover\:border-coral:hover{
  border-color: var(--coral);
}

.hover\:border-coral-40:hover{
  border-color: var(--coral-40);
}

.hover\:border-gray-300:hover{
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}

.hover\:border-indigo-400:hover{
  --tw-border-opacity: 1;
  border-color: rgb(129 140 248 / var(--tw-border-opacity, 1));
}

.hover\:border-indigo-500:hover{
  --tw-border-opacity: 1;
  border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));
}

.hover\:border-violet:hover{
  border-color: var(--violet);
}

.hover\:bg-\[\#5a8abf\]:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(90 138 191 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#C86B44\]:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(200 107 68 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#DA7756\]:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(218 119 86 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#c56845\]:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(197 104 69 / var(--tw-bg-opacity, 1));
}

.hover\:bg-\[\#da7756\]\/10:hover{
  background-color: rgb(218 119 86 / 0.1);
}

.hover\:bg-\[rgba\(163\2c 45\2c 45\2c 0\.08\)\]:hover{
  background-color: rgba(163,45,45,0.08);
}

.hover\:bg-\[var\(--bg-white\)\]:hover{
  background-color: var(--bg-white);
}

.hover\:bg-\[var\(--border\)\]:hover{
  background-color: var(--border);
}

.hover\:bg-\[var\(--coral-10\)\]:hover{
  background-color: var(--coral-10);
}

.hover\:bg-\[var\(--cream\)\]:hover{
  background-color: var(--cream);
}

.hover\:bg-\[var\(--ghost-hover\)\]:hover{
  background-color: var(--ghost-hover);
}

.hover\:bg-amber-10:hover{
  background-color: var(--amber-10);
}

.hover\:bg-amber-200:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(253 230 138 / var(--tw-bg-opacity, 1));
}

.hover\:bg-black\/10:hover{
  background-color: rgb(0 0 0 / 0.1);
}

.hover\:bg-blue-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.hover\:bg-border-md:hover{
  background-color: var(--border-md);
}

.hover\:bg-coral-10:hover{
  background-color: var(--coral-10);
}

.hover\:bg-coral-20:hover{
  background-color: var(--coral-20);
}

.hover\:bg-cream:hover{
  background-color: var(--cream);
}

.hover\:bg-crimson-10:hover{
  background-color: var(--crimson-10);
}

.hover\:bg-forest-10:hover{
  background-color: var(--forest-10);
}

.hover\:bg-forest-20:hover{
  background-color: var(--forest-20);
}

.hover\:bg-gray-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
}

.hover\:bg-indigo-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-indigo-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-indigo-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}

.hover\:bg-purple-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(126 34 206 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

.hover\:bg-violet-10:hover{
  background-color: var(--violet-10);
}

.hover\:bg-violet-20:hover{
  background-color: var(--violet-20);
}

.hover\:bg-white:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white\/20:hover{
  background-color: rgb(255 255 255 / 0.2);
}

.hover\:bg-white\/5:hover{
  background-color: rgb(255 255 255 / 0.05);
}

.hover\:text-\[\#DA7756\]:hover{
  --tw-text-opacity: 1;
  color: rgb(218 119 86 / var(--tw-text-opacity, 1));
}

.hover\:text-\[var\(--text\)\]:hover{
  color: var(--text);
}

.hover\:text-accent:hover{
  color: var(--ghost-hover);
}

.hover\:text-amber:hover{
  color: var(--amber);
}

.hover\:text-coral:hover{
  color: var(--coral);
}

.hover\:text-crimson:hover{
  color: var(--crimson);
}

.hover\:text-forest:hover{
  color: var(--forest);
}

.hover\:text-gray-700:hover{
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-900:hover{
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

.hover\:text-green-700:hover{
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.hover\:text-indigo-600:hover{
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}

.hover\:text-indigo-700:hover{
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}

.hover\:text-red-500:hover{
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.hover\:text-red-700:hover{
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.hover\:text-text:hover{
  color: var(--text);
}

.hover\:text-text-muted:hover{
  color: var(--text-muted);
}

.hover\:text-violet:hover{
  color: var(--violet);
}

.hover\:text-violet-800:hover{
  --tw-text-opacity: 1;
  color: rgb(91 33 182 / var(--tw-text-opacity, 1));
}

.hover\:text-white:hover{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.hover\:text-white\/65:hover{
  color: rgb(255 255 255 / 0.65);
}

.hover\:text-white\/80:hover{
  color: rgb(255 255 255 / 0.8);
}

.hover\:text-white\/85:hover{
  color: rgb(255 255 255 / 0.85);
}

.hover\:underline:hover{
  text-decoration-line: underline;
}

.hover\:opacity-100:hover{
  opacity: 1;
}

.hover\:opacity-70:hover{
  opacity: 0.7;
}

.hover\:opacity-80:hover{
  opacity: 0.8;
}

.hover\:opacity-85:hover{
  opacity: 0.85;
}

.hover\:shadow-md:hover{
  --tw-shadow: 0 4px 16px rgba(44,44,42,0.10);
  --tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-sm:hover{
  --tw-shadow: 0 1px 2px rgba(44,44,42,0.06);
  --tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:brightness-110:hover{
  --tw-brightness: brightness(1.1);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:brightness-95:hover{
  --tw-brightness: brightness(.95);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.focus\:border-\[\#DA7756\]:focus{
  --tw-border-opacity: 1;
  border-color: rgb(218 119 86 / var(--tw-border-opacity, 1));
}

.focus\:border-coral:focus{
  border-color: var(--coral);
}

.focus\:border-crimson:focus{
  border-color: var(--crimson);
}

.focus\:border-transparent:focus{
  border-color: transparent;
}

.focus\:bg-accent:focus{
  background-color: var(--ghost-hover);
}

.focus\:text-accent-foreground:focus{
  color: var(--text);
}

.focus\:outline-none:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:ring-1:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-2:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-\[rgba\(218\2c 119\2c 86\2c 0\.08\)\]:focus{
  --tw-ring-color: rgba(218,119,86,0.08);
}

.focus\:ring-\[rgba\(218\2c 119\2c 86\2c 0\.10\)\]:focus{
  --tw-ring-color: rgba(218,119,86,0.10);
}

.focus\:ring-accent:focus{
  --tw-ring-color: var(--ghost-hover);
}

.focus\:ring-coral:focus{
  --tw-ring-color: var(--coral);
}

.focus\:ring-coral-10:focus{
  --tw-ring-color: var(--coral-10);
}

.focus\:ring-coral-20:focus{
  --tw-ring-color: var(--coral-20);
}

.focus\:ring-crimson-10:focus{
  --tw-ring-color: var(--crimson-10);
}

.focus\:ring-indigo-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1));
}

.focus\:ring-purple-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity, 1));
}

.focus-visible\:outline-none:focus-visible{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:ring-0:focus-visible{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-2:focus-visible{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-coral:focus-visible{
  --tw-ring-color: var(--coral);
}

.focus-visible\:ring-offset-1:focus-visible{
  --tw-ring-offset-width: 1px;
}

.focus-visible\:ring-offset-2:focus-visible{
  --tw-ring-offset-width: 2px;
}

.active\:scale-95:active{
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:cursor-grabbing:active{
  cursor: grabbing;
}

.active\:bg-\[var\(--ghost-hover\)\]:active{
  background-color: var(--ghost-hover);
}

.active\:brightness-95:active{
  --tw-brightness: brightness(.95);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.enabled\:hover\:shadow-md:hover:enabled{
  --tw-shadow: 0 4px 16px rgba(44,44,42,0.10);
  --tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.disabled\:pointer-events-none:disabled{
  pointer-events: none;
}

.disabled\:cursor-default:disabled{
  cursor: default;
}

.disabled\:cursor-not-allowed:disabled{
  cursor: not-allowed;
}

.disabled\:bg-\[var\(--ghost-hover\)\]:disabled{
  background-color: var(--ghost-hover);
}

.disabled\:no-underline:disabled{
  text-decoration-line: none;
}

.disabled\:opacity-40:disabled{
  opacity: 0.4;
}

.disabled\:opacity-50:disabled{
  opacity: 0.5;
}

.disabled\:opacity-60:disabled{
  opacity: 0.6;
}

.group:hover .group-hover\:flex{
  display: flex;
}

.group:hover .group-hover\:text-accent{
  color: var(--ghost-hover);
}

.group:hover .group-hover\:text-coral{
  color: var(--coral);
}

.group:hover .group-hover\:text-text{
  color: var(--text);
}

.group:hover .group-hover\:opacity-100{
  opacity: 1;
}

.peer:focus-visible ~ .peer-focus-visible\:ring-2{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.peer:focus-visible ~ .peer-focus-visible\:ring-coral-40{
  --tw-ring-color: var(--coral-40);
}

.data-\[disabled\]\:pointer-events-none[data-disabled]{
  pointer-events: none;
}

.data-\[state\=checked\]\:bg-transparent[data-state="checked"]{
  background-color: transparent;
}

.data-\[state\=open\]\:bg-accent[data-state="open"]{
  background-color: var(--ghost-hover);
}

.data-\[state\=selected\]\:bg-\[var\(--ghost-hover\)\][data-state="selected"]{
  background-color: var(--ghost-hover);
}

.data-\[state\=unchecked\]\:bg-gray-200[data-state="unchecked"]{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}

.data-\[state\=checked\]\:text-white[data-state="checked"]{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.data-\[state\=indeterminate\]\:text-white[data-state="indeterminate"]{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.data-\[disabled\]\:opacity-50[data-disabled]{
  opacity: 0.5;
}

.group[data-state="indeterminate"] .group-data-\[state\=indeterminate\]\:block{
  display: block;
}

.group[data-state="indeterminate"] .group-data-\[state\=indeterminate\]\:hidden{
  display: none;
}

.dark\:bg-amber-900\/30:is([data-theme="dark"] *){
  background-color: rgb(120 53 15 / 0.3);
}

.dark\:bg-blue-900\/30:is([data-theme="dark"] *){
  background-color: rgb(30 58 138 / 0.3);
}

.dark\:bg-cyan-900\/30:is([data-theme="dark"] *){
  background-color: rgb(22 78 99 / 0.3);
}

.dark\:bg-emerald-900\/30:is([data-theme="dark"] *){
  background-color: rgb(6 78 59 / 0.3);
}

.dark\:bg-green-900\/30:is([data-theme="dark"] *){
  background-color: rgb(20 83 45 / 0.3);
}

.dark\:bg-indigo-900\/30:is([data-theme="dark"] *){
  background-color: rgb(49 46 129 / 0.3);
}

.dark\:bg-orange-900\/30:is([data-theme="dark"] *){
  background-color: rgb(124 45 18 / 0.3);
}

.dark\:bg-pink-900\/30:is([data-theme="dark"] *){
  background-color: rgb(131 24 67 / 0.3);
}

.dark\:bg-purple-900\/30:is([data-theme="dark"] *){
  background-color: rgb(88 28 135 / 0.3);
}

.dark\:bg-red-900\/30:is([data-theme="dark"] *){
  background-color: rgb(127 29 29 / 0.3);
}

.dark\:bg-slate-700:is([data-theme="dark"] *){
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1));
}

.dark\:bg-slate-800:is([data-theme="dark"] *){
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}

.dark\:bg-slate-800\/50:is([data-theme="dark"] *){
  background-color: rgb(30 41 59 / 0.5);
}

.dark\:bg-slate-900:is([data-theme="dark"] *){
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
}

.dark\:bg-slate-900\/50:is([data-theme="dark"] *){
  background-color: rgb(15 23 42 / 0.5);
}

.dark\:bg-surface:is([data-theme="dark"] *){
  background-color: var(--bg-card);
}

.dark\:bg-teal-900\/30:is([data-theme="dark"] *){
  background-color: rgb(19 78 74 / 0.3);
}

.dark\:bg-yellow-900\/30:is([data-theme="dark"] *){
  background-color: rgb(113 63 18 / 0.3);
}

.dark\:text-\[\#F0EDE6\]:is([data-theme="dark"] *){
  --tw-text-opacity: 1;
  color: rgb(240 237 230 / var(--tw-text-opacity, 1));
}

.dark\:text-green-400:is([data-theme="dark"] *){
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}

.dark\:text-red-400:is([data-theme="dark"] *){
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.dark\:text-white:is([data-theme="dark"] *){
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.dark\:text-yellow-400:is([data-theme="dark"] *){
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}

.dark\:\[color-scheme\:dark\]:is([data-theme="dark"] *){
  color-scheme: dark;
}

.dark\:hover\:bg-red-900\/20:hover:is([data-theme="dark"] *){
  background-color: rgb(127 29 29 / 0.2);
}

.dark\:hover\:bg-slate-700\/50:hover:is([data-theme="dark"] *){
  background-color: rgb(51 65 85 / 0.5);
}

.dark\:hover\:bg-slate-800:hover:is([data-theme="dark"] *){
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
}

.dark\:hover\:bg-slate-800\/50:hover:is([data-theme="dark"] *){
  background-color: rgb(30 41 59 / 0.5);
}

@media (min-width: 640px){

  .sm\:bottom-24{
    bottom: 6rem;
  }

  .sm\:left-auto{
    left: auto;
  }

  .sm\:right-0{
    right: 0px;
  }

  .sm\:right-7{
    right: 1.75rem;
  }

  .sm\:order-none{
    order: 0;
  }

  .sm\:col-span-2{
    grid-column: span 2 / span 2;
  }

  .sm\:mx-2{
    margin-left: 8px;
    margin-right: 8px;
  }

  .sm\:mb-6{
    margin-bottom: 24px;
  }

  .sm\:mb-8{
    margin-bottom: 32px;
  }

  .sm\:mt-2{
    margin-top: 8px;
  }

  .sm\:block{
    display: block;
  }

  .sm\:inline{
    display: inline;
  }

  .sm\:flex{
    display: flex;
  }

  .sm\:hidden{
    display: none;
  }

  .sm\:h-1{
    height: 4px;
  }

  .sm\:h-10{
    height: 40px;
  }

  .sm\:h-14{
    height: 3.5rem;
  }

  .sm\:h-5{
    height: 20px;
  }

  .sm\:h-8{
    height: 32px;
  }

  .sm\:h-9{
    height: 2.25rem;
  }

  .sm\:h-\[36px\]{
    height: 36px;
  }

  .sm\:h-\[500px\]{
    height: 500px;
  }

  .sm\:w-10{
    width: 40px;
  }

  .sm\:w-14{
    width: 3.5rem;
  }

  .sm\:w-16{
    width: 64px;
  }

  .sm\:w-5{
    width: 20px;
  }

  .sm\:w-64{
    width: 16rem;
  }

  .sm\:w-72{
    width: 18rem;
  }

  .sm\:w-8{
    width: 32px;
  }

  .sm\:w-80{
    width: 20rem;
  }

  .sm\:w-9{
    width: 2.25rem;
  }

  .sm\:w-\[36px\]{
    width: 36px;
  }

  .sm\:w-\[370px\]{
    width: 370px;
  }

  .sm\:w-\[480px\]{
    width: 480px;
  }

  .sm\:w-auto{
    width: auto;
  }

  .sm\:min-w-0{
    min-width: 0px;
  }

  .sm\:max-w-none{
    max-width: none;
  }

  .sm\:flex-none{
    flex: none;
  }

  .sm\:basis-auto{
    flex-basis: auto;
  }

  .sm\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:flex-row{
    flex-direction: row;
  }

  .sm\:items-start{
    align-items: flex-start;
  }

  .sm\:items-center{
    align-items: center;
  }

  .sm\:justify-between{
    justify-content: space-between;
  }

  .sm\:gap-0{
    gap: 0px;
  }

  .sm\:gap-1{
    gap: 4px;
  }

  .sm\:gap-2{
    gap: 8px;
  }

  .sm\:gap-3{
    gap: 12px;
  }

  .sm\:gap-4{
    gap: 16px;
  }

  .sm\:gap-5{
    gap: 20px;
  }

  .sm\:gap-6{
    gap: 24px;
  }

  .sm\:space-y-4 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(16px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(16px * var(--tw-space-y-reverse));
  }

  .sm\:space-y-6 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(24px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(24px * var(--tw-space-y-reverse));
  }

  .sm\:overflow-visible{
    overflow: visible;
  }

  .sm\:border-r{
    border-right-width: 1px;
  }

  .sm\:p-10{
    padding: 40px;
  }

  .sm\:p-4{
    padding: 16px;
  }

  .sm\:p-5{
    padding: 20px;
  }

  .sm\:p-6{
    padding: 24px;
  }

  .sm\:p-8{
    padding: 32px;
  }

  .sm\:px-1\.5{
    padding-left: 0.375rem;
    padding-right: 0.375rem;
  }

  .sm\:px-2\.5{
    padding-left: 0.625rem;
    padding-right: 0.625rem;
  }

  .sm\:px-3{
    padding-left: 12px;
    padding-right: 12px;
  }

  .sm\:px-3\.5{
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  .sm\:px-4{
    padding-left: 16px;
    padding-right: 16px;
  }

  .sm\:px-6{
    padding-left: 24px;
    padding-right: 24px;
  }

  .sm\:py-1{
    padding-top: 4px;
    padding-bottom: 4px;
  }

  .sm\:py-2\.5{
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .sm\:py-4{
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .sm\:py-5{
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .sm\:pb-0{
    padding-bottom: 0px;
  }

  .sm\:pl-0{
    padding-left: 0px;
  }

  .sm\:text-2xl{
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .sm\:text-\[10px\]{
    font-size: 10px;
  }

  .sm\:text-\[18px\]{
    font-size: 18px;
  }

  .sm\:text-caption{
    font-size: 0.6875rem;
    line-height: 1.4;
  }

  .sm\:text-heading-sm{
    font-size: 1.25rem;
    line-height: 1.3;
  }

  .sm\:text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .sm\:text-xl{
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 768px){

  .md\:absolute{
    position: absolute;
  }

  .md\:inset-x-auto{
    left: auto;
    right: auto;
  }

  .md\:left-0{
    left: 0px;
  }

  .md\:right-auto{
    right: auto;
  }

  .md\:top-full{
    top: 100%;
  }

  .md\:col-span-2{
    grid-column: span 2 / span 2;
  }

  .md\:col-span-4{
    grid-column: span 4 / span 4;
  }

  .md\:ml-auto{
    margin-left: auto;
  }

  .md\:block{
    display: block;
  }

  .md\:inline{
    display: inline;
  }

  .md\:flex{
    display: flex;
  }

  .md\:hidden{
    display: none;
  }

  .md\:max-h-\[360px\]{
    max-height: 360px;
  }

  .md\:w-80{
    width: 20rem;
  }

  .md\:w-96{
    width: 24rem;
  }

  .md\:w-\[400px\]{
    width: 400px;
  }

  .md\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .md\:grid-cols-6{
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .md\:flex-row{
    flex-direction: row;
  }

  .md\:items-center{
    align-items: center;
  }
}

@media (min-width: 1024px){

  .lg\:sticky{
    position: sticky;
  }

  .lg\:left-56{
    left: 14rem;
  }

  .lg\:left-\[52px\]{
    left: 52px;
  }

  .lg\:top-4{
    top: 16px;
  }

  .lg\:col-span-2{
    grid-column: span 2 / span 2;
  }

  .lg\:col-span-3{
    grid-column: span 3 / span 3;
  }

  .lg\:ml-56{
    margin-left: 14rem;
  }

  .lg\:ml-\[52px\]{
    margin-left: 52px;
  }

  .lg\:flex{
    display: flex;
  }

  .lg\:hidden{
    display: none;
  }

  .lg\:w-64{
    width: 16rem;
  }

  .lg\:w-\[260px\]{
    width: 260px;
  }

  .lg\:w-auto{
    width: auto;
  }

  .lg\:min-w-\[700px\]{
    min-width: 700px;
  }

  .lg\:translate-x-0{
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .lg\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-5{
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .lg\:grid-cols-6{
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[1fr_320px\]{
    grid-template-columns: 1fr 320px;
  }

  .lg\:grid-cols-\[320px_1fr\]{
    grid-template-columns: 320px 1fr;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_minmax\(0\2c 300px\)\]{
    grid-template-columns: minmax(0,1fr) minmax(0,300px);
  }

  .lg\:flex-row{
    flex-direction: row;
  }

  .lg\:items-center{
    align-items: center;
  }

  .lg\:border-l{
    border-left-width: 1px;
  }

  .lg\:border-r{
    border-right-width: 1px;
  }

  .lg\:border-border{
    border-color: var(--border);
  }

  .lg\:border-white\/20{
    border-color: rgb(255 255 255 / 0.2);
  }

  .lg\:p-8{
    padding: 32px;
  }

  .lg\:px-5{
    padding-left: 20px;
    padding-right: 20px;
  }

  .lg\:px-6{
    padding-left: 24px;
    padding-right: 24px;
  }

  .lg\:py-0{
    padding-top: 0px;
    padding-bottom: 0px;
  }

  .lg\:pl-3{
    padding-left: 12px;
  }

  .lg\:first\:pl-0:first-child{
    padding-left: 0px;
  }

  .lg\:last\:border-r-0:last-child{
    border-right-width: 0px;
  }

  .lg\:last\:pr-0:last-child{
    padding-right: 0px;
  }
}

@media (min-width: 1280px){

  .xl\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .xl\:p-14{
    padding: 3.5rem;
  }

  .xl\:text-heading-xl{
    font-size: 2.5rem;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }
}

.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){
  padding-right: 0px;
}

.\[\&_a\]\:text-violet a{
  color: var(--violet);
}

.\[\&_a\]\:underline a{
  text-decoration-line: underline;
}

.\[\&_img\]\:max-w-full img{
  max-width: 100%;
}

.\[\&_svg\]\:pointer-events-none svg{
  pointer-events: none;
}

.\[\&_svg\]\:shrink-0 svg{
  flex-shrink: 0;
}

.\[\&_svg\]\:\!text-white svg{
  --tw-text-opacity: 1 !important;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
}

.\[\&_svg\]\:text-black svg{
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.\[\&_svg\]\:text-white svg{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.dark\:\[\&_svg\]\:text-white svg:is([data-theme="dark"] *){
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

tr:hover .\[tr\:hover_\&\]\:opacity-100{
  opacity: 1;
}
/**
 * Styles for frozen/sticky columns and headers in EnhancedTable
 * 
 * This stylesheet provides styling for:
 * - Sticky table headers that remain visible during vertical scrolling
 * - Frozen columns that remain visible during horizontal scrolling
 * - Shadow effects to indicate frozen column boundaries
 * - Proper z-index layering for frozen headers and body cells
 * - Background color handling for frozen cells
 */

/* Base sticky header styling */
.table-container {
  overflow: auto;
  overflow-x: auto;
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Sticky table header base */
.sticky-header {
  /* Headers remain at top during vertical scroll */
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: var(--cream);
}

/**
 * Frozen column cells (both header and body)
 * position: sticky with left offset enables horizontal freeze
 */
.frozen-header-cell,
.frozen-body-cell {
  background-color: var(--cream); /* Prevent transparency overlap */
  position: sticky; /* This is also set inline, but CSS provides fallback */
}

/* Frozen body cells with specific styling */
.frozen-body-cell {
  background-color: var(--bg-card);
  z-index: 9; /* Below frozen headers */
}

/**
 * Last frozen column - adds visual separator/shadow
 * Indicates the boundary between frozen and scrollable content
 */
.frozen-last-cell {
  /* box-shadow: 
    inset -12px 0 8px -10px rgba(0, 0, 0, 0.15);
  position: relative; */
}

/**
 * Frozen header cells (higher z-index than body frozen cells)
 * Ensures headers appear above body content when scrolling
 */
.sticky-header .frozen-header-cell {
  background-color: var(--cream);
  z-index: 20; /* Higher than frozen body cells */
}

/**
 * Last frozen column in header row
 */
.sticky-header .frozen-last-cell {
  /* box-shadow: 
    inset -12px 0 8px -10px rgba(0, 0, 0, 0.15); */
}

/**
 * Enhanced table wrapper
 */
.enhancedTable {
  width: 100%;
  border-collapse: collapse;
}

/**
 * Column resize handle styling
 */
.column-resize-handle {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  cursor: col-resize;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  transition: background-color 0.2s;
}

.column-resize-handle:hover,
.column-resize-handle:active {
  background-color: #c72030;
}

/**
 * Table cell overflow handling
 * Prevents content from overlapping frozen columns
 */
table td,
table th {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/**
 * Horizontal scroll container styling
 */
.table-container {
  /* Smooth scrolling for better UX */
  scroll-behavior: smooth;
}

/**
 * Responsive adjustments
 */
@media (max-width: 768px) {
  .frozen-body-cell,
  .frozen-header-cell {
    /* On smaller screens, consider reducing shadow */
    box-shadow: none;
  }

  .frozen-last-cell {
    box-shadow: inset -8px 0 6px -6px rgba(0, 0, 0, 0.1);
  }
}

/**
 * Performance optimization: reduce paint areas
 * Use will-change judiciously
 */
.frozen-header-cell[data-frozen="true"],
.frozen-body-cell[data-frozen="true"] {
  /* Hint to browser for optimization (use sparingly) */
  /* will-change: left; */
}

/**
 * Print styles - ensure frozen columns print correctly
 */
@media print {
  .sticky-header {
    position: static;
    top: auto;
  }

  .frozen-header-cell,
  .frozen-body-cell {
    position: static;
    left: auto;
    box-shadow: none;
  }

  .frozen-last-cell {
    box-shadow: none;
    border-right: 1px solid #ddd;
  }
}
:root{
  --terra:#DA7756;--terra-h:rgba(218,119,86,.1);--terra-b:rgba(218,119,86,.25);
  --bg:#fcfcfb--dark:#2C2C2C;--white:#fff;
  --sage:#798C5E;--sage-h:rgba(121,140,94,.1);
  --blue:#6B9BCC;--lav:#CECBF6;--teal:#9EC8BA;
  --ok:#108C72;--ok-bg:rgba(16,140,114,.1);
  --warn:#EDC488;--warn-bg:rgba(237,196,136,.15);--warn-dark:#8B6914;
  --err:#E7848E;--err-bg:rgba(231,132,142,.12);--err-dark:#C0303D;
  --border:#C4B89D;--div:#D8D4CC;
  --r4:4px;--r6:6px;--r8:8px;--r10:10px;--r12:12px;--r100:100px;
  --shadow:0 1px 4px rgba(0,0,0,.07);--shadow-md:0 4px 16px rgba(0,0,0,.1);--shadow-lg:0 8px 32px rgba(0,0,0,.14);
}
/* *{} and body{} intentionally omitted to avoid CRM layout conflicts */

/* ══ CRM TOP NAV ══ */
.crm-nav{height:48px;background:var(--white);border-bottom:1px solid var(--div);display:flex;align-items:center;padding:0 20px;gap:14px;flex-shrink:0;z-index:100}
.crm-logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0}
.crm-logo-mark{width:28px;height:28px;background:var(--terra);border-radius:7px;display:flex;align-items:center;justify-content:center}
.crm-logo-mark svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:2.5}
.crm-logo-text{font-size:13px;font-weight:700;color:var(--dark)}
.crm-logo-sub{font-size:8px;color:var(--sage);font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.crm-nav-mid{flex:1;display:flex;justify-content:center}
.crm-search{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r100);padding:5px 14px;width:240px}
.crm-search input{border:none;background:none;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;width:100%}
.crm-search input::-moz-placeholder{color:var(--sage)}
.crm-search input::placeholder{color:var(--sage)}
.crm-search-icon{font-size:11px;color:var(--sage)}
.crm-nav-right{display:flex;align-items:center;gap:6px}
.crm-badge{font-size:9px;font-weight:600;background:#EDC48820;color:var(--warn-dark);border:1px solid #EDC48844;border-radius:var(--r100);padding:2px 8px}
.nav-avatar{width:26px;height:26px;border-radius:50%;background:var(--terra);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;cursor:pointer;flex-shrink:0}
.nav-icon{width:26px;height:26px;border-radius:50%;border:1px solid var(--div);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;color:var(--sage)}

/* ══ MAIN LAYOUT ══ */
.main-layout{flex:1;display:flex;overflow:hidden}

/* ══ CRM SIDEBAR ══ */
.crm-sb{width:200px;flex-shrink:0;background:var(--white);border-right:1px solid var(--div);display:flex;flex-direction:column;overflow:hidden;transition:width .2s}
.crm-sb.bi-hidden{display:none!important}
.crm-sb-brand{padding:14px 14px 10px;border-bottom:1px solid var(--div)}
.crm-sb-brand-name{font-size:11px;font-weight:700;color:var(--dark)}
.crm-sb-brand-sub{font-size:9px;color:var(--sage);text-transform:uppercase;letter-spacing:.06em}
.crm-sb-scroll{flex:1;overflow-y:auto;padding:8px 0}
.crm-sb-scroll::-webkit-scrollbar{width:0}
.crm-sb-section{margin-bottom:4px}
.crm-sb-section-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);padding:6px 14px 3px}
.crm-sb-item{display:flex;align-items:center;gap:8px;padding:6px 14px;cursor:pointer;font-size:11px;color:#4A4A4A;transition:all .1s;border-left:2px solid transparent;position:relative}
.crm-sb-item:hover{background:var(--bg);color:var(--dark)}
.crm-sb-item.active{background:var(--terra-h);color:var(--terra);font-weight:600;border-left-color:var(--terra)}
.crm-sb-item-icon{font-size:12px;flex-shrink:0;width:16px;text-align:center}
.crm-sb-item-label{flex:1}
.crm-sb-item-badge{font-size:8px;font-weight:700;padding:1px 5px;border-radius:var(--r100);background:var(--terra);color:#fff;flex-shrink:0}
/* BI expand arrow */
.crm-sb-item-arrow{font-size:9px;color:var(--sage);transition:transform .2s;padding:2px 4px;border-radius:3px;flex-shrink:0}
.crm-sb-item-arrow:hover{background:var(--bg);color:var(--dark)}
.crm-sb-item-arrow.open{transform:rotate(90deg)}
/* BI subtree */
.bi-subtree{display:none;padding:2px 0}
.bi-subtree.open{display:block}
.bi-subtree-section{margin-bottom:2px}
.bi-subtree-hd{display:flex;align-items:center;gap:5px;padding:4px 14px 3px 28px;cursor:pointer}
.bi-subtree-hd:hover .bi-subtree-label{color:var(--dark)}
.bi-subtree-chev{font-size:8px;color:var(--sage);transition:transform .18s}
.bi-subtree-chev.o{transform:rotate(90deg)}
.bi-subtree-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage)}
.bi-subtree-items{display:none}
.bi-subtree-items.o{display:block}
.bi-subtree-item{display:flex;align-items:center;justify-content:space-between;padding:4px 14px 4px 34px;cursor:pointer;font-size:11px;color:#4A4A4A;transition:all .1s;border-left:2px solid transparent}
.bi-subtree-item:hover{background:var(--bg);color:var(--dark)}
.bi-subtree-item.active{background:var(--terra-h);color:var(--terra);font-weight:600;border-left-color:var(--terra)}
.bi-subtree-item-cnt{font-size:9px;color:var(--sage);background:var(--bg);border:1px solid var(--div);border-radius:var(--r100);padding:0 5px}
.crm-sb-divider{height:1px;background:var(--div);margin:6px 10px}

/* ══ BI WORKSPACE ══ */
.bi-workspace{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;position:relative}

/* ── BI toolbar ── */
.bi-toolbar{height:42px;background:var(--white);border-bottom:1px solid var(--div);display:flex;align-items:center;padding:0 14px;gap:8px;flex-shrink:0}
.bi-tb-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.bi-tb-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.bi-source-dd{display:flex;align-items:center;gap:5px;padding:4px 10px 4px 8px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);cursor:pointer;font-size:11px;font-weight:600;color:var(--dark);transition:all .1s;position:relative}
.bi-source-dd:hover{border-color:var(--terra)}
.bi-source-dd select{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.bi-source-ico{font-size:12px}
.bi-source-label{font-weight:600;color:var(--dark)}
.bi-source-arr{font-size:9px;color:var(--sage)}
.bi-tb-sep{width:1px;height:16px;background:var(--div);flex-shrink:0}
.bi-tb-btn{height:26px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;border:1px solid var(--div);background:var(--white);color:var(--dark);transition:all .1s;display:flex;align-items:center;gap:4px;white-space:nowrap}
.bi-tb-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.bi-tb-btn.active{background:var(--terra-h);border-color:var(--terra-b);color:var(--terra)}
.bi-tb-btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.bi-tb-btn.primary:hover{background:#C86B44}
.bi-tb-search{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);padding:4px 10px;height:26px}
.bi-tb-search input{border:none;background:none;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;width:160px}
.bi-tb-search input::-moz-placeholder{color:var(--sage)}
.bi-tb-search input::placeholder{color:var(--sage)}
/* row height / zoom control */
.zoom-ctrl{display:flex;align-items:center;gap:0;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);overflow:hidden;height:26px}
.zoom-btn{width:24px;height:100%;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:600;color:var(--sage);transition:all .1s;display:flex;align-items:center;justify-content:center;line-height:1}
.zoom-btn:hover{background:var(--terra-h);color:var(--terra)}
.zoom-btn:disabled{opacity:.25;cursor:not-allowed}
.zoom-btn:disabled:hover{background:transparent;color:var(--sage)}
.zoom-pct{font-size:10px;font-weight:600;color:var(--dark);min-width:38px;text-align:center;border-left:1px solid var(--div);border-right:1px solid var(--div);height:100%;display:flex;align-items:center;justify-content:center;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}
/* zoom level classes */
.bi-tbl.bi-tbl.zoom-75 td{padding:1px 6px!important;font-size:10px!important;height:18px!important}
.bi-tbl.bi-tbl.zoom-75 th{font-size:9px!important}.bi-tbl.zoom-75 th .bi-col-name{font-size:8px!important}
.bi-tbl.bi-tbl.zoom-100 td{padding:3px 8px!important;font-size:12px!important;height:22px!important}
.bi-tbl.bi-tbl.zoom-125 td{padding:6px 10px!important;font-size:13px!important;height:28px!important}
.bi-tbl.bi-tbl.zoom-125 th{font-size:12px!important}.bi-tbl.zoom-125 th .bi-col-name{font-size:11px!important}
.bi-tbl.bi-tbl.zoom-150 td{padding:10px 12px!important;font-size:14px!important;height:34px!important}
.bi-tbl.bi-tbl.zoom-150 th{font-size:13px!important}.bi-tbl.zoom-150 th .bi-col-name{font-size:12px!important}

/* ── active filter chips ── */
.bi-filter-row{display:flex;align-items:center;gap:6px;padding:5px 14px;background:var(--bg);border-bottom:1px solid var(--div);flex-shrink:0;flex-wrap:wrap;min-height:32px}
.bi-filter-row:empty{display:none}
.bi-fc{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--terra-h);border:1px solid var(--terra-b);border-radius:var(--r100);font-size:10px;font-weight:600;color:var(--terra)}
.bi-fc-x{cursor:pointer;opacity:.55;margin-left:2px}
.bi-fc-x:hover{opacity:1}

/* ── stats strip ── */
.bi-stats-strip{display:flex;align-items:center;gap:16px;padding:4px 14px;background:var(--white);border-bottom:1px solid var(--div);flex-shrink:0}
.bi-stat{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--sage)}
.bi-stat b{font-weight:700;color:var(--dark)}

/* ══ GRID + RIGHT PANEL LAYOUT ══ */
.bi-content{flex:1;display:flex;overflow:hidden}

/* ── DATA GRID ── */
.bi-grid-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.bi-grid-scroll{flex:1;overflow:auto}
.bi-grid-scroll::-webkit-scrollbar{width:6px;height:6px}
.bi-grid-scroll::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}
.bi-grid-scroll::-webkit-scrollbar-thumb:hover{background:var(--border)}
.bi-tbl{border-collapse:collapse;width:-moz-max-content;width:max-content;min-width:100%;font-size:11px}
.bi-tbl th{position:sticky;top:0;background:#EDEBE3;border-bottom:2px solid var(--border);border-right:1px solid var(--div);padding:0;z-index:3;min-width:130px;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bi-tbl th.sorted .bi-col-name{color:var(--terra)}
.bi-tbl th.sorted .bi-sort-btn{opacity:1;color:var(--terra)}
.bi-th-inner{display:flex;align-items:center;gap:0;padding:6px 0 6px 10px;cursor:pointer;white-space:nowrap;position:relative}
.bi-th-inner:hover{background:rgba(0,0,0,.03)}
.bi-col-type{font-size:8px;color:var(--sage);opacity:.7;font-weight:700;background:rgba(0,0,0,.07);padding:1px 3px;border-radius:2px;margin-right:4px;flex-shrink:0;font-style:normal}
.bi-col-name{font-size:9px;font-weight:700;color:var(--sage);text-transform:uppercase;letter-spacing:.05em;flex:1}
.bi-sort-btn{font-size:8px;color:var(--sage);opacity:.25;padding:0 4px;transition:opacity .1s}
.bi-th-inner:hover .bi-sort-btn{opacity:.7}
.bi-col-filter-btn{width:18px;height:100%;display:flex;align-items:center;justify-content:center;font-size:9px;color:transparent;cursor:pointer;flex-shrink:0;border-left:1px solid transparent;transition:all .1s}
.bi-th-inner:hover .bi-col-filter-btn{color:var(--sage);border-left-color:var(--div)}
.bi-col-filter-btn.active{color:var(--terra)!important;border-left-color:var(--terra-b)!important}
.bi-tbl th.hidden-col,.bi-tbl td.hidden-col{display:none}
.bi-tbl td{padding:6px 10px;border-bottom:1px solid var(--div);border-right:1px solid rgba(0,0,0,.03);vertical-align:middle;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--dark);transition:background .05s}
.bi-tbl tr:hover td{background:rgba(218,119,86,.03)}
.bi-tbl tr.selected-row td{background:rgba(218,119,86,.07)!important}
/* cell badges */
.cbdg{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r100);white-space:nowrap}
.c-won{background:var(--ok-bg);color:var(--ok)}
.c-lost{background:var(--err-bg);color:var(--err-dark)}
.c-prog{background:#EDC48822;color:var(--warn-dark)}
.c-qual{background:rgba(107,155,204,.12);color:#2D5F8A}
.c-neut{background:var(--bg);color:#4A4A4A;border:1px solid var(--div)}
.c-num{font-variant-numeric:tabular-nums;font-weight:600}
/* sheet tabs — Google Sheets style */
.bi-sheet-tabs{display:flex;align-items:stretch;background:#F1EEE8;border-top:1px solid var(--div);flex-shrink:0;height:32px;overflow-x:auto;gap:0}
.bi-sheet-tabs::-webkit-scrollbar{height:0}
.bi-sheet-tab{display:flex;align-items:center;gap:6px;padding:0 12px;font-size:11px;font-weight:500;color:var(--sage);cursor:pointer;border-right:1px solid var(--div);border-top:2px solid transparent;transition:all .1s;white-space:nowrap;flex-shrink:0;min-width:80px;max-width:160px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bi-sheet-tab:hover{background:#E9E5DE;color:var(--dark)}
.bi-sheet-tab.active{background:var(--white);color:var(--terra);font-weight:600;border-top-color:var(--terra);border-right-color:var(--div)}
.bi-sheet-tab.pivot-tab{color:var(--sage)}
.bi-sheet-tab.pivot-tab.active{color:#6B5EA8;border-top-color:#6B5EA8}
.bi-sheet-tab .tab-name{flex:1;overflow:hidden;text-overflow:ellipsis}
.bi-sheet-tab .tab-icon{font-size:11px;flex-shrink:0;opacity:.7}
.bi-sheet-tab.active .tab-icon{opacity:1}
/* inline rename input */
.bi-sheet-tab input.tab-rename{border:none;background:transparent;font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;color:var(--terra);outline:1px solid var(--terra);border-radius:2px;width:100%;padding:0 2px}
/* add sheet button */
.bi-sheet-tab-add{display:flex;align-items:center;justify-content:center;width:30px;height:100%;font-size:18px;color:var(--sage);cursor:pointer;border-right:1px solid var(--div);transition:all .1s;flex-shrink:0;font-weight:400}
.bi-sheet-tab-add:hover{background:#E9E5DE;color:var(--terra)}

/* ── grid footer ── */
.bi-grid-footer{display:flex;align-items:center;justify-content:space-between;padding:5px 14px;border-top:1px solid var(--div);background:var(--white);flex-shrink:0}
.bi-footer-stats{display:flex;align-items:center;gap:14px;font-size:10px;color:var(--sage)}
.bi-footer-stat b{font-weight:700;color:var(--dark)}
.bi-pgs{display:flex;align-items:center;gap:3px}
.pg-btn{height:22px;min-width:22px;padding:0 5px;border-radius:4px;border:1px solid var(--div);background:var(--white);font-family:'Poppins',sans-serif;font-size:10px;font-weight:500;color:var(--dark);cursor:pointer;transition:all .1s}
.pg-btn:hover{border-color:var(--terra);color:var(--terra)}
.pg-btn.a{background:var(--terra);color:#fff;border-color:var(--terra)}
.pg-btn:disabled{opacity:.3;cursor:not-allowed}

/* ══ RIGHT PANEL ══ */
.bi-right-panel{width:280px;flex-shrink:0;background:var(--white);border-left:1px solid var(--div);display:flex;flex-direction:column;overflow:hidden;transition:width .2s}
.bi-right-panel.collapsed{width:0;border:none}
.bi-rp-tabs{display:flex;border-bottom:1px solid var(--div);flex-shrink:0}
.bi-rp-tab{flex:1;padding:9px 4px;text-align:center;font-size:10px;font-weight:600;color:var(--sage);cursor:pointer;border-bottom:2px solid transparent;transition:all .1s}
.bi-rp-tab:hover{color:var(--dark)}
.bi-rp-tab.active{color:var(--terra);border-bottom-color:var(--terra)}
.bi-rp-body{flex:1;overflow-y:auto;padding:12px}
.bi-rp-body::-webkit-scrollbar{width:4px}
.bi-rp-body::-webkit-scrollbar-thumb{background:var(--div);border-radius:2px}
.bi-rp-section{margin-bottom:14px}
.bi-rp-section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
/* chart type grid */
.chart-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.chart-type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;transition:all .1s;background:var(--bg)}
.chart-type-btn:hover{border-color:var(--terra);background:var(--terra-h)}
.chart-type-btn.active{border-color:var(--terra);background:var(--terra-h);color:var(--terra)}
.chart-type-btn .ct-ico{font-size:18px}
.chart-type-btn .ct-label{font-size:9px;font-weight:600;color:var(--dark)}
.chart-type-btn.active .ct-label{color:var(--terra)}
/* axis selects */
.bi-rp-select{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;cursor:pointer;transition:border-color .1s}
.bi-rp-select:focus{border-color:var(--terra)}
/* colour swatches */
.colour-swatches{display:flex;gap:5px;flex-wrap:wrap}
.colour-swatch{width:22px;height:22px;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:all .1s}
.colour-swatch:hover,.colour-swatch.active{border-color:var(--dark);transform:scale(1.1)}
/* chart preview */
.bi-chart-preview{background:var(--bg);border:1px solid var(--div);border-radius:var(--r8);padding:10px;margin-bottom:10px}
.bi-chart-preview-empty{height:240px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--sage);text-align:center;line-height:1.5}
/* add to dashboard */
.bi-rp-footer{padding:10px 12px;border-top:1px solid var(--div);flex-shrink:0;display:flex;flex-direction:column;gap:6px}
.bi-rp-footer-btn{width:100%;padding:7px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center;gap:5px}
.bi-rp-footer-btn.primary{background:var(--terra);border:none;color:#fff}
.bi-rp-footer-btn.primary:hover{background:#C86B44}
.bi-rp-footer-btn.secondary{background:var(--white);border:1px solid var(--border);color:var(--dark)}
.bi-rp-footer-btn.secondary:hover{border-color:var(--terra);color:var(--terra)}
/* pivot builder */
.pivot-zone{background:var(--bg);border:1px dashed var(--border);border-radius:var(--r8);min-height:36px;padding:5px 8px;display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start;margin-top:4px}
.pivot-field{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--white);border:1px solid var(--border);border-radius:var(--r100);font-size:10px;font-weight:600;color:var(--dark);cursor:pointer}
.pivot-field-x{font-size:9px;opacity:.5;cursor:pointer}
.pivot-field-x:hover{opacity:1;color:var(--err)}
.pivot-field-add{font-size:10px;color:var(--sage);cursor:pointer;padding:2px 6px;border:1px dashed var(--div);border-radius:var(--r100);transition:all .1s}
.pivot-field-add:hover{color:var(--terra);border-color:var(--terra)}
/* summary tab */
.summary-col-card{background:var(--bg);border:1px solid var(--div);border-radius:var(--r8);padding:10px;margin-bottom:8px}
.summary-col-name{font-size:10px;font-weight:700;color:var(--dark);margin-bottom:6px;display:flex;align-items:center;gap:5px}
.summary-col-type-badge{font-size:8px;font-weight:600;padding:1px 5px;border-radius:var(--r100);background:var(--lav);color:#4A3A8A}
.summary-stat-row{display:flex;justify-content:space-between;font-size:10px;color:var(--sage);padding:2px 0;border-bottom:1px solid rgba(0,0,0,.04)}
.summary-stat-row:last-child{border:none}
.summary-stat-val{font-weight:600;color:var(--dark)}

/* ══════════════════════════════════════════════════════════
   KPI WIDGET — base
══════════════════════════════════════════════════════════ */
.kpi-widget{background:var(--white);border:1px solid var(--border);border-radius:var(--r12);padding:0;overflow:hidden}
.kpi-widget-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--div);cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.kpi-widget-body{padding:16px 14px 14px}
.kpi-widget-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
.kpi-widget-val{font-size:28px;font-weight:700;color:var(--dark);line-height:1;margin-bottom:4px}
.kpi-widget-sub{font-size:10px;color:var(--sage)}
.kpi-widget-trend{font-size:11px;font-weight:600;margin-top:6px}
.kpi-widget-bar{height:3px;border-radius:0 0 var(--r12) var(--r12);margin-top:8px}

/* ══════════════════════════════════════════════════════════
   DASHBOARD SHELL — full-screen overlay
══════════════════════════════════════════════════════════ */
.bi-dashboard{display:none;flex-direction:column;background:var(--bg);position:absolute;inset:0;z-index:10;overflow:hidden}
.bi-dashboard.active{display:flex}

/* ── DASHBOARD TOOLBAR (replaces old bi-dash-header) ── */
.dash-toolbar{
  height:48px;flex-shrink:0;
  background:var(--white);
  border-bottom:1px solid var(--div);
  display:flex;align-items:center;
  padding:0 16px;gap:8px;
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.dash-tb-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.dash-tb-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.dash-tb-sep{width:1px;height:18px;background:var(--div);flex-shrink:0}

/* Dashboard title in toolbar */
.dash-tb-title{
  font-size:14px;font-weight:700;color:var(--dark);
  cursor:text;border:1px solid transparent;
  border-radius:var(--r6);padding:2px 6px;
  transition:border-color .1s;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis
}
.dash-tb-title:hover{border-color:var(--div)}
.dash-tb-title:focus{border-color:var(--terra);outline:none;background:var(--white)}

/* Refresh indicator in toolbar */
.dash-refresh-bar{display:flex;align-items:center;gap:6px;flex-shrink:0}
.dash-live-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--ok);display:inline-block;flex-shrink:0;
}
.dash-live-dot.refreshing{background:var(--warn);animation:blink .5s linear infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.dash-refresh-label{font-size:10px;color:var(--sage);white-space:nowrap}
.dash-refresh-btn{
  height:24px;padding:0 9px;
  border-radius:var(--r100);
  font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;
  cursor:pointer;border:1px solid var(--div);
  background:var(--white);color:var(--sage);
  transition:all .12s;display:flex;align-items:center;gap:4px
}
.dash-refresh-btn:hover{background:var(--terra);border-color:var(--terra);color:#fff}
.dash-refresh-btn:disabled{opacity:.4;cursor:not-allowed}

/* Toolbar action buttons */
.dash-tb-btn{
  height:28px;padding:0 11px;
  border-radius:var(--r6);
  font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;
  cursor:pointer;border:1px solid var(--div);
  background:var(--white);color:var(--dark);
  transition:all .1s;display:flex;align-items:center;gap:5px;white-space:nowrap
}
.dash-tb-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.dash-tb-btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.dash-tb-btn.primary:hover{background:#C86B44}
.dash-tb-btn.active{background:var(--terra-h);border-color:var(--terra-b);color:var(--terra)}

/* Edit mode badge */
.dash-mode-badge{
  display:flex;align-items:center;gap:5px;
  height:24px;padding:0 10px;
  border-radius:var(--r100);
  font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.dash-mode-badge.view{background:var(--ok-bg);color:var(--ok);border:1px solid rgba(16,140,114,.2)}
.dash-mode-badge.edit{background:#EDC48820;color:var(--warn-dark);border:1px solid #EDC48860}

/* ── DASHBOARD BODY (below toolbar) ── */
.dash-body{flex:1;display:flex;flex-direction:column;overflow:hidden}

/* ── KPI STRIP — dedicated horizontal KPI row ── */
.kpi-strip{
  flex-shrink:0;
  background:var(--white);
  border-bottom:1px solid var(--div);
  padding:10px 16px;
  display:flex;align-items:stretch;gap:10px;
  overflow-x:auto;min-height:0;
}
.kpi-strip:empty{display:none}
.kpi-strip::-webkit-scrollbar{height:4px}
.kpi-strip::-webkit-scrollbar-thumb{background:var(--div);border-radius:2px}
/* KPI cards in strip — fixed dimensions, no absolute positioning */
.kpi-strip .dash-widget{
  position:relative!important;
  left:auto!important;top:auto!important;
  width:180px!important;min-width:160px;max-width:220px;
  height:auto!important;min-height:100px;
  flex-shrink:0;
}
.kpi-strip.edit-mode .dash-widget{cursor:grab}
.kpi-strip.edit-mode .dash-widget:active{cursor:grabbing}

/* ── CHART CANVAS AREA ── */
.dash-canvas-area{
  flex:1;overflow:auto;
  padding:16px;
  background:var(--bg);
}
.dash-canvas-area::-webkit-scrollbar{width:6px;height:6px}
.dash-canvas-area::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}

/* ── GRID SYSTEM (12-column) ── */
.dash-canvas{
  position:relative;
  /* Grid lines shown in edit mode */
}
.dash-canvas.edit-mode::before{
  content:'';
  position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(to right, rgba(218,119,86,.06) 0, rgba(218,119,86,.06) 1px, transparent 1px, transparent calc(100%/12));
  pointer-events:none;z-index:0;
}

/* ── GRID SNAP CONSTANTS ── */
/* CELL_W and CELL_H defined in JS via CSS vars */
.dash-canvas{
  --grid-cols:12;
  --grid-gap:10px;
  --cell-h:80px;
}

/* ── CHART WIDGETS (absolute, grid-snapped) ── */
.dash-widget{
  position:absolute;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r12);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:box-shadow .15s;
  z-index:1;
}
.dash-widget:hover{box-shadow:var(--shadow-md)}
.dash-widget.dragging{
  box-shadow:var(--shadow-lg);
  opacity:.9;z-index:200;
  border-color:var(--terra);
  border-style:dashed;
}
.dash-widget.resizing{box-shadow:var(--shadow-lg);z-index:200;border-color:var(--blue)}

/* Locked state — no pointer interactions on drag handle */
.bi-dashboard:not(.edit-mode) .dash-widget .dash-widget-header{cursor:default}
.bi-dashboard.edit-mode .dash-widget .dash-widget-header{cursor:grab}
.bi-dashboard.edit-mode .dash-widget .dash-widget-header:active{cursor:grabbing}

/* Widget resize handle — bottom-right corner */
.dash-widget-resize{
  position:absolute;bottom:2px;right:2px;
  width:12px;height:12px;
  cursor:se-resize;
  opacity:0;transition:opacity .15s;
  display:flex;align-items:center;justify-content:center;
  z-index:10;
}
.bi-dashboard.edit-mode .dash-widget:hover .dash-widget-resize{opacity:1}
.dash-widget-resize svg{width:10px;height:10px;stroke:var(--terra);opacity:.7}

/* Widget header & actions */
.dash-widget-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 12px;
  border-bottom:1px solid var(--div);
  background:#FAFAF8;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.dash-widget-title{font-size:11px;font-weight:700;color:var(--dark);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-widget-acts{display:flex;gap:3px;flex-shrink:0}
.dash-widget-btn{
  width:22px;height:22px;border-radius:4px;
  border:1px solid var(--div);background:var(--white);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--sage);transition:all .1s
}
.dash-widget-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.dash-widget-body{padding:10px;height:calc(100% - 37px);overflow:hidden;position:relative}

/* Hide edit controls in view mode */
.bi-dashboard:not(.edit-mode) .dash-widget-acts .edit-only{display:none!important}
.bi-dashboard.edit-mode .dash-widget-acts .edit-only{display:flex!important}
/* Toolbar edit-only — hidden by default (view mode is default) */
.bi-dashboard:not(.edit-mode) .dash-toolbar .edit-only,
.bi-dashboard:not(.edit-mode) .dash-tb-sep.edit-only{display:none!important}
.bi-dashboard.edit-mode .dash-toolbar .edit-only{display:flex!important}
.bi-dashboard.edit-mode .dash-tb-sep.edit-only{display:block!important}
/* Widget resize handle — only visible in edit mode on hover */
.bi-dashboard:not(.edit-mode) .dash-widget-resize{display:none!important}

/* ── EMPTY STATE ── */
.dash-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:360px;color:var(--sage);text-align:center;gap:12px;
  border:2px dashed var(--div);border-radius:var(--r12);
  padding:40px 24px;
}
.dash-empty-ico{font-size:40px;opacity:.3}
.dash-empty-title{font-size:14px;font-weight:600;color:var(--dark)}
.dash-empty-sub{font-size:12px;line-height:1.6;max-width:320px}

/* ── PIVOT CHART WIDGET TYPE ── */
.pivot-chart-badge{
  font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  background:rgba(206,203,246,.25);color:#4A3A8A;
  border:1px solid rgba(206,203,246,.5);
  border-radius:3px;padding:1px 5px;margin-left:5px;flex-shrink:0;
}

/* ── WIDGET REFRESH FLASH ── */
.dash-widget.widget-refreshing{animation:widgetFlash .4s ease}
@keyframes widgetFlash{0%,100%{opacity:1}50%{opacity:.55}}

/* ── LEGACY compat: bi-dash-header points to dash-toolbar ── */
.bi-dash-header{display:none!important}

/* Old floating add-chart button — removed */
.dash-add-btn-float{display:none!important}

/* ══ EMPTY STATE (no data loaded) ══ */
.bi-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px}
.bi-es-ico{font-size:44px;opacity:.3}
.bi-es-title{font-size:16px;font-weight:700;color:var(--dark)}
.bi-es-sub{font-size:12px;color:var(--sage);text-align:center;max-width:360px;line-height:1.6}
.bi-es-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.bi-es-btn{height:36px;padding:0 18px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;display:flex;align-items:center;gap:6px}
.bi-es-btn.primary{background:var(--terra);border:none;color:#fff}
.bi-es-btn.primary:hover{background:#C86B44}
.bi-es-btn.secondary{background:var(--white);border:1px solid var(--border);color:var(--dark)}
.bi-es-btn.secondary:hover{border-color:var(--terra);color:var(--terra)}
/* upload drop zone */
.bi-upload-zone{border:2px dashed var(--border);border-radius:var(--r12);padding:28px;text-align:center;cursor:pointer;transition:all .15s;max-width:400px;width:100%}
.bi-upload-zone:hover,.bi-upload-zone.drag-over{border-color:var(--terra);background:var(--terra-h)}
.bi-upload-zone-ico{font-size:28px;margin-bottom:8px;opacity:.5}
.bi-upload-zone-text{font-size:12px;font-weight:600;color:var(--dark);margin-bottom:4px}
.bi-upload-zone-sub{font-size:10px;color:var(--sage)}
#fileInput{display:none}

/* ══ FILTER DROPDOWN ══ */
.filter-dropdown{position:fixed;z-index:500;background:var(--white);border:1px solid var(--border);border-radius:var(--r10);box-shadow:var(--shadow-lg);min-width:220px;max-width:280px;overflow:hidden}
.filter-dd-header{padding:10px 12px;border-bottom:1px solid var(--div);font-size:11px;font-weight:700;color:var(--dark)}
.filter-dd-section{padding:8px 12px;border-bottom:1px solid var(--div)}
.filter-dd-section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:5px}
.filter-sort-btn{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:var(--r6);cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.filter-sort-btn:hover{background:var(--bg);color:var(--terra)}
.filter-dd-search{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);padding:4px 8px;margin-bottom:6px}
.filter-dd-search input{border:none;background:none;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;width:100%}
.filter-dd-values{max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.filter-dd-values::-webkit-scrollbar{width:4px}
.filter-dd-values::-webkit-scrollbar-thumb{background:var(--div);border-radius:2px}
.filter-val-item{display:flex;align-items:center;gap:7px;padding:3px 6px;border-radius:var(--r4);cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.filter-val-item:hover{background:var(--bg)}
.filter-val-item input[type=checkbox]{accent-color:var(--terra);cursor:pointer;width:13px;height:13px}
.filter-dd-footer{padding:8px 12px;display:flex;gap:6px;justify-content:flex-end}
.filter-dd-btn{height:24px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;transition:all .1s}
.filter-dd-btn.apply{background:var(--terra);border:none;color:#fff}
.filter-dd-btn.apply:hover{background:#C86B44}
.filter-cond-sel{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;cursor:pointer;transition:border-color .1s}
.filter-cond-sel:focus{border-color:var(--terra)}
.filter-cond-input{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;transition:border-color .1s}
.filter-cond-input:focus{border-color:var(--terra)}
.filter-cond-preview{font-size:10px;color:var(--ok);font-weight:600;padding:3px 2px;margin-top:2px}
.filter-cond-preview.none{color:var(--sage)}

/* ══ COL VISIBILITY PANEL ══ */
.col-vis-panel{position:fixed;z-index:500;background:var(--white);border:1px solid var(--border);border-radius:var(--r10);box-shadow:var(--shadow-lg);width:200px;overflow:hidden}
.col-vis-header{padding:10px 12px;border-bottom:1px solid var(--div);font-size:11px;font-weight:700;color:var(--dark);display:flex;align-items:center;justify-content:space-between}
.col-vis-list{max-height:240px;overflow-y:auto;padding:6px 0}
.col-vis-item{display:flex;align-items:center;gap:8px;padding:4px 12px;cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.col-vis-item:hover{background:var(--bg)}
.col-vis-item input[type=checkbox]{accent-color:var(--terra);cursor:pointer}
.col-vis-footer{padding:8px 12px;border-top:1px solid var(--div);display:flex;gap:5px}

/* ══ CONTEXT MENU ══ */
.ctx-menu{position:fixed;z-index:600;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:160px;padding:4px 0;overflow:hidden}
.ctx-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.ctx-item:hover{background:var(--terra-h);color:var(--terra)}
.ctx-item.danger:hover{background:var(--err-bg);color:var(--err-dark)}
.ctx-item-icon{font-size:12px;width:14px;text-align:center}
.ctx-divider{height:1px;background:var(--div);margin:3px 0}

/* ══ MODAL ══ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:800;display:none;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--white);border-radius:var(--r12);box-shadow:var(--shadow-lg);width:400px;overflow:hidden}
.modal-header{padding:16px 20px;border-bottom:1px solid var(--div);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:14px;font-weight:700;color:var(--dark)}
.modal-x{width:24px;height:24px;border-radius:var(--r6);border:1px solid var(--div);background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sage);transition:all .1s}
.modal-x:hover{border-color:var(--err);color:var(--err)}
.modal-body{padding:20px}
.modal-label{font-size:11px;font-weight:600;color:var(--dark);margin-bottom:6px;display:block}
.modal-input{width:100%;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);outline:none;transition:border-color .1s;background:var(--bg)}
.modal-input:focus{border-color:var(--terra)}
.modal-select{width:100%;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);outline:none;background:var(--bg);cursor:pointer;margin-top:8px}
.modal-select:focus{border-color:var(--terra)}
.modal-footer{padding:12px 20px;border-top:1px solid var(--div);display:flex;justify-content:flex-end;gap:8px}
.modal-btn{height:32px;padding:0 16px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s}
.modal-btn.cancel{background:var(--white);border:1px solid var(--div);color:var(--dark)}
.modal-btn.cancel:hover{border-color:var(--sage);color:var(--sage)}
.modal-btn.confirm{background:var(--terra);border:none;color:#fff}
.modal-btn.confirm:hover{background:#C86B44}

/* ══ FULLSCREEN CHART ══ */
.fullscreen-chart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:900;display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px}
.fullscreen-chart-overlay.open{display:flex}
.fullscreen-chart-box{background:var(--white);border-radius:var(--r12);padding:24px;width:80vw;max-width:900px;max-height:80vh}
.fullscreen-chart-title{font-size:16px;font-weight:700;color:var(--dark);margin-bottom:16px;text-align:center}
.fullscreen-close{color:rgba(255,255,255,.7);font-size:12px;cursor:pointer;border:1px solid rgba(255,255,255,.2);border-radius:var(--r100);padding:5px 14px;transition:all .1s}
.fullscreen-close:hover{color:#fff;border-color:#fff}

/* ══ TOAST ══ */
.toast{position:fixed;bottom:20px;right:20px;background:var(--dark);color:#fff;padding:9px 16px;border-radius:var(--r8);font-size:11px;font-weight:500;z-index:1000;transform:translateY(60px);opacity:0;transition:all .25s;pointer-events:none;max-width:280px}
.toast.show{transform:translateY(0);opacity:1}

/* ══ COLUMN RESIZE ══ */
.bi-tbl th{/* position kept sticky via original rule */}
.col-resizer{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;z-index:10;background:transparent}
.col-resizer:hover,.col-resizer.resizing{background:var(--terra)}
.bi-tbl th.freeze-line,.bi-tbl td.freeze-line{border-right:2px solid var(--terra)!important}

/* ══ MULTI-SELECT ══ */
/* Checkbox col: 32px, sticky left:0 — left:0 is the only CSS left value; biFixSticky owns all others */
.bi-tbl th.chk-th{width:32px;min-width:32px!important;padding:0 6px;position:sticky;left:0;z-index:6;background:#E5E2DA;text-align:center}
.bi-tbl td.chk-td{width:32px;min-width:32px!important;padding:0 6px;position:sticky;left:0;z-index:2;background:var(--bg);text-align:center}
/* Row num col: left set by biFixSticky() — no CSS left value to avoid conflict */
.bi-tbl th.rn-th{min-width:36px!important;width:36px;position:sticky;z-index:5;background:#E5E2DA}
.bi-tbl td.rn{width:36px;min-width:36px!important;position:sticky;background:var(--bg);border-right:1px solid var(--div);font-size:10px;color:var(--sage);text-align:center;z-index:2;cursor:default;padding:6px 4px}
/* First frozen data col: left set exclusively by biFixSticky() — no CSS left value */
.bi-tbl th.frz{position:sticky;z-index:4;background:#E9E6DE}
.bi-tbl td.frz-td{position:sticky;background:var(--white);border-right:1px solid var(--div);z-index:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bi-tbl tr.selected-row td.chk-td{background:rgba(218,119,86,.1)!important}
.bi-tbl tr:hover td.chk-td{background:#EAE6DC}
.bi-tbl tr:hover td.rn{background:#EAE6DC}
.bi-tbl tr:hover td.frz-td{background:rgba(218,119,86,.05)}
.row-chk{accent-color:var(--terra);cursor:pointer;width:12px;height:12px}
/* bulk action bar */
.bulk-bar{display:none;align-items:center;gap:8px;padding:6px 14px;background:var(--terra);flex-shrink:0}
.bulk-bar.show{display:flex}
.bulk-bar-text{font-size:11px;font-weight:600;color:#fff}
.bulk-btn{height:24px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.15);color:#fff;transition:all .1s}
.bulk-btn:hover{background:rgba(255,255,255,.3)}
.bulk-btn.danger{border-color:rgba(255,255,255,.3);background:rgba(231,132,142,.3)}

/* ══ CELL EXPAND POPOVER ══ */
.cell-popover{position:fixed;z-index:600;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);max-width:320px;padding:12px 14px;font-size:12px;color:var(--dark);line-height:1.6;word-break:break-word}
.cell-popover-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
.cell-popover-close{position:absolute;top:6px;right:8px;font-size:12px;color:var(--sage);cursor:pointer;padding:2px 4px}
.cell-popover-close:hover{color:var(--dark)}

/* ══ CHART TITLE INPUT ══ */
.chart-title-input{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;transition:border-color .1s;margin-bottom:0}
.chart-title-input:focus{border-color:var(--terra)}

/* ══ CHART FILTER TOGGLE ══ */
.chart-filter-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dark);cursor:pointer;padding:4px 0}
.toggle-switch{width:28px;height:16px;background:var(--div);border-radius:8px;position:relative;transition:background .2s;flex-shrink:0}
.toggle-switch.on{background:var(--terra)}
.toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:left .2s}
.toggle-switch.on::after{left:14px}

/* ══ SAVED VIEWS ══ */
.saved-views-bar{display:flex;align-items:center;gap:6px;padding:4px 14px;background:var(--white);border-bottom:1px solid var(--div);flex-shrink:0;overflow-x:auto;min-height:30px}
.saved-views-bar::-webkit-scrollbar{height:0}
.sv-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);white-space:nowrap;flex-shrink:0}
.sv-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r100);font-size:10px;font-weight:500;color:var(--dark);cursor:pointer;white-space:nowrap;transition:all .1s;flex-shrink:0}
.sv-chip:hover{border-color:var(--terra);color:var(--terra)}
.sv-chip.active{background:var(--terra-h);border-color:var(--terra-b);color:var(--terra);font-weight:600}
.sv-chip-x{opacity:.4;font-size:10px;margin-left:2px}
.sv-chip-x:hover{opacity:1}
.sv-add{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border:1px dashed var(--div);border-radius:var(--r100);font-size:10px;color:var(--sage);cursor:pointer;transition:all .1s;flex-shrink:0}
.sv-add:hover{border-color:var(--terra);color:var(--terra)}

/* ══ CONNECT SHEETS MODAL ══ */
.connect-source-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;transition:all .1s;margin-bottom:8px}
.connect-source-option:hover{border-color:var(--terra);background:var(--terra-h)}
.connect-source-option.disabled{opacity:.5;cursor:not-allowed}
.connect-source-option.disabled:hover{border-color:var(--div);background:transparent}
.cso-icon{font-size:20px;flex-shrink:0}
.cso-text strong{font-size:11px;font-weight:700;color:var(--dark);display:block}
.cso-text span{font-size:10px;color:var(--sage)}
.cso-badge{margin-left:auto;font-size:8px;font-weight:700;padding:2px 6px;border-radius:var(--r100);background:var(--warn-bg);color:var(--warn-dark);flex-shrink:0}

/* ══ KEYBOARD SHORTCUT HINT ══ */
.kb-hint{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);background:var(--dark);color:#fff;padding:6px 14px;border-radius:var(--r100);font-size:10px;font-weight:500;z-index:800;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap}
.kb-hint.show{opacity:1}

/* ══ SCROLLBAR ══ */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--border)}

/* ══ V5: PIVOT MULTI-FIELD PILLS ══ */
.pivot-field-well{border:1px solid var(--div);border-radius:var(--r8);background:var(--bg);min-height:34px;padding:4px 6px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;cursor:text;transition:border-color .15s}
.pivot-field-well:focus-within{border-color:var(--terra)}
.pivot-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;background:var(--terra-h);border:1px solid var(--terra-b);border-radius:var(--r100);font-size:10px;font-weight:600;color:var(--terra);white-space:nowrap;flex-shrink:0}
.pivot-pill.col-pill{background:rgba(107,155,204,.12);border-color:rgba(107,155,204,.3);color:#2D5F8A}
.pivot-pill-x{font-size:10px;opacity:.5;cursor:pointer;line-height:1;padding:0 1px}
.pivot-pill-x:hover{opacity:1}
.pivot-field-select{border:none;background:transparent;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;cursor:pointer;min-width:100px;max-width:140px}
.pivot-field-select option{font-family:'Poppins',sans-serif}
.pivot-add-btn{font-size:10px;color:var(--sage);cursor:pointer;padding:1px 4px;border-radius:3px;transition:all .1s;white-space:nowrap}
.pivot-add-btn:hover{background:var(--terra-h);color:var(--terra)}
/* Pivot live preview */
.pivot-preview-box{background:var(--bg);border:1px solid var(--div);border-radius:var(--r8);overflow:auto;max-height:200px;margin-top:4px}
.pivot-preview-box:empty{display:none}
.pivot-preview-tbl{border-collapse:collapse;width:100%;font-size:10px}
.pivot-preview-tbl th{background:#E5E2DA;padding:4px 8px;text-align:left;font-weight:700;color:var(--sage);font-size:9px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--div);white-space:nowrap;position:sticky;top:0}
.pivot-preview-tbl td{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.03);color:var(--dark);white-space:nowrap}
.pivot-preview-tbl tr:last-child td{font-weight:700;background:#EDEBE3;color:var(--dark)}
.pivot-preview-tbl td.num{font-variant-numeric:tabular-nums;text-align:right;font-weight:500}
.pivot-preview-tbl th.num{text-align:right}

/* ══ V5: BASE SHEET BADGE ══ */
.tab-base-badge{font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#EDC48830;color:var(--warn-dark);border:1px solid #EDC48855;border-radius:3px;padding:1px 4px;margin-left:3px;flex-shrink:0}
.bi-sheet-tab.active .tab-base-badge{background:#EDC48840}
/* Derived tab breadcrumb */
.pivot-source-crumb{font-size:9px;color:var(--sage);font-style:italic;padding:3px 14px 0;display:none}
.pivot-source-crumb.visible{display:flex;align-items:center;gap:4px}
.pivot-source-crumb a{color:var(--terra);cursor:pointer;text-decoration:underline;font-style:normal}
/* Stale pivot banner */
.pivot-stale-banner{display:none;align-items:center;gap:8px;padding:5px 14px;background:#EDC48818;border-bottom:1px solid #EDC48855;font-size:11px;color:var(--warn-dark);flex-shrink:0}
.pivot-stale-banner.show{display:flex}
.pivot-stale-refresh{font-size:10px;font-weight:600;color:var(--terra);cursor:pointer;border:1px solid var(--terra-b);border-radius:var(--r100);padding:1px 8px;transition:all .1s;flex-shrink:0}
.pivot-stale-refresh:hover{background:var(--terra);color:#fff}

/* ══ V5: AI ANALYSIS TAB ══ */
.bi-rp-tab.ai-tab{background:linear-gradient(135deg,rgba(218,119,86,.08),rgba(206,203,246,.12))}
.bi-rp-tab.ai-tab.active{background:linear-gradient(135deg,rgba(218,119,86,.15),rgba(206,203,246,.2));border-bottom-color:transparent}
/* AI prompt area */
.ai-prompt-wrap{position:relative}
.ai-prompt-input{width:100%;padding:9px 36px 9px 10px;border:1px solid var(--div);border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);background:var(--white);outline:none;resize:none;min-height:70px;line-height:1.55;transition:border-color .15s}
.ai-prompt-input:focus{border-color:var(--terra)}
.ai-prompt-send{position:absolute;bottom:8px;right:8px;width:26px;height:26px;border-radius:var(--r6);background:var(--terra);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;transition:all .12s}
.ai-prompt-send:hover{background:#C86B44}
.ai-prompt-send:disabled{background:var(--div);cursor:not-allowed}
/* Suggestion chips */
.ai-chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.ai-chip{display:inline-flex;align-items:center;padding:3px 9px;background:var(--white);border:1px solid var(--div);border-radius:var(--r100);font-size:10px;color:var(--dark);cursor:pointer;transition:all .1s;white-space:nowrap}
.ai-chip:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
/* AI loading */
.ai-loading{display:none;align-items:center;gap:8px;padding:14px;font-size:11px;color:var(--sage)}
.ai-loading.show{display:flex}
.ai-spinner{width:16px;height:16px;border:2px solid var(--div);border-top-color:var(--terra);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
/* AI output block */
.ai-output{display:none;flex-direction:column;gap:10px;margin-top:4px}
.ai-output.show{display:flex}
.ai-insight-text{font-size:11px;color:var(--dark);line-height:1.65;background:rgba(218,119,86,.06);border-left:3px solid var(--terra);padding:8px 10px;border-radius:0 var(--r6) var(--r6) 0}
.ai-chart-box{border:1px solid var(--div);border-radius:var(--r8);overflow:hidden;background:var(--white)}
.ai-chart-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--div);background:var(--bg)}
.ai-chart-title{font-size:11px;font-weight:700;color:var(--dark)}
.ai-chart-meta{font-size:9px;color:var(--sage)}
.ai-chart-canvas-wrap{padding:10px;height:180px;position:relative}
.ai-chart-actions{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--div);background:var(--bg)}
.ai-action-btn{height:24px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;transition:all .1s;border:1px solid var(--div);background:var(--white);color:var(--dark);display:flex;align-items:center;gap:4px}
.ai-action-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.ai-action-btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.ai-action-btn.primary:hover{background:#C86B44}
/* AI session history */
.ai-history{margin-top:8px}
.ai-history-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:4px}
.ai-hist-item{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r6);cursor:pointer;font-size:10px;color:var(--sage);transition:all .1s;border:1px solid transparent}
.ai-hist-item:hover{border-color:var(--div);background:var(--bg);color:var(--dark)}
.ai-hist-ico{font-size:11px;flex-shrink:0}
/* AI empty state */
.ai-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 14px;text-align:center;gap:8px}
.ai-empty-ico{font-size:28px;opacity:.5}
.ai-empty-title{font-size:12px;font-weight:600;color:var(--dark)}
.ai-empty-sub{font-size:10px;color:var(--sage);line-height:1.6}

/* ══ V5: PUSH TO SALES CRM BUTTON ══ */
.push-crm-btn{height:32px;padding:0 14px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:11px;font-weight:700;cursor:pointer;background:var(--terra);border:none;color:#fff;transition:all .12s;display:flex;align-items:center;gap:6px;white-space:nowrap}
.push-crm-btn:hover{background:#C86B44;transform:translateY(-1px);box-shadow:0 3px 10px rgba(218,119,86,.3)}
.push-crm-btn:active{transform:translateY(0)}
.push-crm-destination{font-size:9px;color:var(--sage);font-style:italic;margin-top:3px;display:flex;align-items:center;gap:4px}
.push-crm-destination b{color:var(--terra);font-style:normal}
.bi-stats-strip,.bi-grid-footer{display:none!important}
.v7-menubar{height:36px;background:var(--white);border-bottom:1px solid var(--div);display:flex;align-items:center;padding:0 12px;gap:0;flex-shrink:0;position:relative;z-index:50}
.v7-source-dd{display:flex;align-items:center;gap:5px;padding:3px 10px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);cursor:pointer;position:relative;transition:border-color .12s}
.v7-source-dd:hover{border-color:var(--terra)}
.v7-menu-sep{width:1px;height:16px;background:var(--div);margin:0 4px;flex-shrink:0}
.v7-menu-item{position:relative;display:flex;align-items:center;padding:0 10px;height:100%;font-size:11px;font-weight:500;color:var(--dark);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .1s}
.v7-menu-item:hover{background:var(--bg);color:var(--terra)}
.v7-dd{position:absolute;top:100%;left:0;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:170px;padding:4px 0;z-index:600;display:none}
.v7-dd.open{display:block}
.v7-dd-item{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;font-size:11px;color:var(--dark);cursor:pointer;transition:all .1s;white-space:nowrap}
.v7-dd-item:hover{background:var(--terra-h);color:var(--terra)}
.v7-dd-kbd{font-size:9px;color:var(--sage);margin-left:14px}
.v7-dd-sep{height:1px;background:var(--div);margin:3px 0}
.v7-power-btn{display:flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;border:1px solid var(--div);background:var(--white);color:var(--dark)}
.v7-power-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.v7-power-btn.ai-btn{background:linear-gradient(135deg,rgba(218,119,86,.1),rgba(206,203,246,.15));border-color:rgba(218,119,86,.3);color:var(--terra)}
.v7-ctx-bar{display:flex;align-items:center;gap:10px;padding:4px 14px;background:var(--white);border-bottom:1px solid var(--div);flex-shrink:0;font-size:10px;min-height:28px}
.v7-ctx-source{display:flex;align-items:center;gap:5px;font-weight:600;color:var(--dark)}
.v7-ctx-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block;flex-shrink:0}
.v7-ctx-div{width:1px;height:12px;background:var(--div);flex-shrink:0}
.v7-sb-tabs{display:flex;align-items:stretch;border-bottom:1px solid var(--div);flex-shrink:0;height:32px}
.v7-sb-tab{flex:1;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--sage);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.v7-sb-tab:hover{color:var(--dark);background:var(--bg)}
.v7-sb-tab.active{color:var(--terra);border-bottom-color:var(--terra)}
.v7-sb-panel{display:none;flex-direction:column;flex:1;overflow:hidden}
.v7-sb-panel.active{display:flex}
.v7-sb-list{flex:1;overflow-y:auto;padding:6px 0}
.v7-sb-list::-webkit-scrollbar{width:0}
.v7-sb-row{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;cursor:pointer;font-size:11px;color:#4A4A4A;transition:all .1s;border-left:2px solid transparent}
.v7-sb-row:hover{background:var(--bg);color:var(--dark)}
.v7-sb-row.active{background:var(--terra-h);color:var(--terra);font-weight:600;border-left-color:var(--terra)}
.v7-sb-empty{padding:14px;font-size:10px;color:var(--sage);font-style:italic;text-align:center;line-height:1.7}
.v7-sb-add{display:flex;align-items:center;gap:6px;padding:7px 14px;cursor:pointer;font-size:10px;color:var(--sage);border-top:1px solid var(--div);transition:all .1s;flex-shrink:0}
.v7-sb-add:hover{color:var(--terra);background:var(--terra-h)}
.v7-back-btn{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;border-radius:var(--r6);font-size:11px;color:var(--sage);transition:all .1s}
.v7-back-btn:hover{background:var(--bg);color:var(--dark)}
.v7-home-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);margin-bottom:12px}
.v7-home-card{background:var(--white);border:1px solid var(--div);border-radius:var(--r10);padding:16px 18px;cursor:pointer;transition:all .18s;min-width:150px;flex:0 0 auto}
.v7-home-card:hover{border-color:var(--terra);box-shadow:0 4px 16px rgba(218,119,86,.12);transform:translateY(-2px)}
.v7-home-card-icon{width:32px;height:32px;border-radius:var(--r8);background:var(--bg);border:1px solid var(--div);display:flex;align-items:center;justify-content:center;margin-bottom:10px;transition:all .18s}
.v7-home-card:hover .v7-home-card-icon{background:var(--terra-h);border-color:var(--terra-b)}
.v7-home-card-icon svg{width:14px;height:14px;stroke:var(--sage)}
.v7-home-card:hover .v7-home-card-icon svg{stroke:var(--terra)}
.v7-home-card-name{font-size:12px;font-weight:700;color:var(--dark);margin-bottom:3px}
.v7-home-card-sub{font-size:10px;color:var(--sage);line-height:1.5}
.v7-home-recent-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r6);cursor:pointer;transition:all .12s;border:1px solid transparent}
.v7-home-recent-row:hover{background:var(--white);border-color:var(--div)}
.v7-picker-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;font-size:11px;font-weight:500;color:var(--dark);background:var(--white);transition:all .12s}
.v7-picker-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.v7-picker-card{background:var(--white);border:1px solid var(--div);border-radius:var(--r10);padding:12px 16px;cursor:pointer;transition:all .15s;min-width:110px;text-align:center}
.v7-picker-card:hover{border-color:var(--terra);background:var(--terra-h);transform:translateY(-1px)}
.v7-picker-card-name{font-size:11px;font-weight:700;color:var(--dark);margin-bottom:3px}
.v7-picker-card-meta{font-size:9px;color:var(--sage)}
.bg-table{border-collapse:collapse;font-size:12px;font-family:'Poppins',sans-serif}
.bg-col-hd{background:#F1EEE8;border-bottom:1px solid var(--border);border-right:1px solid var(--div);padding:5px 8px;min-width:100px;position:sticky;top:0;z-index:3;font-size:10px;font-weight:700;color:var(--sage);text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bg-col-hd.rn{min-width:46px;width:46px;left:0;z-index:4;position:sticky}
.bg-rn{background:#F1EEE8;border-right:1px solid var(--border);border-bottom:1px solid var(--div);padding:0 6px;text-align:center;font-size:10px;color:var(--sage);min-width:46px;position:sticky;left:0;z-index:2;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bg-cell{border-right:1px solid var(--div);border-bottom:1px solid var(--div);min-width:100px;width:100px;vertical-align:middle}
.bg-cell.sel{outline:2px solid var(--terra);outline-offset:-1px;z-index:1}
.bg-cell-inp{width:100%;height:26px;padding:3px 6px;border:none;background:transparent;font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);outline:none}
.bg-cell-inp:focus{background:var(--white)}
/* pivot source */
.v7-pivot-source{padding:10px 12px;border-bottom:1px solid var(--div);background:var(--bg);flex-shrink:0}
.v7-psc-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
.v7-psc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.v7-psc-card{padding:7px 10px;border:1px solid var(--div);border-radius:var(--r6);cursor:pointer;transition:all .12s;background:var(--white)}
.v7-psc-card:hover,.v7-psc-card.sel{border-color:var(--terra);background:var(--terra-h)}
.v7-psc-name{font-size:10px;font-weight:700;color:var(--dark)}
.v7-psc-meta{font-size:9px;color:var(--sage)}
/* Remove tab icons */
.bi-sheet-tab .tab-icon{display:none}
/* Right panel tab labels */
#rpTabChart::before,#rpTabPivot::before,#rpTabSummary::before,#rpTabKpi::before,#rpTabAi::before{content:''}

/* ── V7: Tab close button ── */
.bi-sheet-tab .tab-close{
  display:none;width:14px;height:14px;border-radius:3px;font-size:10px;line-height:14px;
  text-align:center;color:var(--sage);cursor:pointer;margin-left:4px;flex-shrink:0;
  transition:all .1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;
}
.bi-sheet-tab:hover .tab-close{display:flex;align-items:center;justify-content:center;}
.bi-sheet-tab .tab-close:hover{background:rgba(231,132,142,.2);color:var(--err);}
.bi-sheet-tab.active .tab-close{display:flex;align-items:center;justify-content:center;}
/* Remove tab-icon span */
.bi-sheet-tab .tab-icon{display:none}
/* Remove base badge */
.tab-base-badge{display:none!important}


/* ── 3-dot menus in sidebar ── */
.v7-sb-row{position:relative;}
.v7-sb-row-3dot{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:3px;display:none;align-items:center;justify-content:center;font-size:11px;color:var(--sage);cursor:pointer;letter-spacing:.5px;background:transparent;border:none;}
.v7-sb-row:hover .v7-sb-row-3dot{display:flex;}
.v7-sb-row-3dot:hover{background:var(--div);color:var(--dark);}
.v7-3dot-menu{position:fixed;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:148px;padding:4px 0;z-index:800;font-size:11px;}
.v7-3dot-item{padding:6px 14px;cursor:pointer;color:var(--dark);white-space:nowrap;transition:all .1s;}
.v7-3dot-item:hover{background:var(--terra-h);color:var(--terra);}
.v7-3dot-item.danger{color:var(--err);}
.v7-3dot-item.danger:hover{background:rgba(231,132,142,.1);}
.v7-3dot-sep{height:1px;background:var(--div);margin:3px 0;}

/* ── Dashboard add chart button ── */
.dash-add-btn-float{position:sticky;bottom:16px;left:50%;transform:translateX(-50%);height:32px;padding:0 16px;background:var(--terra);border:none;border-radius:var(--r8);color:#fff;font-family:'Poppins',sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:all .12s;display:block;margin:16px auto 0;z-index:10;}
.dash-add-btn-float:hover{background:#C86B44;transform:translateX(-50%) translateY(-1px);box-shadow:0 4px 12px rgba(218,119,86,.3);}

/* ── Reports sidebar items ── */
.v7-report-item{display:flex;align-items:center;justify-content:space-between;padding:7px 14px;cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s;border-left:2px solid transparent;position:relative;}
.v7-report-item:hover{background:var(--bg);border-left-color:var(--terra);}
.v7-report-item-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.v7-report-item-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v7-report-item-meta{font-size:9px;color:var(--sage);}

/* ── Cell grid selection & fill handle ── */
/* cell-selected rule moved to Part-4 section */
.bi-tbl td.cell-in-range{background:rgba(218,119,86,.06);}
.fill-handle{position:absolute;bottom:-3px;right:-3px;width:7px;height:7px;background:var(--terra);border:1px solid #fff;border-radius:1px;cursor:crosshair;z-index:5;}

/* ── Grid right-click menu ── */
.grid-ctx-menu{position:fixed;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:200px;padding:4px 0;z-index:900;font-size:11px;}
.grid-ctx-item{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;cursor:pointer;color:var(--dark);white-space:nowrap;transition:all .1s;}
.grid-ctx-item:hover{background:var(--terra-h);color:var(--terra);}
.grid-ctx-item.danger:hover{background:rgba(231,132,142,.1);color:var(--err);}
.grid-ctx-kbd{font-size:9px;color:var(--sage);margin-left:14px;}
.grid-ctx-sep{height:1px;background:var(--div);margin:3px 0;}
.grid-ctx-sub{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);padding:5px 14px 2px;}

/* ── Dashboard refresh indicator ── */
.dash-refresh-bar{display:flex;align-items:center;gap:7px;margin-top:4px}
.dash-live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex-shrink:0;box-shadow:0 0 0 0 rgba(16,140,114,.4);animation:dash-pulse 2.5s infinite}
@keyframes dash-pulse{0%{box-shadow:0 0 0 0 rgba(16,140,114,.4)}70%{box-shadow:0 0 0 5px rgba(16,140,114,0)}100%{box-shadow:0 0 0 0 rgba(16,140,114,0)}}
.dash-live-dot.refreshing{background:var(--warn);animation:spin .7s linear infinite}
.dash-refresh-label{font-size:10px;color:var(--sage)}
.dash-refresh-btn{font-size:10px;font-weight:600;color:var(--terra);background:none;border:1px solid var(--terra-b);border-radius:var(--r100);padding:1px 8px;cursor:pointer;font-family:'Poppins',sans-serif;transition:all .12s}
.dash-refresh-btn:hover{background:var(--terra);color:#fff}
.dash-refresh-btn:disabled{opacity:.4;cursor:not-allowed}
/* Widget refresh flash */
@keyframes widget-flash{0%{opacity:.4}50%{opacity:.9}100%{opacity:1}}
.widget-refreshing{animation:widget-flash .5s ease}


/* ── New workbook dialog ── */
.v7-nw-card{border:1px solid var(--div);border-radius:var(--r10);padding:14px;cursor:pointer;transition:all .15s;text-align:center}
.v7-nw-card:hover{border-color:var(--terra);background:var(--terra-h);transform:translateY(-1px)}
.v7-nw-card-icon{width:36px;height:36px;border-radius:var(--r8);background:var(--bg);border:1px solid var(--div);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;transition:all .15s}
.v7-nw-card:hover .v7-nw-card-icon{background:rgba(218,119,86,.12);border-color:var(--terra-b)}
.v7-nw-card-icon svg{width:16px;height:16px;stroke:var(--sage)}
.v7-nw-card:hover .v7-nw-card-icon svg{stroke:var(--terra)}
.v7-nw-card-name{font-size:12px;font-weight:700;color:var(--dark);margin-bottom:3px}
.v7-nw-card-sub{font-size:10px;color:var(--sage);line-height:1.4}
.v7-nw-table-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;gap:8px;transition:all .12s}
.v7-nw-table-row:hover{border-color:var(--terra);background:var(--terra-h)}
.v7-nw-load-btn{font-size:10px;font-weight:600;color:var(--terra);flex-shrink:0}
/* ← CRM button in menu bar */
.v7-crm-back{font-size:11px;font-weight:600;color:var(--sage);cursor:pointer;padding:0 8px;height:100%;display:flex;align-items:center;gap:4px;transition:all .12s;white-space:nowrap;flex-shrink:0}
.v7-crm-back:hover{color:var(--terra);background:var(--bg)}
/* Menu sub-label */
.v7-dd-sub{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);padding:5px 14px 2px}


.v7-na-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;transition:all .12s}
.v7-na-row:hover{border-color:var(--terra);background:var(--terra-h)}


/* ══ EXCEL GRID LOOK ══ */
/* Override grid borders with cool light grey */
.bi-tbl td { border-color:#E8E8E8!important; }
.bi-tbl th { border-color:#E8E8E8!important; }
.bi-tbl { border-color:#E8E8E8!important; }

/* Column headers — Excel style */
.bi-tbl th { background:#F1F3F4!important; }
.bi-tbl th.col-header-hl { background:#FAE3DB!important; }
.bi-tbl .rn-th { background:#F1F3F4!important; }
.bi-tbl .chk-th { background:#F1F3F4!important; }

/* Row number column — Excel style */
.bi-tbl td.rn {
  background:#F8F9FA!important;
  color:#80868B!important;
  font-size:10px!important;
  text-align:right!important;
  padding:0 5px 0 2px!important;
  min-width: 36px!important;
  width: 36px!important;
  border-color:#E8E8E8!important;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.bi-tbl td.rn.rn-hl {
  background:#FAE3DB!important;
  color:var(--terra)!important;
  font-weight:600!important;
}

/* Row height — tighter like Excel */
.bi-tbl.rh-c tr { height:22px; }
.bi-tbl.rh-c td,.bi-tbl.rh-c th { padding:2px 6px; font-size:12px; }
.bi-tbl.rh-m tr { height:28px; }
.bi-tbl.rh-m td,.bi-tbl.rh-m th { padding:4px 8px; font-size:12px; }
.bi-tbl.rh-l tr { height:36px; }
.bi-tbl.rh-l td,.bi-tbl.rh-l th { padding:7px 8px; font-size:12px; }

/* Type dot in header — tiny coloured dot */
.bi-col-type {
  width:5px; height:5px; border-radius:50%;
  display:inline-block; flex-shrink:0;
  margin-right:4px; vertical-align:middle;
  background:#9AA0A6; /* default grey = text */
}
.bi-col-type.type-num { background:#1A73E8; }
.bi-col-type.type-date { background:#188038; }
.bi-col-type.type-text { background:#9AA0A6; }
/* Hide the old text label for type */
.bi-col-type-label { display:none; }

/* Column header inner layout */
.bi-th-inner {
  display:flex; align-items:center; gap:3px;
  font-size:11px; font-weight:500; color:#3C4043;
  white-space:nowrap; overflow:hidden;
}
.bi-col-name { flex:1; overflow:hidden; text-overflow:ellipsis; }

/* Selected cell — stronger Excel-like border */
/* cell-selected rule 2 removed — see Part-4 */

/* Empty rows below data */
.bi-tbl tr.empty-row td {
  background:#fff!important;
  color:transparent!important;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  pointer-events:none;
}
.bi-tbl tr.empty-row td.rn {
  background:#F8F9FA!important;
  color:#C4C7CC!important;
  pointer-events:none;
}

/* Column resize handle */
.col-resize-handle {
  position:absolute; right:0; top:0;
  width:4px; height:100%; cursor:col-resize;
  background:transparent; z-index:5;
}
.col-resize-handle:hover, .col-resize-handle.dragging {
  background:var(--terra); opacity:.6;
}
/* .bi-tbl th position:relative removed — sticky kept */

/* Alternating rows — very subtle like Excel */
.bi-tbl tbody tr:nth-child(even) td:not(.rn):not(.chk-td) {
  background:#FAFAFA;
}
.bi-tbl tbody tr:hover td:not(.rn):not(.chk-td) {
  background:rgba(218,119,86,.03)!important;
}

/* ══════════════════════════════════════════════════════════════
   ENTERPRISE QUERY BUILDER — Full redesign
   ══════════════════════════════════════════════════════════════ */

/* Overlay + Dialog shell */
.query-overlay {
  position:fixed; inset:0; background:rgba(15,23,42,.55);
  z-index:700; display:none; align-items:center; justify-content:center;
  backdrop-filter:blur(2px);
}
.query-overlay.open { display:flex; }
.query-dialog {
  background:#fff; border-radius:16px;
  box-shadow:0 32px 80px rgba(15,23,42,.22), 0 0 0 1px rgba(15,23,42,.06);
  width:960px; max-width:96vw; display:flex; flex-direction:column;
  height:90vh; max-height:90vh; overflow:hidden; font-family:'Inter','Poppins',sans-serif;
}

/* ── Header ── */
.qb-header {
  padding:20px 24px 16px; border-bottom:1px solid #F1F3F4;
  display:flex; align-items:flex-start; justify-content:space-between;
  flex-shrink:0; background:#FAFBFC;
}
.qb-header-left { display:flex; align-items:center; gap:12px; }
.qb-header-icon {
  width:40px; height:40px; border-radius:10px;
  background:linear-gradient(135deg,#DA7756,#C86B44);
  display:flex; align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0; box-shadow:0 2px 8px rgba(218,119,86,.3);
}
.qb-header-title { font-size:15px; font-weight:700; color:#0F172A; letter-spacing:-.02em; }
.qb-header-sub { font-size:11px; color:#64748B; margin-top:2px; }
.qb-close-btn {
  width:32px; height:32px; border-radius:8px; border:1px solid #E2E8F0;
  background:#fff; cursor:pointer; font-size:14px; color:#64748B;
  display:flex; align-items:center; justify-content:center;
  transition:all .12s; flex-shrink:0;
}
.qb-close-btn:hover { background:#FEF2F2; color:#EF4444; border-color:#FCA5A5; }

/* ── Progress wizard steps ── */
.qb-steps {
  display:flex; align-items:center; padding:14px 24px;
  border-bottom:1px solid #F1F3F4; background:#FAFBFC;
  gap:0; flex-shrink:0; overflow-x:auto;
}
.qb-step {
  display:flex; align-items:center; gap:8px; flex-shrink:0;
}
.qb-step-num {
  width:24px; height:24px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:700; flex-shrink:0;
  background:#E2E8F0; color:#94A3B8; transition:all .2s;
}
.qb-step.active .qb-step-num { background:#DA7756; color:#fff; box-shadow:0 2px 8px rgba(218,119,86,.4); }
.qb-step.done .qb-step-num { background:#22C55E; color:#fff; }
.qb-step-label {
  font-size:10px; font-weight:600; color:#94A3B8; white-space:nowrap;
  transition:color .2s;
}
.qb-step.active .qb-step-label { color:#DA7756; }
.qb-step.done .qb-step-label { color:#16A34A; }
.qb-step-arrow { color:#CBD5E1; font-size:12px; margin:0 8px; flex-shrink:0; }

/* ── Body layout ── */
.qb-body {
  display:flex; flex:1; min-height:0; overflow:hidden;
}

/* ── Left: Data model explorer ── */
.qb-explorer {
  width:220px; flex-shrink:0; border-right:1px solid #F1F3F4;
  background:#F8FAFC; overflow-y:auto; padding:16px 12px;
  display:flex; flex-direction:column; gap:4px;
}
.qb-explorer-title {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:#94A3B8; padding:0 4px; margin-bottom:8px;
}
.qb-module-group { margin-bottom:4px; }
.qb-module-header {
  display:flex; align-items:center; gap:8px; padding:7px 10px;
  border-radius:8px; cursor:pointer; transition:all .12s;
  font-size:11px; font-weight:700; color:#1E293B;
  border:1px solid transparent;
}
.qb-module-header:hover { background:#fff; border-color:#E2E8F0; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.qb-module-header.active { background:#fff; border-color:#DA7756; color:#DA7756; box-shadow:0 2px 8px rgba(218,119,86,.12); }
.qb-module-icon {
  width:24px; height:24px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; flex-shrink:0;
}
.qb-module-icon.deals { background:#FEF3C7; }
.qb-module-icon.contacts { background:#DBEAFE; }
.qb-module-icon.clients { background:#DCFCE7; }
.qb-module-icon.tasks { background:#F3E8FF; }
.qb-module-icon.products { background:#FEE2E2; }
.qb-module-count {
  margin-left:auto; font-size:9px; font-weight:600;
  background:#F1F5F9; color:#64748B; border-radius:10px;
  padding:1px 6px;
}
.qb-module-header.active .qb-module-count { background:#FEF3C7; color:#D97706; }

.qb-relation-list { padding-left:8px; margin-top:2px; display:flex; flex-direction:column; gap:1px; }
.qb-relation-item {
  display:flex; align-items:center; gap:6px; padding:5px 8px;
  border-radius:6px; cursor:pointer; font-size:10px;
  color:#475569; transition:all .1s; border:1px solid transparent;
  position:relative;
}
.qb-relation-item::before {
  content:''; position:absolute; left:-4px; top:50%;
  transform:translateY(-50%); width:8px; height:1px;
  background:#CBD5E1;
}
.qb-relation-item:hover { background:#fff; border-color:#E2E8F0; color:#1E293B; }
.qb-relation-item.active { background:#EEF2FF; border-color:#A5B4FC; color:#4338CA; font-weight:600; }
.qb-relation-dot {
  width:6px; height:6px; border-radius:50%;
  background:#CBD5E1; flex-shrink:0; transition:background .1s;
}
.qb-relation-item.active .qb-relation-dot { background:#4338CA; }
.qb-relation-badge {
  margin-left:auto; font-size:8px; font-weight:600;
  background:#F1F5F9; color:#94A3B8; border-radius:8px; padding:1px 5px;
}

/* ── Main panel ── */
.qb-main {
  flex:1; display:flex; overflow:hidden; min-height:0;
}

/* ── Center: builder form ── */
.qb-form {
  flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:16px; min-height:0;
}

/* ── Right: live summary + preview panel ── */
.qb-sidebar {
  width:240px; flex-shrink:0; border-left:1px solid #F1F3F4;
  background:#FAFBFC; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px;
}

/* ── Section card ── */
.qb-card {
  background:#fff; border:1px solid #E2E8F0; border-radius:10px;
  overflow:visible;
  flex-shrink:0;
}
.qb-card-header {
  padding:10px 14px 8px; border-bottom:1px solid #F1F3F4;
  display:flex; align-items:center; gap:8px;
}
.qb-card-step-badge {
  width:20px; height:20px; border-radius:6px;
  background:#DA7756; color:#fff; font-size:9px; font-weight:700;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.qb-card-title { font-size:11px; font-weight:700; color:#1E293B; }
.qb-card-body { padding:12px 14px; }

/* ── Form controls ── */
.qb-select {
  width:100%; padding:8px 12px; border:1px solid #E2E8F0;
  border-radius:8px; font-size:11px; color:#1E293B;
  background:#fff; outline:none; cursor:pointer; transition:border .12s;
  font-family:'Inter','Poppins',sans-serif;
  -webkit-appearance:none;
     -moz-appearance:none;
          appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
  padding-right:30px;
}
.qb-select:focus { border-color:#DA7756; box-shadow:0 0 0 3px rgba(218,119,86,.1); }

.qb-label { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94A3B8; margin-bottom:5px; }

/* Join type pills */
.qb-join-pills { display:flex; gap:6px; }
.qb-join-pill {
  flex:1; padding:7px 6px; border:1px solid #E2E8F0; border-radius:8px;
  font-size:10px; font-weight:600; cursor:pointer; text-align:center;
  color:#64748B; background:#fff; transition:all .12s;
}
.qb-join-pill:hover { border-color:#DA7756; color:#DA7756; }
.qb-join-pill.active { background:#DA7756; border-color:#DA7756; color:#fff; box-shadow:0 2px 8px rgba(218,119,86,.3); }
.qb-join-pill small { display:block; font-size:8px; font-weight:400; margin-top:1px; opacity:.8; }

/* Match-on row */
.qb-match-row { display:flex; align-items:center; gap:8px; }
.qb-match-eq {
  width:28px; height:28px; border-radius:50%; background:#F1F5F9;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#64748B; flex-shrink:0;
}

/* ── Field picker ── */
.qb-field-search {
  width:100%; padding:7px 10px 7px 30px; border:1px solid #E2E8F0;
  border-radius:8px; font-size:11px; outline:none; transition:border .12s;
  font-family:'Inter','Poppins',sans-serif; background:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:9px center;
  box-sizing:border-box;
}
.qb-field-search:focus { border-color:#DA7756; }

.qb-field-cols { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.qb-field-group-label {
  font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
  color:#94A3B8; margin-bottom:6px; display:flex; align-items:center; gap:5px;
}
.qb-field-list {
  border:1px solid #E2E8F0; border-radius:8px; overflow:hidden;
  max-height:180px; overflow-y:auto;
}
.qb-field-group-section { border-bottom:1px solid #F1F3F4; }
.qb-field-group-header {
  padding:5px 10px; background:#F8FAFC;
  font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94A3B8;
  border-bottom:1px solid #F1F3F4; position:sticky; top:0; z-index:1;
}
.qb-field-item {
  display:flex; align-items:center; gap:8px; padding:5px 10px;
  font-size:10px; color:#374151; cursor:pointer; transition:background .08s;
  border-bottom:1px solid #F8FAFC;
}
.qb-field-item:last-child { border-bottom:none; }
.qb-field-item:hover { background:#F8FAFC; }
.qb-field-item.hidden { display:none; }
.qb-field-icon {
  width:16px; height:16px; border-radius:4px;
  display:flex; align-items:center; justify-content:center;
  font-size:9px; flex-shrink:0;
}
.qb-field-icon.num { background:#DBEAFE; color:#1D4ED8; }
.qb-field-icon.txt { background:#F3F4F6; color:#374151; }
.qb-field-icon.date { background:#DCFCE7; color:#166534; }
.qb-field-item input[type=checkbox] { accent-color:#DA7756; flex-shrink:0; }

/* ── Output name ── */
.qb-name-input {
  width:100%; padding:9px 12px; border:1.5px solid #E2E8F0;
  border-radius:8px; font-size:12px; font-weight:600; color:#1E293B;
  outline:none; transition:border .12s; box-sizing:border-box;
  font-family:'Inter','Poppins',sans-serif;
}
.qb-name-input:focus { border-color:#DA7756; box-shadow:0 0 0 3px rgba(218,119,86,.1); }

/* ── Preview table ── */
.qb-preview-wrap { margin-top:4px; }
.qb-preview-table {
  border-collapse:collapse; width:100%; font-size:10px;
}
.qb-preview-table th {
  background:#F8FAFC; padding:6px 10px; text-align:left;
  font-weight:600; color:#64748B; border-bottom:2px solid #E2E8F0;
  white-space:nowrap; font-size:9px; text-transform:uppercase; letter-spacing:.04em;
}
.qb-preview-table td {
  padding:5px 10px; border-bottom:1px solid #F1F3F4;
  white-space:nowrap; color:#374151;
}
.qb-preview-table tbody tr:hover td { background:#F8FAFC; }

/* ── Summary sidebar ── */
.qb-summary-card {
  background:#fff; border:1px solid #E2E8F0; border-radius:10px; overflow:hidden;
}
.qb-summary-header {
  padding:9px 12px; background:linear-gradient(135deg,#DA7756,#C86B44);
  font-size:10px; font-weight:700; color:#fff; letter-spacing:.02em;
}
.qb-summary-body { padding:10px 12px; display:flex; flex-direction:column; gap:8px; }
.qb-summary-row { display:flex; flex-direction:column; gap:2px; }
.qb-summary-key { font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94A3B8; }
.qb-summary-val { font-size:11px; font-weight:600; color:#1E293B; min-height:16px; }
.qb-summary-val.empty { color:#CBD5E1; font-weight:400; font-style:italic; font-size:10px; }
.qb-summary-tags { display:flex; flex-wrap:wrap; gap:3px; min-height:18px; }
.qb-summary-tag {
  font-size:9px; font-weight:600; padding:2px 7px; border-radius:10px;
  background:#F1F5F9; color:#475569;
}
.qb-summary-tag.field { background:#EEF2FF; color:#4338CA; }
.qb-summary-tag.filter { background:#FEF3C7; color:#D97706; }

/* ── Est. rows stat cards ── */
.qb-stat-cards { display:flex; flex-direction:column; gap:6px; }
.qb-stat-card {
  background:#fff; border:1px solid #E2E8F0; border-radius:8px;
  padding:10px 12px; display:flex; align-items:center; gap:10px;
}
.qb-stat-icon {
  width:32px; height:32px; border-radius:8px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.qb-stat-val { font-size:16px; font-weight:800; color:#1E293B; line-height:1; }
.qb-stat-label { font-size:9px; color:#94A3B8; font-weight:500; margin-top:2px; }

/* ── Footer ── */
.qb-footer {
  padding:14px 24px; border-top:1px solid #F1F3F4;
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0; background:#FAFBFC; gap:10px;
}
.qb-footer-left { display:flex; align-items:center; gap:8px; font-size:10px; color:#64748B; }
.qb-footer-right { display:flex; align-items:center; gap:8px; }
.qb-btn {
  height:36px; padding:0 18px; border-radius:8px;
  font-family:'Inter','Poppins',sans-serif; font-size:11px; font-weight:600;
  cursor:pointer; transition:all .15s; display:flex; align-items:center; gap:6px;
}
.qb-btn.ghost { border:1px solid #E2E8F0; background:#fff; color:#64748B; }
.qb-btn.ghost:hover { border-color:#DA7756; color:#DA7756; background:#FEF9F7; }
.qb-btn.secondary { border:1px solid #E2E8F0; background:#F8FAFC; color:#374151; }
.qb-btn.secondary:hover { background:#F1F5F9; }
.qb-btn.primary {
  border:none; background:linear-gradient(135deg,#DA7756,#C86B44); color:#fff;
  box-shadow:0 2px 8px rgba(218,119,86,.35);
}
.qb-btn.primary:hover { box-shadow:0 4px 16px rgba(218,119,86,.45); transform:translateY(-1px); }
.qb-btn.primary:active { transform:translateY(0); }

/* ── Old classes kept for JS compatibility ── */
.query-overlay { } /* already set above */
.query-col-item { display:flex; align-items:center; gap:6px; padding:3px 4px; font-size:10px; color:var(--dark); cursor:pointer; border-radius:4px; }
.query-col-item:hover { background:var(--bg); }
.query-col-item input { accent-color:var(--terra); flex-shrink:0; }
.query-join-btn { padding:4px 10px; border:1px solid var(--div); border-radius:var(--r6); font-size:10px; font-weight:600; cursor:pointer; background:var(--bg); color:var(--sage); transition:all .12s; }
.query-join-btn.active { background:var(--terra); border-color:var(--terra); color:#fff; }
/* Preview table compat */
.query-preview-table { border-collapse:collapse; width:100%; font-size:10px; margin-top:8px; }
.query-preview-table th { background:#F1F3F4; padding:4px 8px; text-align:left; font-weight:600; color:var(--sage); border-bottom:1px solid var(--div); white-space:nowrap; }
.query-preview-table td { padding:4px 8px; border-bottom:1px solid rgba(0,0,0,.04); white-space:nowrap; }



/* ═══════════════════════════════════════════════════
   PART 1 — OVERLAP FIX + GOOGLE SHEETS VISUAL STYLE
   ═══════════════════════════════════════════════════ */

/* Force fixed table layout — column widths set by TH,
   uniform across all rows. Required for sticky to work. */
.bi-tbl {
  table-layout: fixed !important; /* required: uniform column widths */
  width: -moz-max-content !important;
  width: max-content !important;
}

/* All cells must clip content — never overflow into adjacent col */
.bi-tbl td, .bi-tbl th {
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* ── PART 4: Google Sheets headers ── */
.bi-tbl thead tr {
  background: #F8F9FA !important;
}
.bi-tbl th {
  background: #F8F9FA !important;
  color: #444746 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border-right: 1px solid #E1E1E1 !important;
  border-bottom: 2px solid #DADCE0 !important;
}
.bi-tbl th.chk-th { background:#F1F3F4 !important; }

/* ── PART 4: Thin borders — spreadsheet look ── */
.bi-tbl td {
  border-right: 1px solid #E8E8E8 !important;
  border-bottom: 1px solid #E8E8E8 !important;
  font-size: 12px !important;
  color: #202124 !important;
  height: 22px !important;
  padding: 3px 8px !important;
  background: #fff !important;
  font-family: Arial, sans-serif !important;
}

/* ── PART 4: Row alternating — very subtle ── */
.bi-tbl tbody tr:nth-child(even) td:not(.rn):not(.chk-td):not(.frz-td) {
  background: #FAFAFA !important;
}

/* ── PART 4: Row number column ── */
.bi-tbl td.rn {
  background: #F8F9FA !important;
  color: #80868B !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-align: center !important;
  border-right: 1px solid #E1E1E1 !important;
}

/* ── PART 4: Frozen first column ── */
.bi-tbl td.frz-td {
  background: #fff !important;
  border-right: 2px solid #DADCE0 !important;
  font-weight: 500 !important;
}
.bi-tbl th.frz.freeze-line,
.bi-tbl th.freeze-line {
  border-right: 2px solid #DADCE0 !important;
}

/* ── PART 4: Selected cell — Google Sheets blue ── */
.bi-tbl td.cell-selected {
  outline: 2px solid #1A73E8 !important;
  outline-offset: -2px !important;
  background: rgba(26,115,232,0.04) !important;
  position: relative !important;
  z-index: 3 !important;
}
.bi-tbl td.frz-td.cell-selected {
  z-index: 1 !important;
  background: #EAF1FE !important;
}

/* ── PART 4: Selected row ── */
.bi-tbl tr.selected-row td {
  background: rgba(26,115,232,0.06) !important;
}
.bi-tbl tr.selected-row td.rn {
  background: #E8F0FE !important;
  color: #1A73E8 !important;
  font-weight: 600 !important;
}

/* ── PART 4: Sheet tabs — Google Sheets style ── */
.bi-sheet-tabs {
  background: #F1F3F4 !important;
  border-top: 1px solid #E0E0E0 !important;
}
.bi-sheet-tab {
  background: transparent !important;
  border: none !important;
  border-right: 1px solid transparent !important;
  border-radius: 4px 4px 0 0 !important;
  color: #5F6368 !important;
  font-size: 11px !important;
  padding: 0 16px !important;
  transition: background 0.1s !important;
}
.bi-sheet-tab:hover {
  background: rgba(0,0,0,0.05) !important;
}
.bi-sheet-tab.active {
  background: #fff !important;
  color: #1A73E8 !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #1A73E8 !important;
  box-shadow: 0 -1px 3px rgba(0,0,0,0.1) !important;
}

/* ── PART 2: Hide add-sheet button ── */
#sheetTabAdd { display: none !important; }

/* ── PART 4: Scrollbar — clean minimal ── */
.bi-grid-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.bi-grid-scroll::-webkit-scrollbar-track { background: #F1F3F4; }
.bi-grid-scroll::-webkit-scrollbar-thumb { background: #BDC1C6; border-radius: 4px; }
.bi-grid-scroll::-webkit-scrollbar-thumb:hover { background: #9AA0A6; }

/* ── PART 4: Filter active indicator ── */
.bi-col-filter-btn.active { color: #1A73E8 !important; }

/* ── PART 4: Sorted column header ── */
.bi-tbl th.sorted { background: #EEF2FF !important; }

/* ── PART 7: Workbook info bar ── */
#wbInfoBar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 2px 14px;
  background: #F8F9FA;
  border-bottom: 1px solid #E1E1E1;
  font-size: 10px;
  color: #5F6368;
  flex-shrink: 0;
}
#wbInfoBar .wb-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 7px;
  background: #E8F0FE;
  color: #1A73E8;
  border-radius: 10px;
  font-weight: 600;
  font-size: 10px;
}
#wbInfoBar .wb-readonly {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 7px;
  background: #FEF3C7;
  color: #92400E;
  border-radius: 10px;
  font-weight: 500;
  font-size: 10px;
}

/* ── PART 5: Query builder tree ── */
/* qb-tree CSS replaced by enterprise styles above */

/* ── PART 8: Empty state polish ── */
.bi-empty-state {
  color: #80868B !important;
}
.bi-es-title { font-weight: 600 !important; color: #5F6368 !important; }
.bi-es-sub { font-size: 12px !important; }

/* ════════════════════════════════════════════════════════
   V10 UX POLISH — Visual consistency, button standardization,
   spacing harmony, module coherence
   ════════════════════════════════════════════════════════ */

/* ── TOKEN REINFORCEMENT ────────────────────────────────
   Ensure consistent transition & focus ring across all
   interactive elements, without overriding logic/behavior.
   ─────────────────────────────────────────────────────── */
:root {
  --btn-h: 28px;           /* standard button height */
  --btn-h-sm: 24px;        /* small / toolbar button height */
  --btn-h-lg: 34px;        /* large CTA button height */
  --transition: all 0.13s ease;
  --focus-ring: 0 0 0 2px rgba(218,119,86,.28);
  --r-btn: 6px;
}

/* ── CRM TOP NAV — tighten avatar & icon sizes ─────────── */
.nav-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 12px;
  transition: var(--transition);
}
.nav-icon:hover {
  background: var(--bg);
  border-color: var(--border);
  color: var(--dark);
}
.nav-avatar {
  width: 28px;
  height: 28px;
  font-size: 10px;
  transition: var(--transition);
}
.nav-avatar:hover {
  opacity: 0.88;
}
.crm-search {
  height: 28px;
  padding: 0 12px;
  gap: 7px;
  transition: border-color 0.13s;
}
.crm-search:focus-within {
  border-color: var(--terra);
}

/* ── SIDEBAR ────────────────────────────────────────────
   Standardize item padding, font, border-left transition
   ─────────────────────────────────────────────────────── */
.crm-sb-item {
  padding: 7px 14px;
  font-size: 11px;
  border-left: 2px solid transparent;
  transition: var(--transition);
}
.crm-sb-item:hover {
  background: var(--bg);
  color: var(--terra);
}
.crm-sb-item.active {
  background: var(--terra-h);
  color: var(--terra);
  font-weight: 600;
  border-left-color: var(--terra);
}
.crm-sb-section-label {
  font-size: 8px;
  padding: 8px 14px 3px;
  letter-spacing: .09em;
  color: #9AA0A6;
}
.bi-subtree-item {
  padding: 5px 14px 5px 34px;
  font-size: 11px;
  transition: var(--transition);
}
.v7-sb-tab {
  font-size: 9px;
  letter-spacing: .06em;
  transition: var(--transition);
}
.v7-sb-row {
  padding: 7px 14px;
  font-size: 11px;
  transition: var(--transition);
}

/* ── MENU BAR ────────────────────────────────────────────
   Standardize menu item height, hover states
   ─────────────────────────────────────────────────────── */
.v7-menubar {
  height: 34px;
  padding: 0 10px;
}
.v7-menu-item {
  font-size: 11px;
  padding: 0 9px;
  height: 100%;
  transition: var(--transition);
  border-radius: 3px;
}
.v7-menu-item:hover {
  background: var(--bg);
  color: var(--terra);
}
.v7-dd {
  border-radius: var(--r8);
  padding: 5px 0;
  box-shadow: 0 6px 24px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.06);
}
.v7-dd-item {
  padding: 7px 14px;
  font-size: 11px;
  transition: var(--transition);
}
.v7-dd-item:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.v7-dd-kbd {
  font-size: 9px;
  color: #B0B7BF;
  background: var(--bg);
  padding: 1px 5px;
  border-radius: 3px;
  border: 1px solid var(--div);
  font-family: monospace;
  letter-spacing: 0;
}

/* ── TOOLBAR BUTTONS — uniform 28px height ────────────── */
.bi-tb-btn {
  height: var(--btn-h);
  padding: 0 10px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r-btn);
  border: 1px solid var(--div);
  transition: var(--transition);
  letter-spacing: .01em;
  gap: 5px;
}
.bi-tb-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.bi-tb-btn:active {
  transform: translateY(1px);
}
.bi-tb-btn.primary {
  background: var(--terra);
  border-color: var(--terra);
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.bi-tb-btn.primary:hover {
  background: #C86B44;
  box-shadow: 0 3px 10px rgba(218,119,86,.35);
}
.bi-tb-btn:disabled,
.bi-tb-btn[disabled] {
  opacity: 0.38;
  cursor: not-allowed;
  pointer-events: none;
}
.bi-tb-search {
  height: var(--btn-h);
  border-radius: var(--r-btn);
  transition: border-color 0.13s;
}
.bi-tb-search:focus-within {
  border-color: var(--terra);
}
.v7-source-dd {
  height: var(--btn-h);
  border-radius: var(--r-btn);
  padding: 0 10px 0 8px;
  transition: var(--transition);
}
.zoom-ctrl {
  height: var(--btn-h);
  border-radius: var(--r-btn);
}
.zoom-btn {
  width: var(--btn-h);
  font-size: 15px;
  transition: var(--transition);
}
.zoom-btn:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.zoom-pct {
  font-size: 10px;
  min-width: 40px;
}
.v7-power-btn {
  height: var(--btn-h);
  padding: 0 11px;
  font-size: 11px;
  border-radius: var(--r-btn);
  transition: var(--transition);
}
.v7-power-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}

/* ── SAVED VIEWS BAR ─────────────────────────────────── */
.saved-views-bar {
  padding: 5px 14px;
  min-height: 32px;
  gap: 6px;
}
.sv-chip {
  height: 22px;
  padding: 0 10px;
  font-size: 10px;
  border-radius: var(--r100);
  transition: var(--transition);
}
.sv-chip:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.sv-chip.active {
  background: var(--terra-h);
  border-color: var(--terra-b);
  color: var(--terra);
  font-weight: 600;
}
.sv-add {
  height: 22px;
  padding: 0 8px;
  font-size: 10px;
  transition: var(--transition);
}
.sv-add:hover {
  border-color: var(--terra);
  color: var(--terra);
}

/* ── FILTER CHIPS ────────────────────────────────────── */
.bi-filter-row {
  padding: 5px 14px;
  min-height: 34px;
  gap: 5px;
}
.bi-fc {
  height: 22px;
  padding: 0 9px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r100);
  gap: 5px;
}
.bi-fc-x {
  font-size: 11px;
  opacity: 0.5;
  transition: opacity 0.1s;
}
.bi-fc-x:hover {
  opacity: 1;
}

/* ── TABLE POLISH ────────────────────────────────────────
   Row hover, selected row, header, sort indicators
   ─────────────────────────────────────────────────────── */
.bi-tbl tbody tr:hover td:not(.rn):not(.chk-td) {
  background: #FDF3EF !important;
}
.bi-tbl tr.selected-row td:not(.rn):not(.chk-td) {
  background: #EEF4FF !important;
}
.bi-tbl tr.selected-row td.rn {
  background: #DBE8FD !important;
  color: #1A73E8 !important;
  font-weight: 700 !important;
}
.bi-tbl td.cell-selected {
  outline: 2px solid var(--terra) !important;
  outline-offset: -2px !important;
  background: rgba(218,119,86,.05) !important;
}
.bi-tbl th.sorted {
  background: #FEF3EF !important;
}
.bi-tbl th.sorted .bi-col-name {
  color: var(--terra) !important;
}
/* filter active ─ terra accent consistent with brand */
.bi-col-filter-btn.active {
  color: var(--terra) !important;
}

/* ── TABLE HEADER CLARITY ─────────────────────────────── */
.bi-th-inner {
  padding: 6px 6px 6px 9px;
  gap: 4px;
}
.bi-sort-btn {
  font-size: 9px;
  opacity: 0.22;
  transition: opacity 0.1s;
}
.bi-th-inner:hover .bi-sort-btn {
  opacity: 0.65;
}
.bi-tbl th.sorted .bi-sort-btn {
  opacity: 1;
  color: var(--terra);
}

/* ── SHEET TABS — cleaner active state ────────────────── */
.bi-sheet-tabs {
  height: 34px !important;
  background: #F1F3F4 !important;
}
.bi-sheet-tab {
  font-size: 11px !important;
  padding: 0 14px !important;
  min-width: 72px !important;
  transition: background 0.1s, color 0.1s !important;
}
.bi-sheet-tab:hover {
  background: rgba(0,0,0,.04) !important;
}
.bi-sheet-tab.active {
  background: #fff !important;
  font-weight: 600 !important;
  box-shadow: 0 -2px 0 0 #DA7756 inset, 0 -1px 4px rgba(0,0,0,.08) !important;
  color: #DA7756 !important;
  border-bottom: none !important;
}
.bi-sheet-tab .tab-close {
  width: 15px;
  height: 15px;
  border-radius: 3px;
  font-size: 10px;
  transition: var(--transition);
}
.bi-sheet-tab .tab-close:hover {
  background: rgba(218,119,86,.18);
  color: var(--terra);
}

/* ── GRID FOOTER ─────────────────────────────────────── */
.bi-grid-footer {
  padding: 5px 14px;
  min-height: 30px;
  background: #FAFAFA;
  border-top: 1px solid #E8E8E8;
}
.bi-footer-stats {
  font-size: 10px;
  color: #80868B;
  gap: 16px;
}
.bi-footer-stat b {
  color: var(--dark);
  font-weight: 700;
}
.pg-btn {
  height: 24px;
  min-width: 24px;
  font-size: 10px;
  border-radius: 4px;
  border: 1px solid var(--div);
  transition: var(--transition);
}
.pg-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
}
.pg-btn.a {
  background: var(--terra);
  border-color: var(--terra);
  color: #fff;
}
.pg-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* ── RIGHT PANEL TABS — uniform height & spacing ─────── */
.bi-rp-tabs {
  height: 36px;
}
.bi-rp-tab {
  font-size: 10px;
  font-weight: 600;
  padding: 0 4px;
  letter-spacing: .01em;
  transition: var(--transition);
}
.bi-rp-tab:hover {
  color: var(--dark);
  background: var(--bg);
}
.bi-rp-tab.active {
  color: var(--terra);
  border-bottom-color: var(--terra);
}
.bi-rp-body {
  padding: 14px 12px;
}
.bi-rp-section {
  margin-bottom: 16px;
}
.bi-rp-section-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #9AA0A6;
  margin-bottom: 7px;
}
.bi-rp-select {
  padding: 6px 8px;
  border-radius: var(--r6);
  font-size: 11px;
  transition: border-color 0.13s;
}
.bi-rp-select:focus {
  border-color: var(--terra);
  outline: none;
  box-shadow: var(--focus-ring);
}

/* ── RIGHT PANEL FOOTER BUTTONS ───────────────────────── */
.bi-rp-footer {
  padding: 10px 12px;
  gap: 8px;
  border-top: 1px solid var(--div);
}
.bi-rp-footer-btn {
  height: var(--btn-h-lg);
  padding: 0 14px;
  border-radius: var(--r8);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  gap: 6px;
}
.bi-rp-footer-btn.primary {
  background: var(--terra);
  border: none;
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.28);
}
.bi-rp-footer-btn.primary:hover {
  background: #C86B44;
  box-shadow: 0 3px 12px rgba(218,119,86,.38);
}
.bi-rp-footer-btn.secondary {
  background: var(--white);
  border: 1px solid var(--div);
  color: var(--dark);
}
.bi-rp-footer-btn.secondary:hover {
  border-color: var(--terra);
  color: var(--terra);
}
.push-crm-btn {
  height: var(--btn-h-lg);
  border-radius: var(--r8);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  letter-spacing: .01em;
}
.push-crm-btn:hover {
  background: #C86B44;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(218,119,86,.35);
}

/* ── CHART TYPE BUTTONS ───────────────────────────────── */
.chart-type-btn {
  padding: 10px 4px;
  border-radius: var(--r8);
  border: 1px solid var(--div);
  gap: 5px;
  transition: var(--transition);
}
.chart-type-btn:hover {
  border-color: var(--terra);
  background: var(--terra-h);
}
.chart-type-btn.active {
  border-color: var(--terra);
  background: var(--terra-h);
  box-shadow: 0 0 0 2px var(--terra-b);
}
.chart-type-btn .ct-label {
  font-size: 10px;
  font-weight: 600;
}

/* ── COLOUR SWATCHES ──────────────────────────────────── */
.colour-swatch {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid transparent;
  transition: var(--transition);
}
.colour-swatch:hover {
  transform: scale(1.18);
  border-color: rgba(0,0,0,.2);
}
.colour-swatch.active {
  border-color: var(--dark);
  transform: scale(1.1);
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(0,0,0,.15);
}

/* ── CHART PREVIEW ────────────────────────────────────── */
.bi-chart-preview {
  border-radius: var(--r8);
  overflow: hidden;
  border: 1px solid var(--div);
}
.bi-chart-preview-empty {
  height: 160px;
  font-size: 11px;
  color: #9AA0A6;
  line-height: 1.7;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* ── TOGGLE SWITCH ────────────────────────────────────── */
.toggle-switch {
  width: 30px;
  height: 17px;
  border-radius: 9px;
  transition: background 0.2s;
}
.toggle-switch::after {
  width: 13px;
  height: 13px;
  top: 2px;
  left: 2px;
}
.toggle-switch.on::after {
  left: 15px;
}

/* ── AI PANEL POLISH ──────────────────────────────────── */
.ai-prompt-wrap {
  position: relative;
}
.ai-prompt-input {
  border-radius: var(--r8);
  font-size: 12px;
  padding: 9px 38px 9px 11px;
  min-height: 72px;
  line-height: 1.6;
  border: 1px solid #D1D5DB;
  background: var(--white);
  transition: border-color 0.13s, box-shadow 0.13s;
}
.ai-prompt-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.ai-prompt-send {
  width: 28px;
  height: 28px;
  border-radius: var(--r6);
  font-size: 14px;
  bottom: 7px;
  right: 7px;
  transition: var(--transition);
}
.ai-prompt-send:hover {
  background: #C86B44;
  box-shadow: 0 2px 8px rgba(218,119,86,.4);
}
.ai-chips {
  gap: 5px;
  margin: 7px 0 2px;
  flex-wrap: wrap;
}
.ai-chip {
  height: 24px;
  padding: 0 10px;
  font-size: 10px;
  font-weight: 500;
  border-radius: var(--r100);
  border: 1px solid #E2E8F0;
  background: #F8FAFC;
  color: #4A5568;
  transition: var(--transition);
  gap: 4px;
}
.ai-chip:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.ai-action-btn {
  height: var(--btn-h-sm);
  padding: 0 11px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  transition: var(--transition);
  gap: 4px;
}
.ai-action-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.ai-action-btn.primary {
  background: var(--terra);
  border-color: var(--terra);
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.ai-action-btn.primary:hover {
  background: #C86B44;
}
.ai-insight-text {
  font-size: 11px;
  line-height: 1.7;
  border-left: 3px solid var(--terra);
  padding: 9px 11px;
  border-radius: 0 var(--r6) var(--r6) 0;
  background: rgba(218,119,86,.05);
  color: var(--dark);
}
.ai-chart-box {
  border-radius: var(--r8);
  border: 1px solid var(--div);
  overflow: hidden;
}
.ai-chart-header {
  padding: 9px 11px;
  border-bottom: 1px solid var(--div);
  background: var(--bg);
}
.ai-chart-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--dark);
}
.ai-chart-meta {
  font-size: 9px;
  color: var(--sage);
}
.ai-chart-actions {
  padding: 8px 10px;
  gap: 6px;
  border-top: 1px solid var(--div);
  background: var(--bg);
}
.ai-empty {
  padding: 24px 14px;
  gap: 9px;
}
.ai-empty-ico {
  font-size: 26px;
  opacity: 0.4;
}
.ai-empty-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--dark);
}
.ai-empty-sub {
  font-size: 10px;
  color: var(--sage);
  line-height: 1.65;
}
.ai-history-label {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 5px;
}
.ai-hist-item {
  padding: 5px 8px;
  border-radius: var(--r6);
  font-size: 10px;
  gap: 6px;
  transition: var(--transition);
}
.ai-hist-item:hover {
  background: var(--bg);
  border-color: var(--div);
  color: var(--dark);
}

/* ── DASHBOARD POLISH override — all handled by main block above ── */

/* ── REPORTS — sidebar items ──────────────────────────── */
.v7-report-item {
  padding: 8px 14px;
  font-size: 11px;
  border-left: 2px solid transparent;
  transition: var(--transition);
}
.v7-report-item:hover {
  background: var(--bg);
  border-left-color: var(--terra);
}
.v7-report-item-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--dark);
}
.v7-report-item-meta {
  font-size: 9px;
  color: var(--sage);
  margin-top: 1px;
}

/* ── QUERY BUILDER POLISH ─────────────────────────────── */
.qb-header {
  padding: 18px 22px 14px;
  background: #FAFBFC;
}
.qb-header-title {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
}
.qb-header-sub {
  font-size: 11px;
  color: #64748B;
  margin-top: 1px;
}
.qb-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
}
.qb-close-btn {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  font-size: 13px;
  transition: var(--transition);
}
.qb-steps {
  padding: 12px 22px;
  gap: 0;
}
.qb-step-num {
  width: 22px;
  height: 22px;
  font-size: 9px;
}
.qb-step-label {
  font-size: 10px;
}
.qb-explorer {
  padding: 14px 10px;
}
.qb-module-header {
  padding: 6px 9px;
  border-radius: 7px;
  font-size: 11px;
  transition: var(--transition);
}
.qb-module-icon {
  width: 22px;
  height: 22px;
  border-radius: 5px;
  font-size: 11px;
}
.qb-card {
  border-radius: 10px;
  border: 1px solid #E8ECF0;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  background: #fff;
  overflow: visible;
  flex-shrink: 0;
}
.qb-card-header {
  padding: 12px 14px 10px;
  border-bottom: 1px solid #F1F3F5;
  gap: 10px;
}
.qb-card-title {
  font-size: 12px;
  font-weight: 700;
  color: #1E293B;
}
.qb-card-body {
  padding: 12px 14px 14px;
}
.qb-card-step-badge {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content:center;
  flex-shrink: 0;
}
.qb-btn {
  height: 34px;
  padding: 0 16px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  gap: 5px;
}
.qb-btn.ghost {
  border: 1px solid #E2E8F0;
  background: #fff;
  color: #64748B;
}
.qb-btn.ghost:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.qb-btn.secondary {
  border: 1px solid #E2E8F0;
  background: #F8FAFC;
  color: #374151;
}
.qb-btn.secondary:hover {
  background: #F1F5F9;
  border-color: #CBD5E1;
}
.qb-btn.primary {
  border: none;
  background: linear-gradient(135deg, #DA7756, #C86B44);
  color: #fff;
  box-shadow: 0 2px 8px rgba(218,119,86,.32);
}
.qb-btn.primary:hover {
  box-shadow: 0 4px 16px rgba(218,119,86,.44);
  transform: translateY(-1px);
}
.qb-btn.primary:active {
  transform: translateY(0);
}
.qb-footer {
  padding: 12px 22px;
  gap: 8px;
}
.qb-name-input {
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  border: 1.5px solid #E2E8F0;
  transition: border 0.13s, box-shadow 0.13s;
}
.qb-name-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.qb-field-search {
  border-radius: 7px;
  padding: 7px 10px 7px 30px;
  font-size: 11px;
  transition: border-color 0.13s, box-shadow 0.13s;
}
.qb-field-search:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.qb-field-item {
  padding: 5px 10px;
  font-size: 10px;
  gap: 7px;
  transition: background 0.08s;
}
.qb-field-item:hover {
  background: #F5F7FA;
}
.qb-summary-card {
  border-radius: 9px;
  border: 1px solid #E8ECF0;
  overflow: hidden;
}
.qb-summary-header {
  padding: 8px 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .02em;
}
.qb-summary-body {
  padding: 10px 12px;
  gap: 9px;
}
.qb-summary-key {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .09em;
  color: #9AA0A6;
}
.qb-summary-val {
  font-size: 11px;
  font-weight: 600;
  color: #1E293B;
}
.qb-stat-card {
  border-radius: 8px;
  border: 1px solid #E8ECF0;
  padding: 10px 12px;
  gap: 10px;
}
.qb-stat-icon {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  font-size: 14px;
}
.qb-stat-val {
  font-size: 15px;
  font-weight: 800;
}
.qb-stat-label {
  font-size: 9px;
  color: #9AA0A6;
  margin-top: 1px;
}

/* ── MODALS ───────────────────────────────────────────── */
.modal {
  border-radius: var(--r12);
  box-shadow: 0 24px 60px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.06);
}
.modal-header {
  padding: 16px 18px 14px;
  border-bottom: 1px solid var(--div);
}
.modal-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--dark);
}
.modal-x {
  width: 26px;
  height: 26px;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--sage);
  transition: var(--transition);
}
.modal-x:hover {
  background: var(--err-bg);
  color: var(--err-dark);
  border-color: transparent;
}
.modal-body {
  padding: 16px 18px;
}
.modal-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--sage);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 5px;
  display: block;
}
.modal-input {
  height: 34px;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  padding: 0 10px;
  font-size: 12px;
  transition: border-color 0.13s, box-shadow 0.13s;
}
.modal-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.modal-select {
  height: 34px;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  padding: 0 8px;
  font-size: 12px;
  transition: border-color 0.13s;
}
.modal-select:focus {
  border-color: var(--terra);
  outline: none;
}
.modal-footer {
  padding: 12px 18px 16px;
  border-top: 1px solid var(--div);
  gap: 8px;
}
.modal-btn {
  height: var(--btn-h-lg);
  padding: 0 18px;
  border-radius: var(--r6);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
}
.modal-btn.cancel {
  border: 1px solid var(--div);
  background: var(--white);
  color: var(--sage);
}
.modal-btn.cancel:hover {
  border-color: var(--border);
  color: var(--dark);
}
.modal-btn.confirm {
  background: var(--terra);
  border: none;
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.modal-btn.confirm:hover {
  background: #C86B44;
  box-shadow: 0 3px 12px rgba(218,119,86,.38);
}

/* ── FILTER DROPDOWN ──────────────────────────────────── */
.filter-dropdown {
  border-radius: var(--r10);
  box-shadow: 0 8px 28px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
}
.filter-dd-header {
  padding: 10px 13px;
  font-size: 11px;
  font-weight: 700;
  color: var(--dark);
  border-bottom: 1px solid var(--div);
}
.filter-dd-section {
  padding: 9px 13px;
  border-bottom: 1px solid var(--div);
}
.filter-dd-section-label {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 6px;
}
.filter-sort-btn {
  padding: 5px 7px;
  border-radius: var(--r6);
  font-size: 11px;
  transition: var(--transition);
  gap: 7px;
}
.filter-sort-btn:hover {
  background: var(--bg);
  color: var(--terra);
}
.filter-dd-btn {
  height: 30px;
  padding: 0 14px;
  border-radius: var(--r6);
  font-size: 10px;
  font-weight: 600;
  transition: var(--transition);
  cursor: pointer;
}
.filter-dd-btn.apply {
  background: var(--terra);
  border: none;
  color: #fff;
}
.filter-dd-btn.apply:hover {
  background: #C86B44;
}
.filter-dd-btn.clear {
  background: var(--white);
  border: 1px solid var(--div);
  color: var(--sage);
}
.filter-dd-btn.clear:hover {
  border-color: var(--border);
  color: var(--dark);
}
.filter-dd-footer {
  display: flex;
  gap: 6px;
  padding: 8px 13px;
  border-top: 1px solid var(--div);
  justify-content: flex-end;
}

/* ── 3-DOT MENUS ──────────────────────────────────────── */
.v7-3dot-menu {
  border-radius: var(--r8);
  box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
  padding: 4px 0;
}
.v7-3dot-item {
  padding: 6px 14px;
  font-size: 11px;
  transition: var(--transition);
}
.v7-3dot-item:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.v7-3dot-item.danger {
  color: var(--err-dark);
}
.v7-3dot-item.danger:hover {
  background: var(--err-bg);
  color: var(--err-dark);
}
/* 3dot trigger button */
.v7-sb-row-3dot {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  font-size: 12px;
  transition: var(--transition);
}
.v7-sb-row-3dot:hover {
  background: var(--div);
  color: var(--dark);
}

/* ── GRID RIGHT-CLICK MENU ────────────────────────────── */
.grid-ctx-menu {
  border-radius: var(--r8);
  box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
  padding: 4px 0;
}
.grid-ctx-item {
  padding: 7px 14px;
  font-size: 11px;
  transition: var(--transition);
}
.grid-ctx-item:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.grid-ctx-item.danger:hover {
  background: var(--err-bg);
  color: var(--err-dark);
}
.grid-ctx-kbd {
  font-size: 9px;
  color: #B0B7BF;
  background: var(--bg);
  padding: 1px 5px;
  border-radius: 3px;
  border: 1px solid var(--div);
  font-family: monospace;
}

/* ── EMPTY STATE ──────────────────────────────────────── */
.bi-empty-state {
  gap: 14px;
  padding: 48px 40px;
}
.bi-es-ico {
  font-size: 40px;
  opacity: 0.22;
}
.bi-es-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--dark) !important;
}
.bi-es-sub {
  font-size: 12px !important;
  color: var(--sage);
  line-height: 1.7;
  max-width: 340px;
}
.bi-es-btn {
  height: var(--btn-h-lg);
  padding: 0 18px;
  border-radius: var(--r8);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  gap: 6px;
}
.bi-es-btn.primary {
  background: var(--terra);
  border: none;
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.bi-es-btn.primary:hover {
  background: #C86B44;
  box-shadow: 0 3px 12px rgba(218,119,86,.35);
}
.bi-es-btn.secondary {
  background: var(--white);
  border: 1px solid var(--div);
  color: var(--dark);
}
.bi-es-btn.secondary:hover {
  border-color: var(--terra);
  color: var(--terra);
}

/* ── BULK ACTION BAR ──────────────────────────────────── */
.bulk-bar {
  padding: 6px 14px;
  gap: 7px;
  background: var(--terra);
}
.bulk-bar-text {
  font-size: 11px;
  font-weight: 600;
  color: #fff;
}
.bulk-btn {
  height: var(--btn-h-sm);
  padding: 0 11px;
  border-radius: var(--r6);
  font-size: 10px;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.15);
  color: #fff;
  transition: var(--transition);
}
.bulk-btn:hover {
  background: rgba(255,255,255,.28);
}
.bulk-btn.danger {
  border-color: rgba(255,255,255,.25);
  background: rgba(231,132,142,.32);
}

/* ── CONTEXT BAR ──────────────────────────────────────── */
.v7-ctx-bar {
  padding: 4px 14px;
  min-height: 28px;
  gap: 10px;
  font-size: 10px;
  background: var(--white);
  border-bottom: 1px solid var(--div);
}
.v7-ctx-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ok);
}

/* ── HOME SCREEN ──────────────────────────────────────── */
#v7Home {
  padding: 32px 36px;
}
.v7-home-section-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 12px;
}
.v7-home-card {
  border-radius: var(--r10);
  padding: 16px;
  border: 1px solid var(--div);
  transition: var(--transition);
}
.v7-home-card:hover {
  border-color: var(--terra);
  box-shadow: 0 4px 18px rgba(218,119,86,.12);
  transform: translateY(-2px);
}
.v7-home-card-icon {
  width: 30px;
  height: 30px;
  border-radius: var(--r8);
  margin-bottom: 10px;
  transition: var(--transition);
}
.v7-home-card-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 3px;
}
.v7-home-card-sub {
  font-size: 10px;
  color: var(--sage);
  line-height: 1.5;
}

/* ── CELL POPOVER ─────────────────────────────────────── */
.cell-popover {
  border-radius: var(--r8);
  padding: 12px 14px;
  font-size: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
  border: 1px solid var(--div);
}
.cell-popover-label {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 5px;
}

/* ── CHART TITLE INPUT ────────────────────────────────── */
.chart-title-input {
  border-radius: var(--r6);
  padding: 6px 9px;
  font-size: 11px;
  border: 1px solid var(--div);
  transition: border-color 0.13s, box-shadow 0.13s;
}
.chart-title-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}

/* ── PIVOT BUILDER WITHIN RIGHT PANEL ────────────────── */
.pivot-field-well {
  border-radius: var(--r6);
  min-height: 34px;
  padding: 5px 7px;
  gap: 4px;
  transition: border-color 0.13s;
}
.pivot-field-well:focus-within {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
}
.pivot-pill {
  height: 22px;
  padding: 0 8px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r100);
  gap: 4px;
}
.pivot-pill-x {
  opacity: 0.45;
  transition: opacity 0.1s;
}
.pivot-pill-x:hover {
  opacity: 1;
}

/* ── SAVED VIEW CHIPS in TOOLBAR ─────────────────────── */
.bi-filter-row.has-filters {
  background: rgba(218,119,86,.03);
}

/* ── STALE PIVOT BANNER ───────────────────────────────── */
.pivot-stale-banner {
  background: rgba(237,196,136,.12);
  border-bottom: 1px solid rgba(237,196,136,.4);
  padding: 5px 14px;
  font-size: 11px;
  color: var(--warn-dark);
  gap: 8px;
  align-items: center;
}
.pivot-stale-refresh {
  height: 20px;
  font-size: 10px;
  font-weight: 600;
  padding: 0 9px;
  border-radius: var(--r100);
  transition: var(--transition);
}

/* ── SOURCE DROPDOWN TAG ──────────────────────────────── */
.v7-source-dd {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  background: var(--bg);
  border: 1px solid var(--div);
  border-radius: var(--r6);
  cursor: pointer;
  position: relative;
  transition: border-color 0.13s;
}
.v7-source-dd:hover {
  border-color: var(--terra);
}

/* ── CONNECT SOURCE OPTIONS ───────────────────────────── */
.connect-source-option {
  border-radius: var(--r8);
  padding: 10px 13px;
  gap: 10px;
  transition: var(--transition);
}
.connect-source-option:hover {
  border-color: var(--terra);
  background: var(--terra-h);
}
.cso-badge {
  font-size: 8px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: var(--r100);
}

/* ── WORKBOOK INFO BAR ────────────────────────────────── */
#wbInfoBar {
  padding: 3px 14px;
  font-size: 10px;
  gap: 10px;
}
#wbInfoBar .wb-badge {
  height: 18px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 9px;
}
#wbInfoBar .wb-readonly {
  height: 18px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 9px;
}

/* ── PIVOT PREVIEW TABLE ──────────────────────────────── */
.pivot-preview-tbl th {
  background: #EDEBE3;
  padding: 5px 9px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--sage);
}
.pivot-preview-tbl td {
  padding: 5px 9px;
  font-size: 10px;
  color: var(--dark);
}
.pivot-preview-tbl tr:last-child td {
  font-weight: 700;
  background: #EDEBE3;
}

/* END V10 POLISH */


/* ─── QB IMPROVEMENTS: Templates, Field Tabs, Save/Load ─── */

/* Template bar */
.qb-template-bar {
  display:flex; align-items:center; gap:10px; padding:9px 24px;
  border-bottom:1px solid #F1F3F4; background:#FAFBFC;
  flex-shrink:0; overflow-x:auto;
}
.qb-template-label {
  font-size:10px; font-weight:700; color:#94A3B8;
  white-space:nowrap; letter-spacing:.04em; flex-shrink:0;
}
.qb-template-chips { display:flex; gap:6px; flex-wrap:nowrap; }
.qb-template-chip {
  padding:4px 11px; border-radius:20px; font-size:10px; font-weight:600;
  background:#fff; border:1px solid #E2E8F0; color:#475569;
  cursor:pointer; white-space:nowrap; transition:all .12s; flex-shrink:0;
}
.qb-template-chip:hover {
  border-color:#DA7756; color:#DA7756; background:#FFF8F6;
}

/* Save/Load header buttons */
.qb-btn-sm {
  padding:5px 12px; border-radius:7px; font-size:10px; font-weight:600;
  border:1px solid #E2E8F0; background:#fff; color:#475569;
  cursor:pointer; transition:all .12s; font-family:inherit;
}
.qb-btn-sm:hover { border-color:#DA7756; color:#DA7756; }

/* Saved queries panel */
.qb-saved-panel {
  padding:10px 24px; border-bottom:1px solid #F1F3F4; background:#FFFBF9;
  flex-shrink:0;
}
.qb-saved-panel-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:8px;
}
.qb-saved-panel-title { font-size:11px; font-weight:700; color:#374151; }
.qb-saved-chips { display:flex; flex-wrap:wrap; gap:6px; }
.qb-saved-chip {
  display:flex; align-items:center; gap:0; border-radius:6px;
  border:1px solid #E2E8F0; background:#fff; overflow:hidden;
  font-size:10px; transition:border-color .12s;
}
.qb-saved-chip:hover { border-color:#DA7756; }
.qb-saved-chip-name {
  padding:4px 10px; color:#374151; cursor:pointer; font-weight:600;
}
.qb-saved-chip-name:hover { color:#DA7756; }
.qb-saved-chip-del {
  padding:4px 8px; border-left:1px solid #E2E8F0; color:#94A3B8;
  cursor:pointer; font-size:12px; line-height:1;
}
.qb-saved-chip-del:hover { color:#EF4444; background:#FEF2F2; }
.qb-saved-empty {
  font-size:10px; color:#94A3B8; font-style:italic; padding:2px 0;
}

/* Field tabs (Recommended / All Fields) */
.qb-field-tabs {
  display:flex; gap:0; margin-bottom:10px; border-radius:8px;
  border:1px solid #E2E8F0; overflow:hidden; width:-moz-fit-content; width:fit-content;
}
.qb-field-tab {
  padding:5px 14px; font-size:10px; font-weight:600; cursor:pointer;
  color:#64748B; background:#F8FAFC; transition:all .12s;
  border:none; white-space:nowrap;
}
.qb-field-tab:first-child { border-right:1px solid #E2E8F0; }
.qb-field-tab.active { background:#DA7756; color:#fff; }
.qb-field-tab:not(.active):hover { background:#fff; color:#DA7756; }

/* QB module icon font sizing */
.qb-module-icon { font-size:10px; font-weight:800; letter-spacing:-.5px; }


/* ── QB LAYOUT FIX: proper flex column chain ─────────────────────
   query-dialog is a flex column with explicit height.
   Only qb-body grows to fill remaining space (flex:1).
   qb-form is the ONE scrollable area inside qb-body.
   min-height:0 at every flex level prevents overflow expansion.
   ──────────────────────────────────────────────────────────────── */

/* Dialog shell — explicit height so children can flex distribute */
.query-dialog {
  display: flex !important;
  flex-direction: column !important;
  height: 90vh !important;
  max-height: 90vh !important;
  overflow: hidden !important;
}

/* Fixed-height bands — never shrink, never grow */
.qb-header    { flex-shrink: 0 !important; }
.qb-template-bar { flex-shrink: 0 !important; }
.qb-saved-panel  { flex-shrink: 0 !important; }
.qb-steps     { flex-shrink: 0 !important; }
.qb-footer    { flex-shrink: 0 !important; }

/* qb-body: the one growing section — takes all remaining height */
.qb-body {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
}

/* qb-main: passes the space through to qb-form */
.qb-main {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
}

/* qb-form: the ONLY scrollable content area — scrolls vertically */
.qb-form {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  /* Visible scrollbar so user knows content is scrollable */
  scrollbar-width: thin;
  scrollbar-color: #94A3B8 #F1F5F9;
}
.qb-form::-webkit-scrollbar { width: 7px; }
.qb-form::-webkit-scrollbar-track { background: #F1F5F9; border-radius: 4px; }
.qb-form::-webkit-scrollbar-thumb { background: #94A3B8; border-radius: 4px; }
.qb-form::-webkit-scrollbar-thumb:hover { background: #64748B; }

/* Step cards: allow content to show fully — no height clipping */
.qb-card {
  flex-shrink: 0 !important;
  overflow: visible !important;
}

/* Explorer sidebar — scrolls independently */
.qb-explorer {
  min-height: 0 !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
  scrollbar-color: #CBD5E1 transparent;
}
.qb-explorer::-webkit-scrollbar { width: 5px; }
.qb-explorer::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 3px; }

/* Summary sidebar — scrolls independently */
.qb-sidebar {
  min-height: 0 !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
  scrollbar-color: #CBD5E1 transparent;
}
.qb-sidebar::-webkit-scrollbar { width: 5px; }
.qb-sidebar::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 3px; }

/* Step done state — green ring */
.qb-step.done .qb-step-num {
  background: #22C55E !important;
  color: #fff !important;
  box-shadow: 0 0 0 2px #DCFCE7;
}
.qb-step.done .qb-step-label { color: #16A34A !important; }

/* Step active state — terra accent */
.qb-step.active .qb-step-num {
  background: #DA7756 !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(218,119,86,.35);
}
.qb-step.active .qb-step-label { color: #DA7756 !important; font-weight: 700 !important; }

/* Status message in footer */
#qbStatusMsg {
  font-size: 10px;
  color: #94A3B8;
  font-style: italic;
  max-width: 340px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* When status shows ready */
#qbStatusMsg.ready {
  color: #16A34A;
  font-weight: 600;
  font-style: normal;
}

/* col-list scroll within cards */
.query-col-list {
  max-height: 200px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #CBD5E1 transparent;
}
.query-col-list::-webkit-scrollbar { width: 4px; }
.query-col-list::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 2px; }


/* ════════════════════════════════════════════════
   RECORD DETAIL PANEL — Phase 1 + Phase 3
   Row Expand · Inline Edit · Notes
   ════════════════════════════════════════════════ */

/* Dimmer overlay */
.rdp-overlay {
  position: fixed; inset: 0;
  z-index: 448;
  background: rgba(0,0,0,.12);
  display: none; pointer-events: none;
  backdrop-filter: blur(1px);
}
.rdp-overlay.open { display: block; pointer-events: all; }

/* Slide-in panel */
.rdp {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 400px; max-width: 94vw;
  background: #fff;
  box-shadow: -6px 0 40px rgba(0,0,0,.14);
  display: flex; flex-direction: column;
  z-index: 449;
  transform: translateX(110%);
  transition: transform .24s cubic-bezier(.4,0,.2,1);
  font-family: 'Poppins', sans-serif;
}
.rdp.open { transform: translateX(0); }

/* Header */
.rdp-hdr {
  padding: 14px 18px 12px;
  border-bottom: 1px solid #F1F3F4;
  display: flex; align-items: flex-start; gap: 10px;
  flex-shrink: 0;
}
.rdp-icon {
  width: 34px; height: 34px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; flex-shrink: 0;
  letter-spacing: -.5px;
}
.rdp-icon.deals    { background:#EEF5FF; color:#1A73E8; }
.rdp-icon.contacts { background:#E6F4EA; color:#1E8E3E; }
.rdp-icon.clients  { background:#FEF3E2; color:#B06000; }
.rdp-icon.tasks    { background:#F3E8FD; color:#7B1FA2; }
.rdp-icon.default  { background:#F1F3F4; color:#5F6368; }
.rdp-hdr-info { flex:1; min-width:0; }
.rdp-title {
  font-size: 13px; font-weight: 700; color: #202124;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  line-height: 1.3;
}
.rdp-sub { font-size: 10px; color: #94A3B8; margin-top: 2px; }
.rdp-x {
  width: 26px; height: 26px; border-radius: 6px;
  border: 1px solid #E8EAED; background: #F8F9FA;
  color: #5F6368; cursor: pointer; font-size: 12px;
  display: flex; align-items: center; justify-content: center;
  transition: all .12s; flex-shrink: 0; font-family: inherit;
}
.rdp-x:hover { background: #FADBD8; color: #C0392B; border-color: #FADBD8; }

/* Scrollable body */
.rdp-body {
  flex: 1; overflow-y: auto; min-height: 0;
  scrollbar-width: thin; scrollbar-color: #CBD5E1 transparent;
}
.rdp-body::-webkit-scrollbar { width: 4px; }
.rdp-body::-webkit-scrollbar-thumb { background:#CBD5E1; border-radius:2px; }

/* Section label */
.rdp-sec {
  font-size: 9px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: #94A3B8;
  padding: 12px 18px 8px;
  background: #FAFBFC;
  border-bottom: 1px solid #F1F3F4;
  border-top: 1px solid #F1F3F4;
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 4px;
}
.rdp-sec-hint {
  font-size: 9px; color: #DA7756; font-weight: 500;
  text-transform: none; letter-spacing: 0;
}

/* Fields list */
.rdp-fields { padding: 2px 0 6px; }
.rdp-field {
  display: flex; align-items: flex-start;
  padding: 7px 18px; gap: 12px;
}
.rdp-field:hover { background: #FAFBFC; }
.rdp-fl {
  width: 114px; flex-shrink: 0;
  font-size: 10px; font-weight: 600; color: #94A3B8;
  padding-top: 3px; line-height: 1.4;
}
.rdp-fv {
  flex: 1; font-size: 11px; color: #202124;
  line-height: 1.4; word-break: break-word;
  cursor: text; padding: 2px 6px;
  border-radius: 5px; border: 1px solid transparent;
  transition: all .12s; min-height: 22px;
  display: flex; align-items: center;
}
.rdp-fv:hover { border-color: #E2E8F0; background: #fff; }
.rdp-fv.editing { border-color: #DA7756 !important; background:#fff !important; }
.rdp-fv input,
.rdp-fv select {
  width: 100%; border: none; outline: none;
  font-family: 'Poppins', sans-serif;
  font-size: 11px; color: #202124; background: transparent;
}
.rdp-fv select { cursor: pointer; }

/* Notes area */
.rdp-notes-body { padding: 10px 18px 18px; }
.rdp-note-box {
  border: 1px solid #E2E8F0; border-radius: 8px;
  overflow: hidden; margin-bottom: 12px; background: #fff;
  transition: border-color .12s;
}
.rdp-note-box:focus-within { border-color: #DA7756; }
.rdp-note-ta {
  width: 100%; padding: 10px 12px;
  font-family: 'Poppins', sans-serif; font-size: 11px;
  color: #202124; border: none; outline: none;
  resize: none; height: 68px; display: block;
}
.rdp-note-ta::-moz-placeholder { color: #94A3B8; }
.rdp-note-ta::placeholder { color: #94A3B8; }
.rdp-note-btn {
  width: 100%; padding: 7px;
  background: #DA7756; color: #fff;
  border: none; cursor: pointer;
  font-family: 'Poppins', sans-serif;
  font-size: 10px; font-weight: 700;
  transition: background .12s; letter-spacing: .02em;
}
.rdp-note-btn:hover { background: #C86B44; }
.rdp-note-item {
  padding: 9px 0;
  border-bottom: 1px solid #F1F3F4;
}
.rdp-note-item:last-child { border-bottom: none; }
.rdp-note-meta {
  display: flex; align-items: center;
  justify-content: space-between; margin-bottom: 4px;
}
.rdp-note-who  { font-size: 10px; font-weight: 600; color: #374151; }
.rdp-note-when { font-size: 9px; color: #94A3B8; }
.rdp-note-txt  { font-size: 11px; color: #374151; line-height: 1.55; }
.rdp-note-del  {
  font-size: 10px; color: #CBD5E1; cursor: pointer;
  padding: 1px 4px; border-radius: 3px; margin-left: 6px;
}
.rdp-note-del:hover { color: #EF4444; background: #FEF2F2; }
.rdp-empty-notes {
  font-size: 11px; color: #94A3B8; font-style: italic;
  text-align: center; padding: 14px 0;
}

/* Row number expand trigger */
.rn { position: relative !important; }
.rn-num { display: block; }
.rn-exp {
  display: none;
  position: absolute; inset: 0;
  cursor: pointer; font-size: 11px;
  color: var(--terra, #DA7756);
  align-items: center; justify-content: center;
  background: rgba(218,119,86,.1);
  border-radius: 2px; font-weight: 700;
  line-height: 1; transition: background .1s;
}
.rn-exp:hover { background: rgba(218,119,86,.2) !important; }
.bi-tbl tr:hover .rn-exp  { display: flex; }
.bi-tbl tr:hover .rn-num  { opacity: 0; }

/* Flash animation when grid cell is updated from panel */
@keyframes rdp-flash {
  0%   { background: rgba(218,119,86,.25) !important; }
  100% { background: transparent; }
}
.bi-tbl td.rdp-edited { animation: rdp-flash .5s ease forwards; }


/* ── Breadcrumb bar ────────────────────────────────────── */
.rdp-bc {
  display: none; flex-shrink: 0;
  padding: 6px 14px;
  background: #F8FAFC; border-bottom: 1px solid #F1F3F4;
  align-items: center; gap: 8px; font-size: 10px;
}
.rdp-bc.show { display: flex; }
.rdp-bc-back {
  color: #DA7756; font-weight: 700; cursor: pointer;
  padding: 3px 9px; border-radius: 5px; white-space: nowrap;
  border: 1px solid rgba(218,119,86,.3); background: rgba(218,119,86,.07);
  transition: background .12s; font-family: inherit; font-size: 10px;
}
.rdp-bc-back:hover { background: rgba(218,119,86,.14); }
.rdp-bc-trail { display: flex; align-items: center; gap: 3px; overflow: hidden; }
.rdp-bc-crumb {
  color: #5F6368; cursor: pointer; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 110px;
}
.rdp-bc-crumb:hover { color: #DA7756; }
.rdp-bc-sep { color: #CBD5E1; font-size: 12px; }

/* ── Linked Records (Phase 2) ───────────────────────────── */
.rdp-icon.products { background: #E8F5E9; color: #2E7D32; }

.rdp-link-group {
  border-bottom: 1px solid #F1F3F4; padding: 4px 0 8px;
}
.rdp-link-group:last-child { border-bottom: none; }
.rdp-link-hd {
  display: flex; align-items: center;
  justify-content: space-between; padding: 6px 18px;
}
.rdp-link-hd-left { display: flex; align-items: center; gap: 8px; }
.rdp-link-lbl { font-size: 11px; font-weight: 700; color: #374151; }
.rdp-link-cnt {
  font-size: 9px; font-weight: 700;
  background: #F1F3F4; color: #5F6368;
  padding: 2px 7px; border-radius: 10px;
}
.rdp-link-item {
  display: flex; align-items: center;
  padding: 5px 18px 5px 46px;
  cursor: pointer; transition: background .1s; gap: 6px;
}
.rdp-link-item:hover { background: #F8FBFF; }
.rdp-link-item-body { flex: 1; min-width: 0; }
.rdp-link-item-name {
  font-size: 11px; color: #202124; font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rdp-link-item-sub { font-size: 9px; color: #94A3B8; margin-top: 1px; }
.rdp-link-arr { font-size: 15px; color: #DADCE0; flex-shrink: 0; line-height: 1; }
.rdp-link-item:hover .rdp-link-arr { color: #DA7756; }
.rdp-link-more {
  font-size: 10px; color: #DA7756; font-weight: 600;
  padding: 3px 18px 3px 46px; cursor: pointer;
}
.rdp-link-more:hover { text-decoration: underline; }
.rdp-empty-links {
  font-size: 11px; color: #94A3B8;
  font-style: italic; padding: 10px 18px;
}

/* ── Activity Timeline (Phase 4) ────────────────────────── */
.rdp-tl { padding: 8px 18px 14px; }
.rdp-tl-item { display: flex; gap: 10px; }
.rdp-tl-left {
  display: flex; flex-direction: column;
  align-items: center; flex-shrink: 0; width: 14px;
}
.rdp-tl-dot {
  width: 10px; height: 10px;
  border-radius: 50%; flex-shrink: 0; margin-top: 3px;
}
.tl-create { background:#22C55E; box-shadow:0 0 0 2px #DCFCE7; }
.tl-edit   { background:#DA7756; box-shadow:0 0 0 2px rgba(218,119,86,.2); }
.tl-note   { background:#6B9BCC; box-shadow:0 0 0 2px #DBEAFE; }
.rdp-tl-line {
  flex: 1; width: 1px;
  background: #E8EAED; margin: 3px 0;
  min-height: 12px;
}
.rdp-tl-right { flex: 1; padding-bottom: 14px; min-width: 0; }
.rdp-tl-desc { font-size: 11px; color: #374151; font-weight: 500; line-height: 1.4; }
.rdp-tl-sub  { font-size: 10px; color: #94A3B8; margin-top: 1px; word-break: break-word; }
.rdp-tl-when { font-size: 9px; color: #CBD5E1; margin-top: 3px; }
.rdp-empty-tl {
  font-size: 11px; color: #94A3B8;
  font-style: italic; padding: 10px 18px;
}


/* ── Additional v15 overrides ── */
.qb-step.completed .qb-step-num { background:#22C55E; color:#fff; }
.qb-step.completed .qb-step-label { color:#16A34A; }
.v7-psc-card.active { border-color: var(--terra) !important; background: var(--terra-h) !important; }
.crm-sb { transition: width .2s, opacity .15s; }
.crm-sb.bi-hidden { width: 0 !important; opacity: 0; pointer-events: none; overflow: hidden; }

/* Responsive Overrides */
@media (max-width: 768px) {
  .crm-sb {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 100;
    box-shadow: 4px 0 16px rgba(0,0,0,0.1);
  }
  .bi-right-panel {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 100;
    box-shadow: -4px 0 16px rgba(0,0,0,0.1);
  }
  .bi-toolbar {
    flex-wrap: wrap;
    height: auto;
    padding: 8px 14px;
  }
  .dash-toolbar {
    flex-wrap: wrap;
    height: auto;
    padding: 8px 16px;
  }
  .bi-source-dd {
    max-width: 150px;
  }
  .bi-tb-search input {
    width: 100px;
  }
  .zoom-ctrl {
    display: none;
  }
}
:root {
  --bg: #F6F4EE;
  --dark: #2C2C2C;
  --terra:#DA7756;--terra-h:rgba(218,119,86,.1);--terra-b:rgba(218,119,86,.25);
  --bg:#fcfcfb--dark:#2C2C2C;--white:#fff;
  --sage:#798C5E;--sage-h:rgba(121,140,94,.1);
  --blue:#6B9BCC;--lav:#CECBF6;--teal:#9EC8BA;
  --ok:#108C72;--ok-bg:rgba(16,140,114,.1);
  --warn:#EDC488;--warn-bg:rgba(237,196,136,.15);--warn-dark:#8B6914;
  --err:#E7848E;--err-bg:rgba(231,132,142,.12);--err-dark:#C0303D;
  --border:#C4B89D;--div:#D8D4CC;
  --r4:4px;--r6:6px;--r8:8px;--r10:10px;--r12:12px;--r100:100px;
  --shadow:0 1px 4px rgba(0,0,0,.07);--shadow-md:0 4px 16px rgba(0,0,0,.1);--shadow-lg:0 8px 32px rgba(0,0,0,.14);
}
/* BI Studio scoped resets — do not touch body */
.bi-workspace *,.crm-sb *,.crm-nav *,.bi-right-panel *,.bi-grid-wrap *,.v7-menubar *,.bi-sheet-tabs *,.bi-dashboard * { box-sizing: border-box; }

/* ══ CRM TOP NAV ══ */
.crm-nav{height:48px;background:var(--white);border-bottom:1px solid var(--div);display:flex;align-items:center;padding:0 20px;gap:14px;flex-shrink:0;z-index:100}
.crm-logo{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0}
.crm-logo-mark{width:28px;height:28px;background:var(--terra);border-radius:7px;display:flex;align-items:center;justify-content:center}
.crm-logo-mark svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:2.5}
.crm-logo-text{font-size:13px;font-weight:700;color:var(--dark)}
.crm-logo-sub{font-size:8px;color:var(--sage);font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.crm-nav-mid{flex:1;display:flex;justify-content:center}
.crm-search{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r100);padding:5px 14px;width:240px}
.crm-search input{border:none;background:none;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;width:100%}
.crm-search input::-moz-placeholder{color:var(--sage)}
.crm-search input::placeholder{color:var(--sage)}
.crm-search-icon{font-size:11px;color:var(--sage)}
.crm-nav-right{display:flex;align-items:center;gap:6px}
.crm-badge{font-size:9px;font-weight:600;background:#EDC48820;color:var(--warn-dark);border:1px solid #EDC48844;border-radius:var(--r100);padding:2px 8px}
.nav-avatar{width:26px;height:26px;border-radius:50%;background:var(--terra);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;cursor:pointer;flex-shrink:0}
.nav-icon{width:26px;height:26px;border-radius:50%;border:1px solid var(--div);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;color:var(--sage)}

/* ══ MAIN LAYOUT ══ */
.main-layout{flex:1;display:flex;overflow:hidden}

/* ══ CRM SIDEBAR ══ */
.crm-sb{width:200px;flex-shrink:0;background:var(--white);border-right:1px solid var(--div);display:flex;flex-direction:column;overflow:hidden;transition:width .2s}
.crm-sb.bi-hidden{display:none!important}
.crm-sb-brand{padding:14px 14px 10px;border-bottom:1px solid var(--div)}
.crm-sb-brand-name{font-size:11px;font-weight:700;color:var(--dark)}
.crm-sb-brand-sub{font-size:9px;color:var(--sage);text-transform:uppercase;letter-spacing:.06em}
.crm-sb-scroll{flex:1;overflow-y:auto;padding:8px 0}
.crm-sb-scroll::-webkit-scrollbar{width:0}
.crm-sb-section{margin-bottom:4px}
.crm-sb-section-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);padding:6px 14px 3px}
.crm-sb-item{display:flex;align-items:center;gap:8px;padding:6px 14px;cursor:pointer;font-size:11px;color:#4A4A4A;transition:all .1s;border-left:2px solid transparent;position:relative}
.crm-sb-item:hover{background:var(--bg);color:var(--dark)}
.crm-sb-item.active{background:var(--terra-h);color:var(--terra);font-weight:600;border-left-color:var(--terra)}
.crm-sb-item-icon{font-size:12px;flex-shrink:0;width:16px;text-align:center}
.crm-sb-item-label{flex:1}
.crm-sb-item-badge{font-size:8px;font-weight:700;padding:1px 5px;border-radius:var(--r100);background:var(--terra);color:#fff;flex-shrink:0}
/* BI expand arrow */
.crm-sb-item-arrow{font-size:9px;color:var(--sage);transition:transform .2s;padding:2px 4px;border-radius:3px;flex-shrink:0}
.crm-sb-item-arrow:hover{background:var(--bg);color:var(--dark)}
.crm-sb-item-arrow.open{transform:rotate(90deg)}
/* BI subtree */
.bi-subtree{display:none;padding:2px 0}
.bi-subtree.open{display:block}
.bi-subtree-section{margin-bottom:2px}
.bi-subtree-hd{display:flex;align-items:center;gap:5px;padding:4px 14px 3px 28px;cursor:pointer}
.bi-subtree-hd:hover .bi-subtree-label{color:var(--dark)}
.bi-subtree-chev{font-size:8px;color:var(--sage);transition:transform .18s}
.bi-subtree-chev.o{transform:rotate(90deg)}
.bi-subtree-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage)}
.bi-subtree-items{display:none}
.bi-subtree-items.o{display:block}
.bi-subtree-item{display:flex;align-items:center;justify-content:space-between;padding:4px 14px 4px 34px;cursor:pointer;font-size:11px;color:#4A4A4A;transition:all .1s;border-left:2px solid transparent}
.bi-subtree-item:hover{background:var(--bg);color:var(--dark)}
.bi-subtree-item.active{background:var(--terra-h);color:var(--terra);font-weight:600;border-left-color:var(--terra)}
.bi-subtree-item-cnt{font-size:9px;color:var(--sage);background:var(--bg);border:1px solid var(--div);border-radius:var(--r100);padding:0 5px}
.crm-sb-divider{height:1px;background:var(--div);margin:6px 10px}

/* ══ BI WORKSPACE ══ */
.bi-workspace{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;position:relative}

/* ── BI toolbar ── */
.bi-toolbar{height:42px;background:var(--white);border-bottom:1px solid var(--div);display:flex;align-items:center;padding:0 14px;gap:8px;flex-shrink:0}
.bi-tb-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.bi-tb-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.bi-source-dd{display:flex;align-items:center;gap:5px;padding:4px 10px 4px 8px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);cursor:pointer;font-size:11px;font-weight:600;color:var(--dark);transition:all .1s;position:relative}
.bi-source-dd:hover{border-color:var(--terra)}
.bi-source-dd select{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.bi-source-ico{font-size:12px}
.bi-source-label{font-weight:600;color:var(--dark)}
.bi-source-arr{font-size:9px;color:var(--sage)}
.bi-tb-sep{width:1px;height:16px;background:var(--div);flex-shrink:0}
.bi-tb-btn{height:26px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;border:1px solid var(--div);background:var(--white);color:var(--dark);transition:all .1s;display:flex;align-items:center;gap:4px;white-space:nowrap}
.bi-tb-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.bi-tb-btn.active{background:var(--terra-h);border-color:var(--terra-b);color:var(--terra)}
.bi-tb-btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.bi-tb-btn.primary:hover{background:#C86B44}
.bi-tb-search{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);padding:4px 10px;height:26px}
.bi-tb-search input{border:none;background:none;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;width:160px}
.bi-tb-search input::-moz-placeholder{color:var(--sage)}
.bi-tb-search input::placeholder{color:var(--sage)}
/* row height / zoom control */
.zoom-ctrl{display:flex;align-items:center;gap:0;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);overflow:hidden;height:26px}
.zoom-btn{width:24px;height:100%;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:600;color:var(--sage);transition:all .1s;display:flex;align-items:center;justify-content:center;line-height:1}
.zoom-btn:hover{background:var(--terra-h);color:var(--terra)}
.zoom-btn:disabled{opacity:.25;cursor:not-allowed}
.zoom-btn:disabled:hover{background:transparent;color:var(--sage)}
.zoom-pct{font-size:10px;font-weight:600;color:var(--dark);min-width:38px;text-align:center;border-left:1px solid var(--div);border-right:1px solid var(--div);height:100%;display:flex;align-items:center;justify-content:center;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}
/* zoom level classes */
.bi-tbl.bi-tbl.zoom-75 td{padding:1px 6px!important;font-size:10px!important;height:18px!important}
.bi-tbl.bi-tbl.zoom-75 th{font-size:9px!important}.bi-tbl.zoom-75 th .bi-col-name{font-size:8px!important}
.bi-tbl.bi-tbl.zoom-100 td{padding:3px 8px!important;font-size:12px!important;height:22px!important}
.bi-tbl.bi-tbl.zoom-125 td{padding:6px 10px!important;font-size:13px!important;height:28px!important}
.bi-tbl.bi-tbl.zoom-125 th{font-size:12px!important}.bi-tbl.zoom-125 th .bi-col-name{font-size:11px!important}
.bi-tbl.bi-tbl.zoom-150 td{padding:10px 12px!important;font-size:14px!important;height:34px!important}
.bi-tbl.bi-tbl.zoom-150 th{font-size:13px!important}.bi-tbl.zoom-150 th .bi-col-name{font-size:12px!important}

/* ── active filter chips ── */
.bi-filter-row{display:flex;align-items:center;gap:6px;padding:5px 14px;background:var(--bg);border-bottom:1px solid var(--div);flex-shrink:0;flex-wrap:wrap;min-height:32px}
.bi-filter-row:empty{display:none}
.bi-fc{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--terra-h);border:1px solid var(--terra-b);border-radius:var(--r100);font-size:10px;font-weight:600;color:var(--terra)}
.bi-fc-x{cursor:pointer;opacity:.55;margin-left:2px}
.bi-fc-x:hover{opacity:1}

/* ── stats strip ── */
.bi-stats-strip{display:flex;align-items:center;gap:16px;padding:4px 14px;background:var(--white);border-bottom:1px solid var(--div);flex-shrink:0}
.bi-stat{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--sage)}
.bi-stat b{font-weight:700;color:var(--dark)}

/* ══ GRID + RIGHT PANEL LAYOUT ══ */
.bi-content{flex:1;display:flex;overflow:hidden}

/* ── DATA GRID ── */
.bi-grid-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.bi-grid-scroll{flex:1;overflow:auto}
.bi-grid-scroll::-webkit-scrollbar{width:6px;height:6px}
.bi-grid-scroll::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}
.bi-grid-scroll::-webkit-scrollbar-thumb:hover{background:var(--border)}
.bi-tbl{border-collapse:collapse;width:-moz-max-content;width:max-content;min-width:100%;font-size:11px}
.bi-tbl th{position:sticky;top:0;background:#EDEBE3;border-bottom:2px solid var(--border);border-right:1px solid var(--div);padding:0;z-index:3;min-width:130px;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bi-tbl th.sorted .bi-col-name{color:var(--terra)}
.bi-tbl th.sorted .bi-sort-btn{opacity:1;color:var(--terra)}
.bi-th-inner{display:flex;align-items:center;gap:0;padding:6px 0 6px 10px;cursor:pointer;white-space:nowrap;position:relative}
.bi-th-inner:hover{background:rgba(0,0,0,.03)}
.bi-col-type{font-size:8px;color:var(--sage);opacity:.7;font-weight:700;background:rgba(0,0,0,.07);padding:1px 3px;border-radius:2px;margin-right:4px;flex-shrink:0;font-style:normal}
.bi-col-name{font-size:9px;font-weight:700;color:var(--sage);text-transform:uppercase;letter-spacing:.05em;flex:1}
.bi-sort-btn{font-size:8px;color:var(--sage);opacity:.25;padding:0 4px;transition:opacity .1s}
.bi-th-inner:hover .bi-sort-btn{opacity:.7}
.bi-col-filter-btn{width:18px;height:100%;display:flex;align-items:center;justify-content:center;font-size:9px;color:transparent;cursor:pointer;flex-shrink:0;border-left:1px solid transparent;transition:all .1s}
.bi-th-inner:hover .bi-col-filter-btn{color:var(--sage);border-left-color:var(--div)}
.bi-col-filter-btn.active{color:var(--terra)!important;border-left-color:var(--terra-b)!important}
.bi-tbl th.hidden-col,.bi-tbl td.hidden-col{display:none}
.bi-tbl td{padding:6px 10px;border-bottom:1px solid var(--div);border-right:1px solid rgba(0,0,0,.03);vertical-align:middle;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--dark);transition:background .05s}
.bi-tbl tr:hover td{background:rgba(218,119,86,.03)}
.bi-tbl tr.selected-row td{background:rgba(218,119,86,.07)!important}
/* cell badges */
.cbdg{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r100);white-space:nowrap}
.c-won{background:var(--ok-bg);color:var(--ok)}
.c-lost{background:var(--err-bg);color:var(--err-dark)}
.c-prog{background:#EDC48822;color:var(--warn-dark)}
.c-qual{background:rgba(107,155,204,.12);color:#2D5F8A}
.c-neut{background:var(--bg);color:#4A4A4A;border:1px solid var(--div)}
.c-num{font-variant-numeric:tabular-nums;font-weight:600}
/* sheet tabs — Google Sheets style */
.bi-sheet-tabs{display:flex;align-items:stretch;background:#F1EEE8;border-top:1px solid var(--div);flex-shrink:0;height:32px;overflow-x:auto;gap:0}
.bi-sheet-tabs::-webkit-scrollbar{height:0}
.bi-sheet-tab{display:flex;align-items:center;gap:6px;padding:0 12px;font-size:11px;font-weight:500;color:var(--sage);cursor:pointer;border-right:1px solid var(--div);border-top:2px solid transparent;transition:all .1s;white-space:nowrap;flex-shrink:0;min-width:80px;max-width:160px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bi-sheet-tab:hover{background:#E9E5DE;color:var(--dark)}
.bi-sheet-tab.active{background:var(--white);color:var(--terra);font-weight:600;border-top-color:var(--terra);border-right-color:var(--div)}
.bi-sheet-tab.pivot-tab{color:var(--sage)}
.bi-sheet-tab.pivot-tab.active{color:#6B5EA8;border-top-color:#6B5EA8}
.bi-sheet-tab .tab-name{flex:1;overflow:hidden;text-overflow:ellipsis}
.bi-sheet-tab .tab-icon{font-size:11px;flex-shrink:0;opacity:.7}
.bi-sheet-tab.active .tab-icon{opacity:1}
/* inline rename input */
.bi-sheet-tab input.tab-rename{border:none;background:transparent;font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;color:var(--terra);outline:1px solid var(--terra);border-radius:2px;width:100%;padding:0 2px}
/* add sheet button */
.bi-sheet-tab-add{display:flex;align-items:center;justify-content:center;width:30px;height:100%;font-size:18px;color:var(--sage);cursor:pointer;border-right:1px solid var(--div);transition:all .1s;flex-shrink:0;font-weight:400}
.bi-sheet-tab-add:hover{background:#E9E5DE;color:var(--terra)}

/* ── grid footer ── */
.bi-grid-footer{display:flex;align-items:center;justify-content:space-between;padding:5px 14px;border-top:1px solid var(--div);background:var(--white);flex-shrink:0}
.bi-footer-stats{display:flex;align-items:center;gap:14px;font-size:10px;color:var(--sage)}
.bi-footer-stat b{font-weight:700;color:var(--dark)}
.bi-bulk-action-btn{height:20px;padding:0 8px;border-radius:var(--r6);border:1px solid var(--div);background:var(--white);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;color:var(--terra);cursor:pointer;transition:all .12s}
.bi-bulk-action-btn:hover{background:var(--terra-h);border-color:var(--terra)}
.bi-pgs{display:flex;align-items:center;gap:3px}
.pg-btn{height:22px;min-width:22px;padding:0 5px;border-radius:4px;border:1px solid var(--div);background:var(--white);font-family:'Poppins',sans-serif;font-size:10px;font-weight:500;color:var(--dark);cursor:pointer;transition:all .1s}
.pg-btn:hover{border-color:var(--terra);color:var(--terra)}
.pg-btn.a{background:var(--terra);color:#fff;border-color:var(--terra)}
.pg-btn:disabled{opacity:.3;cursor:not-allowed}

/* ══ RIGHT PANEL ══ */
.bi-right-panel{width:280px;flex-shrink:0;background:var(--white);border-left:1px solid var(--div);display:flex;flex-direction:column;overflow:hidden;transition:width .2s}
.bi-right-panel.collapsed{width:0;border:none}
.bi-rp-tabs{display:flex;border-bottom:1px solid var(--div);flex-shrink:0}
.bi-rp-tab{flex:1;padding:9px 4px;text-align:center;font-size:10px;font-weight:600;color:var(--sage);cursor:pointer;border-bottom:2px solid transparent;transition:all .1s}
.bi-rp-tab:hover{color:var(--dark)}
.bi-rp-tab.active{color:var(--terra);border-bottom-color:var(--terra)}
.bi-rp-body{flex:1;overflow-y:auto;padding:12px}
.bi-rp-body::-webkit-scrollbar{width:4px}
.bi-rp-body::-webkit-scrollbar-thumb{background:var(--div);border-radius:2px}
.bi-rp-section{margin-bottom:14px}
.bi-rp-section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
/* chart type grid */
.chart-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.chart-type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;transition:all .1s;background:var(--bg)}
.chart-type-btn:hover{border-color:var(--terra);background:var(--terra-h)}
.chart-type-btn.active{border-color:var(--terra);background:var(--terra-h);color:var(--terra)}
.chart-type-btn .ct-ico{font-size:18px}
.chart-type-btn .ct-label{font-size:9px;font-weight:600;color:var(--dark)}
.chart-type-btn.active .ct-label{color:var(--terra)}
/* axis selects */
.bi-rp-select{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;cursor:pointer;transition:border-color .1s}
.bi-rp-select:focus{border-color:var(--terra)}
/* colour swatches */
.colour-swatches{display:flex;gap:5px;flex-wrap:wrap}
.colour-swatch{width:22px;height:22px;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:all .1s}
.colour-swatch:hover,.colour-swatch.active{border-color:var(--dark);transform:scale(1.1)}
/* chart preview */
.bi-chart-preview{background:var(--bg);border:1px solid var(--div);border-radius:var(--r8);padding:10px;margin-bottom:10px}
.bi-chart-preview-empty{height:240px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--sage);text-align:center;line-height:1.5}
/* add to dashboard */
.bi-rp-footer{padding:10px 12px;border-top:1px solid var(--div);flex-shrink:0;display:flex;flex-direction:column;gap:6px}
.bi-rp-footer-btn{width:100%;padding:7px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center;gap:5px}
.bi-rp-footer-btn.primary{background:var(--terra);border:none;color:#fff}
.bi-rp-footer-btn.primary:hover{background:#C86B44}
.bi-rp-footer-btn.secondary{background:var(--white);border:1px solid var(--border);color:var(--dark)}
.bi-rp-footer-btn.secondary:hover{border-color:var(--terra);color:var(--terra)}
/* pivot builder */
.pivot-zone{background:var(--bg);border:1px dashed var(--border);border-radius:var(--r8);min-height:36px;padding:5px 8px;display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start;margin-top:4px}
.pivot-field{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--white);border:1px solid var(--border);border-radius:var(--r100);font-size:10px;font-weight:600;color:var(--dark);cursor:pointer}
.pivot-field-x{font-size:9px;opacity:.5;cursor:pointer}
.pivot-field-x:hover{opacity:1;color:var(--err)}
.pivot-field-add{font-size:10px;color:var(--sage);cursor:pointer;padding:2px 6px;border:1px dashed var(--div);border-radius:var(--r100);transition:all .1s}
.pivot-field-add:hover{color:var(--terra);border-color:var(--terra)}
/* summary tab */
.summary-col-card{background:var(--bg);border:1px solid var(--div);border-radius:var(--r8);padding:10px;margin-bottom:8px}
.summary-col-name{font-size:10px;font-weight:700;color:var(--dark);margin-bottom:6px;display:flex;align-items:center;gap:5px}
.summary-col-type-badge{font-size:8px;font-weight:600;padding:1px 5px;border-radius:var(--r100);background:var(--lav);color:#4A3A8A}
.summary-stat-row{display:flex;justify-content:space-between;font-size:10px;color:var(--sage);padding:2px 0;border-bottom:1px solid rgba(0,0,0,.04)}
.summary-stat-row:last-child{border:none}
.summary-stat-val{font-weight:600;color:var(--dark)}

/* ══════════════════════════════════════════════════════════
   KPI WIDGET — base
══════════════════════════════════════════════════════════ */
.kpi-widget{background:var(--white);border:1px solid var(--border);border-radius:var(--r12);padding:0;overflow:hidden}
.kpi-widget-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--div);cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.kpi-widget-body{padding:16px 14px 14px}
.kpi-widget-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
.kpi-widget-val{font-size:28px;font-weight:700;color:var(--dark);line-height:1;margin-bottom:4px}
.kpi-widget-sub{font-size:10px;color:var(--sage)}
.kpi-widget-trend{font-size:11px;font-weight:600;margin-top:6px}
.kpi-widget-bar{height:3px;border-radius:0 0 var(--r12) var(--r12);margin-top:8px}

/* ══════════════════════════════════════════════════════════
   DASHBOARD SHELL — full-screen overlay
══════════════════════════════════════════════════════════ */
.bi-dashboard{display:none;flex-direction:column;background:var(--bg);position:absolute;inset:0;z-index:10;overflow:hidden}
.bi-dashboard.active{display:flex}

/* ── DASHBOARD TOOLBAR (replaces old bi-dash-header) ── */
.dash-toolbar{
  height:48px;flex-shrink:0;
  background:var(--white);
  border-bottom:1px solid var(--div);
  display:flex;align-items:center;
  padding:0 16px;gap:8px;
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.dash-tb-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.dash-tb-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.dash-tb-sep{width:1px;height:18px;background:var(--div);flex-shrink:0}

/* Dashboard title in toolbar */
.dash-tb-title{
  font-size:14px;font-weight:700;color:var(--dark);
  cursor:text;border:1px solid transparent;
  border-radius:var(--r6);padding:2px 6px;
  transition:border-color .1s;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis
}
.dash-tb-title:hover{border-color:var(--div)}
.dash-tb-title:focus{border-color:var(--terra);outline:none;background:var(--white)}

/* Refresh indicator in toolbar */
.dash-refresh-bar{display:flex;align-items:center;gap:6px;flex-shrink:0}
.dash-live-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--ok);display:inline-block;flex-shrink:0;
}
.dash-live-dot.refreshing{background:var(--warn);animation:blink .5s linear infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.dash-refresh-label{font-size:10px;color:var(--sage);white-space:nowrap}
.dash-refresh-btn{
  height:24px;padding:0 9px;
  border-radius:var(--r100);
  font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;
  cursor:pointer;border:1px solid var(--div);
  background:var(--white);color:var(--sage);
  transition:all .12s;display:flex;align-items:center;gap:4px
}
.dash-refresh-btn:hover{background:var(--terra);border-color:var(--terra);color:#fff}
.dash-refresh-btn:disabled{opacity:.4;cursor:not-allowed}

/* Toolbar action buttons */
.dash-tb-btn{
  height:28px;padding:0 11px;
  border-radius:var(--r6);
  font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;
  cursor:pointer;border:1px solid var(--div);
  background:var(--white);color:var(--dark);
  transition:all .1s;display:flex;align-items:center;gap:5px;white-space:nowrap
}
.dash-tb-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.dash-tb-btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.dash-tb-btn.primary:hover{background:#C86B44}
.dash-tb-btn.active{background:var(--terra-h);border-color:var(--terra-b);color:var(--terra)}

/* Edit mode badge */
.dash-mode-badge{
  display:flex;align-items:center;gap:5px;
  height:24px;padding:0 10px;
  border-radius:var(--r100);
  font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.dash-mode-badge.view{background:var(--ok-bg);color:var(--ok);border:1px solid rgba(16,140,114,.2)}
.dash-mode-badge.edit{background:#EDC48820;color:var(--warn-dark);border:1px solid #EDC48860}

/* ── DASHBOARD BODY (below toolbar) ── */
.dash-body{flex:1;display:flex;flex-direction:column;overflow:hidden}

/* ── KPI STRIP — dedicated horizontal KPI row ── */
.kpi-strip{
  flex-shrink:0;
  background:var(--white);
  border-bottom:1px solid var(--div);
  padding:10px 16px;
  display:flex;align-items:stretch;gap:10px;
  overflow-x:auto;min-height:0;
}
.kpi-strip:empty{display:none}
.kpi-strip::-webkit-scrollbar{height:4px}
.kpi-strip::-webkit-scrollbar-thumb{background:var(--div);border-radius:2px}
/* KPI cards in strip — fixed dimensions, no absolute positioning */
.kpi-strip .dash-widget{
  position:relative!important;
  left:auto!important;top:auto!important;
  width:180px!important;min-width:160px;max-width:220px;
  height:auto!important;min-height:100px;
  flex-shrink:0;
}
.kpi-strip.edit-mode .dash-widget{cursor:grab}
.kpi-strip.edit-mode .dash-widget:active{cursor:grabbing}

/* ── CHART CANVAS AREA ── */
.dash-canvas-area{
  flex:1;overflow:auto;
  padding:16px;
  background:var(--bg);
}
.dash-canvas-area::-webkit-scrollbar{width:6px;height:6px}
.dash-canvas-area::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}

/* ── GRID SYSTEM (12-column) ── */
.dash-canvas{
  position:relative;
  /* Grid lines shown in edit mode */
}
.dash-canvas.edit-mode::before{
  content:'';
  position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(to right, rgba(218,119,86,.06) 0, rgba(218,119,86,.06) 1px, transparent 1px, transparent calc(100%/12));
  pointer-events:none;z-index:0;
}

/* ── GRID SNAP CONSTANTS ── */
/* CELL_W and CELL_H defined in JS via CSS vars */
.dash-canvas{
  --grid-cols:12;
  --grid-gap:10px;
  --cell-h:80px;
}

/* ── CHART WIDGETS (absolute, grid-snapped) ── */
.dash-widget{
  position:absolute;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r12);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:box-shadow .15s;
  z-index:1;
}
.dash-widget:hover{box-shadow:var(--shadow-md)}
.dash-widget.dragging{
  box-shadow:var(--shadow-lg);
  opacity:.9;z-index:200;
  border-color:var(--terra);
  border-style:dashed;
}
.dash-widget.resizing{box-shadow:var(--shadow-lg);z-index:200;border-color:var(--blue)}

/* Locked state — no pointer interactions on drag handle */
.bi-dashboard:not(.edit-mode) .dash-widget .dash-widget-header{cursor:default}
.bi-dashboard.edit-mode .dash-widget .dash-widget-header{cursor:grab}
.bi-dashboard.edit-mode .dash-widget .dash-widget-header:active{cursor:grabbing}

/* Widget resize handle — bottom-right corner */
.dash-widget-resize{
  position:absolute;bottom:2px;right:2px;
  width:12px;height:12px;
  cursor:se-resize;
  opacity:0;transition:opacity .15s;
  display:flex;align-items:center;justify-content:center;
  z-index:10;
}
.bi-dashboard.edit-mode .dash-widget:hover .dash-widget-resize{opacity:1}
.dash-widget-resize svg{width:10px;height:10px;stroke:var(--terra);opacity:.7}

/* Widget header & actions */
.dash-widget-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 12px;
  border-bottom:1px solid var(--div);
  background:#FAFAF8;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.dash-widget-title{font-size:11px;font-weight:700;color:var(--dark);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-widget-remove{flex-shrink:0;width:20px;height:20px;border-radius:4px;border:none;background:none;color:var(--sage);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s}
.dash-widget-remove:hover{background:rgba(163,45,45,0.10);color:#A32D2D}

/* Manage-widgets entry point for the server-rendered (activeDashboard) view —
   widgets there are baked into static iframe HTML, so deletion has to go
   through this overlay button rather than a per-widget control. */
.bi-manage-widgets-btn{position:absolute;top:12px;right:16px;z-index:5;display:flex;align-items:center;gap:5px;height:28px;padding:0 12px;border-radius:var(--r8);border:1px solid var(--div);background:var(--white);color:var(--dark);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:all .12s}
.bi-manage-widgets-btn:hover{border-color:var(--terra);color:var(--terra)}
.dash-widget-acts{display:flex;gap:3px;flex-shrink:0}
.dash-widget-btn{
  width:22px;height:22px;border-radius:4px;
  border:1px solid var(--div);background:var(--white);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--sage);transition:all .1s
}
.dash-widget-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.dash-widget-body{padding:10px;height:calc(100% - 37px);overflow:hidden;position:relative}

/* Hide edit controls in view mode */
.bi-dashboard:not(.edit-mode) .dash-widget-acts .edit-only{display:none!important}
.bi-dashboard.edit-mode .dash-widget-acts .edit-only{display:flex!important}
/* Toolbar edit-only — hidden by default (view mode is default) */
.bi-dashboard:not(.edit-mode) .dash-toolbar .edit-only,
.bi-dashboard:not(.edit-mode) .dash-tb-sep.edit-only{display:none!important}
.bi-dashboard.edit-mode .dash-toolbar .edit-only{display:flex!important}
.bi-dashboard.edit-mode .dash-tb-sep.edit-only{display:block!important}
/* Widget resize handle — only visible in edit mode on hover */
.bi-dashboard:not(.edit-mode) .dash-widget-resize{display:none!important}

/* ── EMPTY STATE ── */
.dash-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:360px;color:var(--sage);text-align:center;gap:12px;
  border:2px dashed var(--div);border-radius:var(--r12);
  padding:40px 24px;
}
.dash-empty-ico{font-size:40px;opacity:.3}
.dash-empty-title{font-size:14px;font-weight:600;color:var(--dark)}
.dash-empty-sub{font-size:12px;line-height:1.6;max-width:320px}

/* ── PIVOT CHART WIDGET TYPE ── */
.pivot-chart-badge{
  font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  background:rgba(206,203,246,.25);color:#4A3A8A;
  border:1px solid rgba(206,203,246,.5);
  border-radius:3px;padding:1px 5px;margin-left:5px;flex-shrink:0;
}

/* ── WIDGET REFRESH FLASH ── */
.dash-widget.widget-refreshing{animation:widgetFlash .4s ease}
@keyframes widgetFlash{0%,100%{opacity:1}50%{opacity:.55}}

/* ── LEGACY compat: bi-dash-header points to dash-toolbar ── */
.bi-dash-header{display:none!important}

/* Old floating add-chart button — removed */
.dash-add-btn-float{display:none!important}

/* ══ EMPTY STATE (no data loaded) ══ */
.bi-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px}
.bi-es-ico{font-size:44px;opacity:.3}
.bi-es-title{font-size:16px;font-weight:700;color:var(--dark)}
.bi-es-sub{font-size:12px;color:var(--sage);text-align:center;max-width:360px;line-height:1.6}
.bi-es-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.bi-es-btn{height:36px;padding:0 18px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;display:flex;align-items:center;gap:6px}
.bi-es-btn.primary{background:var(--terra);border:none;color:#fff}
.bi-es-btn.primary:hover{background:#C86B44}
.bi-es-btn.secondary{background:var(--white);border:1px solid var(--border);color:var(--dark)}
.bi-es-btn.secondary:hover{border-color:var(--terra);color:var(--terra)}
/* upload drop zone */
.bi-upload-zone{border:2px dashed var(--border);border-radius:var(--r12);padding:28px;text-align:center;cursor:pointer;transition:all .15s;max-width:400px;width:100%}
.bi-upload-zone:hover,.bi-upload-zone.drag-over{border-color:var(--terra);background:var(--terra-h)}
.bi-upload-zone-ico{font-size:28px;margin-bottom:8px;opacity:.5}
.bi-upload-zone-text{font-size:12px;font-weight:600;color:var(--dark);margin-bottom:4px}
.bi-upload-zone-sub{font-size:10px;color:var(--sage)}
#fileInput{display:none}

/* ══ FILTER DROPDOWN ══ */
.filter-dropdown{position:fixed;z-index:500;background:var(--white);border:1px solid var(--border);border-radius:var(--r10);box-shadow:var(--shadow-lg);min-width:220px;max-width:280px;overflow:hidden}
.filter-dd-header{padding:10px 12px;border-bottom:1px solid var(--div);font-size:11px;font-weight:700;color:var(--dark)}
.filter-dd-section{padding:8px 12px;border-bottom:1px solid var(--div)}
.filter-dd-section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:5px}
.filter-sort-btn{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:var(--r6);cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.filter-sort-btn:hover{background:var(--bg);color:var(--terra)}
.filter-dd-search{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);padding:4px 8px;margin-bottom:6px}
.filter-dd-search input{border:none;background:none;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;width:100%}
.filter-dd-values{max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.filter-dd-values::-webkit-scrollbar{width:4px}
.filter-dd-values::-webkit-scrollbar-thumb{background:var(--div);border-radius:2px}
.filter-val-item{display:flex;align-items:center;gap:7px;padding:3px 6px;border-radius:var(--r4);cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.filter-val-item:hover{background:var(--bg)}
.filter-val-item input[type=checkbox]{accent-color:var(--terra);cursor:pointer;width:13px;height:13px}
.filter-dd-footer{padding:8px 12px;display:flex;gap:6px;justify-content:flex-end}
.filter-dd-btn{height:24px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;transition:all .1s}
.filter-dd-btn.apply{background:var(--terra);border:none;color:#fff}
.filter-dd-btn.apply:hover{background:#C86B44}
.filter-cond-sel{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;cursor:pointer;transition:border-color .1s}
.filter-cond-sel:focus{border-color:var(--terra)}
.filter-cond-input{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;transition:border-color .1s}
.filter-cond-input:focus{border-color:var(--terra)}
.filter-cond-preview{font-size:10px;color:var(--ok);font-weight:600;padding:3px 2px;margin-top:2px}
.filter-cond-preview.none{color:var(--sage)}

/* ══ COL VISIBILITY PANEL ══ */
.col-vis-panel{position:fixed;z-index:500;background:var(--white);border:1px solid var(--border);border-radius:var(--r10);box-shadow:var(--shadow-lg);width:200px;overflow:hidden}
.col-vis-header{padding:10px 12px;border-bottom:1px solid var(--div);font-size:11px;font-weight:700;color:var(--dark);display:flex;align-items:center;justify-content:space-between}
.col-vis-list{max-height:240px;overflow-y:auto;padding:6px 0}
.col-vis-item{display:flex;align-items:center;gap:8px;padding:4px 12px;cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.col-vis-item:hover{background:var(--bg)}
.col-vis-item input[type=checkbox]{accent-color:var(--terra);cursor:pointer}
.col-vis-footer{padding:8px 12px;border-top:1px solid var(--div);display:flex;gap:5px}

/* ══ CONTEXT MENU ══ */
.ctx-menu{position:fixed;z-index:600;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:160px;padding:4px 0;overflow:hidden}
.ctx-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s}
.ctx-item:hover{background:var(--terra-h);color:var(--terra)}
.ctx-item.danger:hover{background:var(--err-bg);color:var(--err-dark)}
.ctx-item-icon{font-size:12px;width:14px;text-align:center}
.ctx-divider{height:1px;background:var(--div);margin:3px 0}

/* ══ MODAL ══ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:800;display:none;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--white);border-radius:var(--r12);box-shadow:var(--shadow-lg);width:400px;overflow:hidden}
.modal-header{padding:16px 20px;border-bottom:1px solid var(--div);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:14px;font-weight:700;color:var(--dark)}
.modal-x{width:24px;height:24px;border-radius:var(--r6);border:1px solid var(--div);background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sage);transition:all .1s}
.modal-x:hover{border-color:var(--err);color:var(--err)}
.modal-body{padding:20px}
.modal-label{font-size:11px;font-weight:600;color:var(--dark);margin-bottom:6px;display:block}
.modal-input{width:100%;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);outline:none;transition:border-color .1s;background:var(--bg)}
.modal-input:focus{border-color:var(--terra)}
.modal-select{width:100%;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);outline:none;background:var(--bg);cursor:pointer;margin-top:8px}
.modal-select:focus{border-color:var(--terra)}
.modal-footer{padding:12px 20px;border-top:1px solid var(--div);display:flex;justify-content:flex-end;gap:8px}
.modal-btn{height:32px;padding:0 16px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s}
.modal-btn.cancel{background:var(--white);border:1px solid var(--div);color:var(--dark)}
.modal-btn.cancel:hover{border-color:var(--sage);color:var(--sage)}
.modal-btn.confirm{background:var(--terra);border:none;color:#fff}
.modal-btn.confirm:hover{background:#C86B44}

/* ══ FULLSCREEN CHART ══ */
.fullscreen-chart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:900;display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px}
.fullscreen-chart-overlay.open{display:flex}
.fullscreen-chart-box{background:var(--white);border-radius:var(--r12);padding:24px;width:80vw;max-width:900px;max-height:80vh}
.fullscreen-chart-title{font-size:16px;font-weight:700;color:var(--dark);margin-bottom:16px;text-align:center}
.fullscreen-close{color:rgba(255,255,255,.7);font-size:12px;cursor:pointer;border:1px solid rgba(255,255,255,.2);border-radius:var(--r100);padding:5px 14px;transition:all .1s}
.fullscreen-close:hover{color:#fff;border-color:#fff}

/* ══ TOAST ══ */
.toast{position:fixed;bottom:20px;right:20px;background:var(--dark);color:#fff;padding:9px 16px;border-radius:var(--r8);font-size:11px;font-weight:500;z-index:1000;transform:translateY(60px);opacity:0;transition:all .25s;pointer-events:none;max-width:280px}
.toast.show{transform:translateY(0);opacity:1}

/* ══ COLUMN RESIZE ══ */
.bi-tbl th{/* position kept sticky via original rule */}
.col-resizer{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;z-index:10;background:transparent}
.col-resizer:hover,.col-resizer.resizing{background:var(--terra)}
.bi-tbl th.freeze-line,.bi-tbl td.freeze-line{border-right:2px solid var(--terra)!important}

/* ══ MULTI-SELECT ══ */
/* Checkbox col: 32px, sticky left:0 — left:0 is the only CSS left value; biFixSticky owns all others */
.bi-tbl th.chk-th{width:32px;min-width:32px!important;padding:0 6px;position:sticky;left:0;z-index:6;background:#E5E2DA;text-align:center}
.bi-tbl td.chk-td{width:32px;min-width:32px!important;padding:0 6px;position:sticky;left:0;z-index:2;background:var(--bg);text-align:center}
/* Row num col: left set by biFixSticky() — no CSS left value to avoid conflict */
.bi-tbl th.rn-th{min-width:36px!important;width:36px;position:sticky;z-index:5;background:#E5E2DA}
.bi-tbl td.rn{width:36px;min-width:36px!important;position:sticky;background:var(--bg);border-right:1px solid var(--div);font-size:10px;color:var(--sage);text-align:center;z-index:2;cursor:default;padding:6px 4px}
/* First frozen data col: left set exclusively by biFixSticky() — no CSS left value */
.bi-tbl th.frz{position:sticky;z-index:4;background:#E9E6DE}
.bi-tbl td.frz-td{position:sticky;background:var(--white);border-right:1px solid var(--div);z-index:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bi-tbl tr.selected-row td.chk-td{background:rgba(218,119,86,.1)!important}
.bi-tbl tr:hover td.chk-td{background:#EAE6DC}
.bi-tbl tr:hover td.rn{background:#EAE6DC}
.bi-tbl tr:hover td.frz-td{background:rgba(218,119,86,.05)}
.row-chk{accent-color:var(--terra);cursor:pointer;width:12px;height:12px}
/* bulk action bar */
.bulk-bar{display:none;align-items:center;gap:8px;padding:6px 14px;background:var(--terra);flex-shrink:0}
.bulk-bar.show{display:flex}
.bulk-bar-text{font-size:11px;font-weight:600;color:#fff}
.bulk-btn{height:24px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.15);color:#fff;transition:all .1s}
.bulk-btn:hover{background:rgba(255,255,255,.3)}
.bulk-btn.danger{border-color:rgba(255,255,255,.3);background:rgba(231,132,142,.3)}

/* ══ CELL EXPAND POPOVER ══ */
.cell-popover{position:fixed;z-index:600;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);max-width:320px;padding:12px 14px;font-size:12px;color:var(--dark);line-height:1.6;word-break:break-word}
.cell-popover-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
.cell-popover-close{position:absolute;top:6px;right:8px;font-size:12px;color:var(--sage);cursor:pointer;padding:2px 4px}
.cell-popover-close:hover{color:var(--dark)}

/* ══ CHART TITLE INPUT ══ */
.chart-title-input{width:100%;padding:5px 8px;border:1px solid var(--div);border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);background:var(--bg);outline:none;transition:border-color .1s;margin-bottom:0}
.chart-title-input:focus{border-color:var(--terra)}

/* ══ CHART FILTER TOGGLE ══ */
.chart-filter-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dark);cursor:pointer;padding:4px 0}
.toggle-switch{width:28px;height:16px;background:var(--div);border-radius:8px;position:relative;transition:background .2s;flex-shrink:0}
.toggle-switch.on{background:var(--terra)}
.toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:left .2s}
.toggle-switch.on::after{left:14px}

/* ══ SAVED VIEWS ══ */
.saved-views-bar{display:flex;align-items:center;gap:6px;padding:4px 14px;background:var(--white);border-bottom:1px solid var(--div);flex-shrink:0;overflow-x:auto;min-height:30px}
.saved-views-bar::-webkit-scrollbar{height:0}
.sv-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);white-space:nowrap;flex-shrink:0}
.sv-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r100);font-size:10px;font-weight:500;color:var(--dark);cursor:pointer;white-space:nowrap;transition:all .1s;flex-shrink:0}
.sv-chip:hover{border-color:var(--terra);color:var(--terra)}
.sv-chip.active{background:var(--terra-h);border-color:var(--terra-b);color:var(--terra);font-weight:600}
.sv-chip-x{opacity:.4;font-size:10px;margin-left:2px}
.sv-chip-x:hover{opacity:1}
.sv-add{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border:1px dashed var(--div);border-radius:var(--r100);font-size:10px;color:var(--sage);cursor:pointer;transition:all .1s;flex-shrink:0}
.sv-add:hover{border-color:var(--terra);color:var(--terra)}

/* ══ CONNECT SHEETS MODAL ══ */
.connect-source-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;transition:all .1s;margin-bottom:8px}
.connect-source-option:hover{border-color:var(--terra);background:var(--terra-h)}
.connect-source-option.disabled{opacity:.5;cursor:not-allowed}
.connect-source-option.disabled:hover{border-color:var(--div);background:transparent}
.cso-icon{font-size:20px;flex-shrink:0}
.cso-text strong{font-size:11px;font-weight:700;color:var(--dark);display:block}
.cso-text span{font-size:10px;color:var(--sage)}
.cso-badge{margin-left:auto;font-size:8px;font-weight:700;padding:2px 6px;border-radius:var(--r100);background:var(--warn-bg);color:var(--warn-dark);flex-shrink:0}

/* ══ KEYBOARD SHORTCUT HINT ══ */
.kb-hint{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);background:var(--dark);color:#fff;padding:6px 14px;border-radius:var(--r100);font-size:10px;font-weight:500;z-index:800;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap}
.kb-hint.show{opacity:1}

/* ══ SCROLLBAR ══ */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--div);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--border)}

/* ══ V5: PIVOT MULTI-FIELD PILLS ══ */
.pivot-field-well{border:1px solid var(--div);border-radius:var(--r8);background:var(--bg);min-height:34px;padding:4px 6px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;cursor:text;transition:border-color .15s}
.pivot-field-well:focus-within{border-color:var(--terra)}
.pivot-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;background:var(--terra-h);border:1px solid var(--terra-b);border-radius:var(--r100);font-size:10px;font-weight:600;color:var(--terra);white-space:nowrap;flex-shrink:0}
.pivot-pill.col-pill{background:rgba(107,155,204,.12);border-color:rgba(107,155,204,.3);color:#2D5F8A}
.pivot-pill-x{font-size:10px;opacity:.5;cursor:pointer;line-height:1;padding:0 1px}
.pivot-pill-x:hover{opacity:1}
.pivot-field-select{border:none;background:transparent;font-family:'Poppins',sans-serif;font-size:11px;color:var(--dark);outline:none;cursor:pointer;min-width:100px;max-width:140px}
.pivot-field-select option{font-family:'Poppins',sans-serif}
.pivot-add-btn{font-size:10px;color:var(--sage);cursor:pointer;padding:1px 4px;border-radius:3px;transition:all .1s;white-space:nowrap}
.pivot-add-btn:hover{background:var(--terra-h);color:var(--terra)}
/* Pivot live preview */
.pivot-preview-box{background:var(--bg);border:1px solid var(--div);border-radius:var(--r8);overflow:auto;max-height:200px;margin-top:4px}
.pivot-preview-box:empty{display:none}
.pivot-preview-tbl{border-collapse:collapse;width:100%;font-size:10px}
.pivot-preview-tbl th{background:#E5E2DA;padding:4px 8px;text-align:left;font-weight:700;color:var(--sage);font-size:9px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--div);white-space:nowrap;position:sticky;top:0}
.pivot-preview-tbl td{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.03);color:var(--dark);white-space:nowrap}
.pivot-preview-tbl tr:last-child td{font-weight:700;background:#EDEBE3;color:var(--dark)}
.pivot-preview-tbl td.num{font-variant-numeric:tabular-nums;text-align:right;font-weight:500}
.pivot-preview-tbl th.num{text-align:right}

/* Preview header (chart + pivot) with expand-to-modal action */
.bi-preview-header{display:flex;align-items:center;justify-content:space-between;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:8px}
.bi-preview-expand-btn{display:inline-flex;align-items:center;gap:4px;background:var(--white,#fff);border:1px solid var(--div);border-radius:var(--r6);padding:3px 9px;font-family:'DM Sans',sans-serif;font-size:10px;font-weight:600;color:var(--terra);text-transform:none;letter-spacing:0;cursor:pointer;transition:all .12s}
.bi-preview-expand-btn:hover{background:var(--terra-h,rgba(218,119,86,0.08));border-color:var(--terra)}
.bi-preview-expand-btn svg{flex-shrink:0}

/* Full-size preview modal — chart/pivot previews are too cramped in the 280px
   side panel to read (rotated x-axis labels overlap, pivot rows clip), so
   this gives users a properly sized view on demand. */
.bi-preview-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(44,44,42,0.5);display:flex;align-items:center;justify-content:center;padding:24px}
.bi-preview-modal{background:var(--white,#fff);border-radius:16px;width:100%;max-width:880px;max-height:85vh;box-shadow:0 20px 60px rgba(0,0,0,0.2);display:flex;flex-direction:column;overflow:hidden}
.bi-preview-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--div);font-family:'DM Sans',sans-serif;font-weight:700;font-size:14px;color:var(--dark)}
.bi-preview-modal-close{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--sage);padding:4px;border-radius:var(--r6);transition:all .12s}
.bi-preview-modal-close:hover{background:var(--bg);color:var(--dark)}
.bi-preview-modal-body{padding:20px;overflow:auto;flex:1}
.pivot-preview-tbl-lg{font-size:12px;width:100%}
.pivot-preview-tbl-lg th,.pivot-preview-tbl-lg td{padding:7px 12px}

/* ══ V5: BASE SHEET BADGE ══ */
.tab-base-badge{font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#EDC48830;color:var(--warn-dark);border:1px solid #EDC48855;border-radius:3px;padding:1px 4px;margin-left:3px;flex-shrink:0}
.bi-sheet-tab.active .tab-base-badge{background:#EDC48840}
/* Derived tab breadcrumb */
.pivot-source-crumb{font-size:9px;color:var(--sage);font-style:italic;padding:3px 14px 0;display:none}
.pivot-source-crumb.visible{display:flex;align-items:center;gap:4px}
.pivot-source-crumb a{color:var(--terra);cursor:pointer;text-decoration:underline;font-style:normal}
/* Stale pivot banner */
.pivot-stale-banner{display:none;align-items:center;gap:8px;padding:5px 14px;background:#EDC48818;border-bottom:1px solid #EDC48855;font-size:11px;color:var(--warn-dark);flex-shrink:0}
.pivot-stale-banner.show{display:flex}
.pivot-stale-refresh{font-size:10px;font-weight:600;color:var(--terra);cursor:pointer;border:1px solid var(--terra-b);border-radius:var(--r100);padding:1px 8px;transition:all .1s;flex-shrink:0}
.pivot-stale-refresh:hover{background:var(--terra);color:#fff}

/* ══ V5: AI ANALYSIS TAB ══ */
.bi-rp-tab.ai-tab{background:linear-gradient(135deg,rgba(218,119,86,.08),rgba(206,203,246,.12))}
.bi-rp-tab.ai-tab.active{background:linear-gradient(135deg,rgba(218,119,86,.15),rgba(206,203,246,.2));border-bottom-color:transparent}
/* AI prompt area */
.ai-prompt-wrap{position:relative}
.ai-prompt-input{width:100%;padding:9px 36px 9px 10px;border:1px solid var(--div);border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);background:var(--white);outline:none;resize:none;min-height:70px;line-height:1.55;transition:border-color .15s}
.ai-prompt-input:focus{border-color:var(--terra)}
.ai-prompt-send{position:absolute;bottom:8px;right:8px;width:26px;height:26px;border-radius:var(--r6);background:var(--terra);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;transition:all .12s}
.ai-prompt-send:hover{background:#C86B44}
.ai-prompt-send:disabled{background:var(--div);cursor:not-allowed}
/* Suggestion chips */
.ai-chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.ai-chip{display:inline-flex;align-items:center;padding:3px 9px;background:var(--white);border:1px solid var(--div);border-radius:var(--r100);font-size:10px;color:var(--dark);cursor:pointer;transition:all .1s;white-space:nowrap}
.ai-chip:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
/* AI loading */
.ai-loading{display:none;align-items:center;gap:8px;padding:14px;font-size:11px;color:var(--sage)}
.ai-loading.show{display:flex}
.ai-spinner{width:16px;height:16px;border:2px solid var(--div);border-top-color:var(--terra);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
/* AI output block */
.ai-output{display:none;flex-direction:column;gap:10px;margin-top:4px}
.ai-output.show{display:flex}
.ai-insight-text{font-size:11px;color:var(--dark);line-height:1.65;background:rgba(218,119,86,.06);border-left:3px solid var(--terra);padding:8px 10px;border-radius:0 var(--r6) var(--r6) 0}
.ai-chart-box{border:1px solid var(--div);border-radius:var(--r8);overflow:hidden;background:var(--white)}
.ai-chart-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--div);background:var(--bg)}
.ai-chart-title{font-size:11px;font-weight:700;color:var(--dark)}
.ai-chart-meta{font-size:9px;color:var(--sage)}
.ai-chart-canvas-wrap{padding:10px;height:180px;position:relative}
.ai-chart-actions{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--div);background:var(--bg)}
.ai-action-btn{height:24px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:10px;font-weight:600;cursor:pointer;transition:all .1s;border:1px solid var(--div);background:var(--white);color:var(--dark);display:flex;align-items:center;gap:4px}
.ai-action-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.ai-action-btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.ai-action-btn.primary:hover{background:#C86B44}
/* AI session history */
.ai-history{margin-top:8px}
.ai-history-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:4px}
.ai-hist-item{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r6);cursor:pointer;font-size:10px;color:var(--sage);transition:all .1s;border:1px solid transparent}
.ai-hist-item:hover{border-color:var(--div);background:var(--bg);color:var(--dark)}
.ai-hist-ico{font-size:11px;flex-shrink:0}
/* AI empty state */
.ai-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 14px;text-align:center;gap:8px}
.ai-empty-ico{font-size:28px;opacity:.5}
.ai-empty-title{font-size:12px;font-weight:600;color:var(--dark)}
.ai-empty-sub{font-size:10px;color:var(--sage);line-height:1.6}

/* ══ V5: PUSH TO SALES CRM BUTTON ══ */
.push-crm-btn{height:32px;padding:0 14px;border-radius:var(--r8);font-family:'Poppins',sans-serif;font-size:11px;font-weight:700;cursor:pointer;background:var(--terra);border:none;color:#fff;transition:all .12s;display:flex;align-items:center;gap:6px;white-space:nowrap}
.push-crm-btn:hover{background:#C86B44;transform:translateY(-1px);box-shadow:0 3px 10px rgba(218,119,86,.3)}
.push-crm-btn:active{transform:translateY(0)}
.push-crm-destination{font-size:9px;color:var(--sage);font-style:italic;margin-top:3px;display:flex;align-items:center;gap:4px}
.push-crm-destination b{color:var(--terra);font-style:normal}
.bi-stats-strip,.bi-grid-footer{display:none!important}
.v7-menubar{height:36px;background:var(--white);border-bottom:1px solid var(--div);display:flex;align-items:center;padding:0 12px;gap:0;flex-shrink:0;position:relative;z-index:50}
.v7-source-dd{display:flex;align-items:center;gap:5px;padding:3px 10px;background:var(--bg);border:1px solid var(--div);border-radius:var(--r6);cursor:pointer;position:relative;transition:border-color .12s}
.v7-source-dd:hover{border-color:var(--terra)}
.v7-menu-sep{width:1px;height:16px;background:var(--div);margin:0 4px;flex-shrink:0}
.v7-menu-item{position:relative;display:flex;align-items:center;padding:0 10px;height:100%;font-size:11px;font-weight:500;color:var(--dark);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .1s}
.v7-menu-item:hover{background:var(--bg);color:var(--terra)}
.v7-dd{position:absolute;top:100%;left:0;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:170px;padding:4px 0;z-index:600;display:none}
.v7-dd.open{display:block}
.v7-dd-item{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;font-size:11px;color:var(--dark);cursor:pointer;transition:all .1s;white-space:nowrap}
.v7-dd-item:hover{background:var(--terra-h);color:var(--terra)}
.v7-dd-kbd{font-size:9px;color:var(--sage);margin-left:14px}
.v7-dd-sep{height:1px;background:var(--div);margin:3px 0}
.v7-power-btn{display:flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:var(--r6);font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;border:1px solid var(--div);background:var(--white);color:var(--dark)}
.v7-power-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.v7-power-btn.ai-btn{background:linear-gradient(135deg,rgba(218,119,86,.1),rgba(206,203,246,.15));border-color:rgba(218,119,86,.3);color:var(--terra)}
.v7-ctx-bar{display:flex;align-items:center;gap:10px;padding:4px 14px;background:var(--white);border-bottom:1px solid var(--div);flex-shrink:0;font-size:10px;min-height:28px}
.v7-ctx-source{display:flex;align-items:center;gap:5px;font-weight:600;color:var(--dark)}
.v7-ctx-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block;flex-shrink:0}
.v7-ctx-div{width:1px;height:12px;background:var(--div);flex-shrink:0}
.v7-sb-tabs{display:flex;align-items:stretch;border-bottom:1px solid var(--div);flex-shrink:0;height:32px}
.v7-sb-tab{flex:1;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--sage);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.v7-sb-tab:hover{color:var(--dark);background:var(--bg)}
.v7-sb-tab.active{color:var(--terra);border-bottom-color:var(--terra)}
.v7-sb-panel{display:none;flex-direction:column;flex:1;overflow:hidden}
.v7-sb-panel.active{display:flex}
.v7-sb-list{flex:1;overflow-y:auto;padding:6px 0}
.v7-sb-list::-webkit-scrollbar{width:0}
.v7-sb-row{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;cursor:pointer;font-size:11px;color:#4A4A4A;transition:all .1s;border-left:2px solid transparent}
.v7-sb-row:hover{background:var(--bg);color:var(--dark)}
.v7-sb-row.active{background:var(--terra-h);color:var(--terra);font-weight:600;border-left-color:var(--terra)}
.v7-sb-empty{padding:14px;font-size:10px;color:var(--sage);font-style:italic;text-align:center;line-height:1.7}
.v7-sb-add{display:flex;align-items:center;gap:6px;padding:7px 14px;cursor:pointer;font-size:10px;color:var(--sage);border-top:1px solid var(--div);transition:all .1s;flex-shrink:0}
.v7-sb-add:hover{color:var(--terra);background:var(--terra-h)}
.v7-back-btn{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;border-radius:var(--r6);font-size:11px;color:var(--sage);transition:all .1s}
.v7-back-btn:hover{background:var(--bg);color:var(--dark)}
.v7-home-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);margin-bottom:12px}
.v7-home-card{background:var(--white);border:1px solid var(--div);border-radius:var(--r10);padding:16px 18px;cursor:pointer;transition:all .18s;min-width:150px;flex:0 0 auto}
.v7-home-card:hover{border-color:var(--terra);box-shadow:0 4px 16px rgba(218,119,86,.12);transform:translateY(-2px)}
.v7-home-card-icon{width:32px;height:32px;border-radius:var(--r8);background:var(--bg);border:1px solid var(--div);display:flex;align-items:center;justify-content:center;margin-bottom:10px;transition:all .18s}
.v7-home-card:hover .v7-home-card-icon{background:var(--terra-h);border-color:var(--terra-b)}
.v7-home-card-icon svg{width:14px;height:14px;stroke:var(--sage)}
.v7-home-card:hover .v7-home-card-icon svg{stroke:var(--terra)}
.v7-home-card-name{font-size:12px;font-weight:700;color:var(--dark);margin-bottom:3px}
.v7-home-card-sub{font-size:10px;color:var(--sage);line-height:1.5}
.v7-home-recent-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r6);cursor:pointer;transition:all .12s;border:1px solid transparent}
.v7-home-recent-row:hover{background:var(--white);border-color:var(--div)}
.v7-picker-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;font-size:11px;font-weight:500;color:var(--dark);background:var(--white);transition:all .12s}
.v7-picker-btn:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-h)}
.v7-picker-card{background:var(--white);border:1px solid var(--div);border-radius:var(--r10);padding:12px 16px;cursor:pointer;transition:all .15s;min-width:110px;text-align:center}
.v7-picker-card:hover{border-color:var(--terra);background:var(--terra-h);transform:translateY(-1px)}
.v7-picker-card-name{font-size:11px;font-weight:700;color:var(--dark);margin-bottom:3px}
.v7-picker-card-meta{font-size:9px;color:var(--sage)}
.bg-table{border-collapse:collapse;font-size:12px;font-family:'Poppins',sans-serif}
.bg-col-hd{background:#F1EEE8;border-bottom:1px solid var(--border);border-right:1px solid var(--div);padding:5px 8px;min-width:100px;position:sticky;top:0;z-index:3;font-size:10px;font-weight:700;color:var(--sage);text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bg-col-hd.rn{min-width:46px;width:46px;left:0;z-index:4;position:sticky}
.bg-rn{background:#F1EEE8;border-right:1px solid var(--border);border-bottom:1px solid var(--div);padding:0 6px;text-align:center;font-size:10px;color:var(--sage);min-width:46px;position:sticky;left:0;z-index:2;-webkit-user-select:none;-moz-user-select:none;user-select:none}
.bg-cell{border-right:1px solid var(--div);border-bottom:1px solid var(--div);min-width:100px;width:100px;vertical-align:middle}
.bg-cell.sel{outline:2px solid var(--terra);outline-offset:-1px;z-index:1}
.bg-cell-inp{width:100%;height:26px;padding:3px 6px;border:none;background:transparent;font-family:'Poppins',sans-serif;font-size:12px;color:var(--dark);outline:none}
.bg-cell-inp:focus{background:var(--white)}
/* pivot source */
.v7-pivot-source{padding:10px 12px;border-bottom:1px solid var(--div);background:var(--bg);flex-shrink:0}
.v7-psc-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);margin-bottom:6px}
.v7-psc-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.v7-psc-card{padding:7px 10px;border:1px solid var(--div);border-radius:var(--r6);cursor:pointer;transition:all .12s;background:var(--white)}
.v7-psc-card:hover,.v7-psc-card.sel{border-color:var(--terra);background:var(--terra-h)}
.v7-psc-name{font-size:10px;font-weight:700;color:var(--dark)}
.v7-psc-meta{font-size:9px;color:var(--sage)}
/* Remove tab icons */
.bi-sheet-tab .tab-icon{display:none}
/* Right panel tab labels */
#rpTabChart::before,#rpTabPivot::before,#rpTabSummary::before,#rpTabKpi::before,#rpTabAi::before{content:''}

/* ── V7: Tab close button ── */
.bi-sheet-tab .tab-close{
  display:none;width:14px;height:14px;border-radius:3px;font-size:10px;line-height:14px;
  text-align:center;color:var(--sage);cursor:pointer;margin-left:4px;flex-shrink:0;
  transition:all .1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;
}
.bi-sheet-tab:hover .tab-close{display:flex;align-items:center;justify-content:center;}
.bi-sheet-tab .tab-close:hover{background:rgba(231,132,142,.2);color:var(--err);}
.bi-sheet-tab.active .tab-close{display:flex;align-items:center;justify-content:center;}
/* Remove tab-icon span */
.bi-sheet-tab .tab-icon{display:none}
/* Remove base badge */
.tab-base-badge{display:none!important}


/* ── 3-dot menus in sidebar ── */
.v7-sb-row{position:relative;}
.v7-sb-row-3dot{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:3px;display:none;align-items:center;justify-content:center;font-size:11px;color:var(--sage);cursor:pointer;letter-spacing:.5px;background:transparent;border:none;}
.v7-sb-row:hover .v7-sb-row-3dot{display:flex;}
.v7-sb-row-3dot:hover{background:var(--div);color:var(--dark);}
.v7-3dot-menu{position:fixed;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:148px;padding:4px 0;z-index:800;font-size:11px;}
.v7-3dot-item{padding:6px 14px;cursor:pointer;color:var(--dark);white-space:nowrap;transition:all .1s;}
.v7-3dot-item:hover{background:var(--terra-h);color:var(--terra);}
.v7-3dot-item.danger{color:var(--err);}
.v7-3dot-item.danger:hover{background:rgba(231,132,142,.1);}
.v7-3dot-sep{height:1px;background:var(--div);margin:3px 0;}

/* ── Dashboard add chart button ── */
.dash-add-btn-float{position:sticky;bottom:16px;left:50%;transform:translateX(-50%);height:32px;padding:0 16px;background:var(--terra);border:none;border-radius:var(--r8);color:#fff;font-family:'Poppins',sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:all .12s;display:block;margin:16px auto 0;z-index:10;}
.dash-add-btn-float:hover{background:#C86B44;transform:translateX(-50%) translateY(-1px);box-shadow:0 4px 12px rgba(218,119,86,.3);}

/* ── Reports sidebar items ── */
.v7-report-item{display:flex;align-items:center;justify-content:space-between;padding:7px 14px;cursor:pointer;font-size:11px;color:var(--dark);transition:all .1s;border-left:2px solid transparent;position:relative;}
.v7-report-item:hover{background:var(--bg);border-left-color:var(--terra);}
.v7-report-item-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.v7-report-item-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v7-report-item-meta{font-size:9px;color:var(--sage);}

/* ── Cell grid selection & fill handle ── */
/* cell-selected rule moved to Part-4 section */
.bi-tbl td.cell-in-range{background:rgba(218,119,86,.06);}
.fill-handle{position:absolute;bottom:-3px;right:-3px;width:7px;height:7px;background:var(--terra);border:1px solid #fff;border-radius:1px;cursor:crosshair;z-index:5;}

/* ── Grid right-click menu ── */
.grid-ctx-menu{position:fixed;background:var(--white);border:1px solid var(--border);border-radius:var(--r8);box-shadow:var(--shadow-lg);min-width:200px;padding:4px 0;z-index:900;font-size:11px;}
.grid-ctx-item{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;cursor:pointer;color:var(--dark);white-space:nowrap;transition:all .1s;}
.grid-ctx-item:hover{background:var(--terra-h);color:var(--terra);}
.grid-ctx-item.danger:hover{background:rgba(231,132,142,.1);color:var(--err);}
.grid-ctx-kbd{font-size:9px;color:var(--sage);margin-left:14px;}
.grid-ctx-sep{height:1px;background:var(--div);margin:3px 0;}
.grid-ctx-sub{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);padding:5px 14px 2px;}

/* ── Dashboard refresh indicator ── */
.dash-refresh-bar{display:flex;align-items:center;gap:7px;margin-top:4px}
.dash-live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex-shrink:0;box-shadow:0 0 0 0 rgba(16,140,114,.4);animation:dash-pulse 2.5s infinite}
@keyframes dash-pulse{0%{box-shadow:0 0 0 0 rgba(16,140,114,.4)}70%{box-shadow:0 0 0 5px rgba(16,140,114,0)}100%{box-shadow:0 0 0 0 rgba(16,140,114,0)}}
.dash-live-dot.refreshing{background:var(--warn);animation:spin .7s linear infinite}
.dash-refresh-label{font-size:10px;color:var(--sage)}
.dash-refresh-btn{font-size:10px;font-weight:600;color:var(--terra);background:none;border:1px solid var(--terra-b);border-radius:var(--r100);padding:1px 8px;cursor:pointer;font-family:'Poppins',sans-serif;transition:all .12s}
.dash-refresh-btn:hover{background:var(--terra);color:#fff}
.dash-refresh-btn:disabled{opacity:.4;cursor:not-allowed}
/* Widget refresh flash */
@keyframes widget-flash{0%{opacity:.4}50%{opacity:.9}100%{opacity:1}}
.widget-refreshing{animation:widget-flash .5s ease}


/* ── New workbook dialog ── */
.v7-nw-card{border:1px solid var(--div);border-radius:var(--r10);padding:14px;cursor:pointer;transition:all .15s;text-align:center}
.v7-nw-card:hover{border-color:var(--terra);background:var(--terra-h);transform:translateY(-1px)}
.v7-nw-card-icon{width:36px;height:36px;border-radius:var(--r8);background:var(--bg);border:1px solid var(--div);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;transition:all .15s}
.v7-nw-card:hover .v7-nw-card-icon{background:rgba(218,119,86,.12);border-color:var(--terra-b)}
.v7-nw-card-icon svg{width:16px;height:16px;stroke:var(--sage)}
.v7-nw-card:hover .v7-nw-card-icon svg{stroke:var(--terra)}
.v7-nw-card-name{font-size:12px;font-weight:700;color:var(--dark);margin-bottom:3px}
.v7-nw-card-sub{font-size:10px;color:var(--sage);line-height:1.4}
.v7-nw-table-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;gap:8px;transition:all .12s}
.v7-nw-table-row:hover{border-color:var(--terra);background:var(--terra-h)}
.v7-nw-load-btn{font-size:10px;font-weight:600;color:var(--terra);flex-shrink:0}
/* ← CRM button in menu bar */
.v7-crm-back{font-size:11px;font-weight:600;color:var(--sage);cursor:pointer;padding:0 8px;height:100%;display:flex;align-items:center;gap:4px;transition:all .12s;white-space:nowrap;flex-shrink:0}
.v7-crm-back:hover{color:var(--terra);background:var(--bg)}
/* Menu sub-label */
.v7-dd-sub{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--sage);padding:5px 14px 2px}


.v7-na-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid var(--div);border-radius:var(--r8);cursor:pointer;transition:all .12s}
.v7-na-row:hover{border-color:var(--terra);background:var(--terra-h)}


/* ══ EXCEL GRID LOOK ══ */
/* Override grid borders with cool light grey */
.bi-tbl td { border-color:#E8E8E8!important; }
.bi-tbl th { border-color:#E8E8E8!important; }
.bi-tbl { border-color:#E8E8E8!important; }

/* Column headers — Excel style */
.bi-tbl th { background:#F1F3F4!important; }
.bi-tbl th.col-header-hl { background:#FAE3DB!important; }
.bi-tbl .rn-th { background:#F1F3F4!important; }
.bi-tbl .chk-th { background:#F1F3F4!important; }

/* Row number column — Excel style */
.bi-tbl td.rn {
  background:#F8F9FA!important;
  color:#80868B!important;
  font-size:10px!important;
  text-align:right!important;
  padding:0 5px 0 2px!important;
  min-width: 36px!important;
  width: 36px!important;
  border-color:#E8E8E8!important;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.bi-tbl td.rn.rn-hl {
  background:#FAE3DB!important;
  color:var(--terra)!important;
  font-weight:600!important;
}

/* Row height — tighter like Excel */
.bi-tbl.rh-c tr { height:22px; }
.bi-tbl.rh-c td,.bi-tbl.rh-c th { padding:2px 6px; font-size:12px; }
.bi-tbl.rh-m tr { height:28px; }
.bi-tbl.rh-m td,.bi-tbl.rh-m th { padding:4px 8px; font-size:12px; }
.bi-tbl.rh-l tr { height:36px; }
.bi-tbl.rh-l td,.bi-tbl.rh-l th { padding:7px 8px; font-size:12px; }

/* Type dot in header — tiny coloured dot */
.bi-col-type {
  width:5px; height:5px; border-radius:50%;
  display:inline-block; flex-shrink:0;
  margin-right:4px; vertical-align:middle;
  background:#9AA0A6; /* default grey = text */
}
.bi-col-type.type-num { background:#1A73E8; }
.bi-col-type.type-date { background:#188038; }
.bi-col-type.type-text { background:#9AA0A6; }
/* Hide the old text label for type */
.bi-col-type-label { display:none; }

/* Column header inner layout */
.bi-th-inner {
  display:flex; align-items:center; gap:3px;
  font-size:11px; font-weight:500; color:#3C4043;
  white-space:nowrap; overflow:hidden;
}
.bi-col-name { flex:1; overflow:hidden; text-overflow:ellipsis; }

/* Selected cell — stronger Excel-like border */
/* cell-selected rule 2 removed — see Part-4 */

/* Empty rows below data */
.bi-tbl tr.empty-row td {
  background:#fff!important;
  color:transparent!important;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  pointer-events:none;
}
.bi-tbl tr.empty-row td.rn {
  background:#F8F9FA!important;
  color:#C4C7CC!important;
  pointer-events:none;
}

/* Column resize handle */
.col-resize-handle {
  position:absolute; right:0; top:0;
  width:4px; height:100%; cursor:col-resize;
  background:transparent; z-index:5;
}
.col-resize-handle:hover, .col-resize-handle.dragging {
  background:var(--terra); opacity:.6;
}
/* .bi-tbl th position:relative removed — sticky kept */

/* Alternating rows — very subtle like Excel */
.bi-tbl tbody tr:nth-child(even) td:not(.rn):not(.chk-td) {
  background:#FAFAFA;
}
.bi-tbl tbody tr:hover td:not(.rn):not(.chk-td) {
  background:rgba(218,119,86,.03)!important;
}

/* ══════════════════════════════════════════════════════════════
   ENTERPRISE QUERY BUILDER — Full redesign
   ══════════════════════════════════════════════════════════════ */

/* Overlay + Dialog shell */
.query-overlay {
  position:fixed; inset:0; background:rgba(15,23,42,.55);
  z-index:700; display:none; align-items:center; justify-content:center;
  backdrop-filter:blur(2px);
}
.query-overlay.open { display:flex; }
.query-dialog {
  background:#fff; border-radius:16px;
  box-shadow:0 32px 80px rgba(15,23,42,.22), 0 0 0 1px rgba(15,23,42,.06);
  width:960px; max-width:96vw; display:flex; flex-direction:column;
  height:90vh; max-height:90vh; overflow:hidden; font-family:'Inter','Poppins',sans-serif;
}

/* ── Header ── */
.qb-header {
  padding:20px 24px 16px; border-bottom:1px solid #F1F3F4;
  display:flex; align-items:flex-start; justify-content:space-between;
  flex-shrink:0; background:#FAFBFC;
}
.qb-header-left { display:flex; align-items:center; gap:12px; }
.qb-header-icon {
  width:40px; height:40px; border-radius:10px;
  background:linear-gradient(135deg,#DA7756,#C86B44);
  display:flex; align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0; box-shadow:0 2px 8px rgba(218,119,86,.3);
}
.qb-header-title { font-size:15px; font-weight:700; color:#0F172A; letter-spacing:-.02em; }
.qb-header-sub { font-size:11px; color:#64748B; margin-top:2px; }
.qb-close-btn {
  width:32px; height:32px; border-radius:8px; border:1px solid #E2E8F0;
  background:#fff; cursor:pointer; font-size:14px; color:#64748B;
  display:flex; align-items:center; justify-content:center;
  transition:all .12s; flex-shrink:0;
}
.qb-close-btn:hover { background:#FEF2F2; color:#EF4444; border-color:#FCA5A5; }

/* ── Progress wizard steps ── */
.qb-steps {
  display:flex; align-items:center; padding:14px 24px;
  border-bottom:1px solid #F1F3F4; background:#FAFBFC;
  gap:0; flex-shrink:0; overflow-x:auto;
}
.qb-step {
  display:flex; align-items:center; gap:8px; flex-shrink:0;
}
.qb-step-num {
  width:24px; height:24px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:700; flex-shrink:0;
  background:#E2E8F0; color:#94A3B8; transition:all .2s;
}
.qb-step.active .qb-step-num { background:#DA7756; color:#fff; box-shadow:0 2px 8px rgba(218,119,86,.4); }
.qb-step.done .qb-step-num { background:#22C55E; color:#fff; }
.qb-step-label {
  font-size:10px; font-weight:600; color:#94A3B8; white-space:nowrap;
  transition:color .2s;
}
.qb-step.active .qb-step-label { color:#DA7756; }
.qb-step.done .qb-step-label { color:#16A34A; }
.qb-step-arrow { color:#CBD5E1; font-size:12px; margin:0 8px; flex-shrink:0; }

/* ── Body layout ── */
.qb-body {
  display:flex; flex:1; min-height:0; overflow:hidden;
}

/* ── Left: Data model explorer ── */
.qb-explorer {
  width:220px; flex-shrink:0; border-right:1px solid #F1F3F4;
  background:#F8FAFC; overflow-y:auto; padding:16px 12px;
  display:flex; flex-direction:column; gap:4px;
}
.qb-explorer-title {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:#94A3B8; padding:0 4px; margin-bottom:8px;
}
.qb-module-group { margin-bottom:4px; }
.qb-module-header {
  display:flex; align-items:center; gap:8px; padding:7px 10px;
  border-radius:8px; cursor:pointer; transition:all .12s;
  font-size:11px; font-weight:700; color:#1E293B;
  border:1px solid transparent;
}
.qb-module-header:hover { background:#fff; border-color:#E2E8F0; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.qb-module-header.active { background:#fff; border-color:#DA7756; color:#DA7756; box-shadow:0 2px 8px rgba(218,119,86,.12); }
.qb-module-icon {
  width:24px; height:24px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; flex-shrink:0;
}
.qb-module-icon.deals { background:#FEF3C7; }
.qb-module-icon.contacts { background:#DBEAFE; }
.qb-module-icon.clients { background:#DCFCE7; }
.qb-module-icon.tasks { background:#F3E8FF; }
.qb-module-icon.products { background:#FEE2E2; }
.qb-module-count {
  margin-left:auto; font-size:9px; font-weight:600;
  background:#F1F5F9; color:#64748B; border-radius:10px;
  padding:1px 6px;
}
.qb-module-header.active .qb-module-count { background:#FEF3C7; color:#D97706; }

.qb-relation-list { padding-left:8px; margin-top:2px; display:flex; flex-direction:column; gap:1px; }
.qb-relation-item {
  display:flex; align-items:center; gap:6px; padding:5px 8px;
  border-radius:6px; cursor:pointer; font-size:10px;
  color:#475569; transition:all .1s; border:1px solid transparent;
  position:relative;
}
.qb-relation-item::before {
  content:''; position:absolute; left:-4px; top:50%;
  transform:translateY(-50%); width:8px; height:1px;
  background:#CBD5E1;
}
.qb-relation-item:hover { background:#fff; border-color:#E2E8F0; color:#1E293B; }
.qb-relation-item.active { background:#EEF2FF; border-color:#A5B4FC; color:#4338CA; font-weight:600; }
.qb-relation-dot {
  width:6px; height:6px; border-radius:50%;
  background:#CBD5E1; flex-shrink:0; transition:background .1s;
}
.qb-relation-item.active .qb-relation-dot { background:#4338CA; }
.qb-relation-badge {
  margin-left:auto; font-size:8px; font-weight:600;
  background:#F1F5F9; color:#94A3B8; border-radius:8px; padding:1px 5px;
}

/* ── Main panel ── */
.qb-main {
  flex:1; display:flex; overflow:hidden; min-height:0;
}

/* ── Center: builder form ── */
.qb-form {
  flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:16px; min-height:0;
}

/* ── Right: live summary + preview panel ── */
.qb-sidebar {
  width:240px; flex-shrink:0; border-left:1px solid #F1F3F4;
  background:#FAFBFC; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px;
}

/* ── Section card ── */
.qb-card {
  background:#fff; border:1px solid #E2E8F0; border-radius:10px;
  overflow:visible;
  flex-shrink:0;
}
.qb-card-header {
  padding:10px 14px 8px; border-bottom:1px solid #F1F3F4;
  display:flex; align-items:center; gap:8px;
}
.qb-card-step-badge {
  width:20px; height:20px; border-radius:6px;
  background:#DA7756; color:#fff; font-size:9px; font-weight:700;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.qb-card-title { font-size:11px; font-weight:700; color:#1E293B; }
.qb-card-body { padding:12px 14px; }

/* ── Form controls ── */
.qb-select {
  width:100%; padding:8px 12px; border:1px solid #E2E8F0;
  border-radius:8px; font-size:11px; color:#1E293B;
  background:#fff; outline:none; cursor:pointer; transition:border .12s;
  font-family:'Inter','Poppins',sans-serif;
  -webkit-appearance:none;
     -moz-appearance:none;
          appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
  padding-right:30px;
}
.qb-select:focus { border-color:#DA7756; box-shadow:0 0 0 3px rgba(218,119,86,.1); }

.qb-label { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94A3B8; margin-bottom:5px; }

/* Join type pills */
.qb-join-pills { display:flex; gap:6px; }
.qb-join-pill {
  flex:1; padding:7px 6px; border:1px solid #E2E8F0; border-radius:8px;
  font-size:10px; font-weight:600; cursor:pointer; text-align:center;
  color:#64748B; background:#fff; transition:all .12s;
}
.qb-join-pill:hover { border-color:#DA7756; color:#DA7756; }
.qb-join-pill.active { background:#DA7756; border-color:#DA7756; color:#fff; box-shadow:0 2px 8px rgba(218,119,86,.3); }
.qb-join-pill small { display:block; font-size:8px; font-weight:400; margin-top:1px; opacity:.8; }

/* Match-on row */
.qb-match-row { display:flex; align-items:center; gap:8px; }
.qb-match-eq {
  width:28px; height:28px; border-radius:50%; background:#F1F5F9;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#64748B; flex-shrink:0;
}

/* ── Field picker ── */
.qb-field-search {
  width:100%; padding:7px 10px 7px 30px; border:1px solid #E2E8F0;
  border-radius:8px; font-size:11px; outline:none; transition:border .12s;
  font-family:'Inter','Poppins',sans-serif; background:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:9px center;
  box-sizing:border-box;
}
.qb-field-search:focus { border-color:#DA7756; }

.qb-field-cols { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.qb-field-group-label {
  font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
  color:#94A3B8; margin-bottom:6px; display:flex; align-items:center; gap:5px;
}
.qb-field-list {
  border:1px solid #E2E8F0; border-radius:8px; overflow:hidden;
  max-height:180px; overflow-y:auto;
}
.qb-field-group-section { border-bottom:1px solid #F1F3F4; }
.qb-field-group-header {
  padding:5px 10px; background:#F8FAFC;
  font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94A3B8;
  border-bottom:1px solid #F1F3F4; position:sticky; top:0; z-index:1;
}
.qb-field-item {
  display:flex; align-items:center; gap:8px; padding:5px 10px;
  font-size:10px; color:#374151; cursor:pointer; transition:background .08s;
  border-bottom:1px solid #F8FAFC;
}
.qb-field-item:last-child { border-bottom:none; }
.qb-field-item:hover { background:#F8FAFC; }
.qb-field-item.hidden { display:none; }
.qb-field-icon {
  width:16px; height:16px; border-radius:4px;
  display:flex; align-items:center; justify-content:center;
  font-size:9px; flex-shrink:0;
}
.qb-field-icon.num { background:#DBEAFE; color:#1D4ED8; }
.qb-field-icon.txt { background:#F3F4F6; color:#374151; }
.qb-field-icon.date { background:#DCFCE7; color:#166534; }
.qb-field-item input[type=checkbox] { accent-color:#DA7756; flex-shrink:0; }

/* ── Output name ── */
.qb-name-input {
  width:100%; padding:9px 12px; border:1.5px solid #E2E8F0;
  border-radius:8px; font-size:12px; font-weight:600; color:#1E293B;
  outline:none; transition:border .12s; box-sizing:border-box;
  font-family:'Inter','Poppins',sans-serif;
}
.qb-name-input:focus { border-color:#DA7756; box-shadow:0 0 0 3px rgba(218,119,86,.1); }

/* ── Preview table ── */
.qb-preview-wrap { margin-top:4px; }
.qb-preview-table {
  border-collapse:collapse; width:100%; font-size:10px;
}
.qb-preview-table th {
  background:#F8FAFC; padding:6px 10px; text-align:left;
  font-weight:600; color:#64748B; border-bottom:2px solid #E2E8F0;
  white-space:nowrap; font-size:9px; text-transform:uppercase; letter-spacing:.04em;
}
.qb-preview-table td {
  padding:5px 10px; border-bottom:1px solid #F1F3F4;
  white-space:nowrap; color:#374151;
}
.qb-preview-table tbody tr:hover td { background:#F8FAFC; }

/* ── Summary sidebar ── */
.qb-summary-card {
  background:#fff; border:1px solid #E2E8F0; border-radius:10px; overflow:hidden;
}
.qb-summary-header {
  padding:9px 12px; background:linear-gradient(135deg,#DA7756,#C86B44);
  font-size:10px; font-weight:700; color:#fff; letter-spacing:.02em;
}
.qb-summary-body { padding:10px 12px; display:flex; flex-direction:column; gap:8px; }
.qb-summary-row { display:flex; flex-direction:column; gap:2px; }
.qb-summary-key { font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#94A3B8; }
.qb-summary-val { font-size:11px; font-weight:600; color:#1E293B; min-height:16px; }
.qb-summary-val.empty { color:#CBD5E1; font-weight:400; font-style:italic; font-size:10px; }
.qb-summary-tags { display:flex; flex-wrap:wrap; gap:3px; min-height:18px; }
.qb-summary-tag {
  font-size:9px; font-weight:600; padding:2px 7px; border-radius:10px;
  background:#F1F5F9; color:#475569;
}
.qb-summary-tag.field { background:#EEF2FF; color:#4338CA; }
.qb-summary-tag.filter { background:#FEF3C7; color:#D97706; }

/* ── Est. rows stat cards ── */
.qb-stat-cards { display:flex; flex-direction:column; gap:6px; }
.qb-stat-card {
  background:#fff; border:1px solid #E2E8F0; border-radius:8px;
  padding:10px 12px; display:flex; align-items:center; gap:10px;
}
.qb-stat-icon {
  width:32px; height:32px; border-radius:8px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.qb-stat-val { font-size:16px; font-weight:800; color:#1E293B; line-height:1; }
.qb-stat-label { font-size:9px; color:#94A3B8; font-weight:500; margin-top:2px; }

/* ── Footer ── */
.qb-footer {
  padding:14px 24px; border-top:1px solid #F1F3F4;
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0; background:#FAFBFC; gap:10px;
}
.qb-footer-left { display:flex; align-items:center; gap:8px; font-size:10px; color:#64748B; }
.qb-footer-right { display:flex; align-items:center; gap:8px; }
.qb-btn {
  height:36px; padding:0 18px; border-radius:8px;
  font-family:'Inter','Poppins',sans-serif; font-size:11px; font-weight:600;
  cursor:pointer; transition:all .15s; display:flex; align-items:center; gap:6px;
}
.qb-btn.ghost { border:1px solid #E2E8F0; background:#fff; color:#64748B; }
.qb-btn.ghost:hover { border-color:#DA7756; color:#DA7756; background:#FEF9F7; }
.qb-btn.secondary { border:1px solid #E2E8F0; background:#F8FAFC; color:#374151; }
.qb-btn.secondary:hover { background:#F1F5F9; }
.qb-btn.primary {
  border:none; background:linear-gradient(135deg,#DA7756,#C86B44); color:#fff;
  box-shadow:0 2px 8px rgba(218,119,86,.35);
}
.qb-btn.primary:hover { box-shadow:0 4px 16px rgba(218,119,86,.45); transform:translateY(-1px); }
.qb-btn.primary:active { transform:translateY(0); }

/* ── Old classes kept for JS compatibility ── */
.query-overlay { } /* already set above */
.query-col-item { display:flex; align-items:center; gap:6px; padding:3px 4px; font-size:10px; color:var(--dark); cursor:pointer; border-radius:4px; }
.query-col-item:hover { background:var(--bg); }
.query-col-item input { accent-color:var(--terra); flex-shrink:0; }
.query-join-btn { padding:4px 10px; border:1px solid var(--div); border-radius:var(--r6); font-size:10px; font-weight:600; cursor:pointer; background:var(--bg); color:var(--sage); transition:all .12s; }
.query-join-btn.active { background:var(--terra); border-color:var(--terra); color:#fff; }
/* Preview table compat */
.query-preview-table { border-collapse:collapse; width:100%; font-size:10px; margin-top:8px; }
.query-preview-table th { background:#F1F3F4; padding:4px 8px; text-align:left; font-weight:600; color:var(--sage); border-bottom:1px solid var(--div); white-space:nowrap; }
.query-preview-table td { padding:4px 8px; border-bottom:1px solid rgba(0,0,0,.04); white-space:nowrap; }



/* ═══════════════════════════════════════════════════
   PART 1 — OVERLAP FIX + GOOGLE SHEETS VISUAL STYLE
   ═══════════════════════════════════════════════════ */

/* Force fixed table layout — column widths set by TH,
   uniform across all rows. Required for sticky to work. */
.bi-tbl {
  table-layout: fixed !important; /* required: uniform column widths */
  width: -moz-max-content !important;
  width: max-content !important;
}

/* All cells must clip content — never overflow into adjacent col */
.bi-tbl td, .bi-tbl th {
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* ── PART 4: Google Sheets headers ── */
.bi-tbl thead tr {
  background: #F8F9FA !important;
}
.bi-tbl th {
  background: #F8F9FA !important;
  color: #444746 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  border-right: 1px solid #E1E1E1 !important;
  border-bottom: 2px solid #DADCE0 !important;
}
.bi-tbl th.chk-th { background:#F1F3F4 !important; }

/* ── PART 4: Thin borders — spreadsheet look ── */
.bi-tbl td {
  border-right: 1px solid #E8E8E8 !important;
  border-bottom: 1px solid #E8E8E8 !important;
  font-size: 12px !important;
  color: #202124 !important;
  height: 22px !important;
  padding: 3px 8px !important;
  background: #fff !important;
  font-family: Arial, sans-serif !important;
}

/* ── PART 4: Row alternating — very subtle ── */
.bi-tbl tbody tr:nth-child(even) td:not(.rn):not(.chk-td):not(.frz-td) {
  background: #FAFAFA !important;
}

/* ── PART 4: Row number column ── */
.bi-tbl td.rn {
  background: #F8F9FA !important;
  color: #80868B !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  text-align: center !important;
  border-right: 1px solid #E1E1E1 !important;
}

/* ── PART 4: Frozen first column ── */
.bi-tbl td.frz-td {
  background: #fff !important;
  border-right: 2px solid #DADCE0 !important;
  font-weight: 500 !important;
}
.bi-tbl th.frz.freeze-line,
.bi-tbl th.freeze-line {
  border-right: 2px solid #DADCE0 !important;
}

/* ── PART 4: Selected cell — Google Sheets blue ── */
.bi-tbl td.cell-selected {
  outline: 2px solid #1A73E8 !important;
  outline-offset: -2px !important;
  background: rgba(26,115,232,0.04) !important;
  position: relative !important;
  z-index: 3 !important;
}
.bi-tbl td.frz-td.cell-selected {
  z-index: 1 !important;
  background: #EAF1FE !important;
}

/* ── PART 4: Selected row ── */
.bi-tbl tr.selected-row td {
  background: rgba(26,115,232,0.06) !important;
}
.bi-tbl tr.selected-row td.rn {
  background: #E8F0FE !important;
  color: #1A73E8 !important;
  font-weight: 600 !important;
}

/* ── PART 4: Sheet tabs — Google Sheets style ── */
.bi-sheet-tabs {
  background: #F1F3F4 !important;
  border-top: 1px solid #E0E0E0 !important;
}
.bi-sheet-tab {
  background: transparent !important;
  border: none !important;
  border-right: 1px solid transparent !important;
  border-radius: 4px 4px 0 0 !important;
  color: #5F6368 !important;
  font-size: 11px !important;
  padding: 0 16px !important;
  transition: background 0.1s !important;
}
.bi-sheet-tab:hover {
  background: rgba(0,0,0,0.05) !important;
}
.bi-sheet-tab.active {
  background: #fff !important;
  color: #1A73E8 !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #1A73E8 !important;
  box-shadow: 0 -1px 3px rgba(0,0,0,0.1) !important;
}

/* ── PART 2: Hide add-sheet button ── */
#sheetTabAdd { display: none !important; }

/* ── PART 4: Scrollbar — clean minimal ── */
.bi-grid-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.bi-grid-scroll::-webkit-scrollbar-track { background: #F1F3F4; }
.bi-grid-scroll::-webkit-scrollbar-thumb { background: #BDC1C6; border-radius: 4px; }
.bi-grid-scroll::-webkit-scrollbar-thumb:hover { background: #9AA0A6; }

/* ── PART 4: Filter active indicator ── */
.bi-col-filter-btn.active { color: #1A73E8 !important; }

/* ── PART 4: Sorted column header ── */
.bi-tbl th.sorted { background: #EEF2FF !important; }

/* ── PART 7: Workbook info bar ── */
#wbInfoBar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 2px 14px;
  background: #F8F9FA;
  border-bottom: 1px solid #E1E1E1;
  font-size: 10px;
  color: #5F6368;
  flex-shrink: 0;
}
#wbInfoBar .wb-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 7px;
  background: #E8F0FE;
  color: #1A73E8;
  border-radius: 10px;
  font-weight: 600;
  font-size: 10px;
}
#wbInfoBar .wb-readonly {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 7px;
  background: #FEF3C7;
  color: #92400E;
  border-radius: 10px;
  font-weight: 500;
  font-size: 10px;
}

/* ── PART 5: Query builder tree ── */
/* qb-tree CSS replaced by enterprise styles above */

/* ── PART 8: Empty state polish ── */
.bi-empty-state {
  color: #80868B !important;
}
.bi-es-title { font-weight: 600 !important; color: #5F6368 !important; }
.bi-es-sub { font-size: 12px !important; }

/* ════════════════════════════════════════════════════════
   V10 UX POLISH — Visual consistency, button standardization,
   spacing harmony, module coherence
   ════════════════════════════════════════════════════════ */

/* ── TOKEN REINFORCEMENT ────────────────────────────────
   Ensure consistent transition & focus ring across all
   interactive elements, without overriding logic/behavior.
   ─────────────────────────────────────────────────────── */
:root {
  --btn-h: 28px;           /* standard button height */
  --btn-h-sm: 24px;        /* small / toolbar button height */
  --btn-h-lg: 34px;        /* large CTA button height */
  --transition: all 0.13s ease;
  --focus-ring: 0 0 0 2px rgba(218,119,86,.28);
  --r-btn: 6px;
}

/* ── CRM TOP NAV — tighten avatar & icon sizes ─────────── */
.nav-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 12px;
  transition: var(--transition);
}
.nav-icon:hover {
  background: var(--bg);
  border-color: var(--border);
  color: var(--dark);
}
.nav-avatar {
  width: 28px;
  height: 28px;
  font-size: 10px;
  transition: var(--transition);
}
.nav-avatar:hover {
  opacity: 0.88;
}
.crm-search {
  height: 28px;
  padding: 0 12px;
  gap: 7px;
  transition: border-color 0.13s;
}
.crm-search:focus-within {
  border-color: var(--terra);
}

/* ── SIDEBAR ────────────────────────────────────────────
   Standardize item padding, font, border-left transition
   ─────────────────────────────────────────────────────── */
.crm-sb-item {
  padding: 7px 14px;
  font-size: 11px;
  border-left: 2px solid transparent;
  transition: var(--transition);
}
.crm-sb-item:hover {
  background: var(--bg);
  color: var(--terra);
}
.crm-sb-item.active {
  background: var(--terra-h);
  color: var(--terra);
  font-weight: 600;
  border-left-color: var(--terra);
}
.crm-sb-section-label {
  font-size: 8px;
  padding: 8px 14px 3px;
  letter-spacing: .09em;
  color: #9AA0A6;
}
.bi-subtree-item {
  padding: 5px 14px 5px 34px;
  font-size: 11px;
  transition: var(--transition);
}
.v7-sb-tab {
  font-size: 9px;
  letter-spacing: .06em;
  transition: var(--transition);
}
.v7-sb-row {
  padding: 7px 14px;
  font-size: 11px;
  transition: var(--transition);
}

/* ── MENU BAR ────────────────────────────────────────────
   Standardize menu item height, hover states
   ─────────────────────────────────────────────────────── */
.v7-menubar {
  height: 34px;
  padding: 0 10px;
}
.v7-menu-item {
  font-size: 11px;
  padding: 0 9px;
  height: 100%;
  transition: var(--transition);
  border-radius: 3px;
}
.v7-menu-item:hover {
  background: var(--bg);
  color: var(--terra);
}
.v7-dd {
  border-radius: var(--r8);
  padding: 5px 0;
  box-shadow: 0 6px 24px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.06);
}
.v7-dd-item {
  padding: 7px 14px;
  font-size: 11px;
  transition: var(--transition);
}
.v7-dd-item:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.v7-dd-kbd {
  font-size: 9px;
  color: #B0B7BF;
  background: var(--bg);
  padding: 1px 5px;
  border-radius: 3px;
  border: 1px solid var(--div);
  font-family: monospace;
  letter-spacing: 0;
}

/* ── TOOLBAR BUTTONS — uniform 28px height ────────────── */
.bi-tb-btn {
  height: var(--btn-h);
  padding: 0 10px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r-btn);
  border: 1px solid var(--div);
  transition: var(--transition);
  letter-spacing: .01em;
  gap: 5px;
}
.bi-tb-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.bi-tb-btn:active {
  transform: translateY(1px);
}
.bi-tb-btn.primary {
  background: var(--terra);
  border-color: var(--terra);
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.bi-tb-btn.primary:hover {
  background: #C86B44;
  box-shadow: 0 3px 10px rgba(218,119,86,.35);
}
.bi-tb-btn:disabled,
.bi-tb-btn[disabled] {
  opacity: 0.38;
  cursor: not-allowed;
  pointer-events: none;
}
.bi-tb-search {
  height: var(--btn-h);
  border-radius: var(--r-btn);
  transition: border-color 0.13s;
}
.bi-tb-search:focus-within {
  border-color: var(--terra);
}
.v7-source-dd {
  height: var(--btn-h);
  border-radius: var(--r-btn);
  padding: 0 10px 0 8px;
  transition: var(--transition);
}
.zoom-ctrl {
  height: var(--btn-h);
  border-radius: var(--r-btn);
}
.zoom-btn {
  width: var(--btn-h);
  font-size: 15px;
  transition: var(--transition);
}
.zoom-btn:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.zoom-pct {
  font-size: 10px;
  min-width: 40px;
}
.v7-power-btn {
  height: var(--btn-h);
  padding: 0 11px;
  font-size: 11px;
  border-radius: var(--r-btn);
  transition: var(--transition);
}
.v7-power-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}

/* ── SAVED VIEWS BAR ─────────────────────────────────── */
.saved-views-bar {
  padding: 5px 14px;
  min-height: 32px;
  gap: 6px;
}
.sv-chip {
  height: 22px;
  padding: 0 10px;
  font-size: 10px;
  border-radius: var(--r100);
  transition: var(--transition);
}
.sv-chip:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.sv-chip.active {
  background: var(--terra-h);
  border-color: var(--terra-b);
  color: var(--terra);
  font-weight: 600;
}
.sv-add {
  height: 22px;
  padding: 0 8px;
  font-size: 10px;
  transition: var(--transition);
}
.sv-add:hover {
  border-color: var(--terra);
  color: var(--terra);
}

/* ── FILTER CHIPS ────────────────────────────────────── */
.bi-filter-row {
  padding: 5px 14px;
  min-height: 34px;
  gap: 5px;
}
.bi-fc {
  height: 22px;
  padding: 0 9px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r100);
  gap: 5px;
}
.bi-fc-x {
  font-size: 11px;
  opacity: 0.5;
  transition: opacity 0.1s;
}
.bi-fc-x:hover {
  opacity: 1;
}

/* ── TABLE POLISH ────────────────────────────────────────
   Row hover, selected row, header, sort indicators
   ─────────────────────────────────────────────────────── */
.bi-tbl tbody tr:hover td:not(.rn):not(.chk-td) {
  background: #FDF3EF !important;
}
.bi-tbl tr.selected-row td:not(.rn):not(.chk-td) {
  background: #EEF4FF !important;
}
.bi-tbl tr.selected-row td.rn {
  background: #DBE8FD !important;
  color: #1A73E8 !important;
  font-weight: 700 !important;
}
.bi-tbl td.cell-selected {
  outline: 2px solid var(--terra) !important;
  outline-offset: -2px !important;
  background: rgba(218,119,86,.05) !important;
}
.bi-tbl th.sorted {
  background: #FEF3EF !important;
}
.bi-tbl th.sorted .bi-col-name {
  color: var(--terra) !important;
}
/* filter active ─ terra accent consistent with brand */
.bi-col-filter-btn.active {
  color: var(--terra) !important;
}

/* ── TABLE HEADER CLARITY ─────────────────────────────── */
.bi-th-inner {
  padding: 6px 6px 6px 9px;
  gap: 4px;
}
.bi-sort-btn {
  font-size: 9px;
  opacity: 0.22;
  transition: opacity 0.1s;
}
.bi-th-inner:hover .bi-sort-btn {
  opacity: 0.65;
}
.bi-tbl th.sorted .bi-sort-btn {
  opacity: 1;
  color: var(--terra);
}

/* ── SHEET TABS — cleaner active state ────────────────── */
.bi-sheet-tabs {
  height: 34px !important;
  background: #F1F3F4 !important;
}
.bi-sheet-tab {
  font-size: 11px !important;
  padding: 0 14px !important;
  min-width: 72px !important;
  transition: background 0.1s, color 0.1s !important;
}
.bi-sheet-tab:hover {
  background: rgba(0,0,0,.04) !important;
}
.bi-sheet-tab.active {
  background: #fff !important;
  font-weight: 600 !important;
  box-shadow: 0 -2px 0 0 #DA7756 inset, 0 -1px 4px rgba(0,0,0,.08) !important;
  color: #DA7756 !important;
  border-bottom: none !important;
}
.bi-sheet-tab .tab-close {
  width: 15px;
  height: 15px;
  border-radius: 3px;
  font-size: 10px;
  transition: var(--transition);
}
.bi-sheet-tab .tab-close:hover {
  background: rgba(218,119,86,.18);
  color: var(--terra);
}

/* ── GRID FOOTER ─────────────────────────────────────── */
.bi-grid-footer {
  padding: 5px 14px;
  min-height: 30px;
  background: #FAFAFA;
  border-top: 1px solid #E8E8E8;
}
.bi-footer-stats {
  font-size: 10px;
  color: #80868B;
  gap: 16px;
}
.bi-footer-stat b {
  color: var(--dark);
  font-weight: 700;
}
.pg-btn {
  height: 24px;
  min-width: 24px;
  font-size: 10px;
  border-radius: 4px;
  border: 1px solid var(--div);
  transition: var(--transition);
}
.pg-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
}
.pg-btn.a {
  background: var(--terra);
  border-color: var(--terra);
  color: #fff;
}
.pg-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* ── RIGHT PANEL TABS — uniform height & spacing ─────── */
.bi-rp-tabs {
  height: 36px;
}
.bi-rp-tab {
  font-size: 10px;
  font-weight: 600;
  padding: 0 4px;
  letter-spacing: .01em;
  transition: var(--transition);
}
.bi-rp-tab:hover {
  color: var(--dark);
  background: var(--bg);
}
.bi-rp-tab.active {
  color: var(--terra);
  border-bottom-color: var(--terra);
}
.bi-rp-body {
  padding: 14px 12px;
}
.bi-rp-section {
  margin-bottom: 16px;
}
.bi-rp-section-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #9AA0A6;
  margin-bottom: 7px;
}
.bi-rp-select {
  padding: 6px 8px;
  border-radius: var(--r6);
  font-size: 11px;
  transition: border-color 0.13s;
}
.bi-rp-select:focus {
  border-color: var(--terra);
  outline: none;
  box-shadow: var(--focus-ring);
}

/* ── RIGHT PANEL FOOTER BUTTONS ───────────────────────── */
.bi-rp-footer {
  padding: 10px 12px;
  gap: 8px;
  border-top: 1px solid var(--div);
}
.bi-rp-footer-btn {
  height: var(--btn-h-lg);
  padding: 0 14px;
  border-radius: var(--r8);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  gap: 6px;
}
.bi-rp-footer-btn.primary {
  background: var(--terra);
  border: none;
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.28);
}
.bi-rp-footer-btn.primary:hover {
  background: #C86B44;
  box-shadow: 0 3px 12px rgba(218,119,86,.38);
}
.bi-rp-footer-btn.secondary {
  background: var(--white);
  border: 1px solid var(--div);
  color: var(--dark);
}
.bi-rp-footer-btn.secondary:hover {
  border-color: var(--terra);
  color: var(--terra);
}
.push-crm-btn {
  height: var(--btn-h-lg);
  border-radius: var(--r8);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  letter-spacing: .01em;
}
.push-crm-btn:hover {
  background: #C86B44;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(218,119,86,.35);
}

/* ── CHART TYPE BUTTONS ───────────────────────────────── */
.chart-type-btn {
  padding: 10px 4px;
  border-radius: var(--r8);
  border: 1px solid var(--div);
  gap: 5px;
  transition: var(--transition);
}
.chart-type-btn:hover {
  border-color: var(--terra);
  background: var(--terra-h);
}
.chart-type-btn.active {
  border-color: var(--terra);
  background: var(--terra-h);
  box-shadow: 0 0 0 2px var(--terra-b);
}
.chart-type-btn .ct-label {
  font-size: 10px;
  font-weight: 600;
}

/* ── COLOUR SWATCHES ──────────────────────────────────── */
.colour-swatch {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid transparent;
  transition: var(--transition);
}
.colour-swatch:hover {
  transform: scale(1.18);
  border-color: rgba(0,0,0,.2);
}
.colour-swatch.active {
  border-color: var(--dark);
  transform: scale(1.1);
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(0,0,0,.15);
}

/* ── CHART PREVIEW ────────────────────────────────────── */
.bi-chart-preview {
  border-radius: var(--r8);
  overflow: hidden;
  border: 1px solid var(--div);
}
.bi-chart-preview-empty {
  height: 160px;
  font-size: 11px;
  color: #9AA0A6;
  line-height: 1.7;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* ── TOGGLE SWITCH ────────────────────────────────────── */
.toggle-switch {
  width: 30px;
  height: 17px;
  border-radius: 9px;
  transition: background 0.2s;
}
.toggle-switch::after {
  width: 13px;
  height: 13px;
  top: 2px;
  left: 2px;
}
.toggle-switch.on::after {
  left: 15px;
}

/* ── AI PANEL POLISH ──────────────────────────────────── */
.ai-prompt-wrap {
  position: relative;
}
.ai-prompt-input {
  border-radius: var(--r8);
  font-size: 12px;
  padding: 9px 38px 9px 11px;
  min-height: 72px;
  line-height: 1.6;
  border: 1px solid #D1D5DB;
  background: var(--white);
  transition: border-color 0.13s, box-shadow 0.13s;
}
.ai-prompt-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.ai-prompt-send {
  width: 28px;
  height: 28px;
  border-radius: var(--r6);
  font-size: 14px;
  bottom: 7px;
  right: 7px;
  transition: var(--transition);
}
.ai-prompt-send:hover {
  background: #C86B44;
  box-shadow: 0 2px 8px rgba(218,119,86,.4);
}
.ai-chips {
  gap: 5px;
  margin: 7px 0 2px;
  flex-wrap: wrap;
}
.ai-chip {
  height: 24px;
  padding: 0 10px;
  font-size: 10px;
  font-weight: 500;
  border-radius: var(--r100);
  border: 1px solid #E2E8F0;
  background: #F8FAFC;
  color: #4A5568;
  transition: var(--transition);
  gap: 4px;
}
.ai-chip:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.ai-action-btn {
  height: var(--btn-h-sm);
  padding: 0 11px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  transition: var(--transition);
  gap: 4px;
}
.ai-action-btn:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.ai-action-btn.primary {
  background: var(--terra);
  border-color: var(--terra);
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.ai-action-btn.primary:hover {
  background: #C86B44;
}
.ai-insight-text {
  font-size: 11px;
  line-height: 1.7;
  border-left: 3px solid var(--terra);
  padding: 9px 11px;
  border-radius: 0 var(--r6) var(--r6) 0;
  background: rgba(218,119,86,.05);
  color: var(--dark);
}
.ai-chart-box {
  border-radius: var(--r8);
  border: 1px solid var(--div);
  overflow: hidden;
}
.ai-chart-header {
  padding: 9px 11px;
  border-bottom: 1px solid var(--div);
  background: var(--bg);
}
.ai-chart-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--dark);
}
.ai-chart-meta {
  font-size: 9px;
  color: var(--sage);
}
.ai-chart-actions {
  padding: 8px 10px;
  gap: 6px;
  border-top: 1px solid var(--div);
  background: var(--bg);
}
.ai-empty {
  padding: 24px 14px;
  gap: 9px;
}
.ai-empty-ico {
  font-size: 26px;
  opacity: 0.4;
}
.ai-empty-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--dark);
}
.ai-empty-sub {
  font-size: 10px;
  color: var(--sage);
  line-height: 1.65;
}
.ai-history-label {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 5px;
}
.ai-hist-item {
  padding: 5px 8px;
  border-radius: var(--r6);
  font-size: 10px;
  gap: 6px;
  transition: var(--transition);
}
.ai-hist-item:hover {
  background: var(--bg);
  border-color: var(--div);
  color: var(--dark);
}

/* ── DASHBOARD POLISH override — all handled by main block above ── */

/* ── REPORTS — sidebar items ──────────────────────────── */
.v7-report-item {
  padding: 8px 14px;
  font-size: 11px;
  border-left: 2px solid transparent;
  transition: var(--transition);
}
.v7-report-item:hover {
  background: var(--bg);
  border-left-color: var(--terra);
}
.v7-report-item-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--dark);
}
.v7-report-item-meta {
  font-size: 9px;
  color: var(--sage);
  margin-top: 1px;
}

/* ── QUERY BUILDER POLISH ─────────────────────────────── */
.qb-header {
  padding: 18px 22px 14px;
  background: #FAFBFC;
}
.qb-header-title {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
}
.qb-header-sub {
  font-size: 11px;
  color: #64748B;
  margin-top: 1px;
}
.qb-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
}
.qb-close-btn {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  font-size: 13px;
  transition: var(--transition);
}
.qb-steps {
  padding: 12px 22px;
  gap: 0;
}
.qb-step-num {
  width: 22px;
  height: 22px;
  font-size: 9px;
}
.qb-step-label {
  font-size: 10px;
}
.qb-explorer {
  padding: 14px 10px;
}
.qb-module-header {
  padding: 6px 9px;
  border-radius: 7px;
  font-size: 11px;
  transition: var(--transition);
}
.qb-module-icon {
  width: 22px;
  height: 22px;
  border-radius: 5px;
  font-size: 11px;
}
.qb-card {
  border-radius: 10px;
  border: 1px solid #E8ECF0;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  background: #fff;
  overflow: visible;
  flex-shrink: 0;
}
.qb-card-header {
  padding: 12px 14px 10px;
  border-bottom: 1px solid #F1F3F5;
  gap: 10px;
}
.qb-card-title {
  font-size: 12px;
  font-weight: 700;
  color: #1E293B;
}
.qb-card-body {
  padding: 12px 14px 14px;
}
.qb-card-step-badge {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content:center;
  flex-shrink: 0;
}
.qb-btn {
  height: 34px;
  padding: 0 16px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  gap: 5px;
}
.qb-btn.ghost {
  border: 1px solid #E2E8F0;
  background: #fff;
  color: #64748B;
}
.qb-btn.ghost:hover {
  border-color: var(--terra);
  color: var(--terra);
  background: var(--terra-h);
}
.qb-btn.secondary {
  border: 1px solid #E2E8F0;
  background: #F8FAFC;
  color: #374151;
}
.qb-btn.secondary:hover {
  background: #F1F5F9;
  border-color: #CBD5E1;
}
.qb-btn.primary {
  border: none;
  background: linear-gradient(135deg, #DA7756, #C86B44);
  color: #fff;
  box-shadow: 0 2px 8px rgba(218,119,86,.32);
}
.qb-btn.primary:hover {
  box-shadow: 0 4px 16px rgba(218,119,86,.44);
  transform: translateY(-1px);
}
.qb-btn.primary:active {
  transform: translateY(0);
}
.qb-footer {
  padding: 12px 22px;
  gap: 8px;
}
.qb-name-input {
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  border: 1.5px solid #E2E8F0;
  transition: border 0.13s, box-shadow 0.13s;
}
.qb-name-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.qb-field-search {
  border-radius: 7px;
  padding: 7px 10px 7px 30px;
  font-size: 11px;
  transition: border-color 0.13s, box-shadow 0.13s;
}
.qb-field-search:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.qb-field-item {
  padding: 5px 10px;
  font-size: 10px;
  gap: 7px;
  transition: background 0.08s;
}
.qb-field-item:hover {
  background: #F5F7FA;
}
.qb-summary-card {
  border-radius: 9px;
  border: 1px solid #E8ECF0;
  overflow: hidden;
}
.qb-summary-header {
  padding: 8px 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .02em;
}
.qb-summary-body {
  padding: 10px 12px;
  gap: 9px;
}
.qb-summary-key {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .09em;
  color: #9AA0A6;
}
.qb-summary-val {
  font-size: 11px;
  font-weight: 600;
  color: #1E293B;
}
.qb-stat-card {
  border-radius: 8px;
  border: 1px solid #E8ECF0;
  padding: 10px 12px;
  gap: 10px;
}
.qb-stat-icon {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  font-size: 14px;
}
.qb-stat-val {
  font-size: 15px;
  font-weight: 800;
}
.qb-stat-label {
  font-size: 9px;
  color: #9AA0A6;
  margin-top: 1px;
}

/* ── MODALS ───────────────────────────────────────────── */
.modal {
  border-radius: var(--r12);
  box-shadow: 0 24px 60px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.06);
}
.modal-header {
  padding: 16px 18px 14px;
  border-bottom: 1px solid var(--div);
}
.modal-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--dark);
}
.modal-x {
  width: 26px;
  height: 26px;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--sage);
  transition: var(--transition);
}
.modal-x:hover {
  background: var(--err-bg);
  color: var(--err-dark);
  border-color: transparent;
}
.modal-body {
  padding: 16px 18px;
}
.modal-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--sage);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 5px;
  display: block;
}
.modal-input {
  height: 34px;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  padding: 0 10px;
  font-size: 12px;
  transition: border-color 0.13s, box-shadow 0.13s;
}
.modal-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}
.modal-select {
  height: 34px;
  border-radius: var(--r6);
  border: 1px solid var(--div);
  padding: 0 8px;
  font-size: 12px;
  transition: border-color 0.13s;
}
.modal-select:focus {
  border-color: var(--terra);
  outline: none;
}
.modal-footer {
  padding: 12px 18px 16px;
  border-top: 1px solid var(--div);
  gap: 8px;
}
.modal-btn {
  height: var(--btn-h-lg);
  padding: 0 18px;
  border-radius: var(--r6);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
}
.modal-btn.cancel {
  border: 1px solid var(--div);
  background: var(--white);
  color: var(--sage);
}
.modal-btn.cancel:hover {
  border-color: var(--border);
  color: var(--dark);
}
.modal-btn.confirm {
  background: var(--terra);
  border: none;
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.modal-btn.confirm:hover {
  background: #C86B44;
  box-shadow: 0 3px 12px rgba(218,119,86,.38);
}

/* ── FILTER DROPDOWN ──────────────────────────────────── */
.filter-dropdown {
  border-radius: var(--r10);
  box-shadow: 0 8px 28px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
}
.filter-dd-header {
  padding: 10px 13px;
  font-size: 11px;
  font-weight: 700;
  color: var(--dark);
  border-bottom: 1px solid var(--div);
}
.filter-dd-section {
  padding: 9px 13px;
  border-bottom: 1px solid var(--div);
}
.filter-dd-section-label {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 6px;
}
.filter-sort-btn {
  padding: 5px 7px;
  border-radius: var(--r6);
  font-size: 11px;
  transition: var(--transition);
  gap: 7px;
}
.filter-sort-btn:hover {
  background: var(--bg);
  color: var(--terra);
}
.filter-dd-btn {
  height: 30px;
  padding: 0 14px;
  border-radius: var(--r6);
  font-size: 10px;
  font-weight: 600;
  transition: var(--transition);
  cursor: pointer;
}
.filter-dd-btn.apply {
  background: var(--terra);
  border: none;
  color: #fff;
}
.filter-dd-btn.apply:hover {
  background: #C86B44;
}
.filter-dd-btn.clear {
  background: var(--white);
  border: 1px solid var(--div);
  color: var(--sage);
}
.filter-dd-btn.clear:hover {
  border-color: var(--border);
  color: var(--dark);
}
.filter-dd-footer {
  display: flex;
  gap: 6px;
  padding: 8px 13px;
  border-top: 1px solid var(--div);
  justify-content: flex-end;
}

/* ── 3-DOT MENUS ──────────────────────────────────────── */
.v7-3dot-menu {
  border-radius: var(--r8);
  box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
  padding: 4px 0;
}
.v7-3dot-item {
  padding: 6px 14px;
  font-size: 11px;
  transition: var(--transition);
}
.v7-3dot-item:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.v7-3dot-item.danger {
  color: var(--err-dark);
}
.v7-3dot-item.danger:hover {
  background: var(--err-bg);
  color: var(--err-dark);
}
/* 3dot trigger button */
.v7-sb-row-3dot {
  width: 20px;
  height: 20px;
  border-radius: 4px;
  font-size: 12px;
  transition: var(--transition);
}
.v7-sb-row-3dot:hover {
  background: var(--div);
  color: var(--dark);
}

/* ── GRID RIGHT-CLICK MENU ────────────────────────────── */
.grid-ctx-menu {
  border-radius: var(--r8);
  box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
  padding: 4px 0;
}
.grid-ctx-item {
  padding: 7px 14px;
  font-size: 11px;
  transition: var(--transition);
}
.grid-ctx-item:hover {
  background: var(--terra-h);
  color: var(--terra);
}
.grid-ctx-item.danger:hover {
  background: var(--err-bg);
  color: var(--err-dark);
}
.grid-ctx-kbd {
  font-size: 9px;
  color: #B0B7BF;
  background: var(--bg);
  padding: 1px 5px;
  border-radius: 3px;
  border: 1px solid var(--div);
  font-family: monospace;
}

/* ── EMPTY STATE ──────────────────────────────────────── */
.bi-empty-state {
  gap: 14px;
  padding: 48px 40px;
}
.bi-es-ico {
  font-size: 40px;
  opacity: 0.22;
}
.bi-es-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--dark) !important;
}
.bi-es-sub {
  font-size: 12px !important;
  color: var(--sage);
  line-height: 1.7;
  max-width: 340px;
}
.bi-es-btn {
  height: var(--btn-h-lg);
  padding: 0 18px;
  border-radius: var(--r8);
  font-size: 11px;
  font-weight: 600;
  transition: var(--transition);
  gap: 6px;
}
.bi-es-btn.primary {
  background: var(--terra);
  border: none;
  color: #fff;
  box-shadow: 0 1px 4px rgba(218,119,86,.25);
}
.bi-es-btn.primary:hover {
  background: #C86B44;
  box-shadow: 0 3px 12px rgba(218,119,86,.35);
}
.bi-es-btn.secondary {
  background: var(--white);
  border: 1px solid var(--div);
  color: var(--dark);
}
.bi-es-btn.secondary:hover {
  border-color: var(--terra);
  color: var(--terra);
}

/* ── BULK ACTION BAR ──────────────────────────────────── */
.bulk-bar {
  padding: 6px 14px;
  gap: 7px;
  background: var(--terra);
}
.bulk-bar-text {
  font-size: 11px;
  font-weight: 600;
  color: #fff;
}
.bulk-btn {
  height: var(--btn-h-sm);
  padding: 0 11px;
  border-radius: var(--r6);
  font-size: 10px;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.15);
  color: #fff;
  transition: var(--transition);
}
.bulk-btn:hover {
  background: rgba(255,255,255,.28);
}
.bulk-btn.danger {
  border-color: rgba(255,255,255,.25);
  background: rgba(231,132,142,.32);
}

/* ── CONTEXT BAR ──────────────────────────────────────── */
.v7-ctx-bar {
  padding: 4px 14px;
  min-height: 28px;
  gap: 10px;
  font-size: 10px;
  background: var(--white);
  border-bottom: 1px solid var(--div);
}
.v7-ctx-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ok);
}

/* ── HOME SCREEN ──────────────────────────────────────── */
#v7Home {
  padding: 32px 36px;
}
.v7-home-section-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 12px;
}
.v7-home-card {
  border-radius: var(--r10);
  padding: 16px;
  border: 1px solid var(--div);
  transition: var(--transition);
}
.v7-home-card:hover {
  border-color: var(--terra);
  box-shadow: 0 4px 18px rgba(218,119,86,.12);
  transform: translateY(-2px);
}
.v7-home-card-icon {
  width: 30px;
  height: 30px;
  border-radius: var(--r8);
  margin-bottom: 10px;
  transition: var(--transition);
}
.v7-home-card-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--dark);
  margin-bottom: 3px;
}
.v7-home-card-sub {
  font-size: 10px;
  color: var(--sage);
  line-height: 1.5;
}

/* ── CELL POPOVER ─────────────────────────────────────── */
.cell-popover {
  border-radius: var(--r8);
  padding: 12px 14px;
  font-size: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 0 0 1px rgba(0,0,0,.06);
  border: 1px solid var(--div);
}
.cell-popover-label {
  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: #9AA0A6;
  margin-bottom: 5px;
}

/* ── CHART TITLE INPUT ────────────────────────────────── */
.chart-title-input {
  border-radius: var(--r6);
  padding: 6px 9px;
  font-size: 11px;
  border: 1px solid var(--div);
  transition: border-color 0.13s, box-shadow 0.13s;
}
.chart-title-input:focus {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
  outline: none;
}

/* ── PIVOT BUILDER WITHIN RIGHT PANEL ────────────────── */
.pivot-field-well {
  border-radius: var(--r6);
  min-height: 34px;
  padding: 5px 7px;
  gap: 4px;
  transition: border-color 0.13s;
}
.pivot-field-well:focus-within {
  border-color: var(--terra);
  box-shadow: var(--focus-ring);
}
.pivot-pill {
  height: 22px;
  padding: 0 8px;
  font-size: 10px;
  font-weight: 600;
  border-radius: var(--r100);
  gap: 4px;
}
.pivot-pill-x {
  opacity: 0.45;
  transition: opacity 0.1s;
}
.pivot-pill-x:hover {
  opacity: 1;
}

/* ── SAVED VIEW CHIPS in TOOLBAR ─────────────────────── */
.bi-filter-row.has-filters {
  background: rgba(218,119,86,.03);
}

/* ── STALE PIVOT BANNER ───────────────────────────────── */
.pivot-stale-banner {
  background: rgba(237,196,136,.12);
  border-bottom: 1px solid rgba(237,196,136,.4);
  padding: 5px 14px;
  font-size: 11px;
  color: var(--warn-dark);
  gap: 8px;
  align-items: center;
}
.pivot-stale-refresh {
  height: 20px;
  font-size: 10px;
  font-weight: 600;
  padding: 0 9px;
  border-radius: var(--r100);
  transition: var(--transition);
}

/* ── SOURCE DROPDOWN TAG ──────────────────────────────── */
.v7-source-dd {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  background: var(--bg);
  border: 1px solid var(--div);
  border-radius: var(--r6);
  cursor: pointer;
  position: relative;
  transition: border-color 0.13s;
}
.v7-source-dd:hover {
  border-color: var(--terra);
}

/* ── CONNECT SOURCE OPTIONS ───────────────────────────── */
.connect-source-option {
  border-radius: var(--r8);
  padding: 10px 13px;
  gap: 10px;
  transition: var(--transition);
}
.connect-source-option:hover {
  border-color: var(--terra);
  background: var(--terra-h);
}
.cso-badge {
  font-size: 8px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: var(--r100);
}

/* ── WORKBOOK INFO BAR ────────────────────────────────── */
#wbInfoBar {
  padding: 3px 14px;
  font-size: 10px;
  gap: 10px;
}
#wbInfoBar .wb-badge {
  height: 18px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 9px;
}
#wbInfoBar .wb-readonly {
  height: 18px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 9px;
}

/* ── PIVOT PREVIEW TABLE ──────────────────────────────── */
.pivot-preview-tbl th {
  background: #EDEBE3;
  padding: 5px 9px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--sage);
}
.pivot-preview-tbl td {
  padding: 5px 9px;
  font-size: 10px;
  color: var(--dark);
}
.pivot-preview-tbl tr:last-child td {
  font-weight: 700;
  background: #EDEBE3;
}

/* END V10 POLISH */


/* ─── QB IMPROVEMENTS: Templates, Field Tabs, Save/Load ─── */

/* Template bar */
.qb-template-bar {
  display:flex; align-items:center; gap:10px; padding:9px 24px;
  border-bottom:1px solid #F1F3F4; background:#FAFBFC;
  flex-shrink:0; overflow-x:auto;
}
.qb-template-label {
  font-size:10px; font-weight:700; color:#94A3B8;
  white-space:nowrap; letter-spacing:.04em; flex-shrink:0;
}
.qb-template-chips { display:flex; gap:6px; flex-wrap:nowrap; }
.qb-template-chip {
  padding:4px 11px; border-radius:20px; font-size:10px; font-weight:600;
  background:#fff; border:1px solid #E2E8F0; color:#475569;
  cursor:pointer; white-space:nowrap; transition:all .12s; flex-shrink:0;
}
.qb-template-chip:hover {
  border-color:#DA7756; color:#DA7756; background:#FFF8F6;
}

/* Save/Load header buttons */
.qb-btn-sm {
  padding:5px 12px; border-radius:7px; font-size:10px; font-weight:600;
  border:1px solid #E2E8F0; background:#fff; color:#475569;
  cursor:pointer; transition:all .12s; font-family:inherit;
}
.qb-btn-sm:hover { border-color:#DA7756; color:#DA7756; }

/* Saved queries panel */
.qb-saved-panel {
  padding:10px 24px; border-bottom:1px solid #F1F3F4; background:#FFFBF9;
  flex-shrink:0;
}
.qb-saved-panel-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:8px;
}
.qb-saved-panel-title { font-size:11px; font-weight:700; color:#374151; }
.qb-saved-chips { display:flex; flex-wrap:wrap; gap:6px; }
.qb-saved-chip {
  display:flex; align-items:center; gap:0; border-radius:6px;
  border:1px solid #E2E8F0; background:#fff; overflow:hidden;
  font-size:10px; transition:border-color .12s;
}
.qb-saved-chip:hover { border-color:#DA7756; }
.qb-saved-chip-name {
  padding:4px 10px; color:#374151; cursor:pointer; font-weight:600;
}
.qb-saved-chip-name:hover { color:#DA7756; }
.qb-saved-chip-del {
  padding:4px 8px; border-left:1px solid #E2E8F0; color:#94A3B8;
  cursor:pointer; font-size:12px; line-height:1;
}
.qb-saved-chip-del:hover { color:#EF4444; background:#FEF2F2; }
.qb-saved-empty {
  font-size:10px; color:#94A3B8; font-style:italic; padding:2px 0;
}

/* Field tabs (Recommended / All Fields) */
.qb-field-tabs {
  display:flex; gap:0; margin-bottom:10px; border-radius:8px;
  border:1px solid #E2E8F0; overflow:hidden; width:-moz-fit-content; width:fit-content;
}
.qb-field-tab {
  padding:5px 14px; font-size:10px; font-weight:600; cursor:pointer;
  color:#64748B; background:#F8FAFC; transition:all .12s;
  border:none; white-space:nowrap;
}
.qb-field-tab:first-child { border-right:1px solid #E2E8F0; }
.qb-field-tab.active { background:#DA7756; color:#fff; }
.qb-field-tab:not(.active):hover { background:#fff; color:#DA7756; }

/* QB module icon font sizing */
.qb-module-icon { font-size:10px; font-weight:800; letter-spacing:-.5px; }


/* ── QB LAYOUT FIX: proper flex column chain ─────────────────────
   query-dialog is a flex column with explicit height.
   Only qb-body grows to fill remaining space (flex:1).
   qb-form is the ONE scrollable area inside qb-body.
   min-height:0 at every flex level prevents overflow expansion.
   ──────────────────────────────────────────────────────────────── */

/* Dialog shell — explicit height so children can flex distribute */
.query-dialog {
  display: flex !important;
  flex-direction: column !important;
  height: 90vh !important;
  max-height: 90vh !important;
  overflow: hidden !important;
}

/* Fixed-height bands — never shrink, never grow */
.qb-header    { flex-shrink: 0 !important; }
.qb-template-bar { flex-shrink: 0 !important; }
.qb-saved-panel  { flex-shrink: 0 !important; }
.qb-steps     { flex-shrink: 0 !important; }
.qb-footer    { flex-shrink: 0 !important; }

/* qb-body: the one growing section — takes all remaining height */
.qb-body {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
}

/* qb-main: passes the space through to qb-form */
.qb-main {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
}

/* qb-form: the ONLY scrollable content area — scrolls vertically */
.qb-form {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  /* Visible scrollbar so user knows content is scrollable */
  scrollbar-width: thin;
  scrollbar-color: #94A3B8 #F1F5F9;
}
.qb-form::-webkit-scrollbar { width: 7px; }
.qb-form::-webkit-scrollbar-track { background: #F1F5F9; border-radius: 4px; }
.qb-form::-webkit-scrollbar-thumb { background: #94A3B8; border-radius: 4px; }
.qb-form::-webkit-scrollbar-thumb:hover { background: #64748B; }

/* Step cards: allow content to show fully — no height clipping */
.qb-card {
  flex-shrink: 0 !important;
  overflow: visible !important;
}

/* Explorer sidebar — scrolls independently */
.qb-explorer {
  min-height: 0 !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
  scrollbar-color: #CBD5E1 transparent;
}
.qb-explorer::-webkit-scrollbar { width: 5px; }
.qb-explorer::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 3px; }

/* Summary sidebar — scrolls independently */
.qb-sidebar {
  min-height: 0 !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
  scrollbar-color: #CBD5E1 transparent;
}
.qb-sidebar::-webkit-scrollbar { width: 5px; }
.qb-sidebar::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 3px; }

/* Step done state — green ring */
.qb-step.done .qb-step-num {
  background: #22C55E !important;
  color: #fff !important;
  box-shadow: 0 0 0 2px #DCFCE7;
}
.qb-step.done .qb-step-label { color: #16A34A !important; }

/* Step active state — terra accent */
.qb-step.active .qb-step-num {
  background: #DA7756 !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(218,119,86,.35);
}
.qb-step.active .qb-step-label { color: #DA7756 !important; font-weight: 700 !important; }

/* Status message in footer */
#qbStatusMsg {
  font-size: 10px;
  color: #94A3B8;
  font-style: italic;
  max-width: 340px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* When status shows ready */
#qbStatusMsg.ready {
  color: #16A34A;
  font-weight: 600;
  font-style: normal;
}

/* col-list scroll within cards */
.query-col-list {
  max-height: 200px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #CBD5E1 transparent;
}
.query-col-list::-webkit-scrollbar { width: 4px; }
.query-col-list::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 2px; }


/* ════════════════════════════════════════════════
   RECORD DETAIL PANEL — Phase 1 + Phase 3
   Row Expand · Inline Edit · Notes
   ════════════════════════════════════════════════ */

/* Dimmer overlay */
.rdp-overlay {
  position: fixed; inset: 0;
  z-index: 448;
  background: rgba(0,0,0,.12);
  display: none; pointer-events: none;
  backdrop-filter: blur(1px);
}
.rdp-overlay.open { display: block; pointer-events: all; }

/* Slide-in panel */
.rdp {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 400px; max-width: 94vw;
  background: #fff;
  box-shadow: -6px 0 40px rgba(0,0,0,.14);
  display: flex; flex-direction: column;
  z-index: 449;
  transform: translateX(110%);
  transition: transform .24s cubic-bezier(.4,0,.2,1);
  font-family: 'Poppins', sans-serif;
}
.rdp.open { transform: translateX(0); }

/* Header */
.rdp-hdr {
  padding: 14px 18px 12px;
  border-bottom: 1px solid #F1F3F4;
  display: flex; align-items: flex-start; gap: 10px;
  flex-shrink: 0;
}
.rdp-icon {
  width: 34px; height: 34px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; flex-shrink: 0;
  letter-spacing: -.5px;
}
.rdp-icon.deals    { background:#EEF5FF; color:#1A73E8; }
.rdp-icon.contacts { background:#E6F4EA; color:#1E8E3E; }
.rdp-icon.clients  { background:#FEF3E2; color:#B06000; }
.rdp-icon.tasks    { background:#F3E8FD; color:#7B1FA2; }
.rdp-icon.default  { background:#F1F3F4; color:#5F6368; }
.rdp-hdr-info { flex:1; min-width:0; }
.rdp-title {
  font-size: 13px; font-weight: 700; color: #202124;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  line-height: 1.3;
}
.rdp-sub { font-size: 10px; color: #94A3B8; margin-top: 2px; }
.rdp-x {
  width: 26px; height: 26px; border-radius: 6px;
  border: 1px solid #E8EAED; background: #F8F9FA;
  color: #5F6368; cursor: pointer; font-size: 12px;
  display: flex; align-items: center; justify-content: center;
  transition: all .12s; flex-shrink: 0; font-family: inherit;
}
.rdp-x:hover { background: #FADBD8; color: #C0392B; border-color: #FADBD8; }

/* Scrollable body */
.rdp-body {
  flex: 1; overflow-y: auto; min-height: 0;
  scrollbar-width: thin; scrollbar-color: #CBD5E1 transparent;
}
.rdp-body::-webkit-scrollbar { width: 4px; }
.rdp-body::-webkit-scrollbar-thumb { background:#CBD5E1; border-radius:2px; }

/* Section label */
.rdp-sec {
  font-size: 9px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: #94A3B8;
  padding: 12px 18px 8px;
  background: #FAFBFC;
  border-bottom: 1px solid #F1F3F4;
  border-top: 1px solid #F1F3F4;
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 4px;
}
.rdp-sec-hint {
  font-size: 9px; color: #DA7756; font-weight: 500;
  text-transform: none; letter-spacing: 0;
}

/* Fields list */
.rdp-fields { padding: 2px 0 6px; }
.rdp-field {
  display: flex; align-items: flex-start;
  padding: 7px 18px; gap: 12px;
}
.rdp-field:hover { background: #FAFBFC; }
.rdp-fl {
  width: 114px; flex-shrink: 0;
  font-size: 10px; font-weight: 600; color: #94A3B8;
  padding-top: 3px; line-height: 1.4;
}
.rdp-fv {
  flex: 1; font-size: 11px; color: #202124;
  line-height: 1.4; word-break: break-word;
  cursor: text; padding: 2px 6px;
  border-radius: 5px; border: 1px solid transparent;
  transition: all .12s; min-height: 22px;
  display: flex; align-items: center;
}
.rdp-fv:hover { border-color: #E2E8F0; background: #fff; }
.rdp-fv.editing { border-color: #DA7756 !important; background:#fff !important; }
.rdp-fv input,
.rdp-fv select {
  width: 100%; border: none; outline: none;
  font-family: 'Poppins', sans-serif;
  font-size: 11px; color: #202124; background: transparent;
}
.rdp-fv select { cursor: pointer; }

/* Notes area */
.rdp-notes-body { padding: 10px 18px 18px; }
.rdp-note-box {
  border: 1px solid #E2E8F0; border-radius: 8px;
  overflow: hidden; margin-bottom: 12px; background: #fff;
  transition: border-color .12s;
}
.rdp-note-box:focus-within { border-color: #DA7756; }
.rdp-note-ta {
  width: 100%; padding: 10px 12px;
  font-family: 'Poppins', sans-serif; font-size: 11px;
  color: #202124; border: none; outline: none;
  resize: none; height: 68px; display: block;
}
.rdp-note-ta::-moz-placeholder { color: #94A3B8; }
.rdp-note-ta::placeholder { color: #94A3B8; }
.rdp-note-btn {
  width: 100%; padding: 7px;
  background: #DA7756; color: #fff;
  border: none; cursor: pointer;
  font-family: 'Poppins', sans-serif;
  font-size: 10px; font-weight: 700;
  transition: background .12s; letter-spacing: .02em;
}
.rdp-note-btn:hover { background: #C86B44; }
.rdp-note-item {
  padding: 9px 0;
  border-bottom: 1px solid #F1F3F4;
}
.rdp-note-item:last-child { border-bottom: none; }
.rdp-note-meta {
  display: flex; align-items: center;
  justify-content: space-between; margin-bottom: 4px;
}
.rdp-note-who  { font-size: 10px; font-weight: 600; color: #374151; }
.rdp-note-when { font-size: 9px; color: #94A3B8; }
.rdp-note-txt  { font-size: 11px; color: #374151; line-height: 1.55; }
.rdp-note-del  {
  font-size: 10px; color: #CBD5E1; cursor: pointer;
  padding: 1px 4px; border-radius: 3px; margin-left: 6px;
}
.rdp-note-del:hover { color: #EF4444; background: #FEF2F2; }
.rdp-empty-notes {
  font-size: 11px; color: #94A3B8; font-style: italic;
  text-align: center; padding: 14px 0;
}

/* Row number expand trigger */
.rn { position: relative !important; }
.rn-num { display: block; }
.rn-exp {
  display: none;
  position: absolute; inset: 0;
  cursor: pointer; font-size: 11px;
  color: var(--terra, #DA7756);
  align-items: center; justify-content: center;
  background: rgba(218,119,86,.1);
  border-radius: 2px; font-weight: 700;
  line-height: 1; transition: background .1s;
}
.rn-exp:hover { background: rgba(218,119,86,.2) !important; }
.bi-tbl tr:hover .rn-exp  { display: flex; }
.bi-tbl tr:hover .rn-num  { opacity: 0; }

/* Flash animation when grid cell is updated from panel */
@keyframes rdp-flash {
  0%   { background: rgba(218,119,86,.25) !important; }
  100% { background: transparent; }
}
.bi-tbl td.rdp-edited { animation: rdp-flash .5s ease forwards; }


/* ── Breadcrumb bar ────────────────────────────────────── */
.rdp-bc {
  display: none; flex-shrink: 0;
  padding: 6px 14px;
  background: #F8FAFC; border-bottom: 1px solid #F1F3F4;
  align-items: center; gap: 8px; font-size: 10px;
}
.rdp-bc.show { display: flex; }
.rdp-bc-back {
  color: #DA7756; font-weight: 700; cursor: pointer;
  padding: 3px 9px; border-radius: 5px; white-space: nowrap;
  border: 1px solid rgba(218,119,86,.3); background: rgba(218,119,86,.07);
  transition: background .12s; font-family: inherit; font-size: 10px;
}
.rdp-bc-back:hover { background: rgba(218,119,86,.14); }
.rdp-bc-trail { display: flex; align-items: center; gap: 3px; overflow: hidden; }
.rdp-bc-crumb {
  color: #5F6368; cursor: pointer; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 110px;
}
.rdp-bc-crumb:hover { color: #DA7756; }
.rdp-bc-sep { color: #CBD5E1; font-size: 12px; }

/* ── Linked Records (Phase 2) ───────────────────────────── */
.rdp-icon.products { background: #E8F5E9; color: #2E7D32; }

.rdp-link-group {
  border-bottom: 1px solid #F1F3F4; padding: 4px 0 8px;
}
.rdp-link-group:last-child { border-bottom: none; }
.rdp-link-hd {
  display: flex; align-items: center;
  justify-content: space-between; padding: 6px 18px;
}
.rdp-link-hd-left { display: flex; align-items: center; gap: 8px; }
.rdp-link-lbl { font-size: 11px; font-weight: 700; color: #374151; }
.rdp-link-cnt {
  font-size: 9px; font-weight: 700;
  background: #F1F3F4; color: #5F6368;
  padding: 2px 7px; border-radius: 10px;
}
.rdp-link-item {
  display: flex; align-items: center;
  padding: 5px 18px 5px 46px;
  cursor: pointer; transition: background .1s; gap: 6px;
}
.rdp-link-item:hover { background: #F8FBFF; }
.rdp-link-item-body { flex: 1; min-width: 0; }
.rdp-link-item-name {
  font-size: 11px; color: #202124; font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rdp-link-item-sub { font-size: 9px; color: #94A3B8; margin-top: 1px; }
.rdp-link-arr { font-size: 15px; color: #DADCE0; flex-shrink: 0; line-height: 1; }
.rdp-link-item:hover .rdp-link-arr { color: #DA7756; }
.rdp-link-more {
  font-size: 10px; color: #DA7756; font-weight: 600;
  padding: 3px 18px 3px 46px; cursor: pointer;
}
.rdp-link-more:hover { text-decoration: underline; }
.rdp-empty-links {
  font-size: 11px; color: #94A3B8;
  font-style: italic; padding: 10px 18px;
}

/* ── Activity Timeline (Phase 4) ────────────────────────── */
.rdp-tl { padding: 8px 18px 14px; }
.rdp-tl-item { display: flex; gap: 10px; }
.rdp-tl-left {
  display: flex; flex-direction: column;
  align-items: center; flex-shrink: 0; width: 14px;
}
.rdp-tl-dot {
  width: 10px; height: 10px;
  border-radius: 50%; flex-shrink: 0; margin-top: 3px;
}
.tl-create { background:#22C55E; box-shadow:0 0 0 2px #DCFCE7; }
.tl-edit   { background:#DA7756; box-shadow:0 0 0 2px rgba(218,119,86,.2); }
.tl-note   { background:#6B9BCC; box-shadow:0 0 0 2px #DBEAFE; }
.rdp-tl-line {
  flex: 1; width: 1px;
  background: #E8EAED; margin: 3px 0;
  min-height: 12px;
}
.rdp-tl-right { flex: 1; padding-bottom: 14px; min-width: 0; }
.rdp-tl-desc { font-size: 11px; color: #374151; font-weight: 500; line-height: 1.4; }
.rdp-tl-sub  { font-size: 10px; color: #94A3B8; margin-top: 1px; word-break: break-word; }
.rdp-tl-when { font-size: 9px; color: #CBD5E1; margin-top: 3px; }
.rdp-empty-tl {
  font-size: 11px; color: #94A3B8;
  font-style: italic; padding: 10px 18px;
}

/* Responsive Overrides */
@media (max-width: 768px) {
  .crm-sb, .v7-sidebar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 100;
    box-shadow: 4px 0 16px rgba(0,0,0,0.1);
  }
  .bi-right-panel, .bi-rp {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 100;
    box-shadow: -4px 0 16px rgba(0,0,0,0.1);
  }
  .bi-toolbar, .dash-toolbar, .crm-nav, .v7-toolbar {
    flex-wrap: wrap;
    height: auto;
    padding: 8px 14px;
  }
  .bi-source-dd {
    max-width: 150px;
  }
  .crm-nav-mid {
    display: none;
  }
  .zoom-ctrl {
    display: none;
  }
}
