/* ChanakAI landing page styles.
   Design tokens and base layer come from the product design system; the page rules follow.
   Order matters: the page rules intentionally override the base layer (e.g. link colour). */
/* DM Sans is the whole-app font (body and headings alike), self-hosted from the
   product repo so the app stays fully offline. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/dm-sans-400.woff2") format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/dm-sans-500.woff2") format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/dm-sans-600.woff2") format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/dm-sans-700.woff2") format('woff2')}
/* Colour system — copied verbatim from the product's app.css.
   The neutral ramp is pure achromatic oklch (no hue): CHANAKAI is a
   black/white surface system with a single saturated brand orange.
   Light is the default; .dark on a wrapper flips every surface token. */
:root{
  /* neutral surfaces + text */
  --background:oklch(1 0 0);
  --foreground:oklch(0 0 0);
  --card:oklch(1 0 0);
  --card-foreground:oklch(0 0 0);
  --popover:oklch(1 0 0);
  --popover-foreground:oklch(0 0 0);
  --primary:oklch(0 0 0);
  --primary-foreground:oklch(1 0 0);
  --secondary:oklch(0.95 0 0);
  --secondary-foreground:oklch(0 0 0);
  --muted:oklch(0.97 0 0);
  --muted-foreground:oklch(0.556 0 0);
  --accent:oklch(0.95 0 0);
  --accent-foreground:oklch(0 0 0);
  --destructive:oklch(0.577 0.245 27.325);
  --border:oklch(0.875 0 0);
  --input:oklch(0.92 0 0);
  --ring:oklch(0.708 0 0);

  /* sidebar surface (slightly off the page background) */
  --sidebar:oklch(0.987 0 0);
  --sidebar-foreground:oklch(0 0 0);
  --sidebar-primary:oklch(0 0 0);
  --sidebar-primary-foreground:oklch(1 0 0);
  --sidebar-accent:oklch(0.97 0 0);
  --sidebar-accent-foreground:oklch(0 0 0);
  --sidebar-border:oklch(0.922 0 0);
  --sidebar-ring:oklch(0.708 0 0);

  --code-background:oklch(0.985 0 0);
  --code-foreground:oklch(0 0 0);

  /* CHANAKAI brand accent (#FF8236). The orange reads the same in both
     themes; text on a brand fill is always the dark ink below. */
  --brand:oklch(0.737 0.175 48.2);
  --brand-strong:oklch(0.7 0.17 46);
  --brand-foreground:oklch(0.18 0.012 42);
  --brand-muted:oklch(0.737 0.175 48.2 / 0.12);
  --brand-border:oklch(0.737 0.175 48.2 / 0.3);
  --brand-hex:#FF8236;

  /* status + category accents (used by KPI chips, index/report status pills) */
  --ok:#10b981;          /* emerald-500 — ready, indexed, positive delta */
  --ok-soft:rgb(16 185 129 / 0.12);
  --warn:#f59e0b;        /* amber-500 — indexing, needs mapping, draft */
  --warn-soft:rgb(245 158 11 / 0.12);
  --info:#3b82f6;        /* blue-500 — CPU / projects chip */
  --info-soft:rgb(59 130 246 / 0.1);
  --accent-violet:#8b5cf6;  /* GPU / queries chip */
  --accent-violet-soft:rgb(139 92 246 / 0.1);
  --accent-teal:#14b8a6;    /* storage / files chip */
  --accent-teal-soft:rgb(20 184 166 / 0.1);

  /* chart ramp */
  --chart-1:oklch(0.646 0.222 41.116);
  --chart-2:oklch(0.6 0.118 184.704);
  --chart-3:oklch(0.398 0.07 227.392);
  --chart-4:oklch(0.828 0.189 84.429);
  --chart-5:oklch(0.769 0.188 70.08);
}
/* Type scale. One family, DM Sans, for body and headings alike. The product
   sizes UI text in half-pixel steps (13.5px, 12.5px, 11.5px) — those exact
   values are tokenised here rather than snapped to a round scale. */
:root{
  --font-sans:'DM Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;

  /* page + section headings */
  --text-h1:25px;            /* project detail title */
  --text-h1-page:1.5rem;     /* /reports page title (text-2xl) */
  --text-h2:1.25rem;         /* dashboard "Dashboard" (text-xl) */
  --text-panel-title:13.5px; /* panel headers: "Resource monitor" */
  --text-kpi:26px;           /* KPI value */
  --text-stat:1.125rem;      /* small stat value (text-lg) */

  /* body + UI */
  --text-body:0.875rem;      /* 14px, text-sm — default UI size */
  --text-ui:13.5px;          /* nav rows, hero input */
  --text-ui-sm:13px;         /* search input, list rows */
  --text-meta:12.5px;        /* subtitles, breadcrumbs */
  --text-meta-sm:11.5px;     /* KPI delta, card meta */
  --text-micro:11px;         /* spec lines under a name */
  --text-nano:10.5px;        /* badges, uppercase group labels */

  --weight-normal:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  --leading-none:1;
  --leading-tight:1.25;
  --leading-normal:1.45;
  --leading-relaxed:1.625;

  --tracking-tight:-0.01em;   /* headings use tracking-tight */
  --tracking-label:0.9px;     /* uppercase sidebar group labels */
  --tracking-seal:0.14em;     /* uppercase project-type seal */
}
/* Spacing, radii, shadows, motion. Spacing follows the product's 0.25rem
   step; radii derive from a single --radius (0.625rem = 10px). */
:root{
  --space-0-5:0.125rem;
  --space-1:0.25rem;
  --space-1-5:0.375rem;
  --space-2:0.5rem;
  --space-2-5:0.625rem;
  --space-3:0.75rem;
  --space-3-5:0.875rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-12:3rem;
  --space-16:4rem;

  --radius:0.625rem;                       /* 10px — the source of truth */
  --radius-sm:calc(var(--radius) - 4px);   /* 6px  */
  --radius-md:calc(var(--radius) - 2px);   /* 8px  */
  --radius-lg:var(--radius);               /* 10px */
  --radius-xl:calc(var(--radius) + 4px);   /* 14px — cards, panels */
  --radius-pill:9999px;
  --radius-seal:5px;                       /* exhibit-seal project header */

  --shadow-xs:0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-2xl:0 25px 50px -12px rgb(0 0 0 / 0.25);

  --sidebar-width:16rem;
  --panel-gap:1rem;

  --ease:cubic-bezier(0.4,0,0.2,1); /* @kind other */
  --duration-fast:120ms; /* @kind other */
  --duration:150ms; /* @kind other */
  --duration-slow:200ms; /* @kind other */
}
/* Base element defaults. Mirrors the product's @layer base. */
*{box-sizing:border-box}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;scrollbar-width:thin}
h1,h2,h3,h4{margin:0;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}
p{margin:0}
a{color:var(--brand);text-decoration:none;transition:color var(--duration) var(--ease)}
a:hover{color:var(--brand-strong)}
::selection{background:var(--primary);color:var(--primary-foreground)}
*{scrollbar-color:transparent transparent;transition:scrollbar-color .2s ease}
*:hover{scrollbar-color:color-mix(in oklab,var(--muted-foreground) 30%,transparent) transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}
*:hover::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--muted-foreground) 30%,transparent)}
@font-face {font-family: 'Inter Tight';font-style: normal;font-weight: 100 900;font-display: swap;src: url("../fonts/inter-tight-latin-ext.woff2") format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face {font-family: 'Inter Tight';font-style: normal;font-weight: 100 900;font-display: swap;src: url("../fonts/inter-tight-latin.woff2") format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: 'Bricolage Grotesque';font-style: normal;font-weight: 500 800;font-stretch: 75% 100%;font-display: swap;src: url("../fonts/bricolage-grotesque-latin-ext.woff2") format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face {font-family: 'Bricolage Grotesque';font-style: normal;font-weight: 500 800;font-stretch: 75% 100%;font-display: swap;src: url("../fonts/bricolage-grotesque-latin.woff2") format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face {font-family: 'Playfair Display';font-style: normal;font-weight: 400 700;font-display: swap;src: url("../fonts/playfair-display-latin-ext.woff2") format('woff2');unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face {font-family: 'Playfair Display';font-style: normal;font-weight: 400 700;font-display: swap;src: url("../fonts/playfair-display-latin.woff2") format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{height:auto;min-height:100%;overflow-x:clip;overflow-y:visible}
body{margin:0;background:#fcfcfc;color:#141414;font-family:'Inter Tight',system-ui,sans-serif}
*{box-sizing:border-box}
a{color:#141414;text-underline-offset:3px}
a:hover{color:#5A1015}
:focus-visible{outline:3px solid #5A1015;outline-offset:3px}
input::placeholder,textarea::placeholder{color:#767676}
@keyframes ck-shine{from{background-position:100% 0}to{background-position:-100% 0}}
@keyframes ck-caret{50%{opacity:0}}
@keyframes ck-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-12px,0)}}
@keyframes ck-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes ck-drift-a{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(8%,10%) scale(1.12)}}
@keyframes ck-drift-b{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-10%,8%) scale(0.92)}}
@keyframes ck-drift-c{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8%,-10%) scale(1.1)}}
[data-onDark] :focus-visible{outline-color:#fff}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none !important;animation:none !important}}
/* ---------------------------------------------------------------------------
   Static-page additions.
   The design tool resolved these in JavaScript at runtime (window width, open/closed
   state); as a plain page they are CSS. Keep this block last so it wins ties.
   --------------------------------------------------------------------------- */

/* `hidden` has to beat the inline display values the markup uses. */
[hidden]{display:none !important}

.ic{flex:none}

/* Width-dependent blocks. display:contents lets the wrapper vanish from layout, so the
   element inside behaves as if it were a direct child of the parent flex/grid. */
.rv{display:contents}
@media (max-width:999px){.rv-w1000{display:none}}
@media (min-width:1000px){.rv-n1000{display:none}}
.rv-mini-side,.rv-app-side{display:none}
@media (min-width:1100px){.rv-mini-side,.rv-app-side{display:contents}}
@media (min-width:620px) and (max-width:859px){.rv-mini-side{display:contents}}
@media (max-width:859px){.rv-w860{display:none}}
@media (max-width:959px){.rv-w960{display:none}}
@media (min-width:960px){.rv-n960{display:none}}

/* Feature rows: a vertical rule between copy and illustration once there is room, and the
   illustration drops below the copy on narrow screens (order -1 puts it first instead). */
:root{--vline:0;--vpad:0;--iob:-1}
@media (min-width:760px){:root{--vline:1px solid #e3e3e3;--vpad:clamp(32px,4vw,48px);--iob:2}}

/* Scroll-spy and form states */
.nav-link[aria-current="true"]{background:rgba(245,130,32,0.14) !important;color:#5A1015 !important}
.fld[aria-invalid="true"]{border-color:#b3261e !important}
.prod-opt.is-on{border-color:#5A1015 !important;background:rgba(245,130,32,0.10) !important}
.prod-opt.is-bad{border-color:#b3261e !important}

/* LEA demo: the money-trail demo shows the file panels beside the chat on wide screens. */
@media (min-width:900px){
  #demo-main[data-cols="2"]{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) !important}
}

/* Design-system pieces the page actually uses (from the product's component layer). */
.ck-panel{border-radius:var(--radius-xl);background:var(--card);color:var(--card-foreground);padding:var(--space-4);box-shadow:var(--shadow-sm)}
.ck-badge{display:inline-flex;width:fit-content;flex-shrink:0;align-items:center;justify-content:center;gap:var(--space-1);overflow:hidden;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-md);padding:2px var(--space-2);font-size:.75rem;font-weight:var(--weight-medium);backdrop-filter:blur(4px)}
.ck-badge--outline{background:transparent;color:var(--foreground);border-color:var(--border)}
/* Hover / focus / active states (generated from the design's style-hover etc.) */
.scp0:focus{left:16px !important}
.scp1:hover{background:#f0f0f0 !important;color:#141414 !important}
.scp2:hover{background:#E4731A !important;color:#1a1208 !important}
.scp3:active{background:#5A1015 !important;color:#fff !important}
.scp4:hover{background:#f0f0f0 !important}
.scp5:active{background:#5A1015 !important;color:#fff !important;transform:translateY(1px) !important}
.scp6:hover{border-color:#141414 !important}
.scp7:hover{color:#5A1015 !important}
.scp8:focus{outline:none !important;border-color:#5A1015 !important;box-shadow:0 0 0 3px rgba(245,130,32,0.35) !important}
.scp9:hover{background:#E4731A !important}
.scpa:hover{color:#F58220 !important}
.scpb:hover{background:#f2f2f2 !important;color:#141414 !important}
