:root{color-scheme:light;
/* Type: one family, seven text steps plus document/display steps. 14 body, 13 rows and controls, 12 metadata, 11 badges. */
--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI Variable","Segoe UI",system-ui,sans-serif;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI Variable","Segoe UI",system-ui,sans-serif;--display:var(--font-display);--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-3xl:32px;--text-4xl:40px;--text-5xl:48px;--text-6xl:72px;
--leading-2xs:14px;--leading-xs:16px;--leading-sm:18px;--leading-md:20px;--leading-lg:24px;--leading-xl:28px;--leading-2xl:32px;--leading-3xl:40px;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.6;
--weight-regular:400;--weight-medium:500;--weight-semibold:600;
--tracking-body:-.003em;--tracking-ui:-.01em;--tracking-title:-.018em;--tracking-display:-.03em;
/* Space: a 4px grid. */
--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;
/* Radius: three shapes plus pill and round. sm controls, rows, chips; md cards, menus, popovers; lg dialogs, sheets, panels. */
--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--radius-round:50%;--radius-glyph:30%;
/* Density and layout. One switch (data-density on the root) moves every row and control together. */
--control-xs:24px;--control-sm:28px;--control-md:32px;--control-lg:36px;--touch:44px;
--row-compact:32px;--row-default:36px;--row-comfortable:44px;--row-touch:56px;--row-h:var(--row-default);
--sidebar-width:224px;--page-width:1168px;--context-width:304px;--peek-width:560px;--dialog-sm:400px;--dialog-md:560px;--dialog-lg:720px;--measure:720px;
/* Lines, focus and elevation. Elevation is for floating things only: 1 raised, 2 menus and popovers, 3 dialogs, sheets and toasts. */
--hair:1px solid var(--line);--focus-width:2px;--focus-offset:2px;--focus-color:var(--accent);
--shadow-1:0 0 0 1px var(--line),0 1px 2px #0000000a;--shadow-2:0 0 0 1px var(--line),0 4px 12px -2px #00000014,0 2px 4px -2px #0000000a;--shadow-3:0 0 0 1px var(--line),0 16px 40px -8px #00000029,0 4px 8px -4px #0000000f;--shadow-frame:var(--shadow-3);
/* Motion: hover and press 120ms, panels 180ms, dialogs 240ms; all zero under reduced motion. app.js reads --t and --ease. */
--duration-instant:80ms;--duration-fast:120ms;--duration-base:180ms;--duration-slow:240ms;--t:var(--duration-base);--ease:cubic-bezier(.2,.8,.2,1);--ease-standard:cubic-bezier(.2,0,0,1);--ease-out:cubic-bezier(.16,1,.3,1);
/* Public and authentication palette (light). Public pages stay light. */
--canvas:#ffffff;--bg:#ffffff;--panel:#fafafb;--side:#f5f5f7;--material:#ffffff;--fill:#f2f2f7;--fill-2:#e5e5ea;--hover:#f2f2f7;--text:#1d1d1f;--muted:#636366;--faint:#6e6e73;--line:#e5e5ea;--line-control:#d1d1d6;--line-strong:#c7c7cc;--accent:#0066cc;--accent-ink:#0058b0;--soft:#e8f1fc;--ring:#007aff66;--button:#1d1d1f;--button-hover:#3a3a3c;--button-press:#000000;--on-button:#ffffff;--seg:#ffffff;--overlay:#0f0f0f99;--scrim:#00000066;
--danger:#d70015;--danger-soft:#fff0f0;--success:#1e7a34;--success-soft:#e9f7ee;--warning:#c93400;--warning-soft:#fff4e5;--info:#0058b0;--info-soft:#e8f1fc;
--gray:#8e8e93;--brown:#a2845e;--orange:#ff9500;--yellow:#ffcc00;--green:#34c759;--blue:#007aff;--purple:#af52de;--pink:#ff2d55;--red:#ff3b30;
--tag-default-bg:#e3e2e080;--tag-default-text:#32302c;--tag-gray-bg:#e3e2e0;--tag-gray-text:#32302c;--tag-brown-bg:#eee0da;--tag-brown-text:#442a1e;--tag-orange-bg:#fadec9;--tag-orange-text:#49290e;--tag-yellow-bg:#fdecc8;--tag-yellow-text:#402c1b;--tag-green-bg:#dbeddb;--tag-green-text:#1c3829;--tag-blue-bg:#d3e5ef;--tag-blue-text:#183347;--tag-purple-bg:#e8deee;--tag-purple-text:#412454;--tag-pink-bg:#f5e0e9;--tag-pink-text:#4c2337;--tag-red-bg:#ffe2dd;--tag-red-text:#5d1715;
/* Status and due pills: one soft pair per state, aliasing the tag palette so light and dark move together. */
--status-todo-bg:var(--tag-gray-bg);--status-todo-ink:var(--tag-gray-text);--status-doing-bg:var(--tag-yellow-bg);--status-doing-ink:var(--tag-yellow-text);--status-blocked-bg:var(--tag-red-bg);--status-blocked-ink:var(--tag-red-text);--status-review-bg:var(--tag-purple-bg);--status-review-ink:var(--tag-purple-text);--status-done-bg:var(--tag-green-bg);--status-done-ink:var(--tag-green-text);--status-overdue-bg:var(--tag-red-bg);--status-overdue-ink:var(--tag-red-text);--due-today-bg:var(--tag-orange-bg);--due-today-ink:var(--tag-orange-text);
/* Identity: avatar sizes, the project glyph and the Home composer. People take one of eight tag tones; projects their own colour. */
--avatar-xs:16px;--avatar-sm:20px;--avatar-md:24px;--avatar-lg:32px;--glyph-sm:8px;--glyph-md:10px;--composer-min:72px;
/* Brand marks that must keep their own colour. */
--brand-google:#4285f4;--brand-claude:#d97757;--brand-openai:#10a37f;
/* Slides render as paper on a dark stage in every theme. */
--paper:#ffffff;--paper-ink:#1d1d1f;--paper-muted:#6e6e73;--paper-wash:#f2f2f7;--paper-line:#c7c7cc;--stage:#111111;--stage-ink:#f5f5f5;--stage-muted:#d1d1d6;
/* Public marketing names (marketing.css, home.css, template and guide pages). */
--surface:#ffffff;--raised:#ffffff;--wash:#f5f5f7;--ink:#1d1d1f;--ink-2:#6e6e73;--ink-3:#6e6e73;--line-2:#d1d1d6;--press:#e5e5ea;--todo:#aeaeb2;--doing:#ff9500;--doing-text:#c93400;--review:#007aff;--green-text:#1e7a34;--done:#1d1d1f;--p1:#007aff;--p2:#ff9500;--p3:#af52de;--p4:#34c759;--p5:#ff2d55;--p6:#8e8e93;--seg-bg:#f2f2f7;--seg-on:#ffffff;--toast:#1d1d1f;--toast-ink:#f5f5f7;--shadow-card:var(--shadow-1);
--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23787774' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
font-family:var(--font);font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.flori-analytics-controls{font:var(--text-md)/1.5 var(--font);color:var(--text)}.flori-analytics-controls button{font:inherit;color:inherit;background:var(--canvas);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 14px;min-height:44px;cursor:pointer}.flori-analytics-controls button:focus-visible{outline:3px solid var(--text);outline-offset:3px}.flori-analytics-settings{position:fixed;bottom:10px;right:12px;z-index:80;font-size:var(--text-xs)!important}.flori-analytics-controls section{position:fixed;bottom:64px;right:16px;z-index:81;box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 90px);overflow:auto;padding:22px;background:var(--canvas);border:1px solid var(--line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-3)}.flori-analytics-controls section[hidden]{display:none}.flori-analytics-controls h2{font:var(--weight-semibold) var(--text-lg)/1.3 var(--font);margin:0 0 10px}.flori-analytics-controls p{margin:10px 0}.flori-analytics-controls a{color:inherit;text-decoration:underline}.flori-analytics-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.flori-analytics-actions button{flex:1;white-space:nowrap}
