/* =========================================================================
   Halaman depan portal pengadaan.

   Memakai palet dan pasangan huruf yang sama dengan aplikasi di dalam
   (assets/css/vendor-tender.css) supaya portal publik dan aplikasi vendor
   terbaca sebagai satu produk. Seluruh kelas berawalan .pt- agar tidak
   bertabrakan dengan tema forum bawaan template.
   ========================================================================= */

:root {
    --pt-ink: #10212c;
    --pt-muted: #6b7c87;
    --pt-line: #e1e7ea;
    --pt-surface: #ffffff;
    --pt-canvas: #f4f6f7;

    --pt-open: #0b6e4f;          /* tender terbuka - satu-satunya warna kuat */
    --pt-open-soft: #e6f2ed;
    --pt-wait: #a8791c;
    --pt-wait-soft: #fbf3e2;
    --pt-alert: #a4342b;         /* tender batal */
    --pt-alert-soft: #fbeeec;

    --pt-teks: "Open Sans", -apple-system, "Helvetica Neue", Arial, sans-serif;
    --pt-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

.pt {
    font-family: var(--pt-teks);
    color: var(--pt-ink);
}

.pt-wadah { max-width: 1140px; margin: 0 auto; padding: 0 16px; }

/* --- Kepala halaman ------------------------------------------------------ */

.pt-hero {
    position: relative;
    background: #0e1a21;
    color: #fff;
    overflow: hidden;
}

.pt-hero__latar {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: .42;
}

/* Lapisan gelap dari kiri menjaga teks tetap terbaca di atas foto. */
.pt-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, #0e1a21 8%, rgba(14, 26, 33, .82) 46%, rgba(14, 26, 33, .5) 100%);
}

.pt-hero__isi { z-index: 1; }

.pt-hero__isi { position: relative; padding: 64px 0 56px; }

.pt-hero__eyebrow {
    font-family: var(--pt-mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .72);
    display: block;
    margin-bottom: 14px;
}

.pt-hero__judul {
    font-size: clamp(26px, 4vw, 40px);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 14px;
    max-width: 20ch;
    color: #fff;
}

.pt-hero__teks {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(255, 255, 255, .82);
    max-width: 56ch;
    margin: 0 0 26px;
}

.pt-hero__aksi { display: flex; flex-wrap: wrap; gap: 10px; }

.pt-tombol {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 20px;
    border-radius: 3px;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background-color .12s ease, border-color .12s ease;
}

.pt-tombol--utama { background: var(--pt-open); color: #fff; }
.pt-tombol--utama:hover { background: #0a5f45; color: #fff; text-decoration: none; }

.pt-tombol--tepi { border-color: rgba(255, 255, 255, .38); color: #fff; }
.pt-tombol--tepi:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; text-decoration: none; }

.pt-tombol:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Angka ringkas di kaki hero. */
.pt-hero__angka {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-top: 34px;
    border-top: 1px solid rgba(255, 255, 255, .16);
    padding-top: 20px;
}

.pt-angka { padding-right: 40px; }

.pt-angka__nilai {
    display: block;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.pt-angka__label {
    display: block;
    font-family: var(--pt-mono);
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .62);
    margin-top: 5px;
}

/* --- Bagian ------------------------------------------------------------- */

.pt-badan { background: var(--pt-canvas); padding: 44px 0 56px; }

.pt-bagian { margin-bottom: 40px; }
.pt-bagian:last-child { margin-bottom: 0; }

.pt-bagian__kepala {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.pt-bagian__judul { font-size: 18px; font-weight: 700; margin: 0; color: var(--pt-ink); }
.pt-bagian__teks { font-size: 13.5px; color: var(--pt-muted); margin: 4px 0 0; }

.pt-tautan {
    font-size: 13px;
    font-weight: 600;
    color: var(--pt-open);
    text-decoration: none;
    white-space: nowrap;
}

.pt-tautan:hover { color: #0a5f45; text-decoration: underline; }

/* --- Kartu tender ------------------------------------------------------- */

.pt-kisi { display: grid; grid-template-columns: 1fr; gap: 12px; }

@media (min-width: 768px)  { .pt-kisi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .pt-kisi { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pt-kartu {
    display: flex;
    flex-direction: column;
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-top: 3px solid var(--pt-open);
    border-radius: 3px;
    text-decoration: none;
    color: inherit;
    height: 100%;
    transition: border-color .12s ease, box-shadow .12s ease;
}

.pt-kartu:hover,
.pt-kartu:focus {
    box-shadow: 0 1px 3px rgba(16, 33, 44, .1);
    text-decoration: none;
    color: inherit;
}

.pt-kartu:focus-visible { outline: 2px solid var(--pt-open); outline-offset: 2px; }

.pt-kartu__kepala {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 15px 0;
    font-family: var(--pt-mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    color: var(--pt-muted);
}

.pt-chip {
    font-family: var(--pt-mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 2px;
    white-space: nowrap;
    color: var(--pt-open);
    background: var(--pt-open-soft);
}

.pt-chip--tunggu { color: var(--pt-wait); background: var(--pt-wait-soft); }

/* Tender yang sudah lewat: selesai dibaca sebagai keadaan netral, batal
   sebagai keadaan yang menghalangi. */
.pt-chip--usai { color: var(--pt-muted); background: var(--pt-canvas); }
.pt-chip--batal { color: var(--pt-alert); background: var(--pt-alert-soft); }

.pt-kartu__badan { padding: 9px 15px 15px; flex: 1 1 auto; }

.pt-kartu__nama {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
    margin: 0 0 12px;
    color: var(--pt-ink);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.pt-label {
    display: block;
    font-family: var(--pt-mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pt-muted);
    margin-bottom: 2px;
}

.pt-nilai {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--pt-ink);
    font-variant-numeric: tabular-nums;
}

.pt-kartu__jenis { display: block; font-size: 12px; color: var(--pt-muted); margin-top: 7px; }

.pt-kartu__kaki {
    border-top: 1px solid var(--pt-line);
    background: var(--pt-open-soft);
    padding: 10px 15px;
    border-radius: 0 0 2px 2px;
}

.pt-kartu__tahap { display: block; font-size: 12.5px; font-weight: 600; color: var(--pt-ink); line-height: 1.4; }

.pt-kartu__waktu {
    display: block;
    font-family: var(--pt-mono);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--pt-open);
    margin-top: 3px;
}

.pt-kartu__sepi { font-size: 12.5px; color: var(--pt-muted); }

/* --- Daftar kabar (pengumuman & informasi) ------------------------------ */

.pt-kolom { display: grid; grid-template-columns: 1fr; gap: 20px; }

@media (min-width: 900px) { .pt-kolom { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pt-kotak {
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-radius: 3px;
    height: 100%;
}

.pt-kotak__kepala {
    padding: 14px 16px;
    border-bottom: 1px solid var(--pt-line);
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.pt-kotak__judul { font-size: 14px; font-weight: 700; margin: 0; }

.pt-kabar { list-style: none; margin: 0; padding: 0 16px; }

.pt-kabar__baris { border-top: 1px solid var(--pt-line); padding: 12px 0; }
.pt-kabar__baris:first-child { border-top: 0; }

.pt-kabar__judul {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pt-ink);
    line-height: 1.45;
    text-decoration: none;
}

.pt-kabar__judul:hover { color: var(--pt-open); text-decoration: none; }

.pt-kabar__waktu {
    display: block;
    font-family: var(--pt-mono);
    font-size: 10.5px;
    color: var(--pt-muted);
    margin-top: 4px;
}

.pt-kosong { padding: 26px 16px; text-align: center; color: var(--pt-muted); font-size: 13px; }

/* --- Cara mengikuti ----------------------------------------------------- */

.pt-langkah { display: grid; grid-template-columns: 1fr; gap: 14px; counter-reset: langkah; }

@media (min-width: 768px) { .pt-langkah { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pt-langkah__satu {
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-radius: 3px;
    padding: 18px 18px 20px;
}

.pt-langkah__no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--pt-open-soft);
    color: var(--pt-open);
    font-family: var(--pt-mono);
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 10px;
}

.pt-langkah__judul { font-size: 14px; font-weight: 700; margin: 0 0 5px; color: var(--pt-ink); }
.pt-langkah__teks { font-size: 13px; color: var(--pt-muted); line-height: 1.6; margin: 0; }

@media (max-width: 575.98px) {
    .pt-hero__isi { padding: 44px 0 40px; }
    .pt-angka { padding-right: 26px; }
}

@media (prefers-reduced-motion: reduce) {
    .pt-kartu, .pt-tombol { transition: none; }
}

/* --- Halaman masuk & daftar ---------------------------------------------
   Berdiri sendiri tanpa navigasi: satu tugas per halaman. Sisi kiri
   menjelaskan tempat apa ini, sisi kanan formulirnya.
   --------------------------------------------------------------------- */

.pt-gerbang {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr;
    background: var(--pt-canvas);
}

@media (min-width: 992px) { .pt-gerbang { grid-template-columns: 5fr 6fr; } }

.pt-gerbang__kiri {
    position: relative;
    background: #0e1a21;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 32px;
    overflow: hidden;
}

.pt-gerbang__latar {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: .26;
}

.pt-gerbang__pesan { position: relative; max-width: 42ch; }

.pt-gerbang__merek {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    margin-bottom: 28px;
}

.pt-gerbang__merek:hover { color: #fff; text-decoration: none; }
.pt-gerbang__merek img { height: 30px; width: auto; }

.pt-gerbang__judul { font-size: clamp(22px, 3vw, 28px); font-weight: 700; line-height: 1.25; margin: 0 0 12px; color: #fff; }
.pt-gerbang__teks { font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, .8); margin: 0; }

.pt-gerbang__butir { list-style: none; margin: 22px 0 0; padding: 0; }

.pt-gerbang__butir li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13.5px;
    color: rgba(255, 255, 255, .82);
    line-height: 1.6;
    padding: 6px 0;
}

.pt-gerbang__butir i { color: #6fc79f; font-size: 12px; margin-top: 4px; }

.pt-gerbang__kanan {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
}

.pt-form { width: 100%; max-width: 400px; }
.pt-form--lebar { max-width: 780px; }

.pt-form__judul { font-size: 21px; font-weight: 700; margin: 0 0 5px; color: var(--pt-ink); }
.pt-form__teks { font-size: 13.5px; color: var(--pt-muted); margin: 0 0 24px; line-height: 1.6; }

.pt-medan { margin-bottom: 16px; }

.pt-medan label {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--pt-ink);
    margin-bottom: 6px;
}

.pt-medan .form-control {
    font-size: 14px;
    height: auto;
    padding: 10px 12px;
    border: 1px solid var(--pt-line);
    border-radius: 3px;
    background: var(--pt-surface);
    color: var(--pt-ink);
}

.pt-medan .form-control:focus {
    border-color: var(--pt-open);
    box-shadow: 0 0 0 3px var(--pt-open-soft);
    outline: 0;
}

.pt-medan__bantu { display: block; font-size: 11.5px; color: var(--pt-muted); margin-top: 5px; line-height: 1.5; }
.pt-medan .parsley-errors-list { margin: 5px 0 0; padding-left: 16px; font-size: 11.5px; color: #a4342b; }

.pt-tombol--penuh { width: 100%; justify-content: center; padding: 12px 20px; }

.pt-galat {
    border: 1px solid #e6c9c5;
    border-left: 3px solid #a4342b;
    background: #f9ecea;
    border-radius: 3px;
    padding: 12px 14px;
    margin-bottom: 20px;
}

.pt-galat__judul { font-size: 13px; font-weight: 700; color: #a4342b; margin: 0 0 4px; }
.pt-galat ul { margin: 0; padding-left: 18px; font-size: 12.5px; color: var(--pt-muted); line-height: 1.6; }

.pt-kaki-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
    font-size: 13px;
}

.pt-kaki-form a { color: var(--pt-open); font-weight: 600; text-decoration: none; }
.pt-kaki-form a:hover { text-decoration: underline; }
.pt-kaki-form span { color: var(--pt-muted); }

/* Formulir pendaftaran: bagian bertingkat dengan kisi dua kolom. */
.pt-bagianform {
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-radius: 3px;
    margin-bottom: 16px;
}

.pt-bagianform__kepala { padding: 14px 16px; border-bottom: 1px solid var(--pt-line); }
.pt-bagianform__judul { font-size: 14px; font-weight: 700; margin: 0; color: var(--pt-ink); }
.pt-bagianform__teks { font-size: 12.5px; color: var(--pt-muted); margin: 4px 0 0; line-height: 1.55; }

.pt-bagianform__isi { padding: 16px 16px 4px; display: grid; grid-template-columns: 1fr; gap: 0 16px; }

@media (min-width: 768px) { .pt-bagianform__isi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pt-medan--lebar { grid-column: 1 / -1; }

.pt-sepakat {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-radius: 3px;
    padding: 14px 16px;
    font-size: 13px;
    color: var(--pt-ink);
    line-height: 1.6;
    margin-bottom: 16px;
}

.pt-sepakat input { margin-top: 3px; }

/* --- Kepala halaman dalam ------------------------------------------------ */

.pt-kepala {
    position: relative;
    background: #0e1a21;
    color: #fff;
    overflow: hidden;
}

.pt-kepala__latar {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: .38;
}

.pt-kepala::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, #0e1a21 10%, rgba(14, 26, 33, .84) 52%, rgba(14, 26, 33, .56) 100%);
}

.pt-kepala__isi { position: relative; z-index: 1; padding: 40px 0 34px; }

.pt-remah {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    font-family: var(--pt-mono);
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .6);
}

.pt-remah a { color: rgba(255, 255, 255, .78); text-decoration: none; }
.pt-remah a:hover { color: #fff; text-decoration: underline; }
.pt-remah li + li::before { content: "/"; margin-right: 8px; color: rgba(255, 255, 255, .34); }

.pt-kepala__judul {
    font-size: clamp(21px, 3vw, 30px);
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
    color: #fff;
    max-width: 34ch;
}

.pt-kepala__teks { font-size: 14px; color: rgba(255, 255, 255, .78); margin: 10px 0 0; max-width: 60ch; line-height: 1.6; }

.pt-kepala__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 16px;
    font-family: var(--pt-mono);
    font-size: 11px;
    letter-spacing: .05em;
    color: rgba(255, 255, 255, .74);
}

/* --- Daftar kabar bersusun (pengumuman & informasi) ---------------------- */

.pt-arsip { display: grid; grid-template-columns: 1fr; gap: 10px; }

.pt-arsip__baris {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-radius: 3px;
    padding: 16px 18px;
    text-decoration: none;
    color: inherit;
    transition: border-color .12s ease, box-shadow .12s ease;
}

@media (min-width: 768px) { .pt-arsip__baris { grid-template-columns: 1fr 190px; align-items: center; gap: 6px 20px; } }

.pt-arsip__baris:hover,
.pt-arsip__baris:focus {
    border-color: var(--pt-muted);
    box-shadow: 0 1px 3px rgba(16, 33, 44, .08);
    text-decoration: none;
    color: inherit;
}

.pt-arsip__baris:focus-visible { outline: 2px solid var(--pt-open); outline-offset: 2px; }

.pt-arsip__judul { font-size: 15px; font-weight: 700; color: var(--pt-ink); margin: 0 0 6px; line-height: 1.45; }

.pt-arsip__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    font-size: 12.5px;
    color: var(--pt-muted);
}

.pt-arsip__nilai { color: var(--pt-ink); font-weight: 600; font-variant-numeric: tabular-nums; }

.pt-arsip__waktu {
    font-family: var(--pt-mono);
    font-size: 11px;
    color: var(--pt-muted);
    text-align: left;
}

@media (min-width: 768px) { .pt-arsip__waktu { text-align: right; } }

/* --- Halaman rincian ---------------------------------------------------- */

.pt-dua { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }

@media (min-width: 992px) { .pt-dua { grid-template-columns: 5fr 3fr; } }

.pt-rincian {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    background: var(--pt-line);
    border-top: 1px solid var(--pt-line);
    border-bottom: 1px solid var(--pt-line);
}

@media (min-width: 576px) { .pt-rincian { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pt-rincian__butir { background: var(--pt-surface); padding: 12px 16px; }
.pt-rincian__label { display: block; font-family: var(--pt-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--pt-muted); margin-bottom: 4px; }
.pt-rincian__nilai { display: block; font-size: 13.5px; font-weight: 600; color: var(--pt-ink); line-height: 1.45; }

.pt-isi { padding: 18px; font-size: 14px; line-height: 1.75; color: var(--pt-ink); }
.pt-isi p { margin: 0 0 12px; }
.pt-isi p:last-child { margin-bottom: 0; }
.pt-isi ul, .pt-isi ol { margin: 0 0 12px; padding-left: 20px; }
.pt-isi img { max-width: 100%; height: auto; }
.pt-isi table { width: 100%; margin-bottom: 12px; }
.pt-isi table td, .pt-isi table th { border: 1px solid var(--pt-line); padding: 7px 9px; font-size: 13px; }

.pt-lampiran {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    border-top: 1px solid var(--pt-line);
    background: var(--pt-canvas);
    padding: 12px 18px;
    font-size: 12.5px;
    color: var(--pt-muted);
}

.pt-tombol--kecil { padding: 6px 13px; font-size: 12.5px; border: 1px solid var(--pt-line); background: var(--pt-surface); color: var(--pt-ink); }
.pt-tombol--kecil:hover { background: var(--pt-canvas); color: var(--pt-ink); text-decoration: none; }

/* --- Rel jadwal tender -------------------------------------------------- */

.pt-rel { padding: 6px 0; }

.pt-tahap {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 0 8px;
    padding: 11px 16px 11px 10px;
    position: relative;
}

.pt-tahap::before {
    content: "";
    position: absolute;
    left: 20px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--pt-line);
}

.pt-tahap--pertama::before { top: 20px; }
.pt-tahap--terakhir::before { bottom: calc(100% - 20px); }

.pt-tahap__simpul {
    position: relative;
    z-index: 1;
    width: 11px;
    height: 11px;
    margin: 4px 0 0 5px;
    border-radius: 50%;
    background: var(--pt-surface);
    border: 2px solid var(--pt-line);
}

.pt-tahap--lewat .pt-tahap__simpul { background: #93a2ac; border-color: #93a2ac; }
.pt-tahap--buka .pt-tahap__simpul { background: var(--pt-open); border-color: var(--pt-open); box-shadow: 0 0 0 4px var(--pt-open-soft); }
.pt-tahap--buka { background: var(--pt-open-soft); box-shadow: inset 2px 0 0 var(--pt-open); }

.pt-tahap__kode { display: block; font-family: var(--pt-mono); font-size: 10px; letter-spacing: .08em; color: var(--pt-muted); }
.pt-tahap__nama { display: block; font-size: 13px; font-weight: 600; color: var(--pt-ink); line-height: 1.35; }
.pt-tahap--lewat .pt-tahap__nama { color: var(--pt-muted); }
.pt-tahap__tanggal { display: block; font-family: var(--pt-mono); font-size: 11px; color: var(--pt-muted); margin-top: 3px; font-variant-numeric: tabular-nums; }

.pt-tahap__buka {
    display: inline-block;
    margin-top: 5px;
    font-family: var(--pt-mono);
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pt-open);
    background: #fff;
    border-radius: 2px;
    padding: 2px 7px;
}

/* --- Ajakan ikut tender -------------------------------------------------- */

.pt-ajak {
    background: var(--pt-open-soft);
    border: 1px solid #cfe4da;
    border-radius: 3px;
    padding: 16px 18px;
}

.pt-ajak__judul { font-size: 14px; font-weight: 700; margin: 0 0 5px; color: var(--pt-ink); }
.pt-ajak__teks { font-size: 13px; color: var(--pt-muted); line-height: 1.6; margin: 0 0 13px; }

/* Template forum menyisipkan jarak putih lewat .content; kanvas portal yang mengatur jaraknya sendiri. */
.content { padding: 0; }

/* Di dua kolom, tiap kotak setinggi isinya sendiri — bukan setinggi kolom terpanjang. */
.pt-dua > .pt-kotak { height: auto; }

/* Halaman pendek: kaki halaman tetap menempel di dasar layar. */
body { display: flex; flex-direction: column; min-height: 100vh; background: var(--pt-canvas); }
body > .content { flex: 1 0 auto; }

/* Kaki kartu tanpa tahapan terbuka tidak memakai warna "sedang berjalan". */
.pt-kartu__kaki--sepi { background: var(--pt-canvas); }

/* --- Wizard pendaftaran --------------------------------------------------
   Pendaftaran memang berurutan: data perusahaan dulu, lalu narahubung, lalu
   ditinjau sebelum dikirim. Karena itu langkahnya dinomori. */

.pt-tahapform {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
    padding: 0;
    counter-reset: none;
}

.pt-tahapform__butir {
    flex: 1 1 160px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: var(--pt-surface);
    border: 1px solid var(--pt-line);
    border-top: 2px solid var(--pt-line);
    border-radius: 3px;
}

.pt-tahapform__no {
    flex: none;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid var(--pt-line);
    background: var(--pt-canvas);
    color: var(--pt-muted);
    font-family: var(--pt-mono);
    font-size: 11.5px;
    line-height: 1;
}

.pt-tahapform__nama {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--pt-muted);
    line-height: 1.3;
}

.pt-tahapform__butir--aktif { border-top-color: var(--pt-open); }
.pt-tahapform__butir--aktif .pt-tahapform__nama { color: var(--pt-ink); }

.pt-tahapform__butir--aktif .pt-tahapform__no,
.pt-tahapform__butir--selesai .pt-tahapform__no {
    background: var(--pt-open);
    border-color: var(--pt-open);
    color: #fff;
}

.pt-tahapform__butir--selesai { border-top-color: var(--pt-open-soft); }
.pt-tahapform__butir--selesai .pt-tahapform__nama { color: var(--pt-ink); }

/* Tiap babak adalah fieldset; tanpa JS seluruhnya tetap tampil. */
.pt-babak { border: 0; margin: 0; padding: 0; min-width: 0; }
.pt-babak[hidden] { display: none; }

.pt-navform {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 4px;
}

.pt-navform .pt-tombol { flex: 1 1 auto; justify-content: center; padding: 12px 20px; }
.pt-navform .pt-tombol[hidden] { display: none; }

.pt-tombol--netral {
    flex: 0 0 auto !important;
    border: 1px solid var(--pt-line);
    background: var(--pt-surface);
    color: var(--pt-ink);
}

.pt-tombol--netral:hover { background: var(--pt-canvas); color: var(--pt-ink); text-decoration: none; }

/* Baris "Ubah" pada tinjauan akhir. */
.pt-tinjau__kepala {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--pt-line);
}

.pt-tinjau__ubah {
    flex: none;
    border: 0;
    background: none;
    padding: 0;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--pt-open);
    cursor: pointer;
}

.pt-tinjau__ubah:hover { text-decoration: underline; }
.pt-tinjau .pt-rincian { border: 0; }

/* Medan yang ditolak Parsley ditandai lewat tepinya, bukan hanya teks di bawahnya. */
.pt-medan .form-control.parsley-error { border-color: #a4342b; }
.pt-medan .form-control.parsley-error:focus { box-shadow: 0 0 0 3px #f6e6e4; }

/* Butir terakhir pada jumlah ganjil melebar, supaya tidak menyisakan sel kosong. */
.pt-rincian__butir:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* Pesan galat di luar .pt-medan (mis. kotak persetujuan) memakai gaya yang sama. */
.pt-form .parsley-errors-list { margin: 6px 0 0; padding-left: 16px; font-size: 11.5px; color: #a4342b; }
.pt-sepakat + .parsley-errors-list { margin: -10px 0 16px; }

/* Kabar berhasil pada halaman gerbang (kirim ulang tautan, verifikasi). */
.pt-kabar-sukses {
    border: 1px solid #bfdcd0;
    border-left: 3px solid var(--pt-open);
    background: var(--pt-open-soft);
    border-radius: 3px;
    padding: 12px 14px;
    margin-bottom: 20px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--pt-ink);
}
