/* ============================================================
   PORTAIL RECRUTEMENT PRO — frontend.css v2
   Pixel-perfect d'après maquette fournie
   ============================================================ */
:root {
    --pr-primary:    #1e2d47;
    --pr-accent:     #f0a500;
    --pr-blue:       #3b82f6;
    --pr-green:      #22c55e;
    --pr-danger:     #ef4444;
    --pr-bg:         #f5f7fb;
    --pr-white:      #ffffff;
    --pr-text:       #1e293b;
    --pr-text-mid:   #374151;
    --pr-text-muted: #64748b;
    --pr-border:     #e8edf5;
    --pr-sidebar-w:  260px;
    --pr-topbar-h:   70px;
    --pr-radius:     12px;
    --pr-radius-sm:  8px;
    --pr-radius-lg:  16px;
    --pr-shadow-sm:  0 1px 3px rgba(0,0,0,.07);
    --pr-shadow:     0 4px 16px rgba(0,0,0,.08);
    --pr-shadow-lg:  0 12px 40px rgba(0,0,0,.12);
    --pr-font:       'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
    --pr-transition: all .2s ease;
}
.pr-wrap*,.pr-wrap*::before,.pr-wrap*::after{box-sizing:border-box;margin:0;padding:0}
.pr-wrap{font-family:var(--pr-font);color:var(--pr-text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}

/* DASHBOARD LAYOUT */
.pr-dashboard{display:flex;min-height:100vh;background:var(--pr-bg)}

/* SIDEBAR */
.pr-sidebar{width:var(--pr-sidebar-w);background:var(--pr-primary);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100001;overflow:hidden}
.pr-sidebar-brand{display:flex;align-items:center;gap:12px;padding:22px 20px 20px;border-bottom:1px solid rgba(255,255,255,.07);text-decoration:none;flex-shrink:0}
.pr-sidebar-brand-icon{width:42px;height:42px;background:#3b7ae0;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pr-sidebar-brand-icon svg{color:#fff}
.pr-sidebar-brand-name{line-height:1.25}
.pr-sidebar-brand-name strong{display:block;font-size:15px;font-weight:700;color:#fff;letter-spacing:-.01em}
.pr-sidebar-brand-name span{font-size:11px;color:rgba(255,255,255,.45);font-weight:400}
.pr-sidebar-nav{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:2px}
.pr-sidebar-nav::-webkit-scrollbar{width:3px}
.pr-sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}
.pr-nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;color:var(--pr-sidebar-text,rgba(255,255,255,.6));font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;border:none;background:var(--pr-nav-normal-bg,transparent);width:100%;text-align:left;transition:var(--pr-transition);font-family:var(--pr-font)}
.pr-nav-item svg{flex-shrink:0;width:18px;height:18px}
.pr-nav-item:hover{background:var(--pr-nav-hover-bg,rgba(255,255,255,.07));color:var(--pr-nav-hover-text,rgba(255,255,255,.85))}
.pr-nav-item.active{background:var(--pr-nav-active-bg,var(--pr-white));color:var(--pr-nav-active-text,var(--pr-primary));font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.pr-nav-item.active svg{color:var(--pr-nav-active-text,var(--pr-primary))}
.pr-nav-text{flex:1}
.pr-nav-badge{background:var(--pr-accent);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:20px;line-height:16px}
.pr-sidebar-footer{padding:14px 12px 16px;border-top:1px solid rgba(255,255,255,.07);flex-shrink:0}
.pr-sidebar-support{background:rgba(255,255,255,.06);border-radius:10px;padding:14px;margin-bottom:10px}
.pr-sidebar-support-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.pr-sidebar-support-head svg{color:rgba(255,255,255,.5);flex-shrink:0}
.pr-sidebar-support-head strong{font-size:13px;font-weight:600;color:#fff}
.pr-sidebar-support p{font-size:11px;color:rgba(255,255,255,.4);margin-left:28px}
.pr-sidebar-contact-btn{display:block;text-align:center;padding:10px;background:var(--pr-sidebar-hover-bg,rgba(255,255,255,.1)));border-radius:8px;color:var(--pr-sidebar-text,rgba(255,255,255,.8));font-size:13px;font-weight:600;text-decoration:none;transition:var(--pr-transition);border:none;cursor:pointer;font-family:var(--pr-font);width:100%}
.pr-sidebar-contact-btn:hover{background:var(--pr-sidebar-hover-bg,rgba(255,255,255,.16));color:var(--pr-sidebar-hover-text,#fff)}

/* MAIN */
.pr-main{margin-left:var(--pr-sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh}

/* TOPBAR */
.pr-topbar{height:var(--pr-topbar-h);background:var(--pr-white);border-bottom:1px solid var(--pr-border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:100000;flex-shrink:0}
.pr-topbar-left h1{font-size:22px;font-weight:800;color:var(--pr-text);line-height:1.2}
.pr-topbar-left p{font-size:13px;color:var(--pr-text-muted);margin-top:1px}
.pr-topbar-right{display:flex;align-items:center;gap:10px}
.pr-bell-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--pr-border);background:var(--pr-white);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--pr-text-muted);position:relative;transition:var(--pr-transition)}
.pr-bell-btn:hover{background:var(--pr-bg);color:var(--pr-text)}
.pr-bell-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--pr-danger);border:2px solid var(--pr-white)}
.pr-user-btn{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border-radius:100px;border:1px solid var(--pr-border);background:var(--pr-white);cursor:pointer;transition:var(--pr-transition);font-family:var(--pr-font);text-decoration:none}
.pr-user-btn:hover{background:var(--pr-bg)}
.pr-user-avatar{width:32px;height:32px;border-radius:50%;background:var(--pr-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;overflow:hidden;flex-shrink:0}
.pr-user-avatar img{width:100%;height:100%;object-fit:cover}
.pr-user-name{font-size:13px;font-weight:600;color:var(--pr-text)}
.pr-user-chevron{color:var(--pr-text-muted)}
.pr-menu-toggle{display:none;width:38px;height:38px;border-radius:var(--pr-radius-sm);border:1px solid var(--pr-border);background:var(--pr-white);cursor:pointer;align-items:center;justify-content:center;color:var(--pr-text);position:relative;z-index:100002;flex-shrink:0;}

/* CONTENT */
.pr-content{flex:1;padding:26px 28px;overflow-y:auto}
.pr-tab-pane{display:none}
.pr-tab-pane.active{display:block;animation:pr-fadein .18s ease}
@keyframes pr-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* STAT CARDS — 4 en haut */
.pr-stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.pr-stat-card{background:var(--pr-white);border-radius:var(--pr-radius);border:1px solid var(--pr-border);padding:18px 18px 16px;display:flex;align-items:flex-start;gap:14px;box-shadow:var(--pr-shadow-sm);transition:var(--pr-transition)}
.pr-stat-card:hover{box-shadow:var(--pr-shadow);transform:translateY(-2px)}
.pr-stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pr-stat-icon.green {background:#dcfce7;color:#16a34a}
.pr-stat-icon.blue  {background:#dbeafe;color:#2563eb}
.pr-stat-icon.orange{background:#fff7ed;color:#d97706}
.pr-stat-icon.purple{background:#ede9fe;color:#7c3aed}
.pr-stat-info{flex:1;min-width:0}
.pr-stat-label{font-size:13px;font-weight:600;color:var(--pr-text);margin-bottom:2px}
.pr-stat-sub{font-size:12px;margin-top:2px}
.pr-stat-sub.green {color:#16a34a}
.pr-stat-sub.blue  {color:#2563eb}
.pr-stat-sub.orange{color:#d97706}
.pr-stat-sub.muted {color:var(--pr-text-muted)}
.pr-stat-bar{height:5px;background:#e2e8f0;border-radius:3px;margin-top:8px;overflow:hidden}
.pr-stat-bar-fill{height:100%;border-radius:3px;background:#2563eb;transition:width .6s ease}

/* DEUX COLONNES */
.pr-dashboard-cols{display:grid;grid-template-columns:1fr 290px;gap:20px;align-items:start}

/* CARD */
.pr-card{background:var(--pr-white);border-radius:var(--pr-radius);border:1px solid var(--pr-border);box-shadow:var(--pr-shadow-sm);overflow:hidden;margin-bottom:18px}
.pr-card:last-child{margin-bottom:0}
.pr-card-header{padding:16px 20px 14px;border-bottom:1px solid var(--pr-border);display:flex;align-items:center;justify-content:space-between}
.pr-card-title{font-size:15px;font-weight:700;color:var(--pr-text)}
.pr-card-link{font-size:13px;font-weight:600;color:var(--pr-blue);text-decoration:none;cursor:pointer;background:none;border:none;font-family:var(--pr-font)}
.pr-card-link:hover{text-decoration:underline}
.pr-card-body{padding:18px 20px}

/* ÉTAPES */
.pr-steps{display:flex;flex-direction:column;gap:10px}
.pr-step{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:var(--pr-radius-sm);border:1px solid var(--pr-border);background:var(--pr-white);transition:var(--pr-transition)}
.pr-step:hover{border-color:#c7d7f8;background:#f8faff}
.pr-step-icon{width:40px;height:40px;border-radius:10px;background:#eff6ff;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#2563eb}
.pr-step-body{flex:1}
.pr-step-body strong{display:block;font-size:14px;font-weight:600;color:var(--pr-text)}
.pr-step-body span{font-size:12px;color:var(--pr-text-muted)}
.pr-step-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--pr-radius-sm);font-size:12px;font-weight:600;font-family:var(--pr-font);cursor:pointer;border:1.5px solid var(--pr-border);background:var(--pr-white);color:var(--pr-text-mid);transition:var(--pr-transition);white-space:nowrap;text-decoration:none}
.pr-step-btn:hover{border-color:var(--pr-primary);color:var(--pr-primary)}
.pr-step-btn.primary{background:var(--pr-primary);border-color:var(--pr-primary);color:#fff;box-shadow:0 4px 14px rgba(30,45,71,.3)}
.pr-step-btn.primary:hover{background:#263d5a}

/* DOCUMENTS */
.pr-docs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.pr-doc-card{border:1.5px solid var(--pr-border);border-radius:var(--pr-radius-sm);padding:16px 12px 14px;text-align:center;cursor:pointer;transition:var(--pr-transition);text-decoration:none;background:var(--pr-white);display:flex;flex-direction:column;align-items:center}
.pr-doc-card:hover{border-color:#93c5fd;background:#f0f7ff}
.pr-doc-card.add-new{border-style:dashed;background:#fafbff;color:var(--pr-text-muted);justify-content:center;gap:6px;display:flex;flex-direction:column;align-items:center;text-decoration:none;position:relative;}
.pr-doc-card.add-new:hover{border-color:var(--pr-primary);color:var(--pr-primary)}
.pr-doc-icon-wrap{width:44px;height:44px;border-radius:10px;margin-bottom:10px;display:flex;align-items:center;justify-content:center}
.pr-doc-icon-wrap.pdf {background:#fee2e2}
.pr-doc-icon-wrap.docx{background:#dbeafe}
.pr-doc-icon-wrap.img {background:#dcfce7}
.pr-doc-name{font-size:12px;font-weight:600;color:var(--pr-text);word-break:break-all;line-height:1.3;margin-bottom:3px}
.pr-doc-meta{font-size:11px;color:var(--pr-text-muted)}

/* TRACKING CANDIDATURE */
.pr-tracking{position:relative;padding:24px 0 12px}
.pr-tracking-track{position:absolute;top:42px;left:20px;right:20px;height:2px;background:#e2e8f0;z-index:0}
.pr-tracking-progress{position:absolute;top:0;left:0;height:100%;background:var(--pr-blue);border-radius:2px;transition:width .8s ease}
.pr-tracking-steps{display:flex;justify-content:space-between;position:relative;z-index:1}
.pr-track-step{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}
.pr-track-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #e2e8f0;background:var(--pr-white);font-size:12px;font-weight:700;color:var(--pr-text-muted);transition:var(--pr-transition)}
.pr-track-step.done   .pr-track-dot{background:var(--pr-blue);border-color:var(--pr-blue);color:#fff}
.pr-track-step.active .pr-track-dot{background:var(--pr-white);border-color:var(--pr-blue);color:var(--pr-blue);box-shadow:0 0 0 4px #dbeafe}
.pr-track-label{font-size:12px;font-weight:600;color:var(--pr-text-muted);text-align:center;line-height:1.3}
.pr-track-step.done .pr-track-label,.pr-track-step.active .pr-track-label{color:var(--pr-text)}
.pr-track-sublabel{font-size:11px;color:var(--pr-text-muted);text-align:center;margin-top:-4px}
.pr-track-step.active .pr-track-sublabel{color:var(--pr-blue);font-weight:500}

/* SIDEBAR DROITE */
.pr-right-col{display:flex;flex-direction:column;gap:16px}
.pr-completion-pct{font-size:26px;font-weight:800;color:var(--pr-text);margin-bottom:4px}
.pr-completion-bar{height:8px;background:#e2e8f0;border-radius:4px;margin-bottom:16px;overflow:hidden}
.pr-completion-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .8s ease}
.pr-checklist{display:flex;flex-direction:column;gap:8px}
.pr-check-item{display:flex;align-items:center;justify-content:space-between;font-size:13px}
.pr-check-left{display:flex;align-items:center;gap:8px}
.pr-check-circle{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pr-check-circle.done   {background:#dcfce7;color:#16a34a}
.pr-check-circle.pending{background:#fef9c3;color:#ca8a04}
.pr-check-circle.empty  {border:2px solid #e2e8f0}
.pr-check-name{color:var(--pr-text-mid);font-weight:500}
.pr-pay-amount{font-size:28px;font-weight:800;color:var(--pr-text);line-height:1}
.pr-pay-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:700;background:#dcfce7;color:#16a34a;margin-left:8px;vertical-align:middle}
.pr-pay-date{font-size:12px;color:var(--pr-text-muted);margin:4px 0 14px}
.pr-invoice-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1.5px solid var(--pr-border);border-radius:var(--pr-radius-sm);font-size:13px;font-weight:600;color:var(--pr-text);background:var(--pr-white);cursor:pointer;text-decoration:none;transition:var(--pr-transition);font-family:var(--pr-font)}
.pr-invoice-btn:hover{border-color:var(--pr-primary);color:var(--pr-primary)}

/* BADGES */
.pr-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.pr-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.pr-badge-pending {background:#fffbeb;color:#92400e}
.pr-badge-approved{background:#dcfce7;color:#15803d}
.pr-badge-rejected{background:#fee2e2;color:#b91c1c}

/* TABLES */
.pr-table-wrap{overflow-x:auto}
.pr-table{width:100%;border-collapse:collapse;font-size:13px}
.pr-table th{background:#f8fafc;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--pr-text-muted);padding:10px 16px;border-bottom:1px solid var(--pr-border);text-align:left;white-space:nowrap}
.pr-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9;color:var(--pr-text);vertical-align:middle}
.pr-table tbody tr:hover{background:#f8fafc}
.pr-table tbody tr:last-child td{border-bottom:none}

/* FORMULAIRES */
.pr-form-group{margin-bottom:16px}
.pr-form-label{display:block;font-size:13px;font-weight:600;color:var(--pr-text);margin-bottom:6px}
.pr-form-control{width:100%;padding:10px 13px;border:1.5px solid var(--pr-border);border-radius:var(--pr-radius-sm);font-size:14px;font-family:var(--pr-font);color:var(--pr-text);background:var(--pr-white);outline:none;transition:var(--pr-transition)}
.pr-form-control:focus{border-color:var(--pr-blue);box-shadow:0 0 0 3px #dbeafe}
.pr-form-control::placeholder{color:#b0bec5}
textarea.pr-form-control{resize:vertical;min-height:90px;padding:10px 13px}
select.pr-form-control{cursor:pointer;appearance:none}
.pr-input-wrap{position:relative}
.pr-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--pr-text-muted);pointer-events:none}
.pr-input-wrap .pr-form-control{padding-left:38px}
.pr-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* BOUTONS */
.pr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--pr-radius-sm);font-size:14px;font-weight:600;font-family:var(--pr-font);cursor:pointer;transition:var(--pr-transition);text-decoration:none;line-height:1;white-space:nowrap}
.pr-btn:hover{transform:translateY(-1px)}
.pr-btn:active{transform:none}
.pr-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.pr-btn-primary{background:var(--pr-primary);color:var(--pr-btn-primary-text,#fff);box-shadow:0 4px 12px rgba(30,45,71,.3)}
.pr-btn-primary:hover{background:var(--pr-btn-primary-hover,#263d5a)}
.pr-btn-blue{background:var(--pr-blue);color:#fff}
.pr-btn-blue:hover{background:#2563eb}
.pr-btn-outline{background:transparent;color:var(--pr-primary);border:1.5px solid var(--pr-primary)}
.pr-btn-outline:hover{background:var(--pr-primary);color:#fff}
.pr-btn-ghost{background:#f1f5f9;color:var(--pr-text-mid);border:1.5px solid var(--pr-border)}
.pr-btn-ghost:hover{border-color:var(--pr-primary);color:var(--pr-primary)}
.pr-btn-danger{background:#ef4444;color:#fff}
.pr-btn-success{background:#22c55e;color:#fff}
.pr-btn-sm{padding:7px 14px;font-size:12px}
.pr-btn-lg{padding:13px 28px;font-size:15px}
.pr-btn-block{width:100%}
.pr-btn-google{background:var(--pr-white);color:var(--pr-text);border:1.5px solid var(--pr-border);box-shadow:var(--pr-shadow-sm);width:100%;margin-bottom:4px}
.pr-btn-google:hover{background:#f8fafc;box-shadow:var(--pr-shadow)}
.pr-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:pr-spin .7s linear infinite;flex-shrink:0}
@keyframes pr-spin{to{transform:rotate(360deg)}}
.pr-spin{animation:pr-spin .8s linear infinite;display:inline-block}

/* ALERTES */
.pr-alert,.pr-alert-error,.pr-alert--error,.pr-alert-success,.pr-alert--success,.pr-alert-warning,.pr-alert-info{padding:11px 15px;border-radius:var(--pr-radius-sm);font-size:13px;font-weight:500;display:flex;align-items:flex-start;gap:9px;margin-bottom:14px}
.pr-alert-success,.pr-alert--success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.pr-alert-error,.pr-alert--error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.pr-alert-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
.pr-alert-info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}

/* MODAL */
.pr-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.pr-modal-overlay.active{display:flex;animation:pr-fadein .2s ease}
.pr-modal{background:var(--pr-white);border-radius:var(--pr-radius-lg);box-shadow:var(--pr-shadow-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:pr-slideup .22s ease}
@keyframes pr-slideup{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.pr-modal-header{padding:18px 22px;border-bottom:1px solid var(--pr-border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--pr-white);z-index:1}
.pr-modal-title{font-size:17px;font-weight:700;color:var(--pr-text)}
.pr-modal-close{width:30px;height:30px;border-radius:50%;border:none;background:#f1f5f9;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--pr-text-muted);transition:var(--pr-transition)}
.pr-modal-close:hover{background:var(--pr-border);color:var(--pr-text)}
.pr-modal-body{padding:22px}
.pr-modal-footer{padding:14px 22px;border-top:1px solid var(--pr-border);background:#f8fafc;display:flex;gap:10px;justify-content:flex-end}
.pr-instructions{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--pr-radius-sm);padding:14px 16px;margin-bottom:16px}
.pr-instructions h4{font-size:12px;font-weight:700;color:#1d4ed8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.pr-upload-zone{border:2px dashed var(--pr-border);border-radius:var(--pr-radius-sm);padding:22px;text-align:center;cursor:pointer;transition:var(--pr-transition);background:#fafbff;position:relative;overflow:hidden}
.pr-upload-zone:hover,.pr-upload-zone.dragover{border-color:var(--pr-blue);background:#eff6ff}
.pr-upload-zone input[type="file"]{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;z-index:2;}
.pr-upload-zone p{font-size:13px;color:var(--pr-text-muted)}
.pr-upload-zone strong{color:var(--pr-blue)}
.pr-upload-zone small{display:block;font-size:11px;color:var(--pr-text-muted);margin-top:4px}
.pr-upload-preview{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#f0fdf4;border-radius:var(--pr-radius-sm);margin-top:8px;font-size:12px;color:#15803d}

/* AUTH */
.pr-auth-form{width:100%}
.pr-auth-title{font-size:22px;font-weight:800;color:var(--pr-text);margin-bottom:4px}
.pr-auth-sub{font-size:14px;color:var(--pr-text-muted);margin-bottom:24px}
.pr-auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--pr-text-muted);font-size:12px}
.pr-auth-divider::before,.pr-auth-divider::after{content:'';flex:1;height:1px;background:var(--pr-border)}
.pr-auth-footer{text-align:center;margin-top:18px;font-size:13px;color:var(--pr-text-muted)}
.pr-auth-footer a{color:var(--pr-blue);font-weight:600;text-decoration:none}
.pr-auth-footer a:hover{text-decoration:underline}
.pr-forgot-link{display:block;text-align:right;font-size:12px;color:var(--pr-blue);text-decoration:none;margin-top:4px}
.pr-checkbox-group{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--pr-text-muted);cursor:pointer}
.pr-checkbox-group input{width:15px;height:15px;margin-top:1px;accent-color:var(--pr-primary);flex-shrink:0;cursor:pointer}
.pr-checkbox-group a{color:var(--pr-blue);font-weight:600;text-decoration:none}
input[name="pr_website"],input[name="pr_url"]{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;pointer-events:none!important}

/* NOTIFICATIONS */
.pr-notif-list{display:flex;flex-direction:column;gap:8px}
.pr-notif-item{display:flex;gap:12px;padding:13px 15px;border-radius:var(--pr-radius-sm);border:1px solid var(--pr-border);background:var(--pr-white);transition:var(--pr-transition)}
.pr-notif-item.unread{background:#f0f7ff;border-color:#bfdbfe}
.pr-notif-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pr-notif-icon.payment{background:#dbeafe;color:#2563eb}
.pr-notif-icon.application{background:#dcfce7;color:#16a34a}
.pr-notif-icon.visa{background:#ede9fe;color:#7c3aed}
.pr-notif-icon.system{background:#f1f5f9;color:var(--pr-text-muted)}
.pr-notif-message{font-size:13px;font-weight:500;color:var(--pr-text);line-height:1.5}
.pr-notif-time{font-size:11px;color:var(--pr-text-muted);margin-top:2px}
.pr-notif-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--pr-blue);flex-shrink:0;margin-top:5px}

/* FORMULAIRES AVANCÉS */
.pr-inline-form{background:#f8fafc;border:1.5px solid var(--pr-border);border-radius:var(--pr-radius);padding:20px;margin-bottom:18px;display:none}
.pr-inline-form.active{display:block}
.pr-form-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pr-text-muted);margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--pr-border)}
.pr-multifile-area{border:2px dashed var(--pr-border);border-radius:var(--pr-radius-sm);padding:18px;text-align:center;cursor:pointer;transition:var(--pr-transition);background:#fafbff}
.pr-multifile-area:hover{border-color:var(--pr-blue);background:#eff6ff}
.pr-file-list{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.pr-file-item{display:flex;align-items:center;gap:8px;padding:7px 11px;background:#f1f5f9;border-radius:var(--pr-radius-sm);font-size:12px;color:var(--pr-text)}
.pr-file-remove{margin-left:auto;cursor:pointer;color:var(--pr-danger);background:none;border:none;font-size:14px;padding:0;line-height:1}
.pr-ptypes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:24px}
.pr-ptype-card{background:var(--pr-white);border:1.5px solid var(--pr-border);border-radius:var(--pr-radius);padding:18px;box-shadow:var(--pr-shadow-sm);transition:var(--pr-transition)}
.pr-ptype-card:hover{box-shadow:var(--pr-shadow);border-color:#93c5fd}
.pr-ptype-card.paid{border-color:#86efac;background:#f0fdf4}
.pr-ptype-name{font-size:15px;font-weight:700;color:var(--pr-text);margin-bottom:6px}
.pr-ptype-amount{font-size:22px;font-weight:800;color:var(--pr-primary);margin-bottom:14px;line-height:1}
.pr-photo-wrap{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.pr-photo-large{width:72px;height:72px;border-radius:50%;background:var(--pr-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;overflow:hidden;flex-shrink:0;box-shadow:var(--pr-shadow)}
.pr-photo-large img{width:100%;height:100%;object-fit:cover}
.pr-empty{text-align:center;padding:44px 20px;color:var(--pr-text-muted)}
.pr-empty svg{opacity:.3;margin-bottom:14px}
.pr-empty h3{font-size:15px;font-weight:600;color:var(--pr-text);margin-bottom:4px}
.pr-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.pr-section-title{font-size:17px;font-weight:700;color:var(--pr-text)}

/* RESPONSIVE */
@media(max-width:1100px){
    .pr-stat-cards{grid-template-columns:repeat(2,1fr)}
    .pr-dashboard-cols{grid-template-columns:1fr}
    .pr-right-col{display:grid;grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
    /* BUG 12 FIX — évite le débordement horizontal entre 768-1100px */
    .pr-right-col{display:flex;flex-direction:column}
}
@media(max-width:768px){
    .pr-sidebar{transform:translateX(-100%);transition:transform .3s ease}
    .pr-sidebar.open{transform:none;box-shadow:var(--pr-shadow-lg)}
    .pr-main{margin-left:0}
    .pr-topbar{padding:0 16px}
    .pr-content{padding:16px}
    .pr-menu-toggle{display:flex}
    .pr-stat-cards{grid-template-columns:1fr 1fr}
    .pr-docs-grid{grid-template-columns:repeat(2,1fr)}
    .pr-form-row{grid-template-columns:1fr}
    .pr-right-col{display:flex;flex-direction:column}
    .pr-sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100000;display:none}
    .pr-sidebar-overlay.active{display:block}
}
@media(max-width:480px){
    .pr-stat-cards{grid-template-columns:1fr}
    .pr-topbar-left p{display:none}
    .pr-docs-grid{grid-template-columns:repeat(2,1fr)}
}

/* THÈME — pages normales */
.prt-header{background:#fff;border-bottom:1px solid #e8edf5;position:sticky;top:0;z-index:500}
.prt-header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:68px}
.prt-logo{text-decoration:none}
.prt-logo-text{font-size:18px;font-weight:800;color:#1a3c6e}
.prt-nav{flex:1;margin:0 32px}
.prt-menu{list-style:none;display:flex;gap:4px}
.prt-menu li a{padding:7px 14px;border-radius:6px;font-size:14px;font-weight:500;color:#374151;text-decoration:none;transition:all .15s ease}
.prt-menu li a:hover{background:#f1f5f9;color:#1a3c6e}
.prt-btn{padding:9px 20px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s ease}
.prt-btn-primary{background:#1a3c6e;color:#fff}
.prt-btn-primary:hover{background:#2a5298}
.prt-btn-outline{border:1.5px solid #1a3c6e;color:#1a3c6e}
.prt-btn-outline:hover{background:#1a3c6e;color:#fff}
.prt-container{max-width:1200px;margin:0 auto;padding:40px 24px}
.prt-post-title{font-size:28px;font-weight:800;color:#1a3c6e;margin-bottom:20px}
.prt-post-content{font-size:15px;line-height:1.7;color:#374151}
.prt-footer{background:#0f2447;color:rgba(255,255,255,.7);padding:40px 0 24px;margin-top:60px}
.prt-footer-inner{max-width:1200px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start}
.prt-footer-name{display:block;font-size:16px;font-weight:700;color:#fff;margin-bottom:4px}
.prt-footer-desc{font-size:13px}
.prt-footer-menu{list-style:none;display:flex;gap:20px}
.prt-footer-menu a{font-size:13px;color:rgba(255,255,255,.6);text-decoration:none}
.prt-footer-menu a:hover{color:#fff}
.prt-footer-copy{grid-column:1/-1;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;text-align:center}

/* UTILITAIRES */
.pr-hidden{display:none!important}
.pr-mt-8{margin-top:8px}.pr-mt-12{margin-top:12px}.pr-mt-16{margin-top:16px}.pr-mt-20{margin-top:20px}
.pr-mb-16{margin-bottom:16px}.pr-mb-20{margin-bottom:20px}
.pr-d-flex{display:flex;align-items:center;gap:8px}
.pr-flex-end{justify-content:flex-end}
.pr-text-muted{color:var(--pr-text-muted)}.pr-text-success{color:#16a34a}.pr-text-danger{color:#ef4444}
.pr-fw-600{font-weight:600}.pr-fw-700{font-weight:700}
.pr-w-100{width:100%}.pr-center{text-align:center}

/* ============================================================
   AMÉLIORATIONS VISUELLES — v2 (Refonte Pro)
   ============================================================ */

/* ---- STAT CARDS améliorées ---- */
.pr-stat-cards { gap: 16px; }
.pr-stat-card {
    border-radius: 14px;
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.pr-stat-card::after {
    content: '';
    position: absolute;
    right: -10px; top: -10px;
    width: 80px; height: 80px;
    border-radius: 50%;
    opacity: .06;
    background: currentColor;
}
.pr-stat-card .pr-stat-icon { border-radius: 12px; }
.pr-stat-value { font-size: 30px; font-weight: 900; }

/* ---- SIDEBAR améliorée ---- */
.pr-sidebar { box-shadow: 4px 0 24px rgba(0,0,0,.12); }
.pr-sidebar-brand { padding: 24px 20px 22px; }
.pr-sidebar-brand-icon { border-radius: 12px; background: rgba(255,255,255,.15); }
.pr-nav-item { border-radius: 10px; padding: 10px 14px; }
.pr-nav-item.active {
    background: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,.15);
    font-weight: 700;
}

/* ---- TOPBAR améliorée ---- */
.pr-topbar { box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.pr-topbar-left h1 { font-weight: 900; letter-spacing: -.4px; }

/* ---- CARDS améliorées ---- */
.pr-card { border-radius: 14px; border: 1px solid #eaeff7; }
.pr-card-header {
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-radius: 14px 14px 0 0;
}
.pr-card-title { font-weight: 800; font-size: 15px; }

/* ---- TABLES améliorées ---- */
.pr-table th {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    padding: 12px 18px;
    background: #f8fafc;
    border-bottom: 2px solid #eaeff7;
}
.pr-table td { padding: 14px 18px; }
.pr-table tbody tr:nth-child(even) td { background: #fafbfd; }
.pr-table tbody tr:hover td { background: #f0f7ff !important; }

/* ---- TYPES DE PAIEMENT — Cartes refaites ---- */
.pr-ptypes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 18px;
    margin-bottom: 28px;
}
.pr-ptype-card {
    background: var(--pr-white);
    border: 1.5px solid var(--pr-border);
    border-radius: 16px;
    padding: 22px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    transition: all .2s ease;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}
.pr-ptype-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--pr-primary), #3b7ae0);
    border-radius: 16px 16px 0 0;
}
.pr-ptype-card:hover {
    box-shadow: 0 8px 28px rgba(30,45,71,.12);
    transform: translateY(-2px);
    border-color: #93c5fd;
}
.pr-ptype-card.paid {
    border-color: #86efac;
    background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
}
.pr-ptype-card.paid::before { background: linear-gradient(90deg, #10b981, #34d399); }
.pr-ptype-card.pending {
    border-color: #fde68a;
    background: linear-gradient(135deg, #fffbeb, #fef9c3);
}
.pr-ptype-card.pending::before { background: linear-gradient(90deg, #f59e0b, #fbbf24); }

.pr-ptype-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}
.pr-ptype-icon {
    width: 42px; height: 42px;
    border-radius: 10px;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    color: var(--pr-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}
.pr-ptype-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
}
.pr-ptype-status.paid {
    background: #dcfce7;
    color: #15803d;
    border: 1px solid #a7f3d0;
}
.pr-ptype-status.pending {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
}
.pr-ptype-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--pr-text);
    margin-bottom: 6px;
    line-height: 1.3;
}
.pr-ptype-desc {
    font-size: 13px;
    color: var(--pr-text-muted);
    margin-bottom: 14px;
    line-height: 1.5;
    flex: 1;
}
.pr-ptype-amount {
    font-size: 28px;
    font-weight: 900;
    color: var(--pr-primary);
    margin-bottom: 18px;
    line-height: 1;
    letter-spacing: -1px;
}
.pr-ptype-paid-indicator {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: #15803d;
    background: #dcfce7;
    padding: 8px 12px;
    border-radius: 8px;
}
.pr-ptype-waiting {
    font-size: 12px;
    color: #92400e;
    background: #fffbeb;
    padding: 8px 12px;
    border-radius: 8px;
    margin: 0;
    line-height: 1.5;
}

/* ---- MODAL PAIEMENT — Refonte complète ---- */
.pr-modal--payment {
    max-width: 560px;
    border-radius: 18px;
}
.pr-modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid var(--pr-border);
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-radius: 18px 18px 0 0;
}
.pr-modal-header-info {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}
.pr-modal-title { font-size: 18px; font-weight: 800; letter-spacing: -.3px; }
.pr-modal-amount-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background: linear-gradient(135deg, var(--pr-primary), #2a5298);
    color: #fff;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: -.2px;
}
.pr-modal-header { display: flex; align-items: center; justify-content: space-between; }
.pr-modal-close {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 1.5px solid var(--pr-border);
    background: var(--pr-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pr-text-muted);
    transition: all .15s;
    flex-shrink: 0;
}
.pr-modal-close:hover { background: #fee2e2; border-color: #fca5a5; color: #dc2626; }

/* Description box dans modal */
.pr-pay-description-box {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 16px;
}
.pr-pay-desc-icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: #2563eb;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pr-pay-desc-content {
    font-size: 13px;
    color: #1d4ed8;
    line-height: 1.6;
    flex: 1;
}

/* Instructions box dans modal */
.pr-pay-instructions-box {
    background: linear-gradient(135deg, #fff7ed, #ffedd5);
    border: 1px solid #fed7aa;
    border-radius: 10px;
    margin-bottom: 20px;
    overflow: hidden;
}
.pr-pay-instr-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: rgba(234,88,12,.08);
    border-bottom: 1px solid #fed7aa;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #c2410c;
}
.pr-pay-instr-body {
    padding: 14px 16px;
    font-size: 13px;
    color: #9a3412;
    line-height: 1.7;
}
.pr-pay-instr-body em { color: #b45309; }
.pr-pay-instr-body strong { color: #7c2d12; }

/* Séparateur section formulaire */
.pr-pay-form-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--pr-text-muted);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--pr-border);
}
.pr-pay-form-title svg { color: var(--pr-primary); }

/* Champ requis */
.pr-req { color: #ef4444; font-size: 13px; }

/* Upload zone amélioré */
.pr-upload-zone {
    border: 2px dashed #cbd5e1;
    border-radius: 12px;
    padding: 28px 20px;
    text-align: center;
    cursor: pointer;
    transition: all .2s ease;
    background: #fafbff;
    position: relative;
    overflow: hidden;
}
.pr-upload-zone:hover, .pr-upload-zone.dragover {
    border-color: var(--pr-blue);
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
}
.pr-upload-zone input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
    z-index: 2;
}
.pr-upload-zone-icon {
    width: 56px; height: 56px;
    border-radius: 14px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: #2563eb;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
}
.pr-upload-zone p { font-size: 14px; color: var(--pr-text-muted); margin: 0 0 4px; }
.pr-upload-zone p strong { color: var(--pr-blue); }
.pr-upload-zone small { font-size: 11px; color: var(--pr-text-muted); }

.pr-upload-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    border: 1px solid #86efac;
    border-radius: 8px;
    margin-top: 10px;
    font-size: 13px;
    color: #15803d;
    font-weight: 500;
}

/* Footer modal */
.pr-modal-footer {
    padding: 16px 24px;
    border-top: 1px solid var(--pr-border);
    background: #f8fafc;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    border-radius: 0 0 18px 18px;
}

/* ---- STEPS améliorés ---- */
.pr-step { border-radius: 12px; padding: 14px 18px; border: 1.5px solid var(--pr-border); }
.pr-step:hover { border-color: #93c5fd; background: #f0f7ff; }
.pr-step-icon { border-radius: 12px; width: 44px; height: 44px; }

/* ---- TRACKING amélioré ---- */
.pr-track-dot {
    width: 38px; height: 38px;
    font-weight: 800;
    box-shadow: 0 0 0 0 transparent;
    transition: all .3s ease;
}
.pr-track-step.active .pr-track-dot {
    box-shadow: 0 0 0 5px #dbeafe;
    transform: scale(1.1);
}

/* ---- NOTIFICATIONS améliorées ---- */
.pr-notif-item { border-radius: 12px; padding: 14px 16px; }
.pr-notif-item.unread {
    background: linear-gradient(135deg, #f0f7ff, #eff6ff);
    border-color: #bfdbfe;
}
.pr-notif-icon { border-radius: 50%; width: 38px; height: 38px; }

/* ---- PROFIL PHOTO ---- */
.pr-photo-large { border-radius: 50%; box-shadow: 0 4px 16px rgba(30,45,71,.2); }

/* ---- BADGES améliorés ---- */
.pr-badge { font-weight: 700; letter-spacing: .04em; }
.pr-badge-pending  { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.pr-badge-approved { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }
.pr-badge-rejected { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }

/* ---- FORMULAIRES améliorés ---- */
.pr-form-control:focus {
    border-color: var(--pr-blue);
    box-shadow: 0 0 0 3px rgba(59,130,246,.12);
}
.pr-form-label { font-weight: 600; color: var(--pr-text); }

/* ---- BOUTONS améliorés ---- */
.pr-btn-primary {
    background: linear-gradient(135deg, var(--pr-primary), #2a5298);
    box-shadow: 0 4px 14px rgba(30,45,71,.3);
	color: var(--pr-btn-primary-text, #fff);
}
.pr-btn-primary:hover {
	background: var(--pr-btn-primary-hover, #263d5a);
    box-shadow: 0 6px 20px rgba(30,45,71,.4);
}

/* ---- PAY SECTION ---- */
.pr-pay-amount { letter-spacing: -1px; }
.pr-pay-badge { border-radius: 20px; font-weight: 700; }

/* ---- RESPONSIVE MODAL ---- */
@media (max-width: 600px) {
    .pr-modal--payment { max-width: 100%; border-radius: 14px 14px 0 0; }
    .pr-modal-overlay { align-items: flex-end; padding: 0; }
    .pr-modal-body { padding: 18px 16px; }
    .pr-modal-footer { padding: 14px 16px; }
    .pr-form-row { grid-template-columns: 1fr; }
}

/* ---- COMPLETION / CHECKLIST amélioré ---- */
.pr-check-circle.done   { background: linear-gradient(135deg, #dcfce7, #bbf7d0); color: #15803d; }
.pr-check-circle.pending { background: linear-gradient(135deg, #fef9c3, #fef08a); color: #854d0e; }
.pr-completion-bar-fill { background: linear-gradient(90deg, #22c55e, #16a34a, #15803d); }

/* ============================================================
   AUTH FORMS — Design Premium v2
   Formulaires de connexion et d'inscription
   ============================================================ */

/* Page wrapper */
.pr-auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0c1929 0%, #1e2d47 45%, #0c2040 100%);
    padding: 40px 20px;
    position: relative;
    overflow: hidden;
    font-family: var(--pr-font);
}
.pr-auth-page::before {
    content: '';
    position: absolute;
    top: -180px; right: -180px;
    width: 560px; height: 560px;
    background: radial-gradient(circle, rgba(59,130,246,.18) 0%, transparent 65%);
    pointer-events: none;
}
.pr-auth-page::after {
    content: '';
    position: absolute;
    bottom: -180px; left: -180px;
    width: 560px; height: 560px;
    background: radial-gradient(circle, rgba(240,165,0,.12) 0%, transparent 65%);
    pointer-events: none;
}
/* Animated dots grid */
.pr-auth-page .pr-auth-dots {
    position: absolute; inset: 0;
    background-image: radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 32px 32px;
    pointer-events: none;
}

/* Card */
.pr-auth-card {
    background:var(--pr-auth-card-bg,#ffffff);
    border-radius: 24px;
    box-shadow: 0 40px 100px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06);
    width: 100%;
    max-width: 460px;
    position: relative;
    z-index: 2;
    overflow: hidden;
    animation: pr-auth-appear .4s cubic-bezier(.16,1,.3,1);
}
.pr-auth-card--wide { max-width: 720px; }
@keyframes pr-auth-appear {
    from { opacity: 0; transform: translateY(20px) scale(.97); }
    to   { opacity: 1; transform: none; }
}

/* Card header gradient */
.pr-auth-head {
    background: linear-gradient(135deg, #1e2d47 0%, #2d4a7a 100%);
    padding: 36px 40px 28px;
    text-align: center;
    position: relative;
}
.pr-auth-head::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,.06), transparent);
    pointer-events: none;
}
.pr-auth-logo {
    width: 68px; height: 68px;
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 18px;
}
.pr-auth-logo svg { color: #fff; }
.pr-auth-title {
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    letter-spacing: -.02em;
    margin: 0 0 6px;
    line-height: 1.2;
}
.pr-auth-subtitle {
    font-size: 13px;
    color: rgba(255,255,255,.5);
    margin: 0;
}

/* Steps indicator */
.pr-auth-steps-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 18px;
}
.pr-auth-step-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: rgba(255,255,255,.25);
    transition: all .35s cubic-bezier(.16,1,.3,1);
}
.pr-auth-step-dot.active {
    width: 22px;
    border-radius: 4px;
    background: #fff;
}
.pr-auth-step-dot.done { background: #34d399; }

/* Body */
.pr-auth-body { padding: 32px 40px 36px; }

/* Field groups */
.pr-auth-field { margin-bottom: 18px; }
.pr-auth-field label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: 7px;
}
.pr-req { color: #ef4444; }
.pr-auth-field-hint {
    display: block;
    font-size: 11px;
    color: #9ca3af;
    margin-top: 5px;
    font-style: italic;
}

/* Input wrapper */
.pr-auth-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.pr-input-icon-left {
    position: absolute;
    left: 14px;
    color: #9ca3af;
    pointer-events: none;
    display: flex;
    align-items: center;
    z-index: 1;
}

/* Input */
.pr-auth-input {
    width: 100%;
    padding: 13px 44px 13px 44px;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    font-size: 14px;
    font-family: var(--pr-font);
    color: #111827;
    background: #f9fafb;
    outline: none;
    transition: all .2s;
}
.pr-auth-input:focus {
    border-color: #3b82f6;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(59,130,246,.1);
}
.pr-auth-input::placeholder { color: #c4c9d4; }
.pr-auth-input.error { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.1); }

/* Password field without left icon */
.pr-auth-input.pr-no-left-pad { padding-left: 14px; }

/* Show/hide password */
.pr-pw-toggle {
    position: absolute;
    right: 13px;
    background: none; border: none;
    cursor: pointer;
    color: #9ca3af;
    display: flex; align-items: center; padding: 4px;
    transition: color .2s; z-index: 1;
}
.pr-pw-toggle:hover { color: #374151; }

/* Forgot link */
.pr-auth-forgot {
    display: block;
    text-align: right;
    font-size: 12px;
    font-weight: 600;
    color: #9ca3af;
    text-decoration: none;
    margin-top: 6px;
}
.pr-auth-forgot:hover { color: #3b82f6; }

/* Grid 2 cols */
.pr-auth-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.pr-auth-grid--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

/* Section label separator */
.pr-reg-section-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #94a3b8;
    margin: 18px 0 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255,255,255,.07);
    display: flex;
    align-items: center;
    gap: 8px;
}
.pr-reg-section-label::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 12px;
    background: var(--pr-primary, #3b82f6);
    border-radius: 2px;
    flex-shrink: 0;
}

/* Select styled */
.pr-auth-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px !important;
    cursor: pointer;
}

/* Full-width grid item */
.pr-form-group--full {
    grid-column: 1 / -1;
}

/* Checkbox */
.pr-auth-field--checkbox { margin-top: 4px; }
.pr-auth-checkbox-label {
    display: flex; align-items: flex-start; gap: 10px;
    cursor: pointer; font-size: 13px; color: #6b7280;
    line-height: 1.5;
}
.pr-auth-checkbox-label input[type=checkbox] {
    width: 16px; height: 16px;
    flex-shrink: 0; margin-top: 2px;
    accent-color: #1e2d47; cursor: pointer;
    border-radius: 4px;
}
.pr-auth-checkbox-label a { color: #2563eb; font-weight: 600; }

/* Primary button */
.pr-auth-btn {
    width: 100%;
    padding: 15px 24px;
    background: linear-gradient(135deg, #1e2d47, #2d4a7a);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--pr-font);
    cursor: pointer;
    transition: all .25s;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    letter-spacing: .04em;
    box-shadow: 0 4px 20px rgba(30,45,71,.3);
    position: relative; overflow: hidden;
    margin-top: 22px;
}
.pr-auth-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(30,45,71,.4);
}
.pr-auth-btn:disabled { opacity: .65; cursor: not-allowed; transform: none; }
.pr-auth-btn::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,0));
}

/* Google button */
.pr-auth-google-btn {
    width: 100%;
    padding: 13px 20px;
    background: #fff;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    transition: all .2s;
    font-family: var(--pr-font);
}
.pr-auth-google-btn:hover { background: #f9fafb; border-color: #d1d5db; }

/* Divider */
.pr-auth-divider {
    display: flex; align-items: center; gap: 12px;
    margin: 18px 0;
    color: #d1d5db; font-size: 12px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .08em;
}
.pr-auth-divider::before, .pr-auth-divider::after {
    content: ''; flex: 1; height: 1px; background: #f0f0f0;
}

/* Alert messages */
.pr-auth-alert {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 13px; font-weight: 500;
    margin-bottom: 16px; line-height: 1.5;
}
.pr-auth-alert.success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.pr-auth-alert.error   { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.pr-auth-alert.info    { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }

/* Footer link */
.pr-auth-footer-text {
    text-align: center;
    margin-top: 20px;
    font-size: 13px;
    color: #9ca3af;
}
.pr-auth-footer-text a { color: #2563eb; font-weight: 600; text-decoration: none; }
.pr-auth-footer-text a:hover { text-decoration: underline; }

/* ============================================================
   OTP — Vérification email (Étape 2)
   ============================================================ */
.pr-otp-info { text-align: center; margin-bottom: 26px; }
.pr-otp-info-icon {
    width: 68px; height: 68px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 16px;
    color: #1d4ed8;
}
.pr-otp-info-title {
    font-size: 18px; font-weight: 800; color: #111827; margin: 0 0 8px;
}
.pr-otp-info-sub { font-size: 13px; color: #6b7280; margin: 0; line-height: 1.6; }
.pr-otp-email-badge {
    display: inline-block;
    background: #eff6ff; color: #1d4ed8;
    font-weight: 700; padding: 3px 12px;
    border-radius: 20px; font-size: 13px; margin-top: 6px;
}

/* 6 OTP boxes */
.pr-otp-inputs {
    display: flex; gap: 10px; justify-content: center;
    margin: 24px 0 18px;
}
.pr-otp-input {
    width: 54px; height: 64px;
    text-align: center;
    font-size: 24px; font-weight: 900;
    border: 2px solid #e5e7eb;
    border-radius: 14px;
    background: #f9fafb;
    color: #111827;
    outline: none;
    transition: all .2s;
    font-family: var(--pr-font);
    caret-color: #3b82f6;
}
.pr-otp-input:focus {
    border-color: #3b82f6; background: #fff;
    box-shadow: 0 0 0 4px rgba(59,130,246,.12);
    transform: scale(1.06);
}
.pr-otp-input.pr-otp-filled {
    border-color: #22c55e; background: #f0fdf4; color: #15803d;
}
.pr-otp-input.pr-otp-error {
    border-color: #ef4444; background: #fef2f2;
    animation: pr-shake .4s ease;
}
@keyframes pr-shake {
    0%,100% { transform: translateX(0); }
    20% { transform: translateX(-7px); }
    40% { transform: translateX(7px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
}

/* Timer */
.pr-otp-timer {
    text-align: center; font-size: 13px; color: #9ca3af;
    margin-bottom: 20px;
}
#pr-otp-countdown { font-weight: 700; color: #1d4ed8; }

/* Resend button */
.pr-otp-resend-btn {
    background: none; border: none;
    color: #2563eb; font-weight: 600;
    cursor: pointer; font-size: 13px;
    font-family: var(--pr-font);
    text-decoration: underline;
    padding: 0;
}

/* Back button */
.pr-otp-back {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    margin-top: 14px;
    font-size: 12px; color: #9ca3af;
    cursor: pointer; background: none; border: none;
    font-family: var(--pr-font); transition: color .2s;
    width: 100%;
}
.pr-otp-back:hover { color: #374151; }

/* Spinner inside button */
.pr-auth-spinner {
    width: 17px; height: 17px;
    border: 2px solid rgba(255,255,255,.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: pr-spin .65s linear infinite;
    flex-shrink: 0;
}
@keyframes pr-spin { to { transform: rotate(360deg); } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 540px) {
    .pr-auth-card, .pr-auth-card--wide { max-width: 100%; border-radius: 20px; }
    .pr-auth-head { padding: 28px 24px 22px; }
    .pr-auth-body { padding: 24px 24px 28px; }
    .pr-auth-grid,
    .pr-auth-grid--2 { grid-template-columns: 1fr; gap: 0; }
    .pr-otp-input { width: 44px; height: 54px; font-size: 20px; border-radius: 10px; }
    .pr-otp-inputs { gap: 7px; }
}

/* ============================================================
   AMÉLIORATIONS v3 — Formulaire inscription 2 colonnes
   ============================================================ */

/* Select dans le profil — flèche personnalisée */
select.pr-form-control {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/* Full-width dans pr-form-row */
.pr-form-row .pr-form-group--full {
    grid-column: 1 / -1;
}

/* Formulaire d'inscription — card plus large sur desktop */
.pr-auth-card--wide {
    max-width: 760px;
}

/* Section label dans le form d'inscription */
.pr-reg-section-label {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #94a3b8;
    margin: 20px 0 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(0,0,0,.06);
    display: flex;
    align-items: center;
    gap: 8px;
}
.pr-reg-section-label::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 12px;
    background: var(--pr-blue, #3b82f6);
    border-radius: 2px;
    flex-shrink: 0;
}
.pr-reg-section-label:first-child { margin-top: 4px; }

/* Grid 2 colonnes inscription */
.pr-auth-grid,
.pr-auth-grid--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

/* Select stylisé dans le form auth */
.pr-auth-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px !important;
    cursor: pointer;
}

/* Responsive — 1 colonne sous 600px */
@media (max-width: 600px) {
    .pr-auth-grid,
    .pr-auth-grid--2 {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .pr-auth-card--wide { max-width: 100%; }
}

/* =========================================================
 * NOUVEAUX MODULES — Formations / Expériences / Compétences
 * ======================================================= */

/* Lien Retour sur le site dans la sidebar */
.pr-nav-item--link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    color: var(--pr-text-muted);
    text-decoration: none;
    cursor: pointer;
    border: none;
    background: none;
    width: 100%;
    margin-top: 4px;
    border-top: 1px solid var(--pr-border);
    padding-top: 12px;
    transition: background 0.15s, color 0.15s;
}
.pr-nav-item--link:hover {
    background: var(--pr-hover);
    color: var(--pr-primary);
    text-decoration: none;
}

/* Étape complétée */
.pr-step--done .pr-step-body strong {
    color: #16a34a;
}
.pr-step--done {
    opacity: 0.9;
}

/* Formulaire inline modules */
.pr-inline-form .pr-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
}
.pr-inline-form .pr-card-header .pr-card-title {
    flex: 1;
}

/* Actions tableau */
.pr-table .pr-btn-sm {
    font-size: 11px;
    padding: 4px 8px;
}

/* Identité document preview */
#pr-identity-form img {
    display: block;
}

/* Responsive — forçage desktop déjà géré par viewport JS */

/* =========================================================
 * COMPLÉMENTS CSS — v2 refactorisée
 * ======================================================= */

/* Boutons d'action alignés */
.pr-action-btns { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }

/* Alert inline dans les formulaires */
.pr-alert { display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:12px; }
.pr-alert-success { background:#dcfce7; color:#166534; border:1px solid #bbf7d0; }
.pr-alert-error   { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }

/* Bouton danger */
.pr-btn-danger { background:#ef4444; color:#fff; border:none; }
.pr-btn-danger:hover { background:#dc2626; }

/* Infos settings */
.pr-settings-info-list { display:flex; flex-direction:column; gap:12px; }
.pr-settings-info-row  { display:flex; align-items:center; gap:12px; font-size:14px; padding:10px 0; border-bottom:1px solid var(--pr-border); }
.pr-settings-info-row:last-child { border-bottom:none; }
.pr-settings-info-label { color:var(--pr-text-muted); min-width:140px; font-size:13px; }
.pr-settings-info-value { font-weight:600; color:var(--pr-text); }

/* Card danger zone */
.pr-card--danger { border-color:#fecaca; }

/* Toggle interrupteur */
.pr-notif-prefs-list { display:flex; flex-direction:column; gap:0; }
.pr-notif-pref-row   { display:flex; align-items:center; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--pr-border); }
.pr-notif-pref-row:last-child { border-bottom:none; }
.pr-notif-pref-label { font-size:14px; color:var(--pr-text); }
.pr-toggle-wrap      { display:flex; align-items:center; }
.pr-toggle-input     { display:none; }
.pr-toggle           { display:block; width:40px; height:22px; background:#e5e7eb; border-radius:11px; cursor:pointer; position:relative; transition:background .2s; }
.pr-toggle::after    { content:''; position:absolute; top:3px; left:3px; width:16px; height:16px; background:#fff; border-radius:50%; transition:left .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.pr-toggle-input:checked + .pr-toggle { background:var(--pr-primary,#3b82f6); }
.pr-toggle-input:checked + .pr-toggle::after { left:21px; }

/* Info box candidature */
.pr-form-info-box { background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; padding:10px 14px; font-size:13px; color:#1d4ed8; display:flex; align-items:flex-start; gap:8px; margin:12px 0; }

/* Badge count notifications */
.pr-badge-count { background:var(--pr-primary,#3b82f6); color:#fff; font-size:11px; font-weight:700; padding:2px 8px; border-radius:12px; }

/* Modal confirm active */
#pr-confirm-modal.active,
#pr-detail-modal.active,
#pr-payment-modal.active { display:flex !important; }

/* Upload preview */
.pr-upload-preview { display:flex; align-items:center; gap:8px; padding:8px 12px; background:#f8fafc; border:1px solid var(--pr-border); border-radius:8px; font-size:13px; margin-top:8px; }

/* File list */
.pr-file-list   { margin-top:8px; }
.pr-file-item   { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--pr-text-muted); padding:4px 0; }
.pr-file-item svg { flex-shrink:0; }

/* Formulaire readonly */
.pr-readonly { background:#f8fafc !important; color:var(--pr-text-muted) !important; cursor:not-allowed; }

/* Photo profil grande */
.pr-photo-large { width:80px; height:80px; border-radius:50%; background:var(--pr-primary,#3b82f6); color:#fff; display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:700; overflow:hidden; flex-shrink:0; }
.pr-photo-large img { width:100%; height:100%; object-fit:cover; }
.pr-photo-wrap  { display:flex; align-items:center; gap:16px; margin-bottom:24px; }

/* Bouton "Retour" dans les formulaires inline */
#pr-formation-back, #pr-experience-back, #pr-competence-back { margin-right:auto; }

/* Zone upload visa */
.pr-multifile-area { border:2px dashed var(--pr-border,#e5e7eb); border-radius:10px; padding:20px; text-align:center; cursor:pointer; transition:border-color .2s,background .2s; }
.pr-multifile-area:hover, .pr-multifile-area.dragover { border-color:var(--pr-primary,#3b82f6); background:#eff6ff; }



/* ── BARRE DE PROGRESSION ÉTAPES ──────────────────────── */
.pr-steps-progress {
    background: #f0f4ff;
    border: 1px solid #dbeafe;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 18px;
}
.pr-steps-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: var(--pr-text-muted);
    margin-bottom: 10px;
}
.pr-steps-progress-header strong {
    color: var(--pr-primary, #1e2d47);
    font-weight: 700;
    font-size: 13px;
}
.pr-steps-progress-bar {
    height: 8px;
    background: #dbeafe;
    border-radius: 99px;
    overflow: hidden;
}
.pr-steps-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #1e2d47);
    border-radius: 99px;
    transition: width 0.6s ease;
}

/* ── BOUTON ÉTAPE DÉJÀ PAYÉ ────────────────────────────── */
.pr-step-btn--done {
    background: #dcfce7 !important;
    border-color: #86efac !important;
    color: #16a34a !important;
    cursor: not-allowed;
    opacity: 0.85;
}
.pr-step-btn--done:hover {
    background: #dcfce7 !important;
    border-color: #86efac !important;
    color: #16a34a !important;
}
.pr-step-btn[disabled] {
    cursor: not-allowed;
    pointer-events: none;
}

/* ── STATUT EN COURS ─────────────────────────────────── */
.pr-status--progress {
    background: #fef9c3;
    color: #854d0e;
    border: 1px solid #fde047;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
}