/* KolabRiset — dunia visual "editorial akademik".
   Lapisan terakhir untuk landing (index.html) dan dashboard (dashboard.html).
   Judul Bricolage Grotesque, teks UI Public Sans, kertas putih dingin, garis rambut, tanpa bayangan dekoratif. */

:root {
  --font-display: "Bricolage Grotesque", "Public Sans", system-ui, sans-serif;
  --font-ui: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ink: #12211c;
  --muted: #55635c;
  --line: #dde4e0;
  --rule: #c9d4ce;
  --bg: #f3f6f4;
  --paper: #fbfcfb;
  --surface: #ffffff;
  --cream: #f1f5f2;
  --soft: #e6f1ec;
  --green-soft: #e6f1ec;
  --rail: #0d3b30;
  --archive: #8a5a14;
  --r-sm: 6px;
  --r-md: 8px;
  --r-lg: 10px;
  --sh-1: none;
  --sh-2: 0 1px 0 rgba(18, 33, 28, .04);
  --sh-3: 0 14px 34px rgba(18, 33, 28, .12);
  --shadow: 0 1px 0 rgba(18, 33, 28, .04);
}
html[data-theme="dark"] {
  --ink: #e8efeb;
  --muted: #a5b4ad;
  --rule: #2e413a;
  --rail: #0a1a16;
  --archive: #e2b66d;
}

body { font-family: var(--font-ui); font-size: 15.5px; text-rendering: optimizeLegibility; }
h1, h2, h3, .topbar h1, .view-heading h2, .panel-heading h2 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.012em; }
.brand, .app-brand, .brand span { font-family: var(--font-ui); letter-spacing: -0.01em; }
::selection { background: color-mix(in srgb, var(--green) 22%, transparent); }
a { text-underline-offset: 3px; }
strong, b { font-variant-numeric: tabular-nums; }

/* ---------- Tombol: datar, sudut tegas ---------- */
.create-button, .save-button, .modal-action, .primary-button, .hero-cta, .white-button, .dark-button, .home-search button, #homeSearchButton {
  border-radius: var(--r-sm) !important;
  box-shadow: none !important;
  transform: none !important;
}
.create-button, .save-button, .modal-action, .primary-button, .hero-cta, .home-search button, #homeSearchButton { color: #fff; background: var(--green) !important; }
.create-button:hover, .save-button:hover, .modal-action:hover, .primary-button:hover, .hero-cta:hover, .home-search button:hover { background: #0a5a48 !important; }
.outline-button, .view-button, .mini-button { border-radius: var(--r-sm); box-shadow: none; }

/* ---------- Kartu & panel: garis rambut, tanpa bayangan ---------- */
.panel, .project-card, .cfp-card, .grant-card, .lecturer-card, .researcher-card, .step-card, .saved-card, .stats-tiles article,
.metrics .radar-card, .invitation-item, .notification-item, .admin-user, .connected-card, .account-tab-card, .feed-post, .compact-item,
.collaboration-summary > *, .ws-item, .deadline-row, .profile-tabs, .directory-tools, .own-profile-section {
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: none !important;
}
.panel:hover, .project-card:hover, .lecturer-card:hover, .researcher-card:hover, .feed-post:hover, .invitation-card:hover, .notification-item:hover, .radar-card:hover {
  transform: none !important;
  border-color: var(--rule);
}

/* =================== DASHBOARD =================== */
@media (min-width: 801px) {
  .sidebar { background: var(--rail); border-right: 0; }
  .sidebar .brand, .sidebar .brand span, .sidebar .app-brand { color: #fff; }
  .sidebar .brand span span { color: #9fe0c6; }
  .sidebar nav button, .sidebar .nav-external-link { color: #d3e6dd; border-radius: var(--r-sm); }
  .sidebar nav button .nav-svg { color: #9fc9b8; }
  .sidebar nav button:hover, .sidebar .nav-external-link:hover { color: #fff; background: rgba(255, 255, 255, .07); }
  .sidebar nav button.active { color: #fff; background: rgba(255, 255, 255, .12); }
  .sidebar nav button.active .nav-svg { color: #9fe0c6; }
  .sidebar nav button.active::before { background: #9fe0c6; }
  .sidebar .nav-group, .sidebar .nav-group-toggle { color: #9cbfb1; }
  .sidebar .nav-group-toggle:hover { color: #fff; }
  .sidebar .sidebar-profile { border-color: rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .05); box-shadow: none; }
  .sidebar .account-trigger, .sidebar .account-trigger strong { color: #fff; }
  .sidebar .account-trigger small { color: #a9c7bb; }
  .sidebar .account-trigger .menu-caret, .sidebar .account-trigger::after { color: #a9c7bb; }
  html[data-theme="dark"] .sidebar { background: var(--rail); border-right: 1px solid var(--line); }
}
.main { background: var(--bg); }

/* Kepala halaman: judul tegas, tanggal sebagai keterangan terbit (bukan label kapital) */
.topbar h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.015em; }
.topbar #pageEyebrow:not(:empty), .home-main-view .topbar p { color: var(--muted); font-size: 13.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }

/* Beranda: ringkasan sebagai lead paragraf di atas kertas, bukan banner gradien */
.hq-hero { color: var(--ink); border: 1px solid var(--line); background: var(--surface); box-shadow: none; }
.hq-summary { color: var(--ink); font: 600 21px/1.4 var(--font-display); letter-spacing: -0.01em; }
.hq-hero .home-search { border: 1px solid var(--rule); background: var(--paper); box-shadow: none; }
html[data-theme="dark"] .hq-hero { background: var(--surface); }
html[data-theme="dark"] .hq-hero .home-search { background: #0f1915; border-color: var(--line); }

/* Fokus hari ini: daftar bernomor seperti daftar isi */
.hq-focus-list { counter-reset: focus; }
.hq-focus-item { counter-increment: focus; border-radius: var(--r-sm) !important; }
.hq-focus-item .hq-focus-icon { display: none; }
.hq-focus-item::before { content: counter(focus, decimal-leading-zero); flex: none; width: 34px; color: var(--archive); font: 700 18px var(--font-display); font-variant-numeric: tabular-nums; }

/* Kartu profil samping: blok hijau tua datar */
.welcome-card { background: var(--rail); box-shadow: none; border-radius: var(--r-md); }
.welcome-card::before, .welcome-card::after { display: none; }
.welcome-card h2 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.01em; }
html[data-theme="dark"] .welcome-card { background: #10302a; border: 1px solid var(--line); }

/* Angka: tabular, warna arsip untuk tanggal */
.metrics .radar-card strong, .stats-tiles strong, .collaboration-summary strong, .admin-summary strong { font-family: var(--font-display); font-weight: 700; font-variant-numeric: tabular-nums; }
.deadline-date, .deadline-chip { font-variant-numeric: tabular-nums; }
.metric-icon { border-radius: var(--r-sm); }

/* ---------- Tanda tangan: kartu dosen sebagai entri jurnal ---------- */
.lecturer-card { grid-template-columns: 56px minmax(0, 1fr); padding: 18px 20px; background: var(--surface); }
.lecturer-avatar { width: 56px; height: 56px; border-radius: 50%; font: 700 19px var(--font-ui); }
.lecturer-content h3 { margin: 4px 0 2px; white-space: normal; font: 700 19px/1.3 var(--font-display); letter-spacing: -0.01em; }
.lecturer-content > p { white-space: normal; color: var(--muted); font-size: 13.5px; font-style: italic; }
.lecturer-grid .match-line { order: 0; margin: 10px 0 8px; padding: 8px 0 0; border-top: 1px solid var(--line); border-radius: 0; background: none; }
.lecturer-grid .match-line b { color: var(--archive); font: 700 15px var(--font-display); }
.lecturer-grid .match-line b::before { content: "Relevansi "; color: var(--muted); font: 600 12px var(--font-ui); letter-spacing: .02em; }
.lecturer-grid .match-line span { color: var(--ink); font-size: 13.5px; }
.lecturer-card .tags { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; }
.lecturer-card .tags::before { content: "Kata kunci:"; color: var(--muted); font-size: 12.5px; font-weight: 600; }
.lecturer-card .tags span { padding: 0; color: var(--ink); border: 0; background: none; font-size: 13px; font-style: italic; }
.lecturer-card .tags span:not(:last-child)::after { content: ";"; }
.lecturer-actions { margin-top: 12px; }
@media (max-width: 700px) {
  .lecturer-card { grid-template-columns: 48px minmax(0, 1fr); }
  .lecturer-avatar { width: 48px; height: 48px; }
}

/* Feed & chat tetap bersih, mengikuti garis rambut */
.feed-composer, .feed-composer-box { border-radius: var(--r-md); }
.feed-categories button { border-radius: var(--r-sm); }

/* =================== LANDING =================== */
.site-header { background: color-mix(in srgb, var(--paper) 94%, transparent); border-bottom: 1px solid var(--line); box-shadow: none; }
.hero { background: var(--paper); }
.hero::after, .hero-glow { display: none; }
.hero h1 { font: 700 clamp(44px, 5.4vw, 74px)/1.04 var(--font-display); letter-spacing: -0.02em; }
.hero h1 em { color: var(--green); font-style: normal; }
.hero-content > p { color: var(--muted); font-size: 17.5px; line-height: 1.65; max-width: 54ch; }
.community-pill { border-radius: var(--r-sm); background: var(--surface); }
.network-hero { border-radius: var(--r-md); box-shadow: none !important; }
.hero-visual::after { content: "Gambar 1. Jaringan dosen dan institusi yang terhubung di KolabRiset."; display: block; margin-top: 12px; color: var(--muted); font: italic 400 13.5px var(--font-ui); text-align: left; }
.credibility-strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.section-intro h2, .section-heading h2, .opportunity-copy h2, .final-cta h2 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.015em; }
.how-section { border-top: 0; }
.step-card { padding-top: 26px; background: var(--surface); }
.step-card .step-icon { display: none; }
.step-number { position: static; display: block; color: var(--archive); font: 700 30px var(--font-display); }
.step-card h3 { margin-top: 10px; font: 700 21px/1.3 var(--font-display); }
.step-card.featured-step { border-color: var(--rule); }
.step-arrow { color: var(--rule); }
.match-section { background: var(--cream); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.researcher-card { background: var(--surface); }
.researcher-card h3 { font: 700 19px/1.3 var(--font-display); }
.researcher-identity p { font-style: italic; }
.filter-tabs { border: 1px solid var(--line); border-radius: var(--r-sm); }
.filter-tabs button { border-radius: 4px; }
.opportunity-board { border-radius: var(--r-md); box-shadow: none; }
.final-cta { background: var(--rail); }
.cta-pattern { display: none; }
.final-cta h2 { font-size: clamp(30px, 3.6vw, 44px); }
footer { border-top: 1px solid var(--line); }

html[data-theme="dark"] .hero, html[data-theme="dark"] .site-header { background: #0b1310; }
html[data-theme="dark"] .match-section { background: #0e1714; }
html[data-theme="dark"] .final-cta { background: #0f2a24; }
html[data-theme="dark"] .hero-visual::after { color: #a5b4ad; }

@media (max-width: 600px) {
  .hero h1 { font-size: clamp(36px, 10vw, 44px); }
  .hero-content > p { font-size: 16px; }
  .hero-visual::after { font-size: 12.5px; text-align: center; }
  .topbar h1 { font-size: 24px; }
}
.hero-visual { flex-direction: column; }
.hero-visual::before, .radar-rings { display: none; }
.hero-visual::after { width: min(100%, 650px); }
.trust-line { color: var(--muted); }
.nav-group-toggle { margin: 18px 12px 6px; padding: 0; width: auto; }
html[data-theme="dark"] :is(.create-button, .save-button, .modal-action, .primary-button, .hero-cta, .home-search button, #homeSearchButton) { color: #06231a !important; }
html[data-theme="dark"] :is(.create-button, .save-button, .modal-action, .primary-button, .hero-cta, .home-search button):hover { background: #8ee6c6 !important; }
html[data-theme="dark"] .play-link { color: #c9d6d0; }
html[data-theme="dark"] .play-link b { color: #06231a; background: #4fd1a5; }
html[data-theme="dark"] :is(.primary-button, .hero-cta, .create-button, .save-button, .modal-action, #homeSearchButton) { background: #4fd1a5 !important; }
html[data-theme="dark"] .hq-summary { color: #e8efeb; }

/* ===== Perbaikan dari finish review ===== */
/* 1. Tanpa label kapital/pil di atas judul: jumlah anggota jadi baris keterangan di bawah aksi */
.hero-content { display: flex; flex-direction: column; }
.hero-content .community-pill { order: 10; width: auto; margin-top: 18px; padding: 0; border: 0; background: none; color: var(--muted); font-size: 14px; }
.hero-content .community-pill .mini-avatars, .hero-content .community-pill > i { display: none; }
.hero-content .community-pill strong { font-weight: 500; }
.project-badge { padding: 0; color: var(--archive); background: none; font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: none; }
/* 3. Gambar hero lebih tenang: tanpa wordmark dan tagline kapital di dalam figur */
.network-title, .network-fade { display: none; }
.network-hero { border: 1px solid var(--rule); }
/* 2. Contoh entri jurnal di landing (ditandai sebagai contoh) */
.journal-example { border-style: dashed; }
.journal-example .example-tag { color: var(--archive); font-size: 13px; font-weight: 700; }
.journal-example h3 { margin: 6px 0 2px; }
.entry-affiliation { margin: 0 0 12px; color: var(--muted); font-style: italic; }
.entry-relevance { margin: 0 0 8px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.5; }
.entry-relevance b { color: var(--archive); font-family: var(--font-display); }
.entry-keywords { margin: 0; font-size: 13.5px; }
.entry-keywords span { color: var(--muted); font-weight: 600; }
.researcher-grid.community-empty { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
/* 4. Fokus hari ini: baris bergaris rambut, tanpa isian warna; urgensi lewat warna nomor */
.hq-focus-list { gap: 0; }
.hq-focus-item, .tone-urgent, .tone-soon, html[data-theme="dark"] .tone-urgent, html[data-theme="dark"] .tone-soon {
  border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; background: transparent !important;
}
.hq-focus-item:last-child { border-bottom: 0 !important; }
.hq-focus-item::before { color: var(--muted); }
.tone-urgent::before { color: var(--archive); }
.tone-soon::before { color: var(--green); }
/* 5. Warna di luar palet: cincin progres & avatar */
.completion-ring { background: conic-gradient(#9fe0c6 var(--progress), rgba(255, 255, 255, .16) 0) !important; box-shadow: none !important; }
.completion-ring.complete { background: conic-gradient(#9fe0c6 360deg, #9fe0c6 0) !important; }
.completion-ring.complete strong { color: var(--rail); background: #9fe0c6; }
/* 6. Tanpa bayangan lebar dekoratif */
#floatingMessenger { box-shadow: 0 2px 6px rgba(18, 33, 28, .08); border-color: var(--rule); }
#activeChatWindow { box-shadow: 0 6px 18px rgba(18, 33, 28, .12); border-color: var(--rule); }
.account-dropdown, .notification-dropdown, .modal { box-shadow: 0 6px 18px rgba(18, 33, 28, .12) !important; }
/* 7. Kartu kolaborator di beranda: anatomi entri jurnal */
#homeMatches .home-match-item strong { font: 700 17px/1.3 var(--font-display); }
#homeMatches .home-match-item small { font-style: italic; color: var(--muted); }
#homeMatches .home-match-item small::before { content: "Kata kunci: "; font-style: normal; font-weight: 600; }
#homeMatches .home-match-score strong, #homeMatches .home-match-score b { color: var(--archive); font-family: var(--font-display); }
/* 8. Tanggal & angka dalam oker tabular; label filter tidak terpotong */
.topbar #pageEyebrow:not(:empty) { color: var(--archive); font-variant-numeric: tabular-nums; font-weight: 600; }
.sidebar nav button b, .notification-trigger b, #messengerUnread { font-variant-numeric: tabular-nums; }
@media (min-width: 701px) {
  #lecturerTools { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
  #lecturerTools .directory-search { grid-column: 1 / -1; }
  #lecturerTools select { min-width: 0; width: 100%; text-overflow: ellipsis; }
}
#activeChatWindow .message-bubble.mine { background: var(--green); } html[data-theme="dark"] #activeChatWindow .message-bubble.mine { background: #13775f; }

/* ===== Perbaikan finish review putaran 2 ===== */
html[data-theme="dark"] .hero-content .community-pill { background: none !important; border: 0 !important; color: #a5b4ad; }
@media (min-width: 801px) {
  #floatingMessenger { right: 16px; bottom: 16px; }
  #floatingMessenger.collapsed ~ #activeChatWindow { right: 16px; bottom: 80px; }
}
/* Kolaborator di Beranda: baris entri jurnal lebar, bukan kartu sempit */
#homeMatches { grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; }
#homeMatches .home-match-item { grid-template-columns: 48px minmax(0, 1fr) auto; grid-template-rows: auto; align-items: start; padding: 16px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none; }
#homeMatches .home-match-item:last-child { border-bottom: 0; }
#homeMatches .home-match-item strong { display: block; -webkit-line-clamp: unset; }
#homeMatches .home-match-affil { display: block; color: var(--muted); font-size: 13.5px; }
#homeMatches .home-match-item small { display: block; margin-top: 4px; color: var(--ink); font-style: italic; font-size: 13.5px; }
#homeMatches .home-match-item small::before { content: "Kata kunci: "; color: var(--muted); font-style: normal; font-weight: 600; }
.home-match-reason { margin: 6px 0 0; font-size: 13.5px; line-height: 1.45; }
.home-match-reason b { color: var(--archive); font-family: var(--font-display); }
#homeMatches .home-match-score { grid-column: auto; width: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
#homeMatches .home-match-score p, #homeMatches .home-match-score i { display: none; }
@media (max-width: 600px) {
  #homeMatches .home-match-item { grid-template-columns: 40px minmax(0, 1fr); }
  #homeMatches .home-match-score { grid-column: 1 / -1; align-items: stretch; }
}
html[data-theme="dark"] .researcher-card .availability { color: #9fe0c6; background: transparent; }

/* ===== Tipografi modern: Bricolage Grotesque untuk judul ===== */
h1, h2, h3, .topbar h1, .view-heading h2, .panel-heading h2 { letter-spacing: -0.025em; }
.hero h1 { font-weight: 800; letter-spacing: -0.035em; line-height: 1.02; }
.hq-summary { font-weight: 600; letter-spacing: -0.015em; }

/* ===== "Cara kerja" sebagai daftar isi bergaris rambut, bukan tiga kartu ===== */
.steps-grid { display: block; max-width: 900px; margin: 0 auto; border-top: 1px solid var(--rule); }
.step-arrow, .mini-source-stack, .scanning-demo, .matched-faces { display: none !important; }
.step-card, .step-card.featured-step {
  display: grid; grid-template-columns: 88px minmax(0, 1fr); column-gap: 28px; align-items: baseline;
  min-height: 0; padding: 28px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: none;
}
.step-card .step-number { grid-row: 1 / span 2; font: 800 46px/1 var(--font-display); letter-spacing: -0.03em; }
.step-card h3 { margin: 0 0 6px; font: 700 24px/1.25 var(--font-display); }
.step-card > p { max-width: 60ch; font-size: 16px; }
@media (max-width: 600px) {
  .step-card, .step-card.featured-step { grid-template-columns: 56px minmax(0, 1fr); column-gap: 16px; padding: 22px 0; }
  .step-card .step-number { font-size: 34px; }
  .step-card h3 { font-size: 20px; }
}
html[data-theme="dark"] .step-card, html[data-theme="dark"] .step-card.featured-step { background: none !important; border-color: var(--line); }

/* Gambar bernomor kedua: papan peluang */
.opportunity-board::after { content: "Gambar 2. Peluang riset dan tenggat hibah/CFP terdekat, diperbarui dari data nyata."; display: block; margin: 14px 2px 0; color: var(--muted); font: italic 400 13.5px var(--font-ui); }

/* Kartu dosen nyata di landing = entri jurnal (sama dengan contoh) */
.live-researcher-card .expertise-block small { display: none; }
.live-researcher-card .expertise-block::before { content: "Kata kunci: "; color: var(--muted); font-size: 13.5px; font-weight: 600; }
.live-researcher-card .expertise-block { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px; }
.live-researcher-card .tag-row { display: inline; }
.live-researcher-card .tag-row span { padding: 0; border: 0; background: none; color: var(--ink); font-size: 13.5px; font-style: italic; }
.live-researcher-card .tag-row span:not(:last-child)::after { content: ";"; }
.live-researcher-card .researcher-identity p { font-style: italic; }
.live-researcher-card .availability { color: var(--archive); font-weight: 700; }
.live-researcher-card .availability i { display: none; }
html[data-theme="dark"] .live-researcher-card .tag-row span { color: var(--ink); }

/* Finish review putaran 3 */
.live-researcher-card .tag-row span:not(:last-child)::after { content: "; "; white-space: pre; }
.project-footer-cta { justify-content: space-between; }
.project-footer-cta small { color: var(--muted); font-size: 13.5px; }
html[data-theme="dark"] .hq-summary, html[data-theme="dark"] .hq-hero .hq-summary { color: #e8efeb !important; }
html[data-theme="dark"] .feed-composer-tools label, html[data-theme="dark"] .feed-composer-tools button { background: #121d19 !important; border-color: #2b3d37 !important; filter: none !important; color: #4fd1a5; }
html[data-theme="dark"] .feed-composer-tools label span::before, html[data-theme="dark"] .feed-composer-tools #feedEmojiButton::before { filter: invert(.85) hue-rotate(180deg) brightness(1.3); }

/* Menu samping setinggi layar & menempel, agar menu akun selalu terlihat tanpa menggulir */
@media (min-width: 801px) {
  .sidebar { height: 100vh; min-height: 0; align-self: flex-start; overflow-y: auto; scrollbar-width: thin; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .sidebar .account-trigger:hover, .sidebar .account-trigger[aria-expanded="true"] { background: rgba(255, 255, 255, .1); }
  .sidebar .sidebar-profile { margin-top: auto; flex: none; }
}

/* ===== Tampilan kosong bergaya buku besar ===== */
.ledger-empty { padding: 4px 0 2px; text-align: left; }
.ledger-empty strong { display: block; font: 700 18px/1.3 var(--font-display); letter-spacing: -0.015em; color: var(--ink); }
.ledger-empty p { max-width: 58ch; margin: 6px 0 14px; color: var(--muted); font-size: 14.5px; line-height: 1.6; }
.ledger-ghost { margin: 0 0 16px; padding: 0; list-style: none; counter-reset: ghost; border-top: 1px dashed var(--rule); }
.ledger-ghost li { counter-increment: ghost; display: flex; align-items: baseline; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--rule); color: var(--muted); font-size: 13.5px; font-style: italic; }
.ledger-ghost li::before { content: counter(ghost, decimal-leading-zero); color: color-mix(in srgb, var(--archive) 55%, transparent); font: 700 15px var(--font-display); font-style: normal; }
.ledger-action { display: flex; flex-wrap: wrap; gap: 8px; }
.panel.is-empty .home-create-strip { display: none; }
#academicFeed .ledger-empty { padding: 18px 0 6px; border-top: 1px solid var(--line); }
.feed-starters { display: flex; flex-wrap: wrap; gap: 8px; }
.feed-starters button { min-height: 40px; padding: 0 14px; color: var(--green); border: 1px solid var(--rule); border-radius: var(--r-sm); background: var(--surface); font-weight: 700; font-size: 13.5px; cursor: pointer; }
.feed-starters button:hover { border-color: var(--green); background: var(--soft); }
html[data-theme="dark"] .feed-starters button { color: #4fd1a5; background: #121d19; border-color: #2b3d37; }
.compact-list .ledger-empty, #homeProjects .ledger-empty { grid-column: 1 / -1; }
#homeProjects:has(.ledger-empty) { display: block; }
#homeDeadlineList .empty, #homeDeadlineList p { text-align: left; color: var(--muted); font-size: 14px; line-height: 1.6; }

/* ===== Kotak tulis post: satu kartu — teks, pratinjau, bilah alat ===== */
.feed-composer-box { border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); transition: border-color .15s, box-shadow .15s; }
.feed-composer-box:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 16%, transparent); }
.feed-composer .feed-composer-box textarea { display: block; min-height: 96px; padding: 14px 16px 6px; border: 0; border-radius: var(--r-md) var(--r-md) 0 0; background: transparent; box-shadow: none; resize: none; font-size: 15.5px; line-height: 1.55; overflow: hidden; }
.feed-composer .feed-composer-box textarea:focus { outline: 0; box-shadow: none; }
.feed-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px 10px 12px; border-top: 1px solid var(--line); }
.feed-toolbar-tools { display: flex; align-items: center; gap: 4px; }
.feed-tool { position: relative; display: inline-flex; align-items: center; gap: 7px; min-height: 38px; width: auto; height: auto; padding: 0 12px 0 10px; color: var(--muted); border: 0; border-radius: var(--r-sm); background: transparent; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: color .15s, background-color .15s; }
.feed-tool:hover, .feed-tool[aria-expanded="true"] { color: var(--green); background: var(--soft); }
.feed-tool svg { flex: none; }
.feed-tool input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.feed-tool:focus-within, .feed-tool:focus-visible { outline: 2px solid color-mix(in srgb, var(--green) 55%, transparent); outline-offset: 1px; }
.feed-toolbar .feed-composer-footer { display: flex; align-items: center; gap: 12px; margin: 0; }
.feed-toolbar .feed-hint { color: var(--muted); font-size: 12.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.feed-toolbar .save-button { min-height: 38px; padding: 0 20px; }

/* Pratinjau gambar di dalam kartu */
.feed-composer-box .feed-image-preview { position: relative; display: flex; align-items: center; gap: 12px; margin: 4px 12px 10px; padding: 8px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg); }
.feed-composer-box .feed-image-preview[hidden] { display: none; }
.feed-composer-box .feed-image-preview img { width: 64px; height: 64px; flex: none; border-radius: 6px; object-fit: cover; }
.feed-composer-box .feed-image-preview > div { flex: 1; min-width: 0; }
.feed-composer-box .feed-image-preview strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; }
.feed-composer-box .feed-image-preview small { color: var(--muted); font-size: 12.5px; }
.feed-composer-box .feed-image-preview #feedImageRemove { flex: none; width: 32px; height: 32px; min-height: 0; padding: 0; display: grid; place-items: center; color: var(--muted); border: 0; border-radius: 50%; background: transparent; font-size: 22px; line-height: 1; }
.feed-composer-box .feed-image-preview #feedImageRemove:hover { color: var(--ink); background: var(--line); }

/* Panel emoji: berkelompok, muncul di atas bilah alat */
.feed-emoji-picker { position: absolute; left: 8px; right: auto; bottom: calc(100% - 54px); top: auto; width: min(392px, calc(100% - 16px)); max-height: 300px; padding: 6px 12px 12px; display: block; overflow-y: auto; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); box-shadow: 0 8px 24px rgba(18, 33, 28, .14); z-index: 40; transform-origin: bottom left; }
.feed-emoji-picker[hidden] { display: none; }
.feed-emoji-group h4 { margin: 10px 4px 4px; color: var(--muted); font: 600 12px var(--font-ui); letter-spacing: .01em; }
.feed-emoji-group > div { display: grid; grid-template-columns: repeat(8, 1fr); gap: 2px; }
.feed-emoji-picker button { width: 100%; height: auto; aspect-ratio: 1; min-height: 38px; padding: 0; border: 0; border-radius: 8px; background: transparent; font-size: 22px; line-height: 1; transition: background-color .12s, transform .12s; }
.feed-emoji-picker button:hover { background: var(--soft); transform: scale(1.12); }
html[data-theme="dark"] .feed-composer-box { background: #0f1915; border-color: #2b3d37; }
html[data-theme="dark"] .feed-toolbar { border-color: #24332e; }
html[data-theme="dark"] .feed-tool:hover, html[data-theme="dark"] .feed-tool[aria-expanded="true"] { color: #4fd1a5; background: rgba(79, 209, 165, .12); }
html[data-theme="dark"] .feed-emoji-picker { background: #121d19; border-color: #2b3d37; box-shadow: 0 8px 24px rgba(0, 0, 0, .5); }
html[data-theme="dark"] .feed-composer-box .feed-image-preview { background: #121d19; }
@media (max-width: 600px) {
  .feed-toolbar { flex-wrap: wrap; }
  .feed-toolbar .feed-composer-footer { width: 100%; justify-content: space-between; }
  .feed-tool span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .feed-tool { padding: 0 11px; }
  .feed-emoji-picker { left: 4px; width: calc(100% - 8px); }
  .feed-emoji-group > div { grid-template-columns: repeat(8, 1fr); }
}

/* ===== Perbaikan critique putaran 3 ===== */
/* Beranda: satu kartu "Mulai dari sini" menggantikan tiga tampilan kosong */
.home-starter-lead { margin: 0 0 8px; color: var(--muted); font-size: 14.5px; }
.home-starter-steps { margin: 0; padding: 0; list-style: none; counter-reset: step; }
.home-starter-steps li { counter-increment: step; display: flex; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.home-starter-steps li::before { content: counter(step, decimal-leading-zero); flex: none; width: 34px; color: var(--archive); font: 700 18px var(--font-display); font-variant-numeric: tabular-nums; }
.home-starter-steps li > div { flex: 1; min-width: 0; }
.home-starter-steps strong { display: block; font-size: 15px; }
.home-starter-steps small { color: var(--muted); font-size: 13.5px; }
.home-all-empty #homeProjects, .home-all-empty .home-create-strip { display: none; }
.home-all-empty .hq-duo > .panel:has(#homeProjects), .home-all-empty .deadline-panel, .home-all-empty .academic-feed-panel .ledger-empty { display: none; }
body[data-view="home"] #messengerUnread { display: none; }

/* Pesan di desktop: dok hanya penunjuk */
@media (min-width: 801px) {
  #floatingMessenger { height: 52px !important; width: auto; min-width: 150px; }
  #floatingMessenger .messenger-body, #floatingMessenger .messenger-chevron { display: none; }
  #floatingMessenger .messenger-toggle { padding-right: 14px; }
}
.chat-more { position: relative; }
.chat-more[hidden] { display: none; }
.chat-more-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 230px; padding: 6px; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); box-shadow: 0 8px 24px rgba(18, 33, 28, .14); }
.chat-more-menu[hidden] { display: none; }
.chat-more-menu button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 0 12px; color: #a3203a; border: 0; border-radius: var(--r-sm); background: transparent; font-size: 14px; font-weight: 600; text-align: left; }
.chat-more-menu button:hover { background: #ffe9ec; }
html[data-theme="dark"] .chat-more-menu { background: #121d19; border-color: #2b3d37; }
html[data-theme="dark"] .chat-more-menu button { color: #ffb4a8; }
html[data-theme="dark"] .chat-more-menu button:hover { background: #3a1d1a; }

/* Pemilih jenis post */
.feed-kind-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; width: fit-content; padding: 0 12px; color: var(--muted); border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); font-size: 13.5px; cursor: pointer; }
.feed-kind-toggle b { color: var(--ink); font-weight: 600; }
.feed-kind-toggle:hover { border-color: var(--rule); }
.feed-kind-toggle svg { transition: transform .2s; }
.feed-kind-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.feed-categories.is-collapsed { display: none; }

/* Daftar Dosen: filter dilipat di semua lebar */
#lecturerTools .filter-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 16px; color: var(--ink); border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); font-weight: 600; }
#lecturerTools .filter-toggle b { min-width: 20px; height: 20px; display: inline-grid; place-items: center; color: #fff; border-radius: 99px; background: var(--green); font-size: 11px; }
#lecturerTools:not(.filters-open) select { display: none; }
@media (min-width: 701px) { #lecturerTools { display: flex; flex-wrap: wrap; } #lecturerTools .directory-search { flex: 1 1 320px; grid-column: auto; } #lecturerTools.filters-open select { flex: 1 1 200px; } }

/* Menu akun berkelompok */
.menu-group { padding: 6px 0; border-top: 1px solid var(--line); }
.menu-group-label { margin: 4px 16px 2px; color: var(--muted); font: 600 12px var(--font-ui); letter-spacing: .02em; }

/* Profil: jarak label-isian & tombol simpan tidak menutupi isian */
.profile-editor label { display: block; margin-top: 4px; }
.form-grid { gap: 14px 16px; margin-bottom: 14px; }
.profile-tab-host { padding-bottom: 24px; }

/* Aksesibilitas */
:focus-visible { outline: 3px solid color-mix(in srgb, var(--green) 70%, transparent); outline-offset: 2px; }
html[data-theme="dark"] :focus-visible { outline-color: #4fd1a5; }
::placeholder { color: #66736d !important; }
html[data-theme="dark"] ::placeholder { color: #93a59d !important; }
#homeView .completion-ring span { font-size: 11px; }

/* Landing: bagian "Data Anda, kendali Anda" & penyempurnaan */
.data-control { padding-block: 72px 24px; max-width: 900px; margin-inline: auto; }
.data-control h2 { margin: 0 0 20px; font: 700 clamp(26px, 3vw, 34px)/1.15 var(--font-display); letter-spacing: -0.025em; }
.data-control-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rule); }
.data-control-list li { display: grid; grid-template-columns: minmax(180px, 260px) 1fr; gap: 8px 28px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.data-control-list strong { font-size: 16px; }
.data-control-list span { color: var(--muted); font-size: 15px; line-height: 1.6; }
@media (max-width: 700px) { .data-control-list li { grid-template-columns: 1fr; } .data-control { padding-block: 48px 12px; } }
.live-researcher-card .card-top { display: none; }
.researcher-grid { align-items: stretch; }
.journal-example .example-tag { display: block; margin-bottom: 4px; }

/* ===================== KARTU RINGKAS: HIBAH, CFP, DOSEN ===================== */

/* ---- Hibah & CFP: listing dengan blok tenggat di kiri ---- */
.cfp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.prog-card { display: grid !important; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 18px !important; background: var(--surface); cursor: pointer; transition: border-color .15s; }
.prog-card:hover, .prog-card:focus-visible { border-color: var(--rule); }
.prog-date { align-self: start; display: grid; justify-items: center; gap: 0; padding: 10px 6px 8px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg); text-align: center; font-variant-numeric: tabular-nums; }
.prog-date b { font: 800 30px/1 var(--font-display); letter-spacing: -0.03em; color: var(--ink); }
.prog-date span { margin-top: 2px; color: var(--muted); font-size: 12.5px; font-weight: 600; text-transform: capitalize; }
.prog-date em { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line); width: 100%; color: var(--muted); font-size: 11.5px; font-style: normal; font-weight: 600; line-height: 1.25; }
.prog-date.deadline-urgent { background: #fbeee8; border-color: #efc7b6; }
.prog-date.deadline-urgent b, .prog-date.deadline-urgent em { color: #a8431a; }
.prog-date.deadline-soon b, .prog-date.deadline-soon em { color: var(--archive); }
.prog-date.deadline-past { opacity: .6; }
.prog-date.deadline-none b { color: var(--muted); font-size: 22px; }
html[data-theme="dark"] .prog-date { background: #0f1915; border-color: #24332e; }
html[data-theme="dark"] .prog-date.deadline-urgent { background: #2b1a14; border-color: #5a2f1e; }
html[data-theme="dark"] .prog-date.deadline-urgent b, html[data-theme="dark"] .prog-date.deadline-urgent em { color: #ffb08a; }
.prog-main { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.prog-main h3 { margin: 0; font: 700 17px/1.3 var(--font-display); letter-spacing: -0.015em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prog-organizer { margin: 0; color: var(--muted); font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prog-summary { margin: 4px 0 0; color: var(--ink); font-size: 14px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prog-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.prog-tags span { padding: 2px 9px; color: var(--muted); border: 1px solid var(--line); border-radius: 99px; font-size: 12.5px; }
.prog-tags .prog-mode { color: var(--green-dark); border-color: color-mix(in srgb, var(--green) 35%, var(--line)); background: var(--soft); font-weight: 600; }
.prog-dates { margin: 6px 0 0; color: var(--muted); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.prog-actions { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.prog-save { width: 38px; height: 38px; min-height: 0; padding: 0; display: grid; place-items: center; color: var(--muted); border: 1px solid var(--line); border-radius: var(--r-sm); background: transparent; }
.prog-save:hover { color: var(--green); border-color: var(--rule); }
.prog-save.saved { color: var(--green); border-color: color-mix(in srgb, var(--green) 45%, var(--line)); background: var(--soft); }
.prog-source { margin-right: auto; padding: 0 4px; color: var(--green); font-size: 13.5px; font-weight: 600; text-decoration: none; }
.prog-source:hover { text-decoration: underline; }
.prog-actions .prog-save + .prog-primary { margin-left: auto; }
.prog-primary { min-height: 38px; padding: 0 16px; color: #fff; border: 0; border-radius: var(--r-sm); background: var(--green); font-size: 13.5px; font-weight: 700; }
.prog-primary:hover { background: #0a5a48; }
html[data-theme="dark"] .prog-primary { color: #06231a; background: #4fd1a5; }
html[data-theme="dark"] .prog-primary:hover { background: #8ee6c6; }
html[data-theme="dark"] .prog-source { color: #4fd1a5; }
.prog-card .cfp-admin-actions { margin-top: 8px; }
@media (max-width: 1100px) { .cfp-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) {
  .prog-card { grid-template-columns: 62px minmax(0, 1fr); gap: 12px; padding: 14px !important; }
  .prog-date b { font-size: 24px; }
  .prog-date em { font-size: 10.5px; }
}

/* ---- Dosen: kartu horizontal ringkas dengan skor di pojok ---- */
.lecturer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 900px) { .lecturer-grid { grid-template-columns: minmax(0, 1fr); } }
.lecturer-card.lc { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; padding: 16px 18px; align-items: start; min-height: 0; }
.lecturer-card.lc .lecturer-avatar { width: 52px; height: 52px; border-radius: 50%; font: 700 18px var(--font-ui); }
.lc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.lc-title { min-width: 0; }
.lc-title h3 { margin: 0; font: 700 17px/1.3 var(--font-display); letter-spacing: -0.015em; white-space: normal; }
.lc-title p { margin: 1px 0 0; color: var(--muted); font-size: 13.5px; font-style: italic; white-space: normal; overflow: visible; }
.lc-score { flex: none; display: grid; justify-items: center; min-width: 54px; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--bg); line-height: 1.1; font-variant-numeric: tabular-nums; }
.lc-score b { color: var(--archive); font: 800 18px var(--font-display); letter-spacing: -0.02em; }
.lc-score span { color: var(--muted); font-size: 11.5px; font-weight: 600; }
.lecturer-card.lc .lecturer-meta { margin: 8px 0 0; }
.lecturer-card.lc .lecturer-meta .meta-verified { color: var(--green-dark); }
.lecturer-card.lc .lecturer-meta .meta-verified::before { background: var(--green); }
.lc-reason { margin: 8px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lc-keywords { margin: 4px 0 0; font-size: 13px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lc-keywords span { color: var(--muted); font-weight: 600; }
.lecturer-card.lc .lecturer-actions { margin-top: 12px; display: flex; gap: 8px; }
.lecturer-card.lc .lecturer-actions > * { flex: 1; min-height: 38px; }
html[data-theme="dark"] .lc-score { background: #0f1915; border-color: #24332e; }
html[data-theme="dark"] .lc-score b { color: #e2b66d; }
@media (max-width: 520px) {
  .lecturer-card.lc { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 14px; }
  .lecturer-card.lc .lecturer-avatar { width: 44px; height: 44px; font-size: 16px; }
}
.prog-main { flex: 1; }
.prog-actions { margin-top: auto; }
.prog-summary + .prog-tags, .prog-organizer + .prog-tags { margin-top: 8px; }
.prog-main .prog-dates { margin-bottom: 10px; }
.prog-card .cfp-admin-actions { display: flex; gap: 14px; margin: 8px 0 0; padding: 0; justify-content: flex-start; }
.prog-card .cfp-admin-actions button { min-height: 0; width: auto; padding: 0; color: var(--muted); border: 0; background: none; font-size: 12.5px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.prog-card .cfp-admin-actions button:hover { color: var(--ink); }
.prog-card .cfp-admin-actions .danger-action { color: #a3203a; }
html[data-theme="dark"] .prog-card .cfp-admin-actions .danger-action { color: #ffb4a8; }

/* ---- Peluang riset: kartu listing dengan avatar pemilik ---- */
.project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1100px) { .project-grid { grid-template-columns: minmax(0, 1fr); } }
.prog-card.proj-card { grid-template-columns: 48px minmax(0, 1fr); }
.proj-avatar { width: 48px; height: 48px; display: grid; place-items: center; overflow: hidden; color: #fff; border-radius: 50%; font: 700 16px var(--font-ui); }
.proj-avatar img { width: 100%; height: 100%; object-fit: cover; }
.proj-seeking { margin: 6px 0 0; font-size: 13.5px; line-height: 1.5; }
.proj-seeking span { color: var(--muted); font-weight: 600; }
.proj-card .prog-actions { justify-content: flex-end; }
.proj-card .prog-primary:disabled { color: var(--muted); border: 1px solid var(--line); background: transparent; cursor: default; }
html[data-theme="dark"] .proj-card .prog-primary:disabled { color: #a5b4ad; background: transparent; }
.proj-card .owner-project-actions { flex-wrap: wrap; align-items: center; }
.proj-card .owner-project-actions button:disabled { opacity: .5; cursor: not-allowed; text-decoration: none; }
.proj-card .project-lock-note { margin: 0; color: var(--muted); font-size: 12px; }
@media (max-width: 520px) { .prog-card.proj-card { grid-template-columns: 40px minmax(0, 1fr); } .proj-avatar { width: 40px; height: 40px; font-size: 14px; } }

html[data-theme="dark"] .proj-card .cfp-admin-actions .delete-project,
html[data-theme="dark"] .proj-card .danger-action { color: #ffb4a8; }
html[data-theme="dark"] .proj-card .delete-project { background: transparent; border-color: rgba(255,180,168,.35); }
html[data-theme="dark"] .proj-card .owner-project-actions button:disabled { background: transparent; color: #9fb0a9; border-color: var(--line); }
html[data-theme="dark"] .proj-card .delete-project.danger-action { background: transparent !important; border-color: rgba(255,180,168,.35) !important; }

/* Beranda: baris statistik mengisi lebar penuh, kartu rata dan sejajar */
#homeView .hq-metrics, #homeView .hq-metrics[data-count] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 18px !important; align-items: stretch; }
#homeView .hq-metrics .radar-card { min-height: 84px; align-items: center; }
#homeView .hq-metrics .radar-card > div { display: grid; grid-template-columns: auto; gap: 2px; align-content: center; }
#homeView .hq-metrics .radar-card strong { order: 0; margin: 0; }
#homeView .hq-metrics .radar-card small { order: 1; margin: 0; }
#homeView .hq-metrics .radar-card > div::after { display: none; }
.hq-grid { gap: 18px; }
.hq-main, .hq-side { gap: 18px; }
.hq-side > .panel, .hq-side > .welcome-card, .hq-main > .panel { margin: 0; }
.hq-focus-count:empty { display: none; }
.hq-focus .hq-focus-list { margin: 0; }
.deadline-panel #homeDeadlineList { padding: 0; margin: 0; }
.deadline-panel #homeDeadlineList .empty, .deadline-panel #homeDeadlineList p { margin: 0; padding: 0; }
.deadline-panel { padding-bottom: 20px; }
.hq-duo .panel > .compact-list, .hq-main .panel > .compact-list { margin-top: 12px; }
.hq-main > .panel .panel-heading { margin-bottom: 0; align-items: center; }

/* Beranda: "Tim yang sedang dibentuk" jadi baris penuh; tenggat tidak terpotong */
#homeProjects { grid-template-columns: 1fr !important; gap: 0; }
#homeProjects > .compact-item { grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-rows: auto; align-items: center; gap: 14px; padding: 14px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
#homeProjects > .compact-item:last-child { border-bottom: 0; }
#homeProjects > .compact-item > :is(button, b, a):last-child { grid-column: auto; width: auto; padding: 8px 16px; }
#homeProjects > .compact-item strong { -webkit-line-clamp: 1; }
.deadline-panel, .hq-side .deadline-panel { overflow: visible; height: auto; }
#homeDeadlineList { display: grid; gap: 0; max-height: none; overflow: visible; }
#homeDeadlineList .deadline-row { padding: 12px 0; min-height: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
#homeDeadlineList .deadline-row:last-child { border-bottom: 0; }
#homeDeadlineList { grid-template-columns: minmax(0, 1fr); min-width: 0; }
#homeDeadlineList .deadline-row { min-width: 0; max-width: 100%; }
#homeDeadlineList .deadline-row > div { min-width: 0; flex: 1 1 0; overflow: hidden; }
#homeDeadlineList .deadline-row > :last-child:not(div) { flex: none; }

/* Halaman Pesan: pas satu layar, tanpa gulir halaman */
@media (min-width: 801px) { .messages-page { height: calc(100vh - 196px); height: calc(100dvh - 196px); min-height: 440px; } }
