/**
 * Panel tiket komplain Nellava — tampilan pengunjung.
 *
 * Semua ukuran memakai media query (bukan wp_is_mobile) karena LiteSpeed
 * meng-cache HTML per-URL, dan seluruh teks memakai font sendiri supaya font
 * percobaan tema (yang mencetak watermark "DEMO" pada heading) tidak ikut.
 */

.nst-root,
.nst-root * {
    box-sizing: border-box;
}

.nst-root {
    --nst-primary: #0b2a6b;
    --nst-accent: #d4a017;
    --nst-offset-x: 20px;
    --nst-offset-y: 20px;
    --nst-radius: 16px;
    --nst-text: #1a1d23;
    --nst-muted: #6b7280;
    --nst-line: #e5e7eb;
    --nst-bg: #ffffff;
    --nst-soft: #f6f8fb;

    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: var(--nst-text);
}

/* Heading di dalam panel tidak boleh mewarisi font display tema. */
.nst-root h2,
.nst-root h3,
.nst-root strong,
.nst-root label,
.nst-root button,
.nst-root input,
.nst-root textarea {
    font-family: inherit;
}

/* ------------------------------------------------------------ posisi tombol */

#nst-root {
    position: fixed;
    bottom: calc(var(--nst-offset-y) + env(safe-area-inset-bottom, 0px));
    z-index: 99990;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}

#nst-root.nst-pos-br {
    right: var(--nst-offset-x);
    align-items: flex-end;
}

#nst-root.nst-pos-bl {
    left: var(--nst-offset-x);
    align-items: flex-start;
}

/* ------------------------------------------------------------------ tombol */

.nst-launcher {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    border: 0;
    border-radius: 999px;
    background: var(--nst-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 10px 30px rgba(11, 42, 107, .28);
    transition: transform .18s ease, box-shadow .18s ease;
}

.nst-launcher:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(11, 42, 107, .34);
}

.nst-launcher:focus-visible {
    outline: 3px solid var(--nst-accent);
    outline-offset: 3px;
}

.nst-launcher-round {
    width: 60px;
    height: 60px;
    padding: 0;
    justify-content: center;
}

.nst-launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
}

.nst-launcher-icon img {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.nst-launcher-close {
    display: none;
    font-size: 18px;
    line-height: 1;
}

.nst-open .nst-launcher-icon,
.nst-open .nst-launcher-label {
    display: none;
}

.nst-open .nst-launcher-close {
    display: inline-flex;
}

.nst-open .nst-launcher {
    width: 52px;
    height: 52px;
    padding: 0;
    justify-content: center;
}

/* --------------------------------------------------------------- gelembung */

.nst-teaser {
    order: -2;
    position: relative;
    max-width: 260px;
    padding: 12px 30px 12px 14px;
    border-radius: 14px;
    background: #fff;
    color: var(--nst-text);
    font-size: 13.5px;
    box-shadow: 0 10px 30px rgba(16, 24, 40, .16);
    border: 1px solid var(--nst-line);
    cursor: pointer;
    animation: nst-pop .22s ease;
}

.nst-teaser-close {
    position: absolute;
    top: 4px;
    right: 6px;
    border: 0;
    background: none;
    color: var(--nst-muted);
    font-size: 12px;
    line-height: 1;
    padding: 4px;
    cursor: pointer;
}

/* ------------------------------------------------------------------- panel */

.nst-panel {
    /* Panel selalu DI ATAS tombol (tombol tetap di pojok, seperti live chat
       pada umumnya) walaupun di HTML ia ditulis setelah tombol. */
    order: -1;
    width: 380px;
    max-width: calc(100vw - 24px);
    max-height: min(640px, calc(100vh - 120px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--nst-bg);
    border: 1px solid var(--nst-line);
    border-radius: var(--nst-radius);
    box-shadow: 0 24px 60px rgba(16, 24, 40, .24);
    animation: nst-pop .2s ease;
}

.nst-panel[hidden] {
    display: none;
}

@keyframes nst-pop {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

.nst-panel-head,
.nst-inline-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px;
    background: var(--nst-primary);
    color: #fff;
    border-bottom: 3px solid var(--nst-accent);
}

.nst-panel-heading {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.nst-panel-title {
    font-size: 16px;
    font-weight: 700;
    color: inherit;
}

.nst-panel-sub {
    font-size: 12.5px;
    opacity: .82;
}

.nst-close {
    border: 0;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    flex: none;
}

.nst-close:hover {
    background: rgba(255, 255, 255, .28);
}

.nst-panel-body {
    padding: 16px 18px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1 1 auto;
}

.nst-panel-foot {
    padding: 12px 18px;
    border-top: 1px solid var(--nst-line);
    background: var(--nst-soft);
    font-size: 12.5px;
    color: var(--nst-muted);
}

.nst-panel-foot p {
    margin: 0 0 6px;
}

.nst-panel-foot p:last-child {
    margin-bottom: 0;
}

.nst-foot-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.nst-foot-links a {
    color: var(--nst-primary);
    font-weight: 600;
    text-decoration: none;
}

.nst-foot-links a:hover {
    text-decoration: underline;
}

/* --------------------------------------------------------------- sapaan CS */

.nst-bubble {
    display: flex;
    gap: 10px;
    margin: 0 0 14px;
}

.nst-bubble-avatar {
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--nst-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    text-transform: uppercase;
}

.nst-bubble-body {
    background: var(--nst-soft);
    border: 1px solid var(--nst-line);
    border-radius: 4px 14px 14px 14px;
    padding: 10px 14px;
}

.nst-bubble-name {
    display: block;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--nst-muted);
    margin-bottom: 3px;
}

.nst-bubble p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
}

/* ---------------------------------------------------------------- kategori */

.nst-cats {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.nst-cat {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    text-align: left;
    padding: 12px 14px;
    border: 1px solid var(--nst-line);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.nst-cat:hover {
    border-color: var(--nst-primary);
    box-shadow: 0 6px 18px rgba(11, 42, 107, .12);
    transform: translateY(-1px);
}

.nst-cat:focus-visible {
    outline: 3px solid var(--nst-accent);
    outline-offset: 2px;
}

.nst-cat-icon {
    font-size: 22px;
    line-height: 1;
    flex: none;
}

.nst-cat-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
}

.nst-cat-label {
    font-weight: 700;
    font-size: 14.5px;
    color: var(--nst-text);
}

.nst-cat-desc {
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--nst-muted);
}

.nst-cat-arrow {
    color: var(--nst-muted);
    font-size: 22px;
    line-height: 1;
    flex: none;
}

/* -------------------------------------------------------------------- form */

.nst-back {
    border: 0;
    background: none;
    padding: 0 0 10px;
    color: var(--nst-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.nst-picked {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--nst-soft);
    border: 1px solid var(--nst-line);
    font-weight: 700;
    font-size: 14px;
}

.nst-picked-icon {
    font-size: 18px;
    line-height: 1;
}

.nst-field {
    margin: 0 0 14px;
}

.nst-field > label {
    display: block;
    margin: 0 0 5px;
    font-size: 13px;
    font-weight: 600;
    color: var(--nst-text);
}

.nst-req {
    color: #dc2626;
}

.nst-opt {
    color: var(--nst-muted);
    font-weight: 500;
}

.nst-root input[type="text"],
.nst-root input[type="email"],
.nst-root input[type="tel"],
.nst-root textarea {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--nst-line);
    border-radius: 10px;
    background: #fff;
    color: var(--nst-text);
    /* 16px = ambang iOS berhenti melakukan zoom otomatis saat fokus. */
    font-size: 16px;
    line-height: 1.4;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.nst-root textarea {
    resize: vertical;
    min-height: 108px;
}

.nst-root input:focus,
.nst-root textarea:focus {
    border-color: var(--nst-primary);
    box-shadow: 0 0 0 3px rgba(11, 42, 107, .12);
    outline: none;
}

.nst-root input[type="file"] {
    width: 100%;
    font-size: 13px;
}

.nst-hint {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    color: var(--nst-muted);
}

.nst-invalid input,
.nst-invalid textarea {
    border-color: #dc2626;
    background: #fff7f7;
}

.nst-error {
    margin: 6px 0 0;
    font-size: 12.5px;
    color: #b91c1c;
}

.nst-error-form {
    padding: 10px 12px;
    border-radius: 8px;
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.nst-file-list {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
    font-size: 12.5px;
    color: var(--nst-muted);
}

.nst-file-list li {
    padding: 3px 0;
    border-bottom: 1px dashed var(--nst-line);
}

.nst-file-list .nst-file-bad {
    color: #b91c1c;
}

/* Honeypot: harus tidak terlihat TAPI bukan display:none — sebagian bot
   melewati field yang di-display:none. */
.nst-hp {
    position: absolute !important;
    left: -9999px !important;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.nst-consent {
    margin: 0 0 14px;
}

.nst-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    line-height: 1.45;
    cursor: pointer;
}

.nst-check input {
    margin-top: 3px;
    flex: none;
}

/* ----------------------------------------------------------------- tombol */

.nst-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 13px 18px;
    border: 0;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: filter .15s ease;
}

.nst-btn-primary {
    background: var(--nst-primary);
    color: #fff;
}

.nst-btn-primary:hover {
    filter: brightness(1.08);
}

.nst-btn-primary:disabled {
    opacity: .7;
    cursor: progress;
}

.nst-btn-ghost {
    background: transparent;
    color: var(--nst-primary);
    border: 1px solid var(--nst-line);
    margin-top: 10px;
}

.nst-btn-wa {
    background: #25d366;
    color: #fff;
}

.nst-spinner {
    width: 15px;
    height: 15px;
    border: 2px solid rgba(255, 255, 255, .45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: nst-spin .7s linear infinite;
}

@keyframes nst-spin {
    to { transform: rotate(360deg); }
}

/* ---------------------------------------------------------------- sukses */

.nst-view-done {
    text-align: center;
}

.nst-done-icon {
    width: 52px;
    height: 52px;
    margin: 4px auto 12px;
    border-radius: 50%;
    background: #ecfdf5;
    color: #059669;
    font-size: 26px;
    line-height: 52px;
    font-weight: 700;
}

.nst-done-title {
    margin: 0 0 6px;
    font-size: 17px;
    font-weight: 700;
}

.nst-done-text {
    margin: 0 0 14px;
    font-size: 13.5px;
    color: var(--nst-muted);
    line-height: 1.55;
}

.nst-code-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 14px;
    border: 1px dashed var(--nst-accent);
    border-radius: 12px;
    margin: 0 0 14px;
}

.nst-code-label {
    font-size: 11.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--nst-muted);
}

.nst-code {
    font-size: 21px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--nst-primary);
}

.nst-copy {
    border: 0;
    background: none;
    color: var(--nst-primary);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
}

.nst-done-summary {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 12px;
    margin: 0 0 12px;
    text-align: left;
    font-size: 13px;
}

.nst-done-summary dt {
    color: var(--nst-muted);
}

.nst-done-summary dd {
    margin: 0;
    font-weight: 600;
    word-break: break-word;
}

.nst-done-notices {
    margin: 0 0 12px;
    padding: 10px 12px 10px 28px;
    text-align: left;
    font-size: 12.5px;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
}

/* ------------------------------------------------------------ versi inline */

.nst-inline {
    max-width: 620px;
    margin: 0 auto;
    border: 1px solid var(--nst-line);
    border-radius: var(--nst-radius);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(16, 24, 40, .08);
}

.nst-inline-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.nst-inline-off {
    padding: 18px;
    text-align: center;
    color: #6b7280;
}

/* --------------------------------------------------------------- ponsel */

@media (max-width: 480px) {

    #nst-root.nst-open {
        inset: 0;
        bottom: 0;
        right: 0;
        left: 0;
        align-items: stretch;
        gap: 0;
    }

    #nst-root.nst-open .nst-panel {
        width: 100%;
        max-width: none;
        height: 100%;
        max-height: none;
        border-radius: 0;
        border: 0;
    }

    #nst-root.nst-open .nst-launcher {
        position: fixed;
        right: var(--nst-offset-x);
        bottom: calc(var(--nst-offset-y) + env(safe-area-inset-bottom, 0px));
        display: none;
    }

    .nst-panel-body {
        padding: 16px;
        padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    }
}

@media (prefers-reduced-motion: reduce) {

    .nst-panel,
    .nst-teaser,
    .nst-launcher,
    .nst-cat {
        animation: none;
        transition: none;
    }
}

/* ==========================================================================
   HALAMAN PUSAT BANTUAN  ([nellava_ticket_page])
   Memakai komponen yang sama dengan panel; yang berbeda hanya tata letaknya.
   ========================================================================== */

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

.nst-page-hero {
    margin: 0 0 22px;
}

.nst-page-title {
    margin: 0 0 8px;
    font-size: clamp(22px, 3.4vw, 30px);
    line-height: 1.25;
    font-weight: 700;
    color: var(--nst-primary);
}

.nst-page-sub {
    margin: 0;
    max-width: 62ch;
    font-size: 15px;
    line-height: 1.6;
    color: var(--nst-muted);
}

.nst-page-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.nst-page-badge {
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--nst-soft);
    border: 1px solid var(--nst-line);
    font-size: 13px;
    color: var(--nst-text);
}

.nst-page-badge a {
    color: inherit;
    text-decoration: none;
}

.nst-page-badge a:hover {
    text-decoration: underline;
}

.nst-page-cols {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr);
    gap: 20px;
    align-items: start;
}

.nst-page-cols-single {
    grid-template-columns: minmax(0, 1fr);
}

.nst-page-main {
    padding: 22px;
    background: var(--nst-bg);
    border: 1px solid var(--nst-line);
    border-radius: var(--nst-radius);
    box-shadow: 0 10px 30px rgba(16, 24, 40, .06);
}

.nst-page-greeting {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--nst-text);
}

/* Kartu kategori berdampingan pada halaman penuh. */
.nst-cats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.nst-cats-grid .nst-cat {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 16px;
    height: 100%;
}

.nst-cats-grid .nst-cat-icon {
    font-size: 26px;
}

.nst-cats-grid .nst-cat-arrow {
    display: none;
}

/* Dua kolom untuk data diri; otomatis menumpuk di layar sempit. */
.nst-page .nst-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0 16px;
}

.nst-page .nst-btn-primary {
    width: auto;
    min-width: 260px;
    padding: 14px 26px;
}

.nst-page .nst-view-done {
    padding: 8px 0;
}

.nst-page .nst-done-summary {
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}

.nst-page .nst-btn-ghost {
    width: auto;
    padding: 12px 22px;
}

/* -------------------------------------------------------------- kolom samping */

.nst-page-aside {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.nst-side-card {
    padding: 18px;
    background: var(--nst-bg);
    border: 1px solid var(--nst-line);
    border-radius: var(--nst-radius);
}

.nst-side-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: var(--nst-text);
}

.nst-side-note {
    margin: 0 0 12px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--nst-muted);
}

.nst-side-tel {
    margin: 12px 0 0;
    font-size: 13px;
    color: var(--nst-muted);
}

.nst-side-tel a {
    color: var(--nst-primary);
    font-weight: 700;
    text-decoration: none;
}

.nst-steps {
    margin: 0;
    padding: 0 0 0 20px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--nst-text);
}

.nst-steps li {
    margin: 0 0 8px;
}

.nst-steps li::marker {
    color: var(--nst-accent);
    font-weight: 700;
}

/* ------------------------------------------------------------- lacak tiket */

.nst-tracker .nst-field {
    margin-bottom: 10px;
}

.nst-spinner-dark {
    border-color: rgba(11, 42, 107, .25);
    border-top-color: var(--nst-primary);
}

.nst-track-result {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--nst-line);
}

.nst-track-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.nst-track-code {
    font-size: 15px;
    letter-spacing: .04em;
    color: var(--nst-primary);
}

.nst-track-status {
    padding: 2px 10px;
    border-radius: 999px;
    background: #eef2f7;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.nst-status-new      { background: #fee2e2; color: #991b1b; }
.nst-status-progress { background: #fef3c7; color: #92400e; }
.nst-status-waiting  { background: #dbeafe; color: #1e40af; }
.nst-status-resolved { background: #dcfce7; color: #166534; }
.nst-status-closed   { background: #e5e7eb; color: #374151; }

.nst-track-meta {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3px 12px;
    margin: 0;
    font-size: 12.5px;
}

.nst-track-meta dt {
    color: var(--nst-muted);
}

.nst-track-meta dd {
    margin: 0;
    font-weight: 600;
    word-break: break-word;
}

.nst-track-replies {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.nst-track-replies li {
    padding: 10px 12px;
    margin: 0 0 8px;
    border-radius: 10px;
    background: var(--nst-soft);
    border: 1px solid var(--nst-line);
}

.nst-track-reply-meta {
    display: block;
    font-size: 11.5px;
    color: var(--nst-muted);
    margin-bottom: 4px;
}

.nst-track-replies p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    white-space: pre-line;
}

.nst-track-empty {
    margin: 12px 0 0;
    font-size: 13px;
    color: var(--nst-muted);
}

@media (max-width: 860px) {

    .nst-page-cols {
        grid-template-columns: minmax(0, 1fr);
    }

    .nst-page-main {
        padding: 18px 16px;
    }

    .nst-page .nst-btn-primary {
        width: 100%;
        min-width: 0;
    }
}

/* ==========================================================================
   LAPIS PERTAHANAN TEMA
   --------------------------------------------------------------------------
   Astra + Elementor menata SEMUA <button>, <a>, dan heading di halaman lewat
   selektor sekelas-plus-elemen, contohnya di toko ini:

       .elementor-kit-6 button { background-color:#702906; font-weight:700;
           text-transform:uppercase; letter-spacing:1.2px; color:#FFF;
           border-radius:8px; padding:1rem 3rem }

   Bobotnya (0,1,1) mengalahkan `.nst-cat` (0,1,0) TANPA PEDULI urutan file,
   sehingga kartu kategori berubah cokelat, HURUF BESAR, dan berpadding raksasa.
   Karena itu di bawah ini gaya tema dinetralkan lalu gaya plugin dipasang
   ulang memakai kelas akar ganda `.nst-root.nst-root` — trik menaikkan bobot
   tanpa satu pun `!important`, supaya toko tetap bisa menimpanya bila memang
   diinginkan (cukup pakai selektor yang lebih spesifik lagi).

   Semua nilai di sini SAMA dengan aturan aslinya di atas; blok ini hanya
   memenangkan perebutan bobot.
   ========================================================================== */

/* --- Netralkan warisan tema. ------------------------------------------- */

.nst-root.nst-root button {
    background: none;
    background-color: transparent;
    background-image: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-shadow: none;
    color: inherit;
    font: inherit;
    letter-spacing: normal;
    text-transform: none;
    text-align: left;
    padding: 0;
    margin: 0;
    width: auto;
    min-width: 0;
    min-height: 0;
    height: auto;
}

.nst-root.nst-root a {
    font: inherit;
    letter-spacing: normal;
    text-transform: none;
    text-decoration: none;
    color: inherit;
    box-shadow: none;
}

.nst-root.nst-root h2,
.nst-root.nst-root h3 {
    font: inherit;
    color: inherit;
    letter-spacing: normal;
    text-transform: none;
    margin: 0;
    padding: 0;
}

.nst-root.nst-root p {
    margin-bottom: 0;
    letter-spacing: normal;
    text-transform: none;
}

.nst-root.nst-root input,
.nst-root.nst-root textarea,
.nst-root.nst-root label,
.nst-root.nst-root small,
.nst-root.nst-root strong,
.nst-root.nst-root span,
.nst-root.nst-root dt,
.nst-root.nst-root dd,
.nst-root.nst-root li {
    font-family: inherit;
    text-transform: none;
    text-shadow: none;
}

.nst-root.nst-root input,
.nst-root.nst-root textarea {
    letter-spacing: normal;
    background-image: none;
}

.nst-root.nst-root input {
    min-height: 0;
}

/* Tinggi minimum kotak keluhan harus dipulihkan setelah netralisasi. */
.nst-root.nst-root textarea {
    min-height: 108px;
}

/* Label kapital milik plugin — dinyalakan lagi setelah `text-transform:none`. */
.nst-root.nst-root .nst-code-label,
.nst-root.nst-root .nst-bubble-name {
    text-transform: uppercase;
}

/* --- Pasang ulang gaya plugin dengan bobot lebih tinggi. --------------- */

.nst-root.nst-root .nst-launcher {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 18px;
    border-radius: 999px;
    background: var(--nst-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 10px 30px rgba(11, 42, 107, .28);
}

.nst-root.nst-root .nst-launcher-round {
    width: 60px;
    height: 60px;
    padding: 0;
}

.nst-root.nst-open .nst-launcher {
    width: 52px;
    height: 52px;
    padding: 0;
}

.nst-root.nst-root .nst-close {
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    font-size: 13px;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    flex: none;
}

.nst-root.nst-root .nst-close:hover {
    background: rgba(255, 255, 255, .28);
}

.nst-root.nst-root .nst-teaser-close {
    position: absolute;
    top: 4px;
    right: 6px;
    padding: 4px;
    color: var(--nst-muted);
    font-size: 12px;
    line-height: 1;
    text-align: center;
    cursor: pointer;
}

.nst-root.nst-root .nst-cat {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--nst-line);
    border-radius: 12px;
    background: #fff;
    color: var(--nst-text);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    cursor: pointer;
}

.nst-root.nst-root .nst-cat:hover {
    border-color: var(--nst-primary);
    box-shadow: 0 6px 18px rgba(11, 42, 107, .12);
}

.nst-root.nst-root .nst-cats-grid .nst-cat {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 16px;
    height: 100%;
}

.nst-root.nst-root .nst-cat-label {
    font-weight: 700;
    font-size: 14.5px;
    color: var(--nst-text);
}

.nst-root.nst-root .nst-cat-desc {
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--nst-muted);
}

.nst-root.nst-root .nst-back {
    padding: 0 0 10px;
    color: var(--nst-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.nst-root.nst-root .nst-copy {
    color: var(--nst-primary);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: underline;
    text-align: center;
    cursor: pointer;
}

.nst-root.nst-root .nst-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 13px 18px;
    border: 0;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.nst-root.nst-root .nst-btn-primary {
    background: var(--nst-primary);
    color: #fff;
}

.nst-root.nst-root .nst-btn-ghost {
    background: transparent;
    color: var(--nst-primary);
    border: 1px solid var(--nst-line);
    margin-top: 10px;
}

.nst-root.nst-root .nst-btn-wa {
    background: #25d366;
    color: #fff;
}

.nst-root.nst-page .nst-btn-primary {
    width: auto;
    min-width: 260px;
    padding: 14px 26px;
}

.nst-root.nst-page .nst-btn-ghost {
    width: auto;
    padding: 12px 22px;
}

/* Tautan & heading */

.nst-root.nst-root .nst-foot-links a {
    color: var(--nst-primary);
    font-weight: 600;
}

.nst-root.nst-root .nst-foot-links a:hover {
    text-decoration: underline;
}

.nst-root.nst-root .nst-side-tel a {
    color: var(--nst-primary);
    font-weight: 700;
}

.nst-root.nst-root .nst-page-title {
    margin: 0 0 8px;
    font-size: clamp(22px, 3.4vw, 30px);
    line-height: 1.25;
    font-weight: 700;
    color: var(--nst-primary);
}

.nst-root.nst-root .nst-done-title {
    margin: 0 0 6px;
    font-size: 17px;
    font-weight: 700;
    color: var(--nst-text);
}

.nst-root.nst-root .nst-side-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: var(--nst-text);
}

/* Jarak paragraf yang ikut ternetralkan di atas */

.nst-root.nst-root .nst-panel-foot p {
    margin: 0 0 6px;
}

.nst-root.nst-root .nst-panel-foot p:last-child {
    margin-bottom: 0;
}

.nst-root.nst-root .nst-done-text {
    margin: 0 0 14px;
}

.nst-root.nst-root .nst-side-note {
    margin: 0 0 12px;
}

.nst-root.nst-root .nst-page-greeting {
    margin: 0 0 16px;
}

.nst-root.nst-root .nst-error {
    margin: 6px 0 0;
}
