/* =====================================================
   MANSONS SUPPLIER PORTAL v3.0 — portal.css
   Custom Header/Footer · Login Popup · Register · Portal
   ===================================================== */
*{box-sizing:border-box;margin:0;padding:0;}

.msn-blank-page,
#msn-landing,#msn-portal,
.msn-rp-page,#msn-login-page,
.msn-popup-overlay,
.msn-site-header,.msn-site-footer{
  font-family:'Poppins','Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:#334155;line-height:1.6;
}
a{text-decoration:none;}
.msn-gold-link{color:#c9a227;font-weight:600;}
.msn-gold-link:hover{text-decoration:underline;}

/* ── VARIABLES ─────────────────────────────────────── */
:root{
  --navy:#000000;--navy2:#1a2d5a;--navy3:#000000;
  --gold:#fd1620;--gold2:#ffcc16;
  --green:#059669;--red:#dc2626;--amber:#d97706;--blue:#2563eb;
  --g50:#f8fafc;--g100:#f1f5f9;--g200:#e2e8f0;--g300:#cbd5e1;
  --g400:#94a3b8;--g500:#64748b;--g700:#334155;--g900:#0f172a;
  --white:#fff;
  --shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);
  --shadow-md:0 4px 20px rgba(0,0,0,.13);
  --shadow-lg:0 10px 40px rgba(0,0,0,.18);
  --rad:10px;
}

/* =====================================================
   SITE HEADER
   ===================================================== */
.msn-site-header{
  background:#fff;border-bottom:1px solid var(--g200);
  position:sticky;top:0;z-index:500;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.msn-header-wrap{
  max-width:1320px;margin:0 auto;padding:0 28px;
  height:68px;display:flex;align-items:center;gap:16px;
}
.msn-header-logo{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;gap:1px;}
.msn-since-tag{font-size:9px;font-weight:700;letter-spacing:3px;color:var(--navy);opacity:.7;}
.msn-header-nav{display:flex;align-items:center;gap:4px;margin-left:auto;}
.msn-nav-a{
  padding:8px 14px;font-size:14px;font-weight:500;color:var(--g700);
  border-radius:6px;transition:all .15s;position:relative;
}
.msn-nav-a:hover{color:var(--navy);background:var(--g50);}
.msn-nav-a.msn-nav-active{color:var(--gold);font-weight:600;}
.msn-nav-a.msn-nav-active::after{
  content:'';position:absolute;bottom:-4px;left:14px;right:14px;
  height:2px;background:var(--gold);border-radius:2px;
}
.msn-header-right{display:flex;align-items:center;gap:12px;margin-left:16px;}
.msn-hdr-help,.msn-hdr-lang{
  display:flex;align-items:center;gap:5px;font-size:13px;
  color:var(--g500);cursor:pointer;padding:6px 10px;border-radius:6px;
}
.msn-hdr-help:hover,.msn-hdr-lang:hover{color:var(--navy);background:var(--g50);}
.msn-hdr-login-btn{
  display:flex;align-items:center;gap:7px;
  padding:9px 20px;background:var(--navy);color:#fff;
  border:none;border-radius:8px;font-size:13.5px;font-weight:600;
  cursor:pointer;font-family:inherit;transition:all .2s;white-space:nowrap;
}
.msn-hdr-login-btn:hover{background:var(--navy2);transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,28,63,.3);}
.msn-hdr-user-pill{
  display:flex;align-items:center;gap:8px;cursor:pointer;
  padding:5px 12px;border:1.5px solid var(--g200);border-radius:8px;
  position:relative;
}
.msn-hdr-av{
  width:30px;height:30px;border-radius:50%;background:var(--gold);
  color:var(--navy);font-size:12px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
}
.msn-hdr-dropdown{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:#fff;border:1px solid var(--g200);border-radius:10px;
  box-shadow:var(--shadow-md);min-width:170px;overflow:hidden;z-index:600;
}
.msn-hdr-user-pill:hover .msn-hdr-dropdown{display:block;}
.msn-hdr-dropdown a{display:block;padding:10px 16px;font-size:13.5px;color:var(--g700);}
.msn-hdr-dropdown a:hover{background:var(--g50);color:var(--navy);}
.msn-drop-logout{color:var(--red)!important;}
.msn-ham{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.msn-ham span{display:block;width:22px;height:2px;background:var(--navy);border-radius:2px;transition:.3s;}

/* =====================================================
   SITE FOOTER
   ===================================================== */
.msn-site-footer{background:var(--navy);color:#fff;}
.msn-footer-top{
  max-width:1320px;margin:0 auto;padding:52px 28px 40px;
  display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:48px;
}
.msn-ft-brand svg{margin-bottom:14px;}
.msn-ft-tagline{font-size:13px;color:rgba(255,255,255,.6);line-height:1.7;margin-bottom:20px;}
.msn-ft-social{display:flex;gap:10px;}
.msn-ft-social a{
  width:34px;height:34px;border:1px solid rgba(255,255,255,.2);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.6);transition:.2s;
}
.msn-ft-social a:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.msn-ft-col h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,.5);margin-bottom:18px;}
.msn-ft-col a{display:block;font-size:13.5px;color:rgba(255,255,255,.65);margin-bottom:10px;transition:.2s;}
.msn-ft-col a:hover{color:#fff;padding-left:4px;}
.msn-ft-contact{display:flex;align-items:center;gap:9px;font-size:13px;color:rgba(255,255,255,.65);margin-bottom:12px;}
.msn-ft-contact svg{flex-shrink:0;opacity:.7;}
.msn-footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:18px 28px;max-width:1320px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.msn-footer-bottom span{font-size:12px;color:rgba(255,255,255,.4);}
.msn-ft-bottom-links{display:flex;gap:24px;}
.msn-ft-bottom-links a{font-size:12px;color:rgba(255,255,255,.4);}
.msn-ft-bottom-links a:hover{color:rgba(255,255,255,.8);}

/* =====================================================
   LOGIN POPUP
   ===================================================== */
.msn-popup-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.6);
  z-index:9000;display:flex;align-items:center;justify-content:center;
  padding:20px;backdrop-filter:blur(3px);
  animation:msn-fade-in .2s ease;
}
@keyframes msn-fade-in{from{opacity:0;}to{opacity:1;}}
.msn-popup-box{
  display:flex;width:100%;max-width:860px;
  background:#fff;border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-lg);
  animation:msn-pop-in .25s ease;
}
@keyframes msn-pop-in{from{transform:scale(.95) translateY(10px);opacity:0;}to{transform:none;opacity:1;}}
.msn-popup-left{
  width:340px;flex-shrink:0;
  background:linear-gradient(160deg,var(--navy) 0%,#010101 60%,var(--navy3) 100%);
  padding:44px 36px;display:flex;flex-direction:column;position:relative;overflow:hidden;
}
.msn-popup-left::before{
  content:'';position:absolute;bottom:-60px;right:-60px;
  width:200px;height:200px;border-radius:50%;
  background:rgba(201,162,39,.12);
}
.msn-popup-left-inner{position:relative;z-index:1;}
.msn-pp-logo{margin-bottom:4px;}
.msn-pp-since{font-size:9px;font-weight:700;letter-spacing:3px;color:rgba(255,255,255,.45);margin-bottom:36px;}
.msn-pp-brand{font-size:30px;font-weight:800;color:#fff;line-height:1.2;margin-bottom:12px;}
.msn-pp-tag{font-size:13.5px;color:rgba(255,255,255,.62);line-height:1.75;margin-bottom:36px;}
.msn-pp-feats{display:flex;flex-direction:column;gap:14px;}
.msn-pp-feat{display:flex;align-items:center;gap:10px;color:#fff;font-size:13.5px;font-weight:500;}
.msn-popup-right{flex:1;padding:44px 40px;position:relative;}
.msn-popup-close{
  position:absolute;top:16px;right:16px;
  width:34px;height:34px;border-radius:50%;
  border:none;background:var(--g100);cursor:pointer;
  font-size:18px;color:var(--g500);display:flex;align-items:center;justify-content:center;
  transition:.2s;line-height:1;
}
.msn-popup-close:hover{background:var(--g200);color:var(--g900);}
.msn-pp-right-logo{margin-bottom:8px;}
.msn-pp-title{font-size:26px;font-weight:800;color:var(--navy);margin-top:18px;margin-bottom:4px;}
.msn-pp-sub{font-size:13.5px;color:var(--g500);margin-bottom:22px;}

/* =====================================================
   SHARED FORM ELEMENTS
   ===================================================== */
.msn-form-error{
  display:flex;align-items:center;gap:8px;
  padding:11px 14px;background:#fef2f2;color:#991b1b;
  border:1px solid #fca5a5;border-radius:8px;
  font-size:13px;font-weight:500;margin-bottom:14px;
}
.msn-form-success{
  display:flex;align-items:center;gap:8px;
  padding:11px 14px;background:#ecfdf5;color:#065f46;
  border:1px solid #a7f3d0;border-radius:8px;
  font-size:13px;font-weight:500;margin-bottom:14px;
}
.msn-form-group{margin-bottom:16px;}
.msn-form-label{
  display:block;font-size:11px;font-weight:700;color:var(--g500);
  text-transform:uppercase;letter-spacing:.8px;margin-bottom:7px;
}
.msn-input-box{position:relative;display:flex;align-items:center;}
.msn-input-ico{position:absolute;left:13px;pointer-events:none;}
.msn-form-input{
  width:100%;padding:12px 42px;
  border:1.5px solid var(--g200);border-radius:9px;
  font-size:14px;color:var(--g700);font-family:inherit;outline:none;
  background:#fff;transition:border-color .2s,box-shadow .2s;
}
.msn-form-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,28,63,.07);}
.msn-form-input::placeholder{color:var(--g400);}
.msn-eye-toggle{
  position:absolute;right:12px;background:none;border:none;
  cursor:pointer;color:var(--g400);padding:4px;line-height:0;transition:.15s;
}
.msn-eye-toggle:hover{color:var(--navy);}
.msn-login-opts{display:flex;justify-content:space-between;align-items:center;margin:4px 0 18px;font-size:13px;}
.msn-check-label{display:flex;align-items:center;gap:7px;cursor:pointer;color:var(--g600);}
.msn-check-label input{width:15px;height:15px;accent-color:var(--navy);}
.msn-login-submit{
  width:100%;padding:13px;background:var(--navy);color:#fff;
  border:none;border-radius:9px;font-size:15px;font-weight:700;
  cursor:pointer;font-family:inherit;transition:all .2s;
  display:flex;align-items:center;justify-content:center;gap:8px;
  letter-spacing:.3px;
}
.msn-login-submit:hover{background:var(--navy2);box-shadow:0 4px 16px rgba(15,28,63,.3);}
.msn-login-submit:disabled{opacity:.6;cursor:not-allowed;}
.msn-divider{text-align:center;margin:18px 0 14px;position:relative;}
.msn-divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--g100);}
.msn-divider span{background:#fff;position:relative;padding:0 12px;font-size:12px;color:var(--g400);}
.msn-reg-outline-btn{
  display:block;text-align:center;padding:12px;
  border:1.5px solid var(--gold);border-radius:9px;
  color:var(--gold);font-weight:700;font-size:14px;transition:all .2s;
}
.msn-reg-outline-btn:hover{background:var(--gold);color:#fff;}

/* =====================================================
   HERO SECTION
   ===================================================== */
.msn-hero{
  background:#ffcc16;
  min-height:420px;padding:60px 28px;
}
.msn-hero-inner{
  max-width:1320px;margin:0 auto;
  display:flex;align-items:center;gap:48px;
}
.msn-hero-text{flex:1;}
.msn-hero-eyebrow{
  font-size:11px;font-weight:700;letter-spacing:4px;
  color:var(--gold);margin-bottom:14px;display:block;
}
.msn-hero-h1{
  font-size:46px;font-weight:900;color:#fff;line-height:1.1;
  margin-bottom:18px;
}
.msn-hero-desc{font-size:15px;color:rgba(255,255,255,.68);max-width:440px;margin-bottom:32px;}
.msn-hero-badges{display:flex;gap:32px;flex-wrap:wrap;}
.msn-hero-badge{display:flex;align-items:center;gap:12px;color:#fff;}
.msn-hero-badge strong{display:block;font-size:14px;font-weight:700;}
.msn-hero-badge span{font-size:12px;color:rgba(255,255,255,.55);}

/* Hero Login Card */
.msn-hero-card{
  width:360px;flex-shrink:0;
  background:#fff;border-radius:16px;padding:30px;
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.msn-hcard-head{
  display:flex;align-items:center;gap:10px;
  font-size:20px;font-weight:800;color:var(--navy);margin-bottom:5px;
}
.msn-hcard-line{width:44px;height:3px;background:var(--gold);border-radius:2px;margin-bottom:20px;}
.msn-hcard-reg{text-align:center;font-size:13px;color:var(--g500);margin-top:14px;}

/* =====================================================
   FEATURE TILES
   ===================================================== */
.msn-features-section{background:#fff;padding:0;border-bottom:1px solid var(--g100);}
.msn-features-grid{
  max-width:1320px;margin:0 auto;padding:24px 28px;
  display:grid;grid-template-columns:repeat(5,1fr);gap:16px;
}
.msn-ftile{
  display:flex;gap:14px;padding:18px 16px;
  border:1px solid var(--g100);border-radius:12px;
  transition:all .2s;cursor:pointer;
}
.msn-ftile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--g200);}
.msn-ftile-ico{
  width:52px;height:52px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.msn-ftile-body h3{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.msn-ftile-body p{font-size:12px;color:var(--g500);margin-bottom:8px;line-height:1.5;}
.msn-ftile-link{font-size:12px;color:var(--gold);font-weight:700;}
.msn-ftile-link:hover{text-decoration:underline;}

/* =====================================================
   BOTTOM SECTIONS
   ===================================================== */
.msn-bottom-section{background:var(--g50);padding:40px 28px;}
.msn-bottom-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;
}
.msn-bottom-card{
  background:#fff;border:1px solid var(--g200);
  border-radius:14px;padding:24px;
  box-shadow:var(--shadow);
}
.msn-bc-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;
}
.msn-bc-head h3{
  display:flex;align-items:center;gap:8px;
  font-size:15px;font-weight:700;color:var(--navy);
}
.msn-view-all-link{font-size:13px;color:var(--navy);font-weight:500;}
.msn-view-all-link:hover{color:var(--gold);}

/* Announcements */
.msn-ann-row{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--g50);}
.msn-ann-row:last-of-type{border-bottom:none;}
.msn-ann-date{display:flex;flex-direction:column;align-items:center;min-width:38px;}
.msn-ann-date strong{font-size:20px;font-weight:800;color:var(--navy);line-height:1;}
.msn-ann-date small{font-size:11px;color:var(--g400);}
.msn-ann-body p{font-size:12px;color:var(--g500);margin-top:3px;}
.msn-ann-title{font-size:13px;font-weight:600;color:var(--navy);}
.msn-ann-tag{
  display:inline-flex;padding:2px 8px;border-radius:20px;
  font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle;
}
.msn-ann-important{background:#fee2e2;color:#991b1b;}
.msn-ann-new{background:#d1fae5;color:#065f46;}
.msn-ann-update{background:#fef3c7;color:#92400e;}

/* How It Works */
.msn-hiw-grid{
  display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;
  justify-content:center;margin:8px 0 20px;
}
.msn-hiw-item{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;max-width:90px;
}
.msn-hiw-circle{
  width:58px;height:58px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin-bottom:10px;
  box-shadow:0 4px 14px rgba(0,0,0,.15);
}
.msn-hiw-navy{background:var(--navy);}
.msn-hiw-gold{background:var(--gold);}
.msn-hiw-item strong{font-size:12px;font-weight:700;color:var(--navy);}
.msn-hiw-item small{font-size:11px;color:var(--g500);margin-top:3px;line-height:1.4;}
.msn-hiw-arr{font-size:18px;color:var(--g300);margin-top:16px;}
.msn-hiw-btn{
  display:block;width:100%;text-align:center;
  padding:11px;border:1.5px solid var(--gold);border-radius:8px;
  color:var(--gold);font-weight:700;font-size:13.5px;transition:all .2s;
}
.msn-hiw-btn:hover{background:var(--gold);color:#fff;}

/* Help & Support */
.msn-help-bold{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.msn-help-desc{font-size:13px;color:var(--g500);margin-bottom:16px;line-height:1.6;}
.msn-help-contacts{margin-bottom:18px;}
.msn-help-contact{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--g600);margin-bottom:10px;}
.msn-help-contact svg{flex-shrink:0;color:var(--gold);}
.msn-contact-btn{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13.5px;color:var(--gold);font-weight:700;
}
.msn-contact-btn:hover{text-decoration:underline;}

/* =====================================================
   REGISTRATION PAGE
   ===================================================== */
.msn-rp-page{background:var(--g50);min-height:60vh;padding:48px 24px 64px;}
.msn-rp-container{max-width:720px;margin:0 auto;}
.msn-rp-header{text-align:center;margin-bottom:32px;}
.msn-rp-header h1{font-size:28px;font-weight:800;color:var(--navy);}
.msn-rp-header p{font-size:14px;color:var(--g500);margin-top:6px;}

/* Step bar */
.msn-rp-stepbar{
  display:flex;align-items:center;margin-bottom:28px;
}
.msn-rps-item{display:flex;flex-direction:column;align-items:center;min-width:110px;}
.msn-rps-dot{
  width:40px;height:40px;border-radius:50%;
  border:2px solid var(--g300);background:#fff;
  color:var(--g400);font-size:14px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  transition:all .3s;
}
.msn-rps-lbl{font-size:12px;font-weight:600;color:var(--g400);margin-top:7px;text-align:center;}
.msn-rps-item.msn-rps-active .msn-rps-dot{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 0 0 5px rgba(15,28,63,.1);}
.msn-rps-item.msn-rps-active .msn-rps-lbl{color:var(--navy);font-weight:700;}
.msn-rps-item.msn-rps-done .msn-rps-dot{background:var(--green);border-color:var(--green);color:#fff;}
.msn-rps-item.msn-rps-done .msn-rps-lbl{color:var(--green);}
.msn-rps-conn{flex:1;height:2px;background:var(--g200);margin:0 6px;margin-bottom:26px;transition:background .3s;}
.msn-rps-conn.msn-rps-conn-done{background:var(--green);}

/* Form card */
.msn-rp-card{
  background:#fff;border-radius:16px;padding:34px 36px;
  box-shadow:var(--shadow-md);border:1px solid var(--g200);
}
.msn-rp-step-title{font-size:19px;font-weight:800;color:var(--navy);margin-bottom:5px;}
.msn-rp-step-sub{font-size:13.5px;color:var(--g500);margin-bottom:24px;}
.msn-rp-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.msn-rp-field{display:flex;flex-direction:column;gap:6px;}
.msn-rp-field label,.msn-rp-label{font-size:11px;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.7px;}
.msn-rp-field input,.msn-rp-field select,.msn-rp-field textarea{
  padding:11px 14px;border:1.5px solid var(--g200);border-radius:9px;
  font-size:14px;color:var(--g700);font-family:inherit;outline:none;
  background:#fff;transition:border-color .2s;
}
.msn-rp-field input:focus,.msn-rp-field select:focus{border-color:var(--navy);}
.msn-rp-field input::placeholder{color:var(--g400);}
.msn-rp-field-full{grid-column:1/-1;}
.msn-rp-pwd-wrap{position:relative;display:flex;align-items:center;}
.msn-rp-pwd-wrap input{width:100%;padding-right:44px;}
.msn-rp-eye{position:absolute;right:12px;background:none;border:none;cursor:pointer;color:var(--g400);font-size:17px;}
.msn-pwd-strength{margin-top:5px;}
.msn-rp-notice{
  display:flex;align-items:center;gap:9px;margin-top:18px;
  padding:12px 16px;background:#fffbf0;border:1px solid #fcd34d;
  border-radius:8px;font-size:13px;color:#92400e;
}
/* Review */
.msn-rp-review-sec{margin-bottom:16px;border:1px solid var(--g200);border-radius:10px;overflow:hidden;}
.msn-rp-review-title{background:var(--g50);padding:10px 16px;font-size:12px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--g200);}
.msn-rp-review-row{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--g50);font-size:13.5px;}
.msn-rp-review-row:last-child{border-bottom:none;}
.msn-rp-review-row span{color:var(--g500);}
.msn-rp-review-row strong{color:var(--navy);}
.msn-rp-terms{margin-top:18px;padding:14px;background:var(--g50);border-radius:8px;border:1px solid var(--g200);}
.msn-rp-terms-label{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--g600);cursor:pointer;line-height:1.5;}
.msn-rp-terms-label input{margin-top:2px;width:16px;height:16px;accent-color:var(--navy);flex-shrink:0;}
/* Actions */
.msn-rp-actions{display:flex;justify-content:space-between;align-items:center;margin-top:26px;padding-top:22px;border-top:1px solid var(--g100);}
.msn-rp-login-line{text-align:center;margin-top:18px;font-size:13px;color:var(--g500);}
/* Success */
.msn-rp-success{text-align:center;padding:48px 20px;}
.msn-rp-success-icon{width:72px;height:72px;border-radius:50%;background:#ecfdf5;color:var(--green);font-size:34px;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
.msn-rp-success h2{font-size:26px;font-weight:800;color:var(--navy);margin-bottom:10px;}
.msn-rp-success p{font-size:14px;color:var(--g500);}
.msn-rp-success-code{margin:20px auto;display:inline-block;padding:12px 28px;background:var(--g50);border:1px solid var(--g200);border-radius:10px;font-size:14px;color:var(--g700);}
.msn-rp-success-code strong{color:var(--navy);font-size:20px;}

/* =====================================================
   BUTTONS
   ===================================================== */
.msn-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 18px;border-radius:9px;
  font-size:13.5px;font-weight:600;cursor:pointer;
  border:none;font-family:inherit;transition:all .15s;white-space:nowrap;
}
.msn-btn:active{transform:scale(.97);}
.msn-btn:disabled{opacity:.6;cursor:not-allowed;}
.msn-btn-navy{background:var(--navy);color:#fff;}
.msn-btn-navy:hover{background:var(--navy2);}
.msn-btn-gold{background:var(--gold);color:#fff;}
.msn-btn-gold:hover{background:var(--gold2);}
.msn-btn-outline{background:#fff;color:var(--g700);border:1.5px solid var(--g200);}
.msn-btn-outline:hover{background:var(--g50);}
.msn-btn-green{background:var(--green);color:#fff;}
.msn-btn-green:hover{background:#047857;}
.msn-btn-red{background:var(--red);color:#fff;}
.msn-btn-red:hover{background:#b91c1c;}
.msn-btn-sm{padding:7px 13px;font-size:12px;}
.msn-btn-lg{padding:13px 28px;font-size:15px;}
.msn-icon-btn{width:32px;height:32px;border-radius:8px;border:none;background:none;cursor:pointer;color:var(--g400);display:inline-flex;align-items:center;justify-content:center;transition:.15s;}
.msn-icon-btn:hover{background:var(--g100);color:var(--navy);}

/* =====================================================
   PORTAL APP
   ===================================================== */
#msn-portal{display:flex;min-height:100vh;background:var(--g50);}

/* Sidebar */
.msn-sidebar{
  width:230px;background:var(--navy);display:flex;flex-direction:column;
  flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;
  scrollbar-width:none;
}
.msn-sidebar::-webkit-scrollbar{display:none;}
.msn-sb-logo{padding:18px 16px 12px;border-bottom:1px solid rgba(255,255,255,.07);}
.msn-sb-user{
  display:flex;align-items:center;gap:10px;padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.msn-sb-av{
  width:36px;height:36px;border-radius:50%;
  background:var(--gold);color:var(--navy);
  font-size:13px;font-weight:800;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.msn-sb-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
.msn-sb-role{font-size:11px;color:rgba(255,255,255,.45);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
#msn-nav{flex:1;padding:8px 0;}
.msn-sb-link{
  display:flex;align-items:center;gap:10px;padding:11px 18px;
  color:rgba(255,255,255,.58);font-size:13.5px;font-weight:500;
  border-left:3px solid transparent;transition:all .15s;cursor:pointer;
}
.msn-sb-link:hover,.msn-sb-link.msn-active{color:#fff;background:rgba(255,255,255,.07);border-left-color:var(--gold);}
.msn-sb-foot{border-top:1px solid rgba(255,255,255,.07);padding:6px 0;}
.msn-sb-logout:hover{color:#f87171!important;}
.msn-main{flex:1;display:flex;flex-direction:column;min-width:0;}

/* Topbar */
.msn-topbar{
  background:#fff;border-bottom:1px solid var(--g200);
  height:62px;padding:0 24px;display:flex;align-items:center;
  justify-content:space-between;position:sticky;top:0;z-index:100;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.msn-tb-right{display:flex;align-items:center;gap:16px;}
.msn-admin-pill{padding:3px 12px;background:#f0e8ff;color:#7c3aed;border-radius:20px;font-size:11px;font-weight:700;}
.msn-tb-help{font-size:13px;color:var(--g500);cursor:pointer;}
.msn-tb-bell{position:relative;cursor:pointer;line-height:0;padding:4px;}
.msn-tb-badge{position:absolute;top:-3px;right:-3px;background:var(--gold);color:var(--navy);font-size:9px;font-weight:800;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.msn-tb-user{display:flex;align-items:center;gap:10px;cursor:pointer;}
.msn-tb-av{width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.msn-tb-name{font-size:13px;font-weight:700;color:var(--navy);}
.msn-tb-role{font-size:11px;color:var(--g400);}

/* Content */
.msn-content{flex:1;padding:26px;overflow-y:auto;}
.msn-loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;height:280px;color:var(--g400);gap:14px;}
.msn-portal-foot{padding:13px 26px;border-top:1px solid var(--g100);background:#fff;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--g400);}
.msn-portal-foot a{color:var(--g400);margin-left:16px;}
.msn-portal-foot a:hover{color:var(--navy);}
.msn-spin{width:36px;height:36px;border:3px solid var(--g200);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;}
.msn-lp-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Notifications */
.msn-notif-panel{position:fixed;top:62px;right:14px;width:300px;background:#fff;border:1px solid var(--g200);border-radius:12px;box-shadow:var(--shadow-md);z-index:999;overflow:hidden;}
.msn-notif-hd{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--g100);font-weight:700;color:var(--navy);font-size:14px;}
.msn-notif-item{display:flex;gap:11px;padding:12px 16px;border-bottom:1px solid var(--g50);}
.msn-notif-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:4px;}
.msn-notif-item p{font-size:13px;font-weight:500;color:var(--g700);}
.msn-notif-item small{font-size:11px;color:var(--g400);}

/* Toast */
.msn-toast{position:fixed;bottom:24px;right:24px;background:var(--navy);color:#fff;padding:13px 20px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 8px 28px rgba(0,0,0,.22);z-index:9999;display:flex;align-items:center;gap:10px;animation:toastin .3s ease;}
.msn-toast-ok{background:var(--green);}
.msn-toast-error{background:var(--red);}
@keyframes toastin{from{transform:translateY(10px);opacity:0;}to{transform:none;opacity:1;}}

/* Page headers */
.msn-page-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px;}
.msn-page-title{font-size:22px;font-weight:800;color:var(--navy);}
.msn-page-sub{font-size:13px;color:var(--g500);margin-top:2px;}

/* Cards */
.msn-card{background:#fff;border:1px solid var(--g200);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.msn-card-hd{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--g100);}
.msn-card-hd-title{font-size:15px;font-weight:700;color:var(--navy);}

/* Stat grid */
.msn-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px;}
.msn-stat-card{background:#fff;border:1px solid var(--g200);border-radius:12px;padding:20px;box-shadow:var(--shadow);}
.msn-stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.msn-stat-ico{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.msn-stat-val{font-size:30px;font-weight:800;color:var(--navy);line-height:1;}
.msn-stat-lbl{font-size:12px;color:var(--g500);font-weight:500;margin-top:4px;}
.msn-stat-link{font-size:12px;color:var(--gold);font-weight:700;cursor:pointer;}
.msn-stat-link:hover{text-decoration:underline;}
.msn-dash-grid{display:grid;grid-template-columns:5fr 2fr;gap:18px;}
.msn-banner{background:#a59d35;color:#fff;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;}
.msn-banner h3{font-size:17px;font-weight:800;}
.msn-banner p{font-size:12px;opacity:.7;margin-top:4px;}

/* Tables */
.msn-table-wrap{overflow-x:auto;}
table.msn-tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
.msn-tbl thead tr{background:var(--g50);}
.msn-tbl th{padding:11px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--g100);white-space:nowrap;}
.msn-tbl td{padding:12px 16px;color:var(--g700);border-bottom:1px solid var(--g50);}
.msn-tbl tbody tr:hover{background:var(--g50);}
.msn-tbl tbody tr:last-child td{border-bottom:none;}
.msn-tbl-strong{font-weight:700;color:var(--navy);}
.msn-tbl-sm{font-size:12px;color:var(--g400);}

/* Filters */
.msn-filters{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--g100);flex-wrap:wrap;}
.msn-search-box{position:relative;}
.msn-search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--g400);pointer-events:none;}
.msn-search-box input{width:250px;padding:8px 12px 8px 33px;border:1.5px solid var(--g200);border-radius:8px;font-size:13px;color:var(--g700);outline:none;font-family:inherit;background:#fff;transition:.2s;}
.msn-search-box input:focus{border-color:var(--navy);}
.msn-sel{padding:8px 12px;border:1.5px solid var(--g200);border-radius:8px;font-size:13px;color:var(--g700);outline:none;cursor:pointer;font-family:inherit;background:#fff;}
.msn-sel:focus{border-color:var(--navy);}
.msn-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--g100);font-size:13px;color:var(--g500);}
.msn-page-btns{display:flex;gap:4px;}
.msn-page-btn{padding:6px 11px;border:1.5px solid var(--g200);border-radius:6px;font-size:12px;cursor:pointer;background:#fff;color:var(--g700);font-family:inherit;transition:.15s;}
.msn-page-btn.msn-active{background:var(--navy);color:#fff;border-color:var(--navy);}
.msn-page-btn:hover:not(.msn-active){background:var(--g100);}

/* Status Badges */
.msn-badge{display:inline-flex;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;border:1px solid;white-space:nowrap;}
.msn-b-submitted{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe;}
.msn-b-approved{background:#ecfdf5;color:#065f46;border-color:#a7f3d0;}
.msn-b-pending{background:#fffbeb;color:#92400e;border-color:#fcd34d;}
.msn-b-rejected{background:#fef2f2;color:#991b1b;border-color:#fca5a5;}
.msn-b-draft{background:#f9fafb;color:#6b7280;border-color:#d1d5db;}
.msn-b-open{background:#ecfdf5;color:#065f46;border-color:#a7f3d0;}
.msn-b-closed{background:#f9fafb;color:#6b7280;border-color:#d1d5db;}
.msn-b-paid{background:#ecfdf5;color:#065f46;border-color:#a7f3d0;}
.msn-b-partially{background:#fff7ed;color:#9a3412;border-color:#fdba74;}
.msn-b-active{background:#ecfdf5;color:#065f46;border-color:#a7f3d0;}
.msn-b-inactive{background:#f9fafb;color:#6b7280;border-color:#d1d5db;}

/* Form fields */
.msn-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.msn-field{display:flex;flex-direction:column;gap:5px;}
.msn-field label{font-size:11px;font-weight:700;color:var(--g500);text-transform:uppercase;letter-spacing:.5px;}
.msn-field input,.msn-field select,.msn-field textarea{padding:10px 12px;border:1.5px solid var(--g200);border-radius:8px;font-size:13.5px;color:var(--g700);font-family:inherit;outline:none;background:#fff;transition:.2s;}
.msn-field input:focus,.msn-field select:focus{border-color:var(--navy);}
.msn-field input:disabled{background:var(--g50);color:var(--g400);}
.msn-field-full{grid-column:1/-1;}
.msn-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--g50);font-size:13.5px;}
.msn-info-row:last-child{border-bottom:none;}
.msn-info-lbl{color:var(--g500);}
.msn-info-val{font-weight:600;color:var(--g800);text-align:right;max-width:60%;}

/* Tabs */
.msn-tabs{display:flex;border-bottom:2px solid var(--g100);margin-bottom:18px;overflow-x:auto;}
.msn-tab{padding:11px 18px;font-size:13.5px;font-weight:500;color:var(--g500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s;white-space:nowrap;}
.msn-tab:hover,.msn-tab.msn-tab-active{color:var(--navy);border-bottom-color:var(--gold);}

/* Wizard steps */
.msn-steps-bar{display:flex;align-items:flex-start;margin-bottom:28px;}
.msn-step-wrap{display:flex;flex-direction:column;align-items:center;min-width:80px;}
.msn-step-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;background:var(--g100);color:var(--g400);transition:.2s;}
.msn-step-dot.msn-step-active{background:var(--navy);color:#fff;box-shadow:0 0 0 4px rgba(15,28,63,.12);}
.msn-step-dot.msn-step-done{background:var(--green);color:#fff;}
.msn-step-label{font-size:10px;font-weight:600;color:var(--g500);text-align:center;margin-top:6px;letter-spacing:.3px;}
.msn-step-line{flex:1;height:2px;background:var(--g200);margin:16px 4px 0;}
.msn-step-line.msn-done{background:var(--green);}
.msn-cs-title{font-size:16px;font-weight:800;color:var(--navy);margin-bottom:18px;}

/* Upload zones */
.msn-upload-zone{border:2px dashed var(--g200);border-radius:12px;padding:36px;text-align:center;color:var(--g400);font-size:14px;cursor:pointer;transition:.2s;}
.msn-upload-zone:hover{border-color:var(--gold);color:var(--navy);background:#fffbf0;}
.msn-doc-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--g50);}
.msn-doc-row:last-child{border-bottom:none;}
.msn-doc-name{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--g700);}
.msn-doc-meta{font-size:11px;color:var(--g400);margin-top:2px;}
.msn-doc-actions{display:flex;gap:6px;}

/* Profile */
.msn-profile-layout{display:grid;grid-template-columns:185px 1fr;gap:20px;}
.msn-profile-sidebar{background:#fff;border:1px solid var(--g200);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.msn-profile-link{display:flex;align-items:center;gap:10px;padding:13px 16px;font-size:13.5px;color:var(--g600);cursor:pointer;border-left:3px solid transparent;transition:.15s;}
.msn-profile-link:hover,.msn-profile-link.msn-active{color:var(--navy);background:var(--g50);border-left-color:var(--gold);font-weight:600;}
.msn-logo-preview-wrap{width:110px;height:110px;border:2px dashed var(--g200);border-radius:12px;overflow:hidden;cursor:pointer;position:relative;flex-shrink:0;transition:.2s;}
.msn-logo-preview-wrap:hover{border-color:var(--gold);}
.msn-logo-preview-wrap img{width:100%;height:100%;object-fit:contain;}
.msn-logo-overlay{position:absolute;inset:0;background:rgba(15,28,63,.55);color:#fff;display:none;flex-direction:column;align-items:center;justify-content:center;font-size:12px;font-weight:600;gap:4px;}
.msn-logo-preview-wrap:hover .msn-logo-overlay{display:flex;}

/* Support */
.msn-support-layout{display:grid;grid-template-columns:185px 1fr;gap:20px;}
.msn-faq-item{border:1px solid var(--g200);border-radius:10px;overflow:hidden;margin-bottom:8px;}
.msn-faq-q{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--g800);}
.msn-faq-q:hover{background:var(--g50);}
.msn-faq-arr{transition:transform .2s;flex-shrink:0;}
.msn-faq-a{padding:14px 18px;font-size:13px;color:var(--g600);line-height:1.7;border-top:1px solid var(--g100);background:var(--g50);display:none;}

/* Reports */
.msn-bar-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.msn-bar-lbl{font-size:13px;color:var(--g500);width:110px;}
.msn-bar-track{flex:1;background:var(--g100);border-radius:999px;height:9px;overflow:hidden;}
.msn-bar-fill{height:100%;border-radius:999px;transition:width .5s ease;}
.msn-bar-pct{font-size:13px;font-weight:700;color:var(--g700);width:36px;text-align:right;}
.msn-export-group{display:flex;gap:8px;flex-wrap:wrap;}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media(max-width:1200px){
  .msn-features-grid{grid-template-columns:repeat(3,1fr);}
  .msn-footer-top{grid-template-columns:1fr 1fr;gap:32px;}
}
@media(max-width:1024px){
  .msn-bottom-grid{grid-template-columns:1fr 1fr;}
  .msn-stat-grid{grid-template-columns:repeat(2,1fr);}
  .msn-dash-grid{grid-template-columns:1fr;}
  .msn-popup-left{width:280px;}
}
@media(max-width:768px){
  .msn-header-nav{display:none;}
  .msn-ham{display:flex;}
  .msn-header-nav.msn-nav-open{
    display:flex;flex-direction:column;
    position:absolute;top:68px;left:0;right:0;
    background:#fff;border-bottom:1px solid var(--g200);
    padding:12px 20px;gap:4px;z-index:400;box-shadow:var(--shadow-md);
  }
  .msn-hero-inner{flex-direction:column;}
  .msn-hero-h1{font-size:32px;}
  .msn-hero-card{width:100%;max-width:400px;}
  .msn-features-grid{grid-template-columns:1fr 1fr;}
  .msn-bottom-grid{grid-template-columns:1fr;}
  .msn-footer-top{grid-template-columns:1fr;}
  .msn-popup-left{display:none;}
  .msn-popup-box{max-width:420px;}
  .msn-popup-right{padding:32px 28px;}
  .msn-sidebar{width:58px;}
  .msn-sb-name,.msn-sb-role,.msn-sb-link span,.msn-sb-logo svg{display:none;}
  .msn-profile-layout,.msn-support-layout{grid-template-columns:1fr;}
  .msn-form-grid,.msn-rp-grid{grid-template-columns:1fr;}
  .msn-rp-field-full{grid-column:1;}
}
