:root{--navy:#0b1f33;--blue:#1363df;--cyan:#38bdf8;--bg:#f5f7fb;--text:#1f2937;--muted:#64748b;--green:#10b981;--red:#ef4444;--border:#e5e7eb}
*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;background:linear-gradient(180deg,#081a2c 0%,#0e2d4d 100%);color:#fff;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{padding:24px 22px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#38bdf8,#2563eb);display:grid;place-items:center;font-weight:800;box-shadow:0 10px 25px rgba(37,99,235,.35)}.brand h1{font-size:16px;margin:0}.brand small{color:#9fb3c8}.nav-section{padding:16px 12px}.nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#7f9bb7;padding:8px 12px}.nav-link-app{display:flex;align-items:center;gap:11px;color:#d9e5f2;text-decoration:none;padding:10px 12px;border-radius:10px;margin:2px 0;font-size:14px}.nav-link-app:hover,.nav-link-app.active{background:rgba(56,189,248,.14);color:white}.content-wrap{margin-left:270px;width:calc(100% - 270px)}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.page{padding:28px}.card-fin{border:0;border-radius:16px;box-shadow:0 7px 25px rgba(15,23,42,.06);background:#fff}.metric{padding:20px}.metric .label{font-size:13px;color:var(--muted)}.metric .value{font-size:27px;font-weight:800;margin-top:6px;letter-spacing:-.03em}.metric .icon{width:46px;height:46px;border-radius:13px;background:#eef6ff;color:#2563eb;display:grid;place-items:center;font-size:20px}.table-fin{margin:0}.table-fin thead th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f8fafc;border-bottom:1px solid #e8edf3}.table-fin td{vertical-align:middle;padding-top:13px;padding-bottom:13px}.badge-soft{padding:.45rem .65rem;border-radius:999px;font-weight:600;font-size:11px}.badge-green{background:#e8fbf3;color:#087a55}.badge-yellow{background:#fff8dc;color:#9a6b00}.badge-red{background:#feecec;color:#b42318}.badge-blue{background:#eaf2ff;color:#1d4ed8}.btn-primary{background:#1363df;border-color:#1363df}.form-control,.form-select{border-radius:10px;border-color:#dce3ea;padding:.68rem .8rem}.form-control:focus,.form-select:focus{border-color:#7eb6ff;box-shadow:0 0 0 .2rem rgba(19,99,223,.1)}.section-title{font-size:20px;font-weight:800;letter-spacing:-.02em}.subtle{color:var(--muted)}.login-bg{min-height:100vh;background:radial-gradient(circle at 10% 10%,#dbeafe 0,transparent 32%),radial-gradient(circle at 90% 20%,#e0f2fe 0,transparent 28%),linear-gradient(135deg,#f8fbff,#edf4fb);display:grid;place-items:center}.login-card{width:min(940px,92vw);min-height:560px;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(15,23,42,.16);display:grid;grid-template-columns:1.05fr .95fr}.login-visual{background:linear-gradient(145deg,#081a2c,#0b4a7f);color:white;padding:54px;position:relative}.login-visual:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(56,189,248,.16);right:-80px;bottom:-90px}.login-form{padding:54px;display:flex;flex-direction:column;justify-content:center}@media(max-width:900px){.sidebar{display:none}.content-wrap{margin:0;width:100%}.login-card{grid-template-columns:1fr}.login-visual{display:none}.page{padding:18px}}
/* Customer onboarding V2 */
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:#1363df;margin-bottom:5px}.section-title-lg{font-size:26px;font-weight:800;letter-spacing:-.035em}.customer-onboarding-header{display:flex;align-items:center;justify-content:space-between;gap:18px}.onboarding-stepper{display:flex;align-items:center;background:#fff;border:1px solid #e9eef5;border-radius:16px;padding:16px 20px;box-shadow:0 5px 20px rgba(15,23,42,.04)}.step{display:flex;align-items:center;gap:10px;min-width:150px;color:#94a3b8}.step>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f1f5f9;font-weight:800;font-size:13px}.step strong,.step small{display:block}.step strong{font-size:13px}.step small{font-size:11px;margin-top:1px}.step.active{color:#0f172a}.step.active>span{background:#1363df;color:#fff;box-shadow:0 7px 18px rgba(19,99,223,.25)}.step.done{color:#0f766e}.step.done>span{background:#e8fbf3;color:#087a55}.step-line{height:2px;flex:1;background:#edf1f6;margin:0 12px}.step-line.done{background:#b7ead6}.feature-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#eef6ff;color:#1363df;font-size:21px}.input-group-clean .input-group-text{border-color:#dce3ea;background:#f8fafc;color:#64748b;border-radius:10px 0 0 10px}.input-group-clean .form-control{border-left:0;border-radius:0 10px 10px 0}.form-hint{font-size:11px;color:#94a3b8;margin-top:6px}.security-note{background:linear-gradient(145deg,#0a2036,#103d65);border-radius:16px;padding:30px;color:#fff;box-shadow:0 15px 35px rgba(8,26,44,.15)}.security-note-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:rgba(56,189,248,.16);color:#7dd3fc;font-size:22px;margin-bottom:18px}.security-note p{color:#bfd0df;font-size:14px;line-height:1.7}.mini-rule{display:flex;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.08);padding:11px 0;font-size:13px}.mini-rule i{color:#5eead4}.duplicate-alert{background:#fff4e8;color:#9a4d00}.duplicate-card{border:1px solid #ffd9b4}.avatar-lg{width:52px;height:52px;flex:0 0 52px;border-radius:16px;display:grid;place-items:center;font-weight:800;background:#eaf2ff;color:#1d4ed8}.dedup-reason{display:block;color:#b45309;font-weight:600;font-size:11px}.dedup-clearance{display:flex;align-items:center;gap:12px;background:#ecfdf5;border:1px solid #bbf7d0;color:#065f46;border-radius:14px;padding:13px 16px}.dedup-clearance>i{font-size:20px}.dedup-clearance strong,.dedup-clearance span{display:block}.dedup-clearance div span{font-size:12px;color:#3f8069}.form-section-title{display:flex;align-items:center;gap:12px}.form-section-title>span{width:34px;height:34px;border-radius:10px;background:#edf5ff;color:#1363df;display:grid;place-items:center;font-size:11px;font-weight:800}.form-section-title strong,.form-section-title small{display:block}.form-section-title small{font-size:11px;color:#94a3b8;margin-top:1px}.verified-field{position:relative}.verified-field .form-control{padding-right:38px;background:#f8fffc;border-color:#bcebd8}.verified-field i{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#10b981}.upload-panel{z-index:5}.upload-tile{position:relative;display:flex;align-items:center;gap:13px;border:1px dashed #cbd5e1;border-radius:13px;padding:14px;margin-bottom:10px;cursor:pointer;transition:.2s;background:#fbfdff}.upload-tile:hover{border-color:#7eb6ff;background:#f5f9ff}.upload-tile.has-file{border-style:solid;border-color:#86d9b8;background:#f1fcf7}.upload-tile input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-tile>i{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#edf5ff;color:#1363df}.upload-tile strong,.upload-tile small{display:block}.upload-tile strong{font-size:12px}.upload-tile small{color:#94a3b8;font-size:10px;margin-top:2px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-hero{overflow:hidden}.customer-hero-main{display:flex;align-items:center;gap:20px;padding:26px}.profile-photo-xl{width:88px;height:88px;border-radius:20px;object-fit:cover;border:4px solid #fff;box-shadow:0 8px 25px rgba(15,23,42,.12)}.profile-initials{display:grid;place-items:center;background:linear-gradient(135deg,#dbeafe,#e0f2fe);color:#1d4ed8;font-size:25px;font-weight:800}.cif-hero{font-size:12px;font-weight:800;letter-spacing:.08em;color:#1363df;background:#edf5ff;padding:5px 9px;border-radius:999px}.customer-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);background:#f8fafc;border-top:1px solid #edf1f5}.customer-quick-grid>div{padding:15px 22px;border-right:1px solid #edf1f5}.customer-quick-grid>div:last-child{border-right:0}.customer-quick-grid small,.customer-quick-grid strong{display:block}.customer-quick-grid small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:3px}.customer-quick-grid strong{font-size:13px}.info-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #f0f2f5;font-size:13px}.info-row:last-child{border-bottom:0}.info-row span{color:#64748b}.info-row strong{text-align:right}.signature-box{height:105px;border:1px dashed #dbe3ec;border-radius:12px;background:#fff;display:grid;place-items:center;padding:12px}.signature-box img{max-height:80px;max-width:100%;object-fit:contain}.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.document-card{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #e8edf3;border-radius:12px;text-decoration:none;color:#1f2937;transition:.2s}.document-card:hover{border-color:#9bc5ff;background:#f8fbff}.document-icon{width:38px;height:38px;border-radius:10px;flex:0 0 38px;display:grid;place-items:center;background:#f1f5f9;color:#475569}.document-card strong,.document-card small,.document-card span{display:block;min-width:0}.document-card strong{font-size:12px}.document-card small{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-card span{font-size:9px;color:#94a3b8;margin-top:2px}.empty-documents{grid-column:1/-1;text-align:center;padding:28px;color:#94a3b8}.empty-documents i{display:block;font-size:26px;margin-bottom:8px}.cif-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#edf5ff;color:#1d4ed8;font-weight:800;padding:5px 8px;border-radius:7px;letter-spacing:.05em}.min-w-0{min-width:0}
@media(max-width:991px){.onboarding-stepper{overflow:auto}.step{min-width:130px}.customer-hero-main{align-items:flex-start;flex-wrap:wrap}.customer-quick-grid{grid-template-columns:repeat(2,1fr)}.document-grid{grid-template-columns:1fr}.upload-panel{position:static!important}.customer-onboarding-header{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.customer-quick-grid{grid-template-columns:1fr}.customer-quick-grid>div{border-right:0;border-bottom:1px solid #edf1f5}.onboarding-stepper .step small{display:none}.onboarding-stepper{padding:12px}.step{min-width:auto}.step-line{min-width:20px}}

/* Context-aware application logo
   The source image keeps its natural ratio; only the slot changes by placement. */
.app-logo-slot{
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    flex:0 0 auto;
    line-height:0;
}
.app-logo-slot img{
    display:block;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain;
    object-position:center;
}

/* Sidebar: compact even for very large source images. */
.app-logo-slot--sidebar{
    width:clamp(72px, 36%, 112px);
    height:36px;
    justify-content:flex-start;
}
.app-logo-slot--sidebar img{object-position:left center}
.brand--with-logo{gap:12px !important}
.brand--with-logo .brand-copy{min-width:0;flex:1}

/* Login: larger than sidebar but intentionally bounded. */
.app-logo-slot--login{
    width:clamp(130px, 35vw, 190px);
    height:64px;
    justify-content:flex-start;
}
.app-logo-slot--login img{object-position:left center}

/* Branding settings main preview. */
.branding-preview{
    min-height:190px;
    border:1px dashed #cbd5e1;
    border-radius:16px;
    background:linear-gradient(135deg,#f8fafc,#eef6ff);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    overflow:hidden;
}
.app-logo-slot--preview{
    width:min(280px,75%);
    height:96px;
}
.branding-fallback{width:96px;height:96px;border-radius:24px;background:linear-gradient(145deg,#0b4a7f,#1363df);color:#fff;display:grid;place-items:center;font-size:30px;font-weight:800;box-shadow:0 18px 35px rgba(19,99,223,.2)}

/* Preview of the real contexts in Administration. */
.branding-context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.branding-context-card{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:14px}
.branding-context-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:10px}
.branding-context-box{display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8fafc;border:1px solid #edf2f7;border-radius:10px;padding:8px;min-width:0}
.branding-context-box img{display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain;object-position:center}
.branding-context-sidebar{height:52px}
.branding-context-sidebar img{max-width:112px!important;max-height:36px!important}
.branding-context-login{height:92px}
.branding-context-login img{max-width:190px!important;max-height:64px!important}
.branding-context-document{height:64px}
.branding-context-document img{max-width:125px!important;max-height:34px!important}

@media(max-width:900px){
    .app-logo-slot--login{width:min(180px,55vw);height:60px}
}
@media(max-width:767.98px){
    .branding-context-grid{grid-template-columns:1fr}
    .app-logo-slot--sidebar{width:96px;height:34px}
}
