/* ITAuditgo — UnifiedAudit design language (tokens extracted from the product family). */
:root {
  --ap-bg:#F6F8FB; --ap-surface:#FFFFFF; --ap-surface-muted:#F8FAFC; --ap-surface-hover:#F1F5F9;
  --ap-card:#FFFFFF; --ap-overlay:rgba(15,23,42,0.5);
  --ap-border:#E2E8F0; --ap-border-light:#CBD5E1; --ap-border-strong:#94A3B8;
  --ap-text:#0F172A; --ap-text-secondary:#475569; --ap-text-muted:#94A3B8; --ap-text-subtle:#64748B; --ap-text-on-accent:#FFFFFF;
  --ap-accent:#2563EB; --ap-accent-hover:#1D4ED8; --ap-accent-subtle:#EFF6FF; --ap-accent-border:#BFDBFE;
  --ap-success:#059669; --ap-success-text:#065F46; --ap-success-subtle:#ECFDF5; --ap-success-border:#A7F3D0;
  --ap-warning:#D97706; --ap-warning-text:#92400E; --ap-warning-subtle:#FFFBEB; --ap-warning-border:#FDE68A;
  --ap-danger:#DC2626; --ap-danger-text:#991B1B; --ap-danger-subtle:#FEF2F2; --ap-danger-border:#FECACA;
  --ap-info:#4F46E5; --ap-info-subtle:#EEF2FF; --ap-info-border:#C7D2FE;
  --ap-critical:#DC2626; --ap-high:#EA580C; --ap-medium:#D97706; --ap-low:#059669;
  --ap-sidebar:#1B2D4F; --ap-sidebar-text:#E2E8F0; --ap-sidebar-muted:#94A3B8; --ap-sidebar-hover:rgba(255,255,255,0.06);
  --ap-sidebar-active:rgba(96,165,250,0.18); --ap-sidebar-active-text:#FFFFFF; --ap-sidebar-border:#243154;
  --ap-brand-amber:#E07B30;
  --ap-shadow-sm:0 1px 2px rgba(15,23,42,0.06); --ap-shadow-md:0 4px 12px rgba(15,23,42,0.08); --ap-shadow-lg:0 24px 64px rgba(15,23,42,0.20);
}
[data-theme='dark'] {
  --ap-bg:#0B1220; --ap-surface:#111A2E; --ap-surface-muted:#0F1A2F; --ap-surface-hover:#1A2440;
  --ap-card:#141E36; --ap-overlay:rgba(0,0,0,0.65);
  --ap-border:#243154; --ap-border-light:#2E3D63; --ap-border-strong:#3E4F75;
  --ap-text:#F1F5F9; --ap-text-secondary:#CBD5E1; --ap-text-muted:#94A3B8; --ap-text-subtle:#94A3B8;
  --ap-accent:#3B82F6; --ap-accent-hover:#60A5FA; --ap-accent-subtle:rgba(59,130,246,0.14); --ap-accent-border:rgba(59,130,246,0.40);
  --ap-success:#10B981; --ap-success-text:#6EE7B7; --ap-success-subtle:rgba(16,185,129,0.12); --ap-success-border:rgba(16,185,129,0.35);
  --ap-warning:#F59E0B; --ap-warning-text:#FCD34D; --ap-warning-subtle:rgba(245,158,11,0.12); --ap-warning-border:rgba(245,158,11,0.35);
  --ap-danger:#EF4444; --ap-danger-text:#FCA5A5; --ap-danger-subtle:rgba(239,68,68,0.12); --ap-danger-border:rgba(239,68,68,0.35);
  --ap-info:#818CF8; --ap-info-subtle:rgba(129,140,248,0.14); --ap-info-border:rgba(129,140,248,0.40);
  --ap-critical:#EF4444; --ap-high:#F97316; --ap-medium:#F59E0B; --ap-low:#10B981;
  --ap-sidebar:#0F1A2F; --ap-sidebar-hover:rgba(255,255,255,0.05); --ap-sidebar-active:rgba(59,130,246,0.18); --ap-sidebar-border:#1E2A47;
  --ap-shadow-sm:0 1px 2px rgba(0,0,0,0.4); --ap-shadow-md:0 4px 12px rgba(0,0,0,0.5); --ap-shadow-lg:0 24px 64px rgba(0,0,0,0.6);
}
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body { font-family:ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  background:var(--ap-bg); color:var(--ap-text); transition:background 120ms ease, color 120ms ease; font-size:16px; }
a { color:var(--ap-accent); text-decoration:none; }
button { font:inherit; cursor:pointer; }
input, select, textarea { font:inherit; color:var(--ap-text); background:var(--ap-bg);
  border:1px solid var(--ap-border); border-radius:6px; padding:0.4rem 0.55rem; font-size:0.88rem; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--ap-accent); box-shadow:0 0 0 2px var(--ap-accent-subtle); }
code, .mono { font-family:ui-monospace, SFMono-Regular, 'Cascadia Code', monospace; }
h1 { font-size:1.4rem; letter-spacing:-0.01em; margin:0; }
h2 { font-size:1.05rem; font-weight:600; margin:0; }

/* ---------- shell ---------- */
.shell { display:grid; grid-template-columns:208px 1fr; min-height:100vh; background:var(--ap-bg); }
.shell__sidebar { background:var(--ap-sidebar); color:var(--ap-sidebar-text); border-right:1px solid var(--ap-sidebar-border);
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto; }
.shell__brand { display:flex; align-items:center; gap:0.45rem; height:56px; padding:0 1.1rem; border-bottom:1px solid var(--ap-sidebar-border); line-height:1.15; }
.brand__product { color:var(--ap-brand-amber); font-size:0.82rem; font-weight:700; position:relative; top:1px; }
.shell__nav { flex:1; padding:1rem 0.6rem; overflow-y:auto; }
.shell__nav-section { margin:0.9rem 0 0.4rem 0.65rem; font-size:0.7rem; font-weight:600; text-transform:uppercase; letter-spacing:0.08em; color:var(--ap-sidebar-muted); }
.shell__nav-section:first-child { margin-top:0; }
.shell__nav-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.1rem; }
.navlink { display:flex; align-items:center; gap:0.65rem; padding:0.5rem 0.75rem; border-radius:8px;
  color:var(--ap-sidebar-text); font-size:0.9rem; transition:background 100ms ease, color 100ms ease; }
.navlink:hover { background:var(--ap-sidebar-hover); color:var(--ap-sidebar-active-text); }
.navlink--active { background:var(--ap-sidebar-active); color:var(--ap-sidebar-active-text); font-weight:500; }
.navlink__icon { width:16px; text-align:center; opacity:0.9; }
.navlink__badge { margin-left:auto; background:var(--ap-accent); color:#fff; font-size:0.7rem; font-weight:700;
  padding:0.05rem 0.4rem; border-radius:999px; min-width:1.25rem; text-align:center; font-variant-numeric:tabular-nums; line-height:1.4; }
.shell__sidebar-footer { border-top:1px solid var(--ap-sidebar-border); padding:0.75rem 0.85rem; font-size:0.8rem; }
.shell__user { display:flex; align-items:center; gap:0.5rem; }
.shell__user-avatar { width:28px; height:28px; border-radius:50%; background:var(--ap-brand-amber); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:0.72rem; font-weight:700; flex:none; }
.shell__user-name { font-weight:600; }
.shell__user-role { color:var(--ap-sidebar-muted); font-size:0.72rem; }
.shell__signout { margin-left:auto; background:none; border:none; color:var(--ap-sidebar-muted); font-size:0.72rem; }
.shell__signout:hover { color:#fff; text-decoration:underline; }
.shell__topbar { display:flex; align-items:center; justify-content:space-between; padding:0 1.5rem; height:56px;
  background:var(--ap-sidebar); color:var(--ap-sidebar-text); border-bottom:1px solid var(--ap-sidebar-border);
  opacity:0.96; position:sticky; top:0; z-index:10; }
.topbar__title { margin:0; font-size:1.05rem; font-weight:600; letter-spacing:-0.005em; }
.topbar__right { display:flex; gap:0.4rem; align-items:center; }
.topbar__icon-btn { width:32px; height:32px; border-radius:6px; border:1px solid var(--ap-sidebar-border);
  background:transparent; color:var(--ap-sidebar-text); display:flex; align-items:center; justify-content:center; font-size:15px; }
.topbar__icon-btn:hover { background:var(--ap-sidebar-hover); }
.shell__main { padding:1.5rem; max-width:1400px; margin:0 auto; width:100%; }

/* ---------- engagement ribbon (passive time tracking) ---------- */
.ribbon { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; padding:0.5rem 1.5rem;
  background:var(--ap-accent-subtle); border-bottom:1px solid var(--ap-accent-border); font-size:0.85rem;
  position:sticky; top:56px; z-index:9; }
.ribbon__left { display:flex; align-items:center; gap:0.6rem; min-width:0; }
.ribbon__eyebrow { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--ap-text-muted); font-weight:600; }
.ribbon__title { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:34ch; color:var(--ap-text); }
.ribbon__title:hover { color:var(--ap-accent); text-decoration:underline; }
.ribbon__timer { display:inline-flex; align-items:center; gap:0.35rem; padding:0.25rem 0.5rem; border-radius:6px;
  background:var(--ap-surface); border:1px solid var(--ap-border); font-variant-numeric:tabular-nums; }
.ribbon__timer button { background:none; border:none; color:var(--ap-text-muted); padding:0 0.1rem; font-size:0.9rem; }
.ribbon__timer button:hover { color:var(--ap-danger); }
.ribbon__paused { font-style:italic; color:var(--ap-text-muted); }

/* ---------- buttons / shared ---------- */
.btn { display:inline-flex; align-items:center; gap:0.35rem; padding:0.4rem 0.85rem; border-radius:6px;
  border:1px solid var(--ap-border); background:var(--ap-surface); color:var(--ap-text); font-size:0.85rem; font-weight:500; }
.btn:hover { background:var(--ap-surface-hover); }
.btn:disabled { opacity:0.5; cursor:not-allowed; }
.btn--primary { background:var(--ap-accent); border-color:var(--ap-accent); color:var(--ap-text-on-accent); }
.btn--primary:hover { background:var(--ap-accent-hover); }
.btn--ghost { color:var(--ap-text-secondary); font-size:0.78rem; }
.btn--ghost:hover { background:var(--ap-accent-subtle); color:var(--ap-accent); border-color:var(--ap-accent-border); }
.btn--danger { color:var(--ap-danger); border-color:var(--ap-danger-border); }
.btn--danger:hover { background:var(--ap-danger-subtle); }
.icon-btn { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:6px;
  border:1px solid transparent; background:transparent; color:var(--ap-text-muted); font-size:0.9rem; }
.icon-btn:hover { background:var(--ap-surface-muted); border-color:var(--ap-border); color:var(--ap-text); }
.icon-btn--danger:hover { color:var(--ap-danger); border-color:var(--ap-danger-border); background:var(--ap-danger-subtle); }
.icon-btn--accent:hover { color:var(--ap-accent); border-color:var(--ap-accent-border); background:var(--ap-accent-subtle); }
.pill { font-size:0.7rem; font-weight:600; padding:0.15rem 0.5rem; border-radius:999px; border:1px solid var(--ap-border);
  background:var(--ap-surface-muted); color:var(--ap-text-secondary); white-space:nowrap; }
.pill--danger { background:var(--ap-danger-subtle); color:var(--ap-danger); border-color:var(--ap-danger-border); }
.pill--warn { background:var(--ap-warning-subtle); color:var(--ap-warning); border-color:var(--ap-warning-border); }
.pill--ok { background:var(--ap-success-subtle); color:var(--ap-success); border-color:var(--ap-success-border); }
.pill--info { background:var(--ap-info-subtle); color:var(--ap-info); border-color:var(--ap-info-border); }
.pill--accent { background:var(--ap-accent); color:#fff; border-color:var(--ap-accent); }
.chip { display:inline-flex; font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
  padding:0.1rem 0.5rem; border-radius:4px; border:1px solid var(--ap-border); background:var(--ap-surface-muted); color:var(--ap-text-secondary); }
.chip--draft { background:var(--ap-surface-hover); color:var(--ap-text-secondary); }
.chip--inprogress, .chip--readyforreview { background:var(--ap-warning-subtle); color:var(--ap-warning); border-color:var(--ap-warning-border); }
.chip--reviewed { background:var(--ap-success-subtle); color:var(--ap-success); border-color:var(--ap-success-border); }
.chip--approved { background:var(--ap-info-subtle); color:var(--ap-info); border-color:var(--ap-info-border); }
.chip--locked { background:var(--ap-text); color:var(--ap-text-on-accent); border-color:var(--ap-text); }
.chip--open { background:var(--ap-danger-subtle); color:var(--ap-danger); border-color:var(--ap-danger-border); }
.chip--inremediation { background:var(--ap-warning-subtle); color:var(--ap-warning); border-color:var(--ap-warning-border); }
.chip--remediated, .chip--closed { background:var(--ap-success-subtle); color:var(--ap-success); border-color:var(--ap-success-border); }
.chip--cancelled { color:var(--ap-text-muted); text-decoration:line-through; }
.chip--new { background:var(--ap-accent); color:#fff; border-color:var(--ap-accent); }
.chip--acknowledged { background:var(--ap-warning-subtle); color:var(--ap-warning); border-color:var(--ap-warning-border); }
.chip--critical { background:var(--ap-danger-subtle); color:var(--ap-critical); border-color:var(--ap-danger-border); }
.chip--high { background:var(--ap-warning-subtle); color:var(--ap-high); border-color:var(--ap-warning-border); }
.chip--medium { color:var(--ap-medium); }
.chip--low { color:var(--ap-low); }
.chip--overdue { background:var(--ap-danger-subtle); color:var(--ap-danger); border-color:var(--ap-danger-border); }
.chip--due-soon { background:var(--ap-warning-subtle); color:var(--ap-warning); border-color:var(--ap-warning-border); }
.chip--on-track { background:var(--ap-success-subtle); color:var(--ap-success); border-color:var(--ap-success-border); }
.chip--never-run { background:var(--ap-danger-subtle); color:var(--ap-danger); border-color:var(--ap-danger-border); }
.eyebrow { display:inline-flex; align-items:center; gap:0.4rem; font-size:0.74rem; font-weight:600; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--ap-text-muted); }
.field { display:flex; flex-direction:column; gap:0.25rem; font-size:0.85rem; }
.field > span { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ap-text-muted); font-weight:600; }
.hint { font-size:0.78rem; color:var(--ap-text-muted); }
.page { display:flex; flex-direction:column; gap:1.5rem; }
.page__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.page__sub { font-size:0.9rem; color:var(--ap-text-muted); max-width:760px; margin:0.25rem 0 0; }
.card { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:12px; padding:1.1rem 1.2rem;
  display:flex; flex-direction:column; gap:0.75rem; }
.table { width:100%; border-collapse:collapse; font-size:0.85rem; background:var(--ap-surface);
  border:1px solid var(--ap-border); border-radius:12px; overflow:hidden; }
.table th { text-align:left; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; font-weight:600;
  color:var(--ap-text-muted); padding:0.55rem 0.75rem; border-bottom:1px solid var(--ap-border); background:var(--ap-surface-muted); }
.table td { padding:0.55rem 0.75rem; border-bottom:1px solid var(--ap-border); vertical-align:middle; }
.table tr:last-child td { border-bottom:none; }
.table tr.row--click { cursor:pointer; }
.table tr.row--click:hover td { background:var(--ap-surface-hover); }
.num { font-variant-numeric:tabular-nums; text-align:right; }
.empty { display:flex; flex-direction:column; align-items:center; text-align:center; gap:0.5rem; padding:2.5rem 1.5rem;
  background:var(--ap-surface); border:1px dashed var(--ap-border); border-radius:12px; }
.empty__icon { width:56px; height:56px; border-radius:50%; background:var(--ap-accent-subtle); color:var(--ap-accent);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; }
.empty h3 { margin:0; font-size:1rem; }
.empty p { margin:0; font-size:0.88rem; color:var(--ap-text-muted); max-width:52ch; }

/* ---------- home ---------- */
.home { max-width:1080px; margin:0 auto; display:flex; flex-direction:column; gap:1.5rem; padding-bottom:2rem; }
.home__welcome { font-size:0.95rem; color:var(--ap-text-muted); margin:0.25rem 0 0; }
.home__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1rem; }
.home__card-head { display:flex; align-items:baseline; justify-content:space-between; }
.home__card-count { font-size:1.7rem; font-weight:700; font-variant-numeric:tabular-nums; line-height:1; }
.home__bar { height:7px; border-radius:999px; background:var(--ap-surface-muted); overflow:hidden; }
.home__bar-fill { height:100%; background:var(--ap-accent); transition:width .3s ease; }
.home__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.3rem; }
.home__list li a { display:flex; align-items:center; gap:0.55rem; padding:0.45rem 0.6rem; border-radius:6px;
  border:1px solid transparent; color:var(--ap-text); font-size:0.86rem; }
.home__list li a:hover { background:var(--ap-surface-muted); border-color:var(--ap-border); }
.home__sev { width:8px; height:8px; border-radius:999px; flex:none; }
.home__shortid { font-family:ui-monospace,monospace; font-size:0.78rem; color:var(--ap-text-muted); }
.home__title { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.home__chev { color:var(--ap-text-muted); font-size:0.8rem; }
.home__cta { font-size:0.82rem; font-weight:500; }
.attention { display:flex; flex-direction:column; gap:0.35rem; }
.attention__item { display:flex; gap:0.5rem; align-items:baseline; padding:0.4rem 0.55rem; border-radius:6px;
  border:1px solid transparent; font-size:0.88rem; color:inherit; }
.attention__item:hover { background:var(--ap-surface-muted); border-color:var(--ap-border); }
.attention__item--red { color:var(--ap-danger); font-weight:500; }
.attention__item--amber { color:var(--ap-warning-text); }
[data-theme='dark'] .attention__item--amber { color:var(--ap-warning); }
.attention__clear { color:var(--ap-success); font-weight:600; font-size:0.9rem; padding:0.4rem 0.55rem; }
.home__shortcut-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:0.85rem; }
.home__shortcut { display:flex; align-items:flex-start; gap:0.7rem; padding:0.85rem 1rem; background:var(--ap-surface);
  border:1px solid var(--ap-border); border-radius:10px; color:var(--ap-text); transition:border-color .12s, background .12s; }
.home__shortcut:hover { border-color:var(--ap-accent-border); background:var(--ap-accent-subtle); }
.home__shortcut strong { font-size:0.92rem; display:block; }
.home__shortcut span { font-size:0.78rem; color:var(--ap-text-muted); }

/* ---------- DALI / monitor ---------- */
.ca__findings { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.4rem; }
.ca__finding { display:flex; align-items:flex-start; gap:0.75rem; background:var(--ap-surface);
  border:1px solid var(--ap-border); border-radius:8px; padding:0.7rem 0.9rem; }
.ca__finding--new { border-color:var(--ap-accent-border); background:var(--ap-accent-subtle); }
.ca__finding-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:0.25rem; }
.ca__finding-head { display:flex; align-items:center; gap:0.5rem; flex-wrap:wrap; }
.ca__finding-summary { font-size:0.92rem; font-weight:500; }
.ca__finding-meta { font-size:0.78rem; color:var(--ap-text-muted); }
.ca__finding-actions { display:flex; gap:0.25rem; flex:none; }
.ca__tests { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:0.75rem; }
.ca__test { display:flex; flex-direction:column; gap:0.5rem; padding:0.85rem 1rem; background:var(--ap-surface);
  border:1px solid var(--ap-border); border-radius:10px; }
.ca__test--disabled { opacity:0.65; }
.ca__test-head { display:flex; justify-content:space-between; gap:0.5rem; align-items:baseline; }
.ca__test-name { font-weight:600; font-size:0.95rem; }
.ca__test-schedule { font-size:0.72rem; text-transform:uppercase; color:var(--ap-text-muted); font-weight:600; white-space:nowrap; }
.ca__test-desc { font-size:0.82rem; color:var(--ap-text-secondary); margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ca__test-stats { display:flex; gap:1.25rem; font-size:0.85rem; }
.ca__test-stat b { display:block; font-size:0.7rem; text-transform:uppercase; color:var(--ap-text-muted); font-weight:600; }
.ca__test-stat--warn { color:var(--ap-warning); font-weight:600; }
.ca__test-stat--err { color:var(--ap-danger); }
.ca__test-actions { display:flex; gap:0.4rem; align-items:center; margin-top:auto; }
.ca__catalog { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.4rem; }
.ca__catalog-row { display:flex; gap:0.75rem; align-items:center; background:var(--ap-surface);
  border:1px solid var(--ap-border); border-radius:8px; padding:0.7rem 0.9rem; }
.ca__catalog-main { flex:1; min-width:0; }
.ca__catalog-main strong { font-size:0.92rem; }
.ca__catalog-main p { margin:0.1rem 0 0; font-size:0.85rem; color:var(--ap-text-secondary); }
.ca__catalog-meta { font-size:0.74rem; color:var(--ap-text-muted); }
.ca__badge { font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
  padding:0.15rem 0.55rem; border-radius:999px; margin-left:0.5rem; }
.ca__badge--new { background:var(--ap-accent); color:#fff; }
.ca__badge--ok { background:var(--ap-success-subtle); color:var(--ap-success); border:1px solid var(--ap-success-border); }
.caqb__row { display:flex; flex-wrap:wrap; gap:0.4rem; align-items:center; }
.caqb__row select, .caqb__row input { flex:1 1 130px; }
.caqb__joiner { flex-basis:100%; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ap-accent); font-weight:700; }
.caqb__comb { padding:0.25rem 0.6rem; font-size:0.72rem; font-weight:600; background:var(--ap-surface);
  color:var(--ap-text-muted); border:none; }
.caqb__comb--on { background:var(--ap-accent); color:#fff; }
.caqb__combwrap { display:inline-flex; border:1px solid var(--ap-border); border-radius:6px; overflow:hidden; }
.caqb__add { border:1px dashed var(--ap-border); border-radius:6px; padding:0.35rem 0.7rem; color:var(--ap-accent);
  font-size:0.82rem; font-weight:500; background:none; align-self:flex-start; }
.caqb__add:hover { border-color:var(--ap-accent); }
.caqb__preview { border:1px solid var(--ap-border); border-radius:8px; background:var(--ap-surface-muted); padding:0.85rem;
  font-size:0.82rem; display:flex; flex-direction:column; gap:0.4rem; }

/* ---------- dialogs / drawers / toasts ---------- */
.overlay { position:fixed; inset:0; background:var(--ap-overlay); display:flex; align-items:center; justify-content:center;
  z-index:100; padding:1rem; }
.dialog { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:12px; width:100%; max-width:560px;
  max-height:90vh; display:flex; flex-direction:column; box-shadow:0 25px 50px rgba(0,0,0,0.25); }
.dialog--wide { max-width:720px; }
.dialog__head { padding:0.9rem 1.15rem; border-bottom:1px solid var(--ap-border); display:flex; justify-content:space-between; align-items:center; }
.dialog__body { padding:1rem 1.15rem; display:flex; flex-direction:column; gap:0.85rem; overflow-y:auto; }
.dialog__foot { display:flex; justify-content:flex-end; gap:0.5rem; border-top:1px solid var(--ap-border); padding:0.75rem 1.15rem; }
.drawer-overlay { position:fixed; inset:0; background:var(--ap-overlay); z-index:50; display:flex; justify-content:flex-end; }
.drawer { width:min(680px,100%); height:100vh; background:var(--ap-surface); border-left:1px solid var(--ap-border);
  box-shadow:var(--ap-shadow-lg); display:flex; flex-direction:column; animation:drawer-in 160ms ease-out; overflow-y:auto; }
@keyframes drawer-in { from { transform:translateX(40px); opacity:0.6; } to { transform:none; opacity:1; } }
.toasts { position:fixed; bottom:1.25rem; right:1.25rem; display:flex; flex-direction:column-reverse; gap:0.5rem;
  max-width:24rem; z-index:1000; pointer-events:none; }
.toast { display:flex; gap:0.5rem; align-items:flex-start; padding:0.65rem 0.85rem; border-radius:8px;
  border:1px solid var(--ap-border); background:var(--ap-surface); box-shadow:var(--ap-shadow-md); font-size:0.85rem;
  pointer-events:auto; animation:toast-in .18s ease-out; }
@keyframes toast-in { from { transform:translateY(8px); opacity:0; } to { transform:none; opacity:1; } }
.toast--success { border-color:var(--ap-success-border); background:var(--ap-success-subtle); }
.toast--error { border-color:var(--ap-danger-border); background:var(--ap-danger-subtle); }

/* ---------- work papers ---------- */
.wp__tree { background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:12px; box-shadow:var(--ap-shadow-sm);
  overflow:hidden; padding:0.6rem; }
.wp__tree-header { display:grid; grid-template-columns:56px minmax(0,1fr) auto 132px 84px; gap:0.5rem;
  padding:0.3rem 0.4rem 0.4rem 1.9rem; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; font-weight:600;
  color:var(--ap-text-muted); border-bottom:1px solid var(--ap-border); }
.wp__folder-row { display:flex; align-items:center; gap:0.3rem; border-radius:6px; padding:0.25rem 0.4rem; font-size:0.88rem; }
.wp__folder-row:hover { background:var(--ap-surface-hover); }
.wp__folder-name { font-weight:500; }
.wp__paper-row { display:grid; grid-template-columns:56px minmax(0,1fr) auto 132px 84px; gap:0.5rem; align-items:center;
  width:100%; text-align:left; background:none; border:none; border-radius:6px; padding:0.35rem 0.4rem 0.35rem 1.5rem;
  font-size:0.85rem; color:var(--ap-text); }
.wp__paper-row:hover { background:var(--ap-surface-hover); }
.wp__paper-row--active { background:var(--ap-accent-subtle); color:var(--ap-accent); font-weight:500; }
.wp__paper-ref { font-family:ui-monospace,monospace; font-size:0.78rem; color:var(--ap-text-muted); }
.wp__paper-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:0.4rem; }
.wp__notes-pill { background:var(--ap-warning); color:#fff; border-radius:999px; font-size:0.7rem; font-weight:600; padding:0.05rem 0.4rem; }
.wp__signoff { display:inline-flex; gap:3px; align-items:center; }
.wp__signoff-letter { width:15px; height:15px; border-radius:3px; border:1px solid var(--ap-border); color:var(--ap-text-muted);
  font-size:9px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.wp__signoff-letter--active { background:var(--ap-success); color:#fff; border-color:var(--ap-success); }
.wp__meta { font-size:0.76rem; color:var(--ap-text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wp__editor-head { padding:1rem 1.25rem 0.75rem; border-bottom:1px solid var(--ap-border); display:flex; flex-direction:column; gap:0.5rem; }
.wp__title-input { font-size:1.15rem; font-weight:600; background:transparent; border:none; outline:none; width:100%; padding:0; box-shadow:none; }
.wp__fields { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem 0.9rem; padding:0.75rem 1.25rem; border-bottom:1px solid var(--ap-border); }
.wp__body { background:var(--ap-bg); font-family:ui-monospace,monospace; font-size:0.9rem; line-height:1.55;
  padding:1rem 1.25rem; border:none; border-radius:0; min-height:220px; resize:vertical; width:100%; }
.wp__footer { border-top:1px solid var(--ap-border); padding:0.85rem 1.25rem; background:var(--ap-surface-muted);
  display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; }
.wp__stamp { display:flex; gap:0.5rem; font-size:0.8rem; align-items:baseline; }
.wp__stamp b { width:100px; font-size:0.7rem; text-transform:uppercase; color:var(--ap-text-muted); font-weight:600; }
.wp__stamp time { font-size:0.75rem; color:var(--ap-text-muted); font-variant-numeric:tabular-nums; }
.soc { display:flex; align-items:flex-start; gap:0; padding:1rem 1.25rem; background:var(--ap-surface-muted); border-bottom:1px solid var(--ap-border); }
.soc__step { display:flex; flex-direction:column; align-items:center; gap:0.25rem; width:96px; text-align:center; }
.soc__circle { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--ap-surface); border:2px dashed var(--ap-border); color:var(--ap-text-muted); font-weight:500; position:relative; }
.soc__circle--signed { border-style:solid; color:#fff; }
.soc__circle--preparer { background:var(--ap-warning); border-color:var(--ap-warning); }
.soc__circle--reviewer { background:var(--ap-info); border-color:var(--ap-info); }
.soc__circle--approver { background:var(--ap-success); border-color:var(--ap-success); }
.soc__check { position:absolute; bottom:-2px; right:-2px; width:16px; height:16px; border-radius:50%; background:var(--ap-success);
  color:#fff; font-size:10px; display:flex; align-items:center; justify-content:center; border:2px solid var(--ap-surface-muted); }
.soc__role { font-size:0.7rem; text-transform:uppercase; color:var(--ap-text-muted); font-weight:600; }
.soc__name { font-size:0.78rem; font-weight:500; max-width:96px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.soc__name--pending { font-style:italic; color:var(--ap-text-muted); font-weight:400; }
.soc__date { font-size:0.7rem; color:var(--ap-text-muted); font-variant-numeric:tabular-nums; }
.soc__arrow { flex:0 0 24px; height:2px; background:var(--ap-border); margin-top:21px; }
.soc__arrow--active { background:var(--ap-success); }
.soc__locked { margin:0.85rem 1.25rem 0; padding:0.5rem 0.75rem; background:var(--ap-text); color:var(--ap-text-on-accent);
  border-radius:6px; font-size:0.78rem; }
[data-theme='dark'] .soc__locked { background:#0B1220; border:1px solid var(--ap-border-strong); }
.wph__row { display:flex; gap:0.5rem; align-items:baseline; font-size:0.82rem; padding:0.3rem 0; border-bottom:1px solid var(--ap-border); }
.wph__row > span:first-child { flex-shrink:0; }
/* Long metas (connector degradation notes) wrap instead of forcing horizontal scroll. */
.wph__meta { color:var(--ap-text-muted); font-size:0.74rem; margin-left:auto; text-align:right; overflow-wrap:anywhere; }

/* ---------- time / week ---------- */
.wg__cell-draft { background:#faeeda; border:1px dashed #ba7517; color:#854f0b; border-radius:7px; padding:0.15rem 0.4rem; font-size:0.78rem; }
.wg__status--submitted { background:#e6f1fb; border:1px solid #b5d4f4; color:#185fa5; }
.wg__status--approved { background:#e8f5ec; border:1px solid #bbe3c8; color:#166534; }
.wg__status--rejected { background:#fdecec; border:1px solid #f5c2c2; color:#a32d2d; }
[data-theme='dark'] .wg__cell-draft { background:rgba(245,158,11,0.12); color:var(--ap-warning-text); }
[data-theme='dark'] .wg__status--submitted { background:var(--ap-accent-subtle); border-color:var(--ap-accent-border); color:var(--ap-accent-hover); }
[data-theme='dark'] .wg__status--approved { background:var(--ap-success-subtle); border-color:var(--ap-success-border); color:var(--ap-success-text); }
[data-theme='dark'] .wg__status--rejected { background:var(--ap-danger-subtle); border-color:var(--ap-danger-border); color:var(--ap-danger-text); }

/* ---------- login ---------- */
.login { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--ap-sidebar); }
.login__card { background:var(--ap-surface); border-radius:12px; padding:2rem 2.2rem; width:min(400px,92vw);
  display:flex; flex-direction:column; gap:1rem; box-shadow:var(--ap-shadow-lg); }
.login__tag { font-size:12px; color:var(--ap-brand-amber); font-weight:600; letter-spacing:0.5px; }
.login__btn { background:var(--ap-brand-amber); color:#fff; border:none; border-radius:8px; padding:10px 18px;
  font-size:15px; font-weight:600; }
.login__btn:hover { filter:brightness(1.06); }
.login__btn--ms { display:flex; align-items:center; justify-content:center; gap:9px; background:var(--ap-navy, #1B2D4F);
  color:#fff; text-align:center; cursor:pointer; }
.login__or { display:flex; align-items:center; gap:10px; color:var(--ap-text-muted); font-size:12px; }
.login__or::before, .login__or::after { content:""; flex:1; height:1px; background:var(--ap-border); }

/* read-only (external auditor) badge */
.ro-badge { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600;
  color:#8a5a12; background:#FDF3E3; border:1px solid #E9C88B; border-radius:20px; padding:4px 12px; white-space:nowrap; }
[data-theme='dark'] .ro-badge { color:#F0A35C; background:rgba(224,123,48,.12); border-color:rgba(240,163,92,.45); }

/* ---------- packet (printable) ---------- */
.packet h2 { margin-top:1.5rem; border-bottom:2px solid var(--ap-border); padding-bottom:0.3rem; }
.packet__attest { font-size:0.85rem; color:var(--ap-text-secondary); border-left:3px solid var(--ap-brand-amber);
  padding:0.5rem 0.85rem; background:var(--ap-surface-muted); }
@media print {
  .shell__sidebar, .shell__topbar, .ribbon, .no-print { display:none !important; }
  .shell { display:block; }
  .shell__main { max-width:none; padding:0; }
  body { background:#fff; color:#000; }
  .table { border-radius:0; }
}
@media (max-width: 900px) {
  .shell { grid-template-columns:64px 1fr; }
  .navlink span.navlink__label, .shell__nav-section, .shell__brand svg, .brand__product, .shell__user-info { display:none; }
  .wp__tree-header, .wp__paper-row { grid-template-columns:56px minmax(0,1fr) auto; }
  .wp__paper-row .wp__meta { display:none; }
  .wp__tree-header span:nth-child(n+4) { display:none; }
}
