/* ============================================================
   TOOL — RACI matrix builder  (productivity/raci.html)
   Toolbar, menus and dialogs come from tool-timeline.css.
   ============================================================ */
body[data-section="productivity"]{
  --rA-bg:#1B1B1F; --rA-fg:#F0EDE6;
  --rR-bg:#5C4D7D; --rR-fg:#FFFFFF;
  --rAR-bg:#3E3459; --rAR-fg:#FFFFFF;
  --rS-bg:#E9D9A8; --rS-fg:#5A4507;
  --rC-bg:#D5E8DC; --rC-fg:#1F5139;
  --rI-bg:#E7E2D6; --rI-fg:#4A4A4C;
  --bad:#C2463D; --good:#2F6B4F;
}
@media (prefers-color-scheme: dark){
  body[data-section="productivity"]{
    --rA-bg:#ECE8DF; --rA-fg:#141417; --rR-bg:#8C7BC0; --rR-fg:#FFFFFF; --rAR-bg:#B4A2DE; --rAR-fg:#141417;
    --rS-bg:#4A3E1A; --rS-fg:#F0D78A; --rC-bg:#1D3A2B; --rC-fg:#8FD6AE; --rI-bg:#2A2A30; --rI-fg:#B8B4AA;
    --bad:#EC8572; --good:#6BC497;
  }
}
.rc input, .rc select, .rc textarea{ font:inherit; color:inherit; }
.rc-focus{ display:flex; align-items:center; gap:.45rem; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }
.rc-focus select{ font-family:var(--f-body) !important; font-size:.85rem !important; letter-spacing:0; text-transform:none; border:1px solid var(--line); background:var(--paper); padding:.35rem .4rem; max-width:11rem; }
.rc-file{ cursor:pointer; }
.rc-file input{ position:absolute; width:1px; height:1px; opacity:0; }

/* ---------- grid ---------- */
.rc-scroll{ position:relative; overflow:auto; margin-top:1.2rem; border:1px solid var(--ink); max-height:78vh; overscroll-behavior:contain; }
.rc-grid{ border-collapse:separate; border-spacing:0; width:max-content; min-width:100%; font-size:.92rem; }
.rc-grid th, .rc-grid td{ border-bottom:1px solid var(--line); border-right:1px solid var(--line); padding:0; background:var(--paper); }
.rc-grid thead th{ position:sticky; top:0; z-index:3; background:var(--paper-2); border-bottom:1px solid var(--ink); vertical-align:bottom; }
.rc-grid .rc-c0{ position:sticky; left:0; z-index:2; text-align:left; min-width:15rem; width:24rem; max-width:24rem; box-shadow:1px 0 0 var(--ink); }
.rc-grid thead .rc-c0{ z-index:4; }
.rc-th-k{ display:block; padding:.6rem .7rem; font-family:var(--f-mono); font-size:.62rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.rc-role{ width:6.4rem; min-width:6.4rem; max-width:6.4rem; }
.rc-rname{ display:block; width:100%; border:0; background:transparent; resize:none; text-align:center; font-family:var(--f-display) !important; font-weight:600; font-size:.82rem !important; line-height:1.2; padding:.6rem .35rem .2rem; height:3.1rem; overflow:hidden; }
.rc-rname:focus{ outline:0; background:var(--paper); box-shadow:inset 0 -2px 0 var(--accent); }
.rc-rtools{ display:flex; justify-content:center; gap:.1rem; padding:0 0 .3rem; opacity:0; transition:opacity .12s; }
.rc-role:hover .rc-rtools, .rc-role:focus-within .rc-rtools{ opacity:1; }
@media (hover:none){ .rc-rtools{ opacity:.7; } }
body[data-section="productivity"] .rc-rtools button{ width:1.5rem; height:1.4rem; font-size:.8rem; color:var(--ink-soft); }
body[data-section="productivity"] .rc-rtools button:hover{ color:var(--accent); background:var(--paper); }
body[data-section="productivity"] .rc-rtools button:disabled{ opacity:.25; cursor:default; background:none; }
body[data-section="productivity"] .rc-rtools button[data-rdel]:hover{ color:var(--bad); }

.rc-in{ display:flex; align-items:center; min-height:2.35rem; }
.rc-grid tbody th{ font-weight:400; }
.rc-drag{ cursor:grab; touch-action:none; user-select:none; color:var(--line); padding:0 .25rem 0 .4rem; font-size:.8rem; letter-spacing:-.2em; align-self:stretch; display:flex; align-items:center; }
.rc-drag:hover{ color:var(--accent); }
tr.dragging th, tr.dragging td{ background:var(--accent-soft) !important; opacity:.7; }
.rc-dropline{ position:absolute; left:0; right:0; height:2px; background:var(--accent); z-index:6; pointer-events:none; }
.rc-no{ font-family:var(--f-mono); font-size:.7rem; color:var(--ink-soft); width:1.7rem; flex:none; }
.rc-tname{ flex:1; min-width:0; border:0; background:transparent; padding:.55rem .6rem .55rem 0; font-size:.92rem !important; }
.rc-tname:focus{ outline:0; box-shadow:inset 0 -2px 0 var(--accent); }
.rc-head th{ background:var(--accent-soft) !important; }
.rc-head th[scope="rowgroup"]{ text-align:left; }
.rc-head .rc-in{ position:sticky; left:0; width:max-content; min-width:15rem; min-height:2rem; }
.rc-head td{ background:var(--accent-soft) !important; }
.rc-hname{ font-family:var(--f-mono) !important; font-size:.7rem !important; letter-spacing:.12em; text-transform:uppercase; font-weight:500; color:var(--accent-text, var(--accent)); padding-left:.5rem; }

body[data-section="productivity"] .rc-cell{ display:block; width:100%; height:2.35rem; font-family:var(--f-display); font-weight:700; font-size:.88rem; letter-spacing:.02em; transition:background .1s; }
body[data-section="productivity"] .rc-cell:hover{ background:var(--paper-2); }
body[data-section="productivity"] .rc-cell:focus-visible{ outline:2px solid var(--accent); outline-offset:-3px; }
.rc-cell[data-v="R"]{ background:var(--rR-bg) !important; color:var(--rR-fg); }
.rc-cell[data-v="A"]{ background:var(--rA-bg) !important; color:var(--rA-fg); }
.rc-cell[data-v="AR"]{ background:var(--rAR-bg) !important; color:var(--rAR-fg); }
.rc-cell[data-v^="S"], .rc-cell[data-v="AS"], .rc-cell[data-v="RS"]{ background:var(--rS-bg) !important; color:var(--rS-fg); }
.rc-cell[data-v^="C"]{ background:var(--rC-bg) !important; color:var(--rC-fg); }
.rc-cell[data-v="I"]{ background:var(--rI-bg) !important; color:var(--rI-fg); }
.rc-cell[data-v^="A"]:not([data-v="A"]):not([data-v="AR"]){ background:var(--rA-bg) !important; color:var(--rA-fg); }
.rc-cell[data-v^="R"]:not([data-v="R"]){ background:var(--rR-bg) !important; color:var(--rR-fg); }
.rc-cell.pop{ animation:rc-pop .18s ease; }
@keyframes rc-pop{ from{ transform:scale(.86); } to{ transform:none; } }
@media (prefers-reduced-motion: reduce){ .rc-cell.pop{ animation:none; } }

.rc-grid.has-focus tbody td:not(.focus):not(.rc-chk):not(.rc-x) .rc-cell{ opacity:.28; }
.rc-grid.has-focus thead th.rc-role:not(.focus){ opacity:.45; }
.rc-grid th.focus{ box-shadow:inset 0 -3px 0 var(--accent); }

.rc-chk{ width:5.6rem; min-width:5.6rem; text-align:center; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; }
.rc-chk .ok{ color:var(--good); }
.rc-chk .bad{ color:var(--bad); font-weight:500; }
.rc-chk .bad::before{ content:"● "; }
.rc-x{ width:2.2rem; text-align:center; border-right:0 !important; }
body[data-section="productivity"] .rc-x button{ width:2.2rem; height:2.35rem; color:var(--ink-soft); opacity:0; }
.rc-grid tr:hover .rc-x button, body[data-section="productivity"] .rc-x button:focus-visible{ opacity:1; }
@media (hover:none){ body[data-section="productivity"] .rc-x button{ opacity:.6; } }
body[data-section="productivity"] .rc-x button:hover{ color:var(--bad); }
.rc-grid tfoot th, .rc-grid tfoot td{ position:sticky; bottom:0; z-index:2; background:var(--paper-2); border-top:1px solid var(--ink); border-bottom:0; }
.rc-grid tfoot .rc-c0{ z-index:4; }
.rc-load{ text-align:center; padding:.4rem .2rem !important; font-family:var(--f-mono); font-size:.64rem; }
.rc-load span{ display:inline-block; margin:.05rem .12rem; padding:0 .25rem; }
.rc-load span[data-v="A"]{ background:var(--rA-bg); color:var(--rA-fg); }
.rc-load span[data-v="R"]{ background:var(--rR-bg); color:var(--rR-fg); }
.rc-load span[data-v="S"]{ background:var(--rS-bg); color:var(--rS-fg); }
.rc-load span[data-v="C"]{ background:var(--rC-bg); color:var(--rC-fg); }
.rc-load span[data-v="I"]{ background:var(--rI-bg); color:var(--rI-fg); }
.rc-load .none{ color:var(--ink-soft); }

.rc-tip{ font-size:.82rem; color:var(--ink-soft); margin:.7rem 0 0; }
.rc-tip kbd{ font-family:var(--f-mono); font-size:.7rem; border:1px solid var(--line); padding:0 .3rem; background:var(--paper-2); }
body:not(.rc-rasci) .rasci-only{ display:none; }

/* ---------- below the grid ---------- */
.rc-cols{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:2.5rem; margin-top:2.6rem; }
.rc-roles{ display:grid; grid-template-columns:repeat(auto-fill,minmax(15rem,1fr)); gap:1rem 1.5rem; }
.rc-role-card h3{ font-family:var(--f-display); font-weight:600; font-size:1rem; margin:0 0 .3rem; }
.rc-role-card p{ font-size:.86rem; margin:.15rem 0; color:var(--ink-soft); }
.rc-role-card p b{ font-family:var(--f-mono); font-weight:500; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-text, var(--accent)); margin-right:.3rem; }
.rc-role-card .none{ font-style:italic; }
.rc-key{ margin:0; display:grid; gap:.7rem; }
.rc-key dt{ display:flex; align-items:center; gap:.6rem; font-family:var(--f-display); font-weight:600; font-size:.95rem; }
.rc-key dd{ margin:.15rem 0 0 3rem; font-size:.86rem; color:var(--ink-soft); }
.rc-chip{ display:inline-grid; place-items:center; min-width:2.4rem; height:1.6rem; font-family:var(--f-display); font-weight:700; font-size:.8rem; }
.rc-chip[data-v="R"]{ background:var(--rR-bg); color:var(--rR-fg); } .rc-chip[data-v="A"]{ background:var(--rA-bg); color:var(--rA-fg); }
.rc-chip[data-v="AR"]{ background:var(--rAR-bg); color:var(--rAR-fg); } .rc-chip[data-v="S"]{ background:var(--rS-bg); color:var(--rS-fg); }
.rc-chip[data-v="C"]{ background:var(--rC-bg); color:var(--rC-fg); } .rc-chip[data-v="I"]{ background:var(--rI-bg); color:var(--rI-fg); }

@media (max-width:860px){ .rc-cols{ grid-template-columns:1fr; } }
@media (max-width:600px){
  .rc-grid .rc-c0{ min-width:10rem; width:11rem; max-width:11rem; }
  .rc-role{ width:5rem; min-width:5rem; max-width:5rem; }
  .rc-rname{ font-size:.74rem !important; }
  .rc-tname{ font-size:.86rem !important; }
  .rc-chk{ width:4.4rem; min-width:4.4rem; }
  .rc-scroll{ margin-left:-6vw; margin-right:-6vw; border-left:0; border-right:0; max-height:70vh; }
  .rc-focus span{ display:none; }
}
@media print{
  .tl-bar, .tool-nav, .tool-pager, .rc-tip, .rc-x, .rc-drag, .rc-rtools{ display:none !important; }
  .rc-scroll{ max-height:none; overflow:visible; }
}
