  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  :root {
    --bg: #F2F0EB;
    --surface: #FFFFFF;
    --surface-2: #EDEAE3;
    --text-primary: #111110;
    --text-secondary: #706F6A;
    --text-hint: #A8A7A2;
    --border: rgba(0,0,0,0.10);
    --border-md: rgba(0,0,0,0.18);
    --border-strong: rgba(0,0,0,0.28);
  }

  body {
    font-family: 'DM Sans', sans-serif;
    background: var(--bg);
    color: var(--text-primary);
    min-height: 100vh;
    padding: 48px 24px 80px;
  }

  .page { max-width: 780px; margin: 0 auto; }

  /* ── HEADER ── */
  .header {
    display: grid; grid-template-columns: 1fr auto;
    gap: 24px; align-items: start;
    background: var(--surface); border: 0.5px solid var(--border-md);
    border-radius: 16px; padding: 32px 32px 28px; margin-bottom: 20px;
  }
  .logo-row { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
  .logo-mark {
    width: 32px; height: 32px;
    border: 1.5px solid var(--border-strong);
    border-radius: 5px; display: flex; align-items: center; justify-content: center;
  }
  .logo-mark svg { width: 18px; height: 18px; stroke: var(--text-primary); }
  .logo-text {
    font-family: 'Syne', sans-serif; font-size: 11px; font-weight: 600;
    letter-spacing: 0.12em; color: var(--text-secondary); text-transform: uppercase;
  }
  .header-title {
    font-family: 'Syne', sans-serif; font-size: 26px; font-weight: 800;
    color: var(--text-primary); line-height: 1.15; margin-bottom: 6px;
  }
  .header-sub {
    font-size: 13px; color: var(--text-secondary);
    font-weight: 300; letter-spacing: 0.025em;
  }
  .header-right {
    text-align: right; display: flex;
    flex-direction: column; align-items: flex-end; gap: 10px;
  }
  .date-pill {
    font-family: 'Syne', sans-serif; font-size: 11px; letter-spacing: 0.1em;
    color: var(--text-secondary); border: 0.5px solid var(--border-md);
    border-radius: 20px; padding: 5px 13px;
  }

  /* ── PROGRESS BAR ── */
  .pbar-wrap {
    height: 3px; background: rgba(0,0,0,0.08);
    border-radius: 2px; margin-bottom: 20px; overflow: hidden;
  }
  .pbar-fill {
    height: 100%; width: 0%; background: var(--text-primary);
    border-radius: 2px; transition: width 0.4s ease;
  }

  /* ── SUMMARY CARDS ── */
  .summary-row {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 10px; margin-bottom: 28px;
  }
  .sum-card {
    background: var(--surface); border: 0.5px solid var(--border);
    border-radius: 12px; padding: 14px 12px; text-align: center;
  }
  .sum-num {
    font-family: 'Syne', sans-serif; font-size: 20px; font-weight: 700;
    color: var(--text-primary); line-height: 1;
  }
  .sum-lbl {
    font-size: 11px; color: var(--text-secondary);
    margin-top: 4px; letter-spacing: 0.04em;
  }

  /* ── GROUP LABEL ── */
  .group-label {
    font-family: 'Syne', sans-serif; font-size: 10px; font-weight: 700;
    color: var(--text-hint); letter-spacing: 0.12em; text-transform: uppercase;
    margin: 24px 0 8px 2px;
  }

  /* ── SECTIONS ── */
  .section {
    background: var(--surface); border: 0.5px solid var(--border);
    border-radius: 12px; margin-bottom: 8px; overflow: hidden;
    transition: border-color 0.2s, opacity 0.3s;
  }
  .section.done { opacity: 0.55; }
  .sec-header {
    display: flex; align-items: center; gap: 14px;
    padding: 15px 18px; cursor: pointer; user-select: none;
    transition: background 0.15s;
  }
  .sec-header:hover { background: var(--surface-2); }
  .sec-num {
    font-family: 'Syne', sans-serif; font-size: 10px; font-weight: 700;
    color: var(--text-hint); letter-spacing: 0.08em; min-width: 20px;
  }
  .sec-title {
    font-family: 'Syne', sans-serif; font-size: 13px; font-weight: 600;
    color: var(--text-primary); flex: 1; letter-spacing: 0.015em;
  }
  .sec-owner {
    font-size: 10.5px; color: var(--text-hint);
    font-weight: 500; letter-spacing: 0.04em;
    border: 0.5px solid var(--border-md); border-radius: 20px;
    padding: 2px 9px; flex-shrink: 0;
  }
  .check-btn {
    width: 22px; height: 22px; border-radius: 50%;
    border: 1.5px solid var(--border-md); background: transparent;
    cursor: pointer; display: flex; align-items: center;
    justify-content: center; flex-shrink: 0;
    transition: all 0.2s; color: transparent; font-size: 12px;
  }
  .check-btn:hover { border-color: var(--border-strong); background: var(--surface-2); }
  .check-btn.checked { background: var(--text-primary); border-color: var(--text-primary); color: #fff; }
  .chevron {
    font-size: 15px; color: var(--text-hint);
    transition: transform 0.25s; flex-shrink: 0;
  }
  .section.open .chevron { transform: rotate(180deg); }

  /* ── SECTION BODY ── */
  .sec-body {
    display: none; padding: 0 18px 18px;
    border-top: 0.5px solid var(--border);
  }
  .section.open .sec-body { display: block; }

  /* ── SUB-SECTIONS ── */
  .sub-section {
    margin-top: 14px; border: 0.5px solid var(--border);
    border-radius: 10px; overflow: hidden;
  }
  .sub-sec-header {
    display: flex; align-items: center; gap: 10px;
    padding: 11px 14px; cursor: pointer; user-select: none;
    background: var(--bg); transition: background 0.15s;
  }
  .sub-sec-header:hover { background: var(--surface-2); }
  .sub-sec-title {
    font-family: 'Syne', sans-serif; font-size: 11.5px; font-weight: 700;
    color: var(--text-primary); flex: 1; letter-spacing: 0.02em;
  }
  .sub-sec-count {
    font-size: 10px; color: var(--text-hint); letter-spacing: 0.02em; flex-shrink: 0;
  }
  .sub-chevron {
    font-size: 13px; color: var(--text-hint); transition: transform 0.25s;
  }
  .sub-section.open .sub-chevron { transform: rotate(180deg); }
  .sub-sec-body {
    display: none; padding: 4px 14px 14px;
    border-top: 0.5px solid var(--border); background: var(--surface);
  }
  .sub-section.open .sub-sec-body { display: block; }

  /* ── BULLETS ── */
  .bgroup { margin-top: 14px; }
  .bgroup-label {
    font-size: 10px; font-weight: 500; color: var(--text-hint);
    letter-spacing: 0.09em; text-transform: uppercase; margin-bottom: 7px;
  }
  .bullet {
    display: flex; gap: 9px; align-items: flex-start;
    padding: 4px 0; font-size: 13px;
    color: var(--text-primary); line-height: 1.6;
  }
  .bdot {
    width: 4px; height: 4px; border-radius: 50%;
    background: var(--border-strong); margin-top: 7px; flex-shrink: 0;
  }
  .sub-bullet {
    display: flex; gap: 9px; align-items: flex-start;
    padding: 3px 0 3px 18px; font-size: 12.5px;
    color: var(--text-secondary); line-height: 1.55;
  }
  .sdot {
    width: 3px; height: 3px; border-radius: 50%;
    background: var(--border-md); margin-top: 6px; flex-shrink: 0;
  }

  /* ── PROPOSAL / HIGHLIGHT BLOCK ── */
  .proposal-block {
    margin-top: 12px; background: var(--bg);
    border: 0.5px solid var(--border-md);
    border-radius: 10px; padding: 14px 16px;
  }
  .proposal-block-label {
    font-family: 'Syne', sans-serif; font-size: 10px; font-weight: 700;
    color: var(--text-hint); letter-spacing: 0.12em;
    text-transform: uppercase; margin-bottom: 10px;
  }
  .proposal-text {
    font-size: 12.5px; color: var(--text-primary);
    line-height: 1.7;
  }
  .proposal-text + .proposal-text { margin-top: 10px; }

  /* ── DATA TABLE ── */
  .data-table-wrap {
    border: 0.5px solid var(--border-md); border-radius: 10px;
    overflow: hidden; margin-top: 14px;
  }
  table.data-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
  .data-table thead th {
    text-align: left; font-family: 'Syne', sans-serif; font-size: 9px;
    font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
    color: var(--text-hint); background: var(--bg);
    padding: 8px 8px; border-bottom: 0.5px solid var(--border-md);
    word-break: break-word;
  }
  .data-table tbody td {
    font-size: 11.5px; color: var(--text-primary); line-height: 1.5;
    padding: 9px 8px; border-bottom: 0.5px solid var(--border);
    vertical-align: top; word-break: break-word; overflow-wrap: break-word;
  }
  .data-table tbody tr:last-child td { border-bottom: none; }
  .data-table tbody tr:nth-child(even) { background: rgba(0,0,0,0.015); }
  .data-table td.col-name {
    font-family: 'Syne', sans-serif; font-weight: 700; font-size: 11.5px;
  }
  .data-table td.col-secondary { color: var(--text-secondary); }
  .data-table td.col-invest {
    font-family: 'Syne', sans-serif; font-weight: 700; font-size: 11.5px;
  }
  .data-table td.col-status { color: var(--text-secondary); font-size: 10.5px; }
  .table-caption {
    font-size: 10.5px; color: var(--text-hint); margin-top: 8px;
    text-align: right; letter-spacing: 0.02em;
  }
  .new-badge {
    display: inline-flex; align-items: center; gap: 3px;
    font-family: 'Syne', sans-serif; font-size: 8.5px; font-weight: 800;
    letter-spacing: 0.05em; color: #fff; background: var(--text-primary);
    border-radius: 5px; padding: 1.5px 6px; margin-left: 6px;
    vertical-align: middle; white-space: nowrap;
  }
  .new-badge i { font-size: 8px; }

  /* ── METRIC GRID ── */
  .metric-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
    gap: 8px; margin-top: 12px;
  }
  .metric-card {
    background: var(--bg); border: 0.5px solid var(--border-md);
    border-radius: 10px; padding: 12px 10px; text-align: center;
  }
  .metric-card.flag { background: var(--text-primary); border-color: var(--text-primary); }
  .metric-card.flag .metric-num { color: var(--surface); }
  .metric-card.flag .metric-lbl { color: rgba(255,255,255,0.65); }
  .metric-num {
    font-family: 'Syne', sans-serif; font-size: 18px; font-weight: 700;
    color: var(--text-primary); line-height: 1;
  }
  .metric-lbl {
    font-size: 10px; color: var(--text-secondary);
    margin-top: 4px; line-height: 1.3;
  }

  /* ── LINK CHIPS ── */
  .link-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
  .link-chip {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11.5px; font-weight: 500; color: var(--text-primary);
    background: var(--surface); border: 0.5px solid var(--border-md);
    border-radius: 20px; padding: 6px 13px; text-decoration: none;
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .link-chip:hover { background: var(--surface-2); }
  .link-chip i { font-size: 13px; color: var(--text-hint); flex-shrink: 0; }
  .link-chip-label {
    font-size: 9px; font-weight: 700; color: var(--text-hint);
    letter-spacing: 0.08em; text-transform: uppercase;
    margin-top: 12px; margin-bottom: 4px;
  }

  /* ── FOOTER ── */
  .footer-note {
    margin-top: 24px; padding: 13px 18px;
    background: var(--surface); border: 0.5px solid var(--border);
    border-radius: 12px; font-size: 12px; color: var(--text-secondary);
    display: flex; gap: 10px; align-items: center;
  }
  .footer-note i { font-size: 16px; flex-shrink: 0; color: var(--text-hint); }

  @media (max-width: 640px) {
    .summary-row { grid-template-columns: repeat(2, 1fr); }
  }

  @media print {
    body { background: white; padding: 20px; }
    .check-btn, .chevron, .sub-chevron { display: none; }
    .sec-body, .sub-sec-body { display: block !important; }
    .section { border: 1px solid #ddd; }
  }
