/* ============================================================
   WIZARD ADS — Team & Access surface
   Workspace → Projects → content. Members · roles · the role ×
   resource matrix · shared-subscription seats & spend · audit.
   Inherits every token from styles.css / type.css. Class prefix
   `tm-`. Tabbed full-page workspace (sibling of Studio).
   ============================================================ */

.tm{ flex:1 1 auto; min-width:0; min-height:0; display:flex; flex-direction:column; overflow:hidden; }

/* ---- command bar ---- */
.tm-bar{ flex:0 0 auto; display:flex; align-items:flex-end; gap:20px; padding:20px 26px 17px;
  border-bottom:1px solid var(--line-soft); background:linear-gradient(180deg,rgba(255,255,255,.022),transparent); }
.tm-bar-id{ flex:1; min-width:0; }
.tm-eyebrow{ margin-bottom:9px; }
.tm-bar-id .t-sub{ margin-top:5px; max-width:62ch; }
.tm-bar-actions{ display:flex; align-items:center; gap:16px; flex:0 0 auto; }
.tm-bar-stat{ display:flex; flex-direction:column; align-items:flex-end; }
.tm-bs-v{ font-size:var(--fs-stat-1); font-weight:var(--fw-black); letter-spacing:-.02em; }
.tm-bs-v span{ font-size:var(--fs-base); color:var(--ink-4); font-weight:var(--fw-bold); }
.tm-bs-l{ font-size:var(--fs-label); font-weight:var(--fw-bold); color:var(--ink-3); text-transform:uppercase; letter-spacing:.05em; }
.tm-readonly{ display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--warn);
  background:rgba(255,180,84,.1); border:1px solid rgba(255,180,84,.28); border-radius:9px; padding:8px 12px; }

/* ---- shared buttons ---- */
.tm-btn-acc{ height:38px; padding:0 16px; border-radius:11px; background:var(--ai-grad); color:#fff;
  font-size:var(--fs-base); font-weight:var(--fw-black); display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  box-shadow:0 10px 26px -10px var(--ai-glow); transition:.2s var(--spring); }
.tm-btn-acc:hover{ transform:translateY(-1px); box-shadow:0 14px 32px -8px var(--ai-glow); }
.tm-btn-acc:disabled{ opacity:.4; pointer-events:none; box-shadow:none; }
.tm-btn-acc.full{ width:100%; justify-content:center; height:42px; }
.tm-btn-ghost{ height:36px; padding:0 13px; border-radius:10px; background:var(--panel-2); border:1px solid var(--line);
  font-size:var(--fs-base); font-weight:var(--fw-bold); color:var(--ink); transition:.16s var(--out); display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.tm-btn-ghost:hover{ background:var(--hover-2); border-color:var(--line-strong); }
.tm-btn-ghost:disabled{ opacity:.4; pointer-events:none; }
.tm-btn-ghost.full{ width:100%; justify-content:center; }

/* ---- tab strip ---- */
.tm-tabs{ flex:0 0 auto; display:flex; gap:3px; padding:10px 22px 0; border-bottom:1px solid var(--line-soft); overflow-x:auto; }
.tm-tab{ display:flex; align-items:center; gap:8px; height:40px; padding:0 14px; border-radius:10px 10px 0 0; color:var(--ink-3);
  font-size:var(--fs-base); font-weight:var(--fw-bold); white-space:nowrap; position:relative; transition:.16s var(--out); }
.tm-tab:hover{ color:var(--ink); background:var(--hover); }
.tm-tab.on{ color:#fff; }
.tm-tab.on::after{ content:''; position:absolute; left:10px; right:10px; bottom:-1px; height:2.5px; border-radius:3px; background:var(--acc); box-shadow:0 0 12px var(--acc-glow); }
.tm-tab.on svg{ color:var(--acc-2); filter:drop-shadow(0 0 6px var(--acc-glow)); }

.tm-scroll{ flex:1; overflow-y:auto; min-height:0; padding:24px 26px 36px; }

/* ============================================================  OVERVIEW  */
.tm-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px; }
.tm-kpi{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:16px 16px 15px; border-radius:16px; text-align:left;
  background:var(--glass); border:1px solid var(--line); transition:.2s var(--out); position:relative; overflow:hidden; }
.tm-kpi:hover{ transform:translateY(-2px); border-color:var(--line-strong); box-shadow:var(--shadow-soft); }
.tm-kpi-ic{ width:38px; height:38px; border-radius:11px; display:grid; place-items:center; border:1px solid; margin-bottom:8px; }
.tm-kpi-v{ font-size:var(--fs-stat-2); font-weight:var(--fw-black); letter-spacing:-.02em; line-height:1; }
.tm-kpi-l{ font-size:var(--fs-base); font-weight:var(--fw-bold); color:var(--ink-2); margin-top:5px; }
.tm-kpi-s{ font-size:var(--fs-label); font-weight:var(--fw-med); color:var(--ink-4); }

.tm-ov-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.tm-panel{ background:var(--glass); border:1px solid var(--line); border-radius:16px; padding:18px; box-shadow:inset 0 1px 0 rgba(255,255,255,.03); }
.tm-panel.span2{ grid-column:1 / -1; }
.tm-panel-h{ display:flex; align-items:center; gap:10px; margin-bottom:15px; }
.tm-panel-t{ font-size:var(--fs-panel); font-weight:var(--fw-black); letter-spacing:-.01em; }
.tm-panel-x{ margin-left:auto; font-size:var(--fs-label); font-weight:var(--fw-bold); color:var(--ink-4); text-transform:uppercase; letter-spacing:.05em; }
.tm-panel-link{ margin-left:auto; font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--acc-2); transition:.14s var(--out); }
.tm-panel-link:hover{ color:var(--acc-ink); }

.tm-dist-bar{ display:flex; height:14px; border-radius:8px; overflow:hidden; background:rgba(0,0,0,.3); gap:2px; }
.tm-dist-seg{ height:100%; transition:width .4s var(--out); min-width:5px; }
.tm-dist-legend{ display:flex; flex-wrap:wrap; gap:13px; margin-top:13px; }
.tm-dist-lg{ display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-sub); font-weight:var(--fw-med); color:var(--ink-2); }
.tm-dist-lg i{ width:9px; height:9px; border-radius:3px; }
.tm-dist-lg b{ color:var(--ink); font-weight:var(--fw-black); }
.tm-seatmeter{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft); }
.tm-sm-top{ display:flex; justify-content:space-between; font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--ink-3); margin-bottom:8px; }
.tm-sm-v{ color:var(--ink); }
.tm-sm-v span{ color:var(--ink-4); }
.tm-sm-bar{ height:7px; border-radius:5px; background:rgba(0,0,0,.32); overflow:hidden; }
.tm-sm-bar i{ display:block; height:100%; border-radius:5px; background:var(--ai-grad); box-shadow:0 0 12px var(--acc-glow); }

.tm-mini-audit{ display:flex; flex-direction:column; }
.tm-ma-row{ display:flex; align-items:center; gap:11px; padding:9px 0; border-bottom:1px solid var(--line-soft); }
.tm-ma-row:last-child{ border-bottom:none; }
.tm-ma-ic{ width:26px; height:26px; border-radius:8px; display:grid; place-items:center; flex:0 0 26px; }
.tm-ma-tx{ flex:1; font-size:var(--fs-sub); color:var(--ink-2); font-weight:var(--fw-med); line-height:1.4; }
.tm-ma-tx b{ color:var(--ink); font-weight:var(--fw-bold); }
.tm-ma-ts{ font-size:var(--fs-label); color:var(--ink-4); flex:0 0 auto; }
.ta-acc{ color:var(--acc-2); font-style:normal; font-weight:var(--fw-bold); }

.tm-ov-projects{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.tm-ovp{ display:flex; align-items:center; gap:11px; padding:11px 12px; border-radius:12px; background:var(--panel-2); border:1px solid var(--line); transition:.16s var(--out); }
.tm-ovp:hover{ border-color:var(--line-strong); transform:translateY(-1px); }
.tm-ovp-meta{ flex:1; min-width:0; }
.tm-ovp-n{ display:block; font-size:var(--fs-base); font-weight:var(--fw-bold); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-ovp-s{ display:flex; align-items:center; gap:6px; font-size:var(--fs-label); font-weight:var(--fw-med); color:var(--ink-3); margin-top:2px; }
.tm-ovp-s i{ width:6px; height:6px; border-radius:50%; }

/* ---- project code chip (shared) ---- */
.tm-pj-code{ display:grid; place-items:center; min-width:38px; height:38px; padding:0 7px; border-radius:10px; color:#fff;
  font-size:var(--fs-label); font-weight:var(--fw-black); letter-spacing:.04em; flex:0 0 auto;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25), 0 4px 14px -6px rgba(0,0,0,.6); text-shadow:0 1px 3px rgba(0,0,0,.4); }
.tm-pj-code.sm{ min-width:30px; height:30px; font-size:var(--fs-micro); border-radius:9px; }
.tm-pj-code.lg{ min-width:46px; height:46px; font-size:var(--fs-base); border-radius:12px; }
.tm-pj-dot{ display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:#fff; font-size:var(--fs-micro); font-weight:var(--fw-black);
  flex:0 0 30px; text-shadow:0 1px 2px rgba(0,0,0,.4); box-shadow:inset 0 1px 0 rgba(255,255,255,.2); }
.tm-pj-dot.sm{ width:24px; height:24px; border-radius:7px; flex:0 0 24px; }

/* ============================================================  MEMBERS  */
.tm-mb-tools{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.tm-search{ flex:1; max-width:360px; display:flex; align-items:center; gap:9px; height:40px; padding:0 13px;
  background:var(--well,rgba(0,0,0,.28)); border:1px solid var(--line); border-radius:11px; color:var(--ink-3); transition:.18s var(--out); }
.tm-search:focus-within{ border-color:var(--acc-line); box-shadow:0 0 0 3px var(--acc-soft); }
.tm-search input{ flex:1; background:none; border:none; outline:none; font-size:var(--fs-base); color:var(--ink); min-width:0; }
.tm-search input::placeholder{ color:var(--ink-4); }
.tm-mb-count{ margin-left:auto; font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--ink-3); }

.tm-table{ border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--glass); }
.tm-tr{ display:grid; grid-template-columns:minmax(0,1fr) 158px 96px 132px 128px 56px; align-items:center; gap:14px;
  padding:11px 16px; border-bottom:1px solid var(--line-soft); cursor:pointer; transition:background .14s var(--out); }
.tm-tr:last-child{ border-bottom:none; }
.tm-tr:not(.tm-th):hover{ background:var(--hover); }
.tm-th{ cursor:default; background:rgba(0,0,0,.2); padding-top:12px; padding-bottom:12px; }
.tm-th span{ font-size:var(--fs-label); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:.06em; color:var(--ink-4); }
.tm-c-name{ display:flex; align-items:center; gap:12px; min-width:0; }
.tm-name-meta{ min-width:0; }
.tm-name-meta .nm{ display:flex; align-items:center; gap:8px; font-size:var(--fs-body); font-weight:var(--fw-bold); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-name-meta .em{ display:block; font-size:var(--fs-label); color:var(--ink-3); font-weight:var(--fw-reg); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nm .you, .tm-dr-n .you, .tm-sp-n .you{ font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.04em; text-transform:uppercase; color:var(--ink-3);
  border:1px solid var(--line); border-radius:5px; padding:1px 5px; }
.tm-proj-chips{ display:flex; gap:5px; align-items:center; }
.tm-pchip{ display:grid; place-items:center; min-width:30px; height:22px; padding:0 6px; border-radius:6px; color:#fff;
  font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.03em; text-shadow:0 1px 2px rgba(0,0,0,.4); box-shadow:inset 0 1px 0 rgba(255,255,255,.2); }
.tm-pchip.more{ background:var(--panel-2); color:var(--ink-3); box-shadow:none; border:1px solid var(--line); }
.tm-none{ color:var(--ink-4); }
.tm-c-use{ display:flex; flex-direction:column; gap:2px; }
.tm-use-mini{ font-size:var(--fs-label); font-weight:var(--fw-bold); color:var(--ink-2); }
.tm-use-mini b{ color:var(--ink); font-weight:var(--fw-black); }
.tm-use-mini.dim{ color:var(--ink-4); font-weight:var(--fw-med); }
.tm-c-act{ display:flex; align-items:center; gap:8px; justify-content:flex-end; color:var(--ink-4); }
.tm-pres{ width:8px; height:8px; border-radius:50%; background:var(--ink-4); flex:0 0 8px; }
.tm-pres.on{ background:var(--good); box-shadow:0 0 7px rgba(70,217,160,.7); }

/* seat pill */
.tm-seat-pill{ display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:7px; border:1px solid;
  font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }

/* role menu — full preset+custom list, reuses settings .role-sel/.role-menu */
.tm-role-menu{ width:248px; }
.tm-role-menu.left{ right:auto; left:0; }
.tm-role-tag{ font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.04em; text-transform:uppercase; color:var(--vio);
  border:1px solid var(--vio-glow); border-radius:4px; padding:0 4px; margin-left:6px; }

/* ---- member drawer ---- */
.tm-drawer-scrim{ position:fixed; inset:0; z-index:300; background:rgba(4,5,9,.5); backdrop-filter:blur(3px); animation:ovFade .2s var(--out); }
.tm-drawer{ position:fixed; top:0; right:0; bottom:0; width:min(440px,94vw); z-index:301;
  background:var(--glass-3); border-left:1px solid var(--line-strong); box-shadow:var(--shadow-float);
  backdrop-filter:var(--blur-lg); -webkit-backdrop-filter:var(--blur-lg); display:flex; flex-direction:column;
  animation:drIn .26s var(--spring); }
@keyframes drIn{ from{ transform:translateX(30px); opacity:.6; } to{ transform:none; opacity:1; } }
.tm-dr{ display:flex; flex-direction:column; min-height:0; height:100%; }
.tm-dr-head{ flex:0 0 auto; display:flex; align-items:center; gap:13px; padding:20px 20px 18px; border-bottom:1px solid var(--line-soft); }
.tm-dr-id{ flex:1; min-width:0; }
.tm-dr-n{ display:flex; align-items:center; gap:8px; font-size:var(--fs-lg); font-weight:var(--fw-black); }
.tm-dr-e{ font-size:var(--fs-sub); color:var(--ink-3); font-weight:var(--fw-reg); margin-top:2px; }
.tm-dr-x{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; color:var(--ink-2); transition:.15s var(--out); flex:0 0 auto; }
.tm-dr-x:hover{ background:var(--hover); color:var(--ink); }
.tm-dr-body{ flex:1; overflow-y:auto; padding:18px 20px 24px; min-height:0; }
.tm-dr-sec{ margin-bottom:22px; }
.tm-dr-lbl{ font-size:var(--fs-label); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); margin-bottom:11px; display:flex; align-items:center; gap:8px; }
.tm-dr-sub{ color:var(--ink-4); font-weight:var(--fw-bold); }
.tm-dr-rowflex{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.tm-dr-hint{ font-size:var(--fs-label); color:var(--ink-4); font-weight:var(--fw-med); line-height:1.4; margin-top:8px; }

.tm-seat-toggle{ display:flex; gap:8px; }
.tm-seat-opt{ flex:1; display:flex; align-items:center; justify-content:center; gap:7px; height:40px; border-radius:11px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--ink-2); font-size:var(--fs-base); font-weight:var(--fw-bold); transition:.16s var(--out); }
.tm-seat-opt:hover:not(:disabled){ border-color:var(--line-strong); color:var(--ink); }
.tm-seat-opt.on{ background:var(--acc-soft); border-color:var(--acc-line); color:#fff; box-shadow:inset 0 0 0 1px var(--acc-line); }
.tm-seat-opt:disabled{ opacity:.5; }

.tm-spend{ display:flex; flex-direction:column; gap:11px; }
.tm-spend-row{ display:grid; grid-template-columns:88px 1fr 56px; align-items:center; gap:11px; }
.tm-sp-l{ font-size:var(--fs-sub); font-weight:var(--fw-med); color:var(--ink-3); }
.tm-sp-bar{ height:8px; border-radius:5px; background:rgba(0,0,0,.32); overflow:hidden; }
.tm-sp-bar i{ display:block; height:100%; border-radius:5px; }
.tm-sp-v{ font-size:var(--fs-sub); font-weight:var(--fw-black); text-align:right; font-family:'JetBrains Mono',monospace; }

.tm-assign-row{ display:flex; align-items:center; gap:11px; padding:9px 0; border-bottom:1px solid var(--line-soft); }
.tm-assign-row:last-of-type{ border-bottom:none; }
.tm-assign-meta{ flex:1; min-width:0; }
.tm-assign-n{ display:flex; align-items:center; gap:7px; font-size:var(--fs-base); font-weight:var(--fw-bold); }
.tm-lead{ font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.04em; text-transform:uppercase; color:var(--acc-2);
  background:var(--acc-soft); border:1px solid var(--acc-line); border-radius:5px; padding:1px 5px; }
.tm-assign-s{ font-size:var(--fs-label); color:var(--ink-3); font-weight:var(--fw-reg); margin-top:1px; }
.tm-assign-x{ width:28px; height:28px; border-radius:8px; display:grid; place-items:center; color:var(--ink-4); transition:.14s var(--out); flex:0 0 auto; }
.tm-assign-x:hover{ background:rgba(255,107,125,.12); color:var(--bad); }
.tm-assign-empty{ font-size:var(--fs-sub); color:var(--ink-4); font-weight:var(--fw-med); padding:6px 0; }
.tm-assign-add{ margin-top:12px; }
.tm-assign-pick{ display:flex; flex-direction:column; gap:4px; padding:6px; border:1px solid var(--line); border-radius:11px; background:var(--panel-2); }
.tm-assign-opt{ display:flex; align-items:center; gap:9px; padding:8px 9px; border-radius:8px; font-size:var(--fs-base); font-weight:var(--fw-med); color:var(--ink-2); text-align:left; transition:.14s var(--out); }
.tm-assign-opt:hover{ background:var(--hover); color:var(--ink); }
.tm-dr-remove{ width:100%; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; gap:8px;
  background:rgba(255,107,125,.08); border:1px solid rgba(255,107,125,.28); color:var(--bad); font-size:var(--fs-base); font-weight:var(--fw-bold); transition:.16s var(--out); }
.tm-dr-remove:hover{ background:rgba(255,107,125,.16); }

/* ============================================================  PROJECTS  */
.tm-pj-tools{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.tm-pj-legend{ display:flex; gap:14px; flex-wrap:wrap; }
.tm-pj-lg{ display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-sub); font-weight:var(--fw-med); color:var(--ink-3); }
.tm-pj-lg i{ width:8px; height:8px; border-radius:50%; }
.tm-pj-tools .tm-btn-acc{ margin-left:auto; }

.tm-pj-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.tm-pj-card{ position:relative; display:flex; flex-direction:column; padding:16px; border-radius:16px; overflow:hidden;
  background:var(--glass); border:1px solid var(--line); box-shadow:inset 0 1px 0 rgba(255,255,255,.03); transition:.2s var(--out); }
.tm-pj-card:hover{ transform:translateY(-3px); border-color:var(--line-strong); box-shadow:var(--shadow-soft); }
.tm-pj-bar{ position:absolute; top:0; left:0; right:0; height:3px; opacity:.9; }
.tm-pj-top{ display:flex; align-items:center; gap:10px; margin-bottom:13px; }
.tm-pj-status{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 10px; border-radius:7px; border:1px solid;
  font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.04em; text-transform:uppercase; }
.tm-pj-status i{ width:6px; height:6px; border-radius:50%; }
.tm-pj-name{ font-size:var(--fs-lg); font-weight:var(--fw-black); letter-spacing:-.01em; line-height:1.2; }
.tm-pj-lead{ display:flex; align-items:center; gap:7px; font-size:var(--fs-sub); color:var(--ink-3); font-weight:var(--fw-med); margin-top:9px; }
.tm-pj-counts{ display:flex; gap:14px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line-soft); }
.tm-pj-counts span{ font-size:var(--fs-label); color:var(--ink-3); font-weight:var(--fw-med); }
.tm-pj-counts b{ color:var(--ink); font-weight:var(--fw-black); font-size:var(--fs-base); margin-right:2px; }
.tm-pj-foot{ display:flex; align-items:center; gap:10px; margin-top:14px; }
.tm-pj-people{ display:flex; align-items:center; gap:9px; }
.tm-pj-cnt{ font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--ink-3); }
.tm-pj-manage{ margin-left:auto; display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 12px; border-radius:9px;
  background:var(--panel-2); border:1px solid var(--line); color:var(--ink-2); font-size:var(--fs-sub); font-weight:var(--fw-bold); transition:.16s var(--out); }
.tm-pj-manage:hover{ background:var(--acc-soft); border-color:var(--acc-line); color:#fff; }

/* ---- modal ---- */
.tm-modal-scrim{ position:fixed; inset:0; z-index:340; background:rgba(4,5,9,.62); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  display:grid; place-items:center; padding:clamp(14px,3vw,48px); animation:ovFade .2s var(--out); }
.tm-modal{ width:min(880px,100%); max-height:88vh; display:flex; flex-direction:column; overflow:hidden;
  background:var(--glass-3); border:1px solid var(--line-strong); border-radius:20px; box-shadow:var(--shadow-float);
  backdrop-filter:var(--blur-lg); -webkit-backdrop-filter:var(--blur-lg); }
@media (prefers-reduced-motion: no-preference){ .tm-modal{ animation:setPop .26s var(--spring); } }
.tm-modal.sm{ width:min(460px,100%); }
.tm-modal-head{ flex:0 0 auto; display:flex; align-items:center; gap:13px; padding:18px 20px; border-bottom:1px solid var(--line-soft); }
.tm-modal-id{ flex:1; min-width:0; }
.tm-modal-t{ font-size:var(--fs-lg); font-weight:var(--fw-black); }
.tm-modal-s{ display:flex; align-items:center; gap:8px; font-size:var(--fs-sub); color:var(--ink-3); font-weight:var(--fw-med); margin-top:3px; }
.tm-modal-statusrow{ flex:0 0 auto; display:flex; align-items:center; gap:14px; padding:13px 20px; border-bottom:1px solid var(--line-soft); }
.tm-status-seg{ display:flex; gap:3px; padding:3px; border-radius:10px; background:rgba(0,0,0,.28); border:1px solid var(--line); }
.tm-st-b{ height:28px; padding:0 12px; border-radius:7px; font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--ink-3); transition:.14s var(--out); }
.tm-st-b:hover{ color:var(--ink); }
.tm-st-b.on{ color:#fff; background:var(--lc,var(--acc)); box-shadow:0 3px 12px -4px var(--lc,var(--acc-glow)); }
.tm-modal-body{ flex:1; overflow-y:auto; min-height:0; display:grid; grid-template-columns:1fr 1fr; }
.tm-modal-col{ padding:18px 20px; min-width:0; }
.tm-modal-col.add{ border-left:1px solid var(--line-soft); background:rgba(0,0,0,.14); }
.tm-modal-list{ display:flex; flex-direction:column; }
.tm-modal-list.pick{ gap:4px; }
.tm-people-row{ display:flex; align-items:center; gap:11px; padding:10px 0; border-bottom:1px solid var(--line-soft); position:relative; }
.tm-people-row:last-child{ border-bottom:none; }
.tm-people-meta{ flex:1; min-width:0; }
.tm-people-n{ display:flex; align-items:center; gap:7px; font-size:var(--fs-base); font-weight:var(--fw-bold); }
.tm-people-s{ font-size:var(--fs-label); color:var(--ink-3); font-weight:var(--fw-reg); margin-top:1px; }
.tm-people-act{ position:relative; display:flex; gap:5px; }
.tm-mini-btn{ width:28px; height:28px; border-radius:8px; display:grid; place-items:center; color:var(--ink-3); background:var(--panel-2); border:1px solid var(--line); transition:.14s var(--out); }
.tm-mini-btn:hover{ background:var(--hover-2); color:var(--ink); }
.tm-mini-btn.danger:hover{ background:rgba(255,107,125,.14); color:var(--bad); border-color:rgba(255,107,125,.3); }
.tm-move-menu{ position:absolute; top:calc(100% + 6px); right:0; width:230px; z-index:20; padding:6px;
  background:var(--glass-3); border:1px solid var(--line-strong); border-radius:12px; box-shadow:var(--shadow-pop);
  backdrop-filter:var(--blur-lg); animation:pop .16s var(--spring); }
.tm-move-h{ font-size:var(--fs-eyebrow); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:.06em; color:var(--ink-4); padding:5px 8px 7px; }
.tm-move-opt{ display:flex; align-items:center; gap:9px; width:100%; padding:8px 9px; border-radius:8px; font-size:var(--fs-sub); font-weight:var(--fw-med); color:var(--ink-2); text-align:left; transition:.14s var(--out); }
.tm-move-opt:hover{ background:var(--hover); color:var(--ink); }
.tm-pick-row{ display:flex; align-items:center; gap:10px; padding:8px 9px; border-radius:10px; border:1px solid transparent; text-align:left; transition:.14s var(--out); }
.tm-pick-row:hover{ background:var(--hover); }
.tm-pick-row.on{ background:var(--acc-soft); border-color:var(--acc-line); }
.tm-check{ width:18px; height:18px; border-radius:6px; border:1.5px solid var(--line-strong); display:grid; place-items:center; color:#fff; flex:0 0 18px; transition:.14s var(--out); }
.tm-check.on{ background:var(--acc); border-color:var(--acc); box-shadow:0 0 10px var(--acc-glow); }
.tm-pick-n{ flex:1; font-size:var(--fs-base); font-weight:var(--fw-bold); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-bulk-bar{ display:flex; align-items:center; gap:10px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line-soft); }
.tm-bulk-lbl{ font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--ink-3); }
.tm-bulk-bar .tm-btn-acc{ margin-left:auto; }

/* new project form */
.tm-modal-form{ padding:20px; display:flex; flex-direction:column; gap:16px; }
.tm-fld{ display:flex; flex-direction:column; gap:8px; }
.tm-fld label{ font-size:var(--fs-sub); font-weight:var(--fw-bold); color:var(--ink-2); }
.tm-input{ height:44px; border-radius:11px; background:var(--well,rgba(0,0,0,.28)); border:1px solid var(--line); display:flex; align-items:center; gap:9px; padding:0 13px; transition:.16s var(--out); }
.tm-input:focus-within{ border-color:var(--acc-line); box-shadow:0 0 0 3px var(--acc-soft); }
.tm-input svg{ color:var(--ink-3); flex:0 0 auto; }
.tm-input input{ flex:1; background:none; border:none; outline:none; font-size:var(--fs-body); color:var(--ink); min-width:0; }
.tm-input input::placeholder{ color:var(--ink-4); }
.tm-lead-pick{ display:flex; gap:8px; flex-wrap:wrap; }
.tm-lead-opt{ border-radius:50%; padding:2px; border:2px solid transparent; transition:.14s var(--out); }
.tm-lead-opt:hover{ border-color:var(--line-strong); }
.tm-lead-opt.on{ border-color:var(--acc); box-shadow:0 0 14px -3px var(--acc-glow); }

/* ============================================================  ROLES MATRIX  */
.tm-roles{ display:grid; grid-template-columns:262px 1fr; gap:16px; align-items:start; }
.tm-rolelist{ background:var(--glass); border:1px solid var(--line); border-radius:15px; padding:10px; position:sticky; top:0; }
.tm-rl-sec{ display:flex; align-items:center; gap:8px; font-size:var(--fs-label); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:.06em; color:var(--ink-4); padding:10px 9px 8px; }
.tm-rl-ct{ margin-left:auto; color:var(--ink-3); }
.tm-rl-row{ display:flex; align-items:center; gap:10px; width:100%; padding:9px 9px; border-radius:11px; text-align:left; transition:.14s var(--out); }
.tm-rl-row:hover{ background:var(--hover); }
.tm-rl-row.on{ background:var(--acc-soft); box-shadow:inset 0 0 0 1px var(--acc-line); }
.tm-rl-dot{ width:9px; height:9px; border-radius:50%; flex:0 0 9px; }
.tm-rl-meta{ flex:1; min-width:0; }
.tm-rl-n{ display:block; font-size:var(--fs-base); font-weight:var(--fw-bold); }
.tm-rl-s{ display:block; font-size:var(--fs-label); color:var(--ink-3); font-weight:var(--fw-med); margin-top:1px; }
.tm-rl-bars{ display:flex; flex-direction:column; gap:2px; align-items:flex-end; flex:0 0 auto; }
.tm-rl-bars i{ height:3px; border-radius:2px; min-width:4px; opacity:.85; }
.tm-rl-row svg{ color:var(--ink-4); flex:0 0 auto; }
.tm-rl-empty{ font-size:var(--fs-sub); color:var(--ink-4); font-weight:var(--fw-med); padding:6px 9px 10px; }
.tm-rl-new{ display:flex; align-items:center; gap:8px; width:100%; margin-top:6px; padding:10px; border-radius:11px;
  border:1px dashed var(--line-strong); color:var(--ink-2); font-size:var(--fs-base); font-weight:var(--fw-bold); justify-content:center; transition:.14s var(--out); }
.tm-rl-new:hover{ border-color:var(--acc-line); color:var(--acc-2); background:var(--acc-soft); }

.tm-matrix{ background:var(--glass); border:1px solid var(--line); border-radius:15px; overflow:hidden; }
.tm-mx-head{ display:flex; align-items:center; gap:14px; padding:18px 20px; border-bottom:1px solid var(--line-soft); }
.tm-mx-id{ display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
.tm-mx-dot{ width:14px; height:14px; border-radius:50%; flex:0 0 14px; }
.tm-mx-meta{ min-width:0; }
.tm-mx-name{ display:flex; align-items:center; gap:9px; font-size:var(--fs-lg); font-weight:var(--fw-black); }
.tm-sys{ font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.05em; text-transform:uppercase; color:var(--ink-4); border:1px solid var(--line); border-radius:5px; padding:1px 6px; }
.tm-mx-name-inp{ background:rgba(0,0,0,.28); border:1px solid var(--line); border-radius:8px; padding:5px 10px; font-size:var(--fs-lg); font-weight:var(--fw-black); color:var(--ink); outline:none; }
.tm-mx-name-inp:focus{ border-color:var(--acc-line); box-shadow:0 0 0 3px var(--acc-soft); }
.tm-mx-desc{ font-size:var(--fs-sub); color:var(--ink-3); font-weight:var(--fw-med); margin-top:3px; }
.tm-mx-actions{ display:flex; align-items:center; gap:9px; flex:0 0 auto; }
.tm-x-del{ width:36px; height:36px; border-radius:10px; display:grid; place-items:center; color:var(--ink-4); border:1px solid var(--line); transition:.14s var(--out); }
.tm-x-del:hover{ background:rgba(255,107,125,.12); color:var(--bad); border-color:rgba(255,107,125,.3); }
.tm-mx-note{ display:flex; align-items:center; gap:9px; padding:10px 20px; font-size:var(--fs-sub); font-weight:var(--fw-med); color:var(--ink-3);
  background:rgba(255,180,84,.06); border-bottom:1px solid var(--line-soft); }
.tm-mx-note svg{ color:var(--warn); }
.tm-mx-legend{ display:flex; gap:16px; padding:12px 20px; border-bottom:1px solid var(--line-soft); }
.tm-lg{ display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-label); font-weight:var(--fw-bold); color:var(--ink-3); }
.tm-lg i{ width:10px; height:10px; border-radius:3px; }
.tm-mx-body{ padding:8px 20px 18px; }
.tm-mx-group{ margin-top:12px; }
.tm-mx-gh{ font-size:var(--fs-label); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:.07em; color:var(--ink-4); padding:10px 0 6px; }
.tm-mx-row{ display:flex; align-items:center; gap:13px; padding:9px 0; border-bottom:1px solid var(--line-soft); }
.tm-mx-row:last-child{ border-bottom:none; }
.tm-mx-ic{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; color:var(--ink-2); background:var(--panel-2); border:1px solid var(--line); flex:0 0 34px; }
.tm-mx-ic.admin{ color:var(--vio); border-color:var(--vio-glow); background:rgba(139,125,255,.1); }
.tm-mx-rmeta{ flex:1; min-width:0; }
.tm-mx-rn{ display:flex; align-items:center; gap:8px; font-size:var(--fs-base); font-weight:var(--fw-bold); }
.tm-adm{ font-size:var(--fs-micro); font-weight:var(--fw-black); letter-spacing:.04em; text-transform:uppercase; color:var(--vio); border:1px solid var(--vio-glow); border-radius:4px; padding:0 4px; }
.tm-mx-rd{ font-size:var(--fs-label); color:var(--ink-4); font-weight:var(--fw-med); margin-top:1px; }

/* access segmented control (matrix cell) */
.tm-seg{ display:flex; gap:2px; padding:3px; border-radius:9px; background:rgba(0,0,0,.3); border:1px solid var(--line); flex:0 0 auto; }
.tm-seg.ro{ opacity:.92; }
.tm-seg-b{ min-width:46px; height:26px; padding:0 8px; border-radius:6px; font-size:var(--fs-label); font-weight:var(--fw-bold); color:var(--ink-4); transition:.14s var(--out); }
.tm-seg-b:hover:not(:disabled):not(.on){ color:var(--ink-2); background:var(--hover); }
.tm-seg-b.on{ color:#06121a; background:var(--lc,var(--acc)); box-shadow:0 2px 10px -3px var(--lc,var(--acc-glow)); }
.tm-seg-b:disabled{ cursor:default; }
.tm-seg.ro .tm-seg-b:not(.on){ opacity:.5; }

/* ============================================================  SEATS & SPEND  */
.tm-seat-hero{ display:flex; gap:20px; padding:20px; border-radius:16px; margin-bottom:18px;
  background:linear-gradient(135deg,rgba(22,192,216,.14),rgba(46,211,198,.06)); border:1px solid var(--acc-line); }
.tm-sh-left{ flex:0 0 auto; min-width:160px; display:flex; flex-direction:column; gap:6px; }
.tm-sh-plan{ font-size:var(--fs-stat-1); font-weight:var(--fw-black); }
.tm-sh-price{ font-size:var(--fs-base); color:var(--ink-2); font-weight:var(--fw-med); }
.tm-sh-price b{ color:var(--ink); font-size:var(--fs-panel); }
.tm-sh-left .tm-btn-ghost{ margin-top:8px; align-self:flex-start; }
.tm-sh-meters{ flex:1; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; align-content:center; border-left:1px solid var(--line); padding-left:20px; }
.tm-shm-l{ font-size:var(--fs-label); font-weight:var(--fw-bold); color:var(--ink-3); text-transform:uppercase; letter-spacing:.04em; }
.tm-shm-v{ font-size:var(--fs-lg); font-weight:var(--fw-black); margin-top:5px; }
.tm-shm-v span{ font-size:var(--fs-sub); color:var(--ink-4); font-weight:var(--fw-bold); }
.tm-shm-bar{ height:6px; border-radius:4px; background:rgba(0,0,0,.32); margin-top:8px; overflow:hidden; }
.tm-shm-bar i{ display:block; height:100%; border-radius:4px; background:var(--ai-grad); box-shadow:0 0 10px var(--acc-glow); }

.tm-spend-table{ display:flex; flex-direction:column; }
.tm-sp-tr{ display:grid; grid-template-columns:minmax(0,1.4fr) 110px 1.2fr 80px 96px 92px; align-items:center; gap:14px; padding:11px 4px; border-bottom:1px solid var(--line-soft); }
.tm-sp-tr:last-child{ border-bottom:none; }
.tm-sp-th span{ font-size:var(--fs-label); font-weight:var(--fw-black); text-transform:uppercase; letter-spacing:.06em; color:var(--ink-4); }
.tm-sp-m{ display:flex; align-items:center; gap:11px; min-width:0; }
.tm-sp-n{ display:flex; align-items:center; gap:7px; font-size:var(--fs-base); font-weight:var(--fw-bold); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tm-sp-gen{ display:flex; align-items:center; gap:10px; }
.tm-sp-bar2{ flex:1; height:8px; border-radius:5px; background:rgba(0,0,0,.32); overflow:hidden; }
.tm-sp-bar2 i{ display:block; height:100%; border-radius:5px; background:var(--ai-grad); box-shadow:0 0 10px var(--acc-glow); }
.tm-sp-gen b{ font-size:var(--fs-base); font-weight:var(--fw-black); font-family:'JetBrains Mono',monospace; min-width:34px; text-align:right; }
.tm-sp-last{ font-size:var(--fs-sub); color:var(--ink-3); font-weight:var(--fw-med); }

/* ============================================================  AUDIT  */
.tm-audit-list{ display:flex; flex-direction:column; }
.tm-au-row{ display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--line-soft); }
.tm-au-row:last-child{ border-bottom:none; }
.tm-au-ic{ width:32px; height:32px; border-radius:10px; display:grid; place-items:center; border:1px solid; flex:0 0 32px; }
.tm-au-tx{ flex:1; font-size:var(--fs-base); color:var(--ink-2); font-weight:var(--fw-med); line-height:1.45; }
.tm-au-tx b{ color:var(--ink); font-weight:var(--fw-bold); }
.tm-au-ts{ font-size:var(--fs-label); color:var(--ink-4); flex:0 0 auto; white-space:nowrap; }

/* ============================================================  RESPONSIVE  */
@media (max-width:1180px){
  .tm-kpis{ grid-template-columns:repeat(2,1fr); }
  .tm-ov-grid{ grid-template-columns:1fr; }
  .tm-ov-projects{ grid-template-columns:1fr; }
  .tm-roles{ grid-template-columns:1fr; }
  .tm-rolelist{ position:static; }
  .tm-sh-meters{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .tm-modal-body{ grid-template-columns:1fr; }
  .tm-modal-col.add{ border-left:none; border-top:1px solid var(--line-soft); }
  .tm-tr{ grid-template-columns:minmax(0,1fr) 140px 84px; }
  .tm-c-proj, .tm-c-use, .tm-th .tm-c-proj, .tm-th .tm-c-use{ display:none; }
  .tm-sp-tr{ grid-template-columns:minmax(0,1.4fr) 96px 1fr 70px; }
  .tm-sp-tr span:nth-child(5), .tm-sp-tr span:nth-child(6){ display:none; }
}
