/* KV-500: the design tokens of the Kurumi Ventures brand manual (v1, 2026-11-01), shared by portal.css and desk.css.
   Three layers:
   1. brand primitives, exactly as the manual lists them (never used directly by screen rules);
   2. ramps: every colour the screens use today, by value (--n-* greys, then status hues), so a theme changes them here;
   3. semantic tokens with the manual's names (surface, ink, hairline...): what screen rules should use.
   Load it before portal.css or desk.css. */
/* KV-501: fonts served from this domain (no request to a third party). Inter Tight (OFL) stands in for Miguer until
   its web licence is bought: the stack already names Miguer first. Dancing Script (OFL) is only for typed signatures. */
@font-face { font-family: "Inter Tight"; font-style: normal; font-weight: 300 600; 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: "Inter Tight"; font-style: normal; font-weight: 300 600; 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Dancing Script"; font-style: normal; font-weight: 600; font-display: swap;
  src: url(./fonts/dancing-script-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: "Dancing Script"; font-style: normal; font-weight: 600; font-display: swap;
  src: url(./fonts/dancing-script-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root {
  /* 1. brand primitives (manual, section 04) */
  --blacktop: #0A0A0A;
  --blackstone: #212529;
  --dim-gray: #4A4A4A;
  --whiteout: #E9ECEF;
  --warm-taupe: #BEA98E;
  --fusion: #D7EFFF;
  --paper: #FFFFFF;

  /* 2. ramps: greys */
  --n-ff: #FFFFFF; --n-fa: #FAFAFA; --n-f2: #F2F2F2; --n-ed: #EDEDED; --n-e8: #E8E8E8; --n-e5: #E5E5E5; --n-e3: #E3E3E3;
  --n-d9: #D9D9D9; --n-d6: #D6D6D6; --n-d4: #D4D4D4; --n-cf: #CFCFCF; --n-cc: #CCCCCC; --n-c9: #C9C9C9; --n-bd: #BDBDBD;
  --n-a8: #A8A8A8; --n-a3: #A3A3A3; --n-9a: #9A9A9A; --n-8c: #8C8C8C; --n-76: #767676; --n-6b: #6B6B6B; --n-64: #646464;
  --n-5c: #5C5C5C; --n-55: #555555; --n-3d: #3D3D3D; --n-3a: #3A3A3A; --n-2b: #2B2B2B; --n-2a: #2A2A2A; --n-26: #262626;
  --n-1d: #1D1D1D; --n-1a: #1A1A1A; --n-12: #121212; --n-0a: #0A0A0A; --n-00: #000000;
  /* status hues (the number is the lightness): amber = attention, red = alert, green = done, blue/violet = info */
  --amber-98: #FFFBF3; --amber-97: #FFFBF2; --amber-97b: #FFFBF1; --amber-96: #FFF8EC; --amber-95b: #FFF6E8; --amber-95: #FFF5E6;
  --amber-94: #FFF7E0; --amber-93: #FFF4DB; --amber-92: #FFF1D6; --amber-92b: #FFF3D6; --amber-92bb: #FFF4D6; --amber-87: #FFE8BF;
  --amber-83: #FFE9A8; --amber-81: #F3D9A9; --amber-77: #F1D49A; --amber-77b: #FFE58A; --amber-65: #F0B35A; --amber-48: #D88A1C;
  --amber-42: #B7791F; --amber-39: #C77700; --amber-27: #8A5A00; --amber-27b: #8A5300; --amber-24: #7A4B00; --amber-21: #6B4E00;
  --amber-21b: #6B4600; --amber-18: #5C3900;
  --red-99: #FFFAFA; --red-97: #FEF3F2; --red-97b: #FDF3F2; --red-96: #FDECEC; --red-95: #FDECEA; --red-95b: #FDE7E7; --red-86: #F2C4C4;
  --red-79: #FF9C94; --red-75: #FF8A80; --red-48: #C53030; --red-46: #C0392B; --red-41: #B3261E; --red-40: #B42318; --red-38: #A32020;
  --red-36: #9B1C1C; --red-31: #8A1C12; --red-29: #7F1414;
  --green-98: #F7FCF9; --green-95b: #EEF7F1; --green-95: #ECF7F0; --green-94: #EAF6EF; --green-93b: #E8F3EC; --green-93: #E6F4EA;
  --green-89: #D8EFE0; --green-72: #9BD3B0; --green-66: #7FD1A6; --green-40: #2F9E5B; --green-36: #2E8B57; --green-34: #2E7D4F;
  --green-30b: #1F7A4D; --green-30: #1E7A44; --green-27: #1E6B3E; --green-25: #1F5E3A; --green-23: #1E5631;
  --blue-97b: #F4F6FC; --blue-97: #EEF2FF; --blue-96: #EEF2FB; --blue-43: #3A4A9F; --blue-40: #2F4A9C; --blue-36: #2B4A8B;
  --violet-96: #F3EEFB; --violet-41: #5B3A99;

  /* 3. semantic colour tokens (manual names) */
  --surface: var(--n-ff);          /* page ground */
  --surface-raised: var(--n-ff);   /* cards, tables, panels, fields */
  --surface-sunken: var(--n-f2);   /* quiet blocks and hover rows */
  --ink: var(--n-0a);              /* primary text */
  --ink-muted: var(--n-64);        /* secondary text, captions (4.5:1 on surface and surface-sunken) */
  --hairline: var(--n-e3);         /* 1px dividers, table and card borders */
  --rule-strong: var(--n-8c);      /* field borders (3:1), totals */
  --inverse: var(--n-0a);          /* primary button, inverted blocks */
  --on-inverse: var(--n-ff);       /* text on inverse */
  --accent: var(--warm-taupe);     /* the single accent: never text on a light surface */
  --on-accent: var(--blacktop);
  --selection: var(--n-f2);        /* selected row background; never the only cue */
  --link: var(--ink);
  --focus-ring: var(--ink);
  --alert: var(--red-40);          /* errors, overdue, destructive: always with an icon and words */
  --alert-bg: var(--red-97);

  /* radius, lines, spacing and layout (manual) */
  --radius-0: 0; --radius-sm: 2px; --radius-pill: 999px;
  --line-hairline: 1px; --line-strong: 1.5px; --line-focus: 2px;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px;
  --space-12: 48px; --space-16: 64px; --space-24: 96px; --space-32: 128px;
  --content-max: 1200px; --measure: 68ch; --bevel-angle: 35deg;
  --ease-out: cubic-bezier(0.2, 0, 0, 1);

  /* type (manual, section 03): one family, eight sizes */
  --font-sans: "Miguer", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Krona One", "Helvetica Neue", Arial, sans-serif;
  --font-script: "Dancing Script", "Segoe Script", "Snell Roundhand", cursive;
  --fs-label: 11px;    /* table header, field and metric label (600, caps) */
  --fs-caption: 12px;  /* captions, source notes */
  --fs-small: 13px;    /* dense rows; never smaller in a table */
  --fs-table: 14px;    /* table figures */
  --fs-body: 15px;     /* running text */
  --fs-lead: 18px;     /* lead paragraph */
  --fs-h3: 20px;       /* subhead, card title */
  --fs-h2: 30px;       /* section title */
  --fs-h1: 44px;       /* page title */
}

/* KV-503: the brand palette (manual, section 04). Overrides the ramp above, so deleting this block restores the old
   look. Page ground is Whiteout, cards stay Paper; secondary text is Dim Gray; hairlines are 14% ink; field borders
   Dim Gray (≥3:1 on Whiteout and Paper). No green, blue or violet: status is told by symbol and words (KV-504); the
   attention hue becomes a Warm Taupe field under ink; the single alert tone (red) stays for errors and overdue. */
:root {
  --surface: var(--whiteout);
  --surface-raised: var(--paper);
  --surface-sunken: #F4F5F7;
  --ink-muted: var(--dim-gray);
  --hairline: rgba(10, 10, 10, 0.14);
  --rule-strong: var(--dim-gray);
  --selection: var(--fusion);
  /* done / info / category hues fold into the neutrals */
  --green-98: var(--surface-sunken); --green-95b: var(--surface-sunken); --green-95: var(--surface-sunken); --green-94: var(--surface-sunken);
  --green-93b: var(--surface-sunken); --green-93: var(--surface-sunken); --green-89: var(--n-e8);
  --green-72: var(--n-a3); --green-66: var(--n-a3);
  --green-40: var(--ink); --green-36: var(--ink); --green-34: var(--ink); --green-30b: var(--ink); --green-30: var(--ink);
  --green-27: var(--ink); --green-25: var(--ink); --green-23: var(--ink);
  --blue-97b: var(--surface-sunken); --blue-97: var(--surface-sunken); --blue-96: var(--surface-sunken);
  --blue-43: var(--ink); --blue-40: var(--ink); --blue-36: var(--ink);
  --violet-96: var(--surface-sunken); --violet-41: var(--ink);
  /* attention: a Warm Taupe field with ink on it (never Taupe text on a light ground) */
  --amber-98: rgba(190, 169, 142, 0.12); --amber-97: rgba(190, 169, 142, 0.12); --amber-97b: rgba(190, 169, 142, 0.12);
  --amber-96: rgba(190, 169, 142, 0.16); --amber-95b: rgba(190, 169, 142, 0.18); --amber-95: rgba(190, 169, 142, 0.18);
  --amber-94: rgba(190, 169, 142, 0.2); --amber-93: rgba(190, 169, 142, 0.22); --amber-92: rgba(190, 169, 142, 0.24);
  --amber-92b: rgba(190, 169, 142, 0.24); --amber-92bb: rgba(190, 169, 142, 0.24); --amber-87: rgba(190, 169, 142, 0.34);
  --amber-83: rgba(190, 169, 142, 0.4); --amber-81: rgba(190, 169, 142, 0.45); --amber-77: rgba(190, 169, 142, 0.5);
  --amber-77b: rgba(190, 169, 142, 0.5); --amber-65: var(--warm-taupe); --amber-48: var(--warm-taupe);
  --amber-42: var(--warm-taupe); --amber-39: var(--warm-taupe);
  --amber-27: var(--ink); --amber-27b: var(--ink); --amber-24: var(--ink); --amber-21: var(--ink); --amber-21b: var(--ink); --amber-18: var(--ink);
}
