/* ══════════════════════════════════════════════════════════════
   JunCreativ Agent Portal — PREMIUM Full-Page Design
   ══════════════════════════════════════════════════════════════ */

/* ═══ WORDPRESS OVERRIDE ═══ */
html { margin-top: 0 !important; overflow: hidden !important; }
body.logged-in { margin-top: 0 !important; padding: 0 !important; overflow: hidden !important; }
#wpadminbar { display: none !important; }

/* ═══ ROOT VARIABLES ═══ */
:root {
    --jcap-primary: #6366f1;
    --jcap-primary-dark: #4f46e5;
    --jcap-primary-light: #818cf8;
    --jcap-accent: #f59e0b;
    --jcap-success: #10b981;
    --jcap-danger: #ef4444;
    --jcap-warning: #f59e0b;
    --jcap-gray-50: #f8fafc;
    --jcap-gray-100: #f1f5f9;
    --jcap-gray-200: #e2e8f0;
    --jcap-gray-300: #cbd5e1;
    --jcap-gray-500: #64748b;
    --jcap-gray-700: #334155;
    --jcap-gray-900: #0f172a;
    --jcap-sidebar-w: 240px;
    --jcap-topbar-h: 56px;
    --jcap-radius: 12px;
    --jcap-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    --jcap-shadow-lg: 0 10px 30px -5px rgba(0,0,0,.08), 0 4px 10px -5px rgba(0,0,0,.04);
}

/* ═══ RESET & FULL-PAGE TAKEOVER ═══ */
.jcap-app *, .jcap-app *::before, .jcap-app *::after,
.jcap-auth-wrapper *, .jcap-auth-wrapper *::before, .jcap-auth-wrapper *::after {
    box-sizing: border-box !important; margin: 0; padding: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
}
.jcap-app {
    position: fixed !important; top: 0 !important; left: 0 !important;
    width: 100vw !important; height: 100vh !important;
    z-index: 99999 !important; overflow: hidden !important;
    color: var(--jcap-gray-700); font-size: 14px; line-height: 1.5;
    background: var(--jcap-gray-50);
}

/* ═══ AUTH PAGES ═══ */
.jcap-auth-wrapper { position:fixed !important; inset:0 !important; display:flex; justify-content:center; align-items:center; min-height:100vh; padding:20px; background:linear-gradient(135deg,#0f172a,#1e1b4b,#312e81); z-index:99999 !important; overflow:auto; }
.jcap-auth-card { background:rgba(255,255,255,.03); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.08); border-radius:20px; box-shadow:0 25px 60px rgba(0,0,0,.3); padding:44px 40px; width:100%; max-width:420px; color:#fff; }
.jcap-auth-card-wide { max-width: 560px; }
.jcap-auth-logo { text-align:center; margin-bottom:30px; }
.jcap-auth-logo h2 { color:#fff; font-size:24px; font-weight:800; margin-bottom:4px; }
.jcap-auth-logo p { color:rgba(255,255,255,.5); font-size:14px; }
.jcap-auth-footer { text-align:center; margin-top:20px; font-size:13px; color:rgba(255,255,255,.4); }
.jcap-auth-footer a { color:#a5b4fc; text-decoration:none; font-weight:600; }
.jcap-auth-wrapper .jcap-field label { color:rgba(255,255,255,.6); }
.jcap-auth-wrapper .jcap-field input, .jcap-auth-wrapper .jcap-field select, .jcap-auth-wrapper .jcap-field textarea {
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); color:#fff;
}
.jcap-auth-wrapper .jcap-field input::placeholder { color:rgba(255,255,255,.3); }
.jcap-auth-wrapper .jcap-field input:focus, .jcap-auth-wrapper .jcap-field select:focus {
    border-color:rgba(99,102,241,.6); box-shadow:0 0 0 3px rgba(99,102,241,.15); background:rgba(255,255,255,.1);
}
.jcap-auth-wrapper .jcap-btn-primary { background:linear-gradient(135deg,#6366f1,#7c3aed); box-shadow:0 4px 15px rgba(99,102,241,.4); padding:13px 20px; font-size:15px; }
.jcap-auth-wrapper .jcap-btn-primary:hover { box-shadow:0 6px 25px rgba(99,102,241,.55); transform:translateY(-1px); }
.jcap-auth-wrapper .jcap-alert-error { background:rgba(239,68,68,.15); color:#fca5a5; border-color:rgba(239,68,68,.3); }
.jcap-auth-wrapper .jcap-alert-success { background:rgba(16,185,129,.15); color:#6ee7b7; border-color:rgba(16,185,129,.3); }

/* ═══ FORMS ═══ */
.jcap-form { }
.jcap-field { margin-bottom: 16px; position: relative; }
.jcap-field label { display:block; font-weight:600; font-size:12px; margin-bottom:5px; color:var(--jcap-gray-500); text-transform:uppercase; letter-spacing:.4px; }
.jcap-field input, .jcap-field select, .jcap-field textarea {
    width:100%; padding:11px 14px; border:1px solid var(--jcap-gray-200); border-radius:10px;
    font-size:14px; transition:all .2s; background:#fff; color:var(--jcap-gray-900);
}
.jcap-field input:focus, .jcap-field select:focus, .jcap-field textarea:focus {
    outline:none; border-color:var(--jcap-primary); box-shadow:0 0 0 3px rgba(99,102,241,.12);
}
.jcap-form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.jcap-form-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:12px; margin-bottom:16px; }
.jcap-field-wide { grid-column: 1 / -1; }

/* ═══ BUTTONS ═══ */
.jcap-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    padding:10px 20px; border:none; border-radius:10px; font-size:13.5px; font-weight:600;
    cursor:pointer; transition:all .2s cubic-bezier(.4,0,.2,1); text-decoration:none;
}
.jcap-btn-primary { background:linear-gradient(135deg,#6366f1,#7c3aed); color:#fff; box-shadow:0 2px 8px rgba(99,102,241,.3); }
.jcap-btn-primary:hover { box-shadow:0 4px 16px rgba(99,102,241,.45); transform:translateY(-1px); }
.jcap-btn-success { background:linear-gradient(135deg,#10b981,#059669); color:#fff; box-shadow:0 2px 8px rgba(16,185,129,.3); }
.jcap-btn-success:hover { box-shadow:0 4px 16px rgba(16,185,129,.4); transform:translateY(-1px); }
.jcap-btn-danger { background:linear-gradient(135deg,#ef4444,#dc2626); color:#fff; box-shadow:0 2px 8px rgba(239,68,68,.3); }
.jcap-btn-outline { background:#fff; border:1px solid var(--jcap-gray-200); color:var(--jcap-gray-700); }
.jcap-btn-outline:hover { background:var(--jcap-gray-50); border-color:var(--jcap-gray-300); }
.jcap-btn-sm { padding:7px 14px; font-size:12px; }
.jcap-btn-xs { padding:4px 10px; font-size:11px; border-radius:8px; }
.jcap-btn-full { width: 100%; }
.jcap-btn:disabled { opacity:.5; cursor:not-allowed; transform:none !important; }
.jcap-btn-icon { background:none; border:none; cursor:pointer; font-size:1rem; padding:6px; border-radius:8px; transition:background .15s; }
.jcap-btn-icon:hover { background:var(--jcap-gray-100); }

/* Spinner */
.jcap-spinner { width:16px; height:16px; border:2px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:jcap-spin .6s linear infinite; }
@keyframes jcap-spin { to { transform:rotate(360deg); } }

/* ═══ ALERTS ═══ */
.jcap-alert { padding:12px 16px; border-radius:10px; margin-bottom:16px; font-size:13px; font-weight:500; }
.jcap-alert-error { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.jcap-alert-success { background:#dcfce7; color:#166534; border:1px solid #bbf7d0; }
.jcap-alert-info { background:#dbeafe; color:#1e40af; border:1px solid #bfdbfe; }
.jcap-notice { padding:16px; border-radius:10px; margin:20px 0; }
.jcap-notice-info { background:#eff6ff; border-left:4px solid #3b82f6; }
.jcap-notice-warning { background:#fffbeb; border-left:4px solid #f59e0b; }
.jcap-notice-error { background:#fef2f2; border-left:4px solid #ef4444; }

/* ═══ TOPBAR (mobile only) ═══ */
.jcap-topbar {
    display:none; height:var(--jcap-topbar-h); background:linear-gradient(135deg,#0f172a,#1e293b);
    color:#fff; padding:0 16px; align-items:center; gap:12px;
    position:sticky; top:0; z-index:100; flex-shrink:0;
}
.jcap-menu-toggle { background:none; border:none; color:#fff; font-size:22px; cursor:pointer; padding:4px 8px; }
.jcap-topbar-brand { font-weight:700; font-size:15px; flex:1; }
.jcap-topbar-user { display:flex; align-items:center; gap:10px; font-size:13px; }
.jcap-topbar-user .jcap-btn { color:#fff; border-color:rgba(255,255,255,.2); }

/* ═══ SIDEBAR — PREMIUM SaaS ═══ */
.jcap-layout { display:flex; width:100%; height:100vh; overflow:hidden; }
.jcap-sidebar {
    width:var(--jcap-sidebar-w); min-width:var(--jcap-sidebar-w);
    background:linear-gradient(195deg,#0c1222 0%,#111827 50%,#0f172a 100%);
    color:#fff; display:flex; flex-direction:column;
    height:100vh; overflow:hidden; flex-shrink:0;
    border-right:1px solid rgba(255,255,255,.06); position:relative;
    transition:width .25s cubic-bezier(.4,0,.2,1), min-width .25s cubic-bezier(.4,0,.2,1);
}
.jcap-sidebar::before {
    content:''; position:absolute; top:0; right:0;
    width:120px; height:120px;
    background:radial-gradient(circle,rgba(99,102,241,.08) 0%,transparent 70%);
    pointer-events:none;
}

/* ── Compact toggle button ── */
.jcap-compact-btn {
    position:absolute; top:18px; right:-12px; z-index:10;
    width:24px; height:24px; border-radius:50%; border:1px solid rgba(255,255,255,.1);
    background:#1e293b; color:rgba(255,255,255,.5); font-size:11px;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:all .2s; opacity:0;
}
.jcap-sidebar:hover .jcap-compact-btn { opacity:1; }
.jcap-compact-btn:hover { background:#334155; color:#fff; border-color:rgba(255,255,255,.2); }
.jcap-sidebar.compact .jcap-compact-btn { opacity:1; right:-12px; }
.jcap-sidebar.compact .jcap-compact-icon { transform:rotate(180deg); }

/* ── Compact mode ── */
.jcap-sidebar.compact { width:68px!important; min-width:68px!important; }
.jcap-sidebar.compact .jcap-sb-text { display:none!important; }
.jcap-sidebar.compact .jcap-sidebar-brand { padding:20px 0 14px; text-align:center; }
.jcap-sidebar.compact .jcap-sidebar-brand h3 { font-size:18px; }
.jcap-sidebar.compact .jcap-role-indicator { padding:8px; margin:2px 6px 4px; justify-content:center; }
.jcap-sidebar.compact .jcap-nav { padding:8px 6px; }
.jcap-sidebar.compact .jcap-nav-link { padding:10px; justify-content:center; gap:0; border-radius:10px; }
.jcap-sidebar.compact .jcap-nav-icon { font-size:18px; width:auto; }
.jcap-sidebar.compact .jcap-nav-section { padding:6px; justify-content:center; }
.jcap-sidebar.compact .jcap-section-dot { margin:0!important; }
.jcap-sidebar.compact .jcap-nav-sub .jcap-nav-link { padding:8px; }
.jcap-sidebar.compact .jcap-nav-divider { margin:4px 8px; }
.jcap-sidebar.compact .jcap-sidebar-footer { padding:10px 6px; }
.jcap-sidebar.compact .jcap-theme-toggle { padding:8px; justify-content:center; gap:0; }
.jcap-sidebar.compact .jcap-sidebar-footer a { justify-content:center; gap:0; }
.jcap-sidebar.compact .jcap-nav-badge { position:absolute; top:-2px; right:-2px; min-width:14px; height:14px; font-size:8px; padding:0 3px; }
.jcap-sidebar.compact .jcap-nav-sub .jcap-nav-link { position:relative; }

/* ── Brand header ── */
.jcap-sidebar-brand {
    padding:24px 20px 16px; border-bottom:1px solid rgba(255,255,255,.06);
    position:relative; z-index:2;
}
.jcap-sidebar-brand h3 {
    font-size:15px; font-weight:700; margin-bottom:2px; letter-spacing:-.3px;
    background:linear-gradient(135deg,#fff 30%,#a5b4fc); -webkit-background-clip:text;
    -webkit-text-fill-color:transparent; background-clip:text;
}
.jcap-sidebar-brand small {
    font-size:9.5px; opacity:.35; font-weight:600; letter-spacing:1.2px;
    text-transform:uppercase; display:block; margin-top:3px;
}

/* ── Profile / Role indicator ── */
.jcap-role-indicator {
    display:flex!important; align-items:center!important; gap:10px!important;
    padding:10px 14px!important; margin:8px 10px 4px!important;
    border-radius:10px!important; background:rgba(255,255,255,.03)!important;
    border:1px solid rgba(255,255,255,.05)!important;
}
.jcap-role-avatar {
    width:36px!important; height:36px!important; border-radius:10px!important;
    background:linear-gradient(135deg,#6366f1,#8b5cf6)!important;
    color:#fff!important; font-size:15px!important; font-weight:700!important;
    display:flex!important; align-items:center!important; justify-content:center!important;
    flex-shrink:0!important; box-shadow:0 2px 8px rgba(99,102,241,.3)!important;
}
.jcap-role-info { display:flex!important; flex-direction:column!important; gap:3px!important; min-width:0!important; }
.jcap-role-name {
    font-size:12.5px!important; font-weight:600!important; color:rgba(255,255,255,.9)!important;
    white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important;
}
.jcap-role-badge {
    font-size:8.5px!important; font-weight:700!important; text-transform:uppercase!important;
    letter-spacing:.8px!important; padding:2px 7px!important; border-radius:4px!important;
    display:inline-block!important; width:fit-content!important;
}
.jcap-role-super_admin { background:rgba(231,76,60,.12)!important; color:#e74c3c!important; }
.jcap-role-agent { background:rgba(99,102,241,.15)!important; color:#a5b4fc!important; }

/* ── Navigation ── */
.jcap-nav { list-style:none; padding:12px 10px; flex:1; overflow-y:auto; overflow-x:hidden; }
.jcap-nav::-webkit-scrollbar { width:3px; }
.jcap-nav::-webkit-scrollbar-thumb { background:rgba(255,255,255,.08); border-radius:10px; }
.jcap-nav li { margin:1px 0; }

/* Dividers */
.jcap-nav-divider { height:1px!important; background:rgba(255,255,255,.05)!important; margin:6px 14px!important; border:none!important; }

/* ── Nav links — premium active state ── */
.jcap-nav-link {
    display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:8px;
    color:rgba(255,255,255,.5); text-decoration:none; font-size:13px; font-weight:500;
    transition:all .15s cubic-bezier(.4,0,.2,1); position:relative;
    border-left:2.5px solid transparent; margin-left:0;
}
.jcap-nav-link:hover {
    background:rgba(255,255,255,.05); color:rgba(255,255,255,.85);
    transform:translateX(2px);
}
.jcap-nav-link.active {
    background:rgba(99,102,241,.12); color:#fff; font-weight:600;
    border-left-color:#6366f1;
}
.jcap-nav-link.active .jcap-nav-icon { filter:none; }
.jcap-nav-icon { font-size:16px; width:20px; text-align:center; flex-shrink:0; transition:transform .15s; }
.jcap-nav-link:hover .jcap-nav-icon { transform:scale(1.08); }

/* ── Section headers (collapsible) ── */
.jcap-nav-section {
    font-size:10px!important; text-transform:uppercase!important; letter-spacing:1.4px!important;
    color:rgba(255,255,255,.3)!important; padding:10px 14px 6px!important; font-weight:700!important;
    cursor:default!important; display:block!important; line-height:1!important;
    margin:0!important; border:none!important;
}
.jcap-nav-toggle {
    cursor:pointer!important; display:flex!important; align-items:center!important;
    justify-content:space-between!important; padding:10px 14px 6px!important;
    user-select:none!important; transition:all .15s!important;
    border-radius:0!important; margin:0!important;
}
.jcap-nav-toggle:hover { color:rgba(255,255,255,.5)!important; }
.jcap-nav-toggle.open { color:rgba(255,255,255,.45)!important; }
.jcap-section-left { display:flex; align-items:center; gap:7px; }
.jcap-section-dot {
    width:6px; height:6px; border-radius:50%; background:#6366f1;
    flex-shrink:0; opacity:.6;
}
.jcap-toggle-arrow {
    font-size:13px!important; opacity:.35!important; transition:transform .2s ease!important;
    display:inline-block!important; font-weight:400!important;
}
.jcap-nav-toggle.open .jcap-toggle-arrow { transform:rotate(-90deg)!important; opacity:.6!important; }

/* ── Sub-items ── */
.jcap-nav-sub { display:none!important; }
.jcap-nav-sub.visible { display:list-item!important; }
.jcap-nav-sub .jcap-nav-link {
    padding:7px 14px 7px 28px!important; font-size:12.5px!important;
    color:rgba(255,255,255,.45)!important; border-left:2.5px solid transparent!important;
}
.jcap-nav-sub .jcap-nav-link:hover { color:rgba(255,255,255,.8)!important; background:rgba(255,255,255,.04)!important; }
.jcap-nav-sub .jcap-nav-link.active {
    color:#fff!important; background:rgba(99,102,241,.1)!important;
    border-left-color:#6366f1!important;
}

/* ── Badges — premium pulse ── */
.jcap-nav-badge {
    margin-left:auto!important; font-size:9px!important; font-weight:800!important;
    min-width:18px!important; height:18px!important; border-radius:9px!important;
    display:inline-flex!important; align-items:center!important; justify-content:center!important;
    padding:0 5px!important; flex-shrink:0!important;
    box-shadow:0 2px 6px rgba(0,0,0,.15)!important;
}
.jcap-nav-badge.warn {
    background:linear-gradient(135deg,#f59e0b,#d97706)!important; color:#fff!important;
    animation:jcap-badge-pulse 2s ease-in-out infinite!important;
}
.jcap-nav-badge.info { background:rgba(99,102,241,.2)!important; color:#a5b4fc!important; }
.jcap-nav-badge.danger { background:rgba(239,68,68,.2)!important; color:#fca5a5!important; }
@keyframes jcap-badge-pulse {
    0%,100% { box-shadow:0 2px 6px rgba(245,158,11,.2); }
    50% { box-shadow:0 2px 12px rgba(245,158,11,.5); }
}

/* ── Admin links ── */
.jcap-admin-link::after {
    content:'↗'!important; font-size:9px!important; margin-left:auto!important;
    opacity:.25!important; flex-shrink:0!important;
}
.jcap-admin-link { opacity:.65!important; }
.jcap-admin-link:hover { opacity:1!important; }

/* ── Footer ── */
.jcap-sidebar-footer {
    padding:12px 14px; border-top:1px solid rgba(255,255,255,.05); font-size:12px;
}
.jcap-sidebar-footer a {
    color:rgba(255,255,255,.35); text-decoration:none; display:flex; align-items:center;
    gap:6px; padding:7px 10px; border-radius:8px; transition:all .15s; font-size:12px;
}
.jcap-sidebar-footer a:hover { background:rgba(239,68,68,.08); color:#f87171; }

/* Sub-nav filter items */
.jcap-nav-link[data-filter] { padding-left:34px!important; font-size:12px!important; color:rgba(255,255,255,.4)!important; }
.jcap-nav-link[data-filter]:hover { color:rgba(255,255,255,.8)!important; }
.jcap-nav-link[data-filter] .jcap-nav-icon { font-size:14px!important; }

/* ═══ MAIN CONTENT ═══ */
.jcap-main {
    flex:1; overflow-y:auto; overflow-x:hidden;
    padding:28px 32px; background:var(--jcap-gray-50); min-width:0;
}
.jcap-page-title {
    font-size:22px; font-weight:700; margin-bottom:20px; color:var(--jcap-gray-900);
    letter-spacing:-.3px;
}

/* ═══ CARDS ═══ */
.jcap-card {
    background:#fff; border-radius:14px; border:1px solid var(--jcap-gray-200);
    padding:22px; margin-bottom:20px; transition:box-shadow .2s;
}
.jcap-card:hover { box-shadow:var(--jcap-shadow-lg); }
.jcap-card h3 { font-size:15px; font-weight:700; margin-bottom:16px; color:var(--jcap-gray-900); }
.jcap-card-header-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; flex-wrap:wrap; gap:.5rem; }
.jcap-card-header-row h3 { margin:0; }
.jcap-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.75rem; }
.jcap-card-header h3 { margin:0; }
.jcap-statement-actions { display:flex; gap:.5rem; }

/* ═══ STAT CARDS ═══ */
.jcap-stats {
    display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:16px; margin-bottom:24px;
}
.jcap-stat-card {
    background:#fff; border-radius:14px; padding:22px;
    border:1px solid var(--jcap-gray-200); border-left:4px solid var(--jcap-primary);
    transition:all .25s cubic-bezier(.4,0,.2,1); position:relative; overflow:hidden;
}
.jcap-stat-card:hover { transform:translateY(-2px); box-shadow:0 8px 25px -5px rgba(0,0,0,.08); border-color:var(--jcap-gray-300); }
.jcap-stat-card.jcap-stat-wallet { border-left-color:var(--jcap-accent); }
.jcap-stat-label {
    font-size:11px; text-transform:uppercase; letter-spacing:.8px;
    color:var(--jcap-gray-500); margin-bottom:6px; font-weight:700;
}
.jcap-stat-value { font-size:28px; font-weight:800; color:var(--jcap-gray-900); letter-spacing:-.5px; }
.jcap-stat-large .jcap-stat-value { font-size:36px; }

/* ═══ TABLES ═══ */
.jcap-table-wrap { overflow-x:auto; }
.jcap-table { width:100%; border-collapse:collapse; font-size:13px; }
.jcap-table th {
    text-align:left; padding:12px 16px; background:var(--jcap-gray-50);
    font-size:10.5px; font-weight:700; color:var(--jcap-gray-500);
    text-transform:uppercase; letter-spacing:.8px; border-bottom:1px solid var(--jcap-gray-200);
    white-space:nowrap;
}
.jcap-table td {
    padding:14px 16px; border-bottom:1px solid var(--jcap-gray-100);
    vertical-align:top; color:var(--jcap-gray-700);
}
.jcap-table tr:last-child td { border-bottom:none; }
.jcap-table tr:hover td { background:var(--jcap-gray-50); }
.jcap-table-sm th, .jcap-table-sm td { padding:6px 10px; font-size:12px; }

/* ═══ BADGES ═══ */
.jcap-badge {
    display:inline-flex; align-items:center; padding:4px 10px; border-radius:8px;
    font-size:11px; font-weight:700; letter-spacing:.2px; text-transform:capitalize;
}
.jcap-badge-draft { background:var(--jcap-gray-100); color:var(--jcap-gray-700); }
.jcap-badge-pending { background:#fef3c7; color:#92400e; }
.jcap-badge-confirmed { background:#dbeafe; color:#1e40af; }
.jcap-badge-paid { background:#dcfce7; color:#166534; }
.jcap-badge-cancelled { background:#fee2e2; color:#991b1b; }
.jcap-badge-posted { background:#dcfce7; color:#166534; }
.jcap-badge-rejected { background:#fee2e2; color:#991b1b; }
.jcap-badge-credit { background:#dcfce7; color:#166534; }
.jcap-badge-debit { background:#fee2e2; color:#991b1b; }
.jcap-badge-awaiting_payment { background:#fef3c7; color:#92400e; }
.jcap-badge-issued { background:#dcfce7; color:#166534; font-weight:800; }
.jcap-badge-warn { background:#f59e0b; color:#fff; font-size:10px; padding:3px 8px; border-radius:6px; }
.jcap-badge-success { background:#dcfce7; color:#16a34a; }
.jcap-badge-info { background:#dbeafe; color:#2563eb; }
.jcap-badge-new { background:#6366f1; color:#fff; padding:2px 8px; border-radius:6px; font-size:10px; }

/* ═══ TOOLBAR ═══ */
.jcap-toolbar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; align-items:center; }
.jcap-select { padding:9px 14px; border:1px solid var(--jcap-gray-200); border-radius:10px; font-size:13px; background:#fff; }

/* ═══ RESULT CARDS ═══ */
.jcap-results { margin-top:20px; }
.jcap-result-card {
    background:#fff; border-radius:14px; border:1px solid var(--jcap-gray-200);
    padding:18px 22px; margin-bottom:14px;
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    transition:all .2s;
}
.jcap-result-card:hover { box-shadow:var(--jcap-shadow-lg); transform:translateY(-1px); }
.jcap-result-info { flex:1; min-width:200px; }
.jcap-result-info h4 { font-size:15px; margin-bottom:4px; color:var(--jcap-gray-900); font-weight:600; }
.jcap-result-info p { font-size:13px; color:var(--jcap-gray-500); margin:2px 0; }
.jcap-result-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; flex-wrap:wrap; gap:8px; }
.jcap-result-price { font-size:1.5em; color:var(--jcap-primary-dark); font-weight:800; }
.jcap-result-body { font-size:.93em; color:#555; line-height:1.7; margin-bottom:12px; }
.jcap-result-actions { display:flex; gap:8px; flex-wrap:wrap; }

/* ═══ HOTELS ═══ */
/* ═══════ HOTELS — PREMIUM REDESIGN ═══════ */
.htl-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:20px;}
.htl-title{font-size:26px;font-weight:800;margin:0;color:#0f172a;letter-spacing:-.5px;}
.htl-subtitle{font-size:14px;color:#64748b;margin:4px 0 0;font-weight:400;}
.htl-kpis{display:flex;gap:10px;flex-wrap:wrap;}
.htl-kpi{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:10px 18px;display:flex;flex-direction:column;align-items:center;min-width:110px;}
.htl-kpi-val{font-size:20px;font-weight:800;color:#0f172a;line-height:1.2;}
.htl-kpi-label{font-size:11px;color:#94a3b8;font-weight:500;text-transform:uppercase;letter-spacing:.5px;}
.htl-kpi.green .htl-kpi-val{color:#16a34a;}
.htl-kpi.blue .htl-kpi-val{color:#2563eb;}
.htl-kpi.amber .htl-kpi-val{color:#d97706;}

/* Search Card */
.htl-search-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:28px;box-shadow:0 8px 30px rgba(0,0,0,.04);margin-bottom:24px;position:relative;overflow:visible;}
.htl-search-label{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#0f172a;margin-bottom:20px;}
.htl-search-icon{font-size:18px;}
.htl-search-grid{display:grid;grid-template-columns:2fr 1fr 1fr .8fr .8fr;gap:14px;align-items:end;}
.htl-field{display:flex;flex-direction:column;gap:6px;}
.htl-field-dest{position:relative;}
.htl-label{font-size:12px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.4px;}
.htl-input{width:100%;padding:11px 14px;border:1.5px solid #e2e8f0;border-radius:12px;font-size:14px;color:#0f172a;background:#f8fafc;transition:all .2s;outline:none;font-family:inherit;}
.htl-input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1);}
.htl-input-lg{padding:13px 16px;font-size:15px;font-weight:500;}
.htl-input-wrap{position:relative;}

/* Steppers */
.htl-stepper{display:flex;align-items:center;border:1.5px solid #e2e8f0;border-radius:12px;background:#f8fafc;overflow:hidden;height:44px;}
.htl-step-btn{width:38px;height:100%;border:none;background:transparent;font-size:18px;font-weight:700;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.htl-step-btn:hover{background:#e2e8f0;color:#0f172a;}
.htl-step-btn:active{background:#cbd5e1;}
.htl-step-val{flex:1;text-align:center;border:none;background:transparent;font-size:16px;font-weight:700;color:#0f172a;width:32px;font-family:inherit;-moz-appearance:textfield;}
.htl-step-val::-webkit-inner-spin-button,.htl-step-val::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}

/* Search Button */
.htl-search-btn{width:100%;margin-top:18px;padding:14px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;border-radius:14px;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;box-shadow:0 4px 14px rgba(22,163,74,.25);letter-spacing:.3px;font-family:inherit;}
.htl-search-btn:hover{background:linear-gradient(135deg,#15803d,#166534);box-shadow:0 6px 20px rgba(22,163,74,.35);transform:translateY(-1px);}
.htl-search-btn:active{transform:translateY(0);}
.htl-search-btn:disabled{opacity:.6;cursor:wait;transform:none;}
.htl-search-btn-icon{font-size:16px;}

/* Results */
.htl-results{margin-bottom:24px;}
.htl-results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.htl-results-count{font-size:14px;color:#64748b;font-weight:500;}
.htl-results-grid{display:flex;flex-direction:column;gap:14px;}

/* Hotel Result Card */
.htl-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;display:flex;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.03);}
.htl-card:hover{border-color:#cbd5e1;box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-2px);}
.htl-card-img{flex:0 0 220px;height:180px;overflow:hidden;position:relative;}
.htl-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.htl-card:hover .htl-card-img img{transform:scale(1.05);}
.htl-card-stars{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.6);color:#fbbf24;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;backdrop-filter:blur(4px);}
.htl-card-body{flex:1;padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;}
.htl-card-name{font-size:17px;font-weight:700;color:#0f172a;margin:0 0 4px;line-height:1.3;}
.htl-card-addr{font-size:13px;color:#64748b;margin:0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.htl-card-rating{display:inline-flex;align-items:center;gap:5px;background:#1e40af;color:#fff;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:700;width:fit-content;}
.htl-card-rating-text{font-size:11px;color:#64748b;margin-left:6px;font-weight:500;}
.htl-card-right{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;padding:18px 20px;border-left:1px solid #f1f5f9;min-width:140px;}
.htl-card-price{font-size:22px;font-weight:800;color:#0f172a;line-height:1.2;}
.htl-card-per{font-size:11px;color:#94a3b8;font-weight:500;margin-top:2px;}
.htl-card-actions{display:flex;gap:8px;margin-top:auto;}
.htl-btn-book{padding:9px 18px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;}
.htl-btn-book:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 3px 10px rgba(37,99,235,.3);}
.htl-btn-view{padding:9px 14px;background:#f1f5f9;color:#475569;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;text-decoration:none;font-family:inherit;}
.htl-btn-view:hover{background:#e2e8f0;color:#0f172a;}

/* Empty state */
.htl-empty{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:50px 24px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.03);}
.htl-empty-icon{font-size:48px;margin-bottom:12px;}
.htl-empty-title{font-size:17px;font-weight:700;color:#334155;margin:0 0 6px;}
.htl-empty-text{font-size:13px;color:#94a3b8;margin:0 0 16px;}
.htl-empty-btn{padding:10px 24px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;}
.htl-empty-btn:hover{background:#e2e8f0;}

/* Bookings Section */
.htl-bookings-section{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:24px;box-shadow:0 4px 16px rgba(0,0,0,.03);margin-top:4px;}
.htl-bookings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.htl-bookings-title{font-size:18px;font-weight:700;color:#0f172a;margin:0;}
.htl-bookings-sub{font-size:13px;color:#94a3b8;margin:4px 0 0;}

/* Booking Row Card */
.htl-bk-list{display:flex;flex-direction:column;gap:10px;}
.htl-bk{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:16px 20px;display:grid;grid-template-columns:120px 2fr 1.2fr .8fr 1fr auto;gap:14px;align-items:center;transition:all .15s;}
.htl-bk:hover{background:#f1f5f9;border-color:#cbd5e1;}
.htl-bk-ref{font-size:12px;font-weight:700;color:#2563eb;font-family:monospace;letter-spacing:.3px;}
.htl-bk-hotel{font-size:14px;font-weight:600;color:#0f172a;line-height:1.3;}
.htl-bk-dest{font-size:12px;color:#64748b;margin-top:2px;}
.htl-bk-dates{font-size:13px;color:#475569;}
.htl-bk-guest{font-size:13px;color:#475569;}
.htl-bk-price{font-size:16px;font-weight:700;color:#0f172a;}
.htl-bk-status{display:inline-flex;align-items:center;gap:5px;padding:5px 14px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;}
.htl-bk-status.pending{background:#fef3c7;color:#92400e;}
.htl-bk-status.approved{background:#dbeafe;color:#1e40af;}
.htl-bk-status.paid{background:#ede9fe;color:#5b21b6;}
.htl-bk-status.confirmed{background:#dcfce7;color:#166534;}
.htl-bk-status.voucher{background:#ccfbf1;color:#115e59;}
.htl-bk-status.rejected{background:#fee2e2;color:#991b1b;}
.htl-bk-status.cancelled{background:#f1f5f9;color:#64748b;}
.htl-bk-actions{display:flex;gap:6px;flex-wrap:wrap;}
.htl-bk-btn{padding:7px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s;font-family:inherit;}
.htl-bk-btn.pay{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;}
.htl-bk-btn.pay:hover{box-shadow:0 3px 10px rgba(22,163,74,.3);}
.htl-bk-btn.voucher{background:#0f766e;color:#fff;}
.htl-bk-btn.voucher:hover{background:#115e59;}
.htl-bk-btn.details{background:#f1f5f9;color:#475569;}
.htl-bk-btn.details:hover{background:#e2e8f0;}

/* MOBILE */
@media(max-width:900px){
    .htl-search-grid{grid-template-columns:1fr 1fr;}.htl-field-dest{grid-column:1/-1;}
    .htl-card{flex-direction:column;}.htl-card-img{flex:none;height:180px;width:100%;}.htl-card-right{flex:none;border-left:none;border-top:1px solid #e5e7eb;flex-direction:row;align-items:center;justify-content:space-between;min-width:auto;}
    .htl-bk{grid-template-columns:1fr 1fr;gap:10px;}.htl-bk-ref{grid-column:1/-1;}
}
@media(max-width:600px){
    .htl-search-grid{grid-template-columns:1fr;}
    .htl-card-right{padding:14px 18px;}
    .htl-bk{grid-template-columns:1fr;gap:8px;}
    .htl-kpis{width:100%;}
    .htl-kpi{flex:1;min-width:0;}
}

/* Loading spinner */
.htl-loading{text-align:center;padding:40px 20px;color:#64748b;font-size:14px;}
.htl-loading p{margin:12px 0 0;}
.htl-loading-spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:htlSpin .7s linear infinite;margin:0 auto;}
@keyframes htlSpin{to{transform:rotate(360deg)}}

/* Autocomplete dropdown — premium */
#jcap-hotel-locations{position:absolute;top:100%;left:0;right:0;z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.12);margin-top:4px;max-height:260px;overflow-y:auto;display:none;}
.htl-ac-item{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;transition:background .12s;border-bottom:1px solid #e5e7eb;}
.htl-ac-item:last-child{border-bottom:none;}
.htl-ac-item:hover{background:#f0f4ff;}
.htl-ac-icon{font-size:16px;flex:0 0 20px;text-align:center;}
.htl-ac-text{flex:1;min-width:0;}
.htl-ac-text strong{display:block;font-size:14px;color:#0f172a;}
.htl-ac-sub{font-size:12px;color:#94a3b8;}

/* ═══ FLIGHT STATUS ═══ */
.jcap-status-card { background:#fff; border-radius:14px; border:1px solid var(--jcap-gray-200); padding:24px; }
.jcap-status-grid { display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:center; text-align:center; margin:20px 0; }
.jcap-status-airport h3 { font-size:28px; color:var(--jcap-primary-dark); font-weight:800; }
.jcap-status-arrow { font-size:24px; color:var(--jcap-gray-500); }
.jcap-flight-status-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.jcap-flight-status-header h3 { margin:0; }
.jcap-flight-status-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }

/* ═══ AUTOCOMPLETE ═══ */
.jcap-autocomplete {
    position:absolute; z-index:50; background:#fff; border:1px solid var(--jcap-gray-200);
    border-radius:10px; box-shadow:var(--jcap-shadow-lg); max-height:200px; overflow-y:auto; display:none;
}
.jcap-autocomplete .jcap-ac-item { padding:10px 14px; cursor:pointer; font-size:13px; border-bottom:1px solid var(--jcap-gray-100); }
.jcap-autocomplete .jcap-ac-item:hover { background:var(--jcap-gray-50); }
.jcap-ac-dropdown {
    display:none; position:absolute; top:100%; left:0; right:0;
    background:#fff; border:1px solid var(--jcap-gray-200); border-radius:0 0 10px 10px;
    box-shadow:0 8px 24px rgba(0,0,0,.1); z-index:200; max-height:240px; overflow-y:auto;
}
.jcap-ac-item { padding:10px 14px; cursor:pointer; font-size:13px; border-bottom:1px solid var(--jcap-gray-100); transition:background .15s; }
.jcap-ac-item:hover { background:#eef2ff; }
.jcap-ac-item:last-child { border-bottom:none; }
.jcap-ac-item strong { display:block; }
.jcap-ac-item small { color:var(--jcap-gray-500); }

/* ═══ MODALS ═══ */
.jcap-modal {
    position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.5); backdrop-filter:blur(4px); padding:20px;
}
.jcap-modal-content {
    background:#fff; border-radius:16px; box-shadow:0 25px 60px rgba(0,0,0,.2);
    width:100%; max-width:560px; max-height:90vh; overflow-y:auto; padding:28px;
}
.jcap-modal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.jcap-modal-header h2, .jcap-modal-header h3 { font-size:18px; font-weight:700; }
.jcap-modal-close { background:none; border:none; font-size:24px; cursor:pointer; color:var(--jcap-gray-500); padding:4px 8px; border-radius:8px; transition:background .2s; }
.jcap-modal-close:hover { background:var(--jcap-gray-100); }
.jcap-modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }
.jcap-modal-lg { max-width:800px; }
body.jcap-modal-open { overflow:hidden; }

/* ═══ TABS ═══ */
.jcap-tab { display:none; }
.jcap-tab.active { display:block; }

/* ═══ LOADING ═══ */
.jcap-loading { text-align:center; padding:40px; color:var(--jcap-gray-500); }

/* ═══ OVERLAY (mobile) ═══ */
.jcap-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:90; }

/* ═══ NOTIFICATION BAR ═══ */
#jcap-notification-bar { margin-bottom:15px; }
.jcap-notif-item { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-radius:12px; margin-bottom:8px; background:#eef2ff; border:1px solid #c7d2fe; transition:opacity .3s; }
.jcap-notif-promo { background:linear-gradient(135deg,#fffbeb,#fef3c7); border:1px solid #fde68a; }
.jcap-notif-warn { background:#fef3c7; border:1px solid #fde68a; }
.jcap-notif-success { background:#dcfce7; border:1px solid #bbf7d0; }
.jcap-notif-content { display:flex; align-items:flex-start; gap:10px; flex:1; }
.jcap-notif-icon { font-size:20px; flex-shrink:0; }
.jcap-notif-close { background:none; border:none; font-size:16px; cursor:pointer; color:#888; padding:4px 8px; border-radius:6px; transition:background .2s; }
.jcap-notif-close:hover { background:rgba(0,0,0,.08); }

/* ═══ UTILITY ═══ */
.jcap-text-success { color:#10b981 !important; }
.jcap-text-danger { color:#ef4444 !important; }
.jcap-text-muted { color:#94a3b8 !important; font-size:.9em; }
.jcap-error { color:#ef4444; font-weight:500; }
.jcap-muted { color:#94a3b8; }
.jcap-empty-state-box { text-align:center; padding:60px 20px; color:#94a3b8; }
.jcap-empty-icon { font-size:3rem; display:block; margin-bottom:1rem; opacity:.5; }
.jcap-empty-state { text-align:center; padding:40px; color:#94a3b8; font-style:italic; }
.jcap-count-badge { font-size:.85rem; color:#64748b; font-weight:500; }

/* ═══ FLIGHT CARDS ═══ */
.jcap-flight-card { padding:18px 22px; border-radius:14px; border:1px solid var(--jcap-gray-200); background:#fff; margin-bottom:14px; transition:all .2s; }
.jcap-flight-card:hover { box-shadow:var(--jcap-shadow-lg); }
.jcap-flight-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.75rem; flex-wrap:wrap; gap:.5rem; }
.jcap-flight-airline { display:flex; align-items:center; gap:.5rem; font-size:.95rem; font-weight:600; }
.jcap-airline-logo { width:24px; height:24px; border-radius:4px; object-fit:contain; }
.jcap-flight-price { font-size:1.25rem; color:var(--jcap-gray-900); font-weight:800; }
.jcap-flight-price.jcap-text-muted { color:#94a3b8; font-size:.95rem; font-weight:500; }
.jcap-flight-route { display:flex; align-items:center; justify-content:center; gap:1rem; margin:.75rem 0; padding:.75rem 0; }
.jcap-flight-point { text-align:center; min-width:80px; }
.jcap-flight-time { font-size:.9rem; font-weight:700; color:var(--jcap-gray-900); }
.jcap-flight-middle { flex:1; text-align:center; max-width:300px; }
.jcap-flight-duration { font-size:.8rem; color:#64748b; margin-bottom:4px; }
.jcap-flight-line { display:flex; align-items:center; justify-content:center; gap:0; }
.jcap-flight-dot { width:8px; height:8px; background:var(--jcap-primary); border-radius:50%; flex-shrink:0; }
.jcap-flight-dash { flex:1; height:2px; background:var(--jcap-gray-300); margin:0 2px; }
.jcap-flight-stops { font-size:.75rem; color:#94a3b8; margin-top:4px; }
.jcap-flight-stops.jcap-direct { color:#10b981; font-weight:700; }
.jcap-flight-segments { border-top:1px solid var(--jcap-gray-100); padding-top:.5rem; margin-top:.5rem; }
.jcap-flight-seg { font-size:.8rem; color:#555; padding:3px 0; display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.jcap-seg-logo { width:16px; height:16px; border-radius:2px; object-fit:contain; }
.jcap-seg-airline { font-weight:600; color:#333; }
.jcap-seg-fnum { color:var(--jcap-gray-900); font-family:monospace; font-size:.85rem; }
.jcap-seg-route { color:#555; }
.jcap-seg-dur { color:#94a3b8; font-size:.75rem; }
.jcap-seg-class { background:#eef2ff; color:var(--jcap-primary-dark); font-size:.7rem; padding:1px 6px; border-radius:4px; text-transform:capitalize; }
.jcap-flight-actions { margin-top:.75rem; padding-top:.5rem; border-top:1px solid var(--jcap-gray-100); display:flex; gap:.5rem; flex-wrap:wrap; }

/* Booking partners */
.jcap-booking-partners { margin-top:.5rem; }
.jcap-partner-row { display:flex; align-items:center; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--jcap-gray-100); gap:.5rem; flex-wrap:wrap; }
.jcap-partner-name { font-weight:600; }

/* Duffel */
.df-offer:hover { box-shadow:0 4px 16px rgba(99,102,241,.1); }
.df-offer .df-book-btn { white-space:nowrap; }
.df-controls .jcap-select { min-width:160px; }
#jcap-modal-duffel-book .jcap-modal-content { max-width:780px; max-height:90vh; overflow-y:auto; }

/* ═══ TRAVEL PLANS ═══ */
.jcap-tp-detail-header { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:15px; }
.jcap-tp-detail-header .jcap-page-title { margin:0; flex:1; }
.jcap-tp-tabs { display:flex; gap:4px; margin-bottom:15px; flex-wrap:wrap; border-bottom:2px solid var(--jcap-gray-200); padding-bottom:0; }
.jcap-tp-tab { padding:8px 16px; border:none; background:var(--jcap-gray-100); cursor:pointer; font-size:13px; font-weight:600; border-radius:10px 10px 0 0; transition:all .2s; }
.jcap-tp-tab:hover { background:var(--jcap-gray-200); }
.jcap-tp-tab.active { background:var(--jcap-primary); color:#fff; }
.jcap-tp-section { display:none; }
.jcap-tp-section.active { display:block; }
.jcap-tp-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:15px; margin-bottom:15px; }
.jcap-tp-incl-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:4px; }
.jcap-tp-tag { display:inline-block; background:#eef2ff; border:1px solid #c7d2fe; padding:2px 8px; border-radius:12px; font-size:11px; font-weight:500; }
.jcap-inclusions-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:6px; }
.jcap-check { display:flex; align-items:center; gap:6px; padding:6px 10px; background:var(--jcap-gray-50); border:1px solid var(--jcap-gray-200); border-radius:8px; font-size:12px; cursor:pointer; transition:background .15s; }
.jcap-check:hover { background:#eef2ff; }
.jcap-check input[type=checkbox] { margin:0; }
.jcap-tp-itin-step { display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--jcap-gray-100); position:relative; }
.jcap-tp-itin-num { width:28px; height:28px; background:var(--jcap-primary); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0; }
.jcap-tp-itin-body { flex:1; }
.jcap-tp-remove-itin { position:absolute; right:0; top:10px; background:none; border:none; color:#ef4444; cursor:pointer; font-size:14px; }
.jcap-tp-timeline { position:relative; padding-left:30px; }
.jcap-tp-timeline::before { content:''; position:absolute; left:13px; top:0; bottom:0; width:2px; background:var(--jcap-gray-200); }
.jcap-tp-tl-item { display:flex; gap:10px; padding:10px 0; position:relative; }
.jcap-tp-tl-icon { width:28px; height:28px; background:#fff; border:2px solid var(--jcap-primary); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; z-index:1; position:absolute; left:-30px; }
.jcap-tp-tl-content { flex:1; padding-left:5px; }
.jcap-tp-doc-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--jcap-gray-100); }
.jcap-tp-doc-icon { font-size:20px; }
.jcap-tp-doc-check { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.jcap-tp-doc-chk { padding:3px 10px; border-radius:12px; font-size:11px; font-weight:500; }
.jcap-tp-doc-chk.done { background:#dcfce7; color:#166534; }
.jcap-tp-doc-chk.missing { background:var(--jcap-gray-50); color:#64748b; border:1px dashed #cbd5e1; }

/* ═══ TRAVEL OFFERS ═══ */
.jcap-offers-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.jcap-offer-card { background:#fff; border:1px solid var(--jcap-gray-200); border-radius:14px; overflow:hidden; transition:transform .2s,box-shadow .2s; position:relative; }
.jcap-offer-card:hover { transform:translateY(-2px); box-shadow:var(--jcap-shadow-lg); }
.jcap-offer-card.featured { border-color:#f59e0b; box-shadow:0 0 0 1px #f59e0b; }
.jcap-offer-img { height:180px; background-size:cover; background-position:center; background-color:var(--jcap-gray-100); }
.jcap-offer-img-default { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#1e1b4b,#312e81); }
.jcap-offer-img-default span { font-size:64px; }
.jcap-offer-badge { position:absolute; top:12px; right:12px; background:#f59e0b; color:#fff; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; }
.jcap-offer-body { padding:16px; }
.jcap-offer-body h3 { margin:0 0 6px; font-size:17px; color:var(--jcap-gray-900); font-weight:700; }
.jcap-offer-route { font-size:13px; color:#64748b; margin:0 0 4px; }
.jcap-offer-dates { font-size:12px; color:#94a3b8; margin:0 0 8px; }
.jcap-offer-desc { font-size:13px; color:#555; line-height:1.4; margin:0 0 10px; }
.jcap-offer-incl { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.jcap-offer-incl span { font-size:11px; padding:3px 8px; background:#dcfce7; color:#166534; border-radius:12px; font-weight:600; }
.jcap-offer-price { font-size:13px; }
.jcap-offer-orig { text-decoration:line-through; color:#94a3b8; font-size:14px; }
.jcap-offer-now { font-size:22px; font-weight:800; color:#f59e0b; }

/* ═══ TRIPS / VOYAGES ═══ */
.jcap-page-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; flex-wrap:wrap; gap:.5rem; }
.jcap-page-actions { display:flex; gap:8px; }
.jcap-filters-bar { display:flex; gap:10px; align-items:center; margin-bottom:1rem; flex-wrap:wrap; }
.jcap-filters-bar .jcap-input { max-width:220px; }
.jcap-trips-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1rem; }
.jcap-trip-card { background:#fff; border-radius:14px; border:1px solid var(--jcap-gray-200); overflow:hidden; cursor:pointer; transition:box-shadow .2s,transform .15s; }
.jcap-trip-card:hover { box-shadow:var(--jcap-shadow-lg); transform:translateY(-2px); }
.jcap-trip-card-img { height:160px; background-size:cover; background-position:center; background-color:#eef2ff; position:relative; display:flex; align-items:center; justify-content:center; }
.jcap-trip-card-img-empty { background:linear-gradient(135deg,#eef2ff,#dbeafe); }
.jcap-trip-card-icon { font-size:3rem; opacity:.4; }
.jcap-trip-card-code { position:absolute; top:10px; left:10px; background:rgba(0,0,0,.5); color:#fff; font-size:.7rem; padding:3px 8px; border-radius:6px; font-weight:600; letter-spacing:.5px; }
.jcap-trip-card-body { padding:14px; }
.jcap-trip-card-body h4 { margin:0 0 8px; font-size:1rem; color:var(--jcap-gray-900); font-weight:600; }
.jcap-trip-card-meta { display:flex; flex-wrap:wrap; gap:8px; font-size:.8rem; color:#64748b; margin-bottom:10px; }
.jcap-trip-card-meta span { white-space:nowrap; }
.jcap-trip-card-footer { display:flex; justify-content:space-between; align-items:center; }
.jcap-trip-card-actions { display:flex; gap:4px; }

/* Trip editor */
.jcap-trip-topbar { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--jcap-gray-200); margin-bottom:1rem; flex-wrap:wrap; gap:8px; }
.jcap-trip-topbar-left { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.jcap-trip-topbar-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.jcap-trip-title-editable { font-size:1.1rem; font-weight:600; outline:none; border-bottom:1px dashed transparent; padding:2px 4px; }
.jcap-trip-title-editable:focus { border-bottom-color:var(--jcap-primary); }
.jcap-trip-code { font-size:.75rem; color:#64748b; background:var(--jcap-gray-100); padding:2px 8px; border-radius:6px; }
.jcap-trip-status-badge { padding:3px 10px; border-radius:12px; font-size:.7rem; font-weight:600; text-transform:uppercase; }
.jcap-trip-editor-layout { display:flex; gap:1rem; }
.jcap-trip-editor-main { flex:1; min-width:0; }
.jcap-trip-editor-sidebar { width:240px; flex-shrink:0; background:var(--jcap-gray-50); border-radius:12px; padding:14px; border:1px solid var(--jcap-gray-200); max-height:calc(100vh - 200px); overflow-y:auto; display:none; color:var(--jcap-gray-900) !important; }
.jcap-trip-sidebar-section { margin-bottom:16px; }
.jcap-trip-sidebar-section h4 { font-size:.7rem; color:#94a3b8; font-weight:600; margin:0 0 8px; text-transform:uppercase; letter-spacing:.5px; }
.jcap-block-palette { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.jcap-app .jcap-block-palette .jcap-block-btn,
.jcap-block-btn { display:flex; align-items:center; gap:6px; background:#fff !important; border:1px solid var(--jcap-gray-200) !important; border-radius:10px; padding:8px 10px; font-size:.8rem !important; cursor:pointer; transition:all .15s; text-align:left; color:var(--jcap-gray-900) !important; font-weight:500 !important; line-height:1.2; }
.jcap-app .jcap-block-palette .jcap-block-btn:hover,
.jcap-block-btn:hover { border-color:var(--jcap-primary) !important; background:#eef2ff !important; color:var(--jcap-primary-dark) !important; }
.jcap-block-btn span:first-child { font-size:1.1rem; flex-shrink:0; }
.jcap-app .jcap-trip-editor-sidebar,
.jcap-app .jcap-trip-editor-sidebar * { color:var(--jcap-gray-900); }
.jcap-app .jcap-trip-sidebar-section h4 { color:#64748b !important; }
.jcap-trip-summary { background:#fff; border-radius:10px; padding:12px; }
.jcap-trip-summary-item { display:flex; justify-content:space-between; padding:4px 0; font-size:.8rem; color:#4b5563; border-bottom:1px solid var(--jcap-gray-100); }
.jcap-trip-summary-item:last-child { border-bottom:none; }
.jcap-trip-tabs { display:flex; gap:0; border-bottom:2px solid var(--jcap-gray-200); margin-bottom:1rem; }
.jcap-trip-tab { background:none; border:none; padding:10px 18px; font-size:.85rem; font-weight:500; color:#64748b; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .15s; }
.jcap-trip-tab:hover { color:var(--jcap-primary); }
.jcap-trip-tab.active { color:var(--jcap-primary); border-bottom-color:var(--jcap-primary); }
.jcap-ttab { display:none; }
.jcap-ttab.active { display:block; }
.jcap-trip-overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.jcap-trip-info-card { background:#fff; border:1px solid var(--jcap-gray-200); border-radius:12px; padding:16px; display:grid; grid-template-columns:auto 1fr; gap:6px 12px; align-items:center; }
.jcap-trip-info-card label { font-size:.8rem; color:#64748b; font-weight:500; }
.jcap-trip-info-card span { font-size:.85rem; color:var(--jcap-gray-900); }
.jcap-input-sm { padding:6px 10px !important; font-size:.85rem !important; }
.jcap-trip-cover-area { margin-bottom:1rem; }
.jcap-trip-cover-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; height:200px; border:2px dashed #d1d5db; border-radius:12px; cursor:pointer; color:#64748b; gap:8px; transition:border-color .2s; }
.jcap-trip-cover-placeholder:hover { border-color:var(--jcap-primary); }
.jcap-trip-blocks-area { min-height:200px; }
.jcap-trip-block { background:#fff; border:1px solid var(--jcap-gray-200); border-radius:10px; margin-bottom:8px; overflow:hidden; }
.jcap-trip-block-header { display:flex; align-items:center; gap:8px; padding:8px 12px; background:var(--jcap-gray-50); border-bottom:1px solid var(--jcap-gray-100); font-size:.85rem; font-weight:500; }
.jcap-trip-block-grip { cursor:grab; color:#94a3b8; user-select:none; }
.jcap-trip-block-actions { margin-left:auto; display:flex; gap:4px; }
.jcap-trip-block-content { padding:12px; font-size:.85rem; color:#4b5563; line-height:1.5; }
.jcap-travelers-compact { display:flex; flex-wrap:wrap; gap:6px; }
.jcap-traveler-chip { background:#eef2ff; color:var(--jcap-primary-dark); padding:4px 10px; border-radius:20px; font-size:.8rem; font-weight:500; }
.jcap-trip-create-options { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.jcap-trip-create-card { background:#fff; border:2px solid var(--jcap-gray-200); border-radius:14px; padding:24px; text-align:left; cursor:pointer; transition:all .2s; }
.jcap-trip-create-card:hover { border-color:var(--jcap-primary); box-shadow:0 4px 16px rgba(99,102,241,.1); }
.jcap-trip-create-card-highlight { border-color:var(--jcap-primary); border-style:dashed; }
.jcap-trip-create-icon { font-size:2rem; display:block; margin-bottom:12px; }
.jcap-trip-create-card h3 { margin:0 0 8px; font-size:1rem; }
.jcap-trip-create-card p { font-size:.8rem; color:#64748b; margin:0 0 16px; line-height:1.5; }
.jcap-trip-create-badges { display:flex; gap:6px; margin-bottom:8px; }
.jcap-trip-template-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1rem; margin-top:1rem; }
.jcap-template-card { background:#fff; border:1px solid var(--jcap-gray-200); border-radius:12px; overflow:hidden; cursor:pointer; transition:transform .15s; }
.jcap-template-card:hover { transform:translateY(-2px); box-shadow:var(--jcap-shadow-lg); }
.jcap-template-img { height:120px; background-size:cover; background-position:center; background-color:#eef2ff; display:flex; align-items:center; justify-content:center; }
.jcap-template-img-empty span { font-size:2rem; opacity:.4; }
.jcap-template-card p { padding:10px; margin:0; font-size:.8rem; font-weight:500; }
.jcap-share-section { margin-bottom:1.5rem; }
.jcap-share-section h4 { margin:0 0 8px; font-size:.9rem; }
.jcap-share-section p { font-size:.8rem; color:#64748b; margin:0 0 10px; }
.jcap-share-url-row { display:flex; gap:8px; }
.jcap-share-url-row .jcap-input { flex:1; }
.jcap-btn-success { background:linear-gradient(135deg,#10b981,#059669) !important; color:#fff !important; border:none !important; box-shadow:0 2px 8px rgba(16,185,129,.3); }
.jcap-btn-success:hover { box-shadow:0 4px 16px rgba(16,185,129,.4) !important; transform:translateY(-1px); }

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
    .jcap-topbar { display:flex; }
    .jcap-sidebar {
        position:fixed; left:-100%; top:0; z-index:95; height:100vh;
        transition:left .3s ease; width:280px; min-width:280px;
    }
    .jcap-sidebar.compact { width:280px!important; min-width:280px!important; }
    .jcap-sidebar.compact .jcap-sb-text { display:inline!important; }
    .jcap-compact-btn { display:none!important; }
    .jcap-sidebar.open { left:0; }
    .jcap-overlay.open { display:block; }
    .jcap-main { padding:16px; }
    .jcap-page-title { font-size:18px; }
    .jcap-stats { grid-template-columns:1fr 1fr; gap:10px; }
    .jcap-stat-value { font-size:22px; }
    .jcap-stat-large .jcap-stat-value { font-size:28px; }
    .jcap-form-row { grid-template-columns:1fr; }
    .jcap-form-grid { grid-template-columns:1fr 1fr; }
    .jcap-table thead { display:none; }
    .jcap-table, .jcap-table tbody, .jcap-table tr, .jcap-table td { display:block; }
    .jcap-table tr { background:#fff; border-radius:12px; box-shadow:var(--jcap-shadow); margin-bottom:12px; padding:12px; }
    .jcap-table td { padding:4px 0; border:none; }
    .jcap-table td::before { content:attr(data-label); font-weight:600; display:inline-block; width:100px; font-size:12px; color:var(--jcap-gray-500); }
    .jcap-result-card { flex-direction:column; align-items:flex-start; }

    .jcap-toolbar { flex-direction:column; align-items:stretch; }
    .jcap-toolbar .jcap-btn, .jcap-toolbar .jcap-select { width:100%; }
    .jcap-modal-content { padding:16px; }
    .jcap-trip-editor-layout { flex-direction:column; }
    .jcap-trip-editor-sidebar { width:100%; max-height:none; }
    .jcap-trip-overview-grid { grid-template-columns:1fr; }
    .jcap-trip-create-options { grid-template-columns:1fr; }
    .jcap-trips-grid { grid-template-columns:1fr; }
    .jcap-block-palette { grid-template-columns:1fr 1fr 1fr; }
    .jcap-trip-topbar { flex-direction:column; align-items:flex-start; }
}

@media (max-width: 480px) {
    .jcap-stats { grid-template-columns:1fr; }
    .jcap-form-grid { grid-template-columns:1fr; }
    .jcap-auth-card { padding:24px 16px; }
    .jcap-flight-status-grid { grid-template-columns:1fr; }
    .jcap-offers-grid { grid-template-columns:1fr; }
    .jcap-form-row { flex-direction:column; }
    .jcap-tp-grid { grid-template-columns:1fr; }
}

@media (min-width: 901px) and (max-width: 1200px) { .jcap-tp-grid { grid-template-columns:1fr 1fr; } }



/* ═══════════════════════════════════════════════════════
 *  CREATIF MARKET — Fiverr-inspired Marketplace Styles
 *  v2.5.1
 * ═══════════════════════════════════════════════════════ */

:root {
    --cm-green: #1dbf73;
    --cm-green-dark: #19a463;
    --cm-green-light: #e8faf0;
    --cm-dark: #404145;
    --cm-gray: #74767e;
    --cm-light-gray: #b5b6ba;
    --cm-bg: #fafafa;
    --cm-border: #e4e5e7;
    --cm-white: #ffffff;
    --cm-yellow: #ffb33e;
    --cm-red: #ff4d4d;
    --cm-blue: #4a73e8;
    --cm-orange: #ff8b12;
    --cm-radius: 8px;
    --cm-shadow: 0 1px 4px rgba(0,0,0,.08);
    --cm-shadow-hover: 0 5px 20px rgba(0,0,0,.12);
}

/* ── Marketplace tab container — full bleed ── */
#jcap-tab-marketplace { overflow-x: hidden !important; }

/* ── Top navigation bar ── */
.cm-topbar {
    background: var(--cm-white);
    border-bottom: 1px solid var(--cm-border);
    overflow: hidden;
}
.cm-topbar-inner {
    max-width: 1200px; margin: 0 auto;
    padding: 8px 16px;
    display: flex; align-items: center; gap: 10px;
    flex-wrap: wrap;
}
.cm-logo {
    font-size: 20px; font-weight: 800; color: var(--cm-dark);
    white-space: nowrap; letter-spacing: -0.5px; flex-shrink: 0;
}
.cm-logo span { color: var(--cm-green); }
.cm-search {
    flex: 1; display: flex; min-width: 120px; max-width: 360px;
    border: 1px solid var(--cm-border); border-radius: 6px;
    overflow: hidden; background: var(--cm-white);
    transition: border-color .2s; height: 36px;
}
.cm-search:focus-within { border-color: var(--cm-dark); }
.cm-search input {
    flex: 1; border: none; outline: none; padding: 0 10px;
    font-size: 13px; color: var(--cm-dark); background: transparent;
    min-width: 0;
}
.cm-search button {
    background: var(--cm-dark); color: #fff; border: none;
    padding: 0 12px; cursor: pointer; font-size: 14px;
    transition: background .2s; flex-shrink: 0;
}
.cm-search button:hover { background: var(--cm-green); }
.cm-nav-links {
    display: flex; gap: 2px; align-items: center;
    margin-left: auto; flex-shrink: 0;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.cm-nav-links::-webkit-scrollbar { display: none; }
.cm-nav-btn {
    background: none; border: none; padding: 6px 10px;
    font-size: 12px; color: var(--cm-gray); cursor: pointer;
    border-radius: 6px; font-weight: 500; white-space: nowrap;
    transition: all .2s;
}
.cm-nav-btn:hover { background: var(--cm-bg); color: var(--cm-dark); }
.cm-nav-btn.active { color: var(--cm-green); font-weight: 600; }
.cm-nav-btn.cm-btn-sell {
    background: var(--cm-green); color: #fff; border-radius: 6px;
    font-weight: 600; padding: 6px 14px;
}
.cm-nav-btn.cm-btn-sell:hover { background: var(--cm-green-dark); }

/* ── Category bar — always horizontal scroll ── */
.cm-cats {
    background: var(--cm-white); border-bottom: 1px solid var(--cm-border);
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.cm-cats::-webkit-scrollbar { display: none; }
.cm-cats-inner {
    max-width: 1200px; margin: 0 auto;
    padding: 0 16px;
    display: inline-flex; white-space: nowrap;
    min-width: 100%;
}
.cm-cat-link {
    padding: 10px 14px; font-size: 13px; color: var(--cm-gray);
    border-bottom: 3px solid transparent; cursor: pointer;
    transition: all .2s; white-space: nowrap; text-decoration: none;
    font-weight: 500; flex-shrink: 0;
}
.cm-cat-link:hover { color: var(--cm-green); border-bottom-color: var(--cm-green); }
.cm-cat-link.active { color: var(--cm-green); border-bottom-color: var(--cm-green); font-weight: 600; }

/* ── Content area ── */
.cm-content { max-width: 1200px; margin: 0 auto; padding: 16px; }
.cm-section-title { font-size: 20px; font-weight: 700; color: var(--cm-dark); margin: 0 0 14px; }

/* ── Service cards (Fiverr gig cards) ── */
.cm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.cm-card {
    background: var(--cm-white); border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius); overflow: hidden; cursor: pointer;
    transition: box-shadow .2s, transform .2s;
}
.cm-card:hover { box-shadow: var(--cm-shadow-hover); transform: translateY(-2px); }
.cm-card-img {
    width: 100%; aspect-ratio: 16/10; object-fit: cover;
    display: block; background: #e8e8e8;
}
.cm-card-body { padding: 10px 12px; }
.cm-card-seller { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.cm-card-avatar {
    width: 24px; height: 24px; border-radius: 50%; object-fit: cover;
    background: var(--cm-dark); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 600; flex-shrink: 0;
}
.cm-card-seller-name { font-size: 12px; font-weight: 600; color: var(--cm-dark); }
.cm-card-level {
    font-size: 9px; padding: 1px 5px; border-radius: 3px;
    font-weight: 600; margin-left: 2px;
}
.cm-level-top { background: #fef3c7; color: #92400e; }
.cm-level-new { background: #e0f2fe; color: #0369a1; }
.cm-card-title {
    font-size: 13px; color: var(--cm-dark); line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; margin: 0 0 6px; font-weight: 400;
}
.cm-card-footer {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 6px; border-top: 1px solid var(--cm-border);
}
.cm-card-rating { display: flex; align-items: center; gap: 3px; font-size: 12px; }
.cm-card-star { color: var(--cm-yellow); font-size: 12px; }
.cm-card-rating-num { font-weight: 700; color: var(--cm-dark); }
.cm-card-rating-count { color: var(--cm-gray); font-size: 11px; }
.cm-card-price { text-align: right; }
.cm-card-price-label { font-size: 10px; color: var(--cm-gray); text-transform: uppercase; }
.cm-card-price-val { font-size: 15px; font-weight: 700; color: var(--cm-dark); }

/* ── Detail page ── */
.cm-detail { display: grid; grid-template-columns: 1fr 320px; gap: 24px; }
.cm-detail-main { min-width: 0; }
.cm-detail-side { align-self: start; }
.cm-back-btn {
    background: none; border: none; color: var(--cm-gray); cursor: pointer;
    font-size: 13px; padding: 6px 0; margin-bottom: 10px; display: inline-flex;
    align-items: center; gap: 4px;
}
.cm-back-btn:hover { color: var(--cm-green); }
.cm-detail-img {
    width: 100%; aspect-ratio: 16/9; object-fit: cover;
    border-radius: var(--cm-radius); margin-bottom: 10px; cursor: pointer;
}
.cm-detail-gallery { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 14px; }
.cm-detail-thumb {
    width: 64px; height: 48px; border-radius: 4px; object-fit: cover;
    cursor: pointer; border: 2px solid transparent; flex-shrink: 0;
    opacity: .6; transition: all .2s;
}
.cm-detail-thumb:hover, .cm-detail-thumb.active { opacity: 1; border-color: var(--cm-green); }
.cm-detail-seller-bar {
    display: flex; gap: 10px; align-items: center; padding: 12px 0;
    border-bottom: 1px solid var(--cm-border); margin-bottom: 14px; cursor: pointer;
}
.cm-seller-avatar-lg {
    width: 42px; height: 42px; border-radius: 50%; object-fit: cover;
    background: var(--cm-dark); color: #fff; display: flex;
    align-items: center; justify-content: center; font-size: 18px;
    font-weight: 700; flex-shrink: 0;
}
.cm-seller-link { font-weight: 700; color: var(--cm-dark); transition: color .2s; font-size: 14px; }
.cm-seller-meta { font-size: 12px; color: var(--cm-gray); }
.cm-detail-title { font-size: 22px; font-weight: 700; color: var(--cm-dark); margin: 0 0 4px; line-height: 1.3; }
.cm-detail-cat { font-size: 13px; color: var(--cm-green); margin-bottom: 14px; }
.cm-detail-desc { color: #555; line-height: 1.6; font-size: 14px; white-space: pre-wrap; }

/* ── Package sidebar ── */
.cm-package {
    background: var(--cm-white); border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius); overflow: hidden;
}
.cm-pkg-tabs { display: flex; border-bottom: 1px solid var(--cm-border); }
.cm-pkg-tab {
    flex: 1; padding: 10px; text-align: center; font-size: 13px;
    font-weight: 600; color: var(--cm-gray); cursor: pointer;
    border-bottom: 3px solid transparent; transition: all .2s;
    background: none; border-top: none; border-left: none; border-right: none;
}
.cm-pkg-tab:hover { color: var(--cm-dark); }
.cm-pkg-tab.active { color: var(--cm-green); border-bottom-color: var(--cm-green); }
.cm-pkg-body { padding: 16px; }
.cm-pkg-price { font-size: 26px; font-weight: 800; color: var(--cm-dark); margin-bottom: 4px; }
.cm-pkg-delivery { font-size: 12px; color: var(--cm-gray); margin-bottom: 10px; display: flex; align-items: center; gap: 4px; }
.cm-pkg-features { list-style: none; padding: 0; margin: 12px 0; }
.cm-pkg-features li { padding: 3px 0; font-size: 13px; color: var(--cm-dark); display: flex; align-items: center; gap: 6px; }
.cm-pkg-features li::before { content: '✓'; color: var(--cm-green); font-weight: 700; }
.cm-pkg-order-btn {
    width: 100%; padding: 10px; background: var(--cm-green); color: #fff;
    border: none; border-radius: 6px; font-size: 15px; font-weight: 700;
    cursor: pointer; transition: background .2s;
}
.cm-pkg-order-btn:hover { background: var(--cm-green-dark); }
.cm-pkg-order-btn:disabled { background: #ccc; cursor: not-allowed; }
.cm-pkg-tax { font-size: 11px; color: var(--cm-gray); text-align: center; margin-top: 4px; }
.cm-pkg-share {
    display: flex; justify-content: center; padding: 10px;
    border-top: 1px solid var(--cm-border); margin-top: 12px;
}
.cm-pkg-share button {
    background: none; border: 1px solid var(--cm-border); border-radius: 50%;
    width: 32px; height: 32px; cursor: pointer; font-size: 14px;
    transition: all .2s; display: flex; align-items: center; justify-content: center;
}
.cm-pkg-share button:hover { border-color: var(--cm-green); color: var(--cm-green); }

/* ── Order cards ── */
.cm-orders { display: flex; flex-direction: column; gap: 10px; }
.cm-order-card {
    background: var(--cm-white); border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius); padding: 14px 16px; display: flex;
    gap: 12px; align-items: start; transition: box-shadow .2s;
}
.cm-order-card:hover { box-shadow: var(--cm-shadow-hover); }
.cm-order-img {
    width: 70px; height: 52px; border-radius: 6px; object-fit: cover;
    flex-shrink: 0; background: #eee;
}
.cm-order-info { flex: 1; min-width: 0; }
.cm-order-title { font-size: 13px; font-weight: 600; color: var(--cm-dark); margin-bottom: 2px; }
.cm-order-meta { font-size: 11px; color: var(--cm-gray); }
.cm-order-right { text-align: right; flex-shrink: 0; }
.cm-order-total { font-size: 15px; font-weight: 700; color: var(--cm-dark); }
.cm-status-badge {
    display: inline-block; padding: 2px 8px; border-radius: 20px;
    font-size: 10px; font-weight: 600; color: #fff; margin-top: 3px;
}
.cm-order-actions { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 8px; }
.cm-action-btn {
    padding: 5px 10px; border-radius: 5px; font-size: 11px;
    font-weight: 600; cursor: pointer; border: 1px solid var(--cm-border);
    background: var(--cm-white); color: var(--cm-dark); transition: all .15s;
}
.cm-action-btn:hover { border-color: var(--cm-green); color: var(--cm-green); }
.cm-action-btn.cm-primary { background: var(--cm-green); color: #fff; border-color: var(--cm-green); }
.cm-action-btn.cm-primary:hover { background: var(--cm-green-dark); }
.cm-action-btn.cm-danger { color: var(--cm-red); }
.cm-action-btn.cm-danger:hover { border-color: var(--cm-red); background: #fff5f5; }
.cm-action-btn.cm-warning { color: var(--cm-orange); }
.cm-action-btn.cm-warning:hover { border-color: var(--cm-orange); }

/* ── Seller dashboard stats ── */
.cm-dash-stats {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px; margin-bottom: 20px;
}
.cm-stat-card {
    background: var(--cm-white); border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius); padding: 14px; text-align: center;
}
.cm-stat-val { font-size: 24px; font-weight: 800; color: var(--cm-dark); }
.cm-stat-label { font-size: 11px; color: var(--cm-gray); text-transform: uppercase; margin-top: 2px; }

/* ── My listings ── */
.cm-listing-card {
    background: var(--cm-white); border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius); overflow: hidden;
    display: flex; flex-direction: column;
}
.cm-listing-img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.cm-listing-body { padding: 10px; flex: 1; display: flex; flex-direction: column; }
.cm-listing-title { font-size: 13px; font-weight: 600; color: var(--cm-dark); margin-bottom: 4px; }
.cm-listing-stats { font-size: 11px; color: var(--cm-gray); display: flex; gap: 10px; margin-bottom: 6px; }
.cm-listing-footer {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 6px; border-top: 1px solid var(--cm-border); margin-top: auto;
}

/* ── Reviews ── */
.cm-reviews { margin-top: 24px; }
.cm-review { padding: 14px 0; border-bottom: 1px solid var(--cm-border); }
.cm-review:last-child { border-bottom: none; }
.cm-review-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.cm-review-name { font-weight: 600; color: var(--cm-dark); font-size: 13px; }
.cm-review-text { color: #555; font-size: 13px; line-height: 1.5; }

/* ── Docs, fraud, empty ── */
.cm-docs-panel {
    background: #f0f9ff; border: 1px solid #bae6fd; border-radius: var(--cm-radius);
    padding: 14px; margin-top: 14px;
}
.cm-docs-panel h4 { margin: 0 0 8px; color: #1e40af; font-size: 13px; }
.cm-docs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; }
.cm-doc-item { font-size: 12px; color: #1e3a5f; padding: 2px 0; }
.cm-doc-item::before { content: '✓ '; color: var(--cm-green); font-weight: 600; }
.cm-fraud-warn {
    padding: 10px 14px; background: #fef2f2; border: 1px solid #fecaca;
    border-radius: var(--cm-radius); margin-top: 14px; font-size: 12px; color: #991b1b;
}
.cm-empty { text-align: center; padding: 48px 16px; color: var(--cm-gray); }
.cm-empty-icon { font-size: 48px; margin-bottom: 10px; opacity: .5; }
.cm-empty-text { font-size: 15px; margin: 0; }
.cm-empty-sub { font-size: 12px; color: var(--cm-light-gray); margin-top: 4px; }
.cm-empty-sub a { color: var(--cm-green); text-decoration: underline; }

/* ── TOS ── */
.cm-tos-box {
    display: flex; gap: 8px; align-items: start; padding: 10px 12px;
    background: var(--cm-green-light); border: 1px solid #a7f3d0;
    border-radius: var(--cm-radius); margin: 12px 0; font-size: 12px;
    cursor: pointer; color: var(--cm-dark);
}
.cm-tos-box a { color: var(--cm-green-dark); font-weight: 600; text-decoration: underline; }

/* ── Loading ── */
.cm-loading { text-align: center; padding: 48px; color: var(--cm-gray); font-size: 13px; }
.cm-loading::after {
    content: ''; display: block; width: 28px; height: 28px;
    border: 3px solid var(--cm-border); border-top-color: var(--cm-green);
    border-radius: 50%; animation: cm-spin .7s linear infinite;
    margin: 10px auto 0;
}
@keyframes cm-spin { to { transform: rotate(360deg); } }

/* ── Profile ── */
.cm-profile-header {
    display: flex; gap: 14px; align-items: center; padding-bottom: 14px;
    border-bottom: 1px solid var(--cm-border); margin-bottom: 14px;
}
.cm-profile-avatar {
    width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
    background: var(--cm-dark); color: #fff; display: flex; align-items: center;
    justify-content: center; font-size: 22px; font-weight: 700; flex-shrink: 0;
}
.cm-profile-name { font-size: 16px; font-weight: 700; color: var(--cm-dark); }
.cm-profile-meta { font-size: 12px; color: var(--cm-gray); }

/* ═══════════════════════════════════════════════════════
 *  FORM FIX — Ensure labels/inputs always readable
 * ═══════════════════════════════════════════════════════ */
.jcap-field label {
    color: #333 !important;
    display: block !important;
    margin-bottom: 6px !important;
}
.jcap-input, .jcap-field input, .jcap-field select, .jcap-field textarea,
input.jcap-input, select.jcap-input, textarea.jcap-input {
    color: #1f2937 !important;
    background: #ffffff !important;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
    width: 100%;
    box-sizing: border-box;
}
.jcap-input:focus, .jcap-field input:focus, .jcap-field select:focus, .jcap-field textarea:focus {
    border-color: var(--cm-green) !important;
    box-shadow: 0 0 0 3px rgba(29,191,115,.15) !important;
    outline: none !important;
}
.jcap-input::placeholder { color: #9ca3af !important; }

/* ═══════════════════════════════════════════════════════
 *  RESPONSIVE — Tablet (≤900px)
 * ═══════════════════════════════════════════════════════ */
@media (max-width: 900px) {
    .cm-topbar-inner { gap: 6px; }
    .cm-search { order: 10; flex: 0 0 100%; max-width: 100%; margin-top: 4px; }
    .cm-nav-links { gap: 0; }
    .cm-nav-btn { font-size: 11px; padding: 6px 8px; }
    .cm-nav-btn.cm-btn-sell { padding: 6px 10px; font-size: 11px; }
    .cm-detail { grid-template-columns: 1fr; }
    .cm-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
    .cm-order-card { flex-wrap: wrap; }
    .cm-order-right { flex: 0 0 auto; }
    .cm-dash-stats { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════
 *  RESPONSIVE — Mobile (≤600px)
 * ═══════════════════════════════════════════════════════ */
@media (max-width: 600px) {
    /* Portal-wide mobile */
    .jcap-main { padding: 10px 8px !important; }
    .jcap-page-title { font-size: 17px !important; }
    .jcap-card { padding: 12px !important; }
    .jcap-stats { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
    .jcap-form-row { grid-template-columns: 1fr !important; }
    .jcap-form-grid { grid-template-columns: 1fr !important; }
    .jcap-modal-content { padding: 14px !important; max-width: 96vw !important; }
    .jcap-modal-lg { max-width: 96vw !important; }
    
    /* CM topbar mobile */
    .cm-topbar-inner { padding: 6px 8px; gap: 4px; }
    .cm-logo { font-size: 16px; }
    .cm-search { height: 32px; }
    .cm-search input { font-size: 12px; padding: 0 8px; }
    .cm-search button { padding: 0 10px; font-size: 13px; }
    .cm-nav-links { width: 100%; gap: 0; }
    .cm-nav-btn { font-size: 10px; padding: 5px 6px; }
    .cm-nav-btn.cm-btn-sell { font-size: 10px; padding: 5px 8px; }
    
    /* CM categories mobile */
    .cm-cat-link { font-size: 11px; padding: 8px 10px; }
    
    /* CM content mobile */
    .cm-content { padding: 10px !important; }
    .cm-section-title { font-size: 16px; }
    .cm-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .cm-card-body { padding: 8px; }
    .cm-card-title { font-size: 11px; }
    .cm-card-seller { gap: 4px; margin-bottom: 4px; }
    .cm-card-avatar { width: 20px; height: 20px; font-size: 9px; }
    .cm-card-seller-name { font-size: 10px; }
    .cm-card-level { font-size: 8px; }
    .cm-card-footer { padding-top: 4px; }
    .cm-card-price-val { font-size: 13px; }
    .cm-card-price-label { font-size: 8px; }
    .cm-card-rating { font-size: 10px; }
    
    /* Detail mobile */
    .cm-detail { grid-template-columns: 1fr; gap: 12px; }
    .cm-detail-title { font-size: 17px; }
    .cm-detail-desc { font-size: 13px; }
    .cm-docs-grid { grid-template-columns: 1fr; }
    .cm-pkg-body { padding: 12px; }
    .cm-pkg-price { font-size: 22px; }
    .cm-pkg-order-btn { font-size: 14px; padding: 10px; }
    
    /* Orders mobile */
    .cm-order-card { flex-direction: column; gap: 6px; padding: 10px; }
    .cm-order-img { display: none; }
    .cm-order-right { text-align: left; display: flex; gap: 8px; align-items: center; }
    .cm-action-btn { padding: 4px 8px; font-size: 10px; }
    .cm-dash-stats { grid-template-columns: 1fr 1fr; gap: 6px; }
    .cm-stat-card { padding: 10px; }
    .cm-stat-val { font-size: 20px; }
    .cm-stat-label { font-size: 9px; }
    
    /* Listings mobile */
    .cm-listing-title { font-size: 12px; }
}

/* ═══════════════════════════════════════════════════════
 *  RESPONSIVE — Small phone (≤400px)
 * ═══════════════════════════════════════════════════════ */
@media (max-width: 400px) {
    .cm-grid { grid-template-columns: 1fr; }
    .cm-dash-stats { grid-template-columns: 1fr; }
    .cm-logo { font-size: 14px; }
}

/* ═══════════════════════════════════════
 *  v2.6.0 — AI, Unsplash, API search styles
 * ═══════════════════════════════════════ */

/* AI Generate button (inline) */
.jcap-btn-ai {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 8px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    vertical-align: middle;
    margin-left: 6px;
    transition: all .2s;
    line-height: 18px;
}
.jcap-btn-ai:hover { background: linear-gradient(135deg, #4f46e5, #7c3aed); transform: scale(1.05); }
.jcap-btn-ai:disabled { opacity: .5; cursor: wait; }

/* Service search form label */
label.sf, .sf {
    font-size: 11px;
    font-weight: 600;
    color: #555;
    display: block;
    margin-bottom: 3px;
}

/* Service modal tabs */
.svc-tab { transition: all .15s; }
.svc-tab:hover { transform: translateY(-1px); }

/* Unsplash picker grid items */
div[data-url] { transition: transform .15s, box-shadow .15s; }
div[data-url]:hover { transform: scale(1.03); box-shadow: 0 4px 12px rgba(0,0,0,.2); }

/* Trip cover Unsplash hint */
.jcap-trip-cover-placeholder span { font-size: 15px; }

/* Pricing summary cards responsive */
@media (max-width: 600px) {
    .svc-tab { font-size: 10px !important; padding: 5px 8px !important; }
    #svc-body { padding: 10px !important; }
    label.sf { font-size: 10px; }
}

/* ── Activity Carousel Gallery ── */
.jcap-act-carousel { scrollbar-width:none; -ms-overflow-style:none; }
.jcap-act-carousel::-webkit-scrollbar { display:none; }
.jcap-act-carousel img { transition:opacity .3s; }

/* ═══ Legacy cleaned — sidebar styles now in premium block above ═══ */
.jcap-view-toggle {
    display:flex!important; gap:2px!important; margin:6px 14px 10px!important;
    background:rgba(255,255,255,.04)!important; border-radius:8px!important;
    padding:3px!important; border:1px solid rgba(255,255,255,.06)!important;
}
.jcap-vt-btn {
    flex:1!important; padding:6px 8px!important; font-size:10px!important;
    font-weight:600!important; border:none!important; border-radius:6px!important;
    cursor:pointer!important; transition:all .15s!important;
    background:transparent!important; color:rgba(255,255,255,.4)!important;
    text-align:center!important;
}
.jcap-vt-btn:hover { color:rgba(255,255,255,.65)!important; }
.jcap-vt-btn.active {
    background:rgba(46,196,160,.12)!important; color:#fff!important;
    box-shadow:0 1px 3px rgba(0,0,0,.2)!important;
}

/* ═══ MULTI-AGENT: Team Role Cards ═══ */
.jcap-team-roles {
    display:grid!important; grid-template-columns:repeat(4,1fr)!important;
    gap:12px!important; margin-bottom:20px!important;
}
.jcap-team-role-card {
    background:var(--t-card)!important; border:1px solid var(--t-border)!important;
    border-radius:var(--t-radius)!important; padding:18px!important; text-align:center!important;
    box-shadow:var(--t-shadow)!important;
}
.jcap-team-role-count {
    font-size:28px!important; font-weight:800!important; color:var(--t-white)!important;
    line-height:1!important; margin-bottom:4px!important;
}
.jcap-team-role-label {
    font-size:10px!important; color:var(--t-muted)!important; font-weight:600!important;
    text-transform:uppercase!important; letter-spacing:.4px!important;
}
/* Team member row */
.jcap-team-member {
    display:flex!important; align-items:center!important; justify-content:space-between!important;
    padding:10px 0!important; border-bottom:1px solid var(--t-border)!important; gap:12px!important;
}
.jcap-team-member:last-child { border-bottom:none!important; }
.jcap-team-member .tm-avatar {
    width:34px!important; height:34px!important; border-radius:8px!important;
    background:var(--t-accent)!important; color:#fff!important;
    display:flex!important; align-items:center!important; justify-content:center!important;
    font-size:13px!important; font-weight:700!important; flex-shrink:0!important;
}
.jcap-team-member .tm-info { flex:1!important; min-width:0!important; }
.jcap-team-member .tm-name { font-size:13px!important; font-weight:600!important; color:var(--t-white)!important; }
.jcap-team-member .tm-email { font-size:10px!important; color:var(--t-muted)!important; }
.jcap-team-member .tm-role-tag {
    font-size:9px!important; font-weight:700!important; padding:3px 8px!important;
    border-radius:5px!important; text-transform:uppercase!important; letter-spacing:.3px!important;
}
.tm-role-tag.admin, .tm-role-tag.agency_admin { background:rgba(26,107,79,.08)!important; color:var(--t-accent)!important; }
.tm-role-tag.reservation_team, .tm-role-tag.agent { background:rgba(148,163,184,.06)!important; color:var(--t-muted)!important; }
.tm-role-tag.finance_manager, .tm-role-tag.finance { background:rgba(91,74,158,.06)!important; color:var(--t-purple)!important; }
.tm-role-tag.support_manager, .tm-role-tag.manager { background:rgba(27,58,107,.06)!important; color:var(--t-blue)!important; }
.tm-role-tag.read_only { background:rgba(148,163,184,.04)!important; color:var(--t-muted)!important; }
.jcap-team-member .tm-actions { display:flex!important; gap:6px!important; }
.jcap-team-member .tm-actions a {
    font-size:10px!important; padding:4px 8px!important; border-radius:6px!important;
    text-decoration:none!important; font-weight:600!important; color:var(--t-accent)!important;
    background:rgba(26,107,79,.06)!important; transition:opacity .15s!important;
}
.jcap-team-member .tm-actions a:hover { opacity:.7!important; }

/* Responsive team */
@media(max-width:768px){
    .jcap-team-roles { grid-template-columns:repeat(2,1fr)!important; }
}

/* ═══ v3.0.20 — DASHBOARD PREMIUM ═══ */
.jcap-dash-header {
    display:flex; justify-content:space-between; align-items:center;
    margin-bottom:24px; flex-wrap:wrap; gap:12px;
}
.jcap-dash-date {
    font-size:12px; color:var(--t-muted); font-weight:500;
    background:var(--t-card); padding:7px 14px; border-radius:10px;
    border:1px solid var(--t-border);
}

/* ── AI Summary ── */
.jcap-ai-banner {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-left:3px solid var(--t-accent) !important;
    border-radius:var(--t-radius) !important; padding:14px 20px !important;
    margin-bottom:24px !important; display:flex !important;
    align-items:center !important; gap:12px !important;
}
.jcap-ai-icon { font-size:20px; flex-shrink:0; }
.jcap-ai-text { font-size:13px; color:var(--t-text); line-height:1.55; }
.jcap-ai-text strong { color:var(--t-white); }
.jcap-ai-text .jcap-ai-highlight { color:var(--t-accent); font-weight:700; }

/* ═══ HERO KPIs — 3 majeurs ═══ */
.jcap-hero-kpis {
    display:grid !important; grid-template-columns:1fr 1fr 1fr !important;
    gap:16px !important; margin-bottom:24px !important;
}
.jcap-hero-kpi {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-radius:var(--t-radius) !important; padding:24px 22px !important;
    box-shadow:var(--t-shadow) !important; transition:border-color .2s !important;
}
.jcap-hero-kpi:hover { border-color:var(--t-accent) !important; }
.jcap-hero-label {
    font-size:11px !important; color:var(--t-muted) !important; font-weight:600 !important;
    text-transform:uppercase !important; letter-spacing:.6px !important;
    margin-bottom:8px !important;
}
.jcap-hero-value {
    font-size:32px !important; font-weight:800 !important; color:var(--t-white) !important;
    line-height:1 !important; margin-bottom:6px !important; letter-spacing:-.5px !important;
}
.jcap-hero-sub {
    font-size:11px !important; color:var(--t-muted) !important; font-weight:500 !important;
}
.jcap-hero-sub .up { color:var(--t-accent) !important; font-weight:700 !important; }
.jcap-hero-sub .down { color:var(--t-red) !important; font-weight:700 !important; }
/* Pending hero — emphasized when has items */
.jcap-hero-pending.has-pending {
    border-color:var(--t-orange) !important;
    background:linear-gradient(135deg, var(--t-card), rgba(194,122,26,.04)) !important;
}
.jcap-hero-pending.has-pending .jcap-hero-value { color:var(--t-orange) !important; }

/* ═══ ACTIONS À TRAITER ═══ */
.jcap-action-block {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-left:3px solid var(--t-orange) !important;
    border-radius:var(--t-radius) !important; padding:16px 20px !important;
    margin-bottom:24px !important;
}
.jcap-action-title {
    font-size:13px !important; font-weight:700 !important; color:var(--t-white) !important;
    margin-bottom:10px !important;
}
.jcap-action-items { display:flex !important; flex-wrap:wrap !important; gap:8px !important; }
.jcap-action-item {
    display:inline-flex !important; align-items:center !important; gap:8px !important;
    padding:8px 14px !important; border-radius:8px !important;
    font-size:12px !important; font-weight:600 !important;
    cursor:pointer !important; transition:all .15s !important; border:none !important;
    background:none !important;
}
.jcap-action-item:hover { opacity:.85 !important; }
.jcap-action-item.warn {
    background:rgba(194,122,26,.08) !important; color:var(--t-orange) !important;
}
.jcap-action-item.alert {
    background:rgba(192,57,43,.06) !important; color:var(--t-red) !important;
}
.jcap-action-item.info {
    background:rgba(27,58,107,.06) !important; color:var(--t-blue) !important;
}
.jcap-action-count {
    background:var(--t-orange) !important; color:#fff !important;
    font-size:10px !important; font-weight:800 !important;
    min-width:20px !important; height:20px !important; border-radius:10px !important;
    display:inline-flex !important; align-items:center !important;
    justify-content:center !important; padding:0 5px !important;
}
.jcap-action-item.alert .jcap-action-count { background:var(--t-red) !important; }
.jcap-action-item.info .jcap-action-count { background:var(--t-blue) !important; }

/* Dark overrides for action items */
#jcap-app.jcap-dark .jcap-action-item.warn { background:rgba(224,168,76,.1) !important; }
#jcap-app.jcap-dark .jcap-action-item.alert { background:rgba(217,83,79,.08) !important; }
#jcap-app.jcap-dark .jcap-action-item.info { background:rgba(91,141,217,.08) !important; }

/* ═══ MID SECTION: Chart + Side ═══ */
.jcap-dash-mid {
    display:grid !important; grid-template-columns:1.7fr 1fr !important;
    gap:16px !important; margin-bottom:24px !important;
}
.jcap-dash-mid-right {
    display:flex !important; flex-direction:column !important; gap:14px !important;
}
.jcap-chart-card {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-radius:var(--t-radius) !important; padding:20px !important;
    box-shadow:var(--t-shadow) !important;
}
.jcap-chart-title {
    font-size:13px !important; font-weight:700 !important; color:var(--t-white) !important;
    margin-bottom:14px !important; display:flex !important; align-items:center !important;
    justify-content:space-between !important;
}
.jcap-chart-title small { font-size:11px; font-weight:500; color:var(--t-muted); }
.jcap-chart-wrap { position:relative; height:220px; }
.jcap-chart-wrap canvas { width:100% !important; height:100% !important; }
.jcap-chart-small { height:140px; }
.jcap-donut-card { flex:1; }

/* ── Mini KPIs (secondary) ── */
.jcap-mini-kpis {
    display:grid !important; grid-template-columns:1fr 1fr !important; gap:8px !important;
}
.jcap-mini-kpi {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-radius:var(--t-radius) !important; padding:12px 14px !important;
    display:flex !important; justify-content:space-between !important;
    align-items:center !important;
}
.jcap-mini-kpi:last-child { grid-column:1 / -1; }
.jcap-mini-label {
    font-size:10px !important; color:var(--t-muted) !important;
    font-weight:600 !important; text-transform:uppercase !important; letter-spacing:.4px !important;
}
.jcap-mini-value {
    font-size:15px !important; font-weight:800 !important; color:var(--t-white) !important;
}
.jcap-mini-accent { color:var(--t-accent) !important; }

/* ═══ QUICK ACTIONS ROW ═══ */
.jcap-quick-row {
    display:flex !important; gap:8px !important; margin-bottom:24px !important;
    flex-wrap:wrap !important;
}
.jcap-qbtn {
    display:inline-flex !important; align-items:center !important; gap:6px !important;
    padding:9px 16px !important; border-radius:8px !important;
    border:1px solid var(--t-border) !important; background:var(--t-card) !important;
    color:var(--t-text) !important; font-size:12px !important; font-weight:600 !important;
    cursor:pointer !important; transition:all .15s !important;
    box-shadow:var(--t-shadow) !important;
}
.jcap-qbtn:hover {
    border-color:var(--t-accent) !important; color:var(--t-accent) !important;
    transform:translateY(-1px) !important;
}

/* ═══ BOTTOM: Activity + Sidebar ═══ */
.jcap-dash-bottom {
    display:grid !important; grid-template-columns:1.6fr 1fr !important;
    gap:16px !important;
}
.jcap-dash-sidebar {
    display:flex !important; flex-direction:column !important; gap:14px !important;
}
.jcap-activity-card {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-radius:var(--t-radius) !important; padding:20px !important;
    box-shadow:var(--t-shadow) !important;
}
.jcap-activity-header {
    display:flex !important; justify-content:space-between !important;
    align-items:center !important; margin-bottom:14px !important; flex-wrap:wrap !important; gap:8px !important;
}
.jcap-activity-header h3 { margin:0 !important; font-size:13px !important; font-weight:700 !important; color:var(--t-white) !important; }
.jcap-filter-pills { display:flex !important; gap:4px !important; }
.jcap-pill {
    font-size:10px !important; font-weight:600 !important; padding:4px 10px !important;
    border-radius:6px !important; border:1px solid var(--t-border) !important;
    background:transparent !important; color:var(--t-muted) !important;
    cursor:pointer !important; transition:all .15s !important;
}
.jcap-pill:hover,.jcap-pill.active {
    background:var(--t-accent) !important; color:#fff !important;
    border-color:var(--t-accent) !important;
}
.jcap-see-all {
    font-size:11px !important; color:var(--t-accent) !important;
    font-weight:600 !important; cursor:pointer !important; text-decoration:none !important;
}
/* Status dots */
.jcap-st-dot { width:7px; height:7px; border-radius:50%; display:inline-block; margin-right:5px; }
.jcap-st-dot.pending { background:var(--t-orange); }
.jcap-st-dot.confirmed { background:var(--t-accent); }
.jcap-st-dot.draft { background:#94a3b8; }
.jcap-st-dot.cancelled { background:var(--t-red); }
.jcap-st-dot.completed { background:var(--t-blue); }
/* Action links */
.jcap-row-actions { display:flex; gap:4px; }
.jcap-row-actions a {
    font-size:10px; padding:3px 7px; border-radius:5px; font-weight:600;
    text-decoration:none; transition:opacity .15s; color:var(--t-accent);
    background:rgba(26,107,79,.06);
}
.jcap-row-actions a:hover { opacity:.7; }

/* ── Upcoming Trips ── */
.jcap-upcoming-card {
    background:var(--t-card) !important; border:1px solid var(--t-border) !important;
    border-radius:var(--t-radius) !important; padding:18px !important;
    box-shadow:var(--t-shadow) !important;
}
.jcap-upcoming-card h3 { margin:0 0 12px !important; font-size:13px !important; font-weight:700 !important; color:var(--t-white) !important; }
.jcap-trip-item {
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:8px 0; border-bottom:1px solid var(--t-border);
}
.jcap-trip-item:last-child { border-bottom:none; }
.jcap-trip-item .trip-info .trip-title { font-size:12px; font-weight:600; color:var(--t-white); }
.jcap-trip-item .trip-info .trip-meta { font-size:10px; color:var(--t-muted); margin-top:1px; }
.jcap-trip-item .trip-date {
    font-size:10px; font-weight:600; padding:3px 8px; border-radius:6px;
    background:rgba(27,58,107,.06); color:var(--t-blue); white-space:nowrap;
}
/* Top clients */
.jcap-top-client {
    display:flex; align-items:center; justify-content:space-between;
    padding:7px 0; border-bottom:1px solid var(--t-border);
}
.jcap-top-client:last-child { border-bottom:none; }
.jcap-top-client .cl-name { font-size:12px; font-weight:600; color:var(--t-white); }
.jcap-top-client .cl-meta { font-size:10px; color:var(--t-muted); }
.jcap-top-client .cl-rev { font-size:12px; font-weight:700; color:var(--t-accent); }

/* ═══ RESPONSIVE ═══ */
@media(max-width:1100px) {
    .jcap-hero-kpis { grid-template-columns:1fr 1fr 1fr !important; }
    .jcap-dash-mid { grid-template-columns:1fr !important; }
    .jcap-dash-bottom { grid-template-columns:1fr !important; }
}
@media(max-width:768px) {
    .jcap-hero-kpis { grid-template-columns:1fr !important; }
    .jcap-mini-kpis { grid-template-columns:1fr !important; }
    .jcap-mini-kpi:last-child { grid-column:auto; }
    .jcap-quick-row { gap:6px !important; }
    .jcap-qbtn { font-size:11px !important; padding:7px 12px !important; }
}

/* Stat cards with icons (legacy compat) */
.jcap-stat-card { display:flex!important; align-items:center!important; gap:16px!important; }
.jcap-stat-ico {
    width:48px; height:48px; border-radius:14px; display:flex;
    align-items:center; justify-content:center; font-size:22px; flex-shrink:0;
    background:var(--jcap-gray-100);
}
.jcap-stat-blue .jcap-stat-ico { background:#dbeafe; }
.jcap-stat-orange .jcap-stat-ico { background:#fef3c7; }
.jcap-stat-green .jcap-stat-ico { background:#d1fae5; }
.jcap-stat-purple .jcap-stat-ico { background:#ede9fe; }
.jcap-stat-gold .jcap-stat-ico { background:#fef3c7; }
.jcap-stat-gold .jcap-stat-value { color:#d97706!important; }

/* Quick actions (legacy compat) */
.jcap-quick-actions {
    display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
    gap:10px;
}
.jcap-quick-btn {
    display:flex; flex-direction:column; align-items:center; gap:8px;
    padding:18px 12px; border-radius:14px; border:1px solid var(--t-border);
    background:var(--t-card); cursor:pointer; transition:all .2s; font-size:24px;
    color:var(--t-white);
}
.jcap-quick-btn span { font-size:12px; font-weight:600; color:var(--t-muted); }
.jcap-quick-btn:hover { transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,.06); border-color:var(--t-accent); }

/* Dashboard grid (legacy) */
.jcap-dash-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
}
@media(max-width:768px) {
    .jcap-dash-grid { grid-template-columns:1fr; }
}

/* ═══ v3.0.20 — TRAVEL PLAN TABS FIX ═══ */
.jcap-tp-tabs {
    display:flex!important; gap:4px!important; margin-bottom:15px!important;
    flex-wrap:wrap!important; border-bottom:2px solid var(--jcap-gray-200)!important;
    padding-bottom:0!important;
}
.jcap-tp-tab {
    padding:10px 18px!important; border:none!important;
    background:var(--jcap-gray-100)!important; cursor:pointer!important;
    font-size:13px!important; font-weight:700!important;
    border-radius:10px 10px 0 0!important; transition:all .2s!important;
    color:var(--jcap-gray-700)!important; /* EXPLICIT dark text */
    -webkit-text-fill-color:var(--jcap-gray-700)!important;
    opacity:1!important;
}
.jcap-tp-tab:hover {
    background:var(--jcap-gray-200)!important;
    color:var(--jcap-gray-900)!important;
    -webkit-text-fill-color:var(--jcap-gray-900)!important;
}
.jcap-tp-tab.active {
    background:var(--jcap-primary)!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
}

/* ══════════════════════════════════════════════════════════════
   GDS PREMIUM FLIGHT SEARCH — Amadeus/Sabre Style
   ══════════════════════════════════════════════════════════════ */

/* ── Header ── */
.gds-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.gds-header-left { display:flex; align-items:baseline; gap:12px; }
.gds-title { font-size:20px!important; font-weight:800!important; margin:0!important; color:var(--jcap-gray-900); letter-spacing:-.3px; }
.gds-subtitle { font-size:11px; color:var(--jcap-gray-500); font-weight:600; text-transform:uppercase; letter-spacing:1px; }
.gds-header-right { display:flex; align-items:center; gap:10px; }
.gds-status { font-size:11px; color:#64748b; font-weight:600; display:flex; align-items:center; gap:6px; padding:5px 12px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; }
.gds-dot { width:7px; height:7px; border-radius:50%; display:inline-block; }
.gds-dot-live { background:#10b981; box-shadow:0 0 6px rgba(16,185,129,.5); animation:gds-pulse 2s infinite; }
.gds-dot-test { background:#f59e0b; }
@keyframes gds-pulse { 0%,100%{box-shadow:0 0 4px rgba(16,185,129,.3);} 50%{box-shadow:0 0 10px rgba(16,185,129,.6);} }
.gds-mode { font-size:10px; font-weight:800; letter-spacing:1px; padding:3px 8px; border-radius:4px; background:#d1fae5; color:#065f46; }

/* ── Search Card ── */
.gds-search-card {
    background:#fff; border:1px solid #e8ecf4; border-radius:14px;
    padding:20px 24px; box-shadow:0 1px 4px rgba(0,0,0,.04);
}

/* ── Trip Type Pills ── */
.gds-toprow { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.gds-trip-pills { display:flex; gap:3px; padding:3px; background:#f1f5f9; border-radius:10px; }
.gds-pill {
    padding:7px 16px; border:none; background:none; cursor:pointer; font-size:12px;
    font-weight:700; color:#334155!important; border-radius:8px; font-family:inherit; transition:all .15s;
}
.gds-pill:hover { color:#1e293b!important; background:#e2e8f0; }
.gds-pill.active { color:#fff!important; background:#1e293b; box-shadow:0 1px 4px rgba(0,0,0,.15); }

/* ── Passengers/Cabin Smart Pill ── */
.gds-pax-cabin { position:relative; }
.gds-pax-btn {
    display:flex; align-items:center; gap:8px; padding:8px 16px; border:1.5px solid #cbd5e1;
    border-radius:10px; background:#f8fafc!important; cursor:pointer; font-size:13px; font-weight:700;
    color:#1e293b!important; font-family:inherit; transition:all .15s; white-space:nowrap;
}
.gds-pax-btn:hover { border-color:#94a3b8; background:#f1f5f9!important; }
.gds-pax-arrow { font-size:10px; opacity:.5; transition:transform .2s; }
.gds-pax-dropdown {
    display:none; position:absolute; top:calc(100% + 6px); right:0; z-index:50;
    background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:12px;
    box-shadow:0 10px 30px rgba(0,0,0,.12); min-width:260px;
}
.gds-pax-dropdown.open { display:block; }
.gds-pax-row { display:flex; align-items:center; justify-content:space-between; padding:8px 0; }
.gds-pax-row:not(:last-child) { border-bottom:1px solid #e5e7eb; }
.gds-pax-info strong { font-size:13px; color:#1e293b; display:block; }
.gds-pax-info small { font-size:11px; color:#94a3b8; }
.gds-pax-stepper { display:flex; align-items:center; gap:0; }
.gds-step-btn {
    width:32px; height:32px; border:1.5px solid #cbd5e1; background:#f8fafc!important; cursor:pointer;
    font-size:18px; font-weight:700; color:#1e293b!important; transition:all .12s; display:flex;
    align-items:center; justify-content:center; font-family:inherit; line-height:1;
}
.gds-step-btn:first-child { border-radius:8px 0 0 8px; }
.gds-step-btn:last-child { border-radius:0 8px 8px 0; }
.gds-step-btn:hover { background:#e2e8f0!important; border-color:#94a3b8; color:#0f172a!important; }
.gds-step-val { width:40px; height:32px; text-align:center; border:none; border-top:1.5px solid #cbd5e1; border-bottom:1.5px solid #cbd5e1; font-size:15px; font-weight:800; color:#1e293b; background:#fff; font-family:inherit; padding:0; -moz-appearance:textfield; }
.gds-step-val::-webkit-inner-spin-button, .gds-step-val::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.gds-pax-cabin-row { padding-top:10px; }
.gds-cabin-sel { flex:1; margin-left:12px; padding:6px 10px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:12.5px; font-family:inherit; color:#334155; background:#fff; cursor:pointer; }
.gds-pax-done { width:100%; margin-top:10px; padding:8px; border:none; background:#1e293b!important; color:#fff!important; border-radius:8px; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; transition:background .15s; letter-spacing:1px; }
.gds-pax-done:hover { background:#334155!important; }

/* ── Route Row (FROM ⇄ TO) ── */
.gds-route-row { display:flex; align-items:stretch; gap:0; margin-bottom:14px; position:relative; }
.gds-airport-field { flex:1; position:relative; }
.gds-airport-field label {
    font-size:10px; font-weight:700; color:#94a3b8; text-transform:uppercase;
    letter-spacing:1px; display:block; margin-bottom:4px;
}
.gds-airport-field input[type="text"] {
    width:100%; padding:12px 14px; border:1.5px solid #e2e8f0; font-size:14px;
    font-weight:600; color:#1e293b; background:#f8fafc; font-family:inherit;
    transition:all .12s; outline:none;
}
.gds-origin input { border-radius:10px 0 0 10px; border-right:none; }
.gds-dest input { border-radius:0 10px 10px 0; }
.gds-airport-field input:focus { border-color:#6366f1; background:#fff; box-shadow:0 0 0 3px rgba(99,102,241,.08); z-index:2; position:relative; }
.gds-swap-btn {
    width:42px; min-width:42px; border:1.5px solid #e2e8f0; background:#fff!important; cursor:pointer;
    font-size:16px; color:#6366f1!important; display:flex; align-items:center; justify-content:center;
    transition:all .2s; z-index:3; margin-top:18px; font-family:inherit;
}
.gds-swap-btn:hover { background:#eef2ff!important; border-color:#6366f1; transform:rotate(180deg); }

/* ── Autocomplete Dropdown ── */
.gds-ac-dropdown {
    display:none; position:absolute; top:100%; left:0; right:0; z-index:60;
    background:#fff; border:1px solid #e2e8f0; border-radius:0 0 10px 10px;
    box-shadow:0 8px 24px rgba(0,0,0,.1); max-height:240px; overflow-y:auto;
}
.gds-ac-dropdown .jcap-ac-item {
    padding:10px 14px; cursor:pointer; font-size:13px; border-bottom:1px solid #f8fafc;
    transition:background .1s; display:flex; align-items:center; gap:8px;
}
.gds-ac-dropdown .jcap-ac-item:hover { background:#eef2ff; }
.gds-ac-dropdown .jcap-ac-item:last-child { border-bottom:none; }
.gds-ac-dropdown .jcap-ac-item strong { color:#1e293b; font-size:14px; min-width:36px; }
.gds-ac-dropdown .jcap-ac-item small { color:#64748b; }

/* ── Dates Row ── */
.gds-dates-row { display:flex; gap:12px; margin-bottom:14px; }
.gds-date-field { flex:1; }
.gds-date-field label {
    font-size:10px; font-weight:700; color:#94a3b8; text-transform:uppercase;
    letter-spacing:1px; display:block; margin-bottom:4px;
}
.gds-date-field input[type="date"] {
    width:100%; padding:11px 14px; border:1.5px solid #e2e8f0; border-radius:10px;
    font-size:14px; font-weight:600; color:#1e293b; background:#f8fafc; font-family:inherit;
    transition:all .12s; outline:none;
}
.gds-date-field input:focus { border-color:#6366f1; background:#fff; box-shadow:0 0 0 3px rgba(99,102,241,.08); }
.gds-return-field.disabled { opacity:.4; pointer-events:none; }
.gds-return-field.disabled input { background:#f1f5f9; }

/* ── Advanced Options ── */
.gds-advanced-toggle {
    display:flex; align-items:center; gap:6px; cursor:pointer; padding:8px 0;
    font-size:12px; font-weight:600; color:#64748b; user-select:none; transition:color .15s;
    margin-bottom:4px;
}
.gds-advanced-toggle:hover { color:#334155; }
.gds-adv-arrow { font-size:10px; transition:transform .2s; }
.gds-advanced-toggle.open .gds-adv-arrow { transform:rotate(180deg); }
.gds-advanced-panel { display:none; padding:12px 0 8px; border-top:1px solid #e5e7eb; }
.gds-advanced-panel.open { display:block; }
.gds-adv-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gds-adv-check { display:flex; align-items:center; gap:6px; font-size:12.5px; color:#475569; font-weight:500; cursor:pointer; padding:6px 0; }
.gds-adv-check input { accent-color:#6366f1; }
.gds-adv-field label { font-size:10px; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; display:block; margin-bottom:3px; }
.gds-adv-field input, .gds-adv-field select {
    width:100%; padding:8px 10px; border:1.5px solid #e2e8f0; border-radius:8px;
    font-size:12.5px; font-family:inherit; color:#334155; background:#fff;
}

/* ── Search Button ── */
.gds-search-actions { display:flex; align-items:center; gap:14px; margin-top:4px; flex-wrap:wrap; }
.gds-search-btn {
    padding:12px 28px; border:none; border-radius:10px; cursor:pointer;
    font-size:14px; font-weight:700; font-family:inherit; color:#fff;
    background:linear-gradient(135deg,#1e293b,#334155); transition:all .2s;
    box-shadow:0 2px 8px rgba(30,41,59,.2); display:flex; align-items:center; gap:8px;
    letter-spacing:.3px;
}
.gds-search-btn:hover { background:linear-gradient(135deg,#334155,#475569); box-shadow:0 4px 16px rgba(30,41,59,.3); transform:translateY(-1px); }
.gds-search-btn:active { transform:translateY(0); }
.gds-search-btn:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.gds-search-icon { font-size:15px; }
.gds-search-info { font-size:12px; color:#64748b; font-weight:500; }

/* ── Results ── */
.gds-results { margin-top:16px; }
.gds-results .df-controls {
    display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:12px;
    padding:10px 14px; background:#f8fafc; border:1px solid #e8ecf4; border-radius:10px;
}
.gds-results .df-controls select { padding:6px 10px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:12px; font-weight:600; font-family:inherit; }
.gds-results .df-controls label { font-size:12px; font-weight:500; cursor:pointer; display:flex; align-items:center; gap:4px; }

/* ── Offer Cards — premium ── */
.gds-results .df-offer {
    background:#fff; border:1px solid #e8ecf4; border-radius:12px; padding:16px 20px;
    margin-bottom:10px; cursor:pointer; transition:all .15s;
    border-left:3px solid transparent;
}
.gds-results .df-offer:hover { border-left-color:#6366f1; box-shadow:0 4px 16px rgba(99,102,241,.08); }

/* ── Responsive ── */
@media(max-width:640px){
    .gds-route-row { flex-direction:column; gap:0; }
    .gds-origin input { border-radius:10px 10px 0 0; border-right:1.5px solid #e2e8f0; border-bottom:none; }
    .gds-dest input { border-radius:0 0 10px 10px; }
    .gds-swap-btn { width:100%; margin-top:0; border-radius:0; height:32px; font-size:13px; }
    .gds-swap-btn:hover { transform:rotate(90deg); }
    .gds-dates-row { flex-direction:column; gap:10px; }
    .gds-adv-grid { grid-template-columns:1fr; }
    .gds-toprow { flex-direction:column; align-items:stretch; }
    .gds-pax-dropdown { left:0; right:0; }
}

/* ══════════════════════════════════════════════════════════════
   PREMIUM BOOKING MODAL — Enterprise Grade
   ══════════════════════════════════════════════════════════════ */

/* ── Modal Shell ── */
.bk-modal { max-width:640px; }
.bk-modal-header { display:flex; justify-content:space-between; align-items:center; padding:16px 24px; border-bottom:1px solid #e5e7eb; }
.bk-modal-title h2 { margin:0!important; font-size:18px!important; font-weight:800; color:#1e293b; }
.bk-modal-sub { font-size:11px; color:#94a3b8; font-weight:500; }

/* ── Progress Steps ── */
.bk-steps { display:flex; align-items:center; justify-content:center; gap:0; padding:14px 24px; background:#f8fafc; border-bottom:1px solid #e5e7eb; }
.bk-step { display:flex; align-items:center; gap:6px; }
.bk-step-dot {
    width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:11px; font-weight:800; border:2px solid #cbd5e1; color:#94a3b8; background:#fff;
    transition:all .2s;
}
.bk-step.active .bk-step-dot { border-color:#6366f1; color:#fff; background:#6366f1; }
.bk-step.done .bk-step-dot { border-color:#10b981; color:#fff; background:#10b981; }
.bk-step-label { font-size:11px; font-weight:600; color:#94a3b8; transition:color .2s; }
.bk-step.active .bk-step-label { color:#1e293b; }
.bk-step.done .bk-step-label { color:#10b981; }
.bk-step-line { width:32px; height:2px; background:#e2e8f0; margin:0 6px; }

/* ── Sections ── */
.bk-section { margin-bottom:20px; }
.bk-section-head { display:flex; align-items:center; gap:10px; margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid #e5e7eb; }
.bk-section-num {
    width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:10px; font-weight:800; background:#1e293b; color:#fff;
}
.bk-section-title { font-size:14px; font-weight:700; color:#1e293b; letter-spacing:-.2px; }

/* ── Flight Card ── */
.bk-flight-card { background:#f8fafc; border:1px solid #e8ecf4; border-radius:10px; padding:16px; }
.bk-flight-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.bk-airline { display:flex; align-items:center; gap:8px; }
.bk-airline-logo { width:28px; height:28px; border-radius:6px; }
.bk-airline-name { font-size:14px; font-weight:700; color:#1e293b; }
.bk-price-tag { text-align:right; }
.bk-price-amt { font-size:24px; font-weight:800; color:#1e293b; letter-spacing:-.5px; }
.bk-price-cur { font-size:12px; color:#94a3b8; font-weight:500; margin-left:4px; }

/* Route display */
.bk-route { display:flex; align-items:center; gap:10px; padding:8px 0; }
.bk-route-point { text-align:center; min-width:50px; }
.bk-route-code { font-size:16px; font-weight:800; color:#1e293b; display:block; letter-spacing:-.3px; }
.bk-route-time { font-size:12px; color:#64748b; font-weight:600; }
.bk-route-mid { flex:1; text-align:center; }
.bk-route-line { height:2px; background:linear-gradient(90deg,#cbd5e1,#6366f1,#cbd5e1); margin:4px 0; border-radius:1px; }
.bk-route-info { font-size:10px; color:#94a3b8; font-weight:600; }
.bk-return-divider { text-align:center; padding:6px 0; font-size:11px; color:#8b5cf6; font-weight:600; }

/* Fare tags */
.bk-fare-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; padding-top:10px; border-top:1px solid #e8ecf4; }
.bk-tag { font-size:10px; font-weight:600; padding:3px 8px; border-radius:6px; }
.bk-tag-ok { background:#d1fae5; color:#065f46; }
.bk-tag-muted { background:#f1f5f9; color:#64748b; }
.bk-tag-info { background:#ede9fe; color:#5b21b6; }

/* ── Notice ── */
.bk-notice {
    display:flex; align-items:flex-start; gap:10px; padding:12px 14px; border-radius:8px;
    background:#eff6ff; border:1px solid #dbeafe; font-size:12.5px; color:#1e40af;
    margin-bottom:14px; line-height:1.5;
}
.bk-notice strong { font-weight:700; }
.bk-notice-icon { font-size:16px; flex-shrink:0; margin-top:1px; }
.bk-notice-warn { background:#fefce8; border-color:#fef08a; color:#854d0e; }

/* ── Passenger Card ── */
.bk-pax-card { border:1px solid #e8ecf4; border-radius:10px; padding:16px; margin-bottom:12px; background:#fff; }
.bk-pax-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.bk-pax-label { font-size:14px; font-weight:700; color:#1e293b; }
.bk-pax-type { font-size:11px; font-weight:600; color:#64748b; background:#f1f5f9; padding:3px 10px; border-radius:6px; }

/* Form grid */
.bk-pax-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bk-field { display:flex; flex-direction:column; gap:3px; }
.bk-field label { font-size:10px; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; }
.bk-field-sm { max-width:140px; }
.bk-input {
    padding:9px 12px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:13px;
    font-weight:600; color:#1e293b!important; background:#fff!important; font-family:inherit;
    transition:all .12s; outline:none; width:100%; box-sizing:border-box;
}
.bk-input:focus { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,.08); }
.bk-input::placeholder { color:#cbd5e1; font-weight:400; }
select.bk-input { cursor:pointer; }

/* ── Passport Section ── */
.bk-passport-section { margin-top:10px; padding-top:10px; border-top:1px solid #e5e7eb; }
.bk-passport-toggle {
    background:none; border:none; cursor:pointer; font-size:12.5px; font-weight:600;
    color:#6366f1!important; padding:4px 0; font-family:inherit; transition:color .15s;
}
.bk-passport-toggle:hover { color:#4f46e5!important; }
.bk-passport-fields { display:none; margin-top:8px; }
.bk-passport-open .bk-passport-fields { display:grid; }
.bk-passport-title { font-size:12px; font-weight:700; color:#1e293b; margin-bottom:8px; }

/* Inline field (Plan ID) */
.bk-inline-field { margin-top:10px; max-width:200px; display:flex; flex-direction:column; gap:3px; }
.bk-inline-field label { font-size:10px; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; }

/* ── Promo ── */
.bk-promo { margin-bottom:16px; }
.bk-promo-label { font-size:12px; font-weight:700; color:#64748b; margin-bottom:6px; display:block; }
.bk-promo-row { display:flex; gap:8px; align-items:stretch; }
.bk-promo-input { flex:1; text-transform:uppercase!important; letter-spacing:1px; }
.bk-promo-btn {
    padding:9px 16px; border:1.5px solid #e2e8f0; border-radius:8px; background:#fff!important;
    font-size:12px; font-weight:700; color:#334155!important; cursor:pointer; font-family:inherit;
    transition:all .12s; white-space:nowrap;
}
.bk-promo-btn:hover { background:#f1f5f9!important; border-color:#cbd5e1; }
.bk-promo-result { margin-top:6px; font-size:12px; }

/* ── Price Summary ── */
.bk-price-summary { background:#f8fafc; border:1px solid #e8ecf4; border-radius:10px; padding:16px; margin-bottom:16px; }
.bk-price-lines { margin-bottom:12px; }
.bk-price-line { display:flex; justify-content:space-between; padding:5px 0; font-size:13px; color:#64748b; }
.bk-price-incl { font-size:12px; color:#94a3b8; font-style:italic; }
.bk-price-discount { color:#10b981; font-weight:600; }
.bk-price-total { display:flex; justify-content:space-between; align-items:center; padding-top:12px; border-top:2px solid #1e293b; }
.bk-price-total span:first-child { font-size:14px; font-weight:700; color:#1e293b; }
.bk-price-total-amt { font-size:22px; font-weight:800; color:#1e293b; letter-spacing:-.5px; }
.bk-price-total-amt small { font-size:12px; color:#94a3b8; font-weight:500; }

/* ── Actions ── */
.bk-actions { display:flex; gap:10px; align-items:center; }
.bk-submit-btn {
    flex:1; padding:13px 24px; border:none; border-radius:10px; cursor:pointer;
    font-size:14px; font-weight:700; font-family:inherit; color:#fff!important;
    background:linear-gradient(135deg,#1e293b,#334155)!important; transition:all .2s;
    box-shadow:0 2px 8px rgba(30,41,59,.2); letter-spacing:.3px;
}
.bk-submit-btn:hover { background:linear-gradient(135deg,#334155,#475569)!important; box-shadow:0 4px 16px rgba(30,41,59,.3); transform:translateY(-1px); }
.bk-submit-btn:disabled { opacity:.5; cursor:not-allowed; transform:none!important; }
.bk-cancel-btn {
    padding:13px 20px; border:1.5px solid #e2e8f0; border-radius:10px; background:#fff!important;
    font-size:13px; font-weight:600; color:#64748b!important; cursor:pointer; font-family:inherit;
    transition:all .12s;
}
.bk-cancel-btn:hover { background:#f8fafc!important; border-color:#cbd5e1; }
.bk-disclaimer { text-align:center; font-size:11px; color:#94a3b8; margin-top:8px; font-weight:500; }

/* ── Success State ── */
.bk-success { text-align:center; padding:40px 20px; }
.bk-success-icon { font-size:48px; margin-bottom:12px; }
.bk-success-title { font-size:20px; font-weight:800; color:#1e293b; margin:0 0 6px; }
.bk-success-id { font-size:14px; color:#64748b; margin:0 0 10px; }
.bk-success-msg { font-size:13px; color:#94a3b8; line-height:1.6; margin:0 0 20px; }
.bk-success-actions { display:flex; gap:10px; justify-content:center; align-items:center; }

/* ── Responsive ── */
@media(max-width:640px){
    .bk-pax-grid { grid-template-columns:1fr; }
    .bk-field-sm { max-width:100%; }
    .bk-actions { flex-direction:column; }
    .bk-submit-btn, .bk-cancel-btn { width:100%; }
    .bk-steps { gap:0; padding:10px 16px; }
    .bk-step-line { width:16px; }
    .bk-step-label { font-size:10px; }
    .bk-route { flex-direction:column; gap:4px; }
}

/* ══════════════════════════════════════════════════════════════
   PREMIUM ORDERS / BOOKINGS — Enterprise SaaS
   ══════════════════════════════════════════════════════════════ */

/* ── KPI Summary Cards ── */
.ob-kpis { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.ob-kpi {
    flex:1; min-width:120px; background:#fff; border:1px solid #e8ecf4; border-radius:10px;
    padding:14px 16px; text-align:center;
}
.ob-kpi-val { font-size:20px; font-weight:800; color:#1e293b; letter-spacing:-.5px; }
.ob-kpi-green { color:#10b981!important; }
.ob-kpi-amber { color:#f59e0b!important; }
.ob-kpi-cyan { color:#06b6d4!important; }
.ob-kpi-label { font-size:10px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }

/* ── Filters Bar ── */
.ob-filters {
    display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:16px;
    padding:12px 14px; background:#fff; border:1px solid #e8ecf4; border-radius:10px;
}
.ob-filter-pills { display:flex; gap:4px; flex-wrap:wrap; flex:1; }
.ob-pill {
    padding:6px 12px; border:1.5px solid #e2e8f0; border-radius:8px; background:#fff!important;
    font-size:11px; font-weight:600; color:#64748b!important; cursor:pointer; font-family:inherit;
    transition:all .12s; white-space:nowrap;
}
.ob-pill:hover { border-color:#cbd5e1; background:#f8fafc!important; color:#334155!important; }
.ob-pill.active { border-color:#6366f1; background:#eef2ff!important; color:#4f46e5!important; font-weight:700; }
.ob-search {
    padding:7px 12px; border:1.5px solid #e2e8f0; border-radius:8px; font-size:12px;
    font-family:inherit; color:#1e293b!important; background:#fff!important; width:200px;
    outline:none; transition:border-color .12s;
}
.ob-search:focus { border-color:#6366f1; }
.ob-search::placeholder { color:#cbd5e1; }

/* ── Booking Cards ── */
.ob-list { display:flex; flex-direction:column; gap:10px; }
.ob-card {
    background:#fff; border:1px solid #e8ecf4; border-radius:10px; padding:16px 18px;
    transition:all .15s;
}
.ob-card:hover { border-color:#cbd5e1; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.ob-card-expired { opacity:.6; }
.ob-card-expired:hover { opacity:.8; }

/* Card top: airline + route + price + status */
.ob-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.ob-card-left { display:flex; align-items:center; gap:10px; }
.ob-airline-logo { width:28px; height:28px; border-radius:6px; }
.ob-card-route { display:flex; flex-direction:column; }
.ob-card-airline { font-size:13px; font-weight:700; color:#1e293b; }
.ob-card-path { font-size:12px; font-weight:600; color:#64748b; }
.ob-card-right { display:flex; align-items:center; gap:10px; }
.ob-card-price { font-size:18px; font-weight:800; color:#1e293b; letter-spacing:-.3px; }
.ob-status {
    font-size:11px; font-weight:700; padding:4px 10px; border-radius:6px;
    white-space:nowrap; letter-spacing:.2px;
}

/* Meta row */
.ob-card-meta { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:8px; padding-top:8px; border-top:1px solid #e5e7eb; }
.ob-meta-item { font-size:11px; color:#94a3b8; font-weight:500; }
.ob-meta-green { color:#10b981!important; font-weight:600; }
.ob-meta-cyan { color:#06b6d4!important; font-weight:600; }
.ob-meta-tag { font-size:10px; font-weight:700; color:#f59e0b; background:#fef3c7; padding:2px 8px; border-radius:6px; }

/* Timer bar */
.ob-timer-bar {
    display:flex; justify-content:space-between; align-items:center; margin-top:10px;
    padding:8px 12px; border-radius:8px; background:#fef3c7; font-size:12px; font-weight:600; color:#92400e;
}
.ob-timer-hold { background:#cffafe; color:#155e75; }
.ob-timer { font-size:16px; font-weight:800; color:#dc2626; letter-spacing:-.3px; }
.ob-timer-hold .ob-timer { color:#0e7490; }

/* Action buttons */
.ob-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:10px; }
.ob-btn {
    padding:8px 16px; border:none; border-radius:8px; font-size:12px; font-weight:700;
    cursor:pointer; font-family:inherit; transition:all .15s; letter-spacing:.2px;
}
.ob-btn-primary { background:#1e293b!important; color:#fff!important; }
.ob-btn-primary:hover { background:#334155!important; box-shadow:0 2px 8px rgba(30,41,59,.2); }
.ob-btn-hold { background:linear-gradient(135deg,#0891b2,#0e7490)!important; color:#fff!important; }
.ob-btn-hold:hover { box-shadow:0 2px 8px rgba(8,145,178,.3); }
.ob-btn-success { background:#10b981!important; color:#fff!important; }
.ob-btn-success:hover { background:#059669!important; }
.ob-btn-outline { background:#fff!important; color:#334155!important; border:1.5px solid #e2e8f0; }
.ob-btn-outline:hover { border-color:#cbd5e1; background:#f8fafc!important; }

/* Notes */
.ob-note { font-size:11px; color:#64748b; line-height:1.5; margin-top:6px; }
.ob-expired-note { font-size:11px; color:#94a3b8; margin-top:8px; font-weight:500; font-style:italic; }
.ob-after-sale { font-size:11px; font-weight:600; padding:5px 10px; background:#f1f5f9; border-radius:6px; color:#64748b; }

/* ── Responsive ── */
@media(max-width:640px){
    .ob-kpis { gap:6px; }
    .ob-kpi { min-width:80px; padding:10px; }
    .ob-kpi-val { font-size:16px; }
    .ob-filters { flex-direction:column; align-items:stretch; }
    .ob-search { width:100%; }
    .ob-card-top { flex-direction:column; align-items:flex-start; gap:8px; }
    .ob-card-right { width:100%; justify-content:space-between; }
    .ob-actions { flex-direction:column; }
    .ob-btn { width:100%; text-align:center; }
}

/* ═══════════════════════════════════════════════════════════════
 *  AI RESEARCH MODULE (v3.6.1)
 * ═══════════════════════════════════════════════════════════════ */
#jcap-ai-research-app { position:relative; height:100%; min-height:500px; }

/* ── HOME ── */
.air-home { padding:8px 0; }
.air-home-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:24px; }
.air-home-left { display:flex; align-items:center; gap:12px; }
.air-home-right { display:flex; gap:8px; align-items:center; }
.air-logo { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--t-accent),var(--t-accent2)); display:flex; align-items:center; justify-content:center; font-size:18px; color:#fff; flex-shrink:0; }
.air-brand { font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--t-muted); }
.air-title { font-size:22px; font-weight:700; color:var(--t-white); }

.air-bulletin-bar { display:flex; align-items:center; justify-content:space-between; background:rgba(46,196,160,.08); border:1px solid rgba(46,196,160,.15); border-radius:10px; padding:10px 16px; margin-bottom:16px; font-size:12px; color:var(--t-accent); }
.air-bulletin-bar strong { font-weight:700; }
.air-link-btn { background:none; border:none; cursor:pointer; color:var(--t-accent); text-decoration:underline; font-size:11px; }

.air-cats { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; margin-bottom:20px; }
.air-cat-card { position:relative; overflow:hidden; background:var(--t-card); border:1px solid var(--t-border); border-radius:var(--t-radius); padding:20px 18px; cursor:pointer; text-align:left; transition:all .2s; }
.air-cat-card:hover { border-color:var(--t-accent); transform:translateY(-2px); box-shadow:var(--t-shadow); }
.air-cat-card:hover .air-cat-bar { width:100%; }
.air-cat-bar { position:absolute; top:0; left:0; height:3px; width:0; background:var(--t-orange); transition:width .3s; border-radius:3px 3px 0 0; }
.air-cat-icon { font-size:28px; margin-bottom:10px; }
.air-cat-label { font-weight:600; font-size:15px; color:var(--t-white); margin-bottom:6px; }
.air-cat-desc { font-size:12px; color:var(--t-muted); line-height:1.5; }

.air-info-box { padding:14px 16px; background:var(--t-card2); border:1px solid var(--t-border); border-radius:var(--t-radius); }
.air-info-title { font-size:11px; font-weight:600; color:var(--t-muted); margin-bottom:6px; letter-spacing:0.5px; text-transform:uppercase; }
.air-info-text { font-size:13px; color:var(--t-text); line-height:1.7; }

/* ── BUTTONS ── */
.air-btn-primary { background:var(--t-accent); color:#fff; border:none; border-radius:8px; padding:7px 16px; font-size:13px; font-weight:600; cursor:pointer; transition:opacity .15s; }
.air-btn-primary:hover { opacity:.85; }
.air-btn-outline { background:transparent; border:1px solid var(--t-border); border-radius:8px; padding:6px 14px; font-size:12px; color:var(--t-text); cursor:pointer; transition:all .15s; }
.air-btn-outline:hover { border-color:var(--t-accent); color:var(--t-accent); }
.air-btn-sm { padding:5px 12px; font-size:12px; }
.air-btn-xs { padding:3px 8px; font-size:11px; }
.air-btn-danger { background:#ef4444; color:#fff; border:none; }
.air-btn-danger-outline { border-color:#ef4444; color:#ef4444; }
.air-btn-danger-outline:hover { background:#ef4444; color:#fff; }

/* ── CHAT ── */
.air-chat-wrap { display:flex; flex-direction:column; height:calc(100vh - 80px); min-height:500px; }
.air-chat-header { display:flex; align-items:center; gap:10px; padding:12px 0 14px; border-bottom:1px solid var(--t-border); }
.air-back { background:none; border:none; cursor:pointer; font-size:18px; color:var(--t-muted); padding:2px 6px; }
.air-chat-icon { font-size:22px; }
.air-chat-htext { flex:1; }
.air-chat-htitle { font-weight:600; font-size:14px; color:var(--t-white); }
.air-chat-hsub { font-size:11px; color:var(--t-muted); }
.air-chat-hactions { display:flex; gap:6px; }
.air-bulletin-strip { padding:8px 14px; background:rgba(46,196,160,.06); border-bottom:1px solid rgba(46,196,160,.1); font-size:11px; color:var(--t-accent); }

.air-chat-messages { flex:1; overflow-y:auto; padding:16px 4px; min-height:0; }

.air-empty { text-align:center; padding:30px 10px; }
.air-empty-icon { font-size:40px; margin-bottom:12px; }
.air-empty-text { font-size:14px; color:var(--t-muted); margin-bottom:6px; }
.air-empty-sub { font-size:12px; color:var(--t-muted); line-height:1.6; }
.air-quick-prompts { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:14px; }
.air-qp { background:var(--t-card); border:1px solid var(--t-border); border-radius:20px; padding:7px 14px; font-size:12px; color:var(--t-muted); cursor:pointer; white-space:nowrap; transition:all .15s; }
.air-qp:hover { border-color:var(--t-accent); color:var(--t-accent); }

/* Messages */
.air-msg { display:flex; margin-bottom:14px; }
.air-msg-user { justify-content:flex-end; }
.air-msg-ai { justify-content:flex-start; gap:8px; }
.air-ai-avatar { width:28px; height:28px; border-radius:50%; background:var(--t-accent); display:flex; align-items:center; justify-content:center; font-size:13px; color:#fff; flex-shrink:0; margin-top:2px; }
.air-msg-bubble { max-width:88%; padding:12px 16px; font-size:13px; line-height:1.65; word-break:break-word; white-space:pre-wrap; }
.air-msg-user .air-msg-bubble { background:var(--t-accent2); color:#fff; border-radius:14px 14px 4px 14px; }
.air-msg-ai .air-msg-bubble { background:var(--t-card); border:1px solid var(--t-border); color:var(--t-text); border-radius:2px 14px 14px 14px; max-width:92%; }
.air-msg-ai .air-msg-bubble strong { color:var(--t-white); font-weight:600; }
.air-msg-ai .air-msg-bubble a { color:var(--t-accent2); text-decoration:underline; }

/* Content formatting */
.air-h1 { font-weight:700; font-size:16px; margin:16px 0 8px; color:var(--t-white); }
.air-h2 { font-weight:600; font-size:15px; margin:14px 0 6px; color:var(--t-accent2); border-bottom:1px solid var(--t-border); padding-bottom:4px; }
.air-h3 { font-weight:600; font-size:14px; margin:10px 0 5px; color:var(--t-orange); }
.air-table-row { font-size:11px; font-family:'Courier New',monospace; background:var(--t-card2); padding:3px 8px; margin:1px 0; border-left:2px solid var(--t-accent2); overflow-x:auto; white-space:pre; }
.air-li { padding-left:16px; margin:3px 0; }
.air-li-num { padding-left:8px; margin:4px 0; line-height:1.6; }
.air-link { color:var(--t-accent2); word-break:break-all; font-size:13px; }
.air-link a { color:var(--t-accent2); }
.air-gap { height:6px; }
.air-alert { margin:4px 0; padding:8px 12px; border-radius:8px; font-size:13px; }
.air-alert-danger { background:rgba(239,68,68,.08); border-left:3px solid #ef4444; }
.air-alert-success { background:rgba(16,185,129,.08); border-left:3px solid #10b981; }
.air-alert-info { background:rgba(59,130,246,.08); border-left:3px solid #3b82f6; }

/* Typing dots */
.air-dots { display:flex; gap:4px; padding:4px 0; }
.air-dots span { width:7px; height:7px; border-radius:50%; background:var(--t-accent); animation:air-pulse 1.2s ease-in-out infinite; }
.air-dots span:nth-child(2) { animation-delay:.2s; }
.air-dots span:nth-child(3) { animation-delay:.4s; }
@keyframes air-pulse { 0%,80%,100%{opacity:.3;transform:scale(.8)} 40%{opacity:1;transform:scale(1.1)} }
.air-searching { font-size:11px; color:var(--t-muted); margin-top:4px; }

/* Input bar */
.air-input-bar { display:flex; gap:8px; padding:12px 0 4px; border-top:1px solid var(--t-border); }
.air-input { flex:1; padding:10px 14px; border:1px solid var(--t-input-border,var(--t-border)); border-radius:10px; font-size:13px; outline:none; background:var(--t-input,var(--t-card)); color:var(--t-text); transition:border-color .15s; }
.air-input:focus { border-color:var(--t-accent); }
.air-textarea { width:100%; padding:10px 14px; border:1px solid var(--t-input-border,var(--t-border)); border-radius:10px; font-size:13px; outline:none; background:var(--t-input,var(--t-card)); color:var(--t-text); resize:vertical; line-height:1.5; }
.air-textarea:focus { border-color:var(--t-accent); }
.air-send-btn { background:var(--t-accent); color:#fff; border:none; border-radius:10px; padding:0 20px; font-size:16px; font-weight:600; cursor:pointer; transition:opacity .15s; }
.air-send-btn:hover { opacity:.85; }
.air-send-btn:disabled { background:var(--t-card2); color:var(--t-muted); cursor:default; }

/* ── OVERLAYS ── */
.air-overlay { position:absolute; inset:0; z-index:100; background:var(--t-bg); display:flex; flex-direction:column; overflow:hidden; border-radius:var(--t-radius); }
.air-panel { display:flex; flex-direction:column; height:100%; overflow:hidden; }
.air-panel-header { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--t-border); }
.air-panel-htitle { flex:1; }
.air-panel-htitle > div:first-child { font-weight:600; font-size:15px; color:var(--t-white); }
.air-panel-hsub { font-size:11px; color:var(--t-muted); }

/* ── ADMIN ── */
.air-admin-form { padding:16px; border-bottom:2px solid var(--t-orange); background:var(--t-card2); }
.air-admin-form-title { font-size:14px; font-weight:600; color:var(--t-white); margin-bottom:12px; }
.air-field-label { font-size:11px; font-weight:600; color:var(--t-muted); margin-bottom:6px; margin-top:10px; text-transform:uppercase; letter-spacing:.5px; }
.air-bcat-row { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.air-bcat-btn { padding:5px 12px; border-radius:20px; font-size:11px; cursor:pointer; border:1px solid; background:transparent; transition:all .15s; }
.air-bcat-btn.active { color:#fff !important; }
.air-form-actions { display:flex; gap:8px; margin-top:14px; }
.air-form-actions .air-btn-primary { flex:1; }

.air-admin-list { flex:1; overflow-y:auto; padding:16px; }
.air-bulletin-card { margin-bottom:10px; padding:12px 14px; border-radius:10px; border:1px solid var(--t-border); border-left:3px solid; background:var(--t-card); }
.air-bulletin-meta { display:flex; align-items:center; gap:6px; margin-bottom:4px; }
.air-bulletin-cat { font-size:10px; font-weight:600; text-transform:uppercase; }
.air-bulletin-date { font-size:10px; color:var(--t-muted); }
.air-bulletin-title { font-weight:600; font-size:13px; color:var(--t-white); margin-bottom:4px; }
.air-bulletin-content { font-size:12px; color:var(--t-muted); line-height:1.55; }
.air-bulletin-actions { display:flex; gap:4px; margin-top:8px; }

/* ── SHARE ── */
.air-share-tabs { display:flex; border-bottom:1px solid var(--t-border); }
.air-share-tab { flex:1; padding:10px; border:none; background:transparent; cursor:pointer; font-size:13px; color:var(--t-muted); border-bottom:2px solid transparent; transition:all .15s; }
.air-share-tab.active { color:var(--t-accent); border-bottom-color:var(--t-accent); font-weight:600; }
.air-share-body { flex:1; overflow-y:auto; padding:16px; }
.air-row { display:flex; gap:8px; margin-bottom:14px; }
.air-row .air-input { flex:1; }

.air-share-btn { display:flex; align-items:center; gap:12px; width:100%; padding:12px 14px; border:1px solid var(--t-border); border-radius:10px; background:var(--t-card); cursor:pointer; text-align:left; transition:all .15s; margin-bottom:10px; }
.air-share-btn:hover { border-color:var(--t-accent); }
.air-share-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.air-share-btn-title { font-weight:600; font-size:14px; color:var(--t-white); }
.air-share-btn-sub { font-size:11px; color:var(--t-muted); }

.air-preview-box { margin-top:16px; padding:12px 14px; background:var(--t-card2); border-radius:10px; }
.air-preview-text { font-size:12px; color:var(--t-text); white-space:pre-wrap; line-height:1.5; max-height:100px; overflow-y:auto; }
.air-img-help { background:rgba(59,130,246,.08); border-radius:8px; padding:10px 14px; margin-bottom:12px; font-size:12px; color:var(--t-accent2); font-weight:600; }
.air-img-wrap { border:1px solid var(--t-border); border-radius:10px; overflow:hidden; }
.air-img-wrap img { width:100%; display:block; }

/* ── Responsive ── */
@media (max-width:640px) {
    .air-cats { grid-template-columns:1fr; }
    .air-home-header { flex-direction:column; gap:12px; }
    .air-chat-hactions { flex-wrap:wrap; }
    .air-row { flex-direction:column; }
}

/* ═══════════════════════════════════════════════════════════════
 *  CALENDAR MODULE (v3.7.0) — FullCalendar theme override
 * ═══════════════════════════════════════════════════════════════ */
#jcap-calendar-app { position:relative; }

/* Header */
.jcal-header { margin-bottom:16px; }
.jcal-title-row { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.jcal-title { font-size:22px; font-weight:700; color:var(--t-white); margin:0 0 2px; }
.jcal-subtitle { font-size:13px; color:var(--t-muted); margin:0; }
.jcal-actions { display:flex; gap:8px; }
.jcal-btn { padding:7px 16px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; border:none; transition:all .15s; }
.jcal-btn-outline { background:var(--t-card); border:1px solid var(--t-border); color:var(--t-text); }
.jcal-btn-outline:hover { border-color:var(--t-accent); color:var(--t-accent); }

/* Filters */
.jcal-filters { display:flex; flex-wrap:wrap; gap:8px; }
.jcal-filter-chip { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:20px; font-size:12px; font-weight:500; cursor:pointer; border:1px solid var(--t-border); background:var(--t-card); color:var(--t-muted); transition:all .15s; user-select:none; }
.jcal-filter-chip.active { background:var(--t-card2); border-color:var(--t-accent); color:var(--t-white); }
.jcal-filter-chip:hover { border-color:var(--t-accent); }
.jcal-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.jcal-filter-chip:not(.active) .jcal-dot { opacity:0.3; }

/* FullCalendar overrides — match JCAP theme */
#jcal-fullcalendar { background:var(--t-card); border:1px solid var(--t-border); border-radius:var(--t-radius); padding:12px; overflow:hidden; }
#jcal-fullcalendar .fc { font-family:'DM Sans','Segoe UI',system-ui,sans-serif; }
#jcal-fullcalendar .fc-toolbar { padding:0 4px; margin-bottom:12px !important; }
#jcal-fullcalendar .fc-toolbar-title { font-size:18px !important; font-weight:700 !important; color:var(--t-white) !important; }
#jcal-fullcalendar .fc-button { background:var(--t-card2) !important; border:1px solid var(--t-border) !important; color:var(--t-text) !important; font-size:12px !important; padding:5px 12px !important; border-radius:8px !important; font-weight:500 !important; box-shadow:none !important; transition:all .15s; }
#jcal-fullcalendar .fc-button:hover { border-color:var(--t-accent) !important; color:var(--t-accent) !important; }
#jcal-fullcalendar .fc-button-active { background:var(--t-accent) !important; border-color:var(--t-accent) !important; color:#fff !important; }
#jcal-fullcalendar .fc-today-button { background:var(--t-accent) !important; border-color:var(--t-accent) !important; color:#fff !important; }
#jcal-fullcalendar .fc-today-button:disabled { opacity:.5 !important; }

/* Day grid */
#jcal-fullcalendar .fc-daygrid-day { border-color:var(--t-border) !important; }
#jcal-fullcalendar .fc-col-header-cell { background:var(--t-card2) !important; border-color:var(--t-border) !important; padding:8px 0 !important; }
#jcal-fullcalendar .fc-col-header-cell-cushion { color:var(--t-muted) !important; font-size:12px !important; font-weight:600 !important; text-decoration:none !important; }
#jcal-fullcalendar .fc-daygrid-day-number { color:var(--t-text) !important; font-size:13px !important; text-decoration:none !important; padding:4px 8px !important; }
#jcal-fullcalendar .fc-day-today { background:rgba(46,196,160,.06) !important; }
#jcal-fullcalendar .fc-day-today .fc-daygrid-day-number { color:var(--t-accent) !important; font-weight:700 !important; }
#jcal-fullcalendar .fc-scrollgrid { border-color:var(--t-border) !important; }
#jcal-fullcalendar .fc-scrollgrid td, #jcal-fullcalendar .fc-scrollgrid th { border-color:var(--t-border) !important; }
#jcal-fullcalendar .fc-daygrid-day-frame { min-height:80px; }

/* Events */
#jcal-fullcalendar .fc-event { border-radius:5px !important; padding:2px 5px !important; font-size:11px !important; font-weight:500 !important; cursor:pointer !important; border:none !important; margin-bottom:1px !important; line-height:1.4 !important; }
#jcal-fullcalendar .fc-daygrid-event-dot { display:none !important; }
#jcal-fullcalendar .fc-event:hover { opacity:.85; filter:brightness(1.1); }
#jcal-fullcalendar .fc-more-link { color:var(--t-accent) !important; font-weight:600 !important; font-size:11px !important; }

/* List view */
#jcal-fullcalendar .fc-list { border-color:var(--t-border) !important; }
#jcal-fullcalendar .fc-list-day-cushion { background:var(--t-card2) !important; }
#jcal-fullcalendar .fc-list-day-text, #jcal-fullcalendar .fc-list-day-side-text { color:var(--t-white) !important; text-decoration:none !important; font-weight:600 !important; }
#jcal-fullcalendar .fc-list-event td { border-color:var(--t-border) !important; }
#jcal-fullcalendar .fc-list-event-title a { color:var(--t-text) !important; text-decoration:none !important; }
#jcal-fullcalendar .fc-list-event:hover td { background:var(--t-card2) !important; }
#jcal-fullcalendar .fc-list-empty-cushion { color:var(--t-muted) !important; }

/* Week/time grid */
#jcal-fullcalendar .fc-timegrid-slot { border-color:var(--t-border) !important; }
#jcal-fullcalendar .fc-timegrid-slot-label-cushion { color:var(--t-muted) !important; font-size:11px !important; }
#jcal-fullcalendar .fc-timegrid-now-indicator-line { border-color:var(--t-accent) !important; }

/* Popup */
.jcal-popup { position:absolute; z-index:200; background:var(--t-card); border:1px solid var(--t-border); border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,.15); width:290px; padding:16px; animation:jcalFadeIn .2s ease; }
@keyframes jcalFadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
.jcal-pop-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.jcal-pop-type { font-size:11px; font-weight:600; color:var(--t-accent); text-transform:uppercase; letter-spacing:.5px; }
.jcal-pop-close { background:none; border:none; cursor:pointer; font-size:16px; color:var(--t-muted); padding:0; line-height:1; }
.jcal-pop-close:hover { color:var(--t-white); }
.jcal-pop-title { font-size:14px; font-weight:600; color:var(--t-white); margin-bottom:6px; line-height:1.4; }
.jcal-pop-date { font-size:12px; color:var(--t-muted); margin-bottom:10px; }
.jcal-pop-details { font-size:13px; color:var(--t-text); line-height:1.8; margin-bottom:12px; }
.jcal-pop-details strong { color:var(--t-white); }
.jcal-pop-badge { display:inline-block; padding:1px 8px; border-radius:10px; font-size:11px; font-weight:600; background:var(--t-card2); color:var(--t-muted); }
.jcal-pop-action { display:block; width:100%; padding:8px; background:var(--t-accent); color:#fff; border:none; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; text-align:center; transition:opacity .15s; }
.jcal-pop-action:hover { opacity:.85; }

/* Responsive */
@media (max-width:640px) {
    .jcal-title-row { flex-direction:column; gap:10px; }
    .jcal-filters { gap:6px; }
    .jcal-filter-chip { font-size:11px; padding:5px 10px; }
    #jcal-fullcalendar .fc-toolbar { flex-direction:column; gap:8px; }
    #jcal-fullcalendar .fc-toolbar-chunk { display:flex; justify-content:center; }
    .jcal-popup { width:260px; }
}

/* ═══════════════════════════════════════════════════════════════
 *  NOTIFICATION BELL & DROPDOWN (v3.7.0)
 * ═══════════════════════════════════════════════════════════════ */
.jcap-bell-wrap { position:relative; }
.jcap-bell-btn { background:none; border:none; cursor:pointer; color:rgba(255,255,255,.7); padding:6px; border-radius:8px; transition:all .15s; position:relative; display:flex; align-items:center; }
.jcap-bell-btn:hover { color:#fff; background:rgba(255,255,255,.1); }
.jcap-bell-badge { position:absolute; top:0; right:0; min-width:18px; height:18px; padding:0 5px; border-radius:10px; background:#ef4444; color:#fff; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; line-height:1; animation:jcap-badge-pop .3s ease; }
@keyframes jcap-badge-pop { 0%{transform:scale(0)} 60%{transform:scale(1.2)} 100%{transform:scale(1)} }

/* Dropdown */
.jcap-bell-dropdown { position:absolute; top:calc(100% + 8px); right:0; width:360px; max-height:440px; background:var(--t-card); border:1px solid var(--t-border); border-radius:14px; box-shadow:0 16px 48px rgba(0,0,0,.18); z-index:1000; overflow:hidden; animation:jcalFadeIn .2s ease; }
.jcap-bell-dd-header { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid var(--t-border); }
.jcap-bell-dd-title { font-size:15px; font-weight:700; color:var(--t-white); }
.jcap-bell-dd-mark { background:none; border:none; cursor:pointer; font-size:12px; color:var(--t-accent); font-weight:600; padding:4px 8px; border-radius:6px; transition:background .15s; }
.jcap-bell-dd-mark:hover { background:rgba(46,196,160,.1); }

/* List */
.jcap-bell-dd-list { max-height:360px; overflow-y:auto; }
.jcap-bell-dd-empty { text-align:center; padding:40px 20px; color:var(--t-muted); font-size:14px; }

/* Item */
.jcap-bell-dd-item { display:flex; align-items:flex-start; gap:10px; padding:12px 16px; border-bottom:1px solid var(--t-border); cursor:pointer; transition:background .15s; position:relative; }
.jcap-bell-dd-item:hover { background:var(--t-card2); }
.jcap-bell-dd-item:last-child { border-bottom:none; }
.jcap-bell-unread { background:rgba(46,196,160,.04); }
.jcap-bell-unread::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--t-accent); border-radius:0 3px 3px 0; }
.jcap-bell-dd-icon { font-size:18px; flex-shrink:0; margin-top:2px; }
.jcap-bell-dd-body { flex:1; min-width:0; }
.jcap-bell-dd-title { font-size:13px; font-weight:600; color:var(--t-white); line-height:1.3; margin-bottom:2px; }
.jcap-bell-dd-msg { font-size:12px; color:var(--t-muted); line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jcap-bell-dd-time { font-size:11px; color:var(--t-muted); margin-top:3px; opacity:.7; }
.jcap-bell-dd-dismiss { position:absolute; top:10px; right:10px; background:none; border:none; cursor:pointer; font-size:14px; color:var(--t-muted); opacity:0; transition:opacity .15s; padding:2px; line-height:1; }
.jcap-bell-dd-item:hover .jcap-bell-dd-dismiss { opacity:1; }
.jcap-bell-dd-dismiss:hover { color:var(--t-red); }

@media (max-width:640px) {
    .jcap-bell-dropdown { width:calc(100vw - 20px); right:-60px; }
}

/* ═══════════════════════════════════════════════════════════════
 *  SIDEBAR NOTIFICATION BADGE + FULL PAGE (v3.7.0)
 * ═══════════════════════════════════════════════════════════════ */

/* Sidebar badge */
.jcap-notif-sidebar-badge { min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:#ef4444; color:#fff; font-size:11px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; margin-left:auto; line-height:1; animation:jcap-badge-pop .3s ease; }

/* Notification full page */
.jcap-notif-page-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.jcap-notif-page-actions { display:flex; gap:8px; }
.jcap-notif-page-list { max-width:800px; }

/* Notification page items */
.jcap-np-item { display:flex; align-items:flex-start; gap:12px; padding:16px 18px; border:1px solid var(--t-border); border-radius:var(--t-radius); background:var(--t-card); margin-bottom:10px; transition:all .2s; position:relative; }
.jcap-np-item:hover { border-color:var(--t-accent); box-shadow:var(--t-shadow); }
.jcap-np-unread { border-left:3px solid var(--t-accent); background:rgba(46,196,160,.03); }
.jcap-np-icon { font-size:24px; flex-shrink:0; margin-top:2px; }
.jcap-np-body { flex:1; min-width:0; }
.jcap-np-title { font-size:14px; font-weight:600; color:var(--t-white); margin-bottom:4px; }
.jcap-np-msg { font-size:13px; color:var(--t-text); line-height:1.55; margin-bottom:6px; }
.jcap-np-time { font-size:11px; color:var(--t-muted); }
.jcap-np-promo { margin:6px 0; }
.jcap-np-promo-code { background:#c87d2a; color:#fff; padding:3px 14px; border-radius:6px; font-weight:700; font-size:14px; letter-spacing:1.5px; display:inline-block; }
.jcap-np-actions { display:flex; flex-direction:column; gap:4px; opacity:0; transition:opacity .15s; }
.jcap-np-item:hover .jcap-np-actions { opacity:1; }
.jcap-np-action-btn { background:var(--t-card2); border:1px solid var(--t-border); border-radius:6px; width:28px; height:28px; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:14px; color:var(--t-muted); transition:all .15s; }
.jcap-np-action-btn:hover { border-color:var(--t-accent); color:var(--t-accent); }
.jcap-np-dismiss:hover { border-color:#ef4444; color:#ef4444; }

@media (max-width:640px) {
    .jcap-np-actions { opacity:1; flex-direction:row; }
    .jcap-notif-page-header { flex-direction:column; }
}

/* ═══════════════════════════════════════════════════════════════
 *  DOCUMENT GENERATOR (v3.7.0)
 * ═══════════════════════════════════════════════════════════════ */
.jdoc-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:20px; flex-wrap:wrap; gap:12px; }
.jdoc-title { font-size:22px; font-weight:700; color:var(--t-white); margin:0 0 2px; }
.jdoc-subtitle { font-size:13px; color:var(--t-muted); margin:0; }
.jdoc-tabs { display:flex; gap:4px; }
.jdoc-tab { padding:7px 16px; border:1px solid var(--t-border); border-radius:8px; background:var(--t-card); color:var(--t-muted); font-size:13px; font-weight:500; cursor:pointer; transition:all .15s; }
.jdoc-tab.active { background:var(--t-accent); color:#fff; border-color:var(--t-accent); }
.jdoc-tab:hover:not(.active) { border-color:var(--t-accent); color:var(--t-accent); }
.jdoc-back { background:none; border:none; cursor:pointer; font-size:14px; color:var(--t-accent); font-weight:600; padding:0; margin-bottom:8px; display:inline-block; }

.jdoc-cat-title { font-size:12px; font-weight:700; color:var(--t-muted); text-transform:uppercase; letter-spacing:1px; margin:20px 0 10px; padding-bottom:6px; border-bottom:1px solid var(--t-border); }
.jdoc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; margin-bottom:16px; }
.jdoc-card { display:flex; align-items:flex-start; gap:12px; padding:16px; background:var(--t-card); border:1px solid var(--t-border); border-radius:var(--t-radius); cursor:pointer; text-align:left; transition:all .2s; }
.jdoc-card:hover { border-color:var(--t-accent); transform:translateY(-2px); box-shadow:var(--t-shadow); }
.jdoc-card-icon { font-size:28px; flex-shrink:0; }
.jdoc-card-body { flex:1; min-width:0; }
.jdoc-card-name { font-size:14px; font-weight:600; color:var(--t-white); margin-bottom:4px; line-height:1.3; }
.jdoc-card-desc { font-size:12px; color:var(--t-muted); line-height:1.4; }
.jdoc-lang { display:inline-block; padding:1px 6px; border-radius:4px; font-size:10px; font-weight:700; background:var(--t-card2); color:var(--t-accent); margin-left:4px; vertical-align:middle; }

.jdoc-form { background:var(--t-card); border:1px solid var(--t-border); border-radius:var(--t-radius); padding:20px; margin-bottom:20px; }
.jdoc-field { margin-bottom:14px; }
.jdoc-label { display:block; font-size:12px; font-weight:600; color:var(--t-muted); margin-bottom:6px; }
.jdoc-select { width:100%; padding:10px 14px; border:1px solid var(--t-input-border,var(--t-border)); border-radius:10px; font-size:14px; background:var(--t-input,var(--t-card)); color:var(--t-text); outline:none; appearance:auto; }
.jdoc-gen-btn { width:100%; padding:12px; background:var(--t-accent); color:#fff; border:none; border-radius:10px; font-size:15px; font-weight:700; cursor:pointer; transition:all .15s; }
.jdoc-gen-btn:hover { opacity:.85; }
.jdoc-gen-btn:disabled { opacity:.5; cursor:default; }

.jdoc-preview-toolbar { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:var(--t-card); border:1px solid var(--t-border); border-radius:var(--t-radius) var(--t-radius) 0 0; }
.jdoc-preview-title { font-size:14px; font-weight:600; color:var(--t-white); }
.jdoc-print-btn { padding:7px 16px; background:#1a3a5c; color:#fff; border:none; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; }
.jdoc-print-btn:hover { opacity:.85; }
.jdoc-preview-frame { border:1px solid var(--t-border); border-top:none; border-radius:0 0 var(--t-radius) var(--t-radius); overflow:hidden; min-height:400px; background:#e5e7eb; }

.jdoc-history-list { max-width:800px; }
.jdoc-history-item { display:flex; align-items:center; gap:12px; padding:14px 16px; background:var(--t-card); border:1px solid var(--t-border); border-radius:var(--t-radius); margin-bottom:8px; }
.jdoc-history-icon { font-size:24px; flex-shrink:0; }
.jdoc-history-body { flex:1; }
.jdoc-history-title { font-size:14px; font-weight:600; color:var(--t-white); }
.jdoc-history-meta { font-size:12px; color:var(--t-muted); margin-top:2px; }

@media (max-width:640px) {
    .jdoc-grid { grid-template-columns:1fr; }
    .jdoc-header { flex-direction:column; }
}

/* ═══ DOCUMENT EDITOR (v2.0) ═══ */
.jdoc-nh { display:inline-block; padding:2px 8px; border-radius:4px; font-size:10px; font-weight:600; background:rgba(239,68,68,.1); color:#dc2626; margin-top:4px; }
.jdoc-nh-inline { display:inline-block; padding:3px 10px; border-radius:6px; font-size:11px; font-weight:600; background:rgba(239,68,68,.08); color:#dc2626; margin-left:8px; }
.jdoc-custom-badge { display:inline-block; padding:1px 6px; border-radius:4px; font-size:9px; font-weight:700; background:var(--t-accent); color:#fff; margin-left:4px; vertical-align:middle; }
.jdoc-form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.jdoc-input { width:100%; padding:10px 14px; border:1px solid var(--t-input-border,var(--t-border)); border-radius:10px; font-size:14px; background:var(--t-input,var(--t-card)); color:var(--t-text); outline:none; }

.jdoc-var-toolbar { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:10px; padding:8px; background:var(--t-card2); border-radius:8px; }
.jdoc-var-btn { padding:3px 8px; border:1px solid var(--t-border); border-radius:5px; background:var(--t-card); color:var(--t-accent); font-size:10px; font-family:monospace; cursor:pointer; transition:all .15s; white-space:nowrap; }
.jdoc-var-btn:hover { background:var(--t-accent); color:#fff; border-color:var(--t-accent); }

.jdoc-edit-textarea { width:100%; min-height:300px; padding:14px; border:1px solid var(--t-border); border-radius:10px; font-family:'Fira Code',Consolas,monospace; font-size:12px; line-height:1.6; background:var(--t-input,#0f172a); color:var(--t-text,#e2e8f0); resize:vertical; outline:none; tab-size:2; }
.jdoc-edit-header { display:flex; justify-content:space-between; align-items:center; padding:12px 0; margin-bottom:10px; border-bottom:1px solid var(--t-border); }
.jdoc-edit-header span { font-size:14px; font-weight:600; color:var(--t-white); }
.jdoc-save-edit { padding:7px 16px; background:var(--t-accent); color:#fff; border:none; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; }
.jdoc-cancel-edit { padding:7px 16px; background:none; color:var(--t-muted); border:1px solid var(--t-border); border-radius:8px; font-size:13px; cursor:pointer; margin-left:6px; }
.jdoc-edit-btn { padding:7px 16px; background:var(--t-card2); color:var(--t-text); border:1px solid var(--t-border); border-radius:8px; font-size:13px; font-weight:500; cursor:pointer; transition:all .15s; }
.jdoc-edit-btn:hover { border-color:var(--t-accent); color:var(--t-accent); }
.jdoc-preview-actions { display:flex; gap:6px; }

@media (max-width:640px) { .jdoc-form-row { grid-template-columns:1fr; } }


/* ═══════════════════════════════════════════════════════════════
 *  JCAP DOCUMENT EDITOR v3.0 — WordPress-integrated
 * ═══════════════════════════════════════════════════════════════ */
.jde{display:flex;height:100%;background:#ffffff;color:#475569;font-size:13px;overflow:hidden;width:100%}
@media(max-width:1024px){.jde{width:100%}}
@media(max-width:640px){.jde{width:100%}}
.jde-m{flex:1;display:flex;flex-direction:column;min-width:0}

/* Thumbnails */
.jde-th:not(:empty){width:76px;padding:8px 6px}
.jde-tht{font-size:8px;font-weight:700;color:#9ca3af;text-align:center;margin-bottom:6px;letter-spacing:1px}
.jde-tm{cursor:pointer;margin-bottom:6px;border:2px solid transparent;border-radius:4px;overflow:hidden;opacity:.5;transition:all .15s}
.jde-tm:hover{opacity:.8}
.jde-tm-a{border-color:#10b981!important;opacity:1!important}
.jde-tm img{width:100%;display:block}
.jde-tn{font-size:7px;text-align:center;color:#9ca3af;padding:2px 0}

/* Bar 1 */
.jde-b1{height:50px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 6px;gap:0;overflow-x:auto;flex-shrink:0}
.jde-t{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;height:42px;border:none;border-radius:6px;cursor:pointer;gap:1px;background:transparent;color:#9ca3af;flex-shrink:0;padding:0 2px;transition:all .1s}
.jde-t:hover{background:#f1f5f9;color:#1e293b}
.jde-t-on{background:#10b981!important;color:#fff!important}
.jde-t-ac{color:#93c5fd!important}.jde-t-ac:hover{background:#1e40af!important}
.jde-t span{font-size:15px;line-height:1}.jde-t small{font-size:7px;font-weight:600;opacity:.85;white-space:nowrap}
.jde-vs{width:1px;height:30px;background:#e2e8f0;margin:0 3px;flex-shrink:0}

/* Bar 2 */
.jde-b2{height:32px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 10px;gap:4px;flex-shrink:0;overflow-x:auto}
.jde-sl{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:5px;padding:2px 4px;font-size:11px;outline:none}
.jde-sp{width:1px;height:16px;background:#e2e8f0;flex-shrink:0}
.jde-fm{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #e2e8f0;border-radius:4px;color:#475569;cursor:pointer;font-size:12px;transition:all .1s}
.jde-fm:hover{border-color:#34d399}.jde-fm-on{background:#10b981!important;border-color:#10b981!important;color:#fff!important}
.jde-cp{width:22px;height:22px;border:2px solid #e2e8f0;border-radius:4px;cursor:pointer;background:none;padding:0}
.jde-cbar{width:36px;height:5px;border-radius:3px;background:#f1f5f9}
.jde-lb{font-size:9px;color:#9ca3af;flex-shrink:0}
.jde-rng{width:80px;accent-color:#10b981}
.jde-pb{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;color:#475569;cursor:pointer;font-size:12px;font-weight:700}
.jde-ab{padding:3px 8px;background:transparent;border:1px solid #e2e8f0;border-radius:5px;color:#475569;font-size:10px;cursor:pointer;white-space:nowrap}
.jde-ab:hover{border-color:#34d399;color:#1e293b}
.jde-ab-p{background:#10b981!important;border-color:#10b981!important;color:#fff!important;font-weight:700;padding:3px 14px}

/* Toggle */
.jde-tg{display:flex;align-items:center;gap:6px;margin:0 8px;flex-shrink:0}
.jde-tg span{font-size:10px;color:#9ca3af;font-weight:600}
.jde-sw{width:36px;height:20px;border-radius:10px;background:#e2e8f0;cursor:pointer;position:relative;transition:background .2s}
.jde-sw-on{background:#10b981}
.jde-dot{width:16px;height:16px;border-radius:8px;background:#fff;position:absolute;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.jde-sw-on .jde-dot{left:18px}

/* Canvas */
.jde-ci{transform-origin:top center;transition:transform .1s}
.jde-cs{box-shadow:0 4px 40px rgba(0,0,0,.1);border-radius:2px;overflow:hidden}

/* Status */
.jde-st{height:24px;background:#f1f5f9;border-top:1px solid #e2e8f0;display:flex;align-items:center;padding:0 12px;gap:8px;font-size:9px;color:#9ca3af}
.jde-st b{color:#34d399}.jde-g{color:#10b981!important}.jde-r{color:#ef4444!important}

/* Overlays */
.jde-ov{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:999999;backdrop-filter:blur(4px)}
.jde-md{background:#f8fafc;border-radius:16px;padding:24px 28px;width:400px;box-shadow:0 20px 50px rgba(0,0,0,.1);border:1px solid #e2e8f0}
.jde-md h3{margin:0 0 16px;font-size:17px;font-weight:800;color:#1e293b}
.jde-mc{margin-top:14px;width:100%;padding:9px;background:transparent;border:1px solid #e2e8f0;border-radius:8px;color:#9ca3af;cursor:pointer;font-size:12px}
.jde-eg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.jde-eb{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px;background:#f1f5f9;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;color:#475569;transition:all .15s}
.jde-eb:hover{border-color:#10b981;transform:translateY(-2px)}
.jde-eb span{font-size:28px}.jde-eb b{font-size:14px}

/* Signature */
.jde-sgp{border:2px solid #e2e8f0;border-radius:10px;cursor:crosshair;background:#fff;display:block;margin:0 auto}
.jde-sgb{display:flex;gap:8px;margin-top:12px;justify-content:center}
.jde-sg1{padding:9px 24px;background:#10b981;color:#fff;border:none;border-radius:10px;font-weight:700;cursor:pointer;font-size:13px}
.jde-sg2{padding:9px 16px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer}
.jde-sg3{padding:9px 16px;background:transparent;color:#9ca3af;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer}

@media(max-width:768px){
  .jde-b1{flex-wrap:wrap;height:auto;padding:4px}
  .jde-t{min-width:36px;height:36px}.jde-t small{display:none}
  .jde-th:not(:empty){width:55px}
}

/* ═══ DASHBOARD VIEW (PDFfiller-style) ═══ */
@media(max-width:768px){.jdd-side{display:none}}
@media(max-width:640px){.jdd{width:100%}}

.jdd{display:flex;height:100%;background:#ffffff;color:#475569;overflow:hidden;width:100%}
.jdd-side{width:220px;background:#f8fafc;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;padding:12px 0;overflow-y:auto;flex-shrink:0}
.jdd-search{padding:0 12px 10px}
.jdd-search-in{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#f1f5f9;color:#475569;font-size:12px;outline:none}
.jdd-search-in:focus{border-color:#10b981}
.jdd-add-btn{margin:0 12px 6px;padding:10px;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;text-align:center}
.jdd-add-btn:hover{background:#059669}
.jdd-new-btn{margin:0 12px 12px;padding:10px;background:transparent;color:#34d399;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;text-align:center}
.jdd-new-btn:hover{border-color:#34d399}
.jdd-nav-label{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:1px;padding:10px 16px 6px}
.jdd-nav{display:flex;align-items:center;gap:10px;width:100%;padding:9px 16px;background:transparent;border:none;border-left:3px solid transparent;color:#6b7280;font-size:13px;cursor:pointer;text-align:left;transition:all .1s}
.jdd-nav:hover{background:#f1f5f9;color:#1e293b}
.jdd-nav-on{background:#f1f5f9!important;color:#1e293b!important;border-left-color:#10b981!important}
.jdd-nav span{font-size:16px;width:20px;text-align:center}

.jdd-main{flex:1;overflow-y:auto;padding:0}

/* Tools bar */
.jdd-tools-title{display:flex;justify-content:space-between;align-items:center;padding:16px 24px 10px;font-size:14px;font-weight:700;color:#1e293b}
.jdd-tools-all{font-size:12px;color:#34d399;font-weight:500;cursor:pointer;text-decoration:none}
.jdd-tools{display:flex;gap:10px;padding:0 24px 16px;overflow-x:auto}
.jdd-tool-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 18px;min-width:110px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer;color:#475569;transition:all .15s;text-align:center;flex-shrink:0}
.jdd-tool-card:hover{border-color:#10b981;transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.jdd-tc-icon{font-size:22px}
.jdd-tc-label{font-size:11px;font-weight:500;white-space:nowrap}

/* Filters */
.jdd-filters{display:flex;gap:0;padding:0 24px;border-bottom:1px solid #e5e7eb}
.jdd-filter{padding:10px 18px;background:transparent;border:none;border-bottom:2px solid transparent;color:#9ca3af;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}
.jdd-filter:hover{color:#1e293b}
.jdd-filter-on{color:#1e293b!important;border-bottom-color:#10b981!important}

/* Document list */
.jdd-list{padding:0 24px}
.jdd-row{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid #e5e7eb;transition:background .1s}
.jdd-row:hover{background:#f1f5f9}
.jdd-row-head{font-size:11px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}
.jdd-row-head:hover{background:transparent}
.jdd-col-icon{font-size:18px;flex-shrink:0;opacity:.5}
.jdd-col-name{flex:1;min-width:0}
.jdd-doc-name{font-size:13px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jdd-doc-sub{font-size:10px;color:#9ca3af;margin-top:2px}
.jdd-col-date{width:120px;font-size:12px;color:#9ca3af;flex-shrink:0;text-align:right}
.jdd-col-act{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .15s}
.jdd-row:hover .jdd-col-act{opacity:1}
.jdd-act-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;font-size:13px;transition:all .1s}
.jdd-act-btn:hover{border-color:#10b981;color:#34d399}

/* Empty state */
.jdd-empty{text-align:center;padding:60px 20px;color:#9ca3af}
.jdd-empty-icon{font-size:48px;margin-bottom:16px;opacity:.4}
.jdd-empty-btn{margin-top:16px;padding:10px 24px;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}

/* Template gallery */
.jdd-explore{padding:20px 24px;border-top:1px solid #e5e7eb;margin-top:8px}
.jdd-explore-title{font-size:14px;font-weight:700;color:#1e293b;margin-bottom:12px}
.jdd-tpl-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.jdd-tpl-card{min-width:100px;padding:14px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;text-align:center;flex-shrink:0;transition:all .15s}
.jdd-tpl-card:hover{border-color:#10b981;transform:translateY(-2px)}
.jdd-tpl-icon{font-size:24px;margin-bottom:6px}
.jdd-tpl-name{font-size:10px;color:#6b7280;font-weight:500;white-space:nowrap}

/* Editor back button */
.jde-t-back{color:#34d399!important}
.jde-t-back:hover{background:#f1f5f9!important;color:#1e293b!important}

/* ═══ FOLDER ZONE — Upload + File list ═══ */
.jdd-folder-zone{padding:0 24px 16px;border-bottom:1px solid #e5e7eb;margin-bottom:8px}
.jdd-fz-header{display:flex;justify-content:space-between;align-items:center;padding:12px 0 10px;font-size:15px;font-weight:800;color:#1e293b}
.jdd-fz-count{font-size:11px;font-weight:500;color:#9ca3af;background:#f1f5f9;padding:3px 10px;border-radius:20px}
.jdd-drop{border:2px dashed #e2e8f0;border-radius:14px;padding:28px 20px;text-align:center;cursor:pointer;transition:all .2s;margin-bottom:14px;background:#f8fafc}
.jdd-drop:hover,.jdd-drop-on{border-color:#10b981!important;background:#ecfdf5!important}
.jdd-drop-icon{font-size:32px;margin-bottom:6px;opacity:.5}
.jdd-drop-text{font-size:14px;font-weight:700;color:#6b7280}
.jdd-drop-sub{font-size:11px;color:#64748b;margin-top:4px}
.jdd-ffile{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;margin-bottom:6px;transition:all .15s}
.jdd-ffile:hover{border-color:#e2e8f0;background:#f1f5f9}
.jdd-ffile-icon{font-size:24px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:10px;flex-shrink:0}
.jdd-ffile-info{flex:1;min-width:0}
.jdd-ffile-name{font-size:13px;font-weight:700;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jdd-ffile-meta{font-size:10px;color:#9ca3af;margin-top:2px}
.jdd-ffile-acts{display:flex;gap:4px;flex-shrink:0}
.jdd-fa{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;transition:all .12s}
.jdd-fa:hover{border-color:#10b981;color:#34d399;transform:translateY(-1px)}
.jdd-fa-del:hover{border-color:#ef4444!important;color:#ef4444!important}
.jdd-fa-edit{background:#ecfdf5!important;border-color:#10b981!important;color:#10b981!important}
.jdd-fa-edit:hover{background:#10b981!important;color:#fff!important;transform:translateY(-1px)}

/* Folder add button */
.jdd-folder-add{background:#10b981;color:#fff;border:none;border-radius:6px;width:22px;height:22px;font-size:14px;cursor:pointer;line-height:1;margin-left:auto;transition:all .1s}
.jdd-folder-add:hover{background:#059669;transform:scale(1.1)}

@media(max-width:768px){.jdd-side{width:0;display:none}.jdd-tools{flex-wrap:wrap}}

/* ═══ Client selector modal + Preview modal ═══ */
.jdd-cm-form{display:flex;flex-direction:column;gap:14px}
.jdd-cm-field{display:flex;flex-direction:column;gap:6px}
.jdd-cm-label{font-size:12px;font-weight:600;color:#6b7280}
.jdd-cm-sel{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#f1f5f9;color:#1e293b;font-size:14px;outline:none}
.jdd-cm-sel:focus{border-color:#10b981}
.jdd-cm-btns{display:flex;gap:8px;margin-top:6px}
.jdd-cm-gen{flex:1;padding:12px;background:#10b981;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}
.jdd-cm-gen:hover{background:#059669}
.jdd-cm-gen:disabled{opacity:.5;cursor:default}
.jdd-cm-cancel{padding:12px 20px;background:transparent;border:1px solid #e2e8f0;border-radius:10px;color:#6b7280;font-size:14px;cursor:pointer}

/* Preview modal */
.jdd-preview-wrap{width:90vw;max-width:820px;height:90vh;background:#f8fafc;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.1);border:1px solid #e2e8f0}
.jdd-preview-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#f1f5f9;border-bottom:1px solid #e2e8f0}
.jdd-preview-bar span{font-size:14px;font-weight:700;color:#1e293b}
.jdd-preview-actions{display:flex;gap:8px;align-items:center}
.jdd-pv-btn{padding:7px 16px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}
.jdd-pv-btn:hover{border-color:#10b981;color:#1e293b}
.jdd-pv-edit{background:#10b981!important;border-color:#10b981!important;color:#fff!important}
.jdd-pv-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #e2e8f0;border-radius:8px;color:#6b7280;font-size:16px;cursor:pointer}
.jdd-pv-close:hover{color:#ef4444;border-color:#ef4444}
.jdd-preview-iframe{flex:1;border:none;background:#fff;width:100%}

/* Template no-header badge */
.jdd-tpl-nh{font-size:8px;color:#f59e0b;margin-top:3px;font-weight:600}

/* ═══ HTML EDITOR (contenteditable) ═══ */
.jhe{display:flex;flex-direction:column;height:100%;background:#ffffff;color:#475569;overflow:hidden;width:100%}
@media(max-width:1024px){.jhe{width:100%}}
@media(max-width:640px){.jhe{width:100%}}

.jhe-bar{height:42px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 10px;gap:4px;overflow-x:auto;flex-shrink:0}
.jhe-btn{padding:5px 10px;background:transparent;border:1px solid #e2e8f0;border-radius:6px;color:#475569;font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .1s}
.jhe-btn:hover{border-color:#34d399;color:#1e293b}
.jhe-fb{font-size:13px}
.jhe-pri{background:#10b981!important;border-color:#10b981!important;color:#fff!important;font-weight:700}
.jhe-sel{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:6px;padding:4px;font-size:11px;outline:none}
.jhe-cpick{width:24px;height:24px;border:2px solid #e2e8f0;border-radius:6px;cursor:pointer;background:none;padding:0}
.jhe-sep{width:1px;height:22px;background:#e2e8f0;flex-shrink:0;margin:0 2px}

.jhe-page-area{flex:1;overflow-y:auto;display:flex;justify-content:center;padding:24px;background:#e2e8f0}
.jhe-page{width:210mm;min-height:297mm;background:#fff;color:#f1f5f9;padding:25mm 20mm;box-shadow:0 4px 40px rgba(0,0,0,.1);font-family:'Segoe UI',Arial,sans-serif;font-size:13px;line-height:1.7;outline:none;cursor:text;overflow-wrap:break-word;word-wrap:break-word}
.jhe-page:focus{box-shadow:0 4px 40px rgba(0,0,0,.1),0 0 0 3px rgba(16,185,129,.3)}
.jhe-page img{max-width:100%;height:auto;cursor:move}
.jhe-page table{border-collapse:collapse;width:100%}
.jhe-page table td,.jhe-page table th{border:1px solid #d1d5db;padding:6px 10px}

/* Editable variable highlights */
.jhe-page .jcap-var{border-bottom:2px dashed #f59e0b!important;cursor:text;transition:background .15s;padding:0 2px;border-radius:2px}
.jhe-page .jcap-var:hover{background:rgba(245,158,11,0.12)!important}
.jhe-page .jcap-var:focus{background:rgba(245,158,11,0.2)!important;outline:none}
.jhe-page .jcap-var-empty{color:#6b7280;font-style:italic}

.jhe-status{height:26px;background:#f1f5f9;border-top:1px solid #e2e8f0;display:flex;align-items:center;padding:0 14px;font-size:10px;color:#9ca3af}

/* Print styles for export */
@media print{.jhe-bar,.jhe-status{display:none!important}.jhe-page-area{padding:0!important;background:#fff!important}.jhe-page{box-shadow:none!important;margin:0!important;padding:20mm!important}.jcap-var{border-bottom:none!important;background:transparent!important}}

/* ═══ Context Menu (PDFfiller-style) ═══ */
.jdd-ctx{position:fixed;z-index:999998;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.1);min-width:240px;padding:6px 0;overflow:hidden}
.jdd-ctx-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:transparent;border:none;color:#475569;font-size:13px;cursor:pointer;text-align:left;transition:background .1s;position:relative}
.jdd-ctx-item:hover{background:#e2e8f0;color:#1e293b}
.jdd-ctx-item span:first-child{width:20px;text-align:center;font-size:15px;flex-shrink:0}
.jdd-ctx-arrow{position:absolute;right:14px;font-size:16px;color:#9ca3af}
.jdd-ctx-sep{height:1px;background:#e2e8f0;margin:4px 0}
.jdd-ctx-danger{color:#ef4444!important}
.jdd-ctx-danger:hover{background:#fef2f2!important;color:#ef4444!important}
.jdd-ctx-sub{padding-right:32px}

/* Row clickable */
.jdd-row:not(.jdd-row-head){cursor:pointer}
.jdd-row:not(.jdd-row-head):hover .jdd-doc-name{color:#34d399}

/* Context trigger always visible on hover */
.jdd-ctx-trigger{opacity:0;transition:opacity .15s}
.jdd-row:hover .jdd-ctx-trigger{opacity:1}
.jdd-act-open{opacity:0;transition:opacity .15s}
.jdd-row:hover .jdd-act-open{opacity:1}

/* ═══ Editor: Content area with right sidebar ═══ */
.jde-content{flex:1;display:flex;overflow:hidden}
.jde-ca{flex:1;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:20px;background:#e5e7eb}

/* Right sidebar: fillable fields */
.jde-rside{width:220px;background:#f8fafc;border-left:1px solid #e2e8f0;overflow-y:auto;flex-shrink:0;padding:12px;display:flex;flex-direction:column;gap:10px}
.jde-rs-title{font-size:12px;font-weight:700;color:#1e293b;margin-bottom:4px}
.jde-rs-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.jde-rs-field{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;color:#475569;font-size:11px;transition:all .12s;text-align:left}
.jde-rs-field:hover{border-color:#f59e0b;background:#f0fdf4;transform:translateY(-1px)}
.jde-rs-fic{font-size:16px;flex-shrink:0;width:22px;text-align:center}
.jde-rs-flb{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jde-rs-sep{height:1px;background:#e2e8f0;margin:6px 0}
.jde-rs-esign{width:100%;padding:10px;background:transparent;border:1px dashed #f59e0b;border-radius:8px;color:#f59e0b;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all .15s}
.jde-rs-esign:hover{background:rgba(245,158,11,.08)}
.jde-rs-recipients{display:flex;flex-direction:column;gap:4px}
.jde-rs-recipient{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#f1f5f9;border-radius:6px;font-size:11px;color:#475569}
.jde-rs-rem{background:none;border:none;color:#ef4444;cursor:pointer;font-size:14px;padding:2px}

/* Thumbnail improvements */
.jde-th{width:0;background:#f8fafc;border-right:1px solid #e2e8f0;overflow-y:auto;transition:width .2s;flex-shrink:0;display:flex;flex-direction:column}
.jde-th:not(:empty){width:90px;padding:0}
.jde-th-head{padding:8px 6px 4px;flex-shrink:0}
.jde-th-list{flex:1;overflow-y:auto;padding:0 6px}
.jde-th-add{margin:6px;padding:8px;background:transparent;border:1px dashed #64748b;border-radius:6px;color:#34d399;font-size:11px;font-weight:600;cursor:pointer;text-align:center;flex-shrink:0;transition:all .15s}
.jde-th-add:hover{background:#f1f5f9;border-color:#34d399}
.jde-tm-loading{width:100%;height:80px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200%;animation:jde-shimmer 1.5s infinite;border-radius:2px}
@keyframes jde-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Merge modal */
.jde-merge-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.jde-merge-opt{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;background:#f1f5f9;border:2px solid #e2e8f0;border-radius:14px;cursor:pointer;color:#475569;font-size:13px;transition:all .15s;text-align:center}
.jde-merge-opt:hover{border-color:#10b981;transform:translateY(-2px)}
.jde-merge-opt div{font-size:28px}

@media(max-width:768px){.jde-rside{width:0;display:none}}

/* Drag & drop page reorder */
.jde-tm[draggable="true"]{cursor:grab;transition:opacity .15s,border-color .15s,transform .15s}
.jde-tm[draggable="true"]:active{cursor:grabbing}
.jde-tm-drop{border-color:#f59e0b!important;transform:scale(1.05);box-shadow:0 0 12px rgba(16,185,129,0.3)}
.jde-th-list{flex:1;overflow-y:auto;padding:4px 6px}

/* Delete button in doc list */
.jdd-del-btn,.jdd-del-local{color:#ef4444!important;opacity:0;transition:opacity .15s}
.jdd-row:hover .jdd-del-btn,.jdd-row:hover .jdd-del-local{opacity:1}
.jdd-del-btn:hover,.jdd-del-local:hover{background:#fef2f2!important;border-color:#ef4444!important}
/* Local doc rows */
.jdd-row-local{opacity:.85}
.jdd-row-local:hover{opacity:1}

/* Save vs Export buttons */
.jde-ab-save{background:#10b981!important;border-color:#10b981!important;color:#fff!important;font-weight:700;padding:3px 14px}
.jde-ab-save:hover{background:#059669!important}
/* Doc thumbnail in history */
.jdd-doc-thumb{width:28px;height:36px;object-fit:cover;border-radius:3px;border:1px solid #e2e8f0}

/* HTML editor save button */
.jhe-save{background:#10b981!important;border-color:#10b981!important;color:#fff!important;font-weight:700}
.jhe-save:hover{background:#059669!important}

/* ═══ FOLDERS + SORT + CONVERT + SPLIT + COMMENTS ═══ */
.jdd-folder-add{background:none;border:none;color:#34d399;font-size:14px;cursor:pointer;padding:0;margin-left:6px}
.jdd-folder-add:hover{color:#1e293b}
.jdd-nav-folder{font-size:12px!important}

/* Actions bar (sort + convert + split + protect) */
.jdd-actions-bar{display:flex;align-items:center;gap:8px;padding:8px 24px;border-bottom:1px solid #e5e7eb;flex-wrap:wrap}
.jdd-sort-sel{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:6px;padding:6px 10px;font-size:12px;outline:none;cursor:pointer}
.jdd-act-bar-btn{padding:6px 14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}
.jdd-act-bar-btn:hover{border-color:#10b981;color:#1e293b}

/* Comments panel */
.jdd-comments-panel{position:fixed;right:0;top:0;width:340px;height:100vh;background:#f8fafc;border-left:1px solid #e2e8f0;z-index:99997;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.08)}
.jdd-comments-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}
.jdd-comments-head h3{margin:0;font-size:16px;font-weight:700;color:#1e293b}
.jdd-comments-head button{background:none;border:none;color:#6b7280;font-size:18px;cursor:pointer}
.jdd-comments-list{flex:1;overflow-y:auto;padding:12px 16px}
.jdd-comment{background:#f1f5f9;border-radius:10px;padding:12px;margin-bottom:8px}
.jdd-comment-head{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:6px}
.jdd-comment-head b{color:#1e293b}
.jdd-comment div:last-child{font-size:13px;color:#475569;line-height:1.5}
.jdd-comments-input{padding:12px 16px;border-top:1px solid #e2e8f0}
.jdd-comments-input textarea{width:100%;padding:10px;border:1px solid #e2e8f0;border-radius:8px;background:#ffffff;color:#1e293b;font-size:13px;outline:none;resize:none;margin-bottom:8px;box-sizing:border-box}
.jdd-comments-input button{width:100%;padding:10px;background:#10b981;color:#fff;border:none;border-radius:8px;font-weight:700;cursor:pointer;font-size:13px}
@media(max-width:640px){.jdd-comments-panel{width:100%}}

/* ═══ E-SIGNATURE MODAL — SignNow style ═══ */
.jde-esign-modal{width:900px!important;max-width:95vw;max-height:90vh;overflow-y:auto}
.jde-esign-layout{display:flex;gap:16px}
.jde-esign-doc-area{flex:1.3;min-width:0}
.jde-esign-settings{flex:1;min-width:240px;display:flex;flex-direction:column;gap:8px}
.jde-esign-doc-label{font-size:11px;color:#9ca3af;margin-bottom:6px}
.jde-esign-doc-wrap{position:relative;background:#e2e8f0;border:2px dashed #64748b;border-radius:8px;min-height:300px;cursor:crosshair;overflow:hidden}
.jde-esign-doc-wrap img{display:block;width:100%;pointer-events:none}
.jde-esign-field-btns{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}
.jde-esign-fb{padding:5px 10px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;font-size:11px;cursor:pointer;transition:.15s}
.jde-esign-fb:hover{border-color:#34d399;color:#1e293b}
.jde-esign-fb-on{background:#065f46;border-color:#34d399;color:#fff}
.jde-esign-lbl{font-size:11px;font-weight:600;color:#6b7280;display:block;margin-bottom:3px}
.jde-esign-recip-box{background:#f1f5f9;padding:10px;border-radius:8px;border:1px solid #e2e8f0}
.jde-esign-marker{position:absolute;padding:2px 8px;background:rgba(16,185,129,0.15);border:2px dashed #34d399;border-radius:4px;font-size:11px;color:#1e293b;pointer-events:none;transform:translate(-50%,-50%);white-space:nowrap;z-index:5}
.jde-esign-flist{max-height:120px;overflow-y:auto}
.jde-esign-fitem{padding:4px 8px;background:#f1f5f9;border-radius:4px;margin-bottom:3px;font-size:11px;color:#475569;display:flex;align-items:center;justify-content:space-between}
@media(max-width:768px){.jde-esign-layout{flex-direction:column}.jde-esign-doc-area{max-height:300px;overflow-y:auto}}

/* E-Sign upload zone */
.jde-esign-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;background:#f1f5f9;border:2px dashed #64748b;border-radius:12px;color:#6b7280;text-align:center;padding:30px}
