@font-face { font-family: "PingFang SC"; src: url('../fonts/PingFang-Medium.ttf'); font-weight: 400 500; }
@font-face { font-family: "PingFang SC"; src: url('../fonts/PingFang-Heavy.ttf'); font-weight: 600 900; }
@font-face { font-family: "Plus Jakarta Sans"; src: url('../fonts/PlusJakartaSans-Variable.ttf'); font-weight: 200 800; }
@font-face { font-family: Manrope; src: url('../fonts/Manrope-Variable.ttf'); font-weight: 200 800; }
:root {
  /* Colors */
  --canvas: #ffffff;
  --sidebar-bg: #f2f9f6;
  --heading: #10463f;
  --teal-dark: #07584f;
  --primary: #28927f;
  --primary-hover: #076b5e;
  --mint: #cfe8df;
  --text: #41403e;
  --text-strong: #24221f;
  --muted: #737271;
  --border: #ededed;
  --row-alt: #fafafa;

  /* Typography */
  --font-heading: "Plus Jakarta Sans", sans-serif;
  --font-body: "PingFang SC", "Inter", sans-serif;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;

  /* Shape */
  --radius-sm: 2px;
  --radius: 4px;
  --radius-md: 6px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--canvas);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
}

button,
input,
select,
textarea {
  font: inherit;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1,
h2,
h3 {
  color: var(--heading);
  font-family: var(--font-heading);
}

h1 {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
}

h2 {
  font-size: 16px;
  font-weight: 600;
}

.text-muted {
  color: var(--muted);
}

/* App shell */
.app {
  display: grid;
  grid-template-columns: 256px minmax(0, 1fr);
  min-height: 100dvh;
}

.sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-6) var(--space-4);
  background: var(--sidebar-bg);
  border-right: 1px solid var(--border);
}

.brand {
  color: var(--heading);
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}

.workspace-label {
  color: #6fbaa5;
  font-size: 10px;
}

.nav {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.nav-link {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 12px;
  border-radius: var(--radius);
  color: var(--primary);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.nav-link:hover {
  background: rgb(207 232 223 / 50%);
}

.nav-link[aria-current="page"] {
  background: var(--mint);
}

.account {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
}

.avatar {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid #a7d5c6;
  border-radius: var(--radius-md);
  background: var(--mint);
  color: var(--primary);
  font-family: "Manrope", sans-serif;
  font-weight: 700;
}

.main {
  min-width: 0;
  padding: var(--space-7);
}

/* Inputs */
.input,
.select {
  width: 100%;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--canvas);
  color: var(--text);
  font-size: 12px;
}

.input::placeholder {
  color: var(--muted);
}

/* Summary counters */
.summary {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.summary-item + .summary-item {
  padding-left: var(--space-3);
  border-left: 1px solid var(--border);
}

.summary-label {
  color: var(--heading);
  font-size: 12px;
}

.summary-value {
  margin-top: var(--space-2);
  color: var(--text-strong);
  font-size: 20px;
}

.summary-value span {
  color: var(--muted);
  font-weight: 400;
}

/* Section heading and filter */
.section {
  margin-top: var(--space-6);
}

.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.section-title {
  flex: 1;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border);
}

.section-header .select {
  width: auto;
  min-width: 160px;
}

/* Table */
.table-container {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.table th {
  padding: 10px 12px;
  background: var(--row-alt);
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.table td {
  padding: 12px;
  vertical-align: middle;
  font-size: 14px;
}

.table tbody tr:nth-child(even) {
  background: var(--row-alt);
}

/* Tags */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: var(--radius-sm);
  background: var(--mint);
  color: var(--primary);
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 600;
  line-height: 16px;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
}

.btn-primary {
  background: var(--primary);
  color: #ffffff;
}

.btn-primary:hover {
  background: var(--primary-hover);
}

.btn-secondary {
  border-color: var(--primary);
  background: #ffffff;
  color: var(--teal-dark);
}

.btn-secondary:hover {
  background: var(--sidebar-bg);
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Mobile session cards */
.session-list {
  display: grid;
  gap: var(--space-4);
}

.session-card {
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: #ffffff;
}

.session-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  color: var(--muted);
  font-size: 12px;
}

.session-card h3 {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
}

.session-card p {
  margin-top: var(--space-1);
  color: var(--muted);
  font-size: 12px;
}

.session-card .btn {
  width: 100%;
  margin-top: var(--space-3);
}

/* Pagination */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-5);
}

.page-button {
  display: grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  color: var(--text-strong);
  font-size: 12px;
  cursor: pointer;
}

.page-button[aria-current="page"] {
  background: var(--mint);
  color: var(--primary);
}

/* Responsive layout */
@media (max-width: 767px) {
  .app {
    grid-template-columns: minmax(0, 1fr);
  }

  .sidebar {
    gap: var(--space-4);
    padding: var(--space-5) var(--space-4);
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .brand {
    font-size: 28px;
  }

  .main {
    padding: var(--space-5) var(--space-4);
  }

  .section-header .select {
    min-width: 140px;
  }
}
/* Adapt the supplied CSS to the Figma desktop layout and mobile cards. */
.app { min-height: 100dvh; }
.sidebar { min-height: 100dvh; padding-bottom: 24px; }
.brand-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.icon-button { display:grid; place-items:center; border:0; padding:0; background:none; cursor:pointer; color:var(--heading); }
.search { position:relative; display:block; margin-bottom:24px; }
.search>span { position:absolute; left:12px; top:6px; color:var(--muted); }
.search .input { padding-left:30px; background:#f9f8f6; border-color:#0000001a; border-radius:6px; }
.workspace-label { margin-bottom:12px; }
.nav-link { gap:4px; font-weight:600; white-space:nowrap; }
.nav-link img { flex-shrink:0; }
.nav-chevron { margin-left:auto; transform:rotate(-90deg); }
.users-icon { position:relative; width:16px; height:16px; flex-shrink:0; }
.users-icon img { position:absolute; }
.user-center { left:2.76px; top:1.5px; }.user-right { left:11.24px; top:2.69px; }.user-left { left:-.5px; top:2.69px; transform:scaleX(-1); }
hr { border:0; border-top:1px solid #0000000d; margin:24px 0 0; }
.account { display:block; border:0; padding:0; }
.account summary { display:flex; gap:6px; align-items:center; cursor:pointer; list-style:none; color:var(--text-strong); font-family:Manrope,sans-serif; }
.account summary>img { margin-left:auto; }.account p { margin-top:12px; }.account summary::-webkit-details-marker { display:none; }
.main { width:100%; max-width:1200px; margin-inline:auto; border:1px solid #0000001a; border-left:0; }
.summary { gap:12px; border-radius:6px; }.summary-label { font-size:14px; }.summary-value { line-height:1.4; margin-top:6px; }.summary-divider { position:relative; width:1px; align-self:stretch; }.summary-divider img { position:absolute; left:0; top:50%; transform:translateX(-50%) rotate(90deg); }
.section { margin-top:24px; }.section-header { align-items:flex-end; }.section-title { border-color:#a7d5c65e; padding:0; }.section-title h2 { display:inline-block; padding:8px 0; border-bottom:1px solid var(--heading); margin-bottom:-1px; }
.section-header .select { min-width:180px; width:180px; min-height:32px; padding:6px 36px 6px 12px; appearance:none; background: white url('../images/finforward/imgChevronDown1.svg') right 10px center no-repeat; font-family:var(--font-heading); }
.table-container { border-color:#d8d8d8; border-radius:6px; }.table { table-layout:fixed; }.table th { padding:8px 6px; font-weight:600; text-align:left; }.table td { padding:6px; line-height:20px; height:52px; }.table :is(th,td):first-child { padding-left:12px; width:132px; }.table :is(th,td):nth-child(2),.table :is(th,td):nth-child(3) { width:112px; }.table td:nth-child(3) { text-align:center; }.table :is(th,td):last-child { width:138px; padding-right:12px; }.table .btn { width:120px; padding:4px 8px; gap:2px; white-space:nowrap; }.table td:nth-child(5) { overflow:hidden; }.badge { padding:0 6px; }.btn-secondary { border-color:#6fbaa5; }.session-list { display:none; }.empty { padding:24px; text-align:center; }
#page-numbers { display:flex; gap:4px; }.pagination { gap:12px; }.page-button { min-width:24px; height:24px; padding:0; }.page-button:disabled { opacity:.25; cursor:default; }
.sidebar.is-collapsed #workspace, .sidebar.is-collapsed .account { display:none; }
dialog { width:min(480px,calc(100% - 32px)); border:1px solid var(--border); border-radius:8px; padding:24px; color:var(--text); }dialog::backdrop { background:#10463f66; }dialog h2 { margin:16px 0 8px; }dialog h3 { margin:20px 0 8px; }.dialog-close { float:right; font-size:24px; }#dialog-status { margin-top:16px; color:var(--primary); }
@media (min-width:768px) and (max-width:1199px) { .app { grid-template-columns:220px minmax(0,1fr); }.brand { font-size:26px; }.main { padding:32px 24px; }.table { min-width:850px; }.nav-link { font-size:12px; } }
@media (max-width:767px) { .sidebar { min-height:0; }.account { margin-top:0; }.main { border:0; }.sidebar #workspace,.sidebar .account { display:none; }.sidebar.mobile-open #workspace,.sidebar.mobile-open .account { display:block; }.table-container { display:none; }.session-list { display:grid; }.summary { gap:10px; padding:10px; }.summary-label { font-size:12px; }.summary-value { font-size:18px; }.section-header .select { min-width:140px; width:140px; }h1 { font-size:22px; }.session-meta .badge { margin-right:auto; }.session-card .btn { gap:4px; }.session-card h3 { font-size:15px; }.main { padding:24px 16px; } }
[hidden] { display:none !important; }

@font-face { font-family: Inter; src: url('../fonts/Inter-Variable.ttf'); font-weight: 100 900; font-display: swap; }
/* Mobile reference: Figma 405:21973. */
@media (max-width:767px) {
  .app { display:block; background:#fefefe; }
  .sidebar { padding:20px 16px 16px; gap:16px; border-bottom:1px solid #0000001a; }
  .brand { font-size:28px; line-height:1.25; }
  .menu-toggle picture { display:flex; transform:rotate(-90deg); }
  .sidebar #workspace { display:block; }
  .sidebar #workspace :is(.workspace-label,.nav,hr) { display:none; }
  .sidebar.mobile-open #workspace .workspace-label { display:block; }
  .sidebar.mobile-open #workspace .nav { display:flex; }
  .search { margin-bottom:0; }
  .search .input { height:38px; padding-block:10px; box-shadow:0 1px 2px #1018280a; }
  .search>span { top:11px; }
  .sidebar.mobile-open .search { margin-bottom:16px; }
  .main { padding:24px 16px 32px; }
  h1 { font-size:24px; line-height:1.3; }
  .summary { display:flex; width:100%; flex-wrap:nowrap; padding:12px; gap:12px; margin-top:24px; align-items:flex-start; }
  .summary-item { flex:1; min-width:0; font-family:Inter,sans-serif; }
  .summary-label { font-size:12px; line-height:normal; font-weight:400; }
  .summary-value { font-size:20px; line-height:normal; margin-top:6px; white-space:nowrap; }
  .summary-value strong { font-weight:400; }
  .summary-divider { height:54px; flex-shrink:0; background:var(--border); }
  .summary-divider img { display:none; }
  .section { margin-top:24px; }
  .section-header { align-items:center; margin-bottom:24px; }
  .section-title { flex:none; border:0; }
  .section-title h2 { border-color:var(--text-strong); line-height:normal; }
  .section-header .select { width:156px; min-width:156px; height:36px; padding-block:8px; }
  .session-list { gap:16px; }
  .session-card { display:flex; flex-direction:column; gap:12px; padding:12px; border-color:#d8d8d8; background:#fefefe; }
  .session-meta { width:100%; gap:12px; flex-wrap:nowrap; margin:0; font-size:14px; line-height:normal; color:var(--text); white-space:nowrap; }
  .session-meta .badge { margin-right:auto; }
  .session-description { display:flex; flex-direction:column; gap:2px; }
  .session-card h3 { font-size:16px; font-weight:800; line-height:normal; }
  .session-card p { margin:0; color:#777; line-height:normal; }
  .session-card .btn { margin:0; height:32px; padding:4px 8px; gap:2px; }
  .pagination { margin-top:24px; }
  .page-button { font-family:var(--font-heading); font-size:10px; font-weight:600; line-height:16px; border-radius:6px; }
  .page-button picture { display:flex; }
  .pagination [data-direction="-1"]:disabled { opacity:1; }
}

/* Full-height mobile navigation overlay from Figma 430:7852. */
body.menu-open { overflow:hidden; }
dialog.mobile-menu { position:fixed; inset:0; width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:20px 16px 16px; border:0; border-bottom:1px solid #0000001a; border-radius:0; background:#fefefe; color:var(--text); transform:translateX(100%); transition:transform 280ms cubic-bezier(.22,.61,.36,1); overflow:auto; overscroll-behavior:contain; }
dialog.mobile-menu[open] { display:flex; flex-direction:column; justify-content:space-between; gap:24px; }
dialog.mobile-menu.is-open { transform:translateX(0); }
dialog.mobile-menu::backdrop { background:transparent; }
.mobile-menu-top { display:flex; flex-direction:column; gap:12px; }
.mobile-menu .brand { font-size:28px; line-height:1.25; }
.mobile-menu .workspace-label { margin:0 0 12px; }
.mobile-menu .nav { gap:8px; }
.mobile-menu .nav-link { min-height:36px; font-size:14px; border:1px solid transparent; border-radius:6px; }
.mobile-menu .nav-link[aria-current="page"] { border-color:#fdfefe; }
.mobile-menu .account { display:block; margin-top:auto; border-top:1px solid #0000000d; }
.mobile-menu .avatar { border-color:#6fbaa5; }
.mobile-menu .menu-close img { display:block; transform:rotate(90deg); }
@media (prefers-reduced-motion:reduce) { dialog.mobile-menu { transition:none; } }
