:root {
    --navy: #123b63;
    --navy-dark: #081f35;
    --blue: #eaf5ff;
    --orange: #f59e0b;
    --ink: #172033;
    --muted: #607089;
    --white: #fff;
    --line: #dbe6ef;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: Arial, Helvetica, sans-serif; line-height: 1.6; }
button, input { font: inherit; }
.container { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.site-header .container, .site-footer .container { width: min(1320px,calc(100% - 48px)); }

/* Header dan identitas SPMB */
.site-header { position: sticky; z-index: 10; top: 0; border-bottom: 1px solid rgba(255,255,255,.12); background: rgba(8,31,53,.98); box-shadow: 0 8px 24px rgba(8,31,53,.16); }
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--white); text-decoration: none; }
.brand-logo-wrap { width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: #fff; }
.brand-logo-wrap img { display: block; width: 100%; height: 100%; padding: 4px; object-fit: contain; }
.brand-logo-fallback { display: grid; width: 100%; height: 100%; place-items: center; color: var(--navy); font-size: 1.15rem; font-weight: 900; }
.brand-divider { width: 1px; height: 40px; background: rgba(255,255,255,.42); }
.brand-copy { display: grid; justify-items: start; gap: 0; color: #fff; font-size: 1rem; font-weight: 800; line-height: 1.05; }
.brand-copy strong { font-size: 1.14rem; letter-spacing: .04em; }
.brand-word { display: flex; align-items: flex-start; gap: 5px; white-space: nowrap; }
.brand-word > span { color: var(--orange); font-size: 1.23rem; letter-spacing: .035em; }
.brand-word small { margin-top: .18em; color: #8fd3ff; font-size: .58rem; letter-spacing: .07em; }
nav { display: flex; align-items: center; gap: 22px; }
nav a { color: var(--white); font-weight: 700; text-decoration: none; }
.site-header .button { color: var(--navy-dark); background: var(--orange); }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 10px 18px; border: 0; border-radius: 10px; color: #fff; background: var(--navy); font-weight: 800; text-decoration: none; cursor: pointer; transition: transform .15s ease, background-color .15s ease; }
.button:hover { background: #0c2e4d; transform: translateY(-1px); }
.button-small { min-height: 38px; padding: 8px 14px; }
.button.disabled { opacity: .72; cursor: not-allowed; }
.button:focus-visible, nav a:focus-visible { outline: 3px solid #78bdeb; outline-offset: 3px; }

/* Halaman depan */
.hero { position: relative; overflow: hidden; padding: clamp(62px, 9vw, 108px) 0; background: linear-gradient(120deg, var(--blue), #fff 62%); }
.hero::before, .hero::after { position: absolute; border-radius: 50%; background: rgba(18,59,99,.08); content: ""; pointer-events: none; }
.hero::before { width: 360px; height: 360px; top: -180px; left: -180px; }
.hero::after { width: 480px; height: 480px; right: -240px; bottom: -300px; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); align-items: center; gap: clamp(28px,6vw,72px); }
.eyebrow { margin: 0 0 10px; color: #a95300; font-size: .82rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
h1 { max-width: 850px; margin: .2em 0; color: var(--navy-dark); font-size: clamp(2.25rem,5vw,4.4rem); line-height: 1.06; }
h2 { color: var(--navy-dark); line-height: 1.2; }
.lead { max-width: 700px; color: var(--muted); font-size: 1.15rem; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 28px; }
.status-pill { padding: 8px 14px; border: 1px solid #a9d1ef; border-radius: 999px; color: var(--navy); background: #fff; font-weight: 700; }
.hero-card { padding: clamp(24px,4vw,36px); border: 1px solid #c9dfef; border-radius: 24px; background: rgba(255,255,255,.9); box-shadow: 0 24px 70px rgba(8,31,53,.12); }
.hero-icon { display: inline-grid; width: 52px; height: 52px; place-items: center; border-radius: 14px; color: #fff; background: var(--orange); font-weight: 900; }
.section { padding: 76px 0; }
.info-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 28px; }
.info-grid article { display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.info-grid strong { color: var(--navy); font-size: 1.05rem; }
.info-grid span { color: var(--muted); }
.empty-state { min-height: 55vh; display: grid; place-content: center; text-align: center; }

/* Form masuk dua kolom: tanpa header dan footer situs */
.auth-page { min-height: 100vh; min-height: 100svh; background: #fff; }
.login-shell { min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
.login-brand-panel { position: relative; isolation: isolate; display: flex; min-height: 100vh; min-height: 100svh; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(32px,5vw,72px); color: #fff; background: #0b2d4e; }
.login-brand-panel::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg,rgba(3,20,37,.1),rgba(4,24,43,.16)); content: ""; }
.login-brand-art, .hero-public-art, .public-page-art { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; }
.login-brand-art img, .hero-public-art img, .public-page-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.login-brand-top, .login-promo, .login-school-note { position: relative; }
.brand-login .brand-logo-wrap { width: 54px; height: 54px; flex-basis: 54px; }
.login-promo { width: min(100%,620px); margin: auto 0; padding: 74px 0 46px; }
.login-eyebrow { margin: 0 0 16px; color: #bbdef4; font-size: .78rem; font-weight: 800; letter-spacing: .16em; }
.login-promo h2 { max-width: 520px; margin: 0 0 14px; color: #fff; font-size: clamp(1.85rem,3vw,2.8rem); line-height: 1.15; }
.login-promo > p:last-child { max-width: 480px; margin: 0; color: #d7e7f4; font-size: 1rem; }
.login-school-note { display: flex; flex-direction: column; gap: 3px; color: #c5d9e8; font-size: .86rem; }
.login-school-note span:first-child { color: #fff; font-weight: 700; }
.login-form-panel { display: grid; place-items: center; padding: clamp(28px,6vw,88px); background: #fff; }
.login-form-wrap { width: min(100%,470px); }
.login-form-wrap > .eyebrow { color: var(--navy); }
.auth-title { margin: .15em 0 .9em; color: var(--navy-dark); font-size: clamp(1.65rem,2.7vw,2.15rem); line-height: 1.15; }
.login-intro { margin: 0 0 32px; color: var(--muted); font-size: 1.02rem; }
.login-form { display: grid; gap: 20px; }
.form-field { display: grid; gap: 8px; }
.form-field label { color: var(--navy-dark); font-size: .92rem; font-weight: 700; }
.form-field input { width: 100%; min-height: 52px; padding: 12px 15px; border: 1px solid #c8d5e1; border-radius: 11px; color: var(--ink); background: #fff; transition: border-color .15s ease,box-shadow .15s ease; }
.form-field input:focus { outline: 0; border-color: #3788bd; box-shadow: 0 0 0 4px rgba(55,136,189,.14); }
.auth-submit { width: 100%; min-height: 52px; margin-top: 5px; background: #ed7900; }
.auth-submit:hover { background: #ce6500; }
.login-help { margin: 22px 0 0; color: var(--muted); font-size: .88rem; }
.form-field input:focus-visible { outline: 3px solid #78bdeb; outline-offset: 3px; }
.alert { margin: 20px 0; padding: 12px 14px; border-radius: 10px; }
.alert-error { border: 1px solid #f2b7b7; color: #842323; background: #fff2f2; }

/* Dashboard */
.dashboard-section { min-height: 70vh; padding: 52px 0 80px; background: #f5f9fc; }
.dashboard-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.dashboard-heading form { flex: 0 0 auto; }
.dashboard-title { margin: .1em 0; color: var(--navy-dark); font-size: clamp(2rem,4vw,3rem); }
.button-outline { border: 1px solid #b7cad8; color: var(--navy); background: #fff; }
.role-banner { display: inline-flex; align-items: center; gap: 9px; margin: 16px 0 24px; padding: 9px 14px; border: 1px solid #c7dfef; border-radius: 999px; color: var(--navy); background: #fff; }
.role-dot { width: 9px; height: 9px; border-radius: 50%; background: #26945d; }
.notice-card { display: grid; gap: 4px; padding: 18px 20px; border-left: 4px solid var(--orange); border-radius: 10px; color: var(--navy-dark); background: #fff8e8; }
.notice-card span { color: var(--muted); }
.module-heading { margin: 38px 0 18px; }
.module-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.module-card { position: relative; min-height: 170px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.module-card h3 { margin: 8px 0; color: var(--navy); }
.module-card p { margin: 0 0 14px; color: var(--muted); }
.module-mark { color: var(--orange); font-size: 1.6rem; font-weight: 900; }
.module-status { display: inline-block; padding: 3px 9px; border-radius: 999px; color: #526276; background: #eef3f7; font-size: .78rem; font-weight: 700; }
.empty-notice { padding: 24px; border: 1px solid var(--line); border-radius: 14px; color: var(--muted); background: #fff; }

/* Footer publik gaya gelap dan bertingkat */
.site-footer { padding: 42px 0 0; color: #d7e7f4; background: #061a2c; }
.footer-inner { display: grid; grid-template-columns: 1.35fr .7fr 1fr; gap: clamp(28px,6vw,88px); padding-bottom: 34px; }
.brand-footer .brand-logo-wrap { width: 42px; height: 42px; flex-basis: 42px; }
.brand-footer .brand-divider { height: 36px; }
.brand-footer .brand-copy { font-size: .82rem; }
.brand-footer .brand-copy strong { font-size: .92rem; }
.brand-footer .brand-word > span { font-size: 1rem; }
.brand-footer .brand-word small { font-size: .48rem; }
.footer-about p, .footer-column p, .footer-column span { max-width: 390px; color: #bfd1df; font-size: .92rem; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer-column h2 { margin: 2px 0 8px; color: #fff; font-size: .88rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-column p { margin: 0 0 3px; }
.footer-column a { color: #d7e7f4; text-decoration: none; }
.footer-column a:hover { color: #ffbd4a; text-decoration: underline; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.13); }
.footer-bottom-inner { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #a9bfce; font-size: .8rem; }
.footer-admin-login { color: #c8dbea; text-decoration: none; white-space: nowrap; }.footer-admin-login:hover,.footer-admin-login:focus-visible { color: #ffbd4a; text-decoration: underline; text-underline-offset: 3px; }

/* Panel dashboard berbasis sidebar */
.dashboard-page { min-height: 100vh; background: #f3f6fa; }
.dashboard-shell { min-height: 100vh; display: grid; grid-template-columns: 270px minmax(0,1fr); }
.dashboard-sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; padding: 24px 16px 16px; color: #e8f2fb; background: #081f35; }
.brand-sidebar { align-self: flex-start; margin: 0 8px 34px; }
.brand-sidebar .brand-logo-wrap { width: 42px; height: 42px; flex-basis: 42px; border-radius: 10px; }
.brand-sidebar .brand-divider { height: 36px; }
.brand-sidebar .brand-copy strong { font-size: .98rem; }
.brand-sidebar .brand-word > span { font-size: 1.02rem; }
.brand-sidebar .brand-word small { font-size: .48rem; }
.sidebar-nav { display: flex; flex: 1; flex-direction: column; align-items: stretch; gap: 5px; overflow-y: auto; }
.sidebar-group { display: flex; flex-direction: column; gap: 3px; padding: 0 0 12px; border-bottom: 1px solid rgba(255,255,255,.1); }
.sidebar-group + .sidebar-group { padding-top: 8px; }
.sidebar-group:last-child { border-bottom: 0; }
.sidebar-label { margin: 0; padding: 8px 12px 5px; color: #91a9bc; font-size: .68rem; font-weight: 800; letter-spacing: .14em; }
.sidebar-label-spaced { margin-top: 20px; }
.sidebar-link { display: flex; min-height: 42px; align-items: center; gap: 12px; padding: 9px 12px; border: 1px solid transparent; border-radius: 9px; color: #d1e0ed; font-size: .9rem; font-weight: 600; text-decoration: none; transition: color .15s ease,background-color .15s ease; }
.sidebar-link:hover, .sidebar-link-active { color: #fff; background: #163d5f; }
.sidebar-link-active { border-color: rgba(143,211,255,.2); }
.sidebar-icon { display: grid; width: 22px; flex: 0 0 22px; place-items: center; color: #8fd3ff; font-size: 1.2rem; font-weight: 800; }
.sidebar-account { margin-top: 18px; padding: 14px 4px 0; border-top: 1px solid rgba(255,255,255,.14); }
.sidebar-user { display: flex; min-width: 0; align-items: center; gap: 10px; margin: 0 6px 10px; }
.sidebar-avatar { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 50%; color: var(--navy-dark); background: #a9d9f5; font-weight: 900; }
.sidebar-user-copy { display: grid; min-width: 0; gap: 2px; }
.sidebar-user-copy strong { overflow: hidden; color: #fff; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-copy small { color: #a8bfd0; font-size: .75rem; }
.sidebar-account form { margin: 0; }
.sidebar-logout { display: flex; width: 100%; min-height: 40px; align-items: center; gap: 10px; padding: 8px 12px; border: 0; border-radius: 8px; color: #f4c7c7; background: transparent; text-align: left; font: inherit; cursor: pointer; }
.sidebar-logout:hover { color: #fff; background: rgba(181,58,58,.2); }
.dashboard-main { min-width: 0; }
.dashboard-topbar { position: sticky; z-index: 5; top: 0; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px clamp(20px,4vw,48px); border-bottom: 1px solid #e1e8ef; color: #65768a; background: rgba(255,255,255,.96); }
.dashboard-topbar strong { color: #183b5a; }
.breadcrumb-divider { padding: 0 9px; color: #a7b4c1; }
.dashboard-period { padding: 5px 10px; border-radius: 999px; color: #164b70; background: #e8f4fc; font-size: .78rem; font-weight: 800; }
.dashboard-content { width: min(1280px,100%); margin: 0 auto; padding: clamp(26px,4vw,48px); }
.dashboard-heading { margin-bottom: 24px; }
.dashboard-heading .eyebrow { margin-bottom: 7px; }
.dashboard-title { font-size: clamp(1.9rem,3vw,2.65rem); }
.dashboard-welcome { margin: 8px 0 0; color: var(--muted); }
.role-banner { margin: 0; padding: 8px 12px; font-size: .84rem; font-weight: 700; }
.notice-card { border: 1px solid #f3dfb8; border-left: 4px solid var(--orange); box-shadow: 0 8px 22px rgba(16,45,72,.035); }
.module-heading { margin: 32px 0 16px; font-size: 1.16rem; }
.module-card { min-height: 165px; scroll-margin-top: 88px; box-shadow: 0 8px 24px rgba(16,45,72,.035); }
.sidebar-link:focus-visible, .sidebar-logout:focus-visible { outline: 3px solid #78bdeb; outline-offset: 2px; }

@media (max-width: 900px) {
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 30px; }
    .footer-about { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
    .header-inner { align-items: stretch; flex-direction: column; gap: 10px; padding: 12px 0; }
    .header-inner nav { width: 100%; justify-content: space-between; gap: 8px; font-size: .9rem; }
    .hero { padding: 64px 0; }
    .hero-grid, .info-grid { grid-template-columns: 1fr; }
    .hero-grid { gap: 30px; }
    .module-grid { grid-template-columns: 1fr; }
    .dashboard-heading { align-items: flex-start; }
    .login-shell { grid-template-columns: 1fr; }
    .login-brand-panel { min-height: 0; padding: 24px clamp(22px,6vw,42px); }
    .login-promo { margin: 34px 0 24px; padding: 0; }
    .login-promo h2 { max-width: 520px; font-size: clamp(1.65rem,5.5vw,2rem); }
    .login-promo > p:last-child { max-width: 580px; font-size: .95rem; }
    .login-school-note { font-size: .8rem; }
    .login-form-panel { min-height: 60vh; padding: 42px 22px 56px; }
    .footer-inner { grid-template-columns: 1fr; gap: 26px; }
    .footer-about { grid-column: auto; }
    .footer-bottom-inner { align-items: flex-start; flex-direction: column; gap: 3px; padding-top: 12px; padding-bottom: 12px; }
    .dashboard-shell { grid-template-columns: 1fr; }
    .dashboard-sidebar { position: relative; height: auto; min-height: 0; padding: 15px 16px 12px; }
    .brand-sidebar { margin: 0 4px 14px; }
    .sidebar-nav { display: flex; flex: none; flex-direction: row; gap: 6px; overflow-x: auto; padding-bottom: 8px; }
    .sidebar-group, .sidebar-group + .sidebar-group { flex: 0 0 auto; flex-direction: row; align-items: center; gap: 6px; padding: 0; border: 0; }
    .sidebar-group + .sidebar-group::before { width: 1px; height: 22px; margin: 0 5px; background: rgba(255,255,255,.22); content: ''; }
    .sidebar-label { display: none; }
    .sidebar-link { min-height: 38px; flex: 0 0 auto; gap: 7px; padding: 7px 10px; background: rgba(255,255,255,.055); white-space: nowrap; }
    .sidebar-icon { width: 17px; flex-basis: 17px; }
    .sidebar-account { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 6px; padding: 10px 0 0; }
    .sidebar-user { margin: 0 0 0 4px; }
    .sidebar-account form { flex: 0 0 auto; }
    .sidebar-logout { width: auto; }
    .dashboard-topbar { min-height: 54px; padding: 9px 18px; }
    .dashboard-content { padding: 26px 18px 40px; }
    .dashboard-heading { gap: 12px; }
    .dashboard-heading .role-banner { flex: 0 0 auto; }
}

@media (max-width: 380px) {
    .container { width: min(1120px,calc(100% - 24px)); }
    .brand { gap: 8px; }
    .brand-logo-wrap { width: 42px; height: 42px; flex-basis: 42px; }
    .header-inner nav { font-size: .82rem; }
    .header-inner nav .button-small { padding: 7px 9px; }
    .login-brand-panel { padding-right: 20px; padding-left: 20px; }
    .login-form-panel { padding-right: 20px; padding-left: 20px; }
    .role-banner { align-items: flex-start; border-radius: 12px; }
    .dashboard-heading { gap: 12px; }
    .dashboard-heading .button { padding: 9px 12px; }
    .brand-word { gap: 3px; }
    .brand-word > span { font-size: 1.05rem; }
    .brand-word small { font-size: .5rem; }
    .dashboard-topbar { font-size: .84rem; }
    .dashboard-period { font-size: .7rem; }
.role-banner { font-size: .76rem; }
}

/* Login panitia dan landing SPMB: identitas lebih kuat, komposisi dua panel */
.login-promo { max-width: 650px; }
.login-promo h2 { max-width: 650px; }
.login-promo > p:last-child { line-height: 1.75; }
.login-form-panel { position: relative; }
.login-form-wrap > .eyebrow { color: #1a5c89; }
.auth-title { max-width: 490px; font-size: clamp(2rem,3.4vw,2.7rem); }
.login-intro { margin: 0 0 30px; }
.login-security-note { display: flex; align-items: center; gap: 8px; margin: 22px 0 0; color: #65768a; font-size: .84rem; }
.login-copyright { margin: 36px 0 0; color: #7a8b9d; font-size: .76rem; text-align: center; }
.auth-submit { display: flex; gap: 10px; align-items: center; justify-content: center; box-shadow: 0 10px 22px rgba(237,121,0,.16); }
.form-field select { width: 100%; min-height: 46px; padding: 10px 13px; border: 1px solid #c8d5e1; border-radius: 10px; color: var(--ink); background: #fff; font: inherit; }
.form-field select:focus { outline: 0; border-color: #3788bd; box-shadow: 0 0 0 4px rgba(55,136,189,.14); }

/* Hero publik dengan ornamen abstrak navy, biru muda, dan aksen oranye */
.hero-public { position: relative; isolation: isolate; overflow: hidden; padding: clamp(58px,8vw,98px) 0; color: #fff; background: linear-gradient(115deg,#0a2947 0%,#103d66 58%,#174c78 100%); }
.hero-public::before { display: none; }
.hero-public::after { z-index: -1; inset: 0; width: auto; height: auto; right: auto; bottom: auto; border-radius: 0; background: linear-gradient(90deg,rgba(5,24,43,.25),transparent 75%); content: ""; }
.hero-public .hero-grid { grid-template-columns: minmax(0,1.25fr) minmax(270px,.65fr); gap: clamp(32px,7vw,100px); }
.hero-copy { max-width: 720px; }
.hero-kicker { margin: 0 0 12px; color: #b7def5; font-size: .9rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero-cycle { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 0 0 18px; color: #d8eafa; font-weight: 700; }
.hero-cycle span { padding: 5px 11px; border: 1px solid rgba(206,235,252,.35); border-radius: 999px; color: #fff; background: rgba(255,255,255,.08); font-size: .83rem; }
.hero-public h1 { max-width: 730px; margin: .15em 0 .28em; color: #fff; font-size: clamp(2.55rem,5.5vw,4.5rem); }
.hero-public .lead { max-width: 640px; color: #d3e4f2; font-size: clamp(1rem,1.45vw,1.16rem); }
.hero-public .actions { margin-top: 29px; }
.hero-public .button.disabled { color: #102a44; background: #f59e0b; opacity: 1; }
.status-pill-light { border-color: rgba(212,235,249,.3); color: #eff8ff; background: rgba(255,255,255,.08); }
.hero-info-card { position: relative; overflow: hidden; padding: clamp(24px,3vw,34px); border: 1px solid rgba(255,255,255,.55); border-radius: 22px; background: rgba(255,255,255,.96); box-shadow: 0 25px 70px rgba(0,14,27,.25); }
.hero-info-card::after { position: absolute; top: -58px; right: -67px; width: 170px; height: 170px; border: 1px solid rgba(51,124,174,.12); border-radius: 50%; box-shadow: 0 0 0 22px rgba(51,124,174,.035),0 0 0 46px rgba(51,124,174,.025); content: ""; }
.hero-info-card .hero-icon { width: 46px; height: 46px; border-radius: 14px; color: #fff; background: #e97708; font-size: 1.45rem; }
.hero-card-label { margin: 19px 0 0; color: #2b6894; font-size: .72rem; font-weight: 900; letter-spacing: .14em; }
.hero-info-card h2 { margin: 3px 0 8px; color: #102f4c; font-size: clamp(1.7rem,3vw,2.15rem); }
.hero-info-card > p:not(.hero-card-label) { margin: 0; color: #64788b; }
.hero-card-divider { height: 1px; margin: 21px 0 16px; background: #e1eaf1; }
.hero-info-card > strong { color: #193c5b; font-size: .91rem; }
.hero-info-card ul { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; color: #526a7e; font-size: .87rem; list-style: none; }
.hero-info-card li { display: flex; gap: 9px; align-items: flex-start; }
.hero-info-card li::before { flex: 0 0 auto; margin-top: .48em; width: 7px; height: 7px; border-radius: 50%; background: #f59e0b; content: ""; }

/* Pengaturan periode dan gelombang pendaftaran */
.dashboard-topbar a { color: #1b5e88; font-weight: 700; text-decoration: none; }
.settings-content { max-width: 1320px; }
.settings-content > .dashboard-heading { align-items: center; }
.settings-content > .dashboard-heading .dashboard-welcome { max-width: 780px; }
.settings-tip { display: grid; gap: 4px; margin: 6px 0 22px; padding: 15px 18px; border: 1px solid #cce1f0; border-left: 4px solid #3b91c6; border-radius: 11px; color: #173b58; background: #eef8fe; }
.settings-tip span { color: #577287; font-size: .9rem; }
.settings-panel, .period-card { margin-bottom: 18px; padding: clamp(19px,3vw,28px); border: 1px solid #dce6ee; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(16,45,72,.035); }
.settings-panel-heading, .period-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 20px; }
.settings-panel-heading .eyebrow, .period-card-heading .eyebrow { margin-bottom: 4px; }
.settings-panel-heading h2, .settings-list-title { margin: 0; color: #153c5b; font-size: 1.22rem; }
.settings-form { display: grid; align-items: end; gap: 14px; }
.settings-form-period { grid-template-columns: repeat(3,minmax(0,1fr)); }
.settings-form .form-field { min-width: 0; gap: 6px; }
.settings-form .form-field label { font-size: .82rem; }
.settings-form .form-field label span { color: #8293a2; font-weight: 400; }
.settings-form input, .settings-form select { min-height: 43px; padding: 9px 11px; border-radius: 8px; font-size: .9rem; }
.settings-submit { justify-self: start; min-height: 43px; padding: 9px 15px; border-radius: 8px; font-size: .88rem; }
.settings-list-title { margin: 32px 0 16px; }
.period-list { display: grid; gap: 18px; }
.period-card-heading { margin-bottom: 18px; }
.period-card-heading h3 { margin: 0; color: #143c5b; font-size: 1.45rem; }
.period-status { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 999px; font-size: .77rem; font-weight: 800; }
.period-status-active { color: #126541; background: #e7f7ef; }
.period-status-draft { color: #79540a; background: #fff5d9; }
.period-status-closed, .period-status-archived { color: #5d6b78; background: #eef2f5; }
.settings-actions { display: flex; min-height: 43px; align-items: center; justify-content: space-between; gap: 14px; }
.wave-section { margin-top: 22px; padding-top: 18px; border-top: 1px solid #e6edf2; }
.wave-section h4 { margin: 0 0 12px; color: #234b69; font-size: 1rem; }
.wave-item { margin: 9px 0; border: 1px solid #e1e9ef; border-radius: 10px; background: #fbfdff; }
.wave-item summary { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 13px; color: #234760; font-weight: 700; cursor: pointer; list-style-position: inside; }
.wave-item[open] summary { border-bottom: 1px solid #e1e9ef; }
.settings-form-wave { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 15px; }
.settings-field-wide { grid-column: 1 / -1; }
.wave-add { border-style: dashed; }
.alert-success { border: 1px solid #b8e1ca; color: #155b39; background: #effaf3; }

/* Pendaftaran publik dan cek status */
.hero-check-button { border-color: rgba(255,255,255,.55); color: #fff; background: rgba(8,31,53,.18); }
.hero-check-button:hover { color: #fff; background: rgba(8,31,53,.4); }
.public-page-heading { padding: 48px 0 34px; color: #fff; background: linear-gradient(120deg,#0b2d4e,#164e78); }
.public-page-heading .eyebrow { color: #a9dafa; }
.public-page-heading h1 { margin: 0; color: #fff; font-size: clamp(2rem,4vw,3.1rem); }
.public-page-heading p:last-child { margin: 8px 0 0; color: #d8eaf6; }
.public-form-wrap { width: min(880px,calc(100% - 32px)); padding-top: 30px; padding-bottom: 60px; }
.public-card { padding: clamp(20px,4vw,42px); border: 1px solid #dbe6ef; border-radius: 18px; background: #fff; box-shadow: 0 14px 40px rgba(8,31,53,.07); }
.public-closed { margin: 22px 0; }
.public-closed h2 { margin-top: 0; }
.registration-note { margin-bottom: 18px; padding: 18px 22px; border: 1px solid #c9dfef; border-left: 4px solid #f59e0b; border-radius: 12px; background: #f2f9fe; }
.registration-note > strong { color: #123b63; }
.registration-note p { margin: 7px 0; color: #344e63; }
.registration-note span, .privacy-note, .public-field small { color: #64788b; font-size: .88rem; }
.registration-note ol { display: grid; gap: 5px; margin: 8px 0 0; padding-left: 24px; color: #344e63; }
.public-field .file-help { color: #64788b; font-size: .83rem; }
.registration-form { display: grid; gap: 18px; }
.registration-draft-status { margin: 0; padding: 10px 13px; border: 1px solid #cce4f3; border-radius: 9px; color: #285876; background: #f1f9fe; font-size: .85rem; }
.registration-section-title { margin: 20px 0 0; padding-bottom: 9px; border-bottom: 1px solid #e3ebf1; color: #123b63; font-size: 1.25rem; }
.registration-info { padding: 16px 18px; border-radius: 10px; color: #173b58; background: #edf7fd; }
.registration-info p { margin: 4px 0 0; }
.public-field { display: grid; gap: 7px; min-width: 0; }
.public-field[hidden] { display: none; }
.public-field > label, .public-field legend, .check-form > label, .check-form legend { color: #102f4c; font-weight: 700; }
.public-field input:not([type=radio]):not([type=checkbox]), .public-field select, .public-field textarea, .check-form input { width: 100%; min-height: 47px; padding: 10px 13px; border: 1px solid #c8d5e1; border-radius: 9px; color: #172033; background: #fff; font: inherit; }
.public-field textarea { min-height: 90px; resize: vertical; }
.public-field input:focus, .public-field select:focus, .public-field textarea:focus, .check-form input:focus { outline: 0; border-color: #3788bd; box-shadow: 0 0 0 4px rgba(55,136,189,.14); }
.public-field fieldset, .check-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.public-field legend, .check-form legend { margin-bottom: 8px; }
.choice-list { display: grid; gap: 10px; }
.choice-card { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border: 1px solid #d7e3ed; border-radius: 10px; cursor: pointer; }
.choice-card span { display: grid; color: #526a7e; }
.choice-card strong { color: #123b63; }
.choice-inline { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.choice-inline label, .checkbox-row { display: flex; align-items: center; gap: 8px; }
.public-field input[type=radio], .public-field input[type=checkbox] { width: 18px; height: 18px; accent-color: #14527f; }
.uppercase-input { text-transform: uppercase; }
.turnstile-slot { display: flex; justify-content: center; overflow-x: auto; padding: 10px 0; }
.registration-submit { width: 100%; min-height: 50px; color: #142b40; background: #f59e0b; }
.registration-submit:hover { background: #e88700; }
.privacy-note { margin: -4px 0 0; text-align: center; }
.form-back-link { margin: 18px 0; text-align: center; }
.form-back-link a, .success-card a:not(.button) { color: #14527f; font-weight: 700; }
.check-card { width: min(100%,680px); margin: 0 auto; }
.check-form { display: grid; gap: 11px; }
.check-form fieldset { display: grid; gap: 9px; margin: 10px 0; padding: 18px; border: 1px solid #dce6ee; border-radius: 10px; }
.check-or { color: #74879a; font-size: .87rem; text-align: center; }
.registration-result { margin-top: 28px; padding-top: 22px; border-top: 1px solid #e1eaf1; }
.status-pill-success { display: inline-block; border-color: #a8d9bc; color: #126541; background: #effaf3; }
.registration-result dl { display: grid; gap: 0; margin: 18px 0; }
.registration-result dl div { display: grid; grid-template-columns: minmax(140px,.65fr) 1fr; gap: 15px; padding: 10px 0; border-bottom: 1px solid #edf1f4; }
.registration-result dt { color: #607487; }
.registration-result dd { margin: 0; color: #173b58; font-weight: 700; }
.success-card { max-width: 740px; margin: 0 auto; }
.success-card h2 { margin-top: 12px; }
.success-mark { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: #fff; background: #15804e; font-size: 1.55rem; font-weight: 800; }
.success-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 24px; }

/* Pengelolaan pendaftar dan checklist berkas */
.module-status-link { text-decoration: none; }
.applicant-content { max-width: 1480px; }
.applicant-content .dashboard-heading { align-items: center; }
.applicant-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 20px 0; }
.applicant-summary-card { display: grid; gap: 6px; padding: 18px 20px; border: 1px solid #dbe6ef; border-radius: 13px; background: #fff; }
.applicant-summary-card span, .applicant-facts span { color: #64788b; font-size: .87rem; }
.applicant-summary-card strong { color: #123b63; font-size: 1.6rem; }
.applicant-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 18px 0; padding: 16px; border: 1px solid #dce6ee; border-radius: 12px; background: #fff; }
.applicant-filter label, .requirement-add-form label, .applicant-correction-submit label { display: grid; flex: 1 1 190px; gap: 6px; color: #173b58; font-weight: 700; }
.applicant-filter input, .applicant-filter select, .requirement-add-form input, .document-check-form input[type=text], .applicant-edit-form input:not([type=checkbox]), .applicant-edit-form select, .applicant-edit-form textarea, .applicant-correction-submit textarea { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid #c8d5e1; border-radius: 8px; color: #172033; background: #fff; font: inherit; }
.applicant-table-wrap { overflow-x: auto; border: 1px solid #dce6ee; border-radius: 12px; background: #fff; }
.applicant-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.applicant-table th, .applicant-table td { padding: 12px 13px; border-bottom: 1px solid #e9eff4; text-align: left; vertical-align: middle; }
.applicant-table th { color: #294e68; background: #f3f8fc; white-space: nowrap; }
.applicant-table tr:last-child td { border-bottom: 0; }
.applicant-empty { padding: 18px; color: #667a8c; text-align: center; }
.applicant-status { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; color: #526276; background: #eef3f7; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.applicant-status.is-registered { color: #126541; background: #e7f7ef; }
.applicant-status.is-cancelled { color: #8d3737; background: #fdeeee; }
.applicant-status.is-pending { color: #76540a; background: #fff5d9; }
.button-small { min-height: 34px; padding: 6px 10px; font-size: .82rem; }
.applicant-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 14px 2px; color: #64788b; font-size: .9rem; }
.applicant-pagination > div { display: flex; gap: 8px; }
.applicant-detail-heading { margin-top: 8px; }
.applicant-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 20px 0; }
.applicant-facts > div { display: grid; gap: 7px; min-width: 0; padding: 16px; border: 1px solid #dce6ee; border-radius: 12px; background: #fff; }
.applicant-facts strong { color: #173b58; overflow-wrap: anywhere; }
.applicant-panel { margin: 18px 0; padding: clamp(18px,3vw,26px); border: 1px solid #dce6ee; border-radius: 15px; background: #fff; }
.applicant-panel h2 { margin: 0 0 8px; color: #123b63; font-size: 1.2rem; }
.applicant-panel-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.applicant-panel-heading p, .applicant-help { margin: 0; color: #64788b; font-size: .9rem; }
.document-checklist, .requirement-list { display: grid; gap: 10px; }
.document-check-row, .requirement-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 13px; border: 1px solid #e3ebf1; border-radius: 10px; background: #fbfdff; }
.document-check-row > div:first-child, .requirement-row > div:first-child { display: grid; flex: 1 1 220px; gap: 4px; color: #173b58; }
.document-check-row small, .requirement-row small { color: #6b7f90; }
.document-check-form { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.document-check-form input[type=text] { width: min(260px,45vw); min-height: 36px; }
.applicant-edit-form { display: grid; gap: 10px; }
.applicant-section-heading { margin: 22px 0 10px; padding-bottom: 8px; border-bottom: 1px solid #e4ebf1; color: #174567; font-size: 1rem; }
.applicant-data-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.applicant-data-field { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 12px; border: 1px solid #e5ecf2; border-radius: 9px; background: #fff; }
.applicant-data-field[hidden] { display: none; }
.applicant-data-field.field-wide { grid-column: 1 / -1; }
.applicant-data-field label { color: #294e68; font-size: .9rem; font-weight: 800; }
.applicant-data-field > small { color: #728496; }
.applicant-read-value { color: #23394d; white-space: pre-wrap; overflow-wrap: anywhere; }
.applicant-data-field input[type=checkbox] { width: 18px; height: 18px; accent-color: #14527f; }
.applicant-correction-submit { display: grid; gap: 9px; margin-top: 14px; padding: 15px; border-radius: 10px; background: #f2f8fc; }
.applicant-correction-submit textarea { min-height: 72px; resize: vertical; }
.requirement-add-form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 14px 0; }
.requirement-add-form label { flex-basis: 260px; }
.requirement-add-form button { min-height: 43px; }
.applicant-help { margin-top: 6px; }
.alert-error { margin: 12px 0; padding: 12px 15px; border: 1px solid #f1c7c7; border-radius: 9px; color: #842d2d; background: #fff4f4; }
.alert-success { margin: 12px 0; padding: 12px 15px; border: 1px solid #b8e1ca; border-radius: 9px; color: #155b39; background: #effaf3; }
.registration-status-panel { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; border-left: 4px solid #e79a20; }
.registration-status-form { display: flex; flex: 1 1 520px; flex-wrap: wrap; align-items: end; gap: 10px; }
.registration-status-form label { flex: 1 1 100%; color: #294e68; font-size: .9rem; font-weight: 800; }
.registration-status-form input { flex: 1 1 220px; min-height: 42px; padding: 9px 11px; border: 1px solid #c8d5e1; border-radius: 8px; font: inherit; }
.button-danger { border: 1px solid #a93232; color: #fff; background: #a93232; }
.button-danger:hover { background: #882727; }
.applicant-delete-panel { border-color: #edc8c8; background: #fffafa; }
.applicant-delete-panel h2 { color: #8d2929; }
.applicant-delete-panel > p { max-width: 900px; color: #795959; line-height: 1.55; }
.applicant-delete-form { display: grid; grid-template-columns: minmax(220px,1fr) minmax(220px,1fr) auto; align-items: end; gap: 10px; }
.applicant-delete-form label { color: #6f3b3b; font-size: .86rem; font-weight: 800; }
.applicant-delete-form input { min-width: 0; min-height: 42px; padding: 9px 11px; border: 1px solid #d9bcbc; border-radius: 8px; color: #172033; background: #fff; font: inherit; }
.applicant-delete-form input[type=hidden] { display: none; }
.applicant-delete-form label[for=delete-application-confirmation] { grid-column: 1; grid-row: 1; }
.applicant-delete-form input[name=application_no_confirmation] { grid-column: 1; grid-row: 2; }
.applicant-delete-form label[for=delete-reason] { grid-column: 2; grid-row: 1; }
.applicant-delete-form input[name=reason] { grid-column: 2; grid-row: 2; }
.applicant-delete-form button { grid-column: 3; grid-row: 2; }
@media (max-width: 900px) { .applicant-facts { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 680px) {
    .applicant-summary, .applicant-data-grid { grid-template-columns: 1fr; }
    .applicant-data-field.field-wide { grid-column: auto; }
    .applicant-facts { grid-template-columns: 1fr 1fr; }
    .applicant-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
    .applicant-table, .applicant-table tbody, .applicant-table tr, .applicant-table td { display: block; width: 100%; }
    .applicant-table tr { padding: 8px 12px; border-bottom: 1px solid #e9eff4; }
    .applicant-table td { display: grid; grid-template-columns: minmax(100px,.42fr) 1fr; gap: 10px; padding: 6px 0; border: 0; }
    .applicant-table td::before { content: attr(data-label); color: #64788b; font-size: .82rem; }
    .applicant-table .applicant-empty { display: block; }
    .document-check-form { width: 100%; }
    .document-check-form input[type=text] { flex: 1 1 100%; width: 100%; }
    .registration-status-form { align-items: stretch; }
    .registration-status-form input, .registration-status-form button { flex-basis: 100%; }
    .applicant-delete-form { grid-template-columns: 1fr; }
    .applicant-delete-form label, .applicant-delete-form input[name=application_no_confirmation], .applicant-delete-form input[name=reason], .applicant-delete-form button { grid-column: 1; grid-row: auto; }
}

/* Form builder */
.form-builder-content { max-width: 1380px; }
.form-builder-content .dashboard-heading { align-items: center; }
.period-picker { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin: 18px 0; padding: 16px; border: 1px solid #dce6ee; border-radius: 12px; background: #fff; }
.period-picker label { color: #173b58; font-weight: 700; }
.period-picker select { min-height: 43px; flex: 1 1 300px; padding: 8px 11px; border: 1px solid #cbd8e2; border-radius: 8px; background: #fff; font: inherit; }
.form-version-card { padding: clamp(18px,3vw,28px); border: 1px solid #dce6ee; border-radius: 16px; background: #fff; }
.form-version-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
.form-version-top h2 { margin: 0; font-size: 1.28rem; }
.period-status-active { color: #126541; background: #e7f7ef; }
.period-status-draft { color: #79540a; background: #fff5d9; }
.form-version-meta { margin-bottom: 20px; }
.form-intro-field { grid-column: span 2; }
.settings-form textarea { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid #c8d5e1; border-radius: 8px; font: inherit; }
.builder-section-title { margin: 26px 0 10px; color: #174567; font-size: 1rem; }
.builder-field-row { display: grid; gap: 11px; margin: 10px 0; padding: 15px; border: 1px solid #e0e8ef; border-radius: 11px; background: #fbfdff; }
.builder-field-system { border-left: 3px solid #4495c7; }
.builder-field-label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; color: #153c5b; }
.builder-field-label span, .builder-options { color: #6c7f90; font-size: .83rem; }
.builder-field-edit { display: grid; grid-template-columns: 1fr 1fr 90px; gap: 10px; }
.builder-field-edit input { width: 100%; min-width: 0; }
.builder-options { margin: -5px 0 0; }
.builder-options-edit { display: grid; gap: 6px; }
.builder-options-edit label { color: #173b58; font-size: .88rem; font-weight: 700; }
.builder-options-edit textarea { width: 100%; min-height: 88px; padding: 9px 11px; border: 1px solid #c8d5e1; border-radius: 8px; font: inherit; resize: vertical; }
.builder-options-edit small, .field-lock-note { color: #687f91; font-size: .82rem; }
.builder-field-toggles { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; color: #456176; font-size: .87rem; }
.builder-field-toggles label, .builder-custom-required { display: inline-flex; align-items: center; gap: 6px; }
.publish-form { margin-top: 22px; padding-top: 18px; border-top: 1px solid #e5edf2; }
.publish-button { color: #172f44; background: #f59e0b; }
.add-custom-field { margin-top: 18px; }
.custom-field-form { grid-template-columns: repeat(2,minmax(0,1fr)); padding-top: 20px; }
.custom-field-form .settings-submit { grid-column: 1 / -1; }
.add-custom-field summary { cursor: pointer; }
.form-published-notice, .form-unpublished-notice { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding: 14px 16px; border: 1px solid #a9d9bf; border-radius: 12px; background: #effaf4; color: #145b3c; }
.form-published-notice > span:nth-child(2) { display: grid; flex: 1; gap: 3px; }
.form-published-notice small, .form-unpublished-notice span { color: #527163; }
.form-published-mark { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 50%; color: #fff; background: #16804f; font-weight: 800; }
.form-unpublished-notice { align-items: flex-start; flex-direction: column; border-color: #f0d28a; background: #fff9e9; color: #72500b; }
.form-unpublished-notice span { color: #796c4c; }
.public-form-checklist { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px 16px; margin: 22px 0; padding: 18px; border: 1px solid #cfe0ec; border-radius: 14px; background: #f7fbfe; }
.public-form-checklist > div { grid-column: 1 / -1; }
.public-form-checklist h2 { margin: 0; color: #143e60; font-size: 1.05rem; }
.setup-check { margin: 0; padding: 12px; border-radius: 10px; font-size: .9rem; }
.setup-check a { display: inline-block; margin-left: 3px; color: #14527f; font-weight: 700; }
.setup-check-ready { background: #eaf7ef; color: #235a3e; }
.setup-check-pending { background: #fff5df; color: #75550f; }
.wave-delete { margin-top: 16px; border-top: 1px solid #f0dddd; padding-top: 12px; }
.wave-delete > summary { width: fit-content; color: #a53b36; cursor: pointer; font-weight: 700; }
.wave-delete form { display: grid; gap: 10px; margin-top: 12px; padding: 14px; border: 1px solid #f0dddd; border-radius: 10px; background: #fffafa; }
.wave-delete form p, .wave-delete-locked { margin: 0; color: #755c5c; font-size: .88rem; }
.delete-confirm { display: flex; align-items: flex-start; gap: 8px; color: #573e3e; font-size: .9rem; }
.button-danger { width: fit-content; color: #fff; background: #a93630; }
.button-danger:hover { background: #862922; }
.wave-delete-locked { margin-top: 14px; padding: 10px 12px; border-radius: 9px; background: #f8f2f2; }

@media (max-width: 760px) {
    .public-page-heading { padding: 38px 0 28px; }
    .public-form-wrap { padding-top: 20px; }
    .registration-result dl div { grid-template-columns: 1fr; gap: 1px; }
    .form-builder-content .dashboard-heading { align-items: flex-start; flex-direction: column; }
    .builder-field-edit, .custom-field-form { grid-template-columns: 1fr; }
    .form-intro-field, .custom-field-form .settings-submit { grid-column: auto; }
}

@media (max-width: 480px) {
    .registration-note, .public-card { padding: 18px; }
    .form-version-top { align-items: flex-start; flex-direction: column; }
    .success-actions { align-items: stretch; flex-direction: column; }
}

@media (max-width: 760px) {
    .hero-public { padding: 48px 0 54px; }
    .hero-public .hero-grid { grid-template-columns: 1fr; gap: 25px; }
    .hero-public h1 { font-size: clamp(2.25rem,10vw,3.2rem); }
    .hero-info-card { max-width: 560px; }
    .settings-content > .dashboard-heading { align-items: flex-start; flex-direction: column; }
    .settings-form-period, .settings-form-wave { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .settings-form-period > .settings-submit { grid-column: 1 / -1; }
    .settings-content .dashboard-title { overflow-wrap: anywhere; }
    .public-form-checklist { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .login-brand-panel { min-height: 0; }
    .login-promo { margin: 26px 0 20px; }
    .login-promo h2 { font-size: clamp(1.8rem,8vw,2.2rem); }
    .login-form-panel { min-height: 56vh; padding-top: 38px; }
    .login-copyright { margin-top: 25px; }
    .settings-form-period, .settings-form-wave { grid-template-columns: 1fr; }
    .settings-form-period > .settings-submit, .settings-field-wide { grid-column: auto; }
    .settings-panel-heading, .period-card-heading { align-items: flex-start; flex-direction: column; }
    .settings-actions { align-items: flex-start; flex-direction: column; }
    .wave-item summary { align-items: flex-start; flex-direction: column; gap: 4px; }
}

/* Penyegaran visual halaman depan, formulir, navigasi, dan dashboard */
.hero-public .container, #informasi > .container { width: min(1240px,calc(100% - 48px)); }
.public-page-heading { position: relative; isolation: isolate; display: flex; height: 300px; min-height: 300px; align-items: center; overflow: hidden; background: linear-gradient(118deg,#0b2d4e 0%,#123b63 58%,#17608e 100%); }
.public-page-heading::before, .public-page-heading::after { position: absolute; z-index: -1; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; pointer-events: none; }
.public-page-heading::before { width: 360px; height: 360px; top: -230px; right: 8%; box-shadow: 0 0 0 34px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.025); }
.public-page-heading::after { width: 240px; height: 240px; right: -110px; bottom: -180px; }
.public-form-wrap { width: min(960px,calc(100% - 36px)); }
.registration-note { border-color: #c9e4f7; background: linear-gradient(110deg,#eaf5ff,#f6fbff 68%,#fff8e9); box-shadow: 0 8px 24px rgba(18,59,99,.045); }
.registration-form { gap: 22px; background: linear-gradient(180deg,#fff 0%,#fcfdff 100%); }
.registration-section { overflow: hidden; border: 1px solid #dce8f1; border-radius: 15px; background: #fff; box-shadow: 0 7px 22px rgba(18,59,99,.045); }
.registration-section-heading { display: flex; align-items: center; gap: 13px; padding: 17px 20px; border-bottom: 1px solid #e4edf4; background: linear-gradient(100deg,#edf7ff,#f9fcff 70%,#fff8ed); }
.section-number { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 13px; color: #fff; background: linear-gradient(145deg,#123b63,#287aa8); font-size: .85rem; font-weight: 900; box-shadow: 0 5px 12px rgba(18,59,99,.17); }
.registration-section-heading h2 { margin: 0; color: #123b63; font-size: 1.12rem; }
.registration-section-heading div > span { color: #718497; font-size: .82rem; }
.registration-section-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 19px; }
.public-field { align-content: start; padding: 14px; border: 1px solid #edf1f5; border-radius: 11px; background: #fcfdff; }
.public-field > label, .public-field legend { font-size: .91rem; }
.public-field-wide { grid-column: 1 / -1; }
.public-field input:not([type=radio]):not([type=checkbox]), .public-field select, .public-field textarea { border-color: #cfdeea; background: #fff; }
.public-field input:not([type=radio]):not([type=checkbox]):focus, .public-field select:focus, .public-field textarea:focus { border-color: #3788bd; }
.registration-info { border: 1px solid #cde5f5; border-left: 4px solid #3d96c9; background: #eff8ff; }
.registration-section-fields > .registration-info { grid-column: 1 / -1; }
.registration-intro-content { padding: 18px 20px 20px; color: #29485f; }
.registration-intro-content p { margin: 0 0 10px; }
.registration-intro-content ol { display: grid; gap: 6px; margin: 0; padding-left: 1.35rem; }
.registration-intro-content li { padding-left: 3px; }
.hero-public-art img { object-position: right top; }
.public-page-heading-form .public-page-art img { object-position: right top; }
.check-result-modal { width: min(680px,calc(100vw - 32px)); }
.check-result-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0; }
.check-result-grid > div { min-width: 0; padding: 12px 14px; border: 1px solid #e0eaf2; border-radius: 10px; background: #f9fcff; }
.check-result-grid dt { margin-bottom: 4px; color: #687e91; font-size: .8rem; font-weight: 700; }
.check-result-grid dd { margin: 0; color: #173b58; font-weight: 700; overflow-wrap: anywhere; }
.check-result-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.check-result-message { margin: 0; padding: 14px 16px; border: 1px solid #c8e8d8; border-radius: 10px; color: #195e3d; background: #f0fbf5; }
.check-result-message-error { border-color: #f3d1ca; color: #8b3424; background: #fff6f3; }
.choice-card { transition: border-color .15s ease,background-color .15s ease,transform .15s ease; }
.choice-card:hover { border-color: #9dc8e5; background: #f5fbff; transform: translateY(-1px); }
.choice-card:has(input:checked) { border-color: #3788bd; background: #eef8ff; box-shadow: 0 0 0 2px rgba(55,136,189,.08); }
.registration-submit { color: #fff; background: linear-gradient(100deg,#ed7900,#f59e0b); box-shadow: 0 9px 20px rgba(237,121,0,.18); }
.registration-submit:hover { color: #fff; background: linear-gradient(100deg,#d96d00,#e88700); }

.dashboard-page { background: radial-gradient(ellipse at 92% 0%,#e7f4ff 0,transparent 34%),#f3f6fa; }
.dashboard-sidebar { position: sticky; isolation: isolate; overflow: hidden; background: linear-gradient(165deg,#0a2946,#081f35 62%,#0b3454); }
.dashboard-sidebar::after { position: absolute; z-index: -1; width: 250px; height: 250px; right: -155px; top: 150px; border: 1px solid rgba(143,211,255,.12); border-radius: 50%; box-shadow: 0 0 0 28px rgba(143,211,255,.025),0 0 0 58px rgba(143,211,255,.02); content: ""; pointer-events: none; }
.sidebar-link-active { box-shadow: inset 3px 0 #f59e0b; }
.dashboard-topbar { border-bottom-color: #dce8f1; background: rgba(242,248,253,.94); backdrop-filter: blur(12px); }
.dashboard-welcome-panel { position: relative; isolation: isolate; overflow: hidden; min-height: 166px; align-items: center; padding: 26px 30px; border: 1px solid rgba(255,255,255,.1); border-radius: 19px; color: #fff; background: linear-gradient(115deg,#0b2d4e,#164d75 68%,#2174a1); box-shadow: 0 14px 34px rgba(8,31,53,.14); }
.dashboard-welcome-panel::after { position: absolute; z-index: -1; width: 250px; height: 250px; right: 6%; top: -180px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 0 28px rgba(255,255,255,.035),0 0 0 60px rgba(255,255,255,.025); content: ""; }
.dashboard-welcome-panel .eyebrow { color: #b8e0fa; }
.dashboard-welcome-panel .dashboard-title, .dashboard-welcome-panel .dashboard-welcome { color: #fff; }
.dashboard-welcome-panel .dashboard-welcome { color: #d6e9f6; }
.dashboard-welcome-panel .role-banner { position: relative; z-index: 1; border-color: rgba(255,255,255,.28); color: #fff; background: rgba(255,255,255,.12); }
.dashboard-welcome-panel .role-dot { background: #75e0a5; box-shadow: 0 0 0 4px rgba(117,224,165,.16); }
.notice-card { border-color: #cfe3f1; border-left-color: #3290c2; background: linear-gradient(100deg,#edf7ff,#fff 75%); }
.module-card { overflow: hidden; border-color: #e0e8ef; transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.module-card::before { position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg,#2a83b6,#82c6e8); content: ""; }
.module-card:nth-child(3n + 2)::before { background: linear-gradient(90deg,#ed7900,#ffc04d); }
.module-card:nth-child(3n)::before { background: linear-gradient(90deg,#279469,#83d1a9); }
.module-card:hover { transform: translateY(-3px); border-color: #c4dcec; box-shadow: 0 15px 32px rgba(16,45,72,.09); }
.module-mark { display: inline-grid; min-width: 34px; height: 34px; place-items: center; border-radius: 10px; background: #eaf5ff; }

.header-inner { position: relative; }
.menu-toggle { display: none; }
.primary-navigation { display: flex; align-items: center; gap: 22px; }
.primary-navigation a:not(.button) { transition: color .15s ease; }
.primary-navigation a:not(.button):hover { color: #ffc45b; }
.primary-navigation .nav-register-link { padding: 9px 14px; border-radius: 9px; color: #102f4c; background: #f59e0b; }

@media (max-width: 760px) {
    .hero-public .container, #informasi > .container { width: min(100% - 32px,1240px); }
    .header-inner { min-height: 72px; align-items: center; flex-direction: row; gap: 12px; padding: 10px 0; }
    .menu-toggle { display: flex; width: 44px; height: 42px; flex: 0 0 44px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; margin-left: auto; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: rgba(255,255,255,.08); cursor: pointer; }
    .menu-toggle span { width: 19px; height: 2px; border-radius: 2px; background: #fff; transition: transform .15s ease,opacity .15s ease; }
    .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(7px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-7px) rotate(-45deg); }
    .primary-navigation { position: absolute; z-index: 20; top: calc(100% + 8px); left: 0; right: 0; display: none; align-items: stretch; gap: 4px; padding: 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; background: #081f35; box-shadow: 0 16px 30px rgba(4,20,36,.28); }
    .primary-navigation.is-open { display: flex; flex-direction: column; }
    .primary-navigation a:not(.button) { padding: 11px 12px; border-radius: 8px; }
    .primary-navigation a:not(.button):hover { background: rgba(255,255,255,.08); }
    .primary-navigation .nav-register-link { margin-top: 3px; color: #102f4c !important; background: #f59e0b !important; }
    .registration-section-fields { grid-template-columns: 1fr; gap: 12px; padding: 13px; }
    .public-field-wide { grid-column: auto; }
    .registration-section-heading { padding: 14px; }
    .dashboard-welcome-panel { align-items: flex-start; flex-direction: column; padding: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Hero beranda tanpa kartu samping dan dengan tinggi lebih ringkas */
.hero-public {
    min-height: 0;
    padding: clamp(38px,5vw,66px) 0;
    background-color: #0a2947;
    background-image: linear-gradient(115deg,#0a2947 0%,#103d66 58%,#174c78 100%);
}
.hero-public::before { display: none; }
.hero-public .hero-grid { grid-template-columns: minmax(0,1fr); }
.hero-public .hero-copy { width: min(100%,940px); max-width: 940px; }
.hero-public h1 { max-width: 900px; }
.hero-public .lead { max-width: 740px; }

/* Gambar abstrak yang dapat diganti admin */
.public-page-heading {
    background-color: #0b2d4e;
    background-image: linear-gradient(115deg,#0b2d4e,#164e78);
}
.public-page-art::after { position: absolute; inset: 0; background: linear-gradient(115deg,rgba(7,35,60,.78),rgba(17,75,114,.42)); content: ""; }
.public-page-heading-form .public-page-art::after { background: linear-gradient(100deg,rgba(237,247,255,.97) 0%,rgba(237,247,255,.94) 48%,rgba(237,247,255,.82) 72%,rgba(237,247,255,.42) 100%); }
.public-page-heading-form .eyebrow { color: #d46a08; }
.public-page-heading-form h1 { color: #153f60; }
.public-page-heading-form p:last-child { color: #385f7b; }
.login-brand-panel {
    background-color: #0b2d4e;
    background-image: linear-gradient(135deg,#0b2d4e,#164e78);
}

/* Pengaturan gambar pada panel administrator */
.appearance-intro { margin: -4px 0 18px; color: #65798b; font-size: .9rem; }
.appearance-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.appearance-card { display: flex; min-width: 0; flex-direction: column; gap: 12px; padding: 13px; border: 1px solid #dce6ee; border-radius: 13px; background: #fbfdff; }
.appearance-preview { display: grid; aspect-ratio: 16 / 8; overflow: hidden; place-items: center; border: 1px solid #dbe6ef; border-radius: 9px; color: #526b80; background: linear-gradient(125deg,#0b2d4e,#21618c); font-size: .85rem; }
.appearance-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }
.appearance-preview-default { background: linear-gradient(135deg,#0b2d4e,#164e78 65%,#f59e0b); color: #eaf5ff; }
.appearance-card-copy h3 { margin: 0 0 4px; color: #163d5c; font-size: 1rem; }
.appearance-card-copy p { margin: 0; color: #687e91; font-size: .83rem; line-height: 1.5; }
.appearance-upload { display: grid; gap: 8px; margin-top: auto; }
.appearance-upload label { color: #173b58; font-size: .84rem; font-weight: 700; }
.appearance-upload input[type=file] { width: 100%; min-width: 0; padding: 8px; border: 1px solid #d1dfe9; border-radius: 8px; background: #fff; font-size: .8rem; }
.appearance-upload .settings-submit { justify-self: stretch; width: 100%; }

@media (max-width: 900px) {
    .appearance-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .hero-public { padding: 42px 0 48px; }
    .hero-public .hero-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
    .hero-public h1 { font-size: clamp(2.2rem,9vw,3.3rem); }
    .appearance-grid { grid-template-columns: 1fr; }
    .check-result-grid { grid-template-columns: 1fr; }
    .check-result-actions { align-items: stretch; flex-direction: column; }
}
.finance-content { max-width: 1480px; }
.finance-filter { grid-template-columns: minmax(220px,1fr) minmax(250px,1.4fr) auto; align-items:end; }
.finance-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:20px 0; }
.finance-summary article { display:grid; gap:8px; min-height:94px; padding:17px 19px; border:1px solid #d8e7f1; border-radius:14px; background:linear-gradient(145deg,#fff,#f4f9fd); }
.finance-summary article span { color:var(--muted); font-size:.9rem; }
.finance-summary article strong { color:var(--navy); font-size:1.45rem; }
.finance-note { display:grid; gap:4px; padding:14px 17px; margin:18px 0; border:1px solid #c8e1ef; border-radius:12px; background:#eff8fd; color:var(--navy); }
.finance-note span,.finance-panel-heading p:not(.eyebrow),.finance-hint { color:var(--muted); }
.finance-table-wrap { margin:14px 0 24px; }
.finance-table { min-width:930px; }
.finance-pill { display:inline-flex; padding:5px 9px; border-radius:999px; background:#eef3f8; color:#34536a; font-size:.82rem; white-space:nowrap; }
.finance-pill-good { background:#e6f6ef; color:#16734b; }
.finance-pill-danger { background:#fff0eb; color:#a93e22; white-space:normal; }
.finance-panel { padding:22px; margin:26px 0; border:1px solid #d9e6ef; border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(17,55,88,.045); scroll-margin-top:24px; }
.finance-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:17px; }
.finance-panel-heading h2,.finance-subheading { margin:0 0 6px; color:var(--navy); font-size:1.35rem; }
.finance-panel-heading p { margin:0; }
.finance-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:end; margin:16px 0 21px; }
.finance-form-grid label,.finance-action-form label,.finance-reverse label { display:grid; gap:7px; color:var(--navy); font-weight:600; }
.finance-form-grid input,.finance-form-grid select,.finance-action-form select,.finance-action-form textarea,.finance-reverse input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #cad9e5; border-radius:9px; color:#183147; background:#fff; font:inherit; }
.finance-action-form { display:grid; grid-template-columns:minmax(180px,.7fr) minmax(280px,1.8fr) auto; gap:14px; align-items:end; }
.finance-action-form textarea { resize:vertical; }
.finance-checks { display:flex; flex-wrap:wrap; gap:14px; align-items:center; min-height:44px; }
.finance-checks label { display:flex; align-items:center; gap:7px; color:var(--navy); }
.finance-checks input { width:auto; min-height:auto; }
.finance-payment-form { padding-top:18px; border-top:1px solid #e4edf3; }
.finance-award-form { padding-top:16px; border-top:1px solid #e4edf3; }
.finance-subheading { margin:22px 0 12px; font-size:1.1rem; }
.finance-reverse { margin-top:8px; }
.finance-reverse summary { color:#a93e22; cursor:pointer; font-size:.85rem; }
.finance-reverse form { display:grid; gap:8px; min-width:220px; margin-top:8px; }
.button-danger { border-color:#a93e22; background:#a93e22; }
.finance-summary-detail { grid-template-columns:repeat(4,minmax(0,1fr)); }
.finance-hint { margin-top:-7px; font-size:.9rem; }
.finance-inline-form { display:grid; grid-template-columns:80px 110px auto; gap:6px; align-items:end; min-width:250px; }
.finance-inline-form label { display:grid; gap:4px; color:var(--muted); font-size:.76rem; }
.finance-inline-form input,.finance-inline-form select { width:100%; min-height:34px; padding:5px 7px; border:1px solid #cad9e5; border-radius:7px; background:#fff; color:#183147; font:inherit; }
.finance-edit { min-width:250px; }
.finance-edit summary { color:var(--navy); cursor:pointer; font-weight:700; }
.finance-row-form { display:grid; grid-template-columns:1fr 1fr; gap:9px; min-width:250px; margin-top:10px; }
.finance-row-form label { display:grid; gap:4px; color:var(--muted); font-size:.76rem; }
.finance-row-form input:not([type=checkbox]),.finance-row-form select { width:100%; min-height:34px; padding:5px 7px; border:1px solid #cad9e5; border-radius:7px; background:#fff; color:#183147; font:inherit; }
.finance-row-form .finance-checkbox { display:flex; grid-column:1/-1; align-items:center; gap:6px; }
.finance-row-toggle { margin-top:8px; }
.finance-scholarship-admin { grid-template-columns:repeat(3,minmax(0,1fr)); min-width:380px; }
.assessment-content { max-width: 1580px; }
.assessment-summary { grid-template-columns: repeat(5,minmax(0,1fr)); }
.assessment-privacy { display:grid; gap:4px; padding:14px 17px; margin:18px 0; border:1px solid #c6e4f4; border-radius:12px; background:#eff9ff; color:var(--navy); }
.assessment-privacy span,.assessment-footnote { color:var(--muted); font-size:.9rem; }
.assessment-filter { display:grid; grid-template-columns:minmax(220px,1fr) minmax(250px,1.4fr) auto; align-items:end; }
.assessment-table { min-width:1280px; }
.assessment-edit { min-width:250px; }
.assessment-edit summary { color:var(--navy); cursor:pointer; font-weight:700; }
.assessment-form { display:grid; gap:9px; min-width:250px; margin-top:10px; }
.assessment-form label { display:grid; gap:5px; color:var(--navy); font-size:.82rem; font-weight:600; }
.assessment-form input,.assessment-form select,.assessment-form textarea { width:100%; min-height:38px; padding:8px 10px; border:1px solid #cad9e5; border-radius:8px; color:#183147; background:#fff; font:inherit; }
.assessment-form textarea { min-height:76px; resize:vertical; }
.assessment-footnote { margin:10px 2px; }
@media (max-width:900px) {
    .finance-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .finance-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .finance-action-form { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
    .finance-summary,.finance-summary-detail,.assessment-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .finance-form-grid,.finance-action-form,.finance-filter,.assessment-filter { grid-template-columns:1fr; }
    .finance-panel { padding:16px; }
    .finance-checks { min-height:0; }
    .finance-inline-form { grid-template-columns:1fr 1fr; }
    .finance-scholarship-admin { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Detailed health and psychology assessment fields */
.assessment-table { min-width: 1060px; }
.assessment-subline { display:block; margin-top:4px; color:var(--muted); font-size:.82rem; }
.assessment-edit { min-width:180px; }
.assessment-edit summary { display:inline-flex; align-items:center; min-height:36px; padding:7px 11px; border:1px solid #c6d8e7; border-radius:8px; background:#fff; color:var(--navy); cursor:pointer; font-size:.88rem; font-weight:700; }
.assessment-detail-panel { width:min(860px, calc(100vw - 340px)); margin-top:12px; padding:18px; border:1px solid #d6e4ef; border-radius:14px; background:#f8fbfe; white-space:normal; }
.assessment-detail-panel h2 { margin:0 0 14px; color:var(--navy); font-size:1.08rem; }
.assessment-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:0; }
.assessment-results > div { min-width:0; padding:10px 12px; border:1px solid #e0eaf2; border-radius:9px; background:#fff; }
.assessment-results dt { margin-bottom:4px; color:var(--muted); font-size:.76rem; font-weight:700; }
.assessment-results dd { margin:0; color:#173650; font-size:.9rem; overflow-wrap:anywhere; }
.assessment-not-entered { color:#8a9aab; font-style:italic; }
.assessment-legacy { margin-top:12px; padding:10px 12px; border-left:3px solid #f59e0b; background:#fff8e9; color:#526273; font-size:.86rem; }
.assessment-legacy p { margin:5px 0 0; white-space:pre-wrap; }
.assessment-form { min-width:0; margin-top:18px; padding-top:16px; border-top:1px solid #dbe6ef; }
.assessment-form h3 { margin:0; color:var(--navy); font-size:1rem; }
.assessment-form-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.assessment-fields-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.assessment-fields-grid .assessment-field-wide { grid-column:1/-1; }
.assessment-form-help { margin:0; color:var(--muted); font-size:.82rem; }
.assessment-detail-panel .button { justify-self:start; }
@media (max-width: 900px) {
    .assessment-detail-panel { width:min(700px, calc(100vw - 70px)); }
    .assessment-results,.assessment-fields-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
    .assessment-detail-panel { width:calc(100vw - 64px); padding:13px; }
    .assessment-results,.assessment-fields-grid,.assessment-form-meta { grid-template-columns:1fr; }
    .assessment-fields-grid .assessment-field-wide { grid-column:auto; }
}

/* Accessible native modal dialogs for assessment and finance details */
.app-modal { width:min(920px, calc(100vw - 32px)); max-width:none; max-height:min(90vh, 900px); padding:0; overflow:hidden; border:1px solid #c9dceb; border-radius:18px; color:var(--navy); background:#fff; box-shadow:0 24px 80px rgba(9,35,58,.28); }
.check-result-modal { width:min(680px,calc(100vw - 32px)); }
.app-modal::backdrop { background:rgba(8,29,49,.62); backdrop-filter:blur(3px); }
.app-modal-header { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:20px 24px; border-bottom:1px solid #dce8f1; background:#f6faff; }
.app-modal-header .eyebrow { margin:0 0 4px; }
.app-modal-header h2 { margin:0; color:var(--navy); font-size:1.25rem; }
.app-modal-header p:not(.eyebrow) { margin:5px 0 0; color:var(--muted); font-size:.9rem; }
.app-modal-close { display:grid; flex:0 0 40px; width:40px; height:40px; place-items:center; border:1px solid #cadbe8; border-radius:50%; color:var(--navy); background:#fff; cursor:pointer; font-size:1.6rem; line-height:1; }
.app-modal-close:hover { background:#eaf4fb; }
.app-modal-body { max-height:calc(90vh - 95px); padding:20px 24px 24px; overflow:auto; overscroll-behavior:contain; }
.assessment-modal { width:min(850px, calc(100vw - 32px)); }
.assessment-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:0; }
.assessment-results > div { min-width:0; padding:10px 12px; border:1px solid #e0eaf2; border-radius:9px; background:#fff; }
.assessment-results dt { margin-bottom:4px; color:var(--muted); font-size:.76rem; font-weight:700; }
.assessment-results dd { margin:0; color:#173650; font-size:.9rem; overflow-wrap:anywhere; white-space:pre-wrap; }
.assessment-not-entered { color:#8a9aab; font-style:italic; }
.assessment-legacy { margin-top:12px; padding:10px 12px; border-left:3px solid #f59e0b; background:#fff8e9; color:#526273; font-size:.86rem; }
.assessment-legacy p { margin:5px 0 0; white-space:pre-wrap; }
.assessment-form { display:grid; gap:12px; min-width:0; margin-top:20px; padding-top:18px; border-top:1px solid #dbe6ef; }
.assessment-form h3 { margin:0; color:var(--navy); font-size:1.05rem; }
.assessment-form-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.assessment-fields-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.assessment-fields-grid .assessment-field-wide { grid-column:1/-1; }
.assessment-form-help { margin:0; color:var(--muted); font-size:.82rem; }
.assessment-form .button { justify-self:start; }
.finance-payment-overview .finance-panel-heading { align-items:center; }
.payment-quick-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.payment-quick-stats > span { display:grid; gap:5px; padding:12px 14px; border:1px solid #dce8f1; border-radius:10px; color:var(--muted); background:#f8fbfe; font-size:.83rem; }
.payment-quick-stats strong { color:var(--navy); font-size:1rem; }
.finance-modal-action { margin:14px 0; }
.finance-payment-modal { width:min(1100px, calc(100vw - 32px)); }
.finance-payment-modal .finance-table-wrap { max-width:100%; }
.finance-payment-modal .finance-form-grid { margin-bottom:16px; }
.reregistration-summary { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; color:var(--muted); }
.reregistration-summary strong { padding:5px 10px; border-radius:999px; color:var(--navy); background:#edf5fa; }
.reregistration-summary p { flex-basis:100%; margin:0; color:var(--muted); }
@media (max-width:700px) {
    .app-modal-header { padding:16px; }
    .app-modal-body { padding:16px; max-height:calc(90vh - 78px); }
    .assessment-results,.assessment-fields-grid,.assessment-form-meta,.payment-quick-stats { grid-template-columns:1fr; }
    .assessment-fields-grid .assessment-field-wide { grid-column:auto; }
    .check-result-grid { grid-template-columns:1fr; }
    .check-result-actions { align-items:stretch; flex-direction:column; }
    .finance-payment-overview .finance-panel-heading { align-items:flex-start; flex-direction:column; }
}

/* WhatsApp outbox */
.whatsapp-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.whatsapp-filter { display:grid; grid-template-columns:minmax(240px,1fr) auto; align-items:end; }
.whatsapp-table { min-width:900px; }
@media (max-width:600px) {
    .whatsapp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .whatsapp-filter { grid-template-columns:1fr; }
}

/* Paket cetak formulir pendaftar */
.applicant-detail-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.registration-print-content { width:min(1180px,calc(100% - 44px)); }
.dashboard-main .registration-print-content { max-width:1180px; }
.print-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:4px 0 18px; }
.print-toolbar h1 { max-width:none; margin:0; color:#123b63; font-size:clamp(1.5rem,3vw,2rem); line-height:1.2; }
.print-toolbar p:not(.eyebrow) { margin:5px 0 0; color:#63798c; }
.print-toolbar > div:last-child { display:flex; flex-wrap:wrap; gap:9px; }
.print-sheet { display:block; width:100%; max-width:940px; box-sizing:border-box; margin:0 auto 24px; padding:34px; border:1px solid #d9e5ee; border-radius:14px; color:#1d2934; background:#fff; box-shadow:0 7px 24px rgba(18,59,99,.06); font-family:Arial,Helvetica,sans-serif; }
.print-topline { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:12px; border-bottom:2px solid #173f60; }
.print-school-header { display:flex; flex:1 1 auto; min-width:0; align-items:center; justify-content:flex-start; gap:14px; padding:0; border:0; }
.print-school-header img { width:58px; height:58px; flex:0 0 auto; object-fit:contain; }
.print-school-header div { display:grid; gap:4px; }
.print-school-header .print-brand-text strong:first-child { color:#52697c; font-size:.82rem; letter-spacing:.06em; }
.print-school-header .print-brand-text strong:last-child { color:#173f60; font-size:1.08rem; letter-spacing:.035em; }
.print-school-header span { color:#52697c; font-size:.82rem; }
.print-form-heading { padding:13px 0 5px; text-align:center; }
.print-form-heading h2 { margin:0; color:#173f60; font-size:1.08rem; letter-spacing:.025em; }
.print-form-heading p { margin:4px 0 0; color:#52697c; font-size:.82rem; font-weight:700; }
.print-title-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 0 14px; }
.print-title-row h2,.print-section-title h2,.print-receipt h2 { margin:0; color:#173f60; font-size:1.25rem; }
.print-title-row .eyebrow,.print-section-title .eyebrow,.print-receipt .eyebrow { margin:0 0 5px; }
.print-application-number { display:grid; gap:4px; padding:10px 13px; border:1px solid #b9d4e7; border-radius:9px; background:#f1f8fd; }
.print-application-number span,.print-facts span { color:#61788b; font-size:.76rem; }
.print-application-number strong { color:#123b63; font-size:1rem; }
.print-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:12px; margin-bottom:16px; border-radius:10px; background:#f3f8fc; }
.print-facts div { display:grid; gap:4px; min-width:0; }
.print-facts strong { color:#173f60; font-size:.84rem; overflow-wrap:anywhere; }
.print-data-section { margin:14px 0; break-inside:avoid; }
.print-data-section h3 { padding:7px 10px; margin:0; border:1px solid #d7e5ef; border-bottom:0; border-radius:8px 8px 0 0; color:#173f60; background:#edf6fc; font-size:.94rem; }
.print-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; border:1px solid #d7e5ef; border-radius:0 0 8px 8px; }
.print-data-grid > div { min-width:0; padding:8px 10px; border-bottom:1px solid #e4ebf0; }
.print-data-grid > div:nth-child(odd) { border-right:1px solid #e4ebf0; }
.print-data-grid dt { margin:0 0 3px; color:#61788b; font-size:.74rem; }
.print-data-grid dd { margin:0; color:#1c2d3d; font-size:.86rem; overflow-wrap:anywhere; white-space:pre-wrap; }
.print-data-grid .print-field-wide { grid-column:1/-1; }
.print-signatures { margin:26px 0 16px; break-inside:avoid; }
.print-signature-date { width:33.333%; margin:0 0 4px auto; color:#52697c; font-size:.8rem; text-align:center; }
.print-signature-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.print-signature-columns > div { display:flex; min-height:105px; flex-direction:column; align-items:center; justify-content:space-between; text-align:center; }
.print-signature-columns span,.print-signature-columns strong { font-size:.8rem; }
.print-signature-columns i { display:block; width:82%; height:54px; }
.print-signature-columns strong { font-weight:500; }
.print-metadata { padding-top:8px; border-top:1px solid #dce6ed; color:#62798b; font-size:.72rem; }
.print-section-title { padding-bottom:14px; margin-bottom:16px; border-bottom:1px solid #d9e5ee; }
.print-section-title p:last-child { margin:7px 0 0; color:#52697c; }
.print-checklist-table { width:100%; border-collapse:collapse; font-size:.82rem; }
.print-checklist-table th,.print-checklist-table td { padding:9px 8px; border:1px solid #cfdce6; text-align:left; vertical-align:top; }
.print-checklist-table th { color:#173f60; background:#edf6fc; }
.print-checklist-table td:first-child { width:38px; text-align:center; }
.print-checklist-table small { display:block; margin-top:3px; color:#61788b; }
.print-empty { padding:12px; border:1px solid #d7e5ef; border-radius:8px; color:#52697c; }
.print-receipt { padding-top:24px; margin-top:26px; border-top:2px dashed #9bb3c5; break-before:page; page-break-before:always; }
.print-receipt > p:not(.eyebrow) { margin:10px 0; color:#52697c; }
.print-receipt dl { display:grid; gap:0; margin:16px 0; border:1px solid #d7e5ef; }
.print-receipt dl div { display:grid; grid-template-columns:170px 1fr; gap:10px; padding:9px 11px; border-bottom:1px solid #e4ebf0; }
.print-receipt dt { color:#61788b; }
.print-receipt dd { margin:0; color:#173f60; font-weight:700; }
.payment-receipt-content { max-width:1120px; margin-inline:auto; }
.payment-receipt-toolbar-actions,.receipt-paper-size { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.receipt-paper-size { padding:4px; border:1px solid #d5e3ed; border-radius:10px; background:#fff; }
.receipt-paper-size .is-selected { color:#fff; border-color:#123b63; background:#123b63; }
.payment-receipt-sheet { max-width:450px; margin:18px auto; padding:26px; border:1px dashed #9bb3c5; color:#203243; background:#fff; font-family:Arial,Helvetica,sans-serif; }
.payment-receipt-heading { display:flex; align-items:center; gap:16px; padding-bottom:18px; border-bottom:2px solid #173f60; }
.payment-receipt-heading img { width:68px; height:68px; object-fit:contain; }
.payment-receipt-heading p { margin:0 0 4px; color:#52697c; font-size:.76rem; font-weight:700; letter-spacing:.08em; }
.payment-receipt-heading h2 { margin:0; color:#173f60; font-size:1.2rem; }
.payment-receipt-heading span { display:block; margin-top:5px; color:#52697c; font-size:.84rem; }
.payment-receipt-title { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:24px 0 18px; }
.payment-receipt-title h2 { margin:0; color:#173f60; font-size:1.15rem; letter-spacing:.04em; }
.payment-receipt-title strong { padding:7px 10px; border:1px solid #b9d4e7; border-radius:6px; color:#123b63; font-size:.9rem; }
.payment-receipt-amount { display:grid; gap:5px; padding:14px 16px; border:1px solid #d7e5ef; border-left:4px solid #f28b16; border-radius:7px; background:#f5f9fc; }
.payment-receipt-amount span { color:#52697c; font-size:.84rem; }
.payment-receipt-amount strong { color:#123b63; font-size:1.3rem; }
.payment-receipt-amount em { color:#52697c; font-size:.84rem; }
.payment-receipt-details { margin:18px 0; border:1px solid #d7e5ef; }
.payment-receipt-details > div { display:grid; grid-template-columns:minmax(190px,34%) 1fr; gap:14px; padding:10px 12px; border-bottom:1px solid #e4ebf0; }
.payment-receipt-details > div:last-child { border-bottom:0; }
.payment-receipt-details dt { color:#61788b; }
.payment-receipt-details dd { display:grid; gap:5px; margin:0; color:#203243; font-weight:700; overflow-wrap:anywhere; }
.payment-receipt-allocation dd span { display:flex; justify-content:space-between; gap:12px; font-weight:400; }
.payment-receipt-allocation dd b { white-space:nowrap; }
.payment-receipt-thanks { margin:18px 0; color:#52697c; font-size:.85rem; }
.payment-receipt-signature { display:flex; justify-content:flex-end; margin-top:26px; }
.payment-receipt-signature > div { display:flex; width:220px; min-height:100px; flex-direction:column; align-items:center; gap:5px; text-align:center; }
.payment-receipt-signature span,.payment-receipt-signature small { color:#61788b; font-size:.8rem; }
.payment-receipt-signature strong,.payment-receipt-signature b { color:#203243; font-size:.83rem; }
.payment-receipt-signature i { display:block; flex:1; min-height:38px; }
.payment-receipt-footer { padding-top:9px; border-top:1px solid #dce6ed; color:#718394; font-size:.7rem; text-align:center; }
@page thermal-receipt { size:80mm 200mm; margin:4mm; }
@page receipt-a6 { size:105mm 148mm; margin:5mm; }
article.payment-receipt-sheet { page:receipt-a6; }
body.receipt-thermal { page:thermal-receipt; }
@media (max-width:800px) {
    .payment-receipt-toolbar-actions { width:100%; }
    .payment-receipt-sheet { padding:24px; }
    .payment-receipt-details > div { grid-template-columns:minmax(120px,38%) 1fr; gap:8px; }
}
.print-check-options { min-width:105px; white-space:nowrap; }
.print-check-options span { display:block; }
.print-staff-signature small { align-self:center; color:#52697c; font-size:.74rem; }
.statement-sheet > p { line-height:1.6; }
.statement-title { margin:22px 0; color:#173f60; font-size:1.05rem; line-height:1.55; text-align:center; }
.statement-identity { width:100%; margin:12px 0 18px; border-collapse:collapse; }
.statement-identity th,.statement-identity td { padding:5px 4px; text-align:left; vertical-align:top; }
.statement-identity th { width:235px; font-weight:500; }
.statement-identity td:nth-child(2) { width:18px; }
.statement-list { padding-left:25px; margin:8px 0 16px; }
.statement-list li { padding:3px 0 3px 4px; }
.statement-date { width:50%; margin:22px 0 8px auto; text-align:center; }
.statement-signatures { display:grid; grid-template-columns:1fr 1fr; gap:50px; margin-top:20px; text-align:center; }
.statement-signatures > div { display:flex; min-height:145px; flex-direction:column; align-items:center; justify-content:space-between; }
.statement-signatures i { display:block; width:78%; height:75px; border-bottom:1px solid #536575; }
.statement-signatures strong { font-weight:500; }
.referral-identity { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:13px; border:1px solid #d7e5ef; border-radius:9px; background:#f6fafe; }
.referral-identity > div { display:grid; gap:3px; min-width:0; }
.referral-identity span { color:#61788b; font-size:.76rem; }
.referral-identity strong { color:#173f60; overflow-wrap:anywhere; }
.referral-date { margin:18px 0; text-align:right; }
.referral-subtitle { margin:18px 0 7px; color:#173f60; font-size:.95rem; }
.referral-table { width:100%; border-collapse:collapse; }
.referral-table th,.referral-table td { padding:9px 8px; border:1px solid #bfcfdb; text-align:left; vertical-align:top; }
.referral-table th { width:15%; background:#f2f7fb; font-size:.82rem; }
.referral-table td { height:36px; }
.referral-writing-lines { height:120px; border:1px solid #bfcfdb; background:repeating-linear-gradient(to bottom,#fff 0,#fff 27px,#cbd6df 28px,#fff 29px); }
.referral-psychology-table th { width:24%; }
.referral-psychology-table .referral-writing-cell { height:72px; }
.referral-signature { display:flex; width:220px; min-height:130px; flex-direction:column; align-items:center; justify-content:space-between; margin:24px 0 0 auto; text-align:center; }
.referral-signature i { display:block; height:78px; }
.referral-signature small { color:#61788b; }
.split-test-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-bottom:4px; margin-bottom:7px; border-bottom:1px solid #9db5c6; }
.split-test-heading strong { color:#173f60; font-size:.7rem; }
.split-test-heading h2 { margin:0; color:#173f60; font-size:1rem; }
.split-test-identity { display:grid; grid-template-columns:55px minmax(0,1.35fr) 74px minmax(0,1fr); gap:3px 6px; align-items:baseline; font-size:.72rem; }
.split-test-identity span { color:#61788b; }
.split-test-identity strong { min-width:0; color:#173f60; overflow-wrap:anywhere; }
.split-test-date { margin:5px 8% 5px 0; color:#384e60; font-size:.72rem; text-align:right; }
.split-test-half { padding:0 0 7px; }
.split-test-history { display:grid; grid-template-columns:105px 1fr; gap:8px; align-items:start; margin-top:5px; font-size:.72rem; }
.split-test-history span { min-height:38px; border:1px solid #91a9bb; }
.split-test-signature { display:flex; width:180px; min-height:42px; flex-direction:column; align-items:center; justify-content:flex-end; margin:3px 4% 0 auto; text-align:center; }
.split-test-signature span { font-size:.7rem; }
.split-test-signature i { display:block; width:82%; height:17px; border-bottom:1px solid #536575; }
.split-test-signature small { color:#61788b; font-size:.62rem; }
.print-cut-line { position:relative; height:22px; border-top:1px dashed #71899b; text-align:center; }
.print-cut-line span { position:relative; top:-.72em; padding:0 10px; color:#52697c; background:#fff; font-size:.65rem; letter-spacing:.08em; }
.check-col-no { width:5%; }
.check-col-label { width:36%; }
.check-col-status { width:18%; }
.check-col-note { width:17%; }
.check-col-date { width:24%; }
.receipt-signatures { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:4px; text-align:center; }
.receipt-signatures > div { display:flex; min-height:55px; flex-direction:column; align-items:center; justify-content:space-between; font-size:.72rem; }
.receipt-signatures i { display:block; width:75%; height:30px; border-bottom:1px solid #536575; }
@media (max-width:800px) {
    .print-toolbar { align-items:flex-start; flex-direction:column; }
    .print-sheet { padding:20px; }
    .print-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .print-title-row { align-items:flex-start; flex-direction:column; }
    .statement-identity th { width:190px; }
}
@media screen and (max-width:800px) {
    .print-topline { align-items:stretch; flex-direction:column; }
    .print-application-number { align-self:flex-end; }
}
@media print {
    @page { size:A4 portrait; margin:12mm; }
    html,body { font-family:Arial,Helvetica,sans-serif !important; }
    body.dashboard-page { background:#fff !important; }
    .dashboard-sidebar,.dashboard-topbar,.print-toolbar { display:none !important; }
    .dashboard-shell { display:block !important; min-height:0 !important; }
    .dashboard-main { width:100% !important; min-width:0 !important; margin:0 !important; }
    .dashboard-content.registration-print-content { width:100% !important; max-width:none !important; padding:0 !important; margin:0 !important; }
    .print-sheet { max-width:none; padding:0; margin:0; border:0; border-radius:0; box-shadow:none; color:#202b35; font-family:Arial,Helvetica,sans-serif !important; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
    .payment-receipt-content { width:100% !important; max-width:none !important; padding:0 !important; margin:0 !important; }
    .payment-receipt-sheet { display:flex; width:95mm; height:138mm; max-width:none; min-height:0; flex-direction:column; box-sizing:border-box; padding:4mm; margin:0 auto !important; border:0; border-radius:0; box-shadow:none; overflow:hidden; font-size:8pt; }
    .payment-receipt-heading { gap:6px; padding-bottom:5px; }
    .payment-receipt-heading img { width:30px; height:30px; }
    .payment-receipt-heading p { margin-bottom:2px; font-size:5.8pt; }
    .payment-receipt-heading h2 { font-size:7.5pt; }
    .payment-receipt-heading span { margin-top:2px; font-size:6pt; }
    .payment-receipt-title { align-items:flex-start; flex-direction:column; gap:3px; margin:6px 0; }
    .payment-receipt-title h2 { font-size:8pt; }
    .payment-receipt-title strong { padding:3px 5px; border-radius:3px; font-size:6pt; }
    .payment-receipt-amount { gap:2px; padding:5px 6px; border-left-width:2px; border-radius:3px; }
    .payment-receipt-amount span,.payment-receipt-amount em { font-size:6pt; }
    .payment-receipt-amount strong { font-size:10pt; }
    .payment-receipt-details { margin:5px 0; }
    .payment-receipt-details > div { grid-template-columns:27mm 1fr; gap:4px; padding:4px 5px; font-size:6.2pt; }
    .payment-receipt-signature { margin-top:auto; padding-top:4px; }
    .payment-receipt-signature > div { width:42mm; min-height:24mm; gap:2px; }
    .payment-receipt-signature span,.payment-receipt-signature small { font-size:6pt; }
    .payment-receipt-signature strong,.payment-receipt-signature b { font-size:6.3pt; }
    .payment-receipt-signature i { min-height:9mm; }
    .payment-receipt-footer { padding-top:4px; font-size:5.5pt; }
    body.receipt-thermal .dashboard-shell { display:block !important; }
    body.receipt-thermal .dashboard-main { width:100% !important; min-width:0 !important; margin:0 !important; }
    body.receipt-thermal article.payment-receipt-sheet { display:flex; width:72mm; height:auto; max-width:72mm; min-height:0; padding:0; margin:0 auto !important; border:0; overflow:visible; page:thermal-receipt; font-size:8pt; }
    body.receipt-thermal .payment-receipt-heading img { width:38px; height:38px; }
    body.receipt-thermal .payment-receipt-heading h2 { font-size:9pt; }
    body.receipt-thermal .payment-receipt-heading p,body.receipt-thermal .payment-receipt-heading span { font-size:7pt; }
    body.receipt-thermal .payment-receipt-title { align-items:flex-start; flex-direction:column; gap:5px; }
    body.receipt-thermal .payment-receipt-title h2 { font-size:9pt; }
    body.receipt-thermal .payment-receipt-title strong { padding:4px; font-size:7.5pt; }
    body.receipt-thermal .payment-receipt-details > div { grid-template-columns:1fr; gap:3px; }
    body.receipt-thermal .payment-receipt-amount strong { font-size:12pt; }
    body.receipt-thermal .payment-receipt-details,.payment-receipt-amount,.payment-receipt-heading { break-inside:avoid; }
    .print-page-break { break-before:page; page-break-before:always; }
    .print-receipt { break-before:auto; page-break-before:auto; padding-top:6px; margin-top:0; border-top:0; }
    .print-facts { gap:5px; padding:7px; margin-bottom:9px; }
    .print-data-section { margin:5px 0; break-inside:auto; page-break-inside:auto; }
    .print-data-section h3 { padding:4px 8px; border-radius:4px 4px 0 0; }
    .print-data-grid { border:1px solid #9aabb8; border-radius:0; }
    .print-data-grid > div { padding:4px 7px; border-right:0 !important; }
    .print-data-grid > div:nth-child(odd):not(.print-field-wide) { border-right:1px solid #c4d0d9 !important; }
    .print-data-grid > div.print-field-wide { border-right:0 !important; }
    .print-data-grid dt { margin-bottom:2px; }
    .print-signatures { margin:12px 0 4px; break-inside:auto; page-break-inside:auto; }
    .print-signature-date { margin-bottom:3px; font-size:.74rem; }
    .print-signature-columns { gap:8px; break-inside:avoid; page-break-inside:avoid; }
    .print-signature-columns > div { min-height:0; gap:4px; justify-content:flex-end; }
    .print-signature-columns i { width:76%; height:28px; }
    .print-checklist-table { width:100%; table-layout:fixed; border:1px solid #71899b; border-right:2px solid #52697c !important; box-sizing:border-box; }
    .print-checklist-table th,.print-checklist-table td { padding:4px 5px; border:1px solid #91a9bb; overflow-wrap:anywhere; }
    .print-checklist-table th:last-child,.print-checklist-table td:last-child { border-right:2px solid #52697c !important; }
    .print-checklist-table th { font-size:.72rem; }
    .print-checklist-table td { font-size:.7rem; }
    .print-checklist-table small { font-size:.62rem; }
    .print-check-options { min-width:0; font-size:.66rem !important; }
    .print-note-cell { min-height:24px; }
    .checklist-receipt-sheet { break-inside:avoid; page-break-inside:avoid; }
    .checklist-receipt-sheet .print-section-title { padding-bottom:5px; margin-bottom:5px; }
    .checklist-receipt-sheet .print-section-title h2 { font-size:1rem; }
    .checklist-receipt-sheet .print-section-title p:last-child { margin-top:3px; font-size:.72rem; }
    .print-cut-line { height:18px; margin-top:5px; }
    .print-receipt h2 { font-size:.95rem; }
    .print-receipt > p:not(.eyebrow) { margin:3px 0; font-size:.72rem; line-height:1.35; }
    .print-receipt .eyebrow { font-size:.65rem; }
    .split-tests-sheet { break-inside:avoid; page-break-inside:avoid; }
    .split-test-half { break-inside:avoid; page-break-inside:avoid; }
    .split-test-heading { padding-bottom:3px; margin-bottom:5px; }
    .split-test-heading h2 { font-size:.9rem; }
    .split-test-identity { font-size:.66rem; gap:2px 5px; }
    .split-test-date { margin:3px 8% 4px 0; font-size:.66rem; }
    .referral-table { width:100%; table-layout:fixed; border-collapse:collapse; border:1px solid #71899b; border-right:2px solid #52697c !important; box-sizing:border-box; }
    .referral-table th,.referral-table td { padding:3px 5px; border:1px solid #91a9bb; font-size:.66rem; }
    .referral-table th:last-child,.referral-table td:last-child { border-right:2px solid #52697c !important; }
    .referral-table th { width:23%; }
    .referral-table td { height:22px; }
    .referral-psychology-table th { width:25%; }
    .referral-psychology-table .referral-writing-cell { height:26px; }
    .split-test-history { grid-template-columns:96px 1fr; margin-top:4px; font-size:.66rem; }
    .split-test-history span { min-height:32px; }
    .split-test-signature { min-height:34px; margin-top:2px; }
    .split-test-signature span { font-size:.64rem; }
    .split-test-signature i { height:12px; border-bottom:1px solid #536575; }
    .split-test-signature small { font-size:.58rem; }
    .statement-date { width:50%; margin:18px 0 4px auto; text-align:center; }
    .statement-signatures { gap:35px; margin-top:12px; }
    .statement-signatures > div { min-height:115px; }
    .statement-signatures i { height:54px; border-bottom:1px solid #536575; }
    .receipt-signatures i { height:25px; border-bottom:1px solid #536575; }
    .print-data-section,.print-checklist-table tr,.statement-title,.statement-identity tr,.referral-identity,.referral-table tr { break-inside:avoid; }
    .print-topline,.print-school-header,.print-data-section h3,.print-facts,.print-checklist-table th { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
    a { color:inherit; text-decoration:none; }
}

.fallback-answer-modal { width:min(980px,calc(100vw - 28px)); }
.fallback-answer-open { min-width:118px; white-space:nowrap; }
.fallback-review-warning { margin:0 0 14px; line-height:1.55; }
.fallback-answer-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; padding:0; }
.fallback-answer-item { min-width:0; padding:12px 14px; border:1px solid #d8e5ef; border-radius:11px; background:#f7fafc; }
.fallback-answer-item dt { margin:0 0 5px; color:#536b80; font-size:.8rem; font-weight:700; }
.fallback-answer-item dd { min-width:0; margin:0; overflow-wrap:anywhere; color:#18344c; font-size:.9rem; line-height:1.5; }
.fallback-import-form { margin-top:18px; padding:18px; border:1px solid #cfe0ed; border-radius:14px; background:#f5f9fc; }
.fallback-import-form h3 { margin:0 0 14px; font-size:1rem; }
.fallback-delete-form { margin-top:18px; padding:16px; border:1px solid #f0c7c3; border-radius:14px; background:#fff8f7; }
.fallback-delete-form p { margin:0 0 12px; color:#7c302c; line-height:1.55; }
.fallback-delete-form .fallback-confirm { margin:0 0 12px; }
.fallback-import-selects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:14px; }
.fallback-import-selects label { display:grid; gap:6px; color:#243e54; font-weight:700; }
.fallback-confirm { display:flex; align-items:flex-start; gap:9px; margin:11px 0; line-height:1.5; }
.fallback-confirm input { flex:0 0 auto; margin-top:4px; }
@media (max-width: 760px) { .fallback-answer-list,.fallback-import-selects { grid-template-columns:1fr; } }

/* Ringkasan penerimaan dan formulir role pengguna. */
.insight-filter { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:18px 0 20px; }
.insight-filter label { color:#314b65; font-weight:750; }
.insight-filter select { min-width:min(320px,100%); max-width:100%; padding:10px 13px; border:1px solid #c9dceb; border-radius:10px; background:#fff; color:#173854; }
.insight-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.insight-stat { min-height:112px; display:flex; flex-direction:column; justify-content:space-between; gap:12px; padding:19px; border:1px solid #d8e6f3; border-radius:16px; box-shadow:0 6px 17px rgba(20,52,78,.045); }
.insight-stat span { font-size:.88rem; font-weight:750; }
.insight-stat strong { font-size:clamp(1.7rem,2.7vw,2.3rem); line-height:1; }
.insight-blue { color:#124b83; background:#e9f4ff; }.insight-orange { color:#9b4700; background:#fff1e0; }
.insight-teal { color:#116a72; background:#e5f7f7; }.insight-mint { color:#246343; background:#eaf9ed; }
.insight-purple { color:#60409c; background:#f1ebfd; }.insight-yellow { color:#826005; background:#fff7da; }
.insight-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.insight-panel { min-width:0; padding:20px; border:1px solid #d9e6f1; border-radius:16px; background:#fff; box-shadow:0 6px 17px rgba(20,52,78,.045); }
.insight-panel h2 { margin:0 0 18px; color:#173854; font-size:1.08rem; }.insight-empty { margin:0; color:#5a728a; }
.insight-bar-list { list-style:none; padding:0; margin:0; display:grid; gap:15px; }
.insight-bar-heading { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; font-size:.88rem; color:#334d63; }
.insight-bar-heading span { overflow-wrap:anywhere; }.insight-bar-heading strong { color:#133b59; white-space:nowrap; }
.insight-track { height:9px; overflow:hidden; border-radius:20px; background:#e9f0f7; }.insight-track span { display:block; height:100%; border-radius:20px; background:linear-gradient(90deg,#2a83c5,#54c4ef); }
.insight-wave .insight-track span { background:linear-gradient(90deg,#f48319,#f8bb63); }.insight-school .insight-track span { background:linear-gradient(90deg,#5c60b6,#a299ea); }
.insight-daily { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; height:198px; }
.insight-day { min-width:0; display:flex; flex-direction:column; align-items:center; gap:5px; color:#294c67; font-size:.8rem; }
.insight-day-track { width:100%; max-width:48px; flex:1; display:flex; align-items:flex-end; border-radius:6px 6px 0 0; background:#edf5fb; }
.insight-day-track span { display:block; width:100%; border-radius:6px 6px 0 0; background:linear-gradient(#f9a64f,#e7790c); }
.insight-day small { white-space:nowrap; }.user-role-fieldset { min-width:0; }.user-role-choices { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.user-role-option { display:inline-flex; align-items:center; gap:6px; padding:8px 10px; border:1px solid #cdddea; border-radius:9px; background:#f5faff; font-weight:650; }.user-role-option input { width:auto; margin:0; }
@media(max-width:900px) { .insight-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .insight-grid,.insight-metrics { grid-template-columns:1fr; }.insight-filter { align-items:stretch; flex-direction:column; }.insight-filter select { width:100%; }.insight-stat { min-height:96px; }.insight-panel { padding:16px; } }
.insight-composition-content { display:flex; align-items:center; gap:24px; }
.insight-donut { width:clamp(138px,15vw,172px); height:clamp(138px,15vw,172px); flex:none; display:grid; place-items:center; border-radius:50%; }
.insight-donut > div { width:66%; height:66%; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:50%; background:#fff; text-align:center; box-shadow:0 2px 9px rgba(10,36,60,.12); }
.insight-donut strong { color:#123f62; font-size:1.65rem; }.insight-donut small { color:#587086; font-size:.76rem; }
.insight-legend { min-width:0; flex:1; list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.insight-legend li { display:flex; align-items:center; gap:7px; font-size:.82rem; color:#38516a; }
.insight-legend li span:nth-child(2) { min-width:0; flex:1; overflow-wrap:anywhere; }.insight-legend li strong { white-space:nowrap; color:#163a56; }
.insight-legend-color { width:10px; height:10px; flex:none; border-radius:50%; }
.insight-line { display:block; width:100%; max-height:240px; overflow:visible; }
.insight-line-grid { stroke:#dfebf4; stroke-width:1; stroke-dasharray:3 4; }
.insight-line-area { fill:rgba(32,149,208,.14); }.insight-line-stroke { fill:none; stroke:#1680bd; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.insight-line-point { fill:#f28b22; stroke:#fff; stroke-width:1.5; }.insight-line-label { fill:#567086; font-size:11px; }
.insight-chart-note { margin:6px 0 0; color:#526c82; font-size:.83rem; }
@media(max-width:1100px) { .insight-composition-content { flex-direction:column; align-items:flex-start; }.insight-donut { align-self:center; } }
@media(max-width:640px) { .insight-composition-content { flex-direction:row; align-items:center; }.insight-donut { width:136px; height:136px; } }
@media(max-width:420px) { .insight-composition-content { flex-direction:column; align-items:stretch; }.insight-donut { align-self:center; } }
.service-report .dashboard-content { width:min(1560px,100%); }
.report-print-heading { margin:0 0 16px; padding:18px 20px; border:1px solid #dceaf5; border-radius:14px; background:#eaf5fd; color:#123e61; }
.report-print-heading h2 { margin:5px 0; font-size:1.12rem; }.report-print-heading p { margin:0; color:#526b82; }
.report-table-wrap { border:1px solid #dce8f1; border-radius:12px; background:#fff; }
.report-table { min-width:1350px; }.report-table th,.report-table td { padding:10px 9px; white-space:normal; vertical-align:top; }
.report-table td { color:#253f56; }.report-table tr:nth-child(even) { background:#f7fbff; }
.report-caption { font-size:.85rem; color:#587086; }
/* Seragam: konfigurasi dinamis dan penyerahan per pendaftar. */
.uniform-config { margin-bottom:20px; }
.uniform-items { display:grid; gap:8px; margin-top:18px; }
.uniform-item { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:10px 14px; border:1px solid #dbe8f2; border-radius:11px; background:#f8fbfe; }
.uniform-item strong { flex:1; min-width:170px; color:#173854; }
.uniform-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
.uniform-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.uniform-card { min-width:0; padding:20px; border:1px solid #d7e5f0; border-radius:15px; background:#fff; box-shadow:0 7px 22px rgba(19,55,86,.055); }
.uniform-card-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
.uniform-card-heading h2 { margin:0; font-size:1.1rem; }.uniform-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.uniform-form label,.uniform-reverse label { display:grid; gap:5px; font-weight:700; color:#21435d; }
.uniform-form label:nth-child(n+3),.uniform-form button { grid-column:1 / -1; }
.uniform-form input,.uniform-reverse input { width:100%; min-width:0; padding:10px 12px; border:1px solid #c4d8e8; border-radius:9px; background:#fff; color:#173854; }
.uniform-details { margin:0; display:grid; gap:7px; }.uniform-details div { display:grid; grid-template-columns:110px 1fr; gap:10px; padding:5px 0; border-bottom:1px solid #e8f0f6; }
.uniform-details dt { color:#5d7284; }.uniform-details dd { margin:0; overflow-wrap:anywhere; font-weight:700; color:#173854; }
.uniform-reversed { padding:10px; border-radius:9px; background:#fff4e7; color:#775015; }.uniform-reverse { margin-top:16px; }.uniform-reverse summary { cursor:pointer; color:#a14332; font-weight:750; }
.uniform-reverse form { display:grid; gap:10px; margin-top:12px; }.uniform-reverse form button { justify-self:start; }
.uniform-receipt-content { max-width:900px; }.uniform-receipt-sheet { width:min(100%,670px); margin:0 auto; padding:25px; border:1px solid #d7e5f0; border-radius:12px; background:#fff; color:#173854; }
.uniform-receipt-brand { display:flex; align-items:center; gap:12px; border-bottom:2px solid #164b70; padding-bottom:14px; }
.uniform-receipt-brand img { width:50px; height:50px; object-fit:contain; }.uniform-receipt-brand strong { font-size:.72rem; }.uniform-receipt-brand h2 { font-size:1rem; margin:2px 0; }.uniform-receipt-brand span { font-size:.8rem; }
.uniform-receipt-sheet h3 { text-align:center; font-size:1.15rem; margin:21px 0; }.uniform-receipt-identity { margin:0 0 17px; }.uniform-receipt-identity div { display:grid; grid-template-columns:160px 1fr; gap:8px; }.uniform-receipt-identity dt { color:#597083; }.uniform-receipt-identity dd { margin:0; font-weight:700; }
.uniform-receipt-sheet table { width:100%; border-collapse:collapse; font-size:.85rem; }.uniform-receipt-sheet th,.uniform-receipt-sheet td { border:1px solid #92a8b9; padding:7px 8px; text-align:left; overflow-wrap:anywhere; }.uniform-receipt-sheet th { background:#eaf3fa; }
.uniform-receipt-note { font-size:.77rem; color:#526c82; }.uniform-signatures { display:flex; justify-content:space-between; gap:20px; margin:24px 0 4px; }
.uniform-signatures div { display:grid; width:48%; text-align:center; font-size:.85rem; }.uniform-signatures i { height:55px; }
@media(max-width:800px) { .uniform-card-grid { grid-template-columns:1fr; } }
@media(max-width:540px) { .uniform-form { grid-template-columns:1fr; }.uniform-receipt-sheet { padding:15px; }.uniform-receipt-identity div { grid-template-columns:120px 1fr; } }
.status-name-button { border: 0; padding: .15rem 0; background: transparent; color: #103c69; font: inherit; font-weight: 750; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-color: #adc8db; text-underline-offset: 3px; }
.status-name-button:hover { color: #e47a08; }
.status-chip { display: inline-flex; align-items: center; justify-content: center; padding: .34rem .64rem; border-radius: 999px; border: 1px solid transparent; font: inherit; font-size: .79rem; font-weight: 750; white-space: nowrap; }
button.status-chip { cursor: pointer; }
button.status-chip:hover, button.status-chip:focus-visible { outline: 2px solid #1e79bd; outline-offset: 2px; }
.status-chip-done { background: #def5e8; color: #14643d; border-color: #afe3c2; }
.status-chip-progress { background: #fff0d4; color: #88500a; border-color: #f5d393; }
.status-chip-pending { background: #ffe8e6; color: #9c3832; border-color: #f4c2bc; }
.status-chip-neutral { background: #eaf2fa; color: #315876; border-color: #caddeb; }
.applicant-status-modal { width: min(94vw, 670px); max-height: min(88vh, 850px); }
.status-modal-list { display: grid; gap: .6rem; }
.status-modal-list > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: #f2f7fb; padding: .7rem .9rem; border-radius: 10px; }
.status-modal-list span { font-weight: 700; text-align: right; }
.status-modal-missing { margin-top: 1.15rem; padding: 1rem; border: 1px solid #f4d2ae; border-radius: 12px; background: #fff8ed; }
.status-modal-missing h3 { margin: 0 0 .55rem; font-size: 1rem; color: #714217; }
.status-modal-missing ul { margin: 0; padding-left: 1.35rem; }
.status-modal-missing li + li { margin-top: .3rem; }
.status-modal-note { color: #54718c; font-size: .83rem; }
.finance-export-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
@media (max-width: 700px) { .status-modal-list > div { align-items: flex-start; } .finance-export-actions { width: 100%; } .finance-export-actions .button { flex: 1 1 auto; text-align: center; } }

/* Infografis proses pendaftaran di beranda */
.journey-section { padding: clamp(42px,5vw,78px) 0; background: linear-gradient(180deg,#f2f8fe 0%,#fff 90%); scroll-margin-top: 90px; }
.journey-container { width: min(1280px,calc(100% - 48px)); }
.journey-poster-heading { margin: 0 auto 25px; text-align: center; }
.journey-poster-heading h2 { margin: 0; font-size: clamp(1.75rem,3vw,2.6rem); }
.journey-poster-heading h2 span { color: #cf6905; }
.journey-poster-heading > p:last-child { color: #516d86; margin: 10px 0 0; }
.journey-icon-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.journey-steps { list-style: none; margin: 0; padding: 12px 0 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 24px; row-gap: 56px; counter-reset: none; }
.journey-step { --step-color: #1971ac; position: relative; min-width: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid #dce8f2; border-top: 5px solid var(--step-color); border-radius: 20px; box-shadow: 0 16px 32px rgba(15,48,80,.08); }
.journey-step-blue { --step-color: #166ba7; }.journey-step-orange { --step-color: #e98016; }.journey-step-teal { --step-color: #129b92; }.journey-step-purple { --step-color: #7360b9; }.journey-step-sky { --step-color: #1689c7; }.journey-step-navy { --step-color: #163c67; }
.journey-step-mark { position: relative; margin: -30px 0 0 23px; display: flex; align-items: flex-end; gap: 12px; color: var(--step-color); }
.journey-step-mark svg { width: 70px; height: 70px; padding: 14px; border-radius: 19px; color: #fff; background: var(--step-color); fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; box-shadow: 0 9px 16px rgba(15,48,80,.18); }
.journey-step-mark span { padding-bottom: 5px; font-weight: 900; font-size: 1.6rem; line-height: 1; }
.journey-step-body { padding: 20px 23px 25px; flex: 1; }
.journey-step-label { color: var(--step-color); font-weight: 800; font-size: .83rem; margin: 0 0 6px; overflow-wrap: anywhere; }
.journey-step-body h3 { font-size: 1.3rem; color: #153959; margin: 0 0 10px; }
.journey-step-body > p:not(.journey-step-label) { color: #4a647d; line-height: 1.65; margin: 0; }
.journey-step-body a { display: inline-flex; gap: 7px; align-items: center; margin-top: 15px; color: #12568d; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.journey-step:not(:nth-child(3n))::after { content: '➜'; position: absolute; right: -28px; top: 40%; color: #e68a20; font-size: 30px; font-weight: 900; z-index: 1; }
.journey-note { max-width: 920px; margin: 25px auto 0; padding: 15px 22px; background: #eaf5fd; border: 1px solid #cde5f5; border-radius: 14px; text-align: center; color: #2c506f; line-height: 1.6; }
.journey-note a { font-weight: 800; color: #0a628e; }
.journey-callout { position: relative; overflow: hidden; margin: 32px auto 0; padding: clamp(24px,4vw,42px); border-radius: 24px; background: radial-gradient(circle at 82% 5%,#276190 0,transparent 33%),linear-gradient(115deg,#0c2a4b,#124672 70%,#176490); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.journey-callout { display: block; }
.journey-callout-main { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.journey-callout-info { position: relative; z-index: 1; margin-top: 23px; padding: 17px 0 0; border-top: 1px solid #ffffff42; display: flex; align-items: center; gap: 13px; color: #d7eafa; font-size: .88rem; }
.journey-callout-info-icon { display: inline-grid; flex: 0 0 28px; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #ffffff24; color: #fff; font-size: 1.1rem; font-weight: 800; }
.journey-callout-info p { margin: 0; flex: 1; }.journey-callout-info a { color: #fff; font-weight: 800; white-space: nowrap; text-underline-offset: 3px; }
.journey-callout::before,.journey-callout::after { content: ''; position: absolute; pointer-events: none; border: 1px solid #ffffff35; border-radius: 50%; width: 245px; height: 245px; right: -58px; top: -125px; }
.journey-callout::after { width: 360px; height: 360px; top: auto; bottom: -300px; right: 220px; }
.journey-callout-copy,.journey-callout .journey-poster-actions { position: relative; z-index: 1; }
.journey-callout-copy { max-width: 600px; }.journey-callout-copy > span { color: #ffb95a; font-size: .76rem; font-weight: 900; letter-spacing: .14em; }
.journey-callout-copy h3 { margin: 8px 0; color: #fff; font-size: clamp(1.5rem,2.4vw,2.35rem); line-height: 1.2; }.journey-callout-copy p { margin: 0; color: #d6eaf9; line-height: 1.6; }
.journey-callout .journey-poster-actions { margin: 0; justify-content: flex-end; flex: 0 0 auto; }.journey-callout .journey-poster-actions .button { white-space: nowrap; }.journey-callout .journey-poster-actions .button-outline { color: #fff; background: #ffffff12; border-color: #ffffffa8; }
.jurusan-section { background: #fff; scroll-margin-top: 90px; }.jurusan-container { display: grid; grid-template-columns: minmax(230px,.85fr) minmax(0,1.85fr); align-items: center; gap: clamp(25px,4vw,60px); }
.jurusan-badge { display: inline-block; border: 1px solid #bedef6; border-radius: 100px; background: #e9f5ff; padding: 7px 14px; color: #12609b; font-size: .74rem; font-weight: 900; letter-spacing: .11em; }
.jurusan-intro h2 { max-width: 390px; font-size: clamp(2rem,3.3vw,3.6rem); line-height: 1.12; margin: 19px 0; color: #113858; }.jurusan-intro h2 em { font-style: normal; color: #ec7c0a; }.jurusan-intro p { max-width: 370px; color: #526d84; line-height: 1.75; margin: 0 0 22px; }.jurusan-intro-link { display: inline-flex; align-items: center; gap: 8px; color: #0c5587; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; }
.jurusan-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 19px; }.jurusan-card { overflow: hidden; border: 1px solid #d7e5f0; border-radius: 22px; background: #fff; box-shadow: 0 16px 35px #173b5b10; min-width: 0; }.jurusan-card-visual { display: flex; justify-content: center; align-items: center; aspect-ratio: 1.7; background: linear-gradient(135deg,#0c365f,#1677b9); }.jurusan-card-to .jurusan-card-visual { background: linear-gradient(135deg,#7b3b09,#dc790e); }.jurusan-card-visual svg { display: block; width: min(100%,320px); height: 100%; }.jurusan-card-copy { padding: 19px 20px 23px; }.jurusan-card-number { font-size: .69rem; letter-spacing: .11em; color: #166da3; font-weight: 900; }.jurusan-card-to .jurusan-card-number { color: #b35b08; }.jurusan-card h3 { margin: 9px 0; color: #113858; font-size: clamp(1.08rem,1.45vw,1.42rem); line-height: 1.28; }.jurusan-card h3 small { display: block; font-size: .77em; color: #43627d; margin-top: 3px; }.jurusan-card p { margin: 0 0 15px; color: #536d82; line-height: 1.55; font-size: .92rem; }.jurusan-card-tag { display: inline-block; padding: 7px 10px; border-radius: 8px; background: #eaf5ff; color: #155984; font-size: .75rem; font-weight: 800; }.jurusan-card-to .jurusan-card-tag { background: #fff2e0; color: #9d540d; }
.hero-public { padding-top: clamp(38px,4.5vw,62px); padding-bottom: clamp(38px,4.5vw,62px); }.hero-public::after { display: none; }
.hero-public .hero-public-art { z-index: 0; }.hero-public .hero-public-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#092746 0%,#0b3056 35%,rgba(10,45,81,.9) 42%,transparent 60%); }
.hero-public .hero-grid { grid-template-columns: minmax(0,42%) minmax(0,1fr); padding-left: clamp(22px,5vw,86px); }.hero-public .hero-copy { max-width: 430px; padding: 0; margin: 0; background: none; }
.hero-public h1 { max-width: 425px; font-size: clamp(2rem,3.15vw,2.95rem); line-height: 1.12; margin: 12px 0; text-wrap: balance; }
.hero-public .lead { max-width: 450px; font-size: clamp(.98rem,1.2vw,1.07rem); line-height: 1.5; margin-bottom: 0; }
.hero-public .actions { margin-top: 21px; }
.info-prep-section { background: linear-gradient(180deg,#fff,#f2f8ff); }.info-prep-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; }.info-prep-heading h2 { margin: 0; font-size: clamp(1.8rem,3vw,2.65rem); }.info-prep-heading h2 span { color: #e77b0d; }.info-prep-heading > p { max-width: 290px; color: #55718b; line-height: 1.55; margin: 0; }
.info-prep-grid { margin-top: 30px; gap: 18px; }.info-prep-grid article { position: relative; overflow: hidden; min-height: 220px; padding: 24px; border-radius: 19px; border: 1px solid #cce2f2; border-bottom: 4px solid #2186c0; background: #fff; box-shadow: 0 13px 33px #154b7410; }.info-prep-grid article:nth-child(2) { border-bottom-color: #ed8d19; }.info-prep-grid article:nth-child(3) { border-bottom-color: #16a394; }
.info-prep-icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 18px; border-radius: 16px; background: #eaf5ff; color: #176ca1; }.info-prep-grid article:nth-child(2) .info-prep-icon { background: #fff2df; color: #c56f0e; }.info-prep-grid article:nth-child(3) .info-prep-icon { background: #e6f8f5; color: #0a8a7d; }.info-prep-icon svg { width: 34px; height: 34px; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.info-prep-grid .info-prep-index { margin: 0 0 7px; color: #387497; font-size: .73rem; font-weight: 900; letter-spacing: .1em; }.info-prep-grid article:nth-child(2) .info-prep-index { color: #b66c10; }.info-prep-grid article:nth-child(3) .info-prep-index { color: #0f857b; }.info-prep-grid strong { margin-bottom: 5px; font-size: 1.13rem; }.info-prep-grid article > span:last-child { color: #567086; line-height: 1.6; }
.journey-layout { display: grid; grid-template-columns: minmax(0,1.82fr) minmax(295px,.9fr); align-items: start; gap: clamp(22px,3vw,38px); }
.journey-main { min-width: 0; }.journey-main .journey-poster-heading { text-align: left; margin: 0 0 42px; }.journey-main .journey-poster-heading h2 { font-size: clamp(1.75rem,2.8vw,2.45rem); }
.journey-main .journey-steps { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 17px; row-gap: 39px; }.journey-main .journey-step { border-radius: 16px; }.journey-main .journey-step-mark { margin: -23px 0 0 16px; gap: 9px; }.journey-main .journey-step-mark svg { width: 55px; height: 55px; padding: 11px; border-radius: 14px; }.journey-main .journey-step-mark span { font-size: 1.3rem; }.journey-main .journey-step-body { padding: 14px 17px 18px; }.journey-main .journey-step-body h3 { font-size: 1.12rem; }.journey-main .journey-step-body > p:not(.journey-step-label) { font-size: .88rem; line-height: 1.55; }.journey-main .journey-step-label { font-size: .73rem; }.journey-main .journey-step::after { display: none; }
.journey-prep { min-width: 0; position: relative; padding: 23px 20px; border: 1px solid #cce2f2; border-radius: 20px; background: linear-gradient(155deg,#e7f4ff,#f7fbff); }.journey-prep .info-prep-heading { display: block; }.journey-prep .info-prep-heading h2 { font-size: clamp(1.45rem,2.1vw,1.85rem); line-height: 1.2; }.journey-prep .info-prep-heading > p { margin-top: 10px; font-size: .87rem; }.journey-prep .info-prep-grid { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 21px; }.journey-prep .info-prep-grid article { display: grid; grid-template-columns: 43px minmax(0,1fr); min-height: 0; gap: 0 12px; padding: 14px; border: 1px solid #d8e7f2; border-left: 3px solid #2186c0; border-radius: 12px; box-shadow: none; }.journey-prep .info-prep-grid article:nth-child(2) { border-left-color: #ed8d19; }.journey-prep .info-prep-grid article:nth-child(3) { border-left-color: #16a394; }.journey-prep .info-prep-icon { grid-row: 1 / 4; width: 43px; height: 43px; margin: 0; border-radius: 11px; }.journey-prep .info-prep-icon svg { width: 27px; height: 27px; }.journey-prep .info-prep-index { margin: 0 0 2px; font-size: .65rem; }.journey-prep .info-prep-grid strong { margin: 0 0 3px; font-size: .96rem; }.journey-prep .info-prep-grid article > span:last-child { font-size: .81rem; line-height: 1.45; }
.journey-help-cta { display: flex; align-items: center; gap: 22px; margin-top: 35px; padding: 21px 29px; }.journey-help-cta .journey-callout-copy { max-width: 780px; }.journey-help-cta .journey-callout-copy h3 { font-size: clamp(1.25rem,2vw,1.7rem); margin: 3px 0; }.journey-help-cta .journey-callout-copy p { font-size: .86rem; }.journey-help-button { position: relative; z-index: 1; display: inline-flex; justify-content: center; align-items: center; gap: 8px; flex: 0 0 auto; padding: 12px 19px; border-radius: 11px; background: #21aa65; color: #fff; font-weight: 800; text-decoration: none; white-space: nowrap; }.journey-help-button:hover,.journey-help-button:focus-visible { background: #198352; color: #fff; }
.journey-layout .journey-prep { align-self: stretch; display: flex; flex-direction: column; }.journey-layout .journey-prep .info-prep-inner { display: flex; flex: 1; flex-direction: column; }.journey-layout .journey-prep .info-prep-grid { flex: 1; align-content: space-evenly; }
.journey-poster { width: min(100%,1080px); margin: 0 auto; padding: 12px; border: 1px solid #dae8f3; border-radius: 22px; background: #fff; box-shadow: 0 19px 55px rgba(16,59,99,.09); }
.journey-poster img { display: block; width: 100%; height: auto; border-radius: 12px; }
.journey-poster-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.journey-poster-actions .button:first-child { background: #e9790b; }
@media (max-width: 680px) { .journey-container { width: min(100% - 24px,1280px); } .journey-poster { padding: 5px; border-radius: 12px; } .journey-poster img { border-radius: 7px; } .journey-poster-actions .button { flex: 1 1 auto; } }
@media (max-width: 920px) { .journey-steps { grid-template-columns: repeat(2,minmax(0,1fr)); } .journey-step::after { display: none; } }
@media (max-width: 1100px) { .journey-callout { display: block; }.journey-callout .journey-poster-actions { justify-content: flex-start; margin-top: 21px; }.jurusan-container { grid-template-columns: 1fr; }.jurusan-intro h2,.jurusan-intro p { max-width: 700px; } }
@media (max-width: 1100px) { .journey-callout-main { display: block; } .journey-callout-info { flex-wrap: wrap; } }
@media (max-width: 700px) { .jurusan-cards { grid-template-columns: 1fr; }.jurusan-card-visual { aspect-ratio: 2.15; }.journey-callout .journey-poster-actions { flex-wrap: wrap; } }
@media (max-width: 700px) { .hero-public { display: block; padding: 40px 0 44px; min-height: 380px; }.hero-public .hero-grid { display: block; padding-left: 0; padding-bottom: 0; }.hero-public .hero-public-art { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }.hero-public .hero-public-art::after { display: block; background: linear-gradient(90deg,rgba(6,30,59,.96) 0%,rgba(6,30,59,.88) 54%,rgba(6,30,59,.28) 100%); }.hero-public .hero-public-art img { object-position: 70% center; }.hero-public .hero-copy { max-width: min(100%,360px); }.hero-public h1 { font-size: clamp(1.9rem,7vw,2.5rem); }.info-prep-heading { display: block; }.info-prep-heading > p { margin-top: 12px; }.journey-callout-info a { white-space: normal; margin-left: 41px; } }
@media (max-width: 1050px) { .journey-layout { grid-template-columns: 1fr; }.journey-prep .info-prep-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.journey-main .journey-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }.journey-layout .journey-prep .info-prep-grid { align-content: start; } }
@media (max-width: 740px) { .journey-main .journey-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }.journey-prep .info-prep-grid { grid-template-columns: 1fr; }.journey-help-cta { display: block; }.journey-help-button { margin-top: 16px; } }
@media (max-width: 530px) { .journey-main .journey-steps { grid-template-columns: 1fr; }.journey-main .journey-poster-heading { margin-bottom: 36px; }.journey-help-button { width: 100%; }.journey-prep { padding: 19px 15px; } }
@media (max-width: 600px) { .journey-steps { grid-template-columns: 1fr; row-gap: 42px; } .journey-step-mark svg { width: 62px; height: 62px; } .journey-step-body { padding: 18px 19px 22px; } .journey-note { text-align: left; } }

/* Beranda desktop: sejajarkan teks dengan header dan beri napas di kanan ilustrasi. */
@media (min-width: 701px) {
    .hero-public .container { width: min(1320px,calc(100% - 48px)); }
    .hero-public .hero-grid { padding-left: 0; }
    .hero-public .hero-public-art { background: #092746; }
    .hero-public .hero-public-art img { width: 100%; object-position: center top; }
    .hero-public .hero-public-art::after { background: linear-gradient(90deg,rgba(9,39,70,.82) 0%,rgba(11,48,86,.54) 33%,transparent 57%); }
}

/* Bahasa visual bersama untuk halaman publik dan modul panitia. */
@media screen {
    :root {
        --surface: #fff;
        --surface-soft: #f5f9fd;
        --control-border: #bfd2e1;
        --focus-ring: rgba(39, 127, 184, .2);
        --card-shadow: 0 8px 28px rgba(14, 48, 78, .055);
    }
    button, input, select, textarea { font-family: inherit; }
    button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
    :where(a, button, input, select, textarea, summary):focus-visible {
        outline: 3px solid #2575a8;
        outline-offset: 3px;
    }
    .dashboard-page :is(.dashboard-content, .app-modal-body) { color: var(--ink); }
    .dashboard-content > .dashboard-heading:not(.dashboard-welcome-panel) {
        flex-wrap: wrap;
        padding-bottom: 18px;
        border-bottom: 1px solid var(--line);
    }
    .dashboard-content > .dashboard-heading .dashboard-title {
        margin: 5px 0 0;
        font-size: clamp(1.7rem, 2.6vw, 2.35rem);
        line-height: 1.18;
        letter-spacing: -.025em;
    }
    .dashboard-content > .dashboard-heading .dashboard-welcome { max-width: 70ch; line-height: 1.55; }
    .dashboard-page :is(.settings-panel, .period-card, .applicant-panel, .finance-panel, .uniform-card, .insight-panel, .module-card, .applicant-summary-card, .applicant-facts > div, .finance-summary article) {
        border-color: var(--line);
        border-radius: 16px;
        box-shadow: var(--card-shadow);
    }
    .dashboard-page :is(.settings-panel, .applicant-panel, .finance-panel) { scroll-margin-top: 85px; }
    .dashboard-page :is(.settings-panel-heading h2, .period-card-heading h2, .applicant-panel h2, .finance-panel-heading h2, .insight-panel h2, .uniform-card-heading h2) {
        color: var(--navy-dark);
        line-height: 1.28;
    }
    .dashboard-page :is(.applicant-filter, .insight-filter) {
        border-radius: 14px;
        background: var(--surface);
    }
    .dashboard-page :is(input[type=text], input[type=search], input[type=email], input[type=password], input[type=number], input[type=tel], input[type=date], input[type=url], select, textarea) {
        max-width: 100%;
        min-height: 44px;
        border: 1px solid var(--control-border);
        border-radius: 10px;
        color: var(--ink);
        background-color: #fff;
        font-size: .94rem;
    }
    .dashboard-page :is(input, select, textarea):not([type=checkbox]):not([type=radio]):focus-visible {
        border-color: #2575a8;
        outline: 0;
        box-shadow: 0 0 0 3px var(--focus-ring);
    }
    .dashboard-page :is(input, select, textarea):disabled { cursor: not-allowed; opacity: .65; background: #eef3f7; }
    .dashboard-page :is(.applicant-table-wrap, .report-table-wrap) { border-radius: 14px; box-shadow: var(--card-shadow); }
    .dashboard-page .applicant-table th { color: #294e68; background: #edf5fb; font-weight: 800; }
    .dashboard-page .applicant-table tbody tr:hover { background: #f6faff; }
    .dashboard-page .button { gap: 7px; border-radius: 10px; line-height: 1.35; text-align: center; }
    .dashboard-page .button-outline:hover { border-color: #6ea7cb; color: #103c5e; background: #eaf5fd; }
    .dashboard-page .button-danger:hover { color: #fff; background: #882727; }
    .dashboard-page .sidebar-link-active { box-shadow: inset 3px 0 0 #ffab3e; }
    .dashboard-page .app-modal { color: var(--ink); }
    .dashboard-page .app-modal-header { background: var(--surface-soft); }
    .site-header .primary-navigation a:not(.button):focus-visible,
    .site-footer a:focus-visible { outline-color: #ffb74d; }
    .journey-step, .jurusan-card, .info-prep-grid article { box-shadow: var(--card-shadow); }
    .journey-step-body a, .jurusan-intro-link { text-underline-offset: 4px; }
    @media (max-width: 760px) {
        .dashboard-topbar { gap: 8px; font-size: .85rem; }
        .dashboard-topbar > span:first-child { min-width: 0; overflow-wrap: anywhere; }
        .dashboard-period { flex: 0 0 auto; }
        .dashboard-content > .dashboard-heading { align-items: flex-start; gap: 14px; }
        .dashboard-page .sidebar-nav { scrollbar-width: thin; scrollbar-color: #6b9cba transparent; }
        .dashboard-page .sidebar-link-active { box-shadow: inset 0 -3px 0 #ffab3e; }
        .dashboard-page :is(.settings-panel, .applicant-panel, .finance-panel, .insight-panel) { padding: 18px; }
    }
    @media (max-width: 480px) {
        .dashboard-page .dashboard-content { padding: 22px 14px 36px; }
        .dashboard-page .app-modal-body { padding: 17px; }
        .dashboard-page :is(.applicant-filter, .insight-filter) { align-items: stretch; }
    }
    @media (prefers-reduced-motion: reduce) {
        .dashboard-page .button, .site-header .button, .journey-step, .jurusan-card { transition: none; }
    }
}

/* Grafik dashboard dan daftar murid yang dapat dibuka dari setiap kategori. */
@media screen {
    .insight-stat.insight-drill-link { position: relative; min-width: 0; min-height: 152px; overflow: hidden; color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
    .insight-drill-link:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(16, 55, 84, .13); }
    .insight-drill-link::before { position: absolute; inset: 0 0 auto; height: 5px; content: ''; background: currentColor; opacity: .8; }
    .insight-stat-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .insight-stat-top > span:first-child { font-weight: 800; }
    .insight-stat-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 11px; background: rgba(255,255,255,.75); font-size: 1.3rem !important; line-height: 1; }
    .insight-drill-link > strong { font-size: clamp(2rem, 3vw, 2.6rem); }
    .insight-drill-link > small { font-size: .8rem; font-weight: 800; }
    .insight-stat.insight-blue { background: linear-gradient(130deg,#d8edff,#f4faff); }
    .insight-stat.insight-orange { background: linear-gradient(130deg,#ffe1bb,#fff7ea); }
    .insight-stat.insight-teal { background: linear-gradient(130deg,#cff3f0,#f2fffc); }
    .insight-stat.insight-mint { background: linear-gradient(130deg,#dcf6df,#f6fff7); }
    .insight-stat.insight-purple { background: linear-gradient(130deg,#e5dafa,#faf7ff); }
    .insight-stat.insight-yellow { background: linear-gradient(130deg,#ffecb5,#fffbed); }
    .insight-panel { border-top: 4px solid #4e9dcc !important; }
    .insight-wave { border-top-color: #ee8d2a !important; }
    .insight-school { border-top-color: #8265ba !important; }
    .insight-school .insight-bar-list { max-height: 420px; padding-right: 8px; overflow-y: auto; scrollbar-color: #adbeda transparent; scrollbar-width: thin; }
    .insight-trend { border-top-color: #24a896 !important; }
    .insight-panel-hint { margin: -12px 0 17px; color: #526c82; font-size: .82rem; }
    .insight-bar-link { display: block; padding: 7px 10px 10px; margin: -7px -10px -10px; border-radius: 10px; text-decoration: none; }
    .insight-bar-link:hover, .insight-legend a:hover { background: #eef7ff; }
    .insight-legend li a { display: flex; flex: 1; justify-content: space-between; gap: 10px; min-width: 0; padding: 6px; border-radius: 7px; color: inherit; text-decoration: none; }
    .insight-legend li a span { min-width: 0; overflow-wrap: anywhere; }
    .insight-bar-link .insight-track { display: block; }
    .insight-day-links { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 6px; margin: 10px 0; }
    .insight-day-links a { display: grid; gap: 3px; min-height: 54px; place-items: center; border: 1px solid #d5e8f2; border-radius: 9px; color: #1c597c; background: #f1f9fe; font-size: .75rem; text-decoration: none; }
    .insight-day-links a:hover { background: #dff2fd; border-color: #78badc; }
    .insight-day-links strong { font-size: 1rem; }
    .insight-modal { width: min(1050px, calc(100vw - 24px)); }
    .insight-modal .applicant-table-wrap { overflow-x: auto; }
    .insight-modal .applicant-table { min-width: 700px; }
    .insight-modal-pages { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; color: var(--muted); font-size: .85rem; }
    .insight-modal-pages[hidden], .insight-modal .applicant-table-wrap[hidden] { display: none; }
    @media (max-width: 640px) {
        .insight-stat.insight-drill-link { min-height: 120px; }
        .insight-day-links { gap: 3px; }
        .insight-day-links a { font-size: .67rem; }
        .insight-modal-pages { flex-wrap: wrap; justify-content: center; }
    }
}

/* Formulir bertahap: aturan hanya aktif ketika JavaScript berhasil memulai wizard. */
@media screen {
    .registration-form.registration-wizard { gap: 18px; }
    .registration-wizard .registration-section[hidden],
    .registration-wizard .registration-final-actions[hidden],
    .registration-wizard .registration-step-actions[hidden],
    .registration-wizard .registration-step-actions button[hidden],
    .registration-wizard .registration-steps[hidden] { display: none; }
    .registration-steps { display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,330px); align-items: center; gap: 20px; min-width: 0; padding: 17px 20px; border: 1px solid #cfe3f0; border-radius: 14px; background: linear-gradient(105deg,#eff8ff,#fff9ee); scroll-margin-top: 100px; }
    .registration-steps-summary { display: grid; gap: 2px; min-width: 0; }
    .registration-steps-label { color: #326184; font-size: .77rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
    .registration-steps-count { color: #123b63; font-size: 1.15rem; line-height: 1.3; }
    .registration-steps-summary small { color: #526c82; font-size: .8rem; line-height: 1.35; }
    .registration-steps-picker { display: grid; gap: 6px; min-width: 0; color: #173e5c; font-size: .83rem; font-weight: 800; }
    .registration-steps-picker select { display: block; width: 100%; min-width: 0; min-height: 46px; padding: 9px 36px 9px 12px; border: 1px solid #a8c8dc; border-radius: 10px; background: #fff; color: #163e61; font: inherit; font-size: .9rem; }
    .registration-steps-picker select:focus-visible { outline: 3px solid rgba(25,120,175,.3); outline-offset: 2px; }
    .registration-step-status { margin: 0; padding: 10px 14px; border: 1px solid #d2e8f5; border-radius: 10px; color: #1c5275; background: #f3faff; font-size: .88rem; font-weight: 700; }
    .registration-step-actions { display: flex; justify-content: space-between; gap: 12px; }
    .registration-step-actions [data-step-next] { margin-left: auto; background: #126090; }
    .registration-final-actions { display: grid; gap: 16px; }
    .registration-intro-content .registration-info { margin-top: 14px; padding: 12px 14px; border-radius: 9px; }
    .registration-intro-content .registration-info p { margin: 4px 0 0; }
    @media (max-width: 760px) {
        .registration-steps { grid-template-columns: minmax(0,1fr); gap: 12px; padding: 16px; }
        .registration-form { min-width: 0; }
        .registration-section-fields { gap: 0; padding: 0 15px 15px; }
        .registration-section-fields > .public-field { padding: 15px 0; border: 0; border-bottom: 1px solid #e6eef4; border-radius: 0; background: transparent; }
        .registration-section-fields > .public-field:last-child { border-bottom: 0; }
        .registration-step-actions .button { flex: 1; }
    }
    @media (max-width: 410px) {
        .registration-step-actions { flex-direction: column-reverse; }
        .registration-step-actions .button { width: 100%; }
    }
}
