#cftkRoleShell{position:relative;z-index:20;background:#fff;border-bottom:1px solid #d9dee4;box-shadow:0 3px 12px rgba(24,39,56,.07)}#cftkRolePrimary,#cftkRoleSecondary{display:flex;gap:8px;align-items:stretch;overflow-x:auto;padding:9px 14px}#cftkRoleSecondary{padding-top:7px;border-top:1px solid #edf0f3;background:#f7f9fb}#cftkRoleSecondary[hidden]{display:none}.cftk-role-primary,.cftk-role-secondary{flex:0 0 auto;border:1px solid #b8c1ca;border-radius:9px;padding:10px 14px;background:#fff;color:#18283a;font:inherit;font-weight:800;cursor:pointer}.cftk-role-primary:hover,.cftk-role-secondary:hover{border-color:#8e1c2d;background:#fff7f8}.cftk-role-primary.active{border-color:#8e1c2d;background:#8e1c2d;color:#fff}.cftk-role-classic-toggle{margin-left:auto}.cftk-role-welcome,.cftk-role-workspace-head{margin:0 0 18px;padding:24px;border-radius:16px;background:linear-gradient(135deg,#6f1725,#9f1d2c);color:#fff}.cftk-role-welcome h2,.cftk-role-workspace-head h2{margin:4px 0 6px;font-size:clamp(1.6rem,3vw,2.25rem)}.cftk-role-welcome p,.cftk-role-workspace-head p{margin:0}.cftk-role-kicker{font-size:.76rem;font-weight:900;letter-spacing:.13em}.cftk-role-portals,.cftk-role-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.cftk-role-portal,.cftk-role-tool-card{display:flex;flex-direction:column;min-height:230px;padding:21px;border:1px solid #d4dbe2;border-top:6px solid #8e1c2d;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(25,40,55,.08)}.cftk-role-portal.teal{border-top-color:#197283}.cftk-role-portal.navy{border-top-color:#244a72}.cftk-role-portal h3,.cftk-role-tool-card h3{margin:10px 0 7px;color:#18283a;font-size:1.18rem}.cftk-role-portal p,.cftk-role-tool-card p{flex:1;margin:0 0 18px;color:#536174;line-height:1.45}.cftk-role-portal-icon,.cftk-role-tool-icon{font-size:2.25rem;line-height:1}.cftk-role-portal button,.cftk-role-tool-card button,.cftk-role-tool-card a,.cftk-role-workspace-head button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;border-radius:8px;padding:10px 14px;background:#8e1c2d;color:#fff;font:inherit;font-weight:850;text-decoration:none;cursor:pointer}.cftk-role-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.cftk-role-workspace-head.teal{background:linear-gradient(135deg,#155b68,#238699)}.cftk-role-workspace-head.navy{background:linear-gradient(135deg,#1d3d60,#315f8d)}.cftk-role-workspace-head button{background:#fff;color:#6f1725}.cftk-role-download-card{border-top-color:#197283}.cftk-role-download-card a{background:#197283}.cftk-role-empty{grid-column:1/-1;padding:30px;border:1px dashed #aeb8c2;border-radius:12px;text-align:center}.cftk-role-original-nav{transition:none}@media(max-width:930px){.cftk-role-portals,.cftk-role-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:590px){#cftkRolePrimary,#cftkRoleSecondary{padding:8px}.cftk-role-portals,.cftk-role-tool-grid{grid-template-columns:1fr}.cftk-role-workspace-head{align-items:flex-start;flex-direction:column}.cftk-role-primary,.cftk-role-secondary{padding:9px 11px}.cftk-role-classic-toggle{margin-left:0}}@media print{#cftkRoleShell,#cftkRoleDashboard{display:none!important}}

/* =========================================================
   CFTK role dashboard responsive + touch optimisation
   v1.42.27
   ========================================================= */

#cftkRoleShell {
  --cftk-surface: #ffffff;
  --cftk-surface-soft: #f8fafc;
  --cftk-border: #d8dee8;
  --cftk-text: #172033;
  --cftk-muted: #5f6b7a;
  --cftk-accent: #475569;
}

#cftkRolePrimary,
#cftkRoleSecondary {
  gap: .55rem;
  scrollbar-width: thin;
}

#cftkRolePrimary {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(8px);
  padding-block: .6rem;
}

.cftk-role-portals,
.cftk-role-tool-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1rem;
  align-items: stretch;
}

.cftk-role-portal,
.cftk-role-tool-card {
  --cftk-accent: #475569;
  position: relative;
  overflow: hidden;
  background: var(--cftk-surface);
  border: 1px solid var(--cftk-border);
  border-top: 5px solid var(--cftk-accent);
  border-radius: 14px;
  box-shadow: 0 2px 8px rgba(15,23,42,.07);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.cftk-role-portal::before,
.cftk-role-tool-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: color-mix(in srgb,var(--cftk-accent) 65%,white);
  opacity: .65;
}

@media (hover:hover) and (pointer:fine) {
  .cftk-role-portal:hover,
  .cftk-role-tool-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 18px rgba(15,23,42,.11);
  }
}

.cftk-role-portal h3,
.cftk-role-tool-card h3 {
  color: var(--cftk-text);
  line-height: 1.25;
  margin-bottom: .45rem;
}

.cftk-role-portal p,
.cftk-role-tool-card p {
  color: var(--cftk-muted);
  line-height: 1.45;
}

.cftk-role-portal button,
.cftk-role-tool-card button,
.cftk-role-tool-card a,
.cftk-role-primary,
.cftk-role-secondary {
  min-height: 46px;
  touch-action: manipulation;
}

.cftk-role-portal button,
.cftk-role-tool-card button,
.cftk-role-tool-card a {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-weight: 700;
}

.cftk-role-primary,
.cftk-role-secondary {
  white-space: nowrap;
}

.cftk-role-workspace-head {
  border-radius: 14px;
  margin-bottom: 1rem;
}

.cftk-role-workspace-head > div {
  min-width: 0;
}

.cftk-role-tool-icon,
.cftk-role-portal-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
}

/* Tablet / iPad */
@media (max-width: 1024px) {
  #cftkRolePrimary,
  #cftkRoleSecondary {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding-bottom: .45rem;
  }

  .cftk-role-portals,
  .cftk-role-tool-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .85rem;
  }

  .cftk-role-primary,
  .cftk-role-secondary {
    flex: 0 0 auto;
    padding-inline: .9rem;
  }
}

/* Phone */
@media (max-width: 640px) {
  #cftkRoleShell {
    font-size: 16px;
  }

  #cftkRolePrimary {
    margin-inline: -.5rem;
    padding-inline: .5rem;
  }

  .cftk-role-portals,
  .cftk-role-tool-grid {
    grid-template-columns: 1fr;
    gap: .7rem;
  }

  .cftk-role-portal,
  .cftk-role-tool-card {
    border-radius: 12px;
    padding: .9rem;
  }

  .cftk-role-portal p,
  .cftk-role-tool-card p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  .cftk-role-portal button,
  .cftk-role-tool-card button,
  .cftk-role-tool-card a {
    min-height: 50px;
    font-size: 1rem;
  }

  .cftk-role-primary,
  .cftk-role-secondary {
    min-height: 48px;
    padding-inline: 1rem;
  }

  .cftk-role-welcome h2,
  .cftk-role-workspace-head h2 {
    font-size: clamp(1.35rem,7vw,1.8rem);
  }

  .cftk-role-workspace-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: .7rem;
  }

  #cftkRoleBack {
    width: 100%;
    min-height: 48px;
  }
}

/* Very small phones */
@media (max-width: 390px) {
  .cftk-role-portal,
  .cftk-role-tool-card {
    padding: .8rem;
  }

  .cftk-role-primary,
  .cftk-role-secondary {
    font-size: .95rem;
  }
}