/**
 * Virtualaw OS -- practice-manager design tokens (v2, light + violet).
 * Single source of visual truth, declared from docs/design.md verbatim.
 * Owner-directed 2026-07-07 to a Clio/CaseIQ-class light console: a cool
 * near-white ground, white cards, and a deep-violet accent that carries
 * both the brand and the agent's presence. Supersedes the hydraulic
 * (manila/hull) theme. Components read these custom properties; they
 * never use raw values.
 */

:root {
	/* Color -- surfaces (the workspace) */
	--vos-ink: #1A1523;
	--vos-ink-soft: #4A4458;
	--vos-muted: #6B6578;
	--vos-paper: #F7F7FB;
	--vos-paper-raised: #FFFFFF;
	--vos-paper-sunken: #F1F0F4;
	--vos-line: #E6E4EE;
	--vos-kraft: #ECEAF1;

	/* Color -- the rail + floating layers (now light, not a dark hull) */
	--vos-hull: #FFFFFF;
	--vos-hull-soft: #4A4458;
	--vos-hull-line: #E6E4EE;

	/* Color -- accent (brand + the agent's presence) */
	--vos-accent: #6D28D9;
	--vos-accent-ink: #4C1D95;
	--vos-accent-soft: #F3EFFD;
	--vos-system: #6B6578;
	--vos-system-bright: #6D28D9;

	/* Color -- semantic (never the accent) */
	--vos-ok: #059669;
	--vos-ok-soft: #ECFDF5;
	--vos-warn: #D97706;
	--vos-warn-soft: #FFFBEB;
	--vos-crit: #DC2626;
	--vos-crit-soft: #FEF2F2;

	/* Channel -- which wire a message travelled on. Separate from the
	   accent and from the semantic set on purpose: this is not good or
	   bad, it is WHERE, and it has to stay legible on every skin. The
	   secure channel borrows the accent (it is the firm's own ground);
	   SMS gets its own hue, because it leaves the site. */
	--vos-sms: #C4553D;

	/* --- v2 additions: richer surfaces, states, and the chart palette --- */
	--vos-app-bg: #F7F7FB;
	--vos-card: #FFFFFF;
	/* An alias the client portal's sheet uses. The portal renders inside
	   the firm's own theme, so it reads the surface by a neutral name
	   rather than by the console's furniture. */
	--vos-surface: var(--vos-card);
	--vos-surface-muted: #F1F0F4;
	--vos-surface-sunk: #ECEAF1;
	--vos-border: #E6E4EE;
	--vos-border-strong: #D6D3E0;
	--vos-hairline: rgba(26, 21, 35, .08);
	--vos-ink-inv: #FFFFFF;

	--vos-accent-strong: #5B21B6;
	--vos-accent-tint: #EDE7FB;
	--vos-accent-line: rgba(109, 40, 217, .22);

	--vos-ok-ink: #047857;
	--vos-ok-line: #A7F3D0;
	--vos-warn-ink: #92400E;
	--vos-warn-line: #FDE68A;
	--vos-crit-ink: #B91C1C;
	--vos-crit-line: #FECACA;
	--vos-crit-soft-hover: #FDE3E3;
	--vos-neutral-tint: #F1F0F4;
	--vos-neutral-line: #E4E2EA;
	--vos-trend-up: #047857;
	--vos-trend-down: #B91C1C;

	/* Categorical chart set (violet-led, colorblind-safe; distinct from status) */
	--vos-cat-1: #6D28D9;
	--vos-cat-2: #2F74D0;
	--vos-cat-3: #0E9488;
	--vos-cat-4: #C026A3;
	--vos-cat-5: #5B53C6;
	--vos-cat-6: #0E7FA8;

	/* Sequential violet ramp (magnitude) */
	--vos-seq-100: #EDE7FB;
	--vos-seq-200: #D7C8F6;
	--vos-seq-300: #BDA3EF;
	--vos-seq-400: #A078E6;
	--vos-seq-500: #8452DB;
	--vos-seq-600: #6D28D9;
	--vos-seq-700: #5B21B6;

	/* Chart chrome */
	--vos-area-top: rgba(109, 40, 217, .22);
	--vos-area-bottom: rgba(109, 40, 217, .02);
	--vos-grid: #ECEAF1;
	--vos-axis: #CFCCDB;
	--vos-tick: #6B6578;
	--vos-tooltip-bg: #1A1523;
	--vos-tooltip-ink: #FFFFFF;

	/* Type -- one clean sans carries the UI; mono for data/labels */
	--vos-font-display: "Inter Tight", -apple-system, "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;
	--vos-font-body: -apple-system, "Segoe UI", "Inter Tight", Roboto, system-ui, "Helvetica Neue", Arial, sans-serif;
	--vos-font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;

	/* Type scale */
	--vos-fs-kpi: 34px;
	--vos-fs-h1: 22px;
	--vos-fs-h2: 17px;
	--vos-fs-body: 14px;
	--vos-fs-sm: 13px;
	--vos-fs-label: 11px;

	/* Space (4px base) */
	--vos-space-1: 4px;
	--vos-space-2: 8px;
	--vos-space-3: 12px;
	/* The default gap between stacked blocks, named for the places that
	   want "the usual space" rather than a specific step. */
	--vos-gap: var(--vos-space-3);
	--vos-space-4: 16px;
	--vos-space-5: 24px;
	--vos-space-6: 32px;
	--vos-space-7: 48px;

	/* Radius */
	--vos-radius-s: 5px;
	--vos-radius-m: 8px;
	/* The control radius is its own name so a skin can square off inputs
	   and buttons without touching cards. It resolved through a fallback
	   before, which worked but left the extension point undocumented --
	   and an undefined token is indistinguishable from a typo. */
	--vos-radius-control: var(--vos-radius-m);
	--vos-radius-l: 10px;
	--vos-radius-card: 14px;
	--vos-radius-pill: 999px;

	/* Shadow -- cards now carry a soft raise (light theme reads flat otherwise) */
	/* Index cards: client and matter cards read as ruled index cards --
	   warm paper, a red headline rule, pale blue ruling. Skins retint. */
	--vos-index-paper: #FFFDF4;
	--vos-index-rule: #E39AA5;
	--vos-index-line: #CBD9EB;

	--vos-shadow-1: 0 1px 2px rgba(26, 21, 35, .04), 0 1px 3px rgba(26, 21, 35, .06);
	--vos-shadow-raise: 0 4px 12px rgba(26, 21, 35, .10), 0 14px 32px rgba(26, 21, 35, .10);
	--vos-shadow-accent: 0 1px 2px rgba(76, 29, 149, .32), 0 2px 8px rgba(109, 40, 217, .28);
	--vos-focus-ring: 0 0 0 3px rgba(109, 40, 217, .35);
	/* Scrim behind floating layers (palette, drawer) */
	--vos-scrim: rgba(26, 21, 35, .25);

	/* Window chrome (the OS shell) -- Violet Modern defaults; skins
	   override these on body[data-vos-skin] (assets/skins/). */
	--vos-desk: #F7F7FB;
	--vos-desk-bg: var(--vos-desk);
	--vos-face: #FFFFFF;
	--vos-face-light: #FFFFFF;
	--vos-face-dark: #D6D3E0;
	--vos-edge: #B9B4C8;
	--vos-hi: #FFFFFF;
	--vos-sel: #6D28D9;
	--vos-tbar-grad: linear-gradient(90deg, #6D28D9, #8B5CF6);
	--vos-tbar-grad-blur: linear-gradient(90deg, #C9C4D6, #E2DFEB);
	--vos-tbar-ink: #FFFFFF;
	--vos-icon-lbl: #1A1523;
	--vos-icon-shadow: none;
	--vos-chrome-radius: 10px;
	--vos-chrome-font: var(--vos-font-body);
	--vos-win-shadow: 0 4px 12px rgba(26, 21, 35, .10), 0 14px 32px rgba(26, 21, 35, .10);

	/* Motion */
	--vos-dur-fast: 120ms;
	--vos-dur-move: 240ms;
	--vos-ease: cubic-bezier(.2, 0, 0, 1);
}
