/* ============================================================
   Agent Portal — Banking Dashboard  v4
   Logic School of Management
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
    --b-navy:   #0d2461;
    --b-blue:   #1565c0;
    --b-sky:    #1a7fd4;
    --b-light:  #e3ecfb;
    --b-gold:   #f5a623;
    --b-green:  #00897b;
    --b-red:    #c62828;
    --b-bg:     #edf1f7;
    --b-card:   #ffffff;
    --b-border: rgba(0,0,0,0.07);
    --b-shadow: 0 2px 16px rgba(13,36,97,0.09);
    --b-shadowl:0 8px 40px rgba(13,36,97,0.17);
    --b-text:   #0d1b40;
    --b-muted:  #6b7a9a;
    --b-r:      16px;
    --b-rs:     10px;
    --b-grad:   linear-gradient(135deg,#0d2461 0%,#1565c0 55%,#1a7fd4 100%);
}

*{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-sizing:border-box;}

/* ── Fixed topbar ─────────────────────────────────────────── */
.agent-topbar{
    position:fixed;top:0;left:0;right:0;z-index:9999;
    background:var(--b-navy);
    display:flex;align-items:center;justify-content:space-between;
    padding:0 28px;height:56px;
    box-shadow:0 2px 12px rgba(13,36,97,0.30);
}
.agent-topbar-left{display:flex;align-items:center;gap:12px;}
.agent-topbar-logo{
    width:36px;height:36px;
    background:var(--b-grad);
    border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    font-size:18px;
    box-shadow:0 2px 8px rgba(21,101,192,0.4);
    flex-shrink:0;
}
.agent-topbar-brand-name{font-size:14px;font-weight:800;color:white;line-height:1.1;letter-spacing:-0.2px;}
.agent-topbar-brand-sub{font-size:10px;color:rgba(255,255,255,0.5);text-transform:uppercase;letter-spacing:1px;font-weight:600;}
.agent-topbar-right{display:flex;align-items:center;gap:14px;}
.agent-topbar-user{
    display:flex;align-items:center;gap:8px;
    color:rgba(255,255,255,0.9);font-size:13px;font-weight:600;
}
.agent-topbar-avatar{
    width:30px;height:30px;
    background:rgba(255,255,255,0.15);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:14px;
    border:1.5px solid rgba(255,255,255,0.25);
}
.agent-topbar-logout{
    color:rgba(255,255,255,0.65);font-size:12px;font-weight:600;
    text-decoration:none;padding:5px 12px;
    border:1px solid rgba(255,255,255,0.22);border-radius:6px;
    transition:all 0.2s;letter-spacing:0.2px;
}
.agent-topbar-logout:hover{color:white;border-color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.1);text-decoration:none;}

/* ── Page layout ─────────────────────────────────────────── */
.agent-portal-body{
    background:var(--b-bg);
    min-height:100vh;
    padding-top:56px; /* compensate for fixed topbar */
}
.agent-dashboard-wrapper{max-width:1200px;margin:0 auto;padding:28px 20px 60px;}

/* hide Odoo site header/footer when agent portal is active */
body:has(.agent-portal-body) #wrapwrap > header,
body:has(.agent-portal-body) #wrapwrap > footer,
body:has(.agent-portal-body) .o_header_standard,
body:has(.agent-portal-body) #top,
body:has(.agent-portal-body) #footer{ display:none!important; }
body:has(.agent-portal-body) #wrapwrap,
body:has(.agent-portal-body) #wrap{ background:var(--b-bg)!important;padding:0!important;margin:0!important; }

/* ── Nav tabs ────────────────────────────────────────────── */
.agent-nav-tabs{
    display:flex;gap:2px;
    background:white;border-radius:12px;padding:5px;
    margin-bottom:24px;
    box-shadow:var(--b-shadow);
    overflow-x:auto;
}
.agent-nav-tab{
    display:flex;align-items:center;gap:7px;
    padding:9px 20px;border-radius:8px;
    font-size:13px;font-weight:600;color:var(--b-muted);
    text-decoration:none;white-space:nowrap;transition:all 0.2s;
}
.agent-nav-tab:hover{color:var(--b-blue);text-decoration:none;}
.agent-nav-tab.active{
    background:var(--b-grad);color:white;
    box-shadow:0 4px 14px rgba(21,101,192,0.30);
}

/* ── Welcome banner ──────────────────────────────────────── */
.agent-welcome-card{
    background:var(--b-grad);
    border-radius:20px;padding:28px 32px;color:white;
    margin-bottom:20px;
    box-shadow:0 10px 40px rgba(13,36,97,0.28);
    position:relative;overflow:hidden;
}
.agent-welcome-card::before{content:'';position:absolute;top:-60px;right:-60px;width:240px;height:240px;background:rgba(255,255,255,0.05);border-radius:50%;}
.agent-welcome-card::after{content:'';position:absolute;bottom:-70px;left:30%;width:180px;height:180px;background:rgba(255,255,255,0.04);border-radius:50%;}
.agent-welcome-title{font-size:22px;font-weight:800;margin:0 0 4px;letter-spacing:-0.3px;position:relative;z-index:1;}
.agent-welcome-subtitle{font-size:13px;opacity:0.8;margin:0;position:relative;z-index:1;}
.agent-code-badge{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,255,255,0.15);backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,0.22);border-radius:30px;
    padding:6px 16px;font-family:'Courier New',monospace;
    font-size:13px;font-weight:700;letter-spacing:1.5px;
    cursor:pointer;transition:all 0.2s;user-select:none;
    position:relative;z-index:1;
}
.agent-code-badge:hover{background:rgba(255,255,255,0.26);transform:translateY(-1px);}
.agent-welcome-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;position:relative;z-index:1;}
.btn-agent-action{
    display:inline-flex;align-items:center;gap:7px;
    padding:9px 20px;border-radius:30px;font-size:13px;font-weight:600;
    text-decoration:none;transition:all 0.22s;border:none;cursor:pointer;
}
.btn-agent-primary{background:white;color:var(--b-blue);box-shadow:0 4px 14px rgba(0,0,0,0.14);}
.btn-agent-primary:hover{background:white;transform:translateY(-2px);box-shadow:0 6px 22px rgba(0,0,0,0.20);color:var(--b-navy);text-decoration:none;}
.btn-agent-outline{background:transparent;color:white;border:1.5px solid rgba(255,255,255,0.55);}
.btn-agent-outline:hover{background:rgba(255,255,255,0.14);border-color:white;transform:translateY(-2px);color:white;text-decoration:none;}

/* ── Section heading ─────────────────────────────────────── */
.agent-section-title{
    font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;
    color:var(--b-muted);margin-bottom:14px;
    display:flex;align-items:center;gap:8px;
}
.agent-section-title::after{content:'';flex:1;height:1px;background:var(--b-border);}

/* ══════════════════════════════════════════════════════════
   WALLET — BANKING STYLE
   ══════════════════════════════════════════════════════════ */

/* Big balance hero card */
.wallet-balance-hero{
    background:var(--b-grad);
    border-radius:20px;padding:28px 32px;color:white;
    margin-bottom:16px;
    box-shadow:0 10px 40px rgba(13,36,97,0.28);
    position:relative;overflow:hidden;
    display:flex;align-items:stretch;justify-content:space-between;
    flex-wrap:wrap;gap:20px;
}
.wallet-balance-hero::before{content:'';position:absolute;top:-50px;right:-50px;width:200px;height:200px;background:rgba(255,255,255,0.06);border-radius:50%;}

.wallet-balance-hero-left{position:relative;z-index:1;flex:1;min-width:200px;}
.wallet-balance-label{
    font-size:10px;font-weight:700;letter-spacing:1.8px;
    text-transform:uppercase;opacity:0.65;margin-bottom:10px;
    display:flex;align-items:center;gap:6px;
}
.wallet-balance-label::before{content:'';display:inline-block;width:6px;height:6px;background:var(--b-gold);border-radius:50%;}
.wallet-balance-amount{font-size:44px;font-weight:900;letter-spacing:-1px;line-height:1;margin-bottom:8px;}
.wallet-balance-amount .currency{font-size:24px;font-weight:700;vertical-align:top;margin-top:8px;display:inline-block;margin-right:2px;opacity:0.85;}
.wallet-balance-sublabel{font-size:12px;opacity:0.6;font-style:italic;}

.wallet-balance-right{
    position:relative;z-index:1;
    background:rgba(255,255,255,0.10);
    border-radius:14px;padding:18px 22px;
    display:flex;flex-direction:column;gap:0;
    min-width:220px;border:1px solid rgba(255,255,255,0.15);
}
.wallet-balance-stat{
    display:flex;justify-content:space-between;align-items:center;
    padding:9px 0;font-size:13px;
}
.wallet-balance-stat:not(:last-child){border-bottom:1px solid rgba(255,255,255,0.12);}
.wallet-balance-stat-label{opacity:0.65;font-weight:500;}
.wallet-balance-stat-value{font-weight:700;font-size:14px;}
.wallet-balance-stat-value.highlight{color:var(--b-gold);font-size:16px;}

/* Stat cards grid */
.wallet-cards-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:14px;margin-bottom:24px;
}
.wallet-card{
    border-radius:var(--b-r);overflow:hidden;
    box-shadow:var(--b-shadow);
    transition:transform 0.22s,box-shadow 0.22s;cursor:default;
}
.wallet-card:hover{transform:translateY(-4px);box-shadow:var(--b-shadowl);}
.wallet-card-inner{
    padding:22px 24px;color:white;position:relative;overflow:hidden;height:100%;
}
.wallet-card-inner::after{content:'';position:absolute;top:-30px;right:-30px;width:100px;height:100px;background:rgba(255,255,255,0.08);border-radius:50%;}
.wallet-card-inner::before{content:'';position:absolute;bottom:-40px;left:-20px;width:120px;height:120px;background:rgba(255,255,255,0.05);border-radius:50%;}

/* Each card colour */
.wallet-card-admission .wallet-card-inner{background:linear-gradient(135deg,#0d2461 0%,#1565c0 100%);}
.wallet-card-waiting   .wallet-card-inner{background:linear-gradient(135deg,#004d40 0%,#00897b 100%);}
.wallet-card-eligible  .wallet-card-inner{background:linear-gradient(135deg,#bf360c 0%,#e64a19 100%);}
.wallet-card-balance   .wallet-card-inner{background:linear-gradient(135deg,#4a148c 0%,#7b1fa2 100%);}

.wallet-card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;position:relative;z-index:1;}
.wallet-card-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;opacity:0.7;}
.wallet-card-icon-box{width:34px;height:34px;background:rgba(255,255,255,0.18);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;}
.wallet-card-amount{font-size:32px;font-weight:900;letter-spacing:-0.5px;line-height:1;margin-bottom:6px;position:relative;z-index:1;}
.wallet-card-label{font-size:11px;opacity:0.7;font-weight:500;text-transform:uppercase;letter-spacing:0.5px;position:relative;z-index:1;}

/* ── Content cards ───────────────────────────────────────── */
.agent-card{
    background:var(--b-card);border-radius:var(--b-r);
    box-shadow:var(--b-shadow);overflow:hidden;
    margin-bottom:20px;border:1px solid var(--b-border);
}
.agent-card-header{
    padding:16px 22px;border-bottom:1px solid var(--b-border);
    display:flex;align-items:center;justify-content:space-between;
    background:#fafbff;
}
.agent-card-header h5{margin:0;font-size:14px;font-weight:700;color:var(--b-text);}
.agent-card-body{padding:20px;}

/* ── Table ───────────────────────────────────────────────── */
.agent-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.agent-table th{
    background:#f4f6fc;padding:11px 16px;text-align:left;
    font-size:10.5px;font-weight:700;text-transform:uppercase;
    letter-spacing:0.8px;color:var(--b-muted);
    border-bottom:1.5px solid var(--b-border);
}
.agent-table td{padding:13px 16px;border-bottom:1px solid var(--b-border);color:#2c3a5a;vertical-align:middle;}
.agent-table tbody tr:hover{background:#f8fbff;}
.agent-table tbody tr:last-child td{border-bottom:none;}
.wallet-amount-positive{color:#00695c;font-weight:700;}
.wallet-amount-payment {color:#c62828;font-weight:700;}

/* ── Status badges ───────────────────────────────────────── */
.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;}
.status-waiting{background:#fff3e0;color:#e65100;}
.status-eligible,.status-done,.status-admissiondone{background:#e0f2f1;color:#00695c;}
.status-processing,.status-waitingeligibility{background:#e3f2fd;color:#1565c0;}
.status-rejected,.status-not_eligible{background:#ffebee;color:#c62828;}

/* ── Agent status ────────────────────────────────────────── */
.agent-status-approved{background:rgba(0,105,92,0.12);color:#00695c;padding:3px 12px;border-radius:20px;font-size:12px;font-weight:700;}

/* ── Forms ───────────────────────────────────────────────── */
.agent-form-card{background:white;border-radius:var(--b-r);box-shadow:var(--b-shadow);padding:32px;max-width:720px;margin:0 auto;border:1px solid var(--b-border);}
.agent-form-section{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--b-blue);margin:24px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--b-light);}
.form-control-agent{border:1.5px solid #dce3f0;border-radius:10px;padding:10px 14px;font-size:14px;transition:all 0.2s;width:100%;background:#f8faff;color:var(--b-text);}
.form-control-agent:focus{outline:none;border-color:var(--b-blue);background:white;box-shadow:0 0 0 4px rgba(21,101,192,0.10);}
.form-label-agent{font-size:12.5px;font-weight:600;color:#3a4b6e;margin-bottom:6px;display:block;}
.btn-agent-submit{
    background:var(--b-grad);color:white;border:none;
    border-radius:10px;padding:13px 32px;font-size:15px;font-weight:700;
    cursor:pointer;transition:all 0.25s;
    box-shadow:0 4px 18px rgba(21,101,192,0.32);
}
.btn-agent-submit:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(21,101,192,0.42);}

/* ── Public forms ────────────────────────────────────────── */
.public-form-wrapper{min-height:100vh;background:var(--b-grad);display:flex;align-items:center;justify-content:center;padding:40px 16px;}
.public-form-card{background:white;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,0.22);width:100%;max-width:560px;overflow:hidden;}
.public-form-card-wide{background:white;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,0.22);width:100%;max-width:780px;overflow:hidden;}
.public-form-header{background:var(--b-grad);padding:36px 40px 28px;color:white;text-align:center;position:relative;overflow:hidden;}
.public-form-header::before{content:'';position:absolute;top:-40%;right:-8%;width:240px;height:240px;background:rgba(255,255,255,0.06);border-radius:50%;}
.public-form-header-logo{font-size:40px;margin-bottom:10px;position:relative;z-index:1;}
.public-form-header h2{font-size:22px;font-weight:800;margin:0 0 4px;letter-spacing:-0.3px;position:relative;z-index:1;}
.public-form-header p{font-size:13px;opacity:0.8;margin:0;position:relative;z-index:1;}
.public-form-body{padding:32px 40px 40px;}

/* Steps */
.form-steps{display:flex;align-items:center;margin-bottom:32px;}
.form-step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative;}
.form-step-circle{width:32px;height:32px;border-radius:50%;background:#e8eef8;color:#aaa;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;position:relative;z-index:1;}
.form-step.active .form-step-circle{background:var(--b-grad);color:white;box-shadow:0 4px 12px rgba(21,101,192,0.35);}
.form-step-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:#aaa;}
.form-step.active .form-step-label{color:var(--b-blue);}
.form-step::before{content:'';position:absolute;top:16px;right:50%;left:-50%;height:2px;background:#e8eef8;}
.form-step:first-child::before{display:none;}

/* File upload */
.file-upload-wrapper{position:relative;}
.file-upload-wrapper input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:2;}
.file-upload-btn{display:flex;align-items:center;gap:10px;border:1.5px dashed #c5d3ee;border-radius:10px;padding:12px 16px;background:#f6f9ff;font-size:13px;color:#666;cursor:pointer;transition:all 0.2s;}
.file-upload-btn:hover{border-color:var(--b-blue);color:var(--b-blue);background:rgba(21,101,192,0.04);}
.required-star{color:#c62828;margin-left:2px;}
.field-hint{color:#8898c0;font-size:11px;margin-top:4px;}
.field-error{color:#c62828;font-size:12px;margin-top:4px;}
.terms-row{display:flex;align-items:flex-start;gap:10px;background:#f6f9ff;border-radius:10px;padding:14px 16px;margin:20px 0;font-size:13px;color:#555;border:1px solid var(--b-light);}
.terms-row input[type="checkbox"]{margin-top:2px;accent-color:var(--b-blue);width:16px;height:16px;flex-shrink:0;}

/* Portal agent banner */
.portal-agent-banner{background:var(--b-grad);border-radius:12px;padding:16px 20px;margin-bottom:28px;display:flex;align-items:center;gap:14px;color:white;box-shadow:0 4px 18px rgba(13,36,97,0.20);}
.portal-agent-banner-avatar{width:44px;height:44px;background:rgba(255,255,255,0.18);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.portal-agent-banner-label{font-size:10px;opacity:0.75;margin-bottom:2px;text-transform:uppercase;letter-spacing:0.7px;}
.portal-agent-banner-name{font-size:15px;font-weight:700;}
.portal-agent-banner-code{font-family:'Courier New',monospace;font-size:12px;background:rgba(255,255,255,0.18);border-radius:20px;padding:4px 12px;letter-spacing:1.5px;font-weight:700;}

/* ── Success page ────────────────────────────────────────── */
.agent-success-wrapper{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:40px 16px;}
.agent-success-card{background:white;border-radius:20px;box-shadow:var(--b-shadowl);padding:48px 40px;text-align:center;max-width:480px;width:100%;border:1px solid var(--b-border);}
.agent-success-icon{font-size:60px;margin-bottom:20px;}
.agent-success-title{font-size:22px;font-weight:800;color:var(--b-text);margin-bottom:12px;}
.agent-success-message{font-size:14px;color:var(--b-muted);line-height:1.7;margin-bottom:28px;}

/* ── Profile ─────────────────────────────────────────────── */
.agent-profile-header{background:var(--b-grad);border-radius:var(--b-r) var(--b-r) 0 0;padding:32px;color:white;text-align:center;}
.agent-profile-avatar{width:80px;height:80px;background:rgba(255,255,255,0.18);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 16px;border:3px solid rgba(255,255,255,0.35);}

/* ── Copy toast ──────────────────────────────────────────── */
#agent-copy-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--b-navy);color:white;padding:12px 24px;border-radius:30px;font-size:14px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,0.25);z-index:9999;transition:transform 0.3s ease;}
#agent-copy-toast.show{transform:translateX(-50%) translateY(0);}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:768px){
    .wallet-cards-grid{grid-template-columns:repeat(2,1fr);}
    .wallet-balance-hero{padding:22px 20px;flex-direction:column;}
    .wallet-balance-right{min-width:0;width:100%;}
    .wallet-balance-amount{font-size:34px;}
    .agent-welcome-card{padding:22px 20px;}
    .agent-welcome-title{font-size:18px;}
    .agent-topbar{padding:0 16px;height:52px;}
    .agent-topbar-brand-sub{display:none;}
    .agent-portal-body{padding-top:52px;}
}
@media(max-width:480px){
    .wallet-cards-grid{grid-template-columns:1fr 1fr;gap:10px;}
    .wallet-card-inner{padding:16px 14px;}
    .wallet-card-amount{font-size:24px;}
    .agent-welcome-actions{gap:8px;}
    .btn-agent-action{padding:8px 14px;font-size:12px;}
    .public-form-header{padding:28px 20px 22px;}
    .public-form-body{padding:22px 18px 32px;}
    .public-form-card-wide,.public-form-card{border-radius:0;box-shadow:none;}
    .public-form-wrapper{padding:0;align-items:flex-start;}
}

/* ── WhatsApp share button ───────────────────────────────── */
.btn-wa {
    background: #25d366;
    color: white !important;
    box-shadow: 0 4px 14px rgba(37,211,102,0.35);
    font-weight: 700;
}
.btn-wa:hover {
    background: #1ebe5d;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(37,211,102,0.45);
    color: white !important;
    text-decoration: none;
}
