/* --------------------------------------------------------------------------
   Shared deck card UI
   --------------------------------------------------------------------------
   Tujuan:
   - Menyamakan tampilan card deck Flashcard, Cloze, dan Sentence Builder
     dengan style card Quiz.
   - Tidak mengubah business logic, route, atau data.
*/

:root {
    --pm-deck-teal: #08736f;
    --pm-deck-teal-dark: #05615e;
    --pm-deck-teal-soft: #dff7f2;
    --pm-deck-gold: #e1aa4a;
    --pm-deck-ink: #1f2937;
    --pm-deck-muted: #66738a;
    --pm-deck-brown: #77665c;
    --pm-deck-line: rgba(213, 191, 162, .72);
    --pm-deck-card-bg: rgba(255, 255, 255, .92);
    --pm-deck-shadow: 0 20px 44px rgba(31, 41, 55, .08);
}

.pm-deck-grid,
.pm-cloze-deck-grid,
.pm-sentence-deck-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

.pm-feature-deck-card {
    position: relative !important;
    display: grid !important;
    grid-template-rows: auto auto auto auto minmax(0, 1fr) !important;
    gap: 14px !important;
    min-height: 330px !important;
    padding: 20px !important;
    border: 1px solid rgba(213, 191, 162, .62) !important;
    border-radius: 26px !important;
    overflow: hidden !important;
    background: var(--pm-deck-card-bg) !important;
    box-shadow: var(--pm-deck-shadow) !important;
}

.pm-feature-deck-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 0 auto !important;
    height: 4px !important;
    background: linear-gradient(90deg, var(--pm-deck-teal), rgba(225, 170, 74, .88)) !important;
}

.pm-feature-deck-card.is-custom::before {
    background: linear-gradient(90deg, var(--pm-deck-gold), rgba(8, 115, 111, .78)) !important;
}

.pm-feature-deck-card-form {
    display: contents !important;
}

.pm-feature-deck-card-top,
.pm-feature-deck-card-meta,
.pm-feature-deck-card-context,
.pm-feature-deck-card-footer {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
}

.pm-feature-deck-card-top {
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 12px !important;
}

.pm-feature-deck-card-type,
.pm-feature-deck-card-status {
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    min-height: 34px !important;
    padding: 7px 14px !important;
    border-radius: 999px !important;
    font-size: .82rem !important;
    font-weight: 950 !important;
    line-height: 1 !important;
}

.pm-feature-deck-card-type {
    color: var(--pm-deck-teal-dark) !important;
    background: rgba(223, 247, 242, .96) !important;
    border: 1px solid rgba(8, 115, 111, .16) !important;
}

.pm-feature-deck-card-status {
    color: var(--pm-deck-brown) !important;
    background: rgba(255, 255, 255, .88) !important;
    border: 1px solid rgba(213, 191, 162, .56) !important;
}

.pm-feature-deck-card h3 {
    margin: 8px 0 0 !important;
    color: var(--pm-deck-ink) !important;
    font-size: clamp(1.35rem, 2vw, 2rem) !important;
    line-height: 1.15 !important;
    letter-spacing: -.035em !important;
}

.pm-feature-deck-card-description {
    min-height: 3.15em !important;
    margin: 0 !important;
    color: var(--pm-deck-muted) !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
}

.pm-feature-deck-card-meta {
    align-content: flex-start !important;
}

.pm-feature-deck-card-meta span,
.pm-feature-deck-card-context > span {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 34px !important;
    padding: 6px 13px !important;
    border-radius: 999px !important;
    color: var(--pm-deck-brown) !important;
    background: rgba(255, 255, 255, .78) !important;
    border: 1px solid rgba(213, 191, 162, .55) !important;
    font-size: .82rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.pm-feature-deck-card-context {
    margin-top: 4px !important;
    padding-top: 14px !important;
    border-top: 1px dashed rgba(213, 191, 162, .72) !important;
}

.pm-feature-deck-card-fields {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

.pm-feature-deck-card-fields label {
    display: grid !important;
    gap: 7px !important;
    min-width: 0 !important;
}

.pm-feature-deck-card-fields label > span {
    color: var(--pm-deck-brown) !important;
    font-size: .75rem !important;
    font-weight: 950 !important;
    letter-spacing: .03em !important;
    text-transform: uppercase !important;
}

.pm-feature-deck-card-fields select {
    width: 100% !important;
    min-height: 42px !important;
    padding: 0 13px !important;
    border: 1px solid rgba(213, 191, 162, .62) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .92) !important;
    color: var(--pm-deck-ink) !important;
    font-weight: 850 !important;
}

.pm-feature-deck-card-footer {
    align-self: end !important;
    justify-content: space-between !important;
    margin-top: 4px !important;
    padding-top: 14px !important;
    border-top: 1px dashed rgba(213, 191, 162, .72) !important;
}

.pm-feature-deck-card-footer small {
    display: block !important;
    margin-bottom: 6px !important;
    color: var(--pm-deck-brown) !important;
    font-size: .78rem !important;
    font-weight: 950 !important;
}

.pm-feature-deck-card-footer strong {
    display: block !important;
    color: var(--pm-deck-ink) !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
}

.pm-feature-deck-card-action {
    min-height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 0 20px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, var(--pm-deck-teal), var(--pm-deck-teal-dark)) !important;
    color: #fff !important;
    box-shadow: 0 18px 34px rgba(8, 115, 111, .18) !important;
    font-weight: 950 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}

.pm-feature-deck-card-action:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 22px 38px rgba(8, 115, 111, .22) !important;
}

.pm-feature-deck-card-action:disabled {
    opacity: .56 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Reset style lama yang bisa mengganggu uniform card. */
.pm-feature-deck-card .pm-deck-icon,
.pm-feature-deck-card .pm-cloze-deck-icon,
.pm-feature-deck-card .pm-sentence-deck-level,
.pm-feature-deck-card dl {
    display: none !important;
}

.pm-feature-deck-card .pm-cloze-primary-button,
.pm-feature-deck-card .pm-sentence-deck-start button {
    width: auto !important;
    margin: 0 !important;
}

/* Halaman Flashcard: deck 2 kolom seperti Quiz, bukan 3 kolom kecil. */
.pm-flash-main .pm-deck-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Halaman Cloze/Sentence: form tetap menyatu dengan card. */
.pm-cloze-start-form.pm-feature-deck-card-form,
.pm-sentence-deck-start.pm-feature-deck-card-form {
    margin: 0 !important;
}

@media (max-width: 1120px) {
    .pm-deck-grid,
    .pm-cloze-deck-grid,
    .pm-sentence-deck-grid,
    .pm-flash-main .pm-deck-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    .pm-feature-deck-card {
        min-height: auto !important;
        padding: 16px !important;
        border-radius: 22px !important;
    }

    .pm-feature-deck-card-top,
    .pm-feature-deck-card-footer {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .pm-feature-deck-card h3 {
        font-size: 1.28rem !important;
    }

    .pm-feature-deck-card-description {
        min-height: 0 !important;
    }

    .pm-feature-deck-card-fields {
        grid-template-columns: 1fr !important;
    }

    .pm-feature-deck-card-action {
        width: 100% !important;
    }
}


/* --------------------------------------------------------------------------
   Deck list pagination + content limit
   -------------------------------------------------------------------------- */
.pm-feature-deck-card-description {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

.pm-feature-deck-pagination {
    margin-top: 24px !important;
    padding-top: 4px !important;
}

.pm-feature-deck-pagination .pm-pagination {
    margin-top: 0 !important;
}

.pm-feature-deck-pagination .pm-pagination-summary {
    color: var(--pm-deck-muted) !important;
}

@media (max-width: 760px) {
    .pm-feature-deck-pagination {
        margin-top: 18px !important;
    }
}


/* --------------------------------------------------------------------------
   v20260518-deck3 - Cloze panel aligned with Quiz folder area
   -------------------------------------------------------------------------- */

.pm-cloze-panel {
    display: grid !important;
    gap: 18px !important;
    padding: clamp(18px, 2.4vw, 28px) !important;
    border: 1px solid rgba(13, 91, 90, .12) !important;
    border-radius: 34px !important;
    background:
        radial-gradient(circle at 12% 0%, rgba(225, 170, 74, .18), transparent 14rem),
        radial-gradient(circle at 96% 8%, rgba(8, 115, 111, .11), transparent 16rem),
        linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(255, 252, 246, .82)) !important;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .075) !important;
    overflow: hidden !important;
}

.pm-cloze-panel-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 420px) !important;
    gap: 18px !important;
    align-items: end !important;
    padding-bottom: 4px !important;
}

.pm-cloze-panel-eyebrow {
    margin: 0 0 8px !important;
    color: var(--pm-deck-teal-dark) !important;
    font-size: .78rem !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: .18em !important;
}

.pm-cloze-panel-head h2 {
    margin: 0 !important;
    color: var(--pm-deck-ink) !important;
    font-size: clamp(2rem, 4vw, 3.7rem) !important;
    line-height: .98 !important;
    letter-spacing: -.065em !important;
}

.pm-cloze-panel-head > p {
    margin: 0 !important;
    color: var(--pm-deck-muted) !important;
    font-size: clamp(.95rem, 1.2vw, 1.05rem) !important;
    font-weight: 700 !important;
    line-height: 1.58 !important;
}

.pm-cloze-panel .pm-cloze-deck-grid {
    margin: 0 !important;
}

.pm-cloze-panel .pm-feature-deck-pagination {
    margin-top: 4px !important;
}

@media (max-width: 900px) {
    .pm-cloze-panel-head {
        grid-template-columns: 1fr !important;
        align-items: start !important;
    }

    .pm-cloze-panel-head h2 {
        font-size: clamp(1.9rem, 9vw, 2.8rem) !important;
    }
}

@media (max-width: 640px) {
    .pm-cloze-panel {
        padding: 14px !important;
        border-radius: 24px !important;
    }
}


/* --------------------------------------------------------------------------
   v20260518-deck4 - Cloze cleanup
   --------------------------------------------------------------------------
   - Menghapus heading internal panel dari Blade.
   - Memberi jarak lebih nyaman antara hero Cloze dan daftar deck.
*/

.pm-cloze-main .pm-cloze-user-hero,
.pm-cloze-main .pm-cloze-user-hero-compact {
    margin-bottom: clamp(20px, 2.4vw, 34px) !important;
}

.pm-cloze-panel {
    margin-top: 0 !important;
}

.pm-cloze-panel .pm-cloze-deck-grid {
    margin-top: 0 !important;
}

@media (max-width: 640px) {
    .pm-cloze-main .pm-cloze-user-hero,
    .pm-cloze-main .pm-cloze-user-hero-compact {
        margin-bottom: 16px !important;
    }
}
