:root {
--accent:            #28a745;
--accent-deep:       #1e7e34;
--accent-grad:       linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
--accent-wash:       rgba(40, 167, 69, 0.12);
--accent-wash-soft:  rgba(40, 167, 69, 0.07);
--accent-wash-hard:  rgba(40, 167, 69, 0.22);
--accent-ring:       rgba(40, 167, 69, 0.30);
--ink:               #1a1a1a;
--ink-soft:          #6e6e73;
--ink-faint:         #9ca3af;
--ink-invert:        #ffffff;
--ink-invert-soft:   #a1a1a6;
--surface-dark:      #1c1c1e;
--surface-card:      rgba(255, 255, 255, 0.55);
--surface-card-hi:   rgba(255, 255, 255, 0.82);
--surface-input:     rgba(255, 255, 255, 0.70);
--surface-input-hi:  rgba(255, 255, 255, 0.85);
--surface-sunken:    rgba(28, 28, 30, 0.035);
--surface-sunken-2:  rgba(28, 28, 30, 0.06);
--surface-sunken-3:  rgba(28, 28, 30, 0.10);
--hairline:          rgba(28, 28, 30, 0.10);
--hairline-inset:    rgba(255, 255, 255, 0.80);
--ground:
radial-gradient(860px 480px at 6% -8%, rgba(40, 167, 69, 0.14), rgba(40, 167, 69, 0) 60%),
radial-gradient(720px 440px at 97% 2%, rgba(30, 126, 52, 0.09), rgba(30, 126, 52, 0) 60%),
linear-gradient(160deg, #fafefb 0%, #ffffff 46%, #f3fbf5 100%);
--danger:            #a8322a;
--danger-wash:       rgba(168, 50, 42, 0.10);
--danger-wash-hard:  rgba(168, 50, 42, 0.18);
--warn:              #d9a05b;
--warn-ink:          #8a5a1e;
--warn-wash:         rgba(217, 160, 91, 0.16);
--ok:                var(--accent-deep);
--ok-wash:           var(--accent-wash);
--neutral:           #9ca3af;
--neutral-wash:      rgba(156, 163, 175, 0.18);
--mod-project:       #023d54;
--mod-odp:           #9a6735;
--mod-document:      #3e363f;
--mod-report:        #b8293d;
--font:              Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
--font-mono:         ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
--fs-display:        30px;  --lh-display: 34px;
--fs-title:          20px;  --lh-title:   26px;
--fs-section:        16px;  --lh-section: 23px;
--fs-body:           13px;  --lh-body:    19px;
--fs-small:          12px;  --lh-small:   17px;
--fs-micro:          11px;  --lh-micro:   15px;
--fs-label:          10px;  --lh-label:   15px;
--r-sm:              8px;
--r-md:              11px;
--r-lg:              12px;
--r-xl:              24px;
--r-pill:            9999px;
--shadow-card:       rgba(40, 120, 60, 0.08) 0 8px 32px 0,
var(--hairline-inset) 0 0 0 1px inset;
--shadow-lift:       rgba(28, 28, 30, 0.20) 0 6px 18px 0;
--shadow-accent:     rgba(40, 167, 69, 0.30) 0 6px 18px 0;
--shadow-modal:      rgba(28, 28, 30, 0.28) 0 24px 64px -12px;
--blur:              blur(20px);
--ease:              cubic-bezier(0.4, 0, 0.2, 1);
--t-fast:            150ms;
--t-base:            300ms;
--t-slow:            600ms;
--tap:               44px;
--gutter:            24px;
--gap:               16px;
--topbar-h:          64px;
--topbar-w:          93%;
--page-max:          1560px;
}
:root { color-scheme: light; }
