/* Remote84 webfonts (latin subsets vendored from the design bundle) */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url("vendor/fonts/PlexSans.woff2") format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url("vendor/fonts/PlexMono-400.woff2") format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url("vendor/fonts/PlexMono-500.woff2") format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url("vendor/fonts/PlexMono-600.woff2") format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 700;font-display:swap;src:url("vendor/fonts/SpaceGrotesk.woff2") format('woff2')}
/* Remote84 — global stylesheet entry. Imports only. */
:root{
  /* ——— Base ramps ——— */
  --white:#FFFFFF;
  /* Deep Sea — the dark ground. A desaturated teal-navy, never black. */
  --ink-900:#0E2630; --ink-850:#123140; --ink-800:#143441; --ink-700:#1C4353;
  --ink-600:#2A5C6E; --ink-500:#55676F; --ink-400:#84949C; --ink-300:#A9B6BC;
  --ink-200:#E2E8EA; --ink-150:#E9EEEF; --ink-100:#EDF1F2; --ink-050:#F4F7F8;

  /* Signal Mint — the accent. Bright fills carry deep-sea ink text. */
  --mint-700:#0B6B5E; --mint-600:#3ACFB0; --mint-500:#4FE0C2; --mint-400:#7DEBD5;
  --mint-200:#B6F4E7; --mint-100:#DBFAF3; --mint-050:#EFFBF7;

  --coral-600:#D6362C; --coral-500:#F0453A; --coral-100:#FFE7E4;
  --teal-600:#0B8577; --teal-500:#0E9F8F; --teal-100:#D3F2ED;
  --violet-600:#4A58DC; --violet-500:#5C6BF0; --violet-100:#E6E9FE;
  --green-600:#0C8C56; --green-500:#0FA968; --green-100:#D6F4E5;

  /* ——— Semantic surfaces ——— */
  --surface-app:#FFFFFF;
  --surface-card:#FFFFFF;
  --surface-inset:#F4F7F8;
  --surface-paper:#EFFBF7;        /* mint mist — live billable work */
  --surface-inverse:#0E2630;      /* rail, metric tiles, dark pills */
  --surface-inverse-raised:#143441;
  --surface-overlay:rgba(14,38,48,.48);

  /* ——— Semantic text ——— */
  --text-primary:#0E2630;
  --text-secondary:#55676F;
  --text-muted:#5F7078;      /* 4.9:1 on white — safe for 12px mono captions */
  --text-faint:#84949C;      /* decorative only — never for text under 16px */
  --text-inverse:#FFFFFF;
  --text-inverse-muted:#A9B6BC;
  --text-on-accent:#0E2630;
  --text-link:#0B6B5E;
  --text-link-hover:#0E2630;

  /* ——— Semantic borders ——— */
  --border-subtle:#E2E8EA;
  --border-input:#D3DCDF;
  --border-strong:#0E2630;
  --border-inverse:rgba(255,255,255,.10);
  --border-dashed:#D3DCDF;

  /* ——— Accent + status ——— */
  --accent:#4FE0C2;
  --accent-hover:#3ACFB0;
  --accent-press:#29BB9D;
  --accent-tint:#DBFAF3;

  --status-late:#F0453A;      --status-late-tint:#FFE7E4;
  --status-live:#0E2630;      --status-live-tint:#EDF1F2;
  --status-done:#0FA968;      --status-done-tint:#D6F4E5;
  --status-progress:#0E9F8F;  --status-progress-tint:#D3F2ED;
  --status-contractor:#5C6BF0;--status-contractor-tint:#E6E9FE;
  --status-billing:#0B6B5E;   --status-billing-tint:#DBFAF3;

  --focus-ring:0 0 0 3px rgba(79,224,194,.55);
  --focus-ring-dark:0 0 0 3px rgba(79,224,194,.40);
}

:root{
  --font-display:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-sans:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:700; /* @kind font */

  /* sizes */
  --fs-display:38px; --fs-h1:30px; --fs-h2:22px; --fs-h3:18px;
  --fs-body:15px; --fs-body-sm:14px; --fs-caption:13px; --fs-micro:12px;
  --fs-mono-label:12px; --fs-mono-data:14px; --fs-timer:34px;

  /* line heights */
  --lh-tight:1.06; /* @kind font */
  --lh-heading:1.18; /* @kind font */
  --lh-body:1.5; /* @kind font */
  --lh-relaxed:1.62; /* @kind font */

  /* tracking */
  --tr-display:-0.03em; /* @kind font */
  --tr-heading:-0.02em; /* @kind font */
  --tr-body:0em; /* @kind font */
  --tr-mono-label:0.09em; /* @kind font */
  --tr-mono-data:0em; /* @kind font */

  /* composed roles */
  --type-display:var(--fw-bold) var(--fs-display)/var(--lh-tight) var(--font-display);
  --type-h1:var(--fw-bold) var(--fs-h1)/var(--lh-heading) var(--font-display);
  --type-h2:var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-display);
  --type-h3:var(--fw-semibold) var(--fs-h3)/var(--lh-heading) var(--font-display);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-sans);
  --type-body-strong:var(--fw-semibold) var(--fs-body)/var(--lh-body) var(--font-sans);
  --type-caption:var(--fw-regular) var(--fs-caption)/1.45 var(--font-sans);
  --type-mono-label:var(--fw-medium) var(--fs-mono-label)/1.3 var(--font-mono);
  --type-mono-data:var(--fw-regular) var(--fs-mono-data)/1.4 var(--font-mono);
}

:root{
  --sp-0:0px; --sp-1:2px; --sp-2:4px; --sp-3:6px; --sp-4:8px; --sp-5:12px;
  --sp-6:16px; --sp-7:20px; --sp-8:24px; --sp-9:32px; --sp-10:40px;
  --sp-11:48px; --sp-12:64px; --sp-13:80px;

  --gutter-page:32px;       /* page padding, main column */
  --gutter-card:18px;       /* card interior */
  --gutter-row:14px;        /* list-row interior */
  --stack-tight:8px; --stack:16px; --stack-loose:32px;

  --sidebar-w:288px;
  --topbar-h:76px;
  --control-h-sm:32px; --control-h:40px; --control-h-lg:46px;
  --hit-min:40px;
}

:root{
  --r-xs:7px; --r-sm:9px; --r-md:12px; --r-lg:14px; --r-xl:16px; --r-2xl:20px;
  --r-pill:999px;
  --r-control:12px;   /* buttons, inputs */
  --r-card:16px;      /* cards, tiles */
  --r-nav:14px;       /* sidebar items */
  --r-modal:20px;
  --r-avatar:999px;
}

:root{
  --shadow-none:none;
  --shadow-hairline:0 0 0 1px var(--border-subtle);
  --shadow-card:0 1px 2px rgba(14,38,48,.05);
  --shadow-raised:0 6px 20px rgba(14,38,48,.08);
  --shadow-pop:0 14px 36px rgba(14,38,48,.13);
  --shadow-modal:0 28px 72px rgba(14,38,48,.26);
  --shadow-accent:0 2px 0 var(--mint-700);
  --ring-selected:inset 0 0 0 2px var(--mint-600);
}

:root{
  --dur-instant:80ms; /* @kind other */
  --dur-fast:120ms; /* @kind other */
  --dur-base:180ms; /* @kind other */
  --dur-slow:260ms; /* @kind other */
  --ease-out:cubic-bezier(.2,.8,.2,1); /* @kind other */
  --ease-in-out:cubic-bezier(.4,0,.2,1); /* @kind other */
  --ease-standard:ease-out; /* @kind other */
  --t-hover:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out); /* @kind other */
  --t-enter:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out); /* @kind other */
}
@media (prefers-reduced-motion:reduce){:root{
  --dur-instant:0ms; /* @kind other */
  --dur-fast:0ms; /* @kind other */
  --dur-base:0ms; /* @kind other */
  --dur-slow:0ms; /* @kind other */
}}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;font:var(--type-body);color:var(--text-primary);background:var(--surface-app);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);letter-spacing:var(--tr-heading);font-weight:var(--fw-bold)}
p{margin:0}
a{color:var(--text-link);text-decoration:none;border-bottom:1px solid var(--mint-600);transition:var(--t-hover)}
a:hover{color:var(--text-link-hover);border-bottom-color:var(--mint-700)}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
::selection{background:var(--mint-200);color:var(--text-primary)}
.r84-mono-label{font:var(--type-mono-label);letter-spacing:var(--tr-mono-label);text-transform:uppercase;color:var(--text-muted)}

/* Remote84 component styles — shipped to consumers via styles.css */

/* ————— Button ————— */
.r84-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);height:var(--control-h);padding:0 16px;border:1px solid transparent;border-radius:var(--r-control);font:var(--fw-semibold) var(--fs-body-sm)/1 var(--font-sans);letter-spacing:-0.005em;cursor:pointer;white-space:nowrap;transition:var(--t-hover)}
.r84-btn svg{width:16px;height:16px;flex:none}
.r84-btn--sm{height:var(--control-h-sm);padding:0 12px;font-size:var(--fs-caption);gap:var(--sp-3)}
.r84-btn--sm svg{width:14px;height:14px}
.r84-btn--lg{height:var(--control-h-lg);padding:0 22px;font-size:var(--fs-body)}
.r84-btn--primary{background:var(--accent);color:var(--text-on-accent)}
.r84-btn--primary:hover{background:var(--accent-hover)}
.r84-btn--primary:active{background:var(--accent-press)}
.r84-btn--ink{background:var(--ink-900);color:var(--text-inverse)}
.r84-btn--ink:hover{background:var(--ink-700)}
.r84-btn--ink:active{background:var(--ink-850)}
.r84-btn--outline{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-input)}
.r84-btn--outline:hover{background:var(--surface-inset);border-color:var(--ink-300)}
.r84-btn--ghost{background:transparent;color:var(--text-secondary)}
.r84-btn--ghost:hover{background:var(--surface-inset);color:var(--text-primary)}
.r84-btn--danger{background:var(--coral-500);color:#fff}
.r84-btn--danger:hover{background:var(--coral-600)}
.r84-btn[disabled],.r84-btn.is-disabled{opacity:.42;cursor:not-allowed;pointer-events:none}
.r84-btn--block{width:100%}

/* ————— Icon button ————— */
.r84-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);border-radius:var(--r-control);border:1px solid var(--border-input);background:var(--surface-card);color:var(--text-primary);cursor:pointer;transition:var(--t-hover)}
.r84-iconbtn svg{width:17px;height:17px}
.r84-iconbtn:hover{background:var(--surface-inset)}
.r84-iconbtn--sm{width:var(--control-h-sm);height:var(--control-h-sm);border-radius:var(--r-sm)}
.r84-iconbtn--sm svg{width:15px;height:15px}
.r84-iconbtn--ghost{border-color:transparent;background:transparent;color:var(--text-muted)}
.r84-iconbtn--ghost:hover{background:var(--surface-inset);color:var(--text-primary)}
.r84-iconbtn--ink{background:var(--ink-900);border-color:var(--ink-900);color:#fff}
.r84-iconbtn--ink:hover{background:var(--ink-700);border-color:var(--ink-700)}
.r84-iconbtn--accent{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}
.r84-iconbtn--accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}

/* ————— Badge (project type) ————— */
.r84-badge{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:var(--r-pill);font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans)}
.r84-badge[data-tone=mint]{background:var(--accent);color:var(--text-on-accent)}
.r84-badge[data-tone=violet]{background:var(--violet-500);color:#fff}
.r84-badge[data-tone=teal]{background:var(--teal-500);color:#fff}
.r84-badge[data-tone=neutral]{background:var(--ink-100);color:var(--text-primary)}
.r84-badge[data-tone=ink]{background:var(--ink-900);color:#fff}

/* ————— Status pill ————— */
.r84-pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--r-pill);font:var(--fw-semibold) var(--fs-micro)/1 var(--font-sans)}
.r84-pill--mono{font:var(--fw-medium) var(--fs-mono-label)/1 var(--font-mono);letter-spacing:var(--tr-mono-label);text-transform:uppercase;padding:0 9px}
.r84-pill[data-tone=late]{background:var(--status-late);color:#fff}
.r84-pill[data-tone=live]{background:var(--ink-900);color:#fff}
.r84-pill[data-tone=done]{background:var(--status-done-tint);color:var(--green-600)}
.r84-pill[data-tone=mint]{background:var(--accent);color:var(--text-on-accent)}
.r84-pill[data-tone=neutral]{background:var(--ink-150);color:var(--text-secondary)}

/* ————— Avatar ————— */
.r84-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-avatar);font:var(--fw-semibold) 11px/1 var(--font-sans);letter-spacing:.01em;flex:none;position:relative}
.r84-avatar--xs{width:22px;height:22px;font-size:9px}
.r84-avatar--sm{width:28px;height:28px;font-size:10px}
.r84-avatar--md{width:36px;height:36px;font-size:12px}
.r84-avatar--lg{width:48px;height:48px;font-size:15px}
.r84-avatar[data-tone=ink]{background:var(--ink-900);color:#fff}
.r84-avatar[data-tone=mint]{background:var(--accent);color:var(--text-on-accent)}
.r84-avatar[data-tone=violet]{background:var(--violet-500);color:#fff}
.r84-avatar[data-tone=slate]{background:var(--ink-200);color:var(--ink-600)}
.r84-avatar[data-tone=teal]{background:var(--teal-500);color:#fff}
.r84-avatar__dot{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--green-500);box-shadow:0 0 0 2px var(--surface-card)}
.r84-stack{display:inline-flex;align-items:center}
.r84-stack>*{margin-left:-7px;box-shadow:0 0 0 2px var(--surface-card)}
.r84-stack>*:first-child{margin-left:0}
.r84-stack__more{display:inline-flex;align-items:center;height:22px;padding:0 6px;margin-left:4px;border-radius:var(--r-pill);background:var(--ink-100);font:var(--fw-semibold) 10px/1 var(--font-sans);color:var(--text-secondary)}

/* ————— Card ————— */
.r84-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:var(--gutter-card)}
.r84-card--paper{background:var(--surface-paper);border-color:#CDEDE4}
.r84-card--inset{background:var(--surface-inset);border-color:transparent;box-shadow:none}
.r84-card--inverse{background:var(--surface-inverse);border-color:var(--ink-900);color:var(--text-inverse)}
.r84-card--dashed{background:transparent;border:1px dashed var(--border-dashed);box-shadow:none}
.r84-card--flush{padding:0;overflow:hidden}
.r84-card.is-selected{border-color:var(--ink-900);box-shadow:var(--ring-selected)}
.r84-card--interactive{cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.r84-card--interactive:hover{box-shadow:var(--shadow-raised)}

/* ————— Chip ————— */
.r84-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-pill);background:var(--ink-100);color:var(--text-primary);font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans);cursor:default;transition:var(--t-hover);border:1px solid transparent}
.r84-chip--clickable{cursor:pointer}
.r84-chip--clickable:hover{background:var(--ink-150)}
.r84-chip.is-active{background:var(--ink-900);color:#fff}
.r84-chip--outline{background:transparent;border-color:var(--border-input)}

/* ————— Mono section label ————— */
.r84-label{display:block;font:var(--type-mono-label);letter-spacing:var(--tr-mono-label);text-transform:uppercase;color:var(--text-muted)}
.r84-label--strong{color:var(--text-primary);font-weight:var(--fw-semibold)}
.r84-label--danger{color:var(--status-late)}

/* ————— Progress ————— */
.r84-progress{display:flex;align-items:center;gap:12px}
.r84-progress__track{flex:1;height:5px;border-radius:var(--r-pill);background:var(--ink-150);overflow:hidden}
.r84-progress__fill{height:100%;border-radius:var(--r-pill);background:var(--status-progress);transition:width var(--dur-slow) var(--ease-out)}
.r84-progress__fill[data-tone=mint]{background:var(--accent)}
.r84-progress__fill[data-tone=ink]{background:var(--ink-900)}
.r84-progress__meta{font:var(--type-mono-data);color:var(--text-muted);white-space:nowrap}

/* ————— Metric tile ————— */
.r84-metric{padding:18px 20px;border-radius:var(--r-card);background:var(--surface-inset);border:1px solid transparent}
.r84-metric__value{display:block;margin-top:8px;font:var(--fw-semibold) 30px/1 var(--font-mono);letter-spacing:-0.02em;color:var(--text-primary)}
.r84-metric[data-tone=warn]{background:var(--mint-050);border-color:var(--accent)}
.r84-metric[data-tone=warn] .r84-metric__value{color:var(--mint-700)}
.r84-metric[data-tone=ink]{background:var(--surface-inverse)}
.r84-metric[data-tone=ink] .r84-metric__value{color:var(--green-500)}
.r84-metric[data-tone=ink] .r84-label{color:var(--ink-400)}

/* ————— Banner ————— */
.r84-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--r-card);font:var(--fw-regular) var(--fs-body-sm)/1.45 var(--font-sans);border:1px solid}
.r84-banner svg{width:17px;height:17px;flex:none;margin-top:1px}
.r84-banner[data-tone=mint]{background:var(--mint-050);border-color:var(--accent);color:var(--text-primary)}
.r84-banner[data-tone=danger]{background:var(--coral-100);border-color:var(--coral-500);color:var(--coral-600)}
.r84-banner[data-tone=neutral]{background:var(--surface-inset);border-color:var(--border-subtle);color:var(--text-secondary)}

/* ————— Empty state ————— */
.r84-empty{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--r-lg);background:var(--surface-inset);color:var(--text-muted);font:var(--fw-regular) var(--fs-body-sm)/1.4 var(--font-sans)}
.r84-empty svg{width:16px;height:16px;flex:none}
.r84-empty--dashed{background:transparent;border:1px dashed var(--border-dashed);justify-content:center}

/* ————— Fields ————— */
.r84-field{display:block}
.r84-field__label{display:block;margin-bottom:7px;font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans);color:var(--text-primary)}
.r84-field__hint{display:block;margin-top:6px;font:var(--type-caption);color:var(--text-muted)}
.r84-input,.r84-select,.r84-textarea{width:100%;height:var(--control-h);padding:0 12px;border:1px solid var(--border-input);border-radius:var(--r-control);background:var(--surface-card);font:var(--fw-regular) var(--fs-body-sm)/1 var(--font-sans);color:var(--text-primary);transition:var(--t-hover)}
.r84-textarea{height:auto;padding:11px 12px;line-height:1.5;resize:vertical}
.r84-input::placeholder,.r84-textarea::placeholder{color:var(--text-muted)}
.r84-input:hover,.r84-select:hover,.r84-textarea:hover{border-color:var(--ink-300)}
.r84-input:focus,.r84-select:focus,.r84-textarea:focus{outline:none;border-color:var(--ink-900);box-shadow:var(--focus-ring)}
.r84-input--mono{font-family:var(--font-mono)}
.r84-select{appearance:none;padding-right:34px;font-weight:var(--fw-semibold);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2355676F' stroke-width='2.2' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
.r84-search{display:flex;align-items:center;gap:10px;height:var(--control-h);padding:0 14px;border:1px solid var(--border-input);border-radius:var(--r-control);background:var(--surface-card);transition:var(--t-hover)}
.r84-search:focus-within{border-color:var(--ink-900);box-shadow:var(--focus-ring)}
.r84-search svg{width:16px;height:16px;color:var(--text-muted);flex:none}
.r84-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font:var(--fw-regular) var(--fs-body-sm)/1 var(--font-sans);color:var(--text-primary);appearance:none}
.r84-search input::placeholder{color:var(--text-muted)}
.r84-search__kbd{font:var(--type-mono-label);letter-spacing:.04em;color:var(--text-muted)}

/* ————— Checkbox ————— */
.r84-check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font:var(--fw-regular) var(--fs-body-sm)/1.3 var(--font-sans);color:var(--text-primary)}
.r84-check__box{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1.5px solid var(--border-input);border-radius:var(--r-xs);background:var(--surface-card);flex:none;transition:var(--t-hover)}
.r84-check:hover .r84-check__box{border-color:var(--ink-400)}
.r84-check__box svg{width:13px;height:13px;color:transparent}
.r84-check.is-checked .r84-check__box{background:var(--ink-900);border-color:var(--ink-900)}
.r84-check.is-checked .r84-check__box svg{color:#fff}
.r84-check.is-checked .r84-check__label{color:var(--text-muted);text-decoration:line-through}

/* ————— Toggle ————— */
.r84-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans);color:var(--text-primary)}
.r84-toggle__track{position:relative;width:44px;height:24px;border-radius:var(--r-pill);background:var(--ink-200);transition:background-color var(--dur-fast) var(--ease-out);flex:none}
.r84-toggle__knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-card);transition:transform var(--dur-fast) var(--ease-out)}
.r84-toggle.is-on .r84-toggle__track{background:var(--ink-900)}
.r84-toggle.is-on .r84-toggle__knob{transform:translateX(20px)}

/* ————— Tabs ————— */
.r84-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.r84-tab{display:inline-flex;align-items:center;gap:8px;height:var(--control-h);padding:0 16px;border:0;border-radius:var(--r-control);background:transparent;color:var(--text-primary);font:var(--fw-semibold) var(--fs-body-sm)/1 var(--font-sans);cursor:pointer;transition:var(--t-hover)}
.r84-tab__meta{font:var(--type-mono-label);letter-spacing:.02em;color:var(--text-muted);text-transform:none}
.r84-tab:hover{background:var(--surface-inset)}
.r84-tab.is-active{background:var(--ink-900);color:#fff}
.r84-tab.is-active .r84-tab__meta{color:var(--ink-400)}
.r84-tabs--underline .r84-tab{border-radius:0;background:transparent;border-bottom:2px solid transparent;height:42px;padding:0 4px;margin-right:18px;color:var(--text-secondary)}
.r84-tabs--underline .r84-tab.is-active{background:transparent;color:var(--text-primary);border-bottom-color:var(--ink-900)}

/* ————— Segmented control ————— */
.r84-seg{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--r-sm);background:var(--surface-inset)}
.r84-seg__opt{height:28px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans);cursor:pointer;transition:var(--t-hover)}
.r84-seg__opt:hover{color:var(--text-primary)}
.r84-seg__opt.is-active{background:var(--ink-900);color:#fff}

/* ————— Sidebar ————— */
.r84-sidebar{display:flex;flex-direction:column;width:var(--sidebar-w);flex:none;padding:20px 16px;background:var(--surface-inverse);color:var(--text-inverse)}
.r84-sidebar__brand{display:flex;align-items:center;gap:12px;padding:4px 6px 18px}
.r84-sidebar__brand img{width:38px;height:38px;border-radius:var(--r-md)}
.r84-sidebar__wordmark{font:var(--fw-bold) 21px/1 var(--font-display);letter-spacing:var(--tr-display)}
.r84-sidebar__wordmark em{font-style:normal;color:var(--accent)}
.r84-orgswitch{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;margin-bottom:18px;border:1px solid var(--border-inverse);border-radius:var(--r-md);background:var(--surface-inverse-raised);color:var(--text-inverse);font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans);cursor:pointer;transition:var(--t-hover)}
.r84-orgswitch:hover{background:var(--ink-700)}
.r84-orgswitch__tile{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--r-xs);font:var(--fw-bold) 10px/1 var(--font-mono);flex:none;background:var(--accent);color:var(--ink-900)}
.r84-nav{display:flex;flex-direction:column;gap:6px}
.r84-navitem{display:flex;align-items:center;gap:14px;width:100%;height:50px;padding:0 16px;border:0;border-radius:var(--r-nav);background:var(--surface-inverse-raised);color:var(--text-inverse);font:var(--fw-semibold) var(--fs-body)/1 var(--font-sans);cursor:pointer;text-align:left;transition:var(--t-hover)}
.r84-navitem svg{width:19px;height:19px;flex:none}
.r84-navitem__label{flex:1}
.r84-navitem:hover{background:var(--ink-700)}
.r84-navitem.is-active{background:var(--accent);color:var(--text-on-accent)}
.r84-navitem__count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;border-radius:var(--r-pill);background:var(--surface-inverse);color:#fff;font:var(--fw-semibold) var(--fs-mono-label)/1 var(--font-mono)}
.r84-navitem__count[data-tone=late]{background:var(--status-late);color:#fff}
.r84-navitem__count[data-tone=plain]{background:#fff;color:var(--ink-900)}
.r84-sidebar__foot{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:20px}
.r84-userchip{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r-card);background:var(--surface-inverse-raised);cursor:pointer;transition:var(--t-hover)}
.r84-userchip:hover{background:var(--ink-700)}
.r84-userchip__name{font:var(--fw-semibold) var(--fs-body-sm)/1.2 var(--font-sans)}
.r84-userchip__role{margin-top:2px;font:var(--type-mono-label);letter-spacing:var(--tr-mono-label);text-transform:uppercase;color:var(--ink-400)}

/* ————— Timer card ————— */
.r84-timer{padding:16px;border-radius:var(--r-card);background:var(--accent);color:var(--text-on-accent)}
.r84-timer__value{display:block;margin:6px 0 10px;font:var(--fw-semibold) var(--fs-timer)/1 var(--font-mono);letter-spacing:.02em}
.r84-timer__task{font:var(--fw-semibold) var(--fs-body-sm)/1.3 var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r84-timer__proj{margin-top:2px;font:var(--type-caption);color:var(--mint-700)}
.r84-timer--idle{background:transparent;border:1px dashed rgba(255,255,255,.22);color:var(--ink-300);font:var(--fw-regular) var(--fs-caption)/1.45 var(--font-sans);display:flex;gap:10px;align-items:flex-start}
.r84-timer--idle svg{width:16px;height:16px;flex:none;margin-top:1px}

/* ————— Page header ————— */
.r84-pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:var(--sp-8)}
.r84-pagehead__title{font:var(--type-h1)}
.r84-pagehead__sub{margin-top:6px;font:var(--fw-regular) var(--fs-body)/1.45 var(--font-sans);color:var(--text-secondary)}
.r84-topbar{display:flex;align-items:center;gap:12px;min-height:var(--topbar-h);padding:14px var(--gutter-page);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
.r84-topbar>.r84-search{flex:1 1 180px;min-width:150px;max-width:320px;width:auto}
.r84-topbar .r84-btn,.r84-topbar .r84-iconbtn{flex:none}
.r84-topbar__crumb{flex:1 1 140px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--fw-bold) var(--fs-h2)/1 var(--font-display);letter-spacing:var(--tr-heading)}
.r84-topbar__crumb span{color:var(--text-muted)}

/* ————— Task row ————— */
.r84-taskrow{display:flex;align-items:center;gap:14px;padding:13px var(--gutter-row);border-radius:var(--r-lg);background:var(--surface-card);border:1px solid var(--border-subtle);transition:var(--t-hover)}
.r84-taskrow:hover{background:var(--surface-inset)}
.r84-taskrow--flagged{background:var(--surface-inset);border-color:transparent}
.r84-taskrow__title{flex:1;min-width:0;font:var(--fw-semibold) var(--fs-body)/1.3 var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r84-taskrow__due{font:var(--type-mono-data);color:var(--text-muted);white-space:nowrap}
.r84-taskrow__due[data-late=true]{color:var(--status-late)}

/* ————— Project card ————— */
.r84-projcard{display:flex;flex-direction:column;gap:12px}
.r84-projcard__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.r84-projcard__title{font:var(--fw-bold) var(--fs-h3)/1.22 var(--font-display);letter-spacing:var(--tr-heading)}
.r84-projcard__meta{margin-top:3px;font:var(--fw-regular) var(--fs-caption)/1.3 var(--font-sans);color:var(--text-secondary)}
.r84-projcard__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:2px}

/* ————— Table ————— */
.r84-table{width:100%;border-collapse:collapse;font:var(--fw-regular) var(--fs-body-sm)/1.4 var(--font-sans)}
.r84-table th{padding:13px 18px;text-align:left;background:var(--surface-inset);font:var(--type-mono-label);letter-spacing:var(--tr-mono-label);text-transform:uppercase;color:var(--text-muted)}
.r84-table td{padding:16px 18px;border-top:1px solid var(--border-subtle);vertical-align:middle}
.r84-table td.is-mono{font-family:var(--font-mono);font-size:var(--fs-mono-data)}
.r84-table td.is-num{text-align:right;font-family:var(--font-mono);font-weight:var(--fw-semibold)}
.r84-table tbody tr:hover{background:var(--surface-inset)}

/* ————— Modal ————— */
.r84-modal__backdrop{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:64px 24px;background:var(--surface-overlay);z-index:50;overflow:auto}
.r84-modal{width:100%;max-width:840px;background:var(--surface-card);border-radius:var(--r-modal);box-shadow:var(--shadow-modal);padding:24px}
.r84-modal__head{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.r84-modal__title{flex:1;font:var(--type-h2)}
.r84-modal__sub{margin-top:3px;font:var(--type-mono-label);letter-spacing:var(--tr-mono-label);text-transform:uppercase;color:var(--text-muted)}



/* Projects — Place Intelligence internal tool.
   Layout and component styles live inline (ported from the design source);
   this file carries the base reset, hover states and keyframes. */

* { box-sizing: border-box; }
html, body, #root { height: 100%; }
body {
  margin: 0;
  background: var(--surface-app);
  font: var(--type-body);
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
  overscroll-behavior: none;
}
a { color: var(--text-link); }
a:hover { color: var(--text-link-hover); }
input, select, textarea, button { font-family: inherit; }
::placeholder { color: var(--text-muted); }
button { color: inherit; }

@keyframes pi-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }
@keyframes pi-spin { to { transform: rotate(360deg); } }
@keyframes pi-pop { 0% { transform: scale(0) rotate(-12deg); opacity: 0; } 100% { transform: scale(1) rotate(0); opacity: 1; } }
@keyframes pi-rise { 0% { transform: translateY(12px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }

/* Hover states (legacy inline-styled views) */
.hv-paper:hover { background: var(--surface-inset) !important; }
.hv-ink050:hover { background: var(--ink-150) !important; }
.hv-dark:hover { background: var(--ink-700) !important; }
.hv-yellow:hover { background: var(--accent-hover) !important; }
.hv-bd-gray:hover { border-color: var(--ink-300) !important; }
.hv-bd-black:hover { border-color: var(--ink-900) !important; box-shadow: var(--shadow-raised); }
.hv-fg-black:hover { color: var(--text-primary) !important; }
.hv-sidebar-row:hover { background: var(--ink-700); }

/* Keyboard accessibility */
:focus-visible { outline: none; box-shadow: var(--focus-ring); }
input:focus, textarea:focus { border-color: var(--ink-900) !important; }
select:focus { border-color: var(--ink-900) !important; }
.r84-orgpop{position:absolute;left:16px;right:16px;top:118px;z-index:40;padding:6px;background:var(--surface-card);color:var(--text-primary);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:2px}
.r84-orgpop__row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer}
.r84-orgpop__row:hover,.r84-orgpop__row.is-current{background:var(--surface-inset)}

iconify-icon { display: inline-block; }

/* Electron shell: native traffic lights overlay the left sidebar top only —
   scope to the first aside so the right message dock header stays aligned. */
body.electron aside:first-of-type > div:first-child { padding-top: 48px !important; }
