  :root {
    --bg:#f4f6f9; --card:#ffffff; --line:rgba(0,0,0,.08); --ink:rgba(15,23,42,.92);
    --muted:rgba(100,116,139,.9); --accent:#0891b2; --accent-soft:rgba(14,116,144,.08);
    --green:#16a34a; --red:#dc2626; --shadow:0 1px 8px rgba(0,0,0,.06);
  }
  * { box-sizing:border-box; }
  body { margin:0; min-height:100vh; background:var(--bg); color:var(--ink);
    font-family:'DM Sans',system-ui,-apple-system,sans-serif; }
  /* The login form is NOT the default paint. A returning visitor may hold a
     host-only portal session cookie, but proving it costs a round-trip to
     /api/portal/session, so rendering the
     form first meant every return visit flashed "Sign in" and then silently
     swapped to Home — reading as an auto-login. Three states now: #bootWrap
     paints immediately, and boot() reveals exactly one of loginWrap / home. */
  .center { min-height:100vh; display:none; align-items:center; justify-content:center; padding:20px; }
  .boot { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
  .boot-inner { display:flex; align-items:center; gap:12px; color:var(--muted,#64748b);
    font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; }
  .boot-inner img { width:26px; height:26px; opacity:.9; }
  .boot-dot { width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.35;
    animation:bootPulse 1s ease-in-out infinite; }
  .boot-dot:nth-child(3){ animation-delay:.15s } .boot-dot:nth-child(4){ animation-delay:.3s }
  @keyframes bootPulse { 0%,100%{opacity:.25;transform:scale(.85)} 50%{opacity:.9;transform:scale(1)} }
  @media (prefers-reduced-motion: reduce) { .boot-dot { animation:none; opacity:.5 } }
  .workspace-switch-card { display:none; box-sizing:border-box; width:min(480px,100%); padding:34px 32px;
    border:1px solid rgba(15,23,42,.08); border-radius:18px; background:#fff;
    box-shadow:0 24px 64px rgba(15,23,42,.1); text-align:left; }
  html.workspace-switching .boot-inner { display:none; }
  html.workspace-switching .workspace-switch-card { display:block; }
  .workspace-switch-brand { display:flex; align-items:center; gap:10px; margin-bottom:24px;
    color:#0891b2; font-family:'Syne','DM Sans',sans-serif; font-size:16px; font-weight:800; text-transform:none; letter-spacing:normal; }
  .workspace-switch-brand img { width:30px; height:30px; object-fit:contain; }
  .workspace-switch-kicker { margin:0 0 8px; color:#64748b; font:700 10px 'IBM Plex Mono',ui-monospace,monospace;
    letter-spacing:.09em; text-transform:uppercase; }
  .workspace-switch-card h1 { margin:0; color:#0f172a; font:800 23px/1.2 'Syne','DM Sans',sans-serif; letter-spacing:-.02em; }
  .workspace-switch-status { margin:9px 0 22px; color:#64748b; font-size:14px; line-height:1.5; }
  .workspace-switch-track { height:4px; margin-bottom:22px; overflow:hidden; border-radius:99px; background:#e2e8f0; }
  .workspace-switch-fill { display:block; width:50%; height:100%; border-radius:inherit; background:#0891b2; transition:width .25s ease; }
  .workspace-switch-steps { display:grid; gap:11px; margin:0; padding:0; list-style:none; }
  .workspace-switch-step { display:flex; align-items:center; gap:10px; color:#94a3b8; font-size:13px; font-weight:600; }
  .workspace-switch-step::before { content:''; box-sizing:border-box; width:18px; height:18px; flex:none; border:2px solid #cbd5e1; border-radius:50%; }
  .workspace-switch-step.done { color:#475569; }
  .workspace-switch-step.done::before { content:'✓'; display:grid; place-items:center; border-color:#0891b2; background:#0891b2; color:#fff; font-size:11px; }
  .workspace-switch-step.current { color:#0f172a; }
  .workspace-switch-step.current::before { border-color:#0891b2; border-top-color:transparent; animation:workspaceSwitchSpin .7s linear infinite; }
  @keyframes workspaceSwitchSpin { to { transform:rotate(360deg); } }
  .card { width:380px; max-width:94vw; background:var(--card); border:1px solid var(--line);
    border-radius:14px; padding:34px 30px; box-shadow:var(--shadow),0 24px 64px rgba(2,6,23,.12); }
  .brand { display:flex; align-items:center; gap:10px; }
  .brand img { width:30px; height:30px; border-radius:8px; object-fit:contain; }
  .brand span { font-family:'Syne',sans-serif; font-size:17px; font-weight:800; color:var(--accent); }
  h1 { font-family:'Syne',sans-serif; font-size:21px; font-weight:800; margin:18px 0 6px; letter-spacing:-.01em; }
  .sub { font-size:13px; color:var(--muted); margin:0 0 22px; line-height:1.5; }
  input.f { width:100%; padding:11px 12px; border-radius:8px; border:1px solid rgba(0,0,0,.1);
    background:rgba(0,0,0,.04); color:var(--ink); font-family:inherit; font-size:14px; outline:none; margin-bottom:10px; }
  input.f:focus { border-color:var(--accent); }
  button.go { width:100%; padding:12px; border-radius:9px; border:none; background:var(--accent); color:var(--on-accent,#fff);
    font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:11px; font-weight:700; letter-spacing:.06em;
    text-transform:uppercase; cursor:pointer; }
  button.go:disabled { opacity:.6; cursor:default; }
  .err { display:none; color:var(--red); font-size:12.5px; margin:0 0 10px; }

  /* ── Platform Home ── */
  .home { max-width:980px; margin:0 auto; padding:28px 22px 64px; display:none; }
  .home-top { display:flex; align-items:center; gap:14px; margin-bottom:26px; }
  .home-top .who { margin-left:auto; display:flex; align-items:center; gap:12px;
    font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:11px; letter-spacing:.05em;
    text-transform:uppercase; color:var(--muted); }
  .home-top .who button { background:none; border:1px solid var(--line); border-radius:8px; color:var(--muted);
    font-family:inherit; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; padding:7px 12px; cursor:pointer; }
  .home-top .who button:hover { color:var(--accent); border-color:var(--accent); }
  .home h1 { margin:0 0 4px; }
  .home .sub { margin-bottom:20px; }
  .portal-nav { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; color:var(--accent); font-size:12px; text-decoration:none; }
  .portal-nav.on { border-color:rgba(8,145,178,.32); background:var(--accent-soft); color:var(--accent); }
  .portal-nav:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
  .home-top { flex-wrap:wrap; }
  .home-top .who { flex-wrap:wrap; }
  .plat .orgrow .acts { flex-wrap:wrap; }
  .tenant-search { max-width:420px; margin-bottom:14px; }
  .portal-tabs { display:flex; gap:6px; overflow-x:auto; margin:2px 0 18px; padding:4px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.62); scrollbar-width:thin; }
  .portal-tab { flex:0 0 auto; min-height:38px; padding:8px 14px; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--muted); cursor:pointer; font:700 10px 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.05em; text-transform:uppercase; transition:background .15s,border-color .15s,color .15s; }
  .portal-tab:hover { color:var(--accent); background:rgba(8,145,178,.045); }
  .portal-tab[aria-selected="true"] { border-color:rgba(8,145,178,.28); background:var(--card); color:var(--accent); box-shadow:0 1px 5px rgba(15,23,42,.06); }
  .portal-tab:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
  .portal-panel[hidden] { display:none !important; }
  .portal-panel .plat { margin-bottom:0; }
  .portal-panel .plat + .plat { margin-top:16px; }
  .portal-tab .tab-count { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:7px; padding:0 5px; border-radius:999px; background:var(--accent); color:var(--on-accent,#fff); font:700 10px 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:0; }
  .portal-tab .tab-count[hidden] { display:none; }
  .plat .actions-group + .actions-group { margin-top:18px; }
  .plat .actions-group-title { font:700 10px 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:6px 0 2px; }
  @media (max-width:680px) {
    .home-top { align-items:flex-start; }
    .home-top .who { width:100%; margin-left:0; flex-wrap:wrap; gap:6px; }
    .home-top .who > span { display:none; }
    .home-top .who .portal-nav { flex:none; min-height:38px; padding:7px 10px; white-space:nowrap; font-size:10px; }
    .home-top .who button { flex:none; min-height:38px; white-space:nowrap; }
    .portal-tabs { margin-left:-4px; margin-right:-4px; flex-wrap:wrap; overflow:visible; }
    .portal-tab { flex:1 1 calc(50% - 6px); padding:8px 11px; }
  }
  .chips { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px; }
  .chip { padding:8px 16px; border-radius:999px; border:1px solid var(--line); background:transparent;
    color:var(--muted); font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; }
  .chip.on { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
  .orgsec { margin-bottom:30px; }
  .orgsec-head { display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
  .orgsec-head .nm { font-family:'Syne',sans-serif; font-size:16px; font-weight:800; }
  .orgsec-head .rl { font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:10px; letter-spacing:.06em;
    text-transform:uppercase; color:var(--muted); }
  .space-tree { display:flex; flex-direction:column; gap:10px; }
  .space-tree > .workspace { width:100%; }
  .received-spaces { margin-left:22px; padding:12px 0 0 20px; border-left:2px solid rgba(8,145,178,.18); }
  .received-spaces-head { display:flex; align-items:center; gap:8px; margin:0 0 9px -7px;
    font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:9.5px; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
  .received-spaces-head::before { content:''; width:10px; height:1px; background:rgba(8,145,178,.28); }
  .received-spaces-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:10px; }
  .tile { display:flex; flex-direction:column; gap:8px; padding:16px; border:1px solid var(--line);
    border-radius:13px; background:var(--card); box-shadow:var(--shadow); cursor:pointer; text-align:left;
    font-family:inherit; transition:border-color .15s, transform .12s; }
  .tile:hover { border-color:var(--accent); transform:translateY(-1px); }
  .tile .t-head { display:flex; align-items:center; gap:8px; }
  .tile .dot { width:9px; height:9px; border-radius:50%; background:var(--green); flex:none; }
  .tile .dot.off { background:rgba(100,116,139,.5); }
  .tile .t-name { font-size:14.5px; font-weight:700; color:var(--ink); }
  .tile .t-kind { font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:10px; letter-spacing:.06em;
    text-transform:uppercase; color:var(--muted); }
  .tile.workspace { background:linear-gradient(135deg, var(--accent-soft), var(--card) 60%); }
  .received-spaces .tile { padding:13px 14px; box-shadow:none; background:rgba(255,255,255,.72); }
  .received-spaces .tile .t-name { font-size:13.5px; }
  @media (max-width:560px) {
    .received-spaces { margin-left:10px; padding-left:14px; }
    .received-spaces-grid { grid-template-columns:1fr; }
  }
  .empty { color:var(--muted); font-size:13px; border:1px dashed var(--line); border-radius:12px; padding:22px; text-align:center; }
  .plat { border:1px solid rgba(14,116,144,.35); background:linear-gradient(135deg, var(--accent-soft), transparent 30%), var(--card); border-radius:14px; padding:18px; margin-bottom:30px; }
  .plat .p-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
  .plat .p-title { font-family:'Syne',sans-serif; font-size:16px; font-weight:800; color:var(--accent); }
  .plat .p-sub { font-size:12px; color:var(--muted); }
  .plat .newbtn { padding:9px 16px; border-radius:9px; border:none; background:var(--accent); color:var(--on-accent,#fff);
    font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
  .plat .orgrow { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid var(--line); border-radius:11px; background:#fff; margin-bottom:8px; flex-wrap:wrap; }
  .plat .orgrow .dot { width:9px; height:9px; border-radius:50%; flex:none; }
  .plat .orgrow .nm { font-weight:700; font-size:13.5px; }
  .plat .orgrow .meta { font-size:11px; color:var(--muted); }
  .plat .orgrow .acts { margin-left:auto; display:flex; gap:6px; }
  .plat .orgrow .acts button, .plat .orgrow .acts a { border:1px solid var(--line); background:transparent; color:var(--muted);
    border-radius:7px; padding:5px 10px; font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:10px; letter-spacing:.04em;
    text-transform:uppercase; cursor:pointer; text-decoration:none; }
  .plat .orgrow .acts button:hover, .plat .orgrow .acts a:hover { color:var(--accent); border-color:var(--accent); }
  .plat .badge { font-size:9.5px; font-weight:700; letter-spacing:.05em; color:#b45309; border:1px solid #b45309; border-radius:6px; padding:1px 6px; font-family:'IBM Plex Mono',ui-monospace,monospace; }
  .plat .badge.self { color:var(--accent); border-color:var(--accent); }
  .plat .newform { display:none; gap:8px; margin-bottom:12px; flex-wrap:wrap; align-items:flex-end; }
  .plat .newform input, .plat .newform select { width:100%; box-sizing:border-box; padding:9px 11px; border-radius:8px; border:1px solid rgba(0,0,0,.1); background:rgba(0,0,0,.04); color:var(--ink); font-family:inherit; font-size:13px; outline:none; height:38px; }
  .plat .newform .fld { display:flex; flex-direction:column; gap:3px; }
  .plat .newform .fld.grow { flex:1; min-width:180px; }
  .plat .newform .fld.short { flex:0 0 96px; }
  .plat .newform .fld > span { font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-family:'IBM Plex Mono',ui-monospace,monospace; white-space:nowrap; }
  .plat .newform .newbtn { height:38px; }
  .plat .orgedit { border:1px solid var(--line); border-top:none; border-radius:0 0 11px 11px; background:#fff; padding:12px; margin:-9px 0 8px; }
  .plat .orgedit .row { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; }
  .plat .orgedit input { width:100%; box-sizing:border-box; padding:8px 10px; border-radius:8px; border:1px solid rgba(0,0,0,.1); background:rgba(0,0,0,.04); color:var(--ink); font-family:inherit; font-size:13px; outline:none; height:36px; }
  .plat .orgedit .hint { font-size:10.5px; color:var(--muted); margin-top:6px; }
  .plat .platform-config-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:12px; align-items:end; }
/* ── Platform configuration records ──────────────────────────────────
   One platform-wide setting = one .pcfg. To add another, append a record
   to PLATFORM_CONFIG_RECORDS in the script below: the markup, the badge
   and the view/edit wiring are generated, so every record looks and
   behaves the same no matter how many there are. */
.pcfg { border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:var(--card); }
.pcfg + .pcfg { margin-top:12px; }
.pcfg-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.pcfg-title { font-family:'Syne',sans-serif; font-size:14px; font-weight:800; color:var(--ink); }
.pcfg-head-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pcfg-desc { font-size:12px; color:var(--muted); line-height:1.5; margin:6px 0 12px; }
.pcfg-badge { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; border:1px solid var(--line); background:rgba(0,0,0,.03); color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.pcfg-badge.ok { border-color:rgba(22,163,74,.4); background:rgba(22,163,74,.08); color:var(--green); }
.pcfg-badge.warn { border-color:rgba(217,119,6,.4); background:rgba(217,119,6,.08); color:#b45309; }
/* My Work record (plan 2026-10-16-001 U5): its own controls under the record title. */
.pcfg .mw-strip { display:flex; flex-direction:column; gap:8px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:rgba(0,0,0,.02); }
.pcfg .mw-badges { display:flex; gap:6px; flex-wrap:wrap; }
.pcfg .mw-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.pcfg .mw-switch { display:inline-flex; gap:8px; align-items:center; font-size:13px; font-weight:600; color:var(--ink); cursor:pointer; }
.pcfg .mw-switch input { width:18px; height:18px; }
.pcfg .mw-person { display:flex; gap:8px; align-items:flex-end; flex-wrap:wrap; }
.pcfg .mw-email { display:flex; flex-direction:column; gap:4px; font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-family:'IBM Plex Mono',ui-monospace,monospace; }
.pcfg .mw-email input { height:36px; min-width:240px; padding:8px 10px; border-radius:8px; border:1px solid rgba(0,0,0,.1); background:rgba(0,0,0,.04); color:var(--ink); font-family:inherit; font-size:13px; text-transform:none; letter-spacing:0; }
.pcfg .mw-health-head { justify-content:space-between; border-top:1px solid var(--line); padding-top:12px; }
.pcfg .mw-section { margin-top:12px; font-size:12px; color:var(--ink); }
.pcfg .mw-section > div + div { margin-top:4px; }
.pcfg .mw-problem { font-weight:600; }
.pcfg .mw-reasons { margin:6px 0 0; padding-left:18px; font-size:12px; color:var(--muted); }
.pcfg .mw-summary > summary { cursor:pointer; list-style:revert; }
.pcfg .mw-tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:8px; margin-top:8px; }
.pcfg .mw-tile { border:1px solid var(--line); border-radius:9px; padding:8px 10px; background:#fff; }
.pcfg .mw-tile-value { font-size:18px; font-weight:700; color:var(--ink); }
.pcfg .mw-tile-label { font-size:11px; color:var(--muted, #667085); margin-top:2px; }
.pcfg #myWorkPeople .mw-table { display:block; overflow-x:auto; }
.pcfg .mw-table { width:100%; border-collapse:collapse; margin-top:6px; font-size:12px; }
.pcfg .mw-table th, .pcfg .mw-table td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); }
.pcfg .mw-table th { font:700 9.5px 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
@media (max-width:700px) { .pcfg .mw-email input { min-width:0; width:100%; } .pcfg .mw-person { width:100%; } }
  .plat .platform-config-grid .fld { display:flex; flex-direction:column; gap:5px; min-width:0; }
  .plat .platform-config-grid .fld > span { font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-family:'IBM Plex Mono',ui-monospace,monospace; }
  .plat .platform-config-grid input { width:100%; box-sizing:border-box; height:38px; padding:9px 11px; border-radius:8px; border:1px solid rgba(0,0,0,.1); background:rgba(0,0,0,.04); color:var(--ink); font-family:inherit; font-size:13px; outline:none; }
  .plat .platform-config-grid input:focus { border-color:var(--accent); background:#fff; }
  .plat .platform-config-grid input:disabled { color:var(--ink); background:rgba(0,0,0,.025); border-color:var(--line); opacity:1; cursor:default; }
  .plat .platform-config-grid .newbtn { height:38px; white-space:nowrap; }
  .plat .platform-config-actions { display:flex; gap:8px; align-items:center; }
  .plat .platform-config-status { margin-top:10px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:rgba(0,0,0,.025); font-size:11px; line-height:1.45; }
  .plat .platform-config-status.saving { color:var(--accent); border-color:rgba(37,99,235,.3); background:rgba(37,99,235,.06); }
  .plat .platform-config-status.success { color:#166534; border-color:rgba(22,101,52,.25); background:rgba(22,101,52,.06); }
  .plat .platform-config-status.error { color:var(--red); border-color:rgba(220,38,38,.25); background:rgba(220,38,38,.06); }
  .plat .platform-config-mode { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border-radius:999px; border:1px solid var(--line); color:var(--muted); font:700 9.5px 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.05em; text-transform:uppercase; }
  .plat.platform-config-editing { border-color:rgba(37,99,235,.35); box-shadow:0 0 0 2px rgba(37,99,235,.06); }
  .plat.platform-config-editing .platform-config-mode { color:var(--accent); border-color:rgba(37,99,235,.35); background:rgba(37,99,235,.06); }
  @media (max-width:700px) { .plat .platform-config-grid { grid-template-columns:1fr; } .plat .platform-config-grid .newbtn { width:100%; } }
  .plat .user-tools { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
  .plat .user-tools input { flex:1; min-width:230px; margin:0; }
  .plat .userrow { align-items:flex-start; }
  .plat .userrow > .user-main { flex:1; min-width:250px; }
  .plat .userrow .user-id { font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:9.5px; color:var(--muted); overflow-wrap:anywhere; }
  .plat .org-memberships { flex:1.4; min-width:300px; display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
  .plat .org-pill { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.75); font-size:10.5px; }
  .plat .org-pill small { color:var(--muted); font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:9px; text-transform:uppercase; }
  .plat .org-pill.warn { border-color:#d97706; background:#fff7ed; }
  .plat .org-pill.bad { border-color:var(--red); background:#fef2f2; }
  .plat .directory-note { padding:10px 12px; margin-bottom:12px; border-radius:9px; background:var(--accent-soft); color:var(--muted); font-size:11.5px; line-height:1.5; }
  .admin-stats { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:8px; margin:0 0 14px; }
  .admin-stat { border:1px solid var(--line); border-radius:10px; background:#fff; padding:10px 12px; }
  .admin-stat strong { display:block; font-family:'Syne',sans-serif; font-size:20px; line-height:1.1; }
  .admin-stat span { color:var(--muted); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; font-family:'IBM Plex Mono',ui-monospace,monospace; }
  .admin-toolbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
  .admin-toolbar .f { margin:0; min-width:220px; flex:1; }
  .admin-toolbar select { height:38px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); padding:0 32px 0 10px; font-family:inherit; }
  .admin-table { border:1px solid var(--line); border-radius:11px; background:#fff; overflow:hidden; }
  .admin-row { display:grid; align-items:center; gap:12px; min-height:52px; padding:9px 12px; border-bottom:1px solid var(--line); }
  .admin-row:last-child { border-bottom:none; }
  .admin-row.head { min-height:32px; background:rgba(15,23,42,.025); color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; font-family:'IBM Plex Mono',ui-monospace,monospace; }
  .admin-row.user-grid { grid-template-columns:minmax(220px,2fr) minmax(120px,.8fr) 80px 28px; }
  /* Organization details belong in the selected detail panel. Keep the fleet
     list to identity + health so it remains readable beside that panel. */
  .admin-row.org-grid { grid-template-columns:minmax(0,1fr) 105px 28px; }
  .admin-row.selectable { cursor:pointer; transition:background .12s ease; }
  .admin-row.selectable:hover, .admin-row.selectable.selected { background:var(--accent-soft); }
  .admin-primary { min-width:0; }
  .admin-primary strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
  .admin-primary small, .admin-cell small { display:block; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10.5px; }
  .org-grid .admin-primary strong { white-space:normal; overflow-wrap:anywhere; line-height:1.25; }
  .org-grid .admin-primary small { white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
  .admin-status { display:inline-flex; align-items:center; gap:6px; font-size:10.5px; white-space:nowrap; }
  .admin-status:before { content:''; width:7px; height:7px; border-radius:50%; background:var(--green); }
  .admin-status.warn:before { background:#d97706; }
  .admin-status.bad:before { background:var(--red); }
  .admin-chevron { color:var(--muted); font-size:18px; text-align:right; }
  .admin-split { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr); gap:12px; align-items:start; }
  .admin-detail { border:1px solid var(--line); border-radius:11px; background:#fff; padding:14px; position:sticky; top:12px; max-height:calc(100vh - 100px); overflow:auto; }
  .admin-detail h3 { margin:0; font:800 16px 'Syne',sans-serif; overflow-wrap:anywhere; }
  .admin-detail .detail-sub { color:var(--muted); font-size:11px; margin:4px 0 14px; overflow-wrap:anywhere; }
  .admin-detail .detail-actions { display:flex; gap:6px; flex-wrap:wrap; margin:12px 0; }
  /* Console row actions (directory listings, workspace requests, Actions tab) use the detail panel's
     buttons and the membership row's selects: one look for every console control (plan 2026-10-10-003). */
  .admin-detail button, .plat .detail-actions button { border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:7px; padding:7px 9px; font:700 9.5px 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
  .admin-detail button.primary, .plat .detail-actions button.primary { background:var(--accent); color:var(--on-accent,#fff); border-color:var(--accent); }
  .admin-detail button:disabled, .plat .detail-actions button:disabled { opacity:.55; cursor:default; }
  .admin-detail button.danger, .plat .detail-actions button.danger { color:var(--red); border-color:rgba(220,38,38,.35); }
  .membership-row { border-top:1px solid var(--line); padding:10px 0; }
  .membership-row:first-of-type { border-top:none; }
  .membership-row strong { display:block; font-size:12px; }
  .membership-row small { color:var(--muted); font-size:9.5px; }
  .membership-row .slug-line { display:flex; align-items:center; gap:8px; margin-top:4px; }
  .membership-row .slug-line code { color:var(--text); font-size:11px; overflow-wrap:anywhere; }
  .membership-row .slug-copy { border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--accent); padding:3px 8px; font-size:9px; font-weight:750; cursor:pointer; }
  .membership-controls { display:flex; gap:6px; margin-top:7px; }
  .membership-controls select { flex:1; min-width:0; height:32px; border:1px solid var(--line); border-radius:7px; background:#fff; padding:0 7px; }
  .plat .detail-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
  .plat .detail-actions select, .admin-detail .detail-actions select { min-width:0; max-width:100%; height:32px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--ink); padding:0 7px; font-family:inherit; font-size:12px; }
  .plat .detail-actions input.f { width:auto; height:32px; margin:0; padding:0 10px; border-radius:7px; font-size:12px; }
  .plat .detail-actions input[type="number"].f { width:76px; flex:0 0 76px; }
  .plat .detail-actions label.featured-toggle { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--ink); cursor:pointer; }
  .plat .detail-actions label.featured-toggle input { width:16px; height:16px; margin:0; accent-color:var(--accent); }
  .admin-pager { display:flex; justify-content:space-between; align-items:center; gap:8px; color:var(--muted); font-size:10.5px; margin-top:9px; }
  .admin-pager button { border:1px solid var(--line); background:#fff; border-radius:7px; padding:6px 10px; cursor:pointer; }
  .admin-pager button:disabled { opacity:.4; cursor:default; }
  .add-org-list { max-height:330px; overflow:auto; border:1px solid var(--line); border-radius:9px; margin:10px 0; }
  .add-org-row { display:grid; grid-template-columns:24px minmax(0,1fr) 105px; align-items:center; gap:8px; padding:8px 9px; border-bottom:1px solid var(--line); }
  .add-org-row:last-child { border-bottom:none; }
  .add-org-row label { min-width:0; font-size:11.5px; }
  .add-org-row label small { display:block; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .add-org-row select { width:100%; height:30px; border:1px solid var(--line); border-radius:7px; background:#fff; }
  .detail-form .f { margin-bottom:8px; }
  @media (max-width:900px) { .admin-split{grid-template-columns:1fr}.admin-detail{position:static;max-height:none}.admin-stats{grid-template-columns:repeat(2,1fr)} }
  @media (max-width:680px) { .admin-row.user-grid{grid-template-columns:minmax(0,1fr) 28px}.admin-row.org-grid{grid-template-columns:minmax(0,1fr) 28px}.admin-row.head{display:none}.admin-row .hide-small{display:none}.admin-stats{grid-template-columns:1fr 1fr} }

  /* ── Styled dialogs & toasts (replace the browser's native alert/confirm/prompt) ── */
  .modal-back { position:fixed; inset:0; background:rgba(15,23,42,.42); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
    display:none; align-items:center; justify-content:center; padding:20px; z-index:1000; opacity:0; transition:opacity .14s ease; }
  .modal-back.on { opacity:1; }
  .modal { width:430px; max-width:94vw; background:var(--card); border:1px solid var(--line); border-radius:14px;
    padding:24px 24px 20px; box-shadow:var(--shadow),0 24px 64px rgba(2,6,23,.24);
    transform:translateY(8px) scale(.985); transition:transform .14s ease; }
  .modal-back.on .modal { transform:none; }
  .modal h3 { font-family:'Syne',sans-serif; font-size:17px; font-weight:800; margin:0 0 8px; letter-spacing:-.01em; }
  .modal .m-body { font-size:13.5px; color:var(--muted); line-height:1.55; white-space:pre-line; margin:0 0 16px; }
  .modal input.f { margin-bottom:16px; }
  .modal-actions { display:flex; gap:8px; justify-content:flex-end; }
  .modal-actions button { padding:10px 18px; border-radius:9px; border:1px solid transparent; cursor:pointer;
    font-family:'IBM Plex Mono',ui-monospace,monospace; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
  .modal-actions .m-cancel { background:transparent; border-color:var(--line); color:var(--muted); }
  .modal-actions .m-cancel:hover { color:var(--ink); border-color:var(--muted); }
  .modal-actions .m-ok { background:var(--accent); border-color:var(--accent); color:var(--on-accent,#fff); }
  .modal-actions .m-ok.danger { background:var(--red); border-color:var(--red); }
  .modal-actions button:disabled { opacity:.55; cursor:default; }
  #toastWrap { position:fixed; right:18px; bottom:18px; display:flex; flex-direction:column; gap:8px; z-index:1100; }
  .toast { background:var(--card); border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:10px;
    padding:11px 14px; box-shadow:var(--shadow),0 10px 30px rgba(2,6,23,.14); font-size:13px; color:var(--ink);
    max-width:340px; line-height:1.45; opacity:0; transform:translateX(10px); transition:opacity .16s ease, transform .16s ease; }
  .toast.on { opacity:1; transform:none; }
  .toast.ok { border-left-color:var(--green); }
  .toast.err { border-left-color:var(--red); }
  @media (prefers-reduced-motion: reduce) { .modal-back, .modal, .toast { transition:none; } }
