/* ═══ CV Builder — Simple user-friendly layout ═══ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');

/* Custom scrollbars */
.cv-scroll,
.cv-form-scroll,
.cv-preview-stage,
.cv-design-panel,
.cv-step-nav,
.cv-app {
    scrollbar-width: thin;
    scrollbar-color: #0f4c81 #e4e6eb;
}
.cv-scroll::-webkit-scrollbar,
.cv-form-scroll::-webkit-scrollbar,
.cv-preview-stage::-webkit-scrollbar,
.cv-design-panel::-webkit-scrollbar,
.cv-step-nav::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
.cv-scroll::-webkit-scrollbar-track,
.cv-form-scroll::-webkit-scrollbar-track,
.cv-preview-stage::-webkit-scrollbar-track,
.cv-design-panel::-webkit-scrollbar-track,
.cv-step-nav::-webkit-scrollbar-track {
    background: #f0f2f5;
    border-radius: 10px;
}
.cv-scroll::-webkit-scrollbar-thumb,
.cv-form-scroll::-webkit-scrollbar-thumb,
.cv-preview-stage::-webkit-scrollbar-thumb,
.cv-design-panel::-webkit-scrollbar-thumb,
.cv-step-nav::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #1d6aa8, #0f4c81);
    border-radius: 10px;
    border: 2px solid #f0f2f5;
}
.cv-scroll::-webkit-scrollbar-thumb:hover,
.cv-form-scroll::-webkit-scrollbar-thumb:hover,
.cv-preview-stage::-webkit-scrollbar-thumb:hover,
.cv-design-panel::-webkit-scrollbar-thumb:hover {
    background: #0a355c;
}

body.cv-builder-full .edu-body { padding: 0 !important; gap: 0 !important; }
body:not(.forced-mobile-mode) .edu-main.edu-main-wide,
body.forced-desktop-mode .edu-main.edu-main-wide {
    max-width: none !important;
    width: 100% !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body:not(.forced-mobile-mode) .edu-main.edu-main-wide + .edu-sidebar-right,
body.forced-desktop-mode .edu-main.edu-main-wide + .edu-sidebar-right {
    display: none !important;
}
#list-container.cv-builder-active { width: 100%; max-width: none; margin: 0; padding: 0; }
#list-container.ai-detector-active { width: 100%; max-width: none; margin: 0; padding: 0; overflow: hidden; }
#list-container.pro-apps-active {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* Pro Apps — make edu-main full width and scrollable */
body.pro-apps-view .edu-body {
    padding: 0 !important;
    gap: 0 !important;
}
body.pro-apps-view .edu-main + .edu-sidebar-right { display: none !important; }
body.pro-apps-view .view-header { display: none !important; }

/* Desktop: shell handles scrolling, edu-main is overflow:hidden */
@media (min-width: 769px) {
    body.pro-apps-view .edu-main {
        max-width: none !important;
        width: 100% !important;
        overflow: hidden !important;
        padding: 0 !important;
        flex: 1 !important;
    }
    body.pro-apps-view #list-container.pro-apps-active {
        min-height: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
    }
}

/* Mobile: edu-main scrolls, shell is auto height */
@media (max-width: 768px) {
    body.pro-apps-view .edu-body {
        display: block !important;
        overflow-y: auto !important;
        height: calc(100dvh - 56px) !important;
    }
    body.pro-apps-view .edu-main {
        max-width: 100% !important;
        width: 100% !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 0 !important;
        display: block !important;
        height: calc(100dvh - 56px) !important;
        flex: none !important;
    }
    body.pro-apps-view #list-container.pro-apps-active {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        min-height: 10px !important;
        overflow: visible !important;
    }
}

.pro-apps-shell {
    height: calc(100vh - 56px);
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: #0f4c81 #e4e6eb;
    background: var(--bg-main, #f0f2f5);
    padding: 16px;
    box-sizing: border-box;
}
.pro-apps-shell::-webkit-scrollbar { width: 7px; }
.pro-apps-shell::-webkit-scrollbar-track { background: #e4e6eb; border-radius: 10px; }
.pro-apps-shell::-webkit-scrollbar-thumb { background: #0f4c81; border-radius: 10px; }
.pro-apps-shell::-webkit-scrollbar-thumb:hover { background: #082a47; }

/* Mobile: pro-apps-shell scrolls naturally inside edu-main */
@media (max-width: 768px) {
    .pro-apps-shell {
        height: auto !important;
        min-height: 10px !important;
        overflow-y: visible !important;
        padding: 12px 10px 80px !important;
    }
}

/* ── Shell — polished GUI ── */
.cv-app {
    width: 100%;
    min-height: calc(100vh - 56px);
    background: linear-gradient(165deg, #dce6f2 0%, #eef2f7 40%, #e8edf4 100%);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.cv-toolbar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    background: linear-gradient(125deg, #082a47 0%, #0f4c81 45%, #1a6eb5 100%);
    border-bottom: none;
    flex-wrap: wrap;
    box-shadow: 0 4px 20px rgba(15, 76, 129, 0.35);
}
.cv-toolbar-back {
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(255,255,255,0.12);
    color: #fff;
    font-weight: 600;
    font-size: 0.88rem;
    padding: 8px 14px;
    border-radius: 10px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.2s;
}
.cv-toolbar-back:hover { background: rgba(255,255,255,0.22); }
.cv-toolbar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 160px;
}
.cv-toolbar-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(255,255,255,0.18);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
}
.cv-toolbar-title { min-width: 120px; }
.cv-toolbar-title h1 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
}
.cv-toolbar-title p {
    margin: 2px 0 0;
    font-size: 0.78rem;
    color: rgba(255,255,255,0.82);
}
.cv-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.cv-tab-switch {
    display: flex;
    background: rgba(0,0,0,0.2);
    border-radius: 10px;
    padding: 4px;
    border: 1px solid rgba(255,255,255,0.15);
}
.cv-tab-btn {
    border: none;
    background: transparent;
    color: rgba(255,255,255,0.85);
    padding: 8px 16px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: 0.2s;
}
.cv-tab-btn:hover { color: #fff; background: rgba(255,255,255,0.1); }
.cv-tab-btn.active {
    background: #fff;
    color: var(--uog-blue);
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.cv-btn-download {
    background: linear-gradient(135deg, #f58220, #ea580c);
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.88rem;
    cursor: pointer;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 14px rgba(245, 130, 32, 0.45);
    transition: transform 0.15s, box-shadow 0.15s;
}
.cv-btn-download:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(245, 130, 32, 0.5);
}

/* Progress strip */
.cv-progress-strip {
    background: #fff;
    border-bottom: 1px solid #e4e6eb;
    padding: 10px 20px;
    margin: 0 12px;
    border-radius: 12px 12px 0 0;
    box-shadow: 0 -2px 12px rgba(15, 76, 129, 0.06);
}
.cv-progress-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.cv-step-badge {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--uog-blue);
    white-space: nowrap;
}
.cv-progress-track {
    flex: 1;
    min-width: 120px;
    height: 8px;
    background: #e4e6eb;
    border-radius: 99px;
    overflow: hidden;
}
.cv-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #0f4c81, #38bdf8);
    border-radius: 99px;
    transition: width 0.3s ease;
}
.cv-fields-badge {
    font-size: 0.8rem;
    color: #65676b;
    white-space: nowrap;
}
.cv-fields-badge strong { color: #050505; }

/* Workspace: form + preview */
.cv-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 34%);
    flex: 1 1 0;
    min-height: 0;
    height: calc(100vh - 130px);
    gap: 0;
}
.cv-form-panel {
    background: #fff;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    margin: 12px 0 12px 12px;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(15, 76, 129, 0.1);
    border: 1px solid rgba(255,255,255,0.8);
}
.cv-preview-panel {
    background: transparent;
    display: flex;
    flex-direction: column;
    padding: 12px 12px 12px 8px;
    min-width: 0;
    min-height: 0;
    max-height: calc(100vh - 96px);
    border-left: none;
    overflow: hidden;
}
.cv-preview-head {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #fff;
    margin-bottom: 8px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: linear-gradient(135deg, #0f4c81, #1a6eb5);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(15,76,129,0.25);
}
.cv-preview-head i { color: #fbbf24; }
.cv-preview-tpl {
    margin-left: auto;
    background: rgba(255,255,255,0.18);
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.68rem;
    color: #fff;
    font-weight: 600;
}
/* ═══ Live Preview — attractive paper frame ═══ */
.cv-preview-frame {
    flex: 1 1 0;
    min-height: 220px;
    max-height: calc(100vh - 150px);
    background: linear-gradient(145deg, #0f2744 0%, #1a3a5c 50%, #0f2744 100%);
    border-radius: 14px;
    padding: 0;
    box-shadow: 0 12px 40px rgba(15, 76, 129, 0.35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}

/* Top bar of the "browser/device" frame */
.cv-preview-frame::before {
    content: '● ● ●';
    display: block;
    padding: 8px 14px;
    font-size: 0.6rem;
    color: rgba(255,255,255,0.35);
    letter-spacing: 3px;
    background: rgba(0,0,0,0.2);
    flex-shrink: 0;
    border-radius: 14px 14px 0 0;
}

.cv-preview-stage {
    flex: 1 1 0;
    min-height: 200px;
    height: 100%;
    max-height: calc(100vh - 200px);
    background: #e8ecf0;
    border-radius: 0 0 14px 14px;
    padding: 16px 12px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
}

/* Paper wrapper — gives the CV a white page look inside the dark frame */
.cv-preview-paper {
    background: #fff;
    border-radius: 4px;
    box-shadow:
        0 2px 8px rgba(0,0,0,0.18),
        0 8px 32px rgba(0,0,0,0.12),
        0 0 0 1px rgba(0,0,0,0.06);
    overflow: hidden;
    width: fit-content;
    min-width: 100%;
    margin: 0 auto;
    transition: box-shadow 0.2s;
}
.cv-preview-paper:hover {
    box-shadow:
        0 4px 16px rgba(0,0,0,0.22),
        0 12px 40px rgba(0,0,0,0.16),
        0 0 0 1px rgba(0,0,0,0.08);
}

/* The actual CV page inside preview — scaled to fit */
.cv-preview-stage .cv-page {
    transform-origin: top left;
    width: 794px; /* 210mm at 96dpi */
    flex-shrink: 0;
    box-shadow: none !important;
    min-height: auto;
}

/* Step navigation */
.cv-step-nav {
    display: flex;
    padding: 12px 16px 0;
    gap: 0;
    border-bottom: 1px solid #e4e6eb;
    overflow-x: auto;
}
.cv-step-item {
    flex: 1;
    min-width: 0;
    border: none;
    background: none;
    padding: 0 8px 12px;
    cursor: pointer;
    font-family: inherit;
    position: relative;
    text-align: center;
}
.cv-step-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 8px;
    right: 8px;
    height: 3px;
    background: transparent;
    border-radius: 3px 3px 0 0;
}
.cv-step-item.active::after { background: var(--uog-blue); }
.cv-step-item.done .cv-step-circle { background: #10b981; color: #fff; }
.cv-step-item.partial .cv-step-circle { background: #dbeafe; color: #2563eb; }
.cv-step-circle {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e4e6eb;
    color: #65676b;
    font-size: 0.8rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}
.cv-step-item.active .cv-step-circle {
    background: linear-gradient(135deg, #0f4c81, #1d6aa8);
    color: #fff;
    box-shadow: 0 2px 8px rgba(15, 76, 129, 0.35);
}
.cv-step-name {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    color: #65676b;
    line-height: 1.2;
}
.cv-step-item.active .cv-step-name { color: var(--uog-blue); }

/* Form body */
.cv-form-scroll {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 20px 24px 16px;
}
.cv-section-head {
    margin-bottom: 20px;
}
.cv-section-head h2 {
    margin: 0 0 6px;
    font-size: 1.35rem;
    font-weight: 700;
    color: #050505;
}
.cv-section-head p {
    margin: 0;
    font-size: 0.9rem;
    color: #65676b;
    line-height: 1.45;
}

.cv-profile-banner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, rgba(15, 76, 129, 0.1), rgba(56, 189, 248, 0.14));
    border: 1px solid rgba(15, 76, 129, 0.22);
    border-radius: 14px;
    font-size: 0.85rem;
    box-shadow: 0 4px 12px rgba(15, 76, 129, 0.08);
}
.cv-profile-banner > i {
    color: var(--uog-blue);
    font-size: 1.25rem;
    margin-top: 2px;
}
.cv-profile-banner-text {
    flex: 1;
    min-width: 0;
}
.cv-profile-banner-text strong {
    display: block;
    color: #050505;
    margin-bottom: 4px;
}
.cv-profile-banner-text span {
    color: #65676b;
    line-height: 1.4;
}
.cv-profile-refill {
    flex-shrink: 0;
    border: 1px solid var(--uog-blue);
    background: #fff;
    color: var(--uog-blue);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 6px 10px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}
.cv-profile-refill:hover {
    background: var(--uog-blue);
    color: #fff;
}

.cv-tip-box {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border: 1px solid #fcd34d;
    border-radius: 12px;
    font-size: 0.82rem;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.08);
}
.cv-tip-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #fef3c7;
    color: #b45309;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cv-tip-box strong {
    display: block;
    color: #92400e;
    margin-bottom: 6px;
    font-size: 0.84rem;
}
.cv-tip-box ul {
    margin: 0;
    padding-left: 18px;
    color: #78350f;
    line-height: 1.45;
}
.cv-tip-box li { margin-bottom: 4px; }
.cv-tip-box li:last-child { margin-bottom: 0; }

.cv-block-compact .cv-block-head { margin-bottom: 2px; }
.cv-refs { font-size: 0.9rem; line-height: 1.5; margin: 0; white-space: pre-line; }
.cv-field-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 16px;
}
.cv-field-grid .full { grid-column: 1 / -1; }
.cv-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 10px;
}
.cv-field-group { margin-bottom: 0; }
.cv-lbl {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
}
.cv-lbl .opt { font-weight: 400; color: #9ca3af; }
.cv-lbl .req { color: #ef4444; }
.cv-field {
    width: 100%;
    border: 1px solid #d1d9e6;
    background: #fafbfc;
    border-radius: 10px;
    padding: 11px 14px;
    font-size: 0.95rem;
    font-family: inherit;
    color: #050505;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    box-sizing: border-box;
}
.cv-field:hover { border-color: #93c5fd; background: #fff; }
.cv-field:focus {
    outline: none;
    border-color: var(--uog-blue);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(15, 76, 129, 0.12);
}
textarea.cv-field { resize: vertical; min-height: 80px; line-height: 1.5; }
.cv-photo-mini {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: #f7f8fa;
    border-radius: 8px;
    border: 1px dashed #ccd0d5;
}
.cv-photo-mini.locked {
    justify-content: center;
    flex-direction: column;
    text-align: center;
    color: #9ca3af;
    font-size: 0.8rem;
}
.cv-photo-mini.locked i { font-size: 1.2rem; }
.cv-photo-thumb {
    width: 56px;
    height: 56px;
    border-radius: 8px;
    background: #e4e6eb;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}
.cv-photo-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cv-repeat-row {
    position: relative;
    padding: 16px;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(15, 76, 129, 0.04);
}
.cv-row-remove {
    position: absolute;
    top: 10px;
    right: 10px;
    border: none;
    background: #fff;
    color: #ef4444;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid #fecaca;
}
.cv-link-add {
    border: none;
    background: none;
    color: var(--uog-blue);
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    font-family: inherit;
    padding: 8px 0;
}
.cv-skip-link {
    display: inline-block;
    margin-top: 8px;
    font-size: 0.85rem;
    color: #65676b;
    cursor: pointer;
    text-decoration: underline;
    border: none;
    background: none;
    font-family: inherit;
}

/* Sticky footer */
.cv-form-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-top: 1px solid #e8edf4;
    background: linear-gradient(180deg, #fafbfc, #f4f6f9);
    gap: 12px;
    flex-shrink: 0;
    border-radius: 0 0 16px 16px;
}
.cv-btn-back {
    border: 1px solid #ccd0d5;
    background: #fff;
    color: #374151;
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    font-family: inherit;
}
.cv-btn-back:disabled { opacity: 0.4; cursor: default; }
.cv-btn-next {
    background: linear-gradient(135deg, #0f4c81, #1d6aa8);
    color: #fff;
    border: none;
    padding: 11px 24px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.95rem;
    cursor: pointer;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    box-shadow: 0 4px 14px rgba(15, 76, 129, 0.3);
    transition: transform 0.15s, box-shadow 0.15s;
}
.cv-btn-next:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(15, 76, 129, 0.35);
}

/* PDF loading overlay */
.cv-pdf-loading {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(8, 42, 71, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
}
.cv-pdf-loading-box {
    background: #fff;
    padding: 28px 36px;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 20px 50px rgba(0,0,0,0.2);
}
.cv-pdf-loading-box i {
    font-size: 2rem;
    color: #f58220;
    margin-bottom: 12px;
}
.cv-pdf-loading-box p {
    margin: 0;
    font-weight: 600;
    color: #0f4c81;
}

/* Customize / Design mode */
.cv-design-panel {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 16px 20px;
    background: #fff;
}
.cv-design-intro {
    margin-bottom: 16px;
}
.cv-design-intro h2 { margin: 0 0 6px; font-size: 1.2rem; }
.cv-design-intro p { margin: 0; color: #65676b; font-size: 0.9rem; }
.cv-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}
.cv-pill {
    border: 1px solid #ccd0d5;
    background: #fff;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.82rem;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    font-family: inherit;
}
.cv-pill.active {
    border-color: var(--uog-blue);
    background: #eff6ff;
    color: var(--uog-blue);
}
.cv-tpl-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 16px;
}
.cv-tpl-card {
    border: 2px solid #e4e6eb;
    border-radius: 14px;
    padding: 0;
    background: #fff;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    overflow: hidden;
    transition: 0.15s;
}
.cv-tpl-card:hover { border-color: #93c5fd; }
.cv-tpl-card.selected {
    border-color: var(--uog-blue);
    box-shadow: 0 0 0 1px var(--uog-blue);
}
.cv-tpl-card-name {
    display: block;
    padding: 8px 10px 4px;
    font-weight: 700;
    font-size: 0.82rem;
}
.cv-tpl-card-preview {
    height: 168px;
    overflow: hidden;
    background: linear-gradient(145deg, #f8fafc, #e2e8f0);
    margin: 0 10px 10px;
    border-radius: 10px;
    position: relative;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}
.cv-tpl-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 76, 129, 0.12);
}
.cv-tpl-tag {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(15, 76, 129, 0.9);
    color: #fff;
}
.cv-tpl-tag.ats { background: #059669; }
.cv-tpl-tag.photo { background: #7c3aed; }
.cv-mini-scaler { height: 100%; display: flex; justify-content: center; overflow: hidden; }
.cv-mini-thumb-inner {
    transform: scale(0.22);
    transform-origin: top center;
    width: 210mm;
    pointer-events: none;
}
.cv-mini-thumb-inner .cv-page { min-height: auto; box-shadow: none; }
.cv-tpl-check {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 36px;
    background: var(--uog-blue);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ═══ CV document — modern 2024–2026 styles ═══ */
.cv-page {
    width: 210mm;
    max-width: 100%;
    min-height: 297mm;
    background: var(--cv-bg, #fff);
    color: #1e293b;
    font-size: 10pt;
    line-height: 1.5;
    font-family: 'Inter', 'Segoe UI', sans-serif;
    --cv-muted: #64748b;
    --cv-soft: #f1f5f9;
}
.cv-page-inner { min-height: inherit; }
.cv-name {
    margin: 0 0 4px;
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--cv-primary);
    font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
    letter-spacing: -0.02em;
}
.cv-title { margin: 0 0 10px; font-size: 0.92rem; color: var(--cv-muted); font-weight: 500; }
.cv-contact {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    font-size: 0.76rem;
    color: #475569;
}
.cv-contact span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--cv-soft);
    padding: 4px 10px;
    border-radius: 20px;
}
.cv-contact i { color: var(--cv-accent); font-size: 0.7rem; }
.cv-sec { margin-bottom: 14px; }
.cv-sec h3 {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 800;
    color: var(--cv-primary);
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.cv-sec h3::after {
    content: '';
    flex: 1;
    height: 2px;
    background: linear-gradient(90deg, var(--cv-accent), transparent);
    border-radius: 2px;
}
.cv-block { margin-bottom: 10px; padding-left: 2px; }
.cv-block-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.9rem;
    font-weight: 600;
}
.cv-block-head span { color: var(--cv-muted); font-weight: 500; font-size: 0.8rem; }
.cv-block-sub { font-size: 0.82rem; color: var(--cv-accent); font-weight: 600; margin-top: 2px; }
.cv-block-desc { font-size: 0.8rem; color: var(--cv-muted); margin-top: 4px; }
.cv-list { margin: 6px 0 0 18px; padding: 0; font-size: 0.82rem; }
.cv-list li { margin-bottom: 3px; }
.cv-hr { border: none; height: 2px; background: linear-gradient(90deg, var(--cv-primary), var(--cv-accent), transparent); margin: 14px 0; }
.cv-photo {
    width: 88px;
    height: 88px;
    border-radius: 16px;
    object-fit: cover;
    margin-bottom: 12px;
    border: 3px solid rgba(255,255,255,0.35);
    box-shadow: 0 4px 14px rgba(0,0,0,0.15);
}
.cv-photo-ph {
    width: 88px;
    height: 88px;
    border-radius: 16px;
    background: rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.8rem;
    margin-bottom: 12px;
}
.cv-skill-pills { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.cv-skill-pills span {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(255,255,255,0.2);
    color: inherit;
}
.cv-page .cv-skill-pills span { background: var(--cv-soft); color: var(--cv-primary); }

/* Neo sidebar — gradient panel */
.cv-modern-sidebar { display: flex; min-height: 280mm; }
.cv-modern-sidebar .cv-aside {
    width: 34%;
    background: linear-gradient(165deg, var(--cv-primary) 0%, color-mix(in srgb, var(--cv-primary) 70%, #000) 100%);
    color: #fff;
    padding: 22px 16px;
}
.cv-modern-sidebar .cv-aside .cv-name,
.cv-modern-sidebar .cv-aside .cv-title { color: #fff; }
.cv-modern-sidebar .cv-aside .cv-title { opacity: 0.88; }
.cv-modern-sidebar .cv-aside .cv-contact span { background: rgba(255,255,255,0.12); color: #fff; }
.cv-modern-sidebar .cv-aside .cv-sec h3 { color: #fff; }
.cv-modern-sidebar .cv-aside .cv-sec h3::after { background: linear-gradient(90deg, var(--cv-accent), transparent); }
.cv-modern-sidebar .cv-aside .cv-skill-pills span { background: rgba(255,255,255,0.18); color: #fff; }
.cv-modern-sidebar .cv-body { flex: 1; padding: 22px 20px; }

/* Hero gradient header */
.cv-hero-wrap { padding: 0; }
.cv-hero {
    background: linear-gradient(120deg, var(--cv-primary) 0%, color-mix(in srgb, var(--cv-accent) 40%, var(--cv-primary)) 55%, var(--cv-primary) 100%);
    color: #fff;
    padding: 28px 24px 24px;
    position: relative;
    overflow: hidden;
}
.cv-hero::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -15%;
    width: 50%;
    height: 140%;
    background: rgba(255,255,255,0.06);
    border-radius: 50%;
}
.cv-hero .cv-head-inner { display: flex; align-items: flex-start; gap: 18px; position: relative; z-index: 1; }
.cv-hero .cv-name, .cv-hero .cv-title { color: #fff; }
.cv-hero .cv-contact span { background: rgba(255,255,255,0.15); color: #fff; }
.cv-hero-body { padding: 20px 24px; }

/* Accent line — minimal ATS */
.cv-accent-line { display: flex; min-height: 280mm; }
.cv-accent-bar {
    width: 6px;
    background: linear-gradient(180deg, var(--cv-primary), var(--cv-accent));
    flex-shrink: 0;
}
.cv-accent-line .cv-body-pad { flex: 1; padding: 24px 22px; }
.cv-accent-line .cv-name { font-size: 1.7rem; }

/* Card sections */
.cv-cards-wrap { padding: 22px 20px; }
.cv-cards-wrap .cv-head-card {
    background: var(--cv-soft);
    border-radius: 12px;
    padding: 18px;
    margin-bottom: 16px;
    border: 1px solid color-mix(in srgb, var(--cv-primary) 12%, transparent);
}
.cv-cards-wrap .cv-sec {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 14px 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* Split two-column modern */
.cv-split-modern { padding: 22px 20px; }
.cv-split-modern .cv-top { margin-bottom: 18px; padding-bottom: 16px; border-bottom: 2px solid var(--cv-soft); }
.cv-split-modern .cv-cols { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 22px; }

/* Timeline modern */
.cv-timeline-modern { padding: 22px 20px; }
.cv-timeline-modern .cv-tl-line {
    border-left: 2px solid var(--cv-accent);
    margin-left: 8px;
    padding-left: 18px;
}
.cv-timeline-modern .cv-tl-item { position: relative; margin-bottom: 14px; }
.cv-timeline-modern .cv-tl-dot {
    position: absolute;
    left: -25px;
    top: 5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--cv-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cv-accent) 35%, transparent);
}

/* Legacy layouts enhanced */
.cv-side-left { display: flex; min-height: 280mm; }
.cv-side-left .cv-side-panel {
    width: 32%;
    background: linear-gradient(180deg, var(--cv-primary), color-mix(in srgb, var(--cv-primary) 85%, #000));
    color: #fff;
    padding: 20px 14px;
}
.cv-side-left .cv-side-panel .cv-name, .cv-side-left .cv-side-panel .cv-title { color: #fff; }
.cv-side-left .cv-side-panel .cv-contact span { background: rgba(255,255,255,0.12); color: #fff; }
.cv-side-left .cv-side-panel .cv-sec h3 { color: #fff; }
.cv-side-left .cv-main { flex: 1; padding: 20px; }
.cv-side-right { display: flex; min-height: 280mm; }
.cv-side-right .cv-main { flex: 1; padding: 20px; }
.cv-side-right .cv-side-panel {
    width: 30%;
    background: linear-gradient(180deg, var(--cv-primary), color-mix(in srgb, var(--cv-primary) 80%, #000));
    color: #fff;
    padding: 20px 14px;
}
.cv-side-right .cv-side-panel .cv-name { color: #fff; }
.cv-band {
    background: linear-gradient(125deg, var(--cv-primary), color-mix(in srgb, var(--cv-accent) 25%, var(--cv-primary)));
    color: #fff;
    padding: 26px 24px;
}
.cv-band .cv-name, .cv-band .cv-title { color: #fff; }
.cv-band .cv-contact span { background: rgba(255,255,255,0.14); color: #fff; }
.cv-body-pad { padding: 20px 22px; }
.cv-minimal { padding: 24px; }
.cv-two-col { padding: 22px 20px; }
.cv-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 14px; }

/* Skill / language score bars (CV content) */
.cv-bars { margin-top: 6px; }
.cv-bar-row {
    display: grid;
    grid-template-columns: 1fr minmax(60px, 90px) auto;
    align-items: center;
    gap: 6px 8px;
    margin-bottom: 8px;
    font-size: 0.68rem;
}
.cv-bar-label { font-weight: 600; color: inherit; }
.cv-bar-track {
    height: 7px;
    background: rgba(0,0,0,0.08);
    border-radius: 99px;
    overflow: hidden;
}
.cv-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--cv-primary), var(--cv-accent));
    border-radius: 99px;
}
.cv-bar-fill.cv-bar-lang { background: linear-gradient(90deg, var(--cv-accent), var(--cv-primary)); }
.cv-bar-pct { font-weight: 800; font-size: 0.62rem; color: var(--cv-accent); min-width: 28px; text-align: right; }

.cv-photo-square {
    width: 100px;
    height: 110px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
    border: 3px solid #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.cv-photo-square.cv-photo-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #94a3b8;
    font-size: 2rem;
}
.cv-photo-circle {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--cv-soft);
    flex-shrink: 0;
}
.cv-photo-circle.cv-photo-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #94a3b8;
    font-size: 2rem;
}

/* Template 1 — Executive Pro (blue header + photo) */
.cv-pro-header { min-height: 280mm; }
.cv-pro-top {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin-bottom: 0;
}
.cv-pro-namebox {
    flex: 1;
    background: var(--cv-primary);
    color: #fff;
    padding: 22px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.cv-pro-namebox .cv-name,
.cv-pro-namebox .cv-title { color: #fff; margin: 0; }
.cv-pro-namebox .cv-title { opacity: 0.9; margin-top: 6px; }
.cv-pro-split {
    display: grid;
    grid-template-columns: 36% 1fr;
    min-height: 240mm;
}
.cv-pro-left {
    padding: 18px 14px;
    background: #f8fafc;
    border-right: 1px solid #e2e8f0;
}
.cv-pro-left .cv-sec h3 { font-size: 0.65rem; color: var(--cv-primary); }
.cv-pro-left .cv-sec h3::after { display: none; }
.cv-pro-left .cv-bar-track { background: #e2e8f0; }
.cv-pro-left .cv-bar-row,
.cv-circle-min .cv-bar-row { grid-template-columns: 1fr minmax(50px, 1fr); }
.cv-pro-left .cv-bar-pct { display: none; }
.cv-pro-right { padding: 18px 20px; }
.cv-contact-mini { margin-top: 12px; font-size: 0.7rem; color: #64748b; }
.cv-contact-mini span { display: block; margin-bottom: 4px; }

/* Template 2 — Dark Premium (skill % bars) */
.cv-dark-premium { display: flex; min-height: 280mm; }
.cv-dark-side {
    width: 34%;
    background: linear-gradient(180deg, #1a1a2e 0%, var(--cv-primary) 45%, #0f172a 100%);
    color: #fff;
    padding: 20px 14px;
}
.cv-dark-side .cv-name,
.cv-dark-side .cv-title { color: #fff; }
.cv-dark-side .cv-title { opacity: 0.85; font-size: 0.82rem; }
.cv-dark-side .cv-sec h3 { color: #fff; font-size: 0.65rem; border-bottom: 1px solid rgba(255,255,255,0.2); padding-bottom: 4px; margin-bottom: 8px; }
.cv-dark-side .cv-sec h3::after { display: none; }
.cv-dark-side .cv-bar-track { background: rgba(255,255,255,0.15); }
.cv-dark-side .cv-bar-fill { background: linear-gradient(90deg, var(--cv-accent), #fff); }
.cv-dark-side .cv-bar-pct { color: var(--cv-accent); }
.cv-dark-side .cv-photo-square { margin-bottom: 14px; border-color: rgba(255,255,255,0.3); }
.cv-contact-stacked { font-size: 0.72rem; margin: 12px 0; }
.cv-contact-stacked span { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; color: rgba(255,255,255,0.9); }
.cv-contact-stacked i { color: var(--cv-accent); width: 14px; }
.cv-dark-main { flex: 1; padding: 22px 20px; background: #fff; }

/* Template 3 — Circle minimal */
.cv-circle-min { padding: 22px 24px; }
.cv-circle-head {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--cv-soft);
}
.cv-circle-head .cv-name { color: var(--cv-primary); margin: 0; }
.cv-row-sec {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 12px 20px;
    align-items: start;
    margin-bottom: 14px;
}
.cv-row-sec h3 {
    margin: 0;
    font-size: 0.75rem;
    color: var(--cv-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.cv-row-sec h3::after { display: none; }
.cv-row-body { font-size: 0.85rem; }

/* Template 4 — Center elegant */
.cv-center-elegant { padding: 28px 26px; text-align: center; }
.cv-center-head { margin-bottom: 8px; }
.cv-center-head .cv-name { font-size: 1.8rem; letter-spacing: 0.08em; text-transform: uppercase; }
.cv-center-head .cv-title { font-size: 1rem; color: var(--cv-muted); }
.cv-contact-center { justify-content: center; margin-top: 10px; }
.cv-center-elegant .cv-sec { text-align: left; margin-top: 16px; }
.cv-center-elegant .cv-hr { margin: 14px 0; }

.cv-tpl-tag.bars { background: #7c3aed; }
.cv-tpl-tag.pro { background: #0f4c81; }

/* Photo upload (form) */
.cv-photo-upload {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
}
.cv-photo-thumb {
    width: 72px;
    height: 72px;
    border-radius: 10px;
    overflow: hidden;
    background: #e4e6eb;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-size: 1.5rem;
    flex-shrink: 0;
}
.cv-photo-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cv-photo-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cv-photo-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 8px;
    background: var(--uog-blue);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    font-family: inherit;
}
.cv-photo-btn.secondary {
    background: #f0f2f5;
    color: var(--uog-blue);
    border: 1px solid #d0d7de;
}
.cv-photo-url { flex: 1; min-width: 180px; margin-top: 4px; }

/* Reference style — Classic Photo (image 2) */
.cv-ref-classic { padding: 22px 26px; }
.cv-ref-classic-head {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--cv-soft);
}
.cv-ref-classic .cv-name { font-size: 1.65rem; color: var(--cv-primary); }
.cv-ref-classic .cv-title { color: var(--cv-muted); }
.cv-ref-contact-row { margin-top: 8px; }
.cv-ref-contact-row span { background: transparent; padding: 0; font-size: 0.75rem; }
.cv-ref-sec { margin-bottom: 16px; }
.cv-ref-sec .cv-block-head strong { color: var(--cv-accent); font-weight: 700; }
.cv-ref-sec .cv-block-head span { color: var(--cv-muted); }

/* Reference style — Formal Lines (image 3) */
.cv-ref-formal { padding: 24px 28px; }
.cv-ref-formal-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 18px;
}
.cv-ref-formal .cv-name {
    font-size: 1.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cv-primary);
}
.cv-ref-meta {
    text-align: right;
    font-size: 0.78rem;
    color: var(--cv-muted);
    line-height: 1.6;
}
.cv-ref-meta strong { color: var(--cv-primary); margin-right: 6px; }
.cv-ref-line-sec {
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 2px solid color-mix(in srgb, var(--cv-primary) 25%, transparent);
}
.cv-ref-line-sec h3 {
    color: var(--cv-primary);
    border-bottom: none;
    margin-bottom: 8px;
}
.cv-ref-line-sec h3::after { display: none; }
.cv-ref-line-sec .cv-block-head strong { color: var(--cv-accent); }

/* Accountant header — photo + blue name band */
.cv-pro-top .cv-photo-square {
    width: 108px;
    height: 118px;
    margin: 0;
    z-index: 2;
    position: relative;
}
.cv-pro-namebox .cv-name { font-size: 1.4rem; letter-spacing: 0.06em; text-transform: uppercase; }

/* PDF / print export host */
#cv-print-frame { visibility: hidden; }

/* DOCX template preview & cards */
.cv-preview-loading,
.cv-preview-empty {
    padding: 24px;
    text-align: center;
    color: #475569;
    font-size: 0.9rem;
}
.cv-preview-loading i { font-size: 1.5rem; color: var(--uog-blue); margin-bottom: 8px; }
.cv-data-summary { margin-bottom: 12px; }
.cv-data-hint {
    font-size: 0.78rem;
    color: #64748b;
    margin: 0 0 8px;
    padding: 8px 10px;
    background: #eff6ff;
    border-radius: 8px;
}
.cv-data-card {
    background: #fff;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}
.cv-data-card strong { display: block; color: var(--uog-blue); }
.cv-data-card span { font-size: 0.85rem; color: #64748b; }
.cv-docx-preview {
    background: #fff;
    padding: 16px 20px;
    border-radius: 8px;
    font-size: 11pt;
    line-height: 1.45;
    max-width: 100%;
    overflow-x: auto;
}
.cv-docx-preview p { margin: 0 0 8px; }
.cv-docx-preview table { width: 100%; border-collapse: collapse; }
.cv-tpl-card-preview-docx {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 140px;
    background: linear-gradient(160deg, #f8fafc, #e8eef5);
}
.cv-tpl-docx-icon {
    font-size: 2.5rem;
    color: #2b579a;
}
.cv-tpl-file {
    font-size: 0.62rem;
    color: #64748b;
    text-align: center;
    padding: 0 8px;
    word-break: break-all;
}
.cv-design-note {
    font-size: 0.82rem;
    color: #64748b;
    margin-top: 12px;
    line-height: 1.45;
}
.cv-design-note code {
    font-size: 0.75rem;
    background: #f1f5f9;
    padding: 2px 5px;
    border-radius: 4px;
}
@media print {
    body.cv-printing * { visibility: hidden; }
    body.cv-printing #cv-print-frame,
    body.cv-printing #cv-print-frame * { visibility: visible; }
}

/* ═══════════════════════════════════════════════════════════
   Pro Apps Hub — Premium Redesign
   ═══════════════════════════════════════════════════════════ */

.pro-apps-hub {
    max-width: 860px;
    margin: 0 auto;
    padding: 12px 16px 32px;
}

/* ── Section label ── */
.pro-apps-section-label {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-secondary, #65676b);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.pro-apps-section-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border-color, #e4e6eb);
}

/* ── Cards Grid ── */
.pro-apps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    margin-bottom: 0;
}

.pro-app-card {
    text-align: left;
    border: 1.5px solid var(--border-color, #e4e6eb);
    border-radius: 18px;
    padding: 0;
    background: var(--bg-surface-solid, #fff);
    cursor: pointer;
    font-family: inherit;
    position: relative;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.pro-app-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(15, 76, 129, 0.14);
    border-color: transparent;
}
.pro-app-card.featured {
    border-color: rgba(15, 76, 129, 0.25);
}
.pro-app-card.featured:hover {
    box-shadow: 0 16px 40px rgba(15, 76, 129, 0.22);
}
.pro-app-card.soon {
    opacity: 0.6;
    cursor: default;
    pointer-events: none;
}

/* Card top accent strip */
.pro-app-card-strip {
    height: 4px;
    width: 100%;
    flex-shrink: 0;
}

/* Card body */
.pro-app-card-body {
    padding: 18px 18px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Badge */
.pro-app-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 0.6rem;
    font-weight: 900;
    padding: 3px 9px;
    border-radius: 20px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

/* Icon */
.pro-app-icon {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.2rem;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    flex-shrink: 0;
}
.pro-app-icon.muted {
    background: var(--border-color, #e4e6eb);
    color: var(--text-secondary, #65676b);
    box-shadow: none;
}

/* Card text */
.pro-app-card h3 {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-primary, #050505);
    letter-spacing: -0.01em;
}
.pro-app-card p {
    margin: 0 0 12px;
    font-size: 0.83rem;
    color: var(--text-secondary, #65676b);
    line-height: 1.55;
    flex: 1;
}

/* Feature tags */
.pro-app-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 14px;
}
.pro-app-tag {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 6px;
    background: var(--bg-surface, #f0f2f5);
    color: var(--text-secondary, #65676b);
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* CTA row */
.pro-app-cta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid var(--border-color, #e4e6eb);
    margin-top: auto;
}
.pro-app-cta {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--uog-blue, #0f4c81);
    display: flex;
    align-items: center;
    gap: 6px;
}
.pro-app-cta i { transition: transform 0.2s; }
.pro-app-card:hover .pro-app-cta i { transform: translateX(4px); }
.pro-app-cta-arrow {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--bg-surface, #f0f2f5);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    color: var(--uog-blue, #0f4c81);
    transition: background 0.2s, color 0.2s;
}
.pro-app-card:hover .pro-app-cta-arrow {
    background: var(--uog-blue, #0f4c81);
    color: #fff;
}

/* ── Coming Soon section ── */
.pro-apps-coming-soon { margin-top: 24px; }
.pro-apps-coming-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}
.pro-app-soon-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1.5px dashed var(--border-color, #e4e6eb);
    border-radius: 12px;
    background: var(--bg-surface, #f0f2f5);
    opacity: 0.7;
}
.pro-app-soon-icon {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: var(--border-color, #e4e6eb);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    color: var(--text-secondary, #65676b);
    flex-shrink: 0;
}
.pro-app-soon-name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-secondary, #65676b);
}
.pro-app-soon-badge {
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary, #65676b);
    background: var(--border-color, #e4e6eb);
    padding: 2px 7px;
    border-radius: 6px;
    margin-top: 3px;
    display: inline-block;
}

/* Responsive */
@media (max-width: 640px) {
    .pro-apps-hub { padding: 12px 10px 20px; }
    .pro-apps-grid { grid-template-columns: 1fr; }
    .pro-apps-coming-grid { grid-template-columns: 1fr 1fr; }
}

/* ── Mobile Pro Apps Fix ── */
@media (max-width: 768px) {
    /* Pro Apps shell — full height minus mobile bottom nav */
    .pro-apps-shell {
        height: calc(100vh - 56px) !important;
        padding-bottom: 80px !important; /* space for bottom nav */
        overflow-y: auto !important;
    }

    /* edu-main must be visible and scrollable on mobile pro-apps */
    body.pro-apps-view .edu-main {
        overflow-y: auto !important;
        height: auto !important;
        min-height: calc(100vh - 56px) !important;
    }

    body.pro-apps-view #list-container.pro-apps-active {
        height: auto !important;
        min-height: calc(100vh - 56px) !important;
        overflow: visible !important;
    }

    /* Remove cv-builder-full body class effect on mobile for pro-apps */
    body.cv-builder-full.pro-apps-view .edu-body {
        display: block !important;
        overflow-y: auto !important;
    }

    body.cv-builder-full.pro-apps-view .edu-main {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow-y: auto !important;
    }
}

/* Mobile bottom bar — hidden on desktop */
.cv-mobile-bar { display: none; }
.cv-preview-close-btn { display: none; }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — Tablet (960px) + Mobile (768px) + Small (480px)
   ═══════════════════════════════════════════════════════════ */

/* ── Tablet: stack form above preview ── */
@media (max-width: 960px) {
    .cv-workspace {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
    }
    .cv-preview-panel {
        order: -1;
        max-height: 260px;
        padding: 8px 12px;
        border-left: none;
        border-bottom: 1px solid #d8dadf;
        max-height: calc(100vh - 96px);
    }
    .cv-field-grid { grid-template-columns: 1fr; }
}

/* ── Mobile: full redesign ── */
@media (max-width: 768px) {

    /* App shell — full screen, no overflow */
    .cv-app {
        min-height: 100dvh;
        height: 100dvh;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        background: #f0f4f8;
    }

    /* ── Toolbar: compact mobile header ── */
    .cv-toolbar {
        padding: 8px 12px;
        gap: 8px;
        flex-wrap: nowrap;
        min-height: 52px;
    }
    .cv-toolbar-back {
        padding: 7px 10px;
        font-size: 0.8rem;
        border-radius: 8px;
        white-space: nowrap;
    }
    .cv-toolbar-brand { gap: 8px; min-width: 0; flex: 1; }
    .cv-toolbar-icon { width: 34px; height: 34px; font-size: 0.95rem; border-radius: 9px; }
    .cv-toolbar-title h1 { font-size: 0.95rem; }
    .cv-toolbar-title p { display: none; }

    /* Hide desktop tab-switch + download btn from toolbar on mobile */
    .cv-toolbar-actions { display: none; }

    /* Progress strip — compact */
    .cv-progress-strip {
        margin: 0;
        border-radius: 0;
        padding: 6px 12px;
        border-bottom: 1px solid #e4e6eb;
    }
    .cv-progress-row { gap: 8px; }
    .cv-step-badge { font-size: 0.75rem; }
    .cv-fields-badge { display: none; }

    /* ── Workspace: single column, fills remaining height ── */
    .cv-workspace {
        display: flex;
        flex-direction: column;
        flex: 1 1 0;
        min-height: 0;
        height: auto;
        overflow: hidden;
    }

    /* ── Form panel: fills all space, scrollable ── */
    .cv-form-panel {
        flex: 1 1 0;
        min-height: 0;
        margin: 0;
        border-radius: 0;
        box-shadow: none;
        border: none;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    /* Step nav — horizontal scroll, compact */
    .cv-step-nav {
        padding: 8px 10px 0;
        gap: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-shrink: 0;
    }
    .cv-step-nav::-webkit-scrollbar { display: none; }
    .cv-step-item { padding: 0 6px 8px; min-width: 52px; }
    .cv-step-circle { width: 24px; height: 24px; font-size: 0.72rem; }
    .cv-step-name { font-size: 0.6rem; }

    /* Form scroll area */
    .cv-form-scroll {
        padding: 12px 14px 80px; /* bottom padding for mobile bottom bar */
        flex: 1 1 0;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Step hero — compact */
    .cv-step-hero {
        padding: 12px 14px;
        margin-bottom: 14px;
        gap: 10px;
    }
    .cv-step-hero h2 { font-size: 1rem; }
    .cv-step-hero p { font-size: 0.78rem; }
    .cv-step-hero-icon { width: 38px; height: 38px; font-size: 1rem; }

    /* Form sections */
    .cv-form-section { border-radius: 12px; margin-bottom: 12px; }
    .cv-form-section-title { padding: 10px 14px; font-size: 0.78rem; }
    .cv-form-section > .cv-field-grid,
    .cv-form-section > .cv-field-group,
    .cv-form-section > .cv-field-wrap { padding: 12px 14px; }
    .cv-collapsible-body { padding: 12px 14px; }

    /* Fields */
    .cv-field-grid { grid-template-columns: 1fr; gap: 10px; }
    .cv-field-row { grid-template-columns: 1fr; gap: 8px; }
    .cv-field { padding: 10px 12px; font-size: 0.9rem; border-radius: 9px; }
    .cv-lbl { font-size: 0.78rem; margin-bottom: 5px; }

    /* Card rows */
    .cv-card-row {
        flex-direction: row;
        gap: 10px;
        padding: 12px 12px !important;
    }
    .cv-row-icon-badge { width: 30px; height: 30px; font-size: 0.78rem; border-radius: 8px; }
    .cv-row-remove { width: 28px; height: 28px; top: 8px; right: 8px; }

    /* Add row bar */
    .cv-add-row-bar { flex-direction: column; align-items: flex-start; gap: 8px; }
    .cv-add-card-btn { font-size: 0.82rem; padding: 9px 14px; width: 100%; justify-content: center; }
    .cv-skip-btn { font-size: 0.78rem; }

    /* Footer — sticky at bottom */
    .cv-form-footer {
        padding: 10px 14px;
        border-radius: 0;
        gap: 8px;
        flex-shrink: 0;
    }
    .cv-btn-back { padding: 9px 14px; font-size: 0.85rem; }
    .cv-btn-next { padding: 10px 18px; font-size: 0.88rem; }

    /* ── Preview panel: hidden by default on mobile, shown via toggle ── */
    .cv-preview-panel {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 9000;
        background: rgba(8, 42, 71, 0.92);
        padding: 0;
        max-height: 100dvh;
        border: none;
        flex-direction: column;
        order: 0;
    }
    .cv-preview-panel.cv-preview-open {
        display: flex;
    }
    .cv-preview-head {
        border-radius: 0;
        margin: 0;
        padding: 12px 16px;
        font-size: 0.82rem;
        flex-shrink: 0;
        background: linear-gradient(135deg, #082a47, #0f4c81);
    }
    .cv-preview-frame {
        flex: 1 1 0;
        min-height: 0;
        border-radius: 0;
        box-shadow: none;
        max-height: none;
    }
    .cv-preview-stage {
        max-height: none;
        padding: 12px 8px;
    }

    /* Close preview button (injected by JS) */
    .cv-preview-close-btn {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-left: auto;
        border: 1px solid rgba(255,255,255,0.3);
        background: rgba(255,255,255,0.12);
        color: #fff;
        font-size: 0.8rem;
        font-weight: 600;
        padding: 6px 12px;
        border-radius: 8px;
        cursor: pointer;
        font-family: inherit;
    }

    /* ── Mobile bottom action bar ── */
    .cv-mobile-bar {
        display: flex;
        align-items: center;
        gap: 0;
        background: linear-gradient(125deg, #082a47 0%, #0f4c81 100%);
        border-top: 1px solid rgba(255,255,255,0.1);
        padding: 6px 8px;
        padding-bottom: max(6px, env(safe-area-inset-bottom));
        flex-shrink: 0;
        box-shadow: 0 -4px 16px rgba(15,76,129,0.3);
    }
    .cv-mobile-bar-btn {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 3px;
        border: none;
        background: transparent;
        color: rgba(255,255,255,0.7);
        font-size: 0.62rem;
        font-weight: 700;
        padding: 6px 4px;
        border-radius: 10px;
        cursor: pointer;
        font-family: inherit;
        transition: 0.15s;
        letter-spacing: 0.02em;
        text-transform: uppercase;
    }
    .cv-mobile-bar-btn i { font-size: 1.1rem; }
    .cv-mobile-bar-btn.active {
        color: #fff;
        background: rgba(255,255,255,0.15);
    }
    .cv-mobile-bar-btn.accent {
        color: #fbbf24;
    }
    .cv-mobile-bar-btn.accent i { color: #fbbf24; }

    /* Design panel on mobile */
    .cv-design-panel { padding: 12px 14px; }
    .cv-tpl-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .cv-tpl-card-preview { height: 130px; }
    .cv-tpl-card-preview-html { height: 130px; }

    /* Profile banner */
    .cv-profile-banner { flex-wrap: wrap; gap: 8px; }
    .cv-profile-refill { margin-left: 0; }

    /* Photo upload */
    .cv-photo-preview-wrap { flex-direction: column; }
    .cv-photo-upload-actions { flex-wrap: wrap; }

    /* Score bar */
    #cv-score-bar { display: none; }
}

/* ── Small phones (480px) ── */
@media (max-width: 480px) {
    .cv-toolbar-title h1 { font-size: 0.88rem; }
    .cv-toolbar-back span { display: none; } /* show only icon */
    .cv-step-item { min-width: 44px; }
    .cv-step-circle { width: 22px; height: 22px; font-size: 0.68rem; }
    .cv-step-name { font-size: 0.56rem; }
    .cv-form-scroll { padding: 10px 10px 80px; }
    .cv-step-hero { padding: 10px 12px; gap: 8px; }
    .cv-step-hero-icon { width: 34px; height: 34px; font-size: 0.9rem; }
    .cv-step-hero h2 { font-size: 0.92rem; }
    .cv-tpl-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .cv-btn-next { font-size: 0.82rem; padding: 9px 14px; }
    .cv-btn-back { font-size: 0.8rem; padding: 8px 12px; }
}

/* ── Desktop mode forced on mobile (forced-desktop-mode class) ── */
body.forced-desktop-mode .cv-app {
    height: auto;
    min-height: 100vh;
    overflow: visible;
}
body.forced-desktop-mode .cv-workspace {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 34%) !important;
    height: calc(100vh - 130px) !important;
    flex-direction: unset !important;
}
body.forced-desktop-mode .cv-form-panel {
    margin: 12px 0 12px 12px !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 32px rgba(15,76,129,0.1) !important;
    border: 1px solid rgba(255,255,255,0.8) !important;
}
body.forced-desktop-mode .cv-preview-panel {
    display: flex !important;
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    background: transparent !important;
    padding: 12px 12px 12px 8px !important;
    max-height: calc(100vh - 96px) !important;
    border: none !important;
    flex-direction: column !important;
    order: 0 !important;
}
body.forced-desktop-mode .cv-preview-frame {
    border-radius: 14px !important;
    box-shadow: 0 12px 40px rgba(15,76,129,0.35) !important;
    max-height: calc(100vh - 150px) !important;
}
body.forced-desktop-mode .cv-preview-stage {
    max-height: calc(100vh - 200px) !important;
}
body.forced-desktop-mode .cv-toolbar-actions { display: flex !important; }
body.forced-desktop-mode .cv-mobile-bar { display: none !important; }
body.forced-desktop-mode .cv-form-scroll { padding: 20px 24px 16px !important; }
body.forced-desktop-mode #cv-score-bar { display: block !important; }
body.forced-desktop-mode .cv-progress-strip {
    margin: 0 12px !important;
    border-radius: 12px 12px 0 0 !important;
    padding: 10px 20px !important;
}
body.forced-desktop-mode .cv-fields-badge { display: block !important; }
body.forced-desktop-mode .cv-step-circle { width: 28px !important; height: 28px !important; font-size: 0.8rem !important; }
body.forced-desktop-mode .cv-step-name { font-size: 0.72rem !important; }

/* ═══ HTML Template Thumbnails (Design panel) ═══ */

/* Override the preview area for HTML-rendered thumbnails */
.cv-tpl-card-preview-html {
    height: 168px;
    overflow: hidden;
    background: #f8fafc;
    margin: 0 10px 10px;
    border-radius: 10px;
    position: relative;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

/* The scaler container fills the card preview */
.cv-tpl-card-preview-html .cv-mini-scaler {
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: block;
    position: relative;
}

/* The inner div holds the full-size CV page, scaled down to ~22% */
.cv-tpl-card-preview-html .cv-mini-thumb-inner {
    transform: scale(0.22);
    transform-origin: top left;
    width: 210mm;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
}

/* Prevent the mini CV page from casting a shadow inside the thumbnail */
.cv-tpl-card-preview-html .cv-mini-thumb-inner .cv-page {
    box-shadow: none !important;
    min-height: auto;
}

/* Tag styles for new template types */
.cv-tpl-tag.minimal  { background: rgba(30, 41, 59, 0.85); }
.cv-tpl-tag.elegant  { background: rgba(136, 19, 55, 0.85); }

/* Live preview — the cv-page scales to fit the stage */
.cv-preview-stage .cv-page {
    display: block;
    transform-origin: top left;
    width: 210mm;
    flex-shrink: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
}

/* Ensure sidebar layouts render correctly inside the preview */
.cv-preview-stage .cv-modern-sidebar,
.cv-preview-stage .cv-dark-premium,
.cv-preview-stage .cv-side-left,
.cv-preview-stage .cv-side-right,
.cv-preview-stage .cv-accent-line {
    min-height: 0;
}

/* Contact stacked (sidebar templates) */
.cv-contact-stacked {
    font-size: 0.72rem;
    margin: 8px 0;
    color: rgba(255,255,255,0.9);
}
.cv-contact-stacked span {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 5px;
    word-break: break-all;
}
.cv-contact-stacked i {
    color: var(--cv-accent, #38bdf8);
    font-size: 0.65rem;
    flex-shrink: 0;
}

/* Dark side panel contact stacked */
.cv-dark-side .cv-contact-stacked { color: rgba(255,255,255,0.88); }
.cv-dark-side .cv-contact-stacked i { color: var(--cv-accent, #7c3aed); }

/* cv-side-right sidebar contact */
.cv-side-right .cv-side-panel .cv-contact-stacked { color: rgba(255,255,255,0.9); }
.cv-side-right .cv-side-panel .cv-contact-stacked i { color: var(--cv-accent, #f43f5e); }

/* Skill pills inside sidebar (white on dark) */
.cv-dark-side .cv-skill-pills span,
.cv-side-right .cv-side-panel .cv-skill-pills span {
    background: rgba(255,255,255,0.18);
    color: #fff;
}

/* Bar tracks inside dark sidebars */
.cv-dark-side .cv-bar-track { background: rgba(255,255,255,0.15); }
.cv-dark-side .cv-bar-fill  { background: linear-gradient(90deg, var(--cv-accent, #7c3aed), rgba(255,255,255,0.8)); }
.cv-dark-side .cv-bar-pct   { color: var(--cv-accent, #7c3aed); }
.cv-dark-side .cv-bar-label { color: rgba(255,255,255,0.9); }

.cv-side-right .cv-side-panel .cv-bar-track { background: rgba(255,255,255,0.2); }
.cv-side-right .cv-side-panel .cv-bar-fill  { background: linear-gradient(90deg, var(--cv-accent, #f43f5e), rgba(255,255,255,0.7)); }
.cv-side-right .cv-side-panel .cv-bar-label { color: rgba(255,255,255,0.9); }

/* Section headings inside dark sidebars */
.cv-dark-side .cv-sec h3 {
    color: #fff;
    font-size: 0.65rem;
    border-bottom: 1px solid rgba(255,255,255,0.2);
    padding-bottom: 4px;
    margin-bottom: 8px;
}
.cv-dark-side .cv-sec h3::after { display: none; }

.cv-side-right .cv-side-panel .cv-sec h3 { color: #fff; }
.cv-side-right .cv-side-panel .cv-sec h3::after { background: linear-gradient(90deg, var(--cv-accent, #f43f5e), transparent); }

/* cv-modern-sidebar aside section headings */
.cv-modern-sidebar .cv-aside .cv-sec h3 { color: #fff; }
.cv-modern-sidebar .cv-aside .cv-sec h3::after { background: linear-gradient(90deg, var(--cv-accent, #38bdf8), transparent); }
.cv-modern-sidebar .cv-aside .cv-bar-track { background: rgba(255,255,255,0.15); }
.cv-modern-sidebar .cv-aside .cv-bar-fill  { background: linear-gradient(90deg, var(--cv-accent, #38bdf8), rgba(255,255,255,0.7)); }
.cv-modern-sidebar .cv-aside .cv-bar-label { color: rgba(255,255,255,0.9); }
.cv-modern-sidebar .cv-aside .cv-bar-pct   { color: var(--cv-accent, #38bdf8); }
.cv-modern-sidebar .cv-aside .cv-contact-stacked { color: rgba(255,255,255,0.9); }
.cv-modern-sidebar .cv-aside .cv-contact-stacked i { color: var(--cv-accent, #38bdf8); }


/* ═══════════════════════════════════════════════════════════
   NEW UI COMPONENTS — Form sections, cards, step hero, chips
   ═══════════════════════════════════════════════════════════ */

/* Preview paper — full width auto-fit */
.cv-preview-paper {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.18), 0 8px 32px rgba(0,0,0,0.12);
    overflow: hidden;
    position: relative;
}
.cv-preview-stage .cv-page {
    transform-origin: top left;
    width: 794px;
    flex-shrink: 0;
    box-shadow: none !important;
    min-height: auto;
    display: block;
}

/* Step hero banner */
.cv-step-hero {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    margin-bottom: 20px;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border-radius: 14px;
    border: 1px solid #bfdbfe;
}
.cv-step-hero h2 {
    margin: 0 0 3px;
    font-size: 1.2rem;
    font-weight: 800;
    color: #0f4c81;
}
.cv-step-hero p {
    margin: 0;
    font-size: 0.82rem;
    color: #475569;
    line-height: 1.4;
}
.cv-step-hero-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: linear-gradient(135deg, #0f4c81, #1d6aa8);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(15,76,129,0.3);
}

/* Form sections */
.cv-form-section {
    background: #fff;
    border: 1px solid #e8edf4;
    border-radius: 14px;
    margin-bottom: 16px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(15,76,129,0.05);
}
.cv-form-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #0f4c81;
    background: linear-gradient(135deg, #f8faff, #eff6ff);
    border-bottom: 1px solid #e8edf4;
    letter-spacing: 0.01em;
}
.cv-form-section-title i { color: #0f4c81; font-size: 0.85rem; }
.cv-form-section > .cv-field-grid,
.cv-form-section > .cv-field-group,
.cv-form-section > .cv-field-wrap,
.cv-form-section > .cv-suggestions-row {
    padding: 14px 16px;
}
.cv-form-section > .cv-field-grid { padding: 14px 16px; }

/* Collapsible sections */
.cv-collapsible-toggle {
    cursor: pointer;
    user-select: none;
    justify-content: space-between;
    border-bottom: none;
    transition: background 0.15s;
}
.cv-collapsible-toggle:hover { background: linear-gradient(135deg, #eff6ff, #dbeafe); }
.cv-chevron { transition: transform 0.25s ease; color: #64748b; }
.cv-collapsed .cv-chevron { transform: rotate(-90deg); }
.cv-collapsible-body { padding: 14px 16px; }
.cv-collapsed .cv-collapsible-body { display: none; }

/* Card rows (edu, exp, cert, etc.) */
.cv-card-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px !important;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9) !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    margin-bottom: 10px !important;
    position: relative;
}
.cv-row-icon-badge {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: linear-gradient(135deg, #059669, #10b981);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    flex-shrink: 0;
    margin-top: 2px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.cv-row-fields { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.cv-field-wrap { display: flex; flex-direction: column; gap: 4px; }
.cv-lbl-sm {
    font-size: 0.72rem;
    font-weight: 700;
    color: #475569;
    letter-spacing: 0.01em;
}
.cv-opt-tag {
    font-size: 0.65rem;
    font-weight: 500;
    color: #94a3b8;
    background: #f1f5f9;
    padding: 1px 6px;
    border-radius: 4px;
    margin-left: 4px;
}
.cv-req-badge {
    font-size: 0.65rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, #0f4c81, #1d6aa8);
    padding: 2px 7px;
    border-radius: 4px;
    margin-left: 6px;
    letter-spacing: 0.02em;
}
.cv-field-hint {
    font-size: 0.72rem;
    color: #94a3b8;
    margin-top: 3px;
    display: block;
}
.cv-lbl-icon {
    color: #0f4c81;
    margin-right: 5px;
    font-size: 0.8rem;
    width: 14px;
}

/* Add row bar */
.cv-add-row-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 4px;
    padding: 4px 0;
}
.cv-add-card-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 2px dashed #93c5fd;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    color: #0f4c81;
    font-weight: 700;
    font-size: 0.88rem;
    padding: 10px 18px;
    border-radius: 10px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.15s;
}
.cv-add-card-btn:hover {
    border-color: #0f4c81;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    transform: translateY(-1px);
}
.cv-add-card-btn.small {
    font-size: 0.8rem;
    padding: 8px 14px;
    margin-top: 8px;
}
.cv-skip-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: none;
    background: none;
    color: #94a3b8;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    padding: 8px 4px;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.cv-skip-btn:hover { color: #64748b; }

/* Skill suggestion chips */
.cv-suggestions-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 10px 16px 14px;
    border-top: 1px solid #f1f5f9;
}
.cv-suggest-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: #64748b;
    margin-right: 2px;
}
.cv-suggest-chip {
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #0f4c81;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.12s;
}
.cv-suggest-chip:hover {
    background: #0f4c81;
    color: #fff;
    border-color: #0f4c81;
}

/* Photo upload modern */
.cv-photo-upload-modern {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cv-photo-preview-wrap {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}
.cv-photo-thumb-lg {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    border: 3px solid #e2e8f0;
    color: #94a3b8;
    font-size: 1.8rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.cv-photo-thumb-lg img { width: 100%; height: 100%; object-fit: cover; }
.cv-photo-upload-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.cv-photo-btn-modern {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    border: none;
    transition: 0.15s;
}
.cv-photo-btn-modern.primary {
    background: linear-gradient(135deg, #0f4c81, #1d6aa8);
    color: #fff;
    box-shadow: 0 2px 8px rgba(15,76,129,0.25);
}
.cv-photo-btn-modern.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(15,76,129,0.35); }
.cv-photo-btn-modern.secondary {
    background: #f1f5f9;
    color: #374151;
    border: 1px solid #e2e8f0;
}
.cv-photo-btn-modern.secondary:hover { background: #e2e8f0; }
.cv-photo-btn-modern.danger {
    background: #fff1f2;
    color: #e11d48;
    border: 1px solid #fecdd3;
}
.cv-photo-btn-modern.danger:hover { background: #ffe4e6; }
.cv-photo-hint {
    font-size: 0.7rem;
    color: #94a3b8;
    margin: 6px 0 0;
    width: 100%;
}
.cv-photo-url-wrap { display: flex; flex-direction: column; gap: 4px; }

/* Profile banner enhanced */
.cv-profile-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    border: 1px solid #86efac;
    border-radius: 12px;
    font-size: 0.82rem;
}
.cv-profile-banner-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, #059669, #10b981);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}
.cv-profile-banner-text strong { display: block; color: #065f46; margin-bottom: 2px; font-size: 0.82rem; }
.cv-profile-banner-text span { color: #374151; font-size: 0.78rem; }
.cv-profile-refill {
    margin-left: auto;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid #059669;
    background: #fff;
    color: #059669;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}
.cv-profile-refill:hover { background: #059669; color: #fff; }

/* CV contact item (used in templates) */
.cv-contact-item {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.7rem;
    color: rgba(255,255,255,0.88);
    line-height: 1.3;
    word-break: break-all;
}
.cv-contact-item i {
    color: rgba(255,255,255,0.55);
    width: 12px;
    flex-shrink: 0;
    font-size: 0.65rem;
}

/* Responsive tweaks */
@media (max-width: 700px) {
    .cv-field-grid { grid-template-columns: 1fr; }
    .cv-field-row { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   ✨ CV PRO — ENHANCED MOBILE & DESKTOP UX — v2026.05
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Desktop: Polished form fields ── */
.cv-field {
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s !important;
}
.cv-field:hover {
    border-color: #93c5fd !important;
    background: #fff !important;
}
.cv-field:focus {
    border-color: var(--uog-blue) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(15,76,129,0.12) !important;
    outline: none !important;
}
textarea.cv-field {
    resize: vertical !important;
    min-height: 88px !important;
    line-height: 1.55 !important;
}

/* ── Step nav: better active indicator ── */
.cv-step-item {
    transition: opacity 0.15s !important;
}
.cv-step-item:hover .cv-step-circle {
    background: #dbeafe !important;
    color: #2563eb !important;
}
.cv-step-item.active .cv-step-circle {
    background: linear-gradient(135deg, #0f4c81, #1d6aa8) !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(15,76,129,0.35) !important;
    transform: scale(1.08) !important;
}
.cv-step-item.done .cv-step-circle {
    background: #10b981 !important;
    color: #fff !important;
}

/* ── Repeat rows: better visual ── */
.cv-repeat-row {
    transition: box-shadow 0.15s, border-color 0.15s !important;
}
.cv-repeat-row:hover {
    border-color: #93c5fd !important;
    box-shadow: 0 2px 8px rgba(15,76,129,0.08) !important;
}
.cv-row-remove {
    transition: background 0.15s, color 0.15s, transform 0.15s !important;
}
.cv-row-remove:hover {
    background: #fee2e2 !important;
    color: #dc2626 !important;
    transform: scale(1.1) !important;
}

/* ── Template cards: better hover ── */
.cv-tpl-card {
    transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s !important;
}
.cv-tpl-card:hover {
    transform: translateY(-4px) !important;
    border-color: #93c5fd !important;
    box-shadow: 0 10px 28px rgba(15,76,129,0.14) !important;
}
.cv-tpl-card.selected {
    border-color: var(--uog-blue) !important;
    box-shadow: 0 0 0 2px var(--uog-blue), 0 8px 24px rgba(15,76,129,0.18) !important;
}

/* ── Buttons: micro-interactions ── */
.cv-btn-next {
    transition: transform 0.15s, box-shadow 0.15s !important;
}
.cv-btn-next:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(15,76,129,0.38) !important;
}
.cv-btn-next:active {
    transform: scale(0.97) !important;
}
.cv-btn-back {
    transition: background 0.15s, border-color 0.15s !important;
}
.cv-btn-back:hover {
    background: #f1f5f9 !important;
    border-color: #93c5fd !important;
}
.cv-btn-download {
    transition: transform 0.15s, box-shadow 0.15s !important;
}
.cv-btn-download:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(245,130,32,0.5) !important;
}
.cv-btn-download:active {
    transform: scale(0.97) !important;
}

/* ── Toolbar: better desktop layout ── */
@media (min-width: 769px) {
    .cv-toolbar {
        padding: 12px 20px !important;
        gap: 16px !important;
    }
    .cv-toolbar-back {
        padding: 9px 16px !important;
        font-size: 0.9rem !important;
        border-radius: 10px !important;
    }
    .cv-toolbar-icon {
        width: 44px !important;
        height: 44px !important;
        border-radius: 12px !important;
        font-size: 1.2rem !important;
    }
    .cv-toolbar-title h1 {
        font-size: 1.2rem !important;
    }
    .cv-toolbar-title p {
        font-size: 0.8rem !important;
    }
    .cv-tab-btn {
        padding: 8px 18px !important;
        font-size: 0.88rem !important;
        border-radius: 8px !important;
        transition: background 0.15s, color 0.15s !important;
    }
    .cv-tab-btn.active {
        background: #fff !important;
        color: var(--uog-blue) !important;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
    }
}

/* ── Progress strip: better visual ── */
.cv-progress-fill {
    transition: width 0.4s cubic-bezier(0.4,0,0.2,1) !important;
}
.cv-progress-track {
    border-radius: 99px !important;
    overflow: hidden !important;
}

/* ── Form scroll: better padding & scrollbar ── */
.cv-form-scroll {
    scrollbar-width: thin !important;
    scrollbar-color: #d1d9e6 transparent !important;
}
.cv-form-scroll::-webkit-scrollbar {
    width: 5px !important;
}
.cv-form-scroll::-webkit-scrollbar-thumb {
    background: #d1d9e6 !important;
    border-radius: 5px !important;
}
.cv-form-scroll::-webkit-scrollbar-thumb:hover {
    background: #93c5fd !important;
}

/* ── Preview stage: better scrollbar ── */
.cv-preview-stage {
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,255,255,0.2) transparent !important;
}
.cv-preview-stage::-webkit-scrollbar {
    width: 5px !important;
}
.cv-preview-stage::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.2) !important;
    border-radius: 5px !important;
}

/* ── Mobile: Enhanced UX ── */
@media (max-width: 768px) {

    /* Toolbar: UOG branded */
    .cv-toolbar {
        background: linear-gradient(125deg, #0a2d52 0%, #0f4c81 60%, #1a6eb5 100%) !important;
        padding: 10px 14px !important;
        min-height: 54px !important;
        box-shadow: 0 4px 16px rgba(15,76,129,0.3) !important;
    }
    .cv-toolbar-back {
        padding: 8px 12px !important;
        font-size: 0.82rem !important;
        border-radius: 10px !important;
        background: rgba(255,255,255,0.15) !important;
        border: 1px solid rgba(255,255,255,0.25) !important;
        min-height: 36px !important;
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }
    .cv-toolbar-back:active {
        background: rgba(255,255,255,0.25) !important;
    }
    .cv-toolbar-icon {
        width: 36px !important;
        height: 36px !important;
        border-radius: 10px !important;
        background: rgba(255,255,255,0.18) !important;
    }
    .cv-toolbar-title h1 {
        font-size: 1rem !important;
        font-weight: 800 !important;
        color: #fff !important;
    }

    /* Progress strip */
    .cv-progress-strip {
        padding: 8px 14px !important;
        margin: 0 !important;
        border-radius: 0 !important;
        background: #fff !important;
        border-bottom: 1px solid #e4e6eb !important;
    }
    .cv-step-badge {
        font-size: 0.78rem !important;
        font-weight: 700 !important;
        color: var(--uog-blue) !important;
        white-space: nowrap !important;
    }
    .cv-progress-track {
        height: 6px !important;
    }

    /* Step nav: pill style */
    .cv-step-nav {
        padding: 10px 12px 0 !important;
        gap: 4px !important;
        background: #fff !important;
        border-bottom: 1px solid #e4e6eb !important;
    }
    .cv-step-item {
        padding: 0 8px 10px !important;
        min-width: 56px !important;
        flex: 1 !important;
    }
    .cv-step-circle {
        width: 26px !important;
        height: 26px !important;
        font-size: 0.75rem !important;
        margin: 0 auto 4px !important;
    }
    .cv-step-name {
        font-size: 0.62rem !important;
        font-weight: 600 !important;
    }
    .cv-step-item.active .cv-step-circle {
        transform: scale(1.1) !important;
    }

    /* Form panel */
    .cv-form-panel {
        background: #f4f6f9 !important;
    }

    /* Form scroll */
    .cv-form-scroll {
        padding: 14px 14px 100px !important;
    }

    /* Section head */
    .cv-section-head h2 {
        font-size: 1.2rem !important;
        font-weight: 800 !important;
        color: #050505 !important;
    }
    .cv-section-head p {
        font-size: 0.85rem !important;
        color: #65676b !important;
    }

    /* Profile banner */
    .cv-profile-banner {
        border-radius: 14px !important;
        padding: 14px !important;
    }
    .cv-profile-refill {
        padding: 8px 14px !important;
        font-size: 0.8rem !important;
        border-radius: 10px !important;
        min-height: 36px !important;
    }

    /* Tip box */
    .cv-tip-box {
        border-radius: 12px !important;
        padding: 12px 14px !important;
    }

    /* Fields */
    .cv-field {
        height: 48px !important;
        padding: 0 14px !important;
        font-size: 0.95rem !important;
        border-radius: 12px !important;
        border: 1.5px solid #d1d9e6 !important;
    }
    .cv-field:focus {
        border-color: var(--uog-blue) !important;
        box-shadow: 0 0 0 3px rgba(15,76,129,0.1) !important;
    }
    textarea.cv-field {
        height: auto !important;
        min-height: 90px !important;
        padding: 12px 14px !important;
    }
    .cv-lbl {
        font-size: 0.8rem !important;
        font-weight: 700 !important;
        color: #374151 !important;
        margin-bottom: 6px !important;
    }

    /* Repeat rows */
    .cv-repeat-row {
        border-radius: 14px !important;
        padding: 14px !important;
        background: #fff !important;
        border: 1.5px solid #e2e8f0 !important;
        margin-bottom: 12px !important;
    }
    .cv-row-remove {
        width: 30px !important;
        height: 30px !important;
        border-radius: 8px !important;
        top: 10px !important;
        right: 10px !important;
    }

    /* Add button */
    .cv-link-add {
        font-size: 0.88rem !important;
        padding: 10px 0 !important;
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    /* Footer */
    .cv-form-footer {
        padding: 12px 14px !important;
        background: #fff !important;
        border-top: 1px solid #e4e6eb !important;
        box-shadow: 0 -4px 16px rgba(0,0,0,0.06) !important;
    }
    .cv-btn-back {
        height: 46px !important;
        padding: 0 18px !important;
        font-size: 0.88rem !important;
        border-radius: 12px !important;
    }
    .cv-btn-next {
        height: 46px !important;
        padding: 0 22px !important;
        font-size: 0.92rem !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 14px rgba(15,76,129,0.3) !important;
    }

    /* Mobile bottom bar */
    .cv-mobile-bar {
        background: linear-gradient(125deg, #0a2d52 0%, #0f4c81 100%) !important;
        padding: 8px 12px env(safe-area-inset-bottom, 8px) !important;
        box-shadow: 0 -4px 20px rgba(15,76,129,0.3) !important;
        border-top: 1px solid rgba(255,255,255,0.1) !important;
    }
    .cv-mobile-bar-btn {
        padding: 8px 6px !important;
        border-radius: 12px !important;
        font-size: 0.6rem !important;
        font-weight: 700 !important;
        letter-spacing: 0.03em !important;
        min-height: 52px !important;
        transition: background 0.15s, transform 0.15s !important;
    }
    .cv-mobile-bar-btn i {
        font-size: 1.2rem !important;
        margin-bottom: 2px !important;
    }
    .cv-mobile-bar-btn:active {
        transform: scale(0.92) !important;
        background: rgba(255,255,255,0.2) !important;
    }
    .cv-mobile-bar-btn.active {
        background: rgba(255,255,255,0.18) !important;
        color: #fff !important;
    }
    .cv-mobile-bar-btn.accent {
        color: #fbbf24 !important;
    }
    .cv-mobile-bar-btn.accent i {
        color: #fbbf24 !important;
        filter: drop-shadow(0 0 4px rgba(251,191,36,0.5)) !important;
    }

    /* Preview panel overlay */
    .cv-preview-panel {
        background: rgba(8,42,71,0.96) !important;
        backdrop-filter: blur(8px) !important;
    }
    .cv-preview-head {
        padding: 14px 16px !important;
        font-size: 0.85rem !important;
        font-weight: 700 !important;
        background: linear-gradient(135deg, #082a47, #0f4c81) !important;
        border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    }
    .cv-preview-close-btn {
        padding: 8px 14px !important;
        font-size: 0.82rem !important;
        border-radius: 10px !important;
        background: rgba(255,255,255,0.15) !important;
        border: 1px solid rgba(255,255,255,0.25) !important;
        min-height: 36px !important;
        transition: background 0.15s !important;
    }
    .cv-preview-close-btn:active {
        background: rgba(255,255,255,0.25) !important;
    }
    .cv-preview-stage {
        padding: 14px 10px !important;
        background: #dce6f2 !important;
    }

    /* Design panel on mobile */
    .cv-design-panel {
        padding: 14px !important;
        background: #f4f6f9 !important;
    }
    .cv-design-intro h2 {
        font-size: 1.1rem !important;
        font-weight: 800 !important;
    }
    .cv-filter-row {
        gap: 6px !important;
        flex-wrap: wrap !important;
    }
    .cv-pill {
        padding: 7px 14px !important;
        font-size: 0.82rem !important;
        border-radius: 20px !important;
        min-height: 36px !important;
    }
    .cv-pill.active {
        background: #eff6ff !important;
        border-color: var(--uog-blue) !important;
        color: var(--uog-blue) !important;
    }
    .cv-tpl-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }
    .cv-tpl-card {
        border-radius: 14px !important;
    }
    .cv-tpl-card-name {
        font-size: 0.8rem !important;
        font-weight: 700 !important;
        padding: 8px 10px 4px !important;
    }
    .cv-tpl-card-preview {
        height: 140px !important;
        border-radius: 8px !important;
        margin: 0 8px 8px !important;
    }

    /* PDF loading overlay */
    .cv-pdf-loading-box {
        border-radius: 20px !important;
        padding: 28px 24px !important;
        margin: 0 20px !important;
    }
    .cv-pdf-loading-box i {
        font-size: 2.2rem !important;
    }
    .cv-pdf-loading-box p {
        font-size: 0.95rem !important;
    }
}

/* ── Small phones (480px): tighter layout ── */
@media (max-width: 480px) {
    .cv-toolbar {
        padding: 8px 10px !important;
        min-height: 50px !important;
    }
    .cv-toolbar-back {
        padding: 7px 10px !important;
        font-size: 0.78rem !important;
    }
    .cv-toolbar-title h1 {
        font-size: 0.9rem !important;
    }
    .cv-step-item {
        min-width: 48px !important;
        flex: 1 !important;
    }
    .cv-step-circle {
        width: 24px !important;
        height: 24px !important;
        font-size: 0.7rem !important;
    }
    .cv-step-name {
        font-size: 0.58rem !important;
    }
    .cv-form-scroll {
        padding: 12px 12px 100px !important;
    }
    .cv-field {
        height: 46px !important;
        font-size: 0.92rem !important;
    }
    .cv-btn-next {
        height: 44px !important;
        font-size: 0.88rem !important;
        padding: 0 18px !important;
    }
    .cv-btn-back {
        height: 44px !important;
        font-size: 0.85rem !important;
        padding: 0 14px !important;
    }
    .cv-tpl-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
    .cv-tpl-card-preview {
        height: 120px !important;
    }
    .cv-mobile-bar-btn {
        font-size: 0.56rem !important;
        min-height: 48px !important;
    }
    .cv-mobile-bar-btn i {
        font-size: 1.1rem !important;
    }
}

/* ── Focus accessibility ── */
.cv-field:focus-visible,
.cv-btn-next:focus-visible,
.cv-btn-back:focus-visible,
.cv-btn-download:focus-visible,
.cv-step-item:focus-visible {
    outline: 2px solid var(--uog-blue) !important;
    outline-offset: 2px !important;
}

/* ── Smooth transitions ── */
.cv-app * {
    -webkit-tap-highlight-color: transparent;
}


/* ═══════════════════════════════════════════════════════════
   AI Image Generation — Full App Styles
   ═══════════════════════════════════════════════════════════ */

#list-container.ai-img-active {
    width: 100%; max-width: none; margin: 0; padding: 0; overflow: hidden;
}

.aig-app {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 56px);
    background: linear-gradient(165deg, #fdf2f8 0%, #fce7f3 30%, #eff6ff 100%);
    overflow: hidden;
    font-family: 'Inter', 'Segoe UI', sans-serif;
}

/* ── Toolbar ── */
.aig-toolbar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 18px;
    background: linear-gradient(125deg, #831843 0%, #be185d 45%, #ec4899 100%);
    box-shadow: 0 4px 20px rgba(190, 24, 93, 0.35);
    flex-shrink: 0;
    flex-wrap: wrap;
}
.aig-back-btn {
    border: 1px solid rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.15);
    color: #fff;
    font-weight: 600;
    font-size: 0.88rem;
    padding: 8px 14px;
    border-radius: 10px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.2s;
    white-space: nowrap;
}
.aig-back-btn:hover { background: rgba(255,255,255,0.25); }
.aig-toolbar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}
.aig-toolbar-icon {
    width: 40px; height: 40px;
    border-radius: 11px;
    background: rgba(255,255,255,0.2);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}
.aig-toolbar-brand h1 {
    margin: 0; font-size: 1.1rem; font-weight: 800; color: #fff; letter-spacing: -0.02em;
}
.aig-toolbar-brand p {
    margin: 2px 0 0; font-size: 0.75rem; color: rgba(255,255,255,0.8);
}
.aig-toolbar-right { margin-left: auto; }
.aig-powered {
    font-size: 0.72rem;
    color: rgba(255,255,255,0.75);
    background: rgba(255,255,255,0.12);
    padding: 5px 12px;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,0.2);
    white-space: nowrap;
}
.aig-powered strong { color: #fff; }

/* ── Workspace ── */
.aig-workspace {
    display: grid;
    grid-template-columns: 360px 1fr;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* ── Controls (left panel) ── */
.aig-controls {
    background: #fff;
    border-right: 1px solid #fce7f3;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.aig-controls-scroll {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 18px 18px 24px;
    scrollbar-width: thin;
    scrollbar-color: #ec4899 #fce7f3;
}
.aig-controls-scroll::-webkit-scrollbar { width: 5px; }
.aig-controls-scroll::-webkit-scrollbar-track { background: #fce7f3; }
.aig-controls-scroll::-webkit-scrollbar-thumb { background: #ec4899; border-radius: 10px; }

.aig-section { margin-bottom: 20px; }
.aig-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 700;
    color: #374151;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.aig-label i { color: #ec4899; }
.aig-req { color: #ef4444; }
.aig-opt { font-weight: 400; color: #9ca3af; font-size: 0.75rem; }

.aig-textarea {
    width: 100%;
    border: 1.5px solid #fce7f3;
    background: #fdf2f8;
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 0.9rem;
    font-family: inherit;
    color: #1e293b;
    resize: vertical;
    min-height: 110px;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
    line-height: 1.55;
}
.aig-textarea:focus {
    outline: none;
    border-color: #ec4899;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(236, 72, 153, 0.12);
}
.aig-input {
    width: 100%;
    border: 1.5px solid #fce7f3;
    background: #fdf2f8;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.88rem;
    font-family: inherit;
    color: #1e293b;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}
.aig-input:focus {
    outline: none;
    border-color: #ec4899;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(236, 72, 153, 0.12);
}
.aig-prompt-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 6px;
}
.aig-char { font-size: 0.72rem; color: #9ca3af; }
.aig-surprise-btn {
    border: 1px solid #fce7f3;
    background: #fdf2f8;
    color: #be185d;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.15s;
    display: flex; align-items: center; gap: 5px;
}
.aig-surprise-btn:hover { background: #fce7f3; border-color: #ec4899; }

/* Style grid */
.aig-style-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
}
.aig-style-btn {
    border: 1.5px solid #fce7f3;
    background: #fdf2f8;
    color: #374151;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 8px 4px;
    border-radius: 9px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.15s;
    text-align: center;
}
.aig-style-btn:hover { border-color: #ec4899; color: #be185d; background: #fff; }
.aig-style-btn.active {
    border-color: #ec4899;
    background: linear-gradient(135deg, #fce7f3, #fdf2f8);
    color: #be185d;
    box-shadow: 0 2px 8px rgba(236,72,153,0.15);
}

/* Size row */
.aig-size-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 7px;
}
.aig-size-btn {
    border: 1.5px solid #fce7f3;
    background: #fdf2f8;
    color: #374151;
    padding: 8px 4px;
    border-radius: 9px;
    cursor: pointer;
    font-family: inherit;
    transition: 0.15s;
    text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.aig-size-btn:hover { border-color: #ec4899; background: #fff; }
.aig-size-btn.active {
    border-color: #ec4899;
    background: linear-gradient(135deg, #fce7f3, #fdf2f8);
    box-shadow: 0 2px 8px rgba(236,72,153,0.15);
}
.aig-size-ratio { font-size: 0.72rem; font-weight: 800; color: #be185d; }
.aig-size-label { font-size: 0.6rem; font-weight: 600; color: #6b7280; }

/* Generate button */
.aig-generate-btn {
    width: 100%;
    background: linear-gradient(135deg, #be185d, #ec4899);
    color: #fff;
    border: none;
    padding: 14px 20px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 1rem;
    cursor: pointer;
    font-family: inherit;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    box-shadow: 0 6px 20px rgba(190, 24, 93, 0.35);
    transition: transform 0.15s, box-shadow 0.15s;
    margin-top: 4px;
}
.aig-generate-btn:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(190, 24, 93, 0.45);
}
.aig-generate-btn:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }

/* ── Preview panel (right) ── */
.aig-preview-panel {
    display: flex;
    flex-direction: column;
    padding: 16px;
    gap: 14px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: #ec4899 #fce7f3;
}
.aig-preview-panel::-webkit-scrollbar { width: 5px; }
.aig-preview-panel::-webkit-scrollbar-thumb { background: #ec4899; border-radius: 10px; }

/* Result box */
.aig-result-box {
    flex: 1;
    min-height: 300px;
    background: #fff;
    border-radius: 16px;
    border: 1.5px solid #fce7f3;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(190, 24, 93, 0.08);
    position: relative;
}

/* Placeholder */
.aig-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px;
    text-align: center;
}
.aig-placeholder-icon {
    width: 72px; height: 72px;
    border-radius: 20px;
    background: linear-gradient(135deg, #fce7f3, #fdf2f8);
    display: flex; align-items: center; justify-content: center;
    font-size: 2rem;
    color: #ec4899;
    margin-bottom: 6px;
}
.aig-placeholder p { margin: 0; font-weight: 700; color: #374151; font-size: 1rem; }
.aig-placeholder span { font-size: 0.82rem; color: #9ca3af; }

/* Loading */
.aig-loading {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 40px;
    text-align: center;
}
.aig-spinner-wrap {
    position: relative;
    width: 56px; height: 56px;
    flex-shrink: 0;
}
.aig-spinner {
    width: 56px; height: 56px;
    border: 4px solid #fce7f3;
    border-top-color: #ec4899;
    border-radius: 50%;
    animation: aig-spin 0.8s linear infinite;
    position: absolute; top: 0; left: 0;
}
.aig-spinner-ring {
    width: 56px; height: 56px;
    border: 4px solid transparent;
    border-bottom-color: #f97316;
    border-radius: 50%;
    animation: aig-spin 1.4s linear infinite reverse;
    position: absolute; top: 0; left: 0;
}
@keyframes aig-spin { to { transform: rotate(360deg); } }
.aig-loading p { margin: 0; font-weight: 700; color: #be185d; font-size: 1rem; }
.aig-loading span { font-size: 0.8rem; color: #9ca3af; }

/* Progress bar */
.aig-progress-bar-wrap {
    width: 180px; height: 5px;
    background: #fce7f3;
    border-radius: 99px;
    overflow: hidden;
    margin-top: 4px;
}
.aig-progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #ec4899, #f97316);
    border-radius: 99px;
    transition: width 0.4s ease;
}

/* Cancel button */
.aig-cancel-btn {
    width: 100%;
    background: #fff;
    color: #be185d;
    border: 1.5px solid #fce7f3;
    padding: 11px 20px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
    font-family: inherit;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin-top: 8px;
    transition: background 0.15s;
}
.aig-cancel-btn:hover { background: #fdf2f8; }

/* Prompt hint (Roman Urdu detection) */
.aig-prompt-hint {
    margin-top: 6px;
    font-size: 0.72rem;
    color: #7c3aed;
    background: #f5f3ff;
    border: 1px solid #ede9fe;
    border-radius: 8px;
    padding: 5px 10px;
}
.aig-prompt-hint i { margin-right: 4px; }

/* Image meta bar */
.aig-img-meta {
    display: flex;
    gap: 12px;
    padding: 6px 16px;
    font-size: 0.72rem;
    color: #9ca3af;
    background: #fdf2f8;
    width: 100%;
    border-top: 1px solid #fce7f3;
    flex-wrap: wrap;
}
.aig-img-meta span { display: flex; align-items: center; gap: 4px; }
.aig-img-meta i { color: #ec4899; }

/* Image wrap */
.aig-img-wrap {
    width: 100%; height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}
.aig-img-wrap img {
    max-width: 100%;
    max-height: calc(100vh - 300px);
    object-fit: contain;
    display: block;
    border-radius: 4px;
}
.aig-img-actions {
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    background: #fff;
    border-top: 1px solid #fce7f3;
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
}
.aig-action-btn {
    border: none;
    padding: 9px 18px;
    border-radius: 9px;
    font-weight: 700;
    font-size: 0.82rem;
    cursor: pointer;
    font-family: inherit;
    display: flex; align-items: center; gap: 6px;
    transition: 0.15s;
}
.aig-download-btn { background: linear-gradient(135deg, #be185d, #ec4899); color: #fff; box-shadow: 0 3px 10px rgba(190,24,93,0.3); }
.aig-download-btn:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(190,24,93,0.4); }
.aig-regen-btn { background: #f1f5f9; color: #374151; }
.aig-regen-btn:hover { background: #e2e8f0; }
.aig-copy-btn { background: #f1f5f9; color: #374151; }
.aig-copy-btn:hover { background: #e2e8f0; }

/* History */
.aig-history-section {
    background: #fff;
    border-radius: 14px;
    border: 1.5px solid #fce7f3;
    padding: 14px 16px;
    flex-shrink: 0;
}
.aig-history-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #374151;
}
.aig-history-head i { color: #ec4899; margin-right: 5px; }
.aig-clear-btn {
    border: 1px solid #fce7f3;
    background: #fdf2f8;
    color: #be185d;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
}
.aig-clear-btn:hover { background: #fce7f3; }
.aig-history-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: 8px;
}
.aig-history-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    aspect-ratio: 1;
    background: #fce7f3;
}
.aig-history-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.2s;
}
.aig-history-item:hover img { transform: scale(1.05); }
.aig-history-overlay {
    position: absolute; inset: 0;
    background: rgba(190,24,93,0.5);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 1rem;
    opacity: 0; transition: opacity 0.2s;
}
.aig-history-item:hover .aig-history-overlay { opacity: 1; }
.aig-history-empty { font-size: 0.8rem; color: #9ca3af; margin: 0; text-align: center; padding: 8px 0; }

/* Responsive */
@media (max-width: 768px) {
    .aig-workspace { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
    .aig-controls { max-height: 50vh; }
    .aig-style-grid { grid-template-columns: repeat(4, 1fr); }
    .aig-size-row { grid-template-columns: repeat(4, 1fr); }
    .aig-toolbar-right { display: none; }
}


/* ═══════════════════════════════════════════════════════════
   PLAGIARISM CHECKER — Turnitin Style
   ═══════════════════════════════════════════════════════════ */

#list-container.plg-active { width:100%; max-width:none; margin:0; padding:0; overflow:hidden; }

.plg-app {
    display:flex; flex-direction:column;
    height:calc(100vh - 56px);
    background:#f8fafc;
    overflow:hidden;
    font-family:'Inter','Segoe UI',sans-serif;
}

/* ── Toolbar ── */
.plg-toolbar {
    display:flex; align-items:center; gap:14px; padding:10px 18px;
    background:linear-gradient(125deg,#1e1b4b 0%,#3730a3 50%,#4f46e5 100%);
    box-shadow:0 3px 16px rgba(67,56,202,0.4); flex-shrink:0; flex-wrap:wrap;
}
.plg-back-btn {
    border:1px solid rgba(255,255,255,0.25); background:rgba(255,255,255,0.12);
    color:#fff; font-weight:600; font-size:0.85rem; padding:7px 13px;
    border-radius:9px; cursor:pointer; font-family:inherit; transition:0.2s; white-space:nowrap;
}
.plg-back-btn:hover { background:rgba(255,255,255,0.22); }
.plg-toolbar-brand { display:flex; align-items:center; gap:12px; flex:1; }
.plg-toolbar-icon {
    width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,0.18);
    color:#fff; display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0;
}
.plg-toolbar-brand h1 { margin:0; font-size:1.05rem; font-weight:800; color:#fff; letter-spacing:-0.02em; }
.plg-toolbar-brand p  { margin:2px 0 0; font-size:0.72rem; color:rgba(255,255,255,0.75); }
.plg-powered-badge {
    font-size:0.7rem; color:rgba(255,255,255,0.8); background:rgba(255,255,255,0.1);
    padding:5px 12px; border-radius:20px; border:1px solid rgba(255,255,255,0.18);
    display:flex; align-items:center; gap:5px; white-space:nowrap;
}

/* ── Layout ── */
.plg-layout { display:grid; grid-template-columns:340px 1fr; flex:1; min-height:0; overflow:hidden; }

/* ── Left column ── */
.plg-left-col { background:#fff; border-right:1px solid #e2e8f0; display:flex; flex-direction:column; overflow:hidden; }
.plg-left-scroll { flex:1; overflow-y:auto; padding:16px; scrollbar-width:thin; scrollbar-color:#4f46e5 #e0e7ff; }
.plg-left-scroll::-webkit-scrollbar { width:4px; }
.plg-left-scroll::-webkit-scrollbar-thumb { background:#4f46e5; border-radius:10px; }

/* Input card */
.plg-input-card { background:#fff; border:1.5px solid #e2e8f0; border-radius:14px; overflow:hidden; margin-bottom:14px; }
.plg-input-tabs { display:flex; background:#f8fafc; border-bottom:1px solid #e2e8f0; }
.plg-itab {
    flex:1; border:none; background:transparent; color:#64748b; font-size:0.8rem; font-weight:700;
    padding:11px 8px; cursor:pointer; font-family:inherit; transition:0.15s;
    display:flex; align-items:center; justify-content:center; gap:6px; border-bottom:2px solid transparent;
}
.plg-itab:hover { color:#4f46e5; background:#f0f0ff; }
.plg-itab.active { color:#4f46e5; background:#fff; border-bottom-color:#4f46e5; }

.plg-doc-textarea {
    width:100%; border:none; outline:none; resize:none; padding:14px 16px;
    font-size:0.88rem; font-family:inherit; color:#1e293b; line-height:1.65;
    min-height:200px; background:#fff; box-sizing:border-box;
}
.plg-doc-footer {
    display:flex; justify-content:space-between; align-items:center;
    padding:8px 14px; background:#f8fafc; border-top:1px solid #e2e8f0;
}
.plg-doc-stats { display:flex; gap:10px; }
.plg-doc-stats span { font-size:0.7rem; color:#94a3b8; font-weight:600; }
.plg-clear-btn { border:1px solid #e2e8f0; background:#fff; color:#64748b; font-size:0.7rem; font-weight:700; padding:4px 10px; border-radius:6px; cursor:pointer; font-family:inherit; transition:0.15s; display:flex; align-items:center; gap:4px; }
.plg-clear-btn:hover { background:#fee2e2; color:#dc2626; border-color:#fecaca; }

/* Drop zone */
.plg-dropzone {
    margin:14px; border:2px dashed #c7d2fe; background:#f5f3ff; border-radius:12px;
    padding:28px 16px; text-align:center; cursor:pointer; transition:0.2s;
}
.plg-dropzone:hover, .plg-dropzone.drag { border-color:#4f46e5; background:#eef2ff; }
.plg-dz-icon { font-size:2rem; color:#6366f1; margin-bottom:8px; }
.plg-dropzone p { margin:0 0 4px; font-weight:700; color:#374151; font-size:0.88rem; }
.plg-dropzone span { font-size:0.72rem; color:#9ca3af; }
.plg-file-info-bar { display:flex; align-items:center; gap:8px; margin:0 14px 14px; font-size:0.8rem; color:#374151; background:#f0fdf4; padding:8px 12px; border-radius:8px; border:1px solid #bbf7d0; }

/* Submit button */
.plg-submit-btn {
    width:100%; background:linear-gradient(135deg,#3730a3,#4f46e5); color:#fff;
    border:none; padding:13px 20px; border-radius:12px; font-weight:800; font-size:0.95rem;
    cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; gap:9px;
    box-shadow:0 5px 18px rgba(79,70,229,0.4); transition:0.15s; margin-bottom:14px;
}
.plg-submit-btn:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 7px 22px rgba(79,70,229,0.5); }
.plg-submit-btn:disabled { opacity:0.65; cursor:not-allowed; transform:none; }

/* Tips card */
.plg-tips-card { background:#f8fafc; border:1px solid #e2e8f0; border-radius:12px; padding:14px 16px; }
.plg-tips-head { font-size:0.78rem; font-weight:800; color:#374151; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.plg-tips-head i { color:#f59e0b; }
.plg-tips-list { margin:0; padding-left:16px; font-size:0.75rem; color:#64748b; line-height:1.7; }

/* ── Right column ── */
.plg-right-col { display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; background:#f1f5f9; scrollbar-width:thin; scrollbar-color:#4f46e5 #e0e7ff; }
.plg-right-col::-webkit-scrollbar { width:5px; }
.plg-right-col::-webkit-scrollbar-thumb { background:#4f46e5; border-radius:10px; }

/* Empty state */
.plg-empty-state {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:60px 40px; text-align:center;
}
.plg-empty-icon { width:80px; height:80px; border-radius:22px; background:linear-gradient(135deg,#eef2ff,#e0e7ff); display:flex; align-items:center; justify-content:center; font-size:2.2rem; color:#6366f1; margin-bottom:16px; }
.plg-empty-state h3 { margin:0 0 8px; font-size:1.1rem; font-weight:800; color:#1e293b; }
.plg-empty-state p { margin:0 0 20px; font-size:0.88rem; color:#64748b; line-height:1.6; }
.plg-empty-features { display:grid; grid-template-columns:1fr 1fr; gap:8px; text-align:left; }
.plg-ef-item { font-size:0.78rem; color:#374151; display:flex; align-items:center; gap:6px; }
.plg-ef-item i { color:#10b981; }

/* Checking state */
.plg-checking-state {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:40px; text-align:center; gap:14px;
}
.plg-check-anim { position:relative; width:80px; height:80px; margin-bottom:8px; }
.plg-check-ring {
    position:absolute; border-radius:50%; border:3px solid transparent; animation:plg-spin 1.5s linear infinite;
}
.plg-ring1 { inset:0; border-top-color:#4f46e5; animation-duration:1.2s; }
.plg-ring2 { inset:8px; border-right-color:#6366f1; animation-duration:1.8s; animation-direction:reverse; }
.plg-ring3 { inset:16px; border-bottom-color:#818cf8; animation-duration:2.4s; }
.plg-check-icon { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:1.4rem; color:#4f46e5; }
@keyframes plg-spin { to { transform:rotate(360deg); } }
.plg-checking-state h3 { margin:0; font-size:1rem; font-weight:800; color:#1e293b; }
.plg-checking-state p  { margin:0; font-size:0.82rem; color:#64748b; }
.plg-check-progress { width:220px; height:5px; background:#e0e7ff; border-radius:99px; overflow:hidden; }
.plg-check-bar { height:100%; width:0%; background:linear-gradient(90deg,#4f46e5,#818cf8); border-radius:99px; transition:width 0.3s ease; }
.plg-check-steps { display:flex; gap:6px; }
.plg-cstep { font-size:0.68rem; font-weight:700; padding:4px 10px; border-radius:20px; background:#e0e7ff; color:#6366f1; display:flex; align-items:center; gap:4px; transition:0.2s; }
.plg-cstep.active { background:#4f46e5; color:#fff; }
.plg-cstep.done { background:#10b981; color:#fff; }

/* Results state */
.plg-results-state { display:flex; flex-direction:column; gap:0; }

/* Result header bar */
.plg-result-header {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:12px 20px; background:#fff; border-bottom:1px solid #e2e8f0; flex-wrap:wrap;
}
.plg-result-title { display:flex; align-items:center; gap:8px; font-size:0.88rem; font-weight:700; color:#1e293b; }
.plg-result-title i { color:#4f46e5; }
.plg-result-actions { display:flex; gap:8px; }
.plg-action-btn {
    border:1px solid #e2e8f0; background:#fff; color:#374151; font-size:0.78rem; font-weight:700;
    padding:7px 14px; border-radius:8px; cursor:pointer; font-family:inherit; transition:0.15s;
    display:flex; align-items:center; gap:5px;
}
.plg-action-btn:hover { background:#f8fafc; border-color:#c7d2fe; color:#4f46e5; }
.plg-recheck-btn { background:#eef2ff; border-color:#c7d2fe; color:#4f46e5; }

/* Score row */
.plg-score-row { display:flex; gap:0; background:#fff; border-bottom:1px solid #e2e8f0; }

/* Gauge card */
.plg-gauge-card {
    width:200px; flex-shrink:0; padding:20px 16px; display:flex; flex-direction:column;
    align-items:center; border-right:1px solid #e2e8f0; transition:0.3s;
}
.plg-gc-red    { background:linear-gradient(180deg,#fff5f5,#fff); }
.plg-gc-orange { background:linear-gradient(180deg,#fff7ed,#fff); }
.plg-gc-yellow { background:linear-gradient(180deg,#fffbeb,#fff); }
.plg-gc-green  { background:linear-gradient(180deg,#f0fdf4,#fff); }
.plg-gauge-wrap { position:relative; width:160px; height:100px; }
.plg-gauge-svg { width:100%; height:100%; }
.plg-gauge-svg path { transition:stroke-dashoffset 1.2s cubic-bezier(0.4,0,0.2,1); }
.plg-gauge-center { position:absolute; bottom:0; left:50%; transform:translateX(-50%); text-align:center; }
.plg-gauge-pct { font-size:1.6rem; font-weight:900; color:#1e293b; line-height:1; }
.plg-gauge-lbl { font-size:0.65rem; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:0.06em; }
.plg-gauge-verdict { font-size:0.72rem; color:#64748b; text-align:center; margin-top:8px; line-height:1.4; font-weight:600; }

/* Stats column */
.plg-stats-col { flex:1; padding:16px 20px; display:flex; flex-direction:column; gap:12px; justify-content:center; }
.plg-stat-row { display:flex; align-items:center; gap:12px; }
.plg-stat-icon { width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:0.9rem; flex-shrink:0; }
.plg-stat-info { flex:1; min-width:0; }
.plg-stat-label { font-size:0.72rem; font-weight:700; color:#374151; margin-bottom:4px; }
.plg-stat-bar-wrap { height:6px; background:#f1f5f9; border-radius:99px; overflow:hidden; }
.plg-stat-bar { height:100%; width:0%; border-radius:99px; transition:width 0.8s cubic-bezier(0.4,0,0.2,1); }
.plg-stat-pct { font-size:0.82rem; font-weight:800; min-width:36px; text-align:right; }

/* Document view */
.plg-doc-section { background:#fff; margin:0; border-bottom:1px solid #e2e8f0; }
.plg-doc-section-head {
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px;
    padding:12px 20px; background:#f8fafc; border-bottom:1px solid #e2e8f0;
    font-size:0.78rem; font-weight:800; color:#374151;
}
.plg-doc-section-head i { color:#4f46e5; margin-right:4px; }
.plg-legend-row { display:flex; gap:10px; flex-wrap:wrap; }
.plg-legend-item { display:flex; align-items:center; gap:4px; font-size:0.68rem; font-weight:700; color:#64748b; }
.plg-leg-dot { width:10px; height:10px; border-radius:3px; display:inline-block; }
.plg-leg-red    .plg-leg-dot { background:#ef4444; }
.plg-leg-orange .plg-leg-dot { background:#f97316; }
.plg-leg-blue   .plg-leg-dot { background:#3b82f6; }
.plg-leg-green  .plg-leg-dot { background:#10b981; }

.plg-doc-view {
    padding:20px 24px; font-size:0.9rem; line-height:1.9; color:#1e293b;
    max-height:320px; overflow-y:auto; background:#fff;
    scrollbar-width:thin; scrollbar-color:#c7d2fe #f8fafc;
}
.plg-doc-view::-webkit-scrollbar { width:4px; }
.plg-doc-view::-webkit-scrollbar-thumb { background:#c7d2fe; border-radius:10px; }

/* Highlights */
.plg-hl { border-radius:3px; padding:1px 3px; cursor:help; position:relative; }
.plg-hl-red    { background:#fee2e2; border-bottom:2px solid #ef4444; }
.plg-hl-orange { background:#ffedd5; border-bottom:2px solid #f97316; }
.plg-hl-blue   { background:#dbeafe; border-bottom:2px solid #3b82f6; }
.plg-src-badge { font-size:0.6rem; font-weight:800; background:#4f46e5; color:#fff; border-radius:50%; padding:1px 4px; margin-left:2px; vertical-align:super; }

/* Tooltip */
.plg-tooltip {
    display:none; position:fixed; z-index:99999; background:#1e293b; color:#fff;
    font-size:0.72rem; font-weight:600; padding:6px 10px; border-radius:8px;
    max-width:260px; pointer-events:none; box-shadow:0 4px 12px rgba(0,0,0,0.2);
    transform:translateX(-50%);
}

/* Sources section */
.plg-sources-section { background:#fff; padding:0; }
.plg-src-count { font-size:0.72rem; font-weight:700; color:#64748b; background:#f1f5f9; padding:3px 10px; border-radius:20px; }
.plg-sources-list { padding:12px 16px; display:flex; flex-direction:column; gap:10px; }
.plg-src-item { display:flex; gap:12px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:12px; padding:14px 16px; transition:0.15s; }
.plg-src-item:hover { border-color:#c7d2fe; background:#f5f3ff; }
.plg-src-num { width:26px; height:26px; border-radius:50%; background:#4f46e5; color:#fff; font-size:0.72rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.plg-src-body { flex:1; min-width:0; }
.plg-src-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; flex-wrap:wrap; gap:6px; }
.plg-src-domain { font-size:0.78rem; font-weight:700; color:#374151; display:flex; align-items:center; gap:6px; }
.plg-src-domain i { color:#6366f1; }
.plg-src-type-badge { font-size:0.6rem; font-weight:800; text-transform:uppercase; padding:2px 7px; border-radius:6px; letter-spacing:0.04em; }
.plg-badge-web { background:#dbeafe; color:#1d4ed8; }
.plg-badge-pub { background:#fef3c7; color:#92400e; }
.plg-src-pct { font-size:0.78rem; font-weight:800; }
.plg-src-snippet { font-size:0.78rem; color:#64748b; font-style:italic; margin-bottom:6px; line-height:1.5; }
.plg-src-url { font-size:0.7rem; color:#4f46e5; text-decoration:none; word-break:break-all; display:flex; align-items:center; gap:4px; }
.plg-src-url:hover { text-decoration:underline; }
.plg-src-url i { font-size:0.6rem; }

/* Responsive */
@media (max-width:768px) {
    .plg-layout { grid-template-columns:1fr; grid-template-rows:auto 1fr; }
    .plg-left-col { max-height:45vh; }
    .plg-score-row { flex-direction:column; }
    .plg-gauge-card { width:100%; border-right:none; border-bottom:1px solid #e2e8f0; flex-direction:row; gap:16px; }
}

/* ── Result header meta & engine badges ── */
.plg-doc-meta { font-size:0.68rem; color:#94a3b8; font-weight:600; margin-left:6px; }
.plg-engine-badge { font-size:0.65rem; font-weight:800; padding:2px 8px; border-radius:10px; margin-left:6px; display:inline-flex; align-items:center; gap:3px; }
.plg-engine-live  { background:#d1fae5; color:#065f46; }
.plg-engine-local { background:#fef3c7; color:#92400e; }
.plg-apis-used { font-size:0.62rem; color:#6366f1; background:#eef2ff; padding:2px 8px; border-radius:10px; margin-left:6px; font-weight:700; }

/* ── API Key Settings Panel ── */
.plg-api-settings-btn {
    border:1px solid rgba(255,255,255,0.3); background:rgba(255,255,255,0.15);
    color:#fff; font-weight:700; font-size:0.78rem; padding:6px 12px;
    border-radius:8px; cursor:pointer; font-family:inherit; transition:0.2s;
    display:flex; align-items:center; gap:5px; white-space:nowrap;
}
.plg-api-settings-btn:hover { background:rgba(255,255,255,0.28); }
.plg-api-panel {
    background:linear-gradient(135deg,#1e1b4b,#312e81); border-bottom:2px solid #4f46e5;
    flex-shrink:0;
}
.plg-api-panel-inner { padding:14px 20px; }
.plg-api-title { font-size:0.82rem; font-weight:800; color:#c7d2fe; margin-bottom:4px; display:flex; align-items:center; gap:6px; }
.plg-api-desc { font-size:0.72rem; color:rgba(199,210,254,0.75); margin:0 0 12px; line-height:1.5; }
.plg-api-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.plg-api-field { flex:1; min-width:200px; }
.plg-api-field label { font-size:0.68rem; font-weight:700; color:#a5b4fc; display:block; margin-bottom:4px; }
.plg-api-field label a { color:#818cf8; margin-left:4px; }
.plg-api-input {
    width:100%; padding:7px 10px; border-radius:7px; border:1px solid rgba(99,102,241,0.4);
    background:rgba(255,255,255,0.08); color:#e0e7ff; font-size:0.8rem; font-family:inherit;
    outline:none; box-sizing:border-box; transition:0.2s;
}
.plg-api-input:focus { border-color:#818cf8; background:rgba(255,255,255,0.14); }
.plg-api-input::placeholder { color:rgba(165,180,252,0.5); }
.plg-api-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.plg-api-save-btn {
    background:#4f46e5; color:#fff; border:none; padding:7px 16px; border-radius:7px;
    font-weight:700; font-size:0.78rem; cursor:pointer; font-family:inherit; transition:0.2s;
    display:flex; align-items:center; gap:5px;
}
.plg-api-save-btn:hover { background:#4338ca; }
.plg-api-clear-btn {
    background:rgba(239,68,68,0.15); color:#fca5a5; border:1px solid rgba(239,68,68,0.3);
    padding:7px 14px; border-radius:7px; font-weight:700; font-size:0.78rem; cursor:pointer;
    font-family:inherit; transition:0.2s; display:flex; align-items:center; gap:5px;
}
.plg-api-clear-btn:hover { background:rgba(239,68,68,0.25); }
.plg-api-note { font-size:0.68rem; color:rgba(165,180,252,0.7); display:flex; align-items:center; gap:4px; }

/* ── Enhanced Source Cards ── */
.plg-src-num-wrap { display:flex; flex-direction:column; align-items:center; gap:6px; flex-shrink:0; }
.plg-src-sim-ring { position:relative; width:44px; height:44px; }
.plg-src-sim-ring svg { width:100%; height:100%; transform:rotate(-90deg); }
.plg-src-sim-ring span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:0.6rem; font-weight:900; color:var(--sim-color,#64748b); }
.plg-src-domain-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:4px; }
.plg-src-favicon { width:16px; height:16px; border-radius:3px; object-fit:contain; }
.plg-src-domain-name { font-size:0.82rem; font-weight:800; color:#1e293b; }
.plg-src-match-bar-wrap { height:4px; background:#f1f5f9; border-radius:99px; overflow:hidden; margin-bottom:6px; }
.plg-src-match-bar { height:100%; border-radius:99px; transition:width 0.8s ease; }
.plg-src-title { font-size:0.85rem; font-weight:700; color:#1e293b; margin-bottom:4px; }
.plg-src-title a { color:#4f46e5; text-decoration:none; }
.plg-src-title a:hover { text-decoration:underline; }
.plg-src-meta { display:flex; gap:10px; flex-wrap:wrap; font-size:0.7rem; color:#64748b; margin-bottom:5px; }
.plg-src-meta span { display:flex; align-items:center; gap:3px; }
.plg-src-meta i { color:#94a3b8; font-size:0.65rem; }
.plg-src-phrase { font-size:0.75rem; color:#7c3aed; background:#f5f3ff; padding:4px 8px; border-radius:6px; margin-bottom:5px; display:flex; align-items:flex-start; gap:5px; }
.plg-src-phrase i { color:#a78bfa; margin-top:1px; flex-shrink:0; }
.plg-badge-ai { background:#d1fae5; color:#065f46; }
.plg-src-fetching { padding:20px; text-align:center; color:#6366f1; font-size:0.85rem; font-weight:600; display:flex; align-items:center; justify-content:center; gap:8px; }
.plg-src-none { padding:24px; text-align:center; color:#64748b; font-size:0.85rem; font-weight:600; line-height:1.6; }

/* ── New Turnitin-style Source Cards (.plg-sc) ── */
.plg-sc {
    display: flex;
    gap: 14px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px 16px;
    transition: border-color 0.15s, box-shadow 0.15s;
    margin-bottom: 8px;
}
.plg-sc:hover {
    border-color: #a5b4fc;
    box-shadow: 0 2px 12px rgba(79,70,229,0.08);
}
.plg-sc-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    min-width: 52px;
}
.plg-sc-index {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #4f46e5;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}
.plg-sc-ring {
    position: relative;
    width: 52px;
    height: 52px;
}
.plg-sc-ring svg {
    width: 100%;
    height: 100%;
}
.plg-sc-ring-pct {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1;
}
.plg-sc-body { flex: 1; min-width: 0; }
.plg-sc-header { margin-bottom: 6px; }
.plg-sc-source-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.plg-sc-favicon { width: 14px; height: 14px; border-radius: 3px; object-fit: contain; }
.plg-sc-badge {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.plg-sc-badge.plg-badge-pub { background: #fef3c7; color: #92400e; }
.plg-sc-badge.plg-badge-web { background: #dbeafe; color: #1d4ed8; }
.plg-sc-domain { font-size: 0.78rem; font-weight: 700; color: #374151; }
.plg-sc-bar-wrap { height: 3px; background: #f1f5f9; border-radius: 99px; overflow: hidden; }
.plg-sc-bar { height: 100%; border-radius: 99px; transition: width 0.8s ease; }
.plg-sc-title { font-size: 0.82rem; font-weight: 700; margin: 5px 0 3px; }
.plg-sc-title a { color: #4f46e5; text-decoration: none; }
.plg-sc-title a:hover { text-decoration: underline; }
.plg-sc-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 0.68rem;
    color: #64748b;
    margin-bottom: 4px;
}
.plg-sc-meta-item { display: flex; align-items: center; gap: 3px; }
.plg-sc-meta-item i { color: #94a3b8; font-size: 0.62rem; }
.plg-sc-phrase {
    font-size: 0.72rem;
    color: #7c3aed;
    background: #f5f3ff;
    padding: 3px 8px;
    border-radius: 5px;
    margin-bottom: 4px;
    display: flex;
    align-items: flex-start;
    gap: 4px;
}
.plg-sc-phrase i { color: #a78bfa; margin-top: 1px; flex-shrink: 0; font-size: 0.62rem; }
.plg-sc-snippet {
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.5;
    margin-bottom: 5px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.plg-sc-url {
    font-size: 0.68rem;
    color: #94a3b8;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 4px;
    word-break: break-all;
}
.plg-sc-url:hover { color: #4f46e5; }

/* ── Dropzone format badges ── */
.plg-dz-formats { display:flex; justify-content:center; gap:6px; margin-top:10px; flex-wrap:wrap; }
.plg-dz-badge { font-size:0.68rem; font-weight:800; padding:3px 9px; border-radius:6px; background:#ede9fe; color:#5b21b6; display:flex; align-items:center; gap:4px; }
.plg-dz-badge i { font-size:0.7rem; }



/* ═══════════════════════════════════════════════════════════
   TURNITIN-EXACT UI — .tii- classes
   ═══════════════════════════════════════════════════════════ */

/* ── App shell ── */
.tii-app {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 46px);
    background: #f5f6fa;
    overflow: hidden;
    font-family: 'Outfit','Segoe UI',sans-serif;
}

/* ── Top bar ── */
.tii-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    height: 52px;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    flex-shrink: 0;
    gap: 12px;
    z-index: 10;
}
.tii-topbar-left { display:flex; align-items:center; gap:10px; min-width:0; }
.tii-topbar-right { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.tii-back-btn {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #374151;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.85rem;
    transition: 0.15s;
    flex-shrink: 0;
}
.tii-back-btn:hover { background: #e2e8f0; }
.tii-brand { display:flex; align-items:center; gap:8px; min-width:0; }
.tii-brand-icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg,#0f4c81,#1d6aa8);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.85rem;
    flex-shrink: 0;
}
.tii-brand-title { font-size: 0.9rem; font-weight: 700; color: #0f172a; white-space:nowrap; }
.tii-brand-sub   { font-size: 0.68rem; color: #94a3b8; white-space:nowrap; }
.tii-btn-outline {
    height: 30px; padding: 0 12px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    color: #374151;
    font-size: 0.75rem; font-weight: 600;
    cursor: pointer;
    display: flex; align-items: center; gap: 5px;
    transition: 0.15s;
    white-space: nowrap;
}
.tii-btn-outline:hover { border-color: #0f4c81; color: #0f4c81; }
.tii-btn-primary {
    height: 30px; padding: 0 14px;
    border: none;
    border-radius: 6px;
    background: #0f4c81;
    color: #fff;
    font-size: 0.75rem; font-weight: 700;
    cursor: pointer;
    display: flex; align-items: center; gap: 5px;
    transition: 0.15s;
    white-space: nowrap;
}
.tii-btn-primary:hover { background: #0a355c; }

/* ── 3-panel body ── */
.tii-body {
    display: flex;
    flex: 1;
    overflow: hidden;
    gap: 0;
}

/* ── LEFT: Input panel ── */
.tii-input-panel {
    width: 300px;
    flex-shrink: 0;
    background: #fff;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.tii-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-bottom: 1px solid #e2e8f0;
    flex-shrink: 0;
}
.tii-panel-title { font-size: 0.8rem; font-weight: 700; color: #374151; display:flex; align-items:center; gap:6px; }
.tii-input-tabs { display:flex; gap:4px; }
.tii-itab {
    height: 26px; padding: 0 10px;
    border: 1px solid #e2e8f0;
    border-radius: 5px;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.7rem; font-weight: 600;
    cursor: pointer;
    display: flex; align-items: center; gap: 4px;
    transition: 0.15s;
}
.tii-itab.active { background: #0f4c81; color: #fff; border-color: #0f4c81; }
.tii-itab:not(.active):hover { border-color: #0f4c81; color: #0f4c81; }

.tii-text-wrap { flex: 1; display:flex; flex-direction:column; overflow:hidden; }
.tii-textarea {
    flex: 1;
    border: none;
    outline: none;
    resize: none;
    padding: 12px 14px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: #1e293b;
    background: #fff;
    font-family: inherit;
}
.tii-textarea::placeholder { color: #94a3b8; }
.tii-textarea-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 12px;
    border-top: 1px solid #f1f5f9;
    background: #f8fafc;
    flex-shrink: 0;
}
.tii-stats { display:flex; gap:8px; font-size:0.68rem; color:#94a3b8; }
.tii-clear-btn {
    border: none; background: none;
    color: #94a3b8; font-size: 0.7rem;
    cursor: pointer; display:flex; align-items:center; gap:3px;
    padding: 2px 6px; border-radius: 4px;
    transition: 0.15s;
}
.tii-clear-btn:hover { color: #ef4444; background: #fee2e2; }

.tii-file-wrap { flex:1; padding:12px; overflow-y:auto; }
.tii-dropzone {
    border: 2px dashed #c7d2fe;
    border-radius: 10px;
    padding: 24px 16px;
    text-align: center;
    cursor: pointer;
    transition: 0.15s;
    background: #f5f3ff;
    color: #5b21b6;
}
.tii-dropzone:hover, .tii-dropzone.drag { border-color: #7c3aed; background: #ede9fe; }
.tii-dz-icon { font-size: 2rem; margin-bottom: 8px; color: #7c3aed; }
.tii-dropzone p { font-size: 0.82rem; font-weight: 600; margin-bottom: 4px; }
.tii-dropzone span { font-size: 0.7rem; color: #8b5cf6; }
.tii-dz-formats { display:flex; justify-content:center; gap:6px; margin-top:10px; flex-wrap:wrap; }
.tii-dz-formats span { font-size:0.68rem; font-weight:700; padding:2px 8px; border-radius:4px; background:#ede9fe; color:#5b21b6; display:flex; align-items:center; gap:3px; }

.tii-input-footer {
    padding: 10px 12px;
    border-top: 1px solid #e2e8f0;
    flex-shrink: 0;
    background: #fff;
}
.tii-check-btn {
    width: 100%;
    height: 38px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg,#0f4c81,#1d6aa8);
    color: #fff;
    font-size: 0.82rem; font-weight: 700;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 7px;
    transition: 0.2s;
    margin-bottom: 10px;
}
.tii-check-btn:hover { background: linear-gradient(135deg,#0a355c,#0f4c81); transform: translateY(-1px); }
.tii-check-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.tii-tips { font-size: 0.7rem; color: #64748b; }
.tii-tips-title { font-weight: 700; color: #374151; margin-bottom: 5px; display:flex; align-items:center; gap:4px; }
.tii-tips ul { padding-left: 14px; display:flex; flex-direction:column; gap:3px; }
.tii-tips li { line-height: 1.4; }

/* ── CENTER: Document panel ── */
.tii-doc-panel {
    flex: 1;
    background: #fff;
    border-right: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Empty state */
.tii-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    text-align: center;
    color: #64748b;
}
.tii-empty-icon {
    width: 72px; height: 72px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.8rem;
    color: #94a3b8;
    margin-bottom: 16px;
}
.tii-empty h3 { font-size: 1rem; font-weight: 700; color: #374151; margin-bottom: 6px; }
.tii-empty p  { font-size: 0.82rem; line-height: 1.6; margin-bottom: 16px; }
.tii-empty-features {
    display: flex; flex-direction: column; gap: 6px;
    font-size: 0.75rem; color: #64748b; text-align: left;
}
.tii-empty-features div { display:flex; align-items:center; gap:6px; }
.tii-empty-features i { color: #10b981; }

/* Loading state */
.tii-loading {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    text-align: center;
}
.tii-spinner {
    position: relative;
    width: 80px; height: 80px;
    margin-bottom: 20px;
}
.tii-spin-ring {
    position: absolute;
    border-radius: 50%;
    border: 3px solid transparent;
    animation: tiiSpin 1.4s linear infinite;
}
.tii-ring1 { inset:0; border-top-color:#0f4c81; animation-duration:1.2s; }
.tii-ring2 { inset:8px; border-top-color:#f59e0b; animation-duration:1.6s; animation-direction:reverse; }
.tii-ring3 { inset:16px; border-top-color:#10b981; animation-duration:1s; }
@keyframes tiiSpin { to { transform: rotate(360deg); } }
.tii-spin-icon {
    position: absolute; inset:0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; color: #0f4c81;
}
.tii-loading h3 { font-size: 0.95rem; font-weight: 700; color: #374151; margin-bottom: 6px; }
.tii-loading p  { font-size: 0.78rem; color: #94a3b8; margin-bottom: 16px; }
.tii-progress-wrap {
    width: 240px; height: 4px;
    background: #e2e8f0; border-radius: 99px;
    overflow: hidden; margin-bottom: 16px;
}
.tii-progress-bar {
    height: 100%; width: 0%;
    background: linear-gradient(90deg,#0f4c81,#f59e0b);
    border-radius: 99px;
    transition: width 0.4s ease;
}
.tii-steps {
    display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;
}
.tii-step {
    font-size: 0.7rem; font-weight: 600;
    padding: 4px 10px; border-radius: 20px;
    background: #f1f5f9; color: #94a3b8;
    display: flex; align-items: center; gap: 4px;
    transition: 0.2s;
}
.tii-step.active { background: #dbeafe; color: #1d4ed8; }
.tii-step.done   { background: #d1fae5; color: #065f46; }

/* Document result */
.tii-doc-result {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.tii-doc-result-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid #e2e8f0;
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: 8px;
    background: #f8fafc;
}
.tii-doc-info { font-size: 0.75rem; color: #64748b; flex: 1; min-width: 0; }
.tii-doc-legend {
    display: flex; gap: 10px; flex-wrap: wrap;
}
.tii-leg {
    display: flex; align-items: center; gap: 4px;
    font-size: 0.68rem; font-weight: 600; color: #374151;
}
.tii-leg-dot {
    width: 10px; height: 10px; border-radius: 2px;
    background: var(--c, #e5e7eb);
}
.tii-doc-text {
    flex: 1;
    overflow-y: auto;
    padding: 20px 24px;
    font-size: 0.88rem;
    line-height: 2;
    color: #1e293b;
    word-break: break-word;
}
.tii-doc-text::-webkit-scrollbar { width: 5px; }
.tii-doc-text::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 99px; }

/* ── RIGHT: Score panel ── */
.tii-score-panel {
    width: 280px;
    flex-shrink: 0;
    background: #fff;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
}
.tii-score-panel::-webkit-scrollbar { width: 4px; }
.tii-score-panel::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 99px; }

/* Score circle card */
.tii-score-card {
    padding: 20px 16px 14px;
    border-bottom: 1px solid #e2e8f0;
    text-align: center;
    flex-shrink: 0;
}
.tii-score-circle-wrap {
    position: relative;
    width: 120px; height: 120px;
    margin: 0 auto 10px;
}
.tii-score-svg { width: 100%; height: 100%; }
.tii-score-inner {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
}
.tii-score-pct {
    font-size: 1.6rem; font-weight: 900;
    line-height: 1; color: #374151;
}
.tii-score-lbl {
    font-size: 0.65rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: #94a3b8; margin-top: 2px;
}
.tii-score-verdict {
    font-size: 0.75rem; font-weight: 600;
    color: #64748b; line-height: 1.4;
    padding: 0 8px;
}

/* Breakdown bars */
.tii-breakdown {
    padding: 12px 14px;
    border-bottom: 1px solid #e2e8f0;
    flex-shrink: 0;
}
.tii-breakdown-title {
    font-size: 0.7rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: #94a3b8; margin-bottom: 10px;
}
.tii-brow {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 8px;
}
.tii-brow:last-child { margin-bottom: 0; }
.tii-brow-icon {
    width: 26px; height: 26px; border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.72rem; flex-shrink: 0;
}
.tii-brow-info { flex: 1; min-width: 0; }
.tii-brow-label { font-size: 0.68rem; font-weight: 600; color: #374151; margin-bottom: 3px; }
.tii-brow-bar-wrap { height: 4px; background: #f1f5f9; border-radius: 99px; overflow: hidden; }
.tii-brow-bar { height: 100%; width: 0%; border-radius: 99px; transition: width 0.8s ease; }
.tii-brow-pct { font-size: 0.72rem; font-weight: 800; color: #374151; flex-shrink: 0; min-width: 28px; text-align: right; }

/* Match Overview (Turnitin numbered list) */
.tii-matches { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.tii-matches-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px 8px;
    font-size: 0.72rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: #374151; flex-shrink: 0;
    border-bottom: 1px solid #f1f5f9;
}
.tii-match-count {
    font-size: 0.65rem; font-weight: 700;
    background: #f1f5f9; color: #64748b;
    padding: 2px 7px; border-radius: 10px;
}
.tii-matches-list {
    flex: 1; overflow-y: auto; padding: 6px 8px;
}
.tii-matches-list::-webkit-scrollbar { width: 4px; }
.tii-matches-list::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 99px; }

/* Match item */
.tii-match-item {
    display: flex;
    gap: 8px;
    padding: 8px 6px;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s;
    border-bottom: 1px solid #f8fafc;
}
.tii-match-item:hover { background: #f8fafc; }
.tii-match-item.expanded { background: #f8fafc; }
.tii-match-num {
    width: 22px; height: 22px; border-radius: 4px;
    color: #fff; font-size: 0.65rem; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; margin-top: 1px;
}
.tii-match-body { flex: 1; min-width: 0; }
.tii-match-top {
    display: flex; align-items: center;
    justify-content: space-between; gap: 6px;
    margin-bottom: 4px;
}
.tii-match-source {
    display: flex; align-items: center; gap: 4px;
    min-width: 0; flex: 1;
}
.tii-match-favicon { width: 12px; height: 12px; border-radius: 2px; flex-shrink: 0; }
.tii-match-domain {
    font-size: 0.72rem; font-weight: 700; color: #374151;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    max-width: 100px;
}
.tii-match-type {
    font-size: 0.6rem; font-weight: 700;
    padding: 1px 5px; border-radius: 3px;
    flex-shrink: 0;
}
.tii-type-pub { background: #fef3c7; color: #92400e; }
.tii-type-web { background: #dbeafe; color: #1d4ed8; }
.tii-match-pct { font-size: 0.78rem; font-weight: 900; flex-shrink: 0; }
.tii-match-bar-wrap { height: 3px; background: #f1f5f9; border-radius: 99px; overflow: hidden; margin-bottom: 4px; }
.tii-match-bar { height: 100%; border-radius: 99px; transition: width 0.6s ease; }

/* Expanded detail (hidden by default) */
.tii-match-detail { display: none; }
.tii-match-item.expanded .tii-match-detail { display: block; }
.tii-match-title { font-size: 0.72rem; font-weight: 600; margin-bottom: 3px; }
.tii-match-title a { color: #4f46e5; text-decoration: none; }
.tii-match-title a:hover { text-decoration: underline; }
.tii-match-meta { font-size: 0.65rem; color: #94a3b8; margin-bottom: 3px; }
.tii-match-phrase {
    font-size: 0.68rem; color: #7c3aed;
    background: #f5f3ff; padding: 3px 6px;
    border-radius: 4px; margin-bottom: 3px;
    display: flex; align-items: flex-start; gap: 3px;
}
.tii-match-phrase i { font-size: 0.6rem; margin-top: 1px; flex-shrink: 0; }
.tii-match-snippet { font-size: 0.68rem; color: #64748b; line-height: 1.4; margin-bottom: 4px; }
.tii-match-url {
    font-size: 0.65rem; color: #94a3b8;
    text-decoration: none; display: flex; align-items: center; gap: 3px;
    word-break: break-all;
}
.tii-match-url:hover { color: #4f46e5; }

/* ── Responsive: Mobile ── */
@media (max-width: 768px) {
    .tii-app { height: auto; min-height: calc(100vh - 56px); overflow: visible; }
    .tii-body { flex-direction: column; overflow: visible; }
    .tii-input-panel { width: 100%; border-right: none; border-bottom: 1px solid #e2e8f0; height: auto; }
    .tii-text-wrap { min-height: 160px; }
    .tii-textarea { min-height: 140px; }
    .tii-doc-panel { border-right: none; border-bottom: 1px solid #e2e8f0; min-height: 300px; }
    .tii-doc-text { max-height: 400px; }
    .tii-score-panel { width: 100%; border-top: 1px solid #e2e8f0; }
    .tii-score-circle-wrap { width: 100px; height: 100px; }
    .tii-score-pct { font-size: 1.3rem; }
    .tii-topbar { padding: 0 10px; }
    .tii-brand-sub { display: none; }
}

/* Score card color states */
.tii-gc-red    { border-top: 3px solid #c0392b; }
.tii-gc-orange { border-top: 3px solid #e67e22; }
.tii-gc-yellow { border-top: 3px solid #f39c12; }
.tii-gc-green  { border-top: 3px solid #27ae60; }

/* ── Plagiarism checker font size reset (override global 13px) ── */
.tii-app, .tii-app * {
    font-size: revert;
}
.tii-topbar { font-size: 14px; }
.tii-brand-title { font-size: 14px; }
.tii-brand-sub   { font-size: 11px; }
.tii-btn-outline, .tii-btn-primary { font-size: 12px; }
.tii-panel-title { font-size: 12px; }
.tii-itab        { font-size: 11px; }
.tii-textarea    { font-size: 13px; }
.tii-stats       { font-size: 11px; }
.tii-clear-btn   { font-size: 11px; }
.tii-check-btn   { font-size: 13px; }
.tii-tips        { font-size: 11px; }
.tii-tips-title  { font-size: 12px; }
.tii-empty h3    { font-size: 15px; }
.tii-empty p     { font-size: 13px; }
.tii-empty-features { font-size: 12px; }
.tii-loading h3  { font-size: 15px; }
.tii-loading p   { font-size: 12px; }
.tii-step        { font-size: 11px; }
.tii-doc-result-head { font-size: 12px; }
.tii-doc-info    { font-size: 12px; }
.tii-leg         { font-size: 11px; }
.tii-doc-text    { font-size: 14px; }
.tii-score-pct   { font-size: 26px; }
.tii-score-lbl   { font-size: 10px; }
.tii-score-verdict { font-size: 12px; }
.tii-breakdown-title { font-size: 11px; }
.tii-brow-label  { font-size: 11px; }
.tii-brow-pct    { font-size: 12px; }
.tii-matches-head { font-size: 11px; }
.tii-match-count { font-size: 10px; }
.tii-match-domain { font-size: 12px; }
.tii-match-type  { font-size: 10px; }
.tii-match-pct   { font-size: 13px; }
.tii-match-title { font-size: 12px; }
.tii-match-meta  { font-size: 11px; }
.tii-match-phrase { font-size: 11px; }
.tii-match-snippet { font-size: 11px; }
.tii-match-url   { font-size: 10px; }
