:root{
  --green:#123f2b;
  --green-2:#1d6a48;
  --green-3:#247b55;
  --soft:#eaf4ee;
  --soft-2:#f2f8f4;
  --ink:#17241d;
  --muted:#66736c;
  --line:#dfe8e2;
  --bg:#f4f8f5;
  --white:#fff;
  --warning:#a86b00;
  --warning-bg:#fff7e8;
  --danger:#a73636;
  --danger-bg:#fff1f1;
  --shadow:0 18px 50px rgba(18,63,43,.08);
  --shadow-soft:0 8px 24px rgba(18,63,43,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}
button,input,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
.wrap{width:min(1120px,calc(100% - 32px));margin:auto}
.topbar{background:var(--green);color:#fff;position:relative;z-index:20}
.topbar-inner{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand,.toplink{color:#fff;text-decoration:none}.brand{font-weight:900}.toplink{font-size:.9rem;opacity:.9}.toplink:hover{opacity:1}
.hero{padding:68px 0 52px;background:linear-gradient(135deg,#f4faf6,#fff 58%,#eef6f1);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:42px;align-items:center}
.eyebrow,.badge,.hero-card small,.section-kicker{font-size:.72rem;letter-spacing:.13em;font-weight:900;color:var(--green-2)}
h1{font-size:clamp(2.25rem,5vw,4.2rem);line-height:1.03;letter-spacing:-.045em;margin:.55rem 0 1rem}h1 span{color:var(--green-2)}
.lead{max-width:760px;color:var(--muted);font-size:1.06rem}.trust{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:22px;font-size:.92rem;color:#405148}
.hero-card,.card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.hero-card{padding:30px}.hero-card strong{display:block;font-size:1.5rem;margin:8px 0}.hero-card p,.form>p{color:var(--muted)}
.content{padding:52px 0 70px}
.auth-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:28px;align-items:start}.auth-grid[hidden]{display:none!important}
.card{padding:30px}.tabs{display:flex;gap:8px;padding:5px;background:#eff5f1;border-radius:14px;margin-bottom:26px}.tab{flex:1;border:0;background:transparent;padding:11px;border-radius:10px;font-weight:800;cursor:pointer;color:var(--ink)}.tab.active{background:#fff;color:var(--green);box-shadow:0 3px 10px rgba(0,0,0,.06)}
.form{display:none}.form.active{display:block}.form h2,.side h2{margin:0 0 5px}.form label{display:block;font-weight:750;margin:17px 0 0}.form input{width:100%;margin-top:7px;padding:13px 14px;border:1px solid #cddbd2;border-radius:12px;outline:none;background:#fff;color:var(--ink)}.form input:focus,.revision-form input:focus,.revision-form textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(29,106,72,.1)}
.password-row{display:flex;gap:8px;align-items:end}.password-row input{flex:1}.showpass{height:48px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:0 12px;cursor:pointer;color:var(--green)}.hint{display:block;color:var(--muted);margin-top:6px}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:12px 18px;font-weight:850;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:.18s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.form .btn{width:100%;margin-top:22px}.primary{background:var(--green);color:#fff}.secondary{background:#fff;color:var(--green);border-color:#cbd9d0}
.side ul{padding-left:21px;color:#405148}.side li{margin:9px 0}.privacy,.status-note{padding:14px 16px;background:var(--soft);border-radius:14px;color:#365245;font-size:.92rem}.message{display:none;margin-top:16px;padding:12px 14px;border-radius:12px}.message.show{display:block}.message.error{background:var(--danger-bg);color:var(--danger)}.message.ok{background:#eaf7ef;color:#175c39}

/* V4.4 — Dashboard peserta yang lebih fokus dan tidak membingungkan */
.dashboard{display:block}.dashboard[hidden]{display:none!important}
body.is-authenticated .hero{display:none}
body.is-authenticated .content{padding-top:34px}
@media(min-width:1100px){body.is-authenticated .wrap{width:min(1180px,calc(100% - 40px))}}

.dashboard-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,.48fr);gap:28px;align-items:center;overflow:hidden;background:linear-gradient(135deg,#0f3b29 0%,#15563b 62%,#1c6a48 100%);color:#fff;border-radius:28px;padding:30px 88px 30px 30px;margin-bottom:18px;box-shadow:0 22px 52px rgba(18,63,43,.18)}
.dashboard-hero::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-100px;bottom:-140px;background:rgba(255,255,255,.07)}
.dashboard-hero-main{display:flex;align-items:center;gap:18px;min-width:0}.participant-avatar{flex:0 0 62px;width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);font-size:1.55rem;font-weight:900;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.dashboard-identity{min-width:0}.dashboard-kicker{display:block;font-size:.7rem;letter-spacing:.13em;font-weight:900;color:#bfe2cf;margin-bottom:5px}.dashboard-identity h2{font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.15;margin:0;letter-spacing:-.025em}.registration-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;color:#d7e9df;font-size:.84rem}.registration-line code{max-width:100%;overflow-wrap:anywhere;color:#fff;background:rgba(0,0,0,.16);padding:5px 8px;border-radius:8px;font-size:.82rem}.copy-inline{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;border-radius:9px;padding:5px 9px;font-size:.76rem;font-weight:800;cursor:pointer}.copy-inline:hover{background:rgba(255,255,255,.17)}
.dashboard-hero-status{position:relative;z-index:1;border-left:1px solid rgba(255,255,255,.16);padding-left:26px}.hero-status-label{display:block;font-size:.68rem;letter-spacing:.12em;font-weight:900;color:#bfe2cf}.dashboard-hero-status strong{display:inline-flex;align-items:center;gap:7px;margin-top:7px;padding:7px 11px;border-radius:999px;background:#dff5e8;color:#125d39;font-size:.9rem}.dashboard-hero-status strong::before{content:"✓";font-weight:900}.dashboard-hero-status p{margin:10px 0 0;color:#dbece3;font-size:.88rem;line-height:1.5}
.dashboard-hero[data-status="submitted"] .dashboard-hero-status strong,.dashboard-hero[data-status="pending"] .dashboard-hero-status strong,.dashboard-hero[data-status="resubmitted"] .dashboard-hero-status strong{background:#fff1c7;color:#775400}.dashboard-hero[data-status="submitted"] .dashboard-hero-status strong::before,.dashboard-hero[data-status="pending"] .dashboard-hero-status strong::before,.dashboard-hero[data-status="resubmitted"] .dashboard-hero-status strong::before{content:"◷"}
.dashboard-hero[data-status="revision"] .dashboard-hero-status strong{background:#ffedc9;color:#7a4d00}.dashboard-hero[data-status="revision"] .dashboard-hero-status strong::before{content:"!"}.dashboard-hero[data-status="rejected"] .dashboard-hero-status strong{background:#ffe0e0;color:#8b2828}.dashboard-hero[data-status="rejected"] .dashboard-hero-status strong::before{content:"×"}
.logout-btn{position:absolute;right:20px;top:20px;z-index:2;padding:8px 12px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff;font-size:.8rem}.logout-btn:hover{background:rgba(255,255,255,.17)}

/* V4.5 — Sinkronisasi status peserta tanpa memuat ulang halaman */
.status-sync{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px}.status-sync-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-size:.76rem;font-weight:850;cursor:pointer;transition:.18s ease}.status-sync-btn:hover{background:rgba(255,255,255,.17);transform:translateY(-1px)}.status-sync-btn:disabled{opacity:.65;cursor:wait;transform:none}.last-updated{color:#c7ddd1;font-size:.72rem;line-height:1.35}.status-sync.is-error .last-updated{color:#ffd7d7}.status-sync.is-ok .last-updated{color:#d8f3e4}

/* V5.3 — Indikator koneksi & pemulihan sinkronisasi */
.status-sync-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;min-width:0}.connection-state{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:3px 8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);color:#e8f4ed;font-size:.68rem;font-weight:850;line-height:1.2;white-space:nowrap}.connection-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#8de0ae;box-shadow:0 0 0 3px rgba(141,224,174,.12)}.connection-state[data-state="syncing"]{color:#e2f3ff;border-color:rgba(198,229,247,.28);background:rgba(91,155,191,.14)}.connection-state[data-state="syncing"] .connection-dot{background:#b7ddf2;box-shadow:0 0 0 3px rgba(183,221,242,.13)}.connection-state[data-state="offline"]{color:#ffe6ad;border-color:rgba(255,218,135,.28);background:rgba(153,102,28,.16)}.connection-state[data-state="offline"] .connection-dot{background:#ffd06b;box-shadow:0 0 0 3px rgba(255,208,107,.13)}.connection-state[data-state="error"]{color:#ffd6d6;border-color:rgba(255,180,180,.28);background:rgba(146,55,55,.16)}.connection-state[data-state="error"] .connection-dot{background:#ff9f9f;box-shadow:0 0 0 3px rgba(255,159,159,.13)}

/* V4.6 — Notifikasi perubahan status setelah sinkronisasi */
.status-change-notice{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;align-items:center;margin:0 0 18px;padding:16px 52px 16px 16px;border:1px solid #bdd9c8;border-left:4px solid var(--green-2);border-radius:17px;background:linear-gradient(135deg,#f5fbf7,#fff);box-shadow:var(--shadow-soft)}.status-change-notice[hidden]{display:none!important}.status-change-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#e4f3e9;color:var(--green-2);font-size:1.15rem;font-weight:950}.status-change-copy{min-width:0}.status-change-copy h3{margin:2px 0 2px;font-size:1.02rem}.status-change-copy p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5}.status-change-action{border:1px solid #c5d9cd;background:#fff;color:var(--green);border-radius:11px;padding:9px 12px;font-size:.78rem;font-weight:850;cursor:pointer;white-space:nowrap;transition:.18s ease}.status-change-action:hover{border-color:#a9c9b6;background:#f8fbf9;transform:translateY(-1px)}.status-change-dismiss{position:absolute;right:12px;top:12px;width:28px;height:28px;border:0;border-radius:9px;background:transparent;color:#7c8b83;font-size:1.2rem;line-height:1;cursor:pointer}.status-change-dismiss:hover{background:#eef4f0;color:var(--ink)}.status-change-notice[data-status="verified"],.status-change-notice[data-status="approved"]{border-left-color:#198754;background:linear-gradient(135deg,#edf9f1,#fff)}.status-change-notice[data-status="verified"] .status-change-icon,.status-change-notice[data-status="approved"] .status-change-icon{background:#dcf4e5;color:#176d42}.status-change-notice[data-status="revision"]{border-left-color:var(--warning);background:linear-gradient(135deg,#fff9ec,#fff)}.status-change-notice[data-status="revision"] .status-change-icon{background:#fff0cf;color:#895900}.status-change-notice[data-status="rejected"]{border-left-color:var(--danger);background:linear-gradient(135deg,#fff3f3,#fff)}.status-change-notice[data-status="rejected"] .status-change-icon{background:#ffe1e1;color:var(--danger)}

/* V5.2 — Pemberitahuan saat admin memperbarui catatan tanpa mengubah status */
.admin-update-notice{border-color:#c7dce4;border-left-color:#28758a;background:linear-gradient(135deg,#f3fafc,#fff)}
.admin-update-notice .admin-update-icon{background:#e2f1f5;color:#246d80}
.admin-update-notice .status-change-action{border-color:#c3dce3;color:#245f70}
.admin-update-notice .status-change-action:hover{border-color:#9fc7d1;background:#f5fbfc}
.status-change-action:focus-visible,.status-change-dismiss:focus-visible{outline:3px solid rgba(36,123,85,.2);outline-offset:2px}

.next-action-card{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center;background:#fff;border:1px solid #cfe1d6;border-left:4px solid var(--green-2);border-radius:18px;padding:18px 20px;margin-bottom:18px;box-shadow:var(--shadow-soft)}.next-action-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--soft);color:var(--green);font-size:1.25rem;font-weight:900}.next-action-card h3{margin:2px 0 2px;font-size:1.07rem}.next-action-card p{margin:0;color:var(--muted);font-size:.9rem}.next-action-card[data-status="revision"]{border-left-color:var(--warning);background:#fffdf8}.next-action-card[data-status="revision"] .next-action-icon{background:#fff0cf;color:#895900}.next-action-card[data-status="rejected"]{border-left-color:var(--danger);background:#fffafa}.next-action-card[data-status="rejected"] .next-action-icon{background:#ffe4e4;color:var(--danger)}

/* V5.0 — Aksi utama cerdas berdasarkan status peserta */
.next-action-content{min-width:0}.next-action-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px 12px;margin-top:13px}.next-action-primary{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border:1px solid var(--green);border-radius:11px;background:var(--green);color:#fff;font:inherit;font-size:.78rem;font-weight:900;line-height:1.2;cursor:pointer;box-shadow:0 8px 18px rgba(18,63,43,.12);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.next-action-primary:hover{transform:translateY(-1px);background:#174d35;box-shadow:0 10px 22px rgba(18,63,43,.16)}.next-action-primary:focus-visible{outline:3px solid rgba(36,123,85,.2);outline-offset:2px}.next-action-primary:disabled{opacity:.62;cursor:wait;transform:none}.next-action-hint{color:#66776e;font-size:.75rem;line-height:1.4}.next-action-card[data-status="submitted"] .next-action-primary,.next-action-card[data-status="pending"] .next-action-primary,.next-action-card[data-status="resubmitted"] .next-action-primary{background:#17695d;border-color:#17695d}.next-action-card[data-status="submitted"] .next-action-primary:hover,.next-action-card[data-status="pending"] .next-action-primary:hover,.next-action-card[data-status="resubmitted"] .next-action-primary:hover{background:#12584e}.next-action-card[data-status="revision"] .next-action-primary{background:#8a5b00;border-color:#8a5b00;box-shadow:0 8px 18px rgba(138,91,0,.12)}.next-action-card[data-status="revision"] .next-action-primary:hover{background:#744d00}.next-action-card[data-status="rejected"] .next-action-primary{background:#8b3434;border-color:#8b3434;box-shadow:0 8px 18px rgba(139,52,52,.12)}.next-action-card[data-status="rejected"] .next-action-primary:hover{background:#762b2b}

.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stats article{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);padding:17px 18px;border-radius:18px;box-shadow:var(--shadow-soft);min-width:0}.stat-icon{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--green-2);font-weight:900}.stats article>div:last-child{min-width:0}.stats small{display:block;color:var(--muted);font-weight:850;letter-spacing:.065em;font-size:.65rem}.stats strong{display:block;color:var(--ink);font-size:1rem;margin-top:3px;overflow-wrap:anywhere}


/* V4.9 — Status dinamis & mobile polish */
.dashboard-hero{--hero-start:#0f3b29;--hero-mid:#15563b;--hero-end:#1c6a48;background:linear-gradient(135deg,var(--hero-start) 0%,var(--hero-mid) 62%,var(--hero-end) 100%);transition:background .28s ease,box-shadow .28s ease}
.dashboard-hero[data-status="submitted"]{--hero-start:#263f31;--hero-mid:#455b32;--hero-end:#6c6a2f}
.dashboard-hero[data-status="pending"]{--hero-start:#103b37;--hero-mid:#15584f;--hero-end:#1d7163}
.dashboard-hero[data-status="resubmitted"]{--hero-start:#123a3f;--hero-mid:#16575d;--hero-end:#23747a}
.dashboard-hero[data-status="verified"],.dashboard-hero[data-status="approved"]{--hero-start:#0f3b29;--hero-mid:#155c3d;--hero-end:#1d754d}
.dashboard-hero[data-status="revision"]{--hero-start:#473315;--hero-mid:#684a1b;--hero-end:#8b6423}
.dashboard-hero[data-status="rejected"]{--hero-start:#462528;--hero-mid:#6a3034;--hero-end:#8a4142}
.dashboard-hero[data-status="revision"],.dashboard-hero[data-status="rejected"]{box-shadow:0 22px 52px rgba(54,36,25,.17)}
.dashboard-kicker,.hero-status-label{color:rgba(255,255,255,.74)}

.stat-card-status{position:relative;overflow:hidden;transition:border-color .22s ease,background .22s ease,box-shadow .22s ease}
.stat-card-status::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#247b55}
.stat-card-status[data-status="submitted"]{background:linear-gradient(135deg,#fffdf7,#fff);border-color:#eadfbd}.stat-card-status[data-status="submitted"]::before{background:#9a7a24}.stat-card-status[data-status="submitted"] .stat-icon{background:#fff3cf;color:#7d5d06}
.stat-card-status[data-status="pending"]{background:linear-gradient(135deg,#f8fcfb,#fff);border-color:#d3e6df}.stat-card-status[data-status="pending"]::before{background:#247b6a}.stat-card-status[data-status="pending"] .stat-icon{background:#e4f3ef;color:#176657}
.stat-card-status[data-status="resubmitted"]{background:linear-gradient(135deg,#f6fbfc,#fff);border-color:#d3e5e8}.stat-card-status[data-status="resubmitted"]::before{background:#3d7f86}.stat-card-status[data-status="resubmitted"] .stat-icon{background:#e4f1f3;color:#2d6f76}
.stat-card-status[data-status="verified"],.stat-card-status[data-status="approved"]{background:linear-gradient(135deg,#f4fbf7,#fff);border-color:#cde4d5}.stat-card-status[data-status="verified"]::before,.stat-card-status[data-status="approved"]::before{background:#198754}.stat-card-status[data-status="verified"] .stat-icon,.stat-card-status[data-status="approved"] .stat-icon{background:#ddf3e5;color:#176d42}
.stat-card-status[data-status="revision"]{background:linear-gradient(135deg,#fffaf0,#fff);border-color:#ead6ad}.stat-card-status[data-status="revision"]::before{background:#b2760c}.stat-card-status[data-status="revision"] .stat-icon{background:#fff0cf;color:#895900}
.stat-card-status[data-status="rejected"]{background:linear-gradient(135deg,#fff6f6,#fff);border-color:#ebcccc}.stat-card-status[data-status="rejected"]::before{background:#ad3f3f}.stat-card-status[data-status="rejected"] .stat-icon{background:#ffe2e2;color:#9b3030}

.next-action-card[data-status="submitted"]{border-left-color:#9a7a24;background:#fffdf7}.next-action-card[data-status="submitted"] .next-action-icon{background:#fff3cf;color:#7d5d06}
.next-action-card[data-status="pending"]{border-left-color:#247b6a;background:#fbfefd}.next-action-card[data-status="pending"] .next-action-icon{background:#e4f3ef;color:#176657}
.next-action-card[data-status="resubmitted"]{border-left-color:#3d7f86;background:#f9fcfd}.next-action-card[data-status="resubmitted"] .next-action-icon{background:#e4f1f3;color:#2d6f76}
.next-action-card[data-status="verified"],.next-action-card[data-status="approved"]{border-left-color:#198754;background:#f8fcfa}.next-action-card[data-status="verified"] .next-action-icon,.next-action-card[data-status="approved"] .next-action-icon{background:#ddf3e5;color:#176d42}

.participant-timeline[data-status="submitted"] li.active .timeline-dot{background:#8a7225;border-color:#8a7225;box-shadow:0 0 0 5px rgba(138,114,37,.10)}
.participant-timeline[data-status="pending"] li.active .timeline-dot{background:#247b6a;border-color:#247b6a;box-shadow:0 0 0 5px rgba(36,123,106,.10)}
.participant-timeline[data-status="resubmitted"] li.active .timeline-dot{background:#3d7f86;border-color:#3d7f86;box-shadow:0 0 0 5px rgba(61,127,134,.11)}
.participant-timeline[data-status="revision"] li.active .timeline-dot{background:#a86b00;border-color:#a86b00;box-shadow:0 0 0 5px rgba(168,107,0,.11)}
.participant-timeline[data-status="revision"] li.active .timeline-state{background:#fff0cf;color:#895900;border-color:#f0d493}
.participant-timeline[data-status="rejected"] li.active .timeline-dot{background:#a73636;border-color:#a73636;box-shadow:0 0 0 5px rgba(167,54,54,.10)}
.participant-timeline[data-status="rejected"] li.active .timeline-state{background:#fff0f0;color:#a73636;border-color:#efcaca}

/* V4.8 — Desktop layout polish: ruang lebih padat, proporsi kolom lebih seimbang */
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(300px,.72fr);gap:18px;align-items:start;margin-bottom:18px}.dashboard-primary-column{display:grid;gap:18px;min-width:0}.dashboard-primary-column>.card{margin:0}.progress-card{margin:0}.quick-actions-card{margin:0;align-self:start}.progress-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.progress-head h3{margin:5px 0 0;font-size:1.28rem}.progress-head p{max-width:270px;margin:0;color:var(--muted);text-align:right;font-size:.88rem}.participant-timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0}.participant-timeline li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 9px}.participant-timeline li:not(:last-child)::after{content:"";position:absolute;top:18px;left:calc(50% + 21px);right:calc(-50% + 21px);height:3px;background:var(--line);z-index:0}.participant-timeline li.done:not(:last-child)::after{background:var(--green-2)}.timeline-dot{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f0f4f1;border:2px solid #cbd9d0;color:var(--muted);font-weight:900;margin-bottom:10px}.participant-timeline li.done .timeline-dot{background:var(--green-2);border-color:var(--green-2);color:#fff}.participant-timeline li.active .timeline-dot{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 0 0 5px rgba(18,63,43,.08)}.participant-timeline li.stopped .timeline-dot{border-color:var(--danger)}.participant-timeline strong{display:block;font-size:.88rem;line-height:1.35}.participant-timeline small{display:block;margin-top:4px;color:var(--muted);line-height:1.4;font-size:.76rem}.timeline-state{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:#f1f4f2;color:#758078;font-size:.62rem;font-weight:800}.participant-timeline li.done .timeline-state{background:#e6f5ec;color:#1b6a43}.participant-timeline li.active .timeline-state{background:#e8f1ec;color:var(--green);box-shadow:inset 0 0 0 1px #d1e1d7}.participant-timeline li.stopped .timeline-state{background:#fff0f0;color:var(--danger)}
.progress-alert{margin-top:22px;padding:13px 15px;border-radius:13px;background:var(--warning-bg);color:#73510d;font-size:.9rem}.progress-alert.rejected{background:var(--danger-bg);color:var(--danger)}

.quick-actions-card h3{margin:4px 0 2px;font-size:1.28rem}.card-intro{margin:0 0 16px;color:var(--muted);font-size:.88rem}.action-button{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;padding:12px;border-radius:14px;margin-top:9px;cursor:pointer;transition:.18s ease}.action-button:hover{border-color:#bdd3c5;background:#f8fbf9;transform:translateY(-1px)}.action-button.action-primary{background:var(--green);border-color:var(--green);color:#fff}.action-button.action-primary:hover{background:#174d35}.action-icon{width:38px;height:38px;border-radius:11px;background:var(--soft);display:grid;place-items:center;color:var(--green-2);font-weight:900}.action-primary .action-icon{background:rgba(255,255,255,.13);color:#fff}.action-button strong{display:block;font-size:.87rem}.action-button small{display:block;margin-top:2px;color:var(--muted);font-size:.72rem}.action-primary small{color:#d4e7dc}.action-arrow{font-size:1.4rem;color:#809087}.action-primary .action-arrow{color:#fff}.quick-actions-card .status-note{margin-top:14px;font-size:.82rem;line-height:1.45}

.admin-note-card{display:grid;grid-template-columns:44px 1fr;gap:14px;margin:0;border-left:4px solid var(--green-2);padding:22px 24px}.admin-note-card[hidden]{display:none!important}.notice-icon{width:42px;height:42px;border-radius:13px;background:var(--soft);color:var(--green);display:grid;place-items:center;font-weight:900;font-family:Georgia,serif}.admin-note-card h3{margin:4px 0 6px}.admin-note-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;color:#263d32}.admin-note-card[data-status="revision"]{border-left-color:var(--warning)}.admin-note-card[data-status="rejected"]{border-left-color:var(--danger)}

.revision-card{margin:0 0 18px;border-left:4px solid var(--warning)}.revision-card[hidden]{display:none!important}.revision-card>p{color:var(--muted)}.revision-form{margin-top:18px}.revision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.revision-form label{display:block;font-weight:750}.revision-form input,.revision-form textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #cddbd2;border-radius:11px;background:#fff;outline:none}.revision-form textarea{resize:vertical}.revision-form .full-field{grid-column:1/-1}.revision-form>.btn{margin-top:16px}.revision-form .message{margin-bottom:0}

.participant-info-card{margin-top:0}.card-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.card-heading-row h3{margin:4px 0 0;font-size:1.28rem}.privacy-badge{font-size:.72rem;font-weight:750;color:#426050;background:var(--soft-2);border:1px solid var(--line);border-radius:999px;padding:6px 9px;white-space:nowrap}.participant-info-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;margin:8px 0 0}.participant-info-list div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted);font-size:.86rem}dd{margin:0;font-weight:750;overflow-wrap:anywhere}.participant-info-list div:first-child{grid-column:1/-1}.participant-info-list div:first-child dd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}


.it-support-card{position:relative;overflow:hidden;margin-top:18px;border:1px solid #d4e4da;background:linear-gradient(145deg,#ffffff 0%,#f5faf7 64%,#edf6f0 100%);box-shadow:var(--shadow-soft)}.it-support-card::after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;right:-78px;top:-92px;background:radial-gradient(circle,rgba(29,106,72,.13),rgba(29,106,72,0) 70%);pointer-events:none}.it-support-head{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.it-support-mark{flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:var(--green);color:#fff;display:grid;place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem;font-weight:900;box-shadow:0 10px 24px rgba(18,63,43,.18)}.it-support-head h3{margin:4px 0 0;font-size:1.24rem;line-height:1.3}.it-support-desc{margin:16px 0 13px;color:#31473b;max-width:820px}.it-support-topics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.it-support-topics span{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border:1px solid #d9e7de;border-radius:999px;background:rgba(255,255,255,.78);color:#31513f;font-size:.76rem;font-weight:750}.it-support-meta{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-top:16px;border-top:1px solid #dce8e0}.it-support-meta small{display:block;color:var(--muted);font-size:.64rem;font-weight:850;letter-spacing:.09em}.it-support-meta>div>strong{display:block;margin-top:2px;color:var(--green);font-size:.96rem}.it-support-role{text-align:right}.it-support-role span{display:block;color:#344b3e;font-size:.78rem;font-weight:750}.it-support-role strong{font-size:.72rem!important;letter-spacing:.08em}.it-support-actions{display:flex;align-items:center;gap:12px;margin-top:16px}.it-support-link{gap:8px;box-shadow:0 10px 22px rgba(18,63,43,.14)}.it-support-link span{font-size:1rem;line-height:1}.it-support-url{color:var(--muted);font-size:.76rem;font-weight:750}.it-support-note{margin:13px 0 0;padding:10px 12px;border-radius:11px;background:rgba(234,244,238,.78);color:#52675a;font-size:.76rem;line-height:1.45}

footer{border-top:1px solid var(--line);background:#fff;padding:28px 0;color:var(--muted);font-size:.88rem}.footer-inner{display:flex;justify-content:space-between;gap:20px}.footer-inner strong,.footer-inner span{display:block}

@media(max-width:900px){
  .dashboard-hero{grid-template-columns:1fr;padding-right:30px}.dashboard-hero-status{border-left:0;border-top:1px solid rgba(255,255,255,.16);padding:16px 0 0}.logout-btn{right:18px;top:18px}.dashboard-main-grid{grid-template-columns:1fr}.dashboard-primary-column{gap:18px}.participant-info-list{grid-template-columns:1fr}.participant-info-list div:first-child{grid-column:auto}
}
@media(max-width:800px){
  .hero-grid,.auth-grid{grid-template-columns:1fr}.hero{padding-top:48px}.stats{grid-template-columns:1fr}.footer-inner{flex-direction:column}.progress-head{align-items:flex-start;flex-direction:column;gap:8px}.progress-head p{text-align:left;max-width:none}.participant-timeline{grid-template-columns:1fr}.participant-timeline li{min-height:78px;display:grid;grid-template-columns:42px 1fr;gap:13px;align-items:start;text-align:left;padding:0 0 18px}.participant-timeline li:not(:last-child)::after{top:38px;bottom:0;left:18px;right:auto;width:3px;height:auto}.timeline-dot{margin:0}.participant-timeline small{margin-top:2px}.timeline-state{margin-top:5px}.revision-grid{grid-template-columns:1fr}.revision-form .full-field{grid-column:auto}
}
@media(max-width:580px){
  .wrap{width:min(100% - 20px,1120px)}.content{padding:28px 0 48px}body.is-authenticated .content{padding-top:18px}.card,.hero-card{padding:20px;border-radius:18px}.toplink{font-size:.78rem}.tabs{flex-direction:column}.password-row{align-items:end}.dashboard-hero{padding:64px 18px 20px;border-radius:20px;gap:18px}.dashboard-hero-main{align-items:flex-start}.participant-avatar{width:48px;height:48px;flex-basis:48px;border-radius:14px;font-size:1.2rem}.dashboard-identity h2{font-size:1.45rem}.registration-line{align-items:flex-start}.registration-line>span{width:100%}.logout-btn{top:14px;right:14px}.dashboard-hero-status{padding-top:14px}.status-sync{align-items:flex-start;flex-direction:column}.status-sync-btn{width:100%}.last-updated{width:100%}.status-change-notice{grid-template-columns:40px minmax(0,1fr);gap:11px;padding:14px 42px 14px 14px}.status-change-icon{width:38px;height:38px;border-radius:11px}.status-change-action{grid-column:1/-1;width:100%;white-space:normal}.status-change-dismiss{right:8px;top:8px}.next-action-card{grid-template-columns:42px 1fr;padding:15px;border-radius:15px}.next-action-icon{width:40px;height:40px;border-radius:12px}.next-action-cta-row{align-items:stretch;flex-direction:column;gap:7px}.next-action-primary{width:100%;min-height:42px}.next-action-hint{text-align:center;font-size:.71rem}.stats{gap:10px}.stats article{padding:14px;border-radius:15px}.dashboard-main-grid{gap:14px;margin-bottom:14px}.dashboard-primary-column{gap:14px}.progress-card,.quick-actions-card{padding:20px}.admin-note-card{grid-template-columns:38px 1fr;padding:18px}.notice-icon{width:36px;height:36px}.card-heading-row{flex-direction:column;gap:8px}.privacy-badge{white-space:normal}.participant-info-list div{grid-template-columns:1fr;gap:3px;padding:10px 0}.participant-info-list div:first-child dd{font-size:.8rem}.it-support-card{margin-top:14px}.it-support-head{align-items:flex-start}.it-support-mark{width:44px;height:44px;flex-basis:44px;border-radius:13px}.it-support-head h3{font-size:1.08rem}.it-support-desc{font-size:.88rem}.it-support-topics{gap:6px}.it-support-topics span{font-size:.7rem;min-height:30px}.it-support-meta{align-items:flex-start;flex-direction:column;gap:10px}.it-support-role{text-align:left}.it-support-actions{align-items:stretch;flex-direction:column;gap:8px}.it-support-link{width:100%}.it-support-url{text-align:center}.it-support-note{font-size:.72rem}
}


@media(max-width:580px){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stats .stat-card-status{grid-column:1/-1}
  .stats article{min-height:76px;align-items:flex-start}
  .stats article:not(.stat-card-status){display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px}
  .stats article:not(.stat-card-status) .stat-icon{width:34px;height:34px;border-radius:10px}
  .stats strong{font-size:.92rem;line-height:1.35}
  .dashboard-hero-status strong{max-width:100%;white-space:normal;line-height:1.25}
  .next-action-card{box-shadow:0 7px 20px rgba(18,63,43,.06)}
}
@media(max-width:380px){
  .stats{grid-template-columns:1fr}
  .stats .stat-card-status{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* ===== Accessibility TTS Floating Action Button ===== */
.tts-fab-wrap{position:fixed;left:max(14px,env(safe-area-inset-left));right:auto;bottom:max(18px,env(safe-area-inset-bottom));z-index:2147483000;display:flex;align-items:center;gap:8px;direction:ltr;font-family:inherit}.tts-fab{width:54px;height:54px;border:1px solid #ffcc45;border-radius:50%;background:linear-gradient(180deg,#ffd04d,#eaa400);color:#07131c;display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 32px #0008,0 0 0 0 #ffb51b55;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;position:relative;padding:0}.tts-fab:hover,.tts-fab:focus-visible{transform:translateY(-3px) scale(1.04);filter:brightness(1.05);box-shadow:0 18px 38px #0009,0 0 0 5px #ffb51b18;outline:0}.tts-fab:active{transform:translateY(0) scale(.96)}.tts-fab.is-speaking{animation:ttsPulse 1.45s infinite}.tts-fab svg{width:23px;height:23px;fill:currentColor}.tts-fab-label{position:absolute;left:calc(100% + 11px);right:auto;white-space:nowrap;background:#031a2d;color:#dceaf2;border:1px solid #1c5c7b;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800;letter-spacing:.2px;opacity:0;pointer-events:none;transform:translateX(-6px);transition:.2s;box-shadow:0 10px 25px #0007}.tts-fab:hover .tts-fab-label,.tts-fab:focus-visible .tts-fab-label{opacity:1;transform:translateX(0)}.tts-stop{width:34px;height:34px;border:1px solid #245f7f;border-radius:50%;background:#06243a;color:#c7dce8;display:grid;place-items:center;cursor:pointer;opacity:0;transform:scale(.75);pointer-events:none;transition:.2s;padding:0}.tts-fab-wrap:hover .tts-stop,.tts-fab-wrap:focus-within .tts-stop,.tts-fab-wrap.is-active .tts-stop{opacity:1;transform:scale(1);pointer-events:auto}.tts-stop:hover,.tts-stop:focus-visible{border-color:#ffcc45;color:#ffcc45;outline:0}.tts-stop svg{width:13px;height:13px;fill:currentColor}.tts-read-highlight{background:rgba(255,204,69,.34)!important;color:inherit!important;border-radius:4px;box-shadow:0 0 0 2px rgba(255,204,69,.14);transition:background .18s ease,box-shadow .18s ease}


/* V5.3 — Mobile: indikator koneksi tetap ringkas */
@media(max-width:580px){.status-sync-meta{width:100%;gap:6px 8px}.status-sync-meta .last-updated{width:auto;flex:1 1 180px}.connection-state{flex:0 0 auto}}

/* V5.4 — Login & Aktivasi lebih mudah dipahami */
.topnav{display:flex;align-items:center;gap:16px}.portal-link{font-weight:800}
.account-flow-card{padding:25px 26px}.account-flow-card>small{display:block;margin-bottom:13px}.account-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}.account-steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;position:relative}.account-steps li:not(:last-child)::after{content:"";position:absolute;left:14px;top:29px;width:2px;height:13px;background:#d6e5db}.step-number{width:30px;height:30px;border-radius:10px;background:var(--soft);color:var(--green);display:grid;place-items:center;font-size:.76rem;font-weight:900}.account-steps strong{display:block;margin:0;font-size:.9rem;line-height:1.25}.account-steps small{display:block;margin-top:1px;color:var(--muted);font-size:.72rem;letter-spacing:0;font-weight:600}
.auth-guide{margin:0 0 17px;padding:14px 15px;border:1px solid #d5e5db;border-radius:14px;background:linear-gradient(135deg,#f5faf7,#eef6f1);color:#314a3c}.auth-guide>strong{display:block;color:var(--green);font-size:.85rem;margin-bottom:7px}.auth-guide-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-guide-options span{display:block;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.78);font-size:.76rem;line-height:1.45}.auth-guide-options b{display:block;color:var(--ink);margin-bottom:1px}.auth-guide-options strong{color:var(--green)}
.field-help{display:block;margin-top:5px;color:var(--muted);font-size:.72rem;font-weight:600;line-height:1.4}.auth-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.auth-links a{display:block;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fafcfb;color:#526158;text-decoration:none;font-size:.72rem;line-height:1.4;transition:.18s ease}.auth-links a:hover{border-color:#bdd3c5;background:var(--soft-2);transform:translateY(-1px)}.auth-links strong{display:block;margin-top:2px;color:var(--green);font-size:.76rem}.side-summary{margin:12px 0 18px;color:var(--muted);line-height:1.6}.side-feature{display:grid;gap:3px;margin:0 0 14px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fbfdfc}.side-feature strong{font-size:.8rem;color:var(--green)}.side-feature span{color:#526158;font-size:.78rem;line-height:1.5}
@media(max-width:800px){.account-flow-card{padding:22px}.auth-info-card{order:2}}
@media(max-width:580px){.topbar-inner{align-items:flex-start;flex-direction:column;padding:12px 0}.topnav{width:100%;justify-content:space-between;gap:10px}.topnav .toplink{font-size:.72rem}.hero{padding:38px 0 36px}.hero h1{font-size:clamp(2rem,11vw,3rem)}.lead{font-size:.94rem}.trust{gap:8px 12px;font-size:.76rem}.account-flow-card{padding:18px}.auth-guide-options{grid-template-columns:1fr}.tabs{flex-direction:row;margin-bottom:22px}.tab{padding:10px 8px;font-size:.82rem}.auth-links{grid-template-columns:1fr}.auth-links a{font-size:.75rem}}

/* V5.5 — Precision layout polish: rapikan blok tanpa mengubah kalimat/fungsi */
:root{
  --page-max:1180px;
  --radius-lg:22px;
  --radius-md:16px;
  --space-section:clamp(34px,4.5vw,58px);
}

/* Ritme halaman & ketepatan ukuran dasar */
.wrap{width:min(var(--page-max),calc(100% - 40px))}
main{min-width:0}
.card,.hero-card{border-radius:var(--radius-lg)}
.card,.hero-card,.dashboard-hero,.next-action-card,.status-change-notice{min-width:0}
a,button,input,textarea{min-width:0}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(36,123,85,.20);outline-offset:2px}

/* Header: sejajar, ringan, dan stabil di berbagai lebar */
.topbar-inner{min-height:56px;gap:24px}
.brand{display:inline-flex;align-items:center;line-height:1.2;white-space:nowrap}
.topnav{gap:18px;min-width:0}
.toplink{display:inline-flex;align-items:center;min-height:38px;line-height:1.2;white-space:nowrap}

/* Hero login: proporsi kolom dan baseline lebih presisi */
.hero{padding:clamp(48px,6vw,72px) 0 clamp(42px,5vw,60px)}
.hero-grid{grid-template-columns:minmax(0,1.48fr) minmax(290px,.72fr);gap:clamp(28px,4vw,50px);align-items:center}
.hero-grid>div{min-width:0;max-width:760px}
.hero h1{max-width:760px;margin:.48rem 0 .9rem;text-wrap:balance}
.lead{margin:.2rem 0 0;line-height:1.65}
.trust{align-items:center;margin-top:20px;gap:9px 18px;line-height:1.4}
.account-flow-card{width:100%;max-width:370px;justify-self:end;padding:26px 28px;box-shadow:0 16px 42px rgba(18,63,43,.075)}
.account-steps{gap:11px}
.account-steps li{min-height:34px}
.account-steps li:not(:last-child)::after{height:14px}

/* Login/aktivasi: jarak, ukuran kontrol, dan keseimbangan kartu */
.content{padding:var(--space-section) 0 clamp(56px,6vw,78px)}
.auth-grid{grid-template-columns:minmax(0,1.14fr) minmax(300px,.86fr);gap:clamp(20px,2.5vw,30px);align-items:start}
.auth-card,.auth-info-card{padding:clamp(24px,3vw,32px)}
.auth-card{box-shadow:0 18px 48px rgba(18,63,43,.075)}
.auth-info-card{box-shadow:0 14px 38px rgba(18,63,43,.06)}
.auth-guide{margin-bottom:18px;padding:15px 16px}
.auth-guide-options{gap:9px}
.auth-guide-options span{height:100%;padding:10px 11px}
.tabs{min-height:50px;margin-bottom:24px;padding:5px}
.tab{min-height:40px;padding:9px 12px}
.form h2{line-height:1.25}
.form>p{margin:7px 0 4px;line-height:1.6}
.form label{margin-top:16px}
.form input{min-height:48px;margin-top:6px;padding:12px 14px}
.password-row{gap:9px}
.password-row input{width:100%}
.showpass{flex:0 0 auto;min-width:58px;height:48px;padding:0 13px}
.form .btn{min-height:48px;margin-top:21px}
.field-help{margin-top:6px}
.auth-links{gap:9px;margin-top:13px}
.auth-links a{min-height:62px;padding:10px 12px;display:flex;flex-direction:column;justify-content:center}
.side-summary{margin:10px 0 17px}
.side-feature{margin-bottom:13px;padding:13px 14px}
.privacy{line-height:1.55}

/* Dashboard: satu sistem grid/spacing agar tidak ada blok terasa bergeser */
body.is-authenticated .content{padding-top:28px}
body.is-authenticated .wrap{width:min(var(--page-max),calc(100% - 40px))}
.dashboard>*{min-width:0}
.dashboard-hero{grid-template-columns:minmax(0,1.58fr) minmax(270px,.62fr);gap:clamp(22px,3vw,34px);padding:30px 88px 30px 30px;margin-bottom:16px;border-radius:26px}
.dashboard-hero-main{gap:17px}
.dashboard-hero-status{padding-left:24px}
.status-change-notice,.next-action-card,.stats,.dashboard-main-grid,.revision-card{margin-bottom:16px}
.status-change-notice{border-radius:16px}
.next-action-card{min-height:96px;border-radius:17px}
.stats{gap:12px}
.stats article{min-height:82px;padding:16px 17px;border-radius:17px}
.dashboard-main-grid{grid-template-columns:minmax(0,1.82fr) minmax(300px,.76fr);gap:16px}
.dashboard-primary-column{gap:16px}
.progress-card,.quick-actions-card,.participant-info-card,.it-support-card{padding:clamp(22px,2.4vw,30px)}
.progress-head{gap:20px;margin-bottom:24px}
.quick-actions-card{height:auto}
.action-button{min-height:66px;margin-top:8px;padding:11px 12px}
.admin-note-card{padding:20px 22px}
.revision-card{padding:clamp(22px,2.4vw,30px)}
.participant-info-card{margin-top:0}
.participant-info-list{gap:0 30px}
.participant-info-list div{min-height:52px;align-items:center}
.it-support-card{margin-top:16px}
footer{padding:24px 0}
.footer-inner{align-items:center}
.footer-inner>span:last-child{text-align:right}

/* Laptop kecil / tablet landscape */
@media(max-width:1040px){
  .wrap,body.is-authenticated .wrap{width:min(100% - 32px,var(--page-max))}
  .hero-grid{grid-template-columns:minmax(0,1.28fr) minmax(275px,.72fr);gap:28px}
  .hero h1{font-size:clamp(2.15rem,5.3vw,3.75rem)}
  .auth-grid{grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);gap:20px}
  .dashboard-hero{grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr)}
  .dashboard-main-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr)}
}

/* Tablet: blok turun dengan urutan tetap jelas */
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:22px;align-items:start}
  .hero-grid>div{max-width:780px}
  .account-flow-card{max-width:none;justify-self:stretch}
  .account-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .account-steps li{grid-template-columns:30px minmax(0,1fr);align-items:start}
  .account-steps li:not(:last-child)::after{display:none}
  .auth-grid{grid-template-columns:1fr;gap:18px}
  .auth-info-card{order:2}
  .dashboard-hero{grid-template-columns:1fr;padding:28px 78px 28px 28px}
  .dashboard-main-grid{grid-template-columns:1fr}
  .quick-actions-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px}
  .quick-actions-card>.badge,.quick-actions-card>h3,.quick-actions-card>.card-intro,.quick-actions-card>.status-note{grid-column:1/-1}
  .quick-actions-card .action-button{margin-top:0}
  .quick-actions-card .status-note{margin-top:5px}
}

/* Tablet portrait / ponsel besar */
@media(max-width:720px){
  .wrap,body.is-authenticated .wrap{width:min(100% - 24px,var(--page-max))}
  .topbar-inner{gap:12px}
  .topnav{gap:12px}
  .hero{padding:42px 0 40px}
  .hero h1{font-size:clamp(2.05rem,9vw,3rem)}
  .account-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
  .auth-card,.auth-info-card{padding:22px}
  .auth-guide-options{grid-template-columns:1fr}
  .dashboard-hero{padding:64px 20px 22px;gap:17px}
  .dashboard-hero-status{padding-top:15px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats .stat-card-status{grid-column:1/-1}
  .quick-actions-card{grid-template-columns:1fr}
  .quick-actions-card>.badge,.quick-actions-card>h3,.quick-actions-card>.card-intro,.quick-actions-card>.status-note{grid-column:auto}
  .participant-info-list{grid-template-columns:1fr}
  .participant-info-list div:first-child{grid-column:auto}
}

/* Ponsel */
@media(max-width:580px){
  .wrap,body.is-authenticated .wrap{width:min(100% - 20px,var(--page-max))}
  .topbar-inner{min-height:0;padding:11px 0 10px;gap:9px}
  .brand{font-size:.9rem}
  .topnav{gap:8px}
  .topnav .toplink{min-height:32px;font-size:.7rem}
  .hero{padding:34px 0 32px}
  .eyebrow{font-size:.66rem}
  .hero h1{margin:.4rem 0 .75rem;font-size:clamp(1.95rem,10.5vw,2.65rem);line-height:1.05}
  .lead{font-size:.9rem;line-height:1.58}
  .trust{margin-top:16px;gap:7px 10px;font-size:.72rem}
  .account-flow-card{padding:17px 16px}
  .account-steps{grid-template-columns:1fr;gap:9px}
  .account-steps li{grid-template-columns:28px minmax(0,1fr);gap:9px}
  .step-number{width:28px;height:28px;border-radius:9px}
  .content{padding:24px 0 46px}
  .auth-card,.auth-info-card{padding:18px;border-radius:18px}
  .auth-guide{padding:13px;margin-bottom:15px}
  .auth-guide-options span{padding:9px 10px}
  .tabs{min-height:48px;margin-bottom:20px}
  .tab{min-height:38px;font-size:.8rem}
  .form>p{font-size:.86rem}
  .form label{margin-top:14px;font-size:.86rem}
  .form input{min-height:46px}
  .showpass{height:46px;min-width:56px}
  .form .btn{min-height:46px;margin-top:18px}
  .auth-links a{min-height:58px}
  body.is-authenticated .content{padding-top:16px}
  .dashboard-hero{border-radius:19px;padding:61px 17px 18px}
  .dashboard-hero-main{gap:12px}
  .dashboard-identity h2{font-size:1.38rem}
  .registration-line{gap:7px}
  .copy-inline{min-height:32px}
  .status-change-notice,.next-action-card,.stats,.dashboard-main-grid,.revision-card{margin-bottom:13px}
  .next-action-card{min-height:0}
  .stats{gap:9px}
  .stats article{min-height:74px;padding:13px}
  .progress-card,.quick-actions-card,.participant-info-card,.it-support-card,.revision-card{padding:18px}
  .dashboard-primary-column,.dashboard-main-grid{gap:13px}
  .progress-head{margin-bottom:20px}
  .action-button{min-height:62px;padding:10px 11px}
  .participant-info-list div{min-height:0;padding:9px 0}
  .it-support-card{margin-top:13px}
  .footer-inner{gap:10px}
  .footer-inner>span:last-child{text-align:left}
}

/* Ponsel sempit: cegah tab/input/tombol saling mendesak */
@media(max-width:400px){
  .topbar-inner{align-items:flex-start}
  .topnav{width:100%;justify-content:space-between}
  .topnav .toplink{font-size:.66rem}
  .account-flow-card{padding:16px 14px}
  .password-row{gap:6px}
  .showpass{min-width:52px;padding:0 10px;font-size:.78rem}
  .tabs{gap:5px}
  .tab{padding-inline:6px}
  .stats{grid-template-columns:1fr}
  .stats .stat-card-status{grid-column:auto}
  .status-sync-meta{align-items:flex-start}
  .connection-state{max-width:100%}
  .privacy-badge{width:100%}
}


/* =========================================================
   V12.1 — Dashboard Peserta V2
   Additive UI only. Tidak mengubah API, autentikasi, atau alur data.
   ========================================================= */
.dashboard-subnav{position:sticky;top:8px;z-index:12;display:flex;align-items:center;gap:7px;margin:0 0 16px;padding:7px;border:1px solid rgba(201,220,208,.9);border-radius:15px;background:rgba(255,255,255,.92);box-shadow:0 10px 28px rgba(18,63,43,.08);backdrop-filter:blur(12px);overflow-x:auto;scrollbar-width:none}
.dashboard-subnav::-webkit-scrollbar{display:none}.dashboard-subnav a{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border-radius:10px;color:#405148;text-decoration:none;font-size:.74rem;font-weight:850;white-space:nowrap}.dashboard-subnav a:hover{background:var(--soft);color:var(--green)}
.member-overview{display:grid;grid-template-columns:1.05fr 1.1fr 1fr;gap:12px;margin:0 0 16px}.member-overview-card{min-width:0;display:flex;align-items:center;gap:13px;padding:17px 18px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-soft)}.member-overview-card>div:last-child{min-width:0}.member-overview-card span{display:block;color:var(--muted);font-size:.64rem;font-weight:900;letter-spacing:.075em}.member-overview-card strong{display:block;margin-top:3px;color:var(--ink);font-size:1rem;line-height:1.3}.member-overview-card p{margin:4px 0 0;color:var(--muted);font-size:.76rem;line-height:1.45}.member-overview-icon{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--soft);color:var(--green-2);font-size:1.08rem;font-weight:950}.member-progress-card{display:block}.member-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.member-progress-head strong{margin:0;color:var(--green-2)}.member-progress-track{height:8px;margin-top:11px;overflow:hidden;border-radius:999px;background:#e8efea}.member-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green-2),#36a26e);transition:width .35s ease}.member-overview[data-status="revision"] .member-progress-track span{background:linear-gradient(90deg,#a86b00,#d69a30)}.member-overview[data-status="rejected"] .member-progress-track span{background:linear-gradient(90deg,#a73636,#d86666)}
.member-services-card{margin:0 0 16px;padding:clamp(22px,2.4vw,30px)}.member-services-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.member-services-head h3{margin:4px 0 5px;font-size:1.28rem}.member-services-head p{max-width:720px;margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}.member-services-version{flex:0 0 auto;display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid #cde0d3;border-radius:999px;background:var(--soft-2);color:var(--green-2);font-size:.64rem;font-weight:900;letter-spacing:.08em}.member-services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.member-service-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:92px;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);text-decoration:none;overflow:hidden}.member-service-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--green-2);font-size:1.05rem;font-weight:950}.member-service-copy{min-width:0}.member-service-copy b{display:block;font-size:.92rem}.member-service-copy small{display:block;margin-top:3px;color:var(--muted);font-size:.72rem;line-height:1.4}.member-service-state{align-self:start;display:inline-flex;padding:4px 7px;border-radius:999px;background:#eaf6ef;color:#1c6a48;font-size:.58rem;font-weight:950;letter-spacing:.06em}.member-service-card.is-active{border-color:#bdd9c8;background:linear-gradient(135deg,#f8fcf9,#fff)}.member-service-card.is-active:hover{border-color:#8fbea0;transform:translateY(-1px)}.member-service-card.is-locked{cursor:not-allowed;background:#fafcfb;color:#68736d}.member-service-card.is-locked .member-service-icon{background:#f0f3f1;color:#87938c}.member-service-card.is-locked .member-service-state{background:#f0f3f1;color:#7d8982}.member-service-card.is-roadmap{background:linear-gradient(135deg,#fbfcff,#fff);border-style:dashed}.member-service-card.is-roadmap .member-service-icon{background:#eef3f7;color:#527083}.member-service-card.is-roadmap .member-service-state{background:#eef3f7;color:#526d7c}.member-services-note{margin:13px 0 0;color:#758078;font-size:.7rem;line-height:1.45}.member-services-note strong{color:#53675d}
#progressCard,#memberServices,#participantInfoCard,#itSupportCard,#memberOverview{scroll-margin-top:80px}
@media(max-width:900px){.member-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.member-overview-card:first-child{grid-column:1/-1}.member-services-grid{grid-template-columns:1fr}}
@media(max-width:720px){.dashboard-subnav{top:6px;margin-inline:-2px}.member-overview{grid-template-columns:1fr}.member-overview-card:first-child{grid-column:auto}.member-services-head{flex-direction:column;gap:9px}.member-services-version{align-self:flex-start}}
@media(max-width:580px){.dashboard-subnav{gap:5px;padding:6px;border-radius:13px}.dashboard-subnav a{min-height:32px;padding:6px 9px;font-size:.69rem}.member-overview{gap:9px;margin-bottom:13px}.member-overview-card{padding:14px;border-radius:15px}.member-overview-icon{width:38px;height:38px;flex-basis:38px;border-radius:11px}.member-services-card{margin-bottom:13px;padding:18px}.member-service-card{grid-template-columns:38px minmax(0,1fr);min-height:88px;padding:13px}.member-service-icon{width:38px;height:38px;border-radius:11px}.member-service-state{grid-column:2;justify-self:start;margin-top:-3px}.member-services-note{font-size:.67rem}}


/* =========================================================
   V12.4 — Status Verifikasi Foto lebih jelas di Dashboard
   Membedakan siap, menunggu, ditolak/perlu diperbaiki, dan disetujui.
   ========================================================= */
.member-identity-service{align-items:start}
.member-identity-service .member-service-copy{padding-top:1px}
.member-identity-service .member-service-state{max-width:145px;text-align:center;justify-content:center;line-height:1.2}
.member-service-action-hint{display:inline-flex;align-items:center;margin-top:9px;color:var(--green-2);font-size:.69rem;font-weight:900;letter-spacing:.015em}
.member-review-reason{display:block;margin-top:10px;padding:10px 11px;border:1px solid #efc6c6;border-radius:11px;background:rgba(255,255,255,.72)}
.member-review-reason[hidden],.member-service-action-hint[hidden]{display:none!important}
.member-review-reason-label{display:block;color:#8b3434;font-size:.57rem;font-weight:950;letter-spacing:.09em}
.member-review-reason strong{display:block;margin-top:3px;color:#712b2b;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}

.member-service-card.is-member-ready{border-color:#a9d1bd;background:linear-gradient(135deg,#f1faf5,#fff)}
.member-service-card.is-member-ready .member-service-icon{background:#e0f3e7;color:#176b45}
.member-service-card.is-member-ready .member-service-state{background:#e5f4eb;color:#17643f}

.member-service-card.is-member-pending{border-color:#e6cf92;background:linear-gradient(135deg,#fffaf0,#fff)}
.member-service-card.is-member-pending .member-service-icon{background:#fff0c9;color:#8a5b00}
.member-service-card.is-member-pending .member-service-state{background:#fff0c9;color:#7d5200}
.member-service-card.is-member-pending .member-service-action-hint{color:#825700}
.member-service-card.is-status-only{cursor:default;pointer-events:none}
.member-service-card.is-status-only:hover{transform:none}

.member-service-card.is-member-rejected{border:1.5px solid #d88f8f;background:linear-gradient(135deg,#fff1f1,#fffafa 62%,#fff);box-shadow:0 10px 26px rgba(167,54,54,.09)}
.member-service-card.is-member-rejected:hover{border-color:#c97070;background:linear-gradient(135deg,#ffeded,#fff8f8 62%,#fff)}
.member-service-card.is-member-rejected .member-service-icon{background:#ffe1e1;color:#9b3030}
.member-service-card.is-member-rejected .member-service-copy>b{color:#6d2626}
.member-service-card.is-member-rejected .member-service-copy>small{color:#7e5555}
.member-service-card.is-member-rejected .member-service-state{background:#a73636;color:#fff;box-shadow:0 5px 12px rgba(167,54,54,.15)}
.member-service-card.is-member-rejected .member-service-action-hint{color:#992f2f}

.member-service-card.is-member-approved{border-color:#90c7a7;background:linear-gradient(135deg,#eef9f2,#fff)}
.member-service-card.is-member-approved .member-service-icon{background:#daf1e3;color:#17683f}
.member-service-card.is-member-approved .member-service-state{background:#dff3e7;color:#17663f}
.member-service-card.is-member-approved .member-service-action-hint{color:#17663f}

@media(max-width:580px){
  .member-identity-service{grid-template-columns:38px minmax(0,1fr)}
  .member-identity-service .member-service-state{grid-column:2;max-width:100%;justify-self:start;margin-top:1px}
  .member-review-reason{margin-top:9px;padding:9px 10px}
  .member-review-reason strong{font-size:.73rem}
  .member-service-action-hint{font-size:.68rem}
}


/* V12.5.6 — notifikasi satu kali setelah foto anggota berhasil dikirim */
.photo-upload-success-notice{
  border-color:#a9dfbc;
  border-left-color:#198754!important;
  background:linear-gradient(135deg,#eaf8ef,#ffffff)!important;
  box-shadow:0 14px 34px rgba(25,135,84,.14);
  animation:photoUploadSuccessIn .32s ease both;
}
.photo-upload-success-notice .status-change-icon{
  background:#d8f3e2!important;
  color:#176d42!important;
  font-size:1.35rem;
}
.photo-upload-success-notice .section-kicker{color:#176d42}
.photo-upload-success-notice h3{color:#173c29}
.photo-upload-success-notice p{color:#49665a}
@keyframes photoUploadSuccessIn{
  from{opacity:0;transform:translateY(-8px)}
  to{opacity:1;transform:translateY(0)}
}


/* =========================================================
   V12.8.0 — Level & Poin dasar aktif di Dashboard Peserta
   ========================================================= */
.points-service-card{border-color:#d6c27c;background:linear-gradient(135deg,#fffdf5,#fff)}
.points-service-card .member-service-icon{background:#fff4c9;color:#8a6500}
.points-service-card .member-service-state{background:#fff0b8;color:#775600}
.points-service-card:hover{border-color:#c7a94b;background:linear-gradient(135deg,#fff9e8,#fff)}

/* V13.4 — Pusat Notifikasi */
.notification-service-card.has-unread{border-color:#d8bd60;background:linear-gradient(135deg,#fffaf0,#fff)}
.notification-service-card.has-unread .member-service-icon{background:#fff0bd;color:#7d5b00}
.notification-service-card.has-unread .member-service-state{background:#fff0bd;color:#735300}


/* V13.6.15.9 — Akses Cepat mengikuti Journey/VERIFIED MEMBER */
.action-button.is-locked{background:#f5f7f5;border-color:#d9e1dc;color:#6f7c74;cursor:not-allowed;transform:none;box-shadow:none}
.action-button.is-locked:hover{background:#f5f7f5;border-color:#d9e1dc;transform:none}
.action-button.is-locked .action-icon{background:#e9eeeb;color:#7a867f}
.action-button.is-locked small{color:#7d8982}
.action-button.is-locked .action-arrow{color:#a5aea8}
.action-button[aria-disabled="true"]{pointer-events:auto}
