:root{--ink:#111827;--muted:#6b7280;--line:#ddd9cf;--soft:#f8f6ef;--accent:#111827;--bg:#fbfaf6;--danger:#b91c1c;--ok:#15803d}
    *{box-sizing:border-box}
    body{margin:0;font-family:Inter,Apple SD Gothic Neo,Noto Sans KR,Arial,sans-serif;background:var(--bg);color:var(--ink)}
    .wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px}
    .card{width:min(960px,100%);display:grid;grid-template-columns:1fr 1.05fr;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 24px 70px rgba(17,24,39,.08)}
    .hero{background:#111827;color:#fff;padding:42px;display:flex;flex-direction:column;justify-content:space-between;min-height:560px}
    .hero h1{font-size:34px;line-height:1.15;margin:0 0 18px;letter-spacing:-1.5px}.hero p{color:#d1d5db;line-height:1.7}
    .badge{display:inline-flex;width:max-content;border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 12px;font-size:12px;color:#e5e7eb}
    .panel{padding:42px}.panel h2{font-size:27px;margin:0 0 16px;letter-spacing:-.8px}.actions{display:flex;gap:10px;align-items:center;margin-top:18px}
    label{display:block;font-size:13px;font-weight:800;margin:14px 0 7px} input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;font-size:14px;color:var(--ink)} textarea{min-height:82px;resize:vertical}
    button{border:0;border-radius:14px;padding:13px 18px;font-weight:900;cursor:pointer}button.primary{background:#111827;color:#fff}button.secondary{background:#efede7;color:#111827;border:1px solid var(--line)}button.full{width:100%;padding:15px;margin-top:18px;border-radius:16px}button.icon-btn{width:38px;height:38px;border-radius:999px;padding:0;background:#f3f4f6;color:#111827;font-size:24px;line-height:1}
    button:disabled{opacity:.55;cursor:not-allowed}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full-row{grid-column:1/-1}.muted{color:var(--muted);font-size:13px;line-height:1.6}.notice{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--soft);border:1px solid var(--line);font-size:13px;line-height:1.6}.error{color:var(--danger)}.ok{color:var(--ok)}.hidden{display:none!important}
    .modal-backdrop{position:fixed;inset:0;background:rgba(17,24,39,.48);display:flex;align-items:center;justify-content:center;padding:22px;z-index:50}.modal-card{width:min(640px,100%);max-height:90vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.2)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 22px 0}.modal-head h2{margin:0 0 6px;font-size:26px;letter-spacing:-.8px}.modal-body{padding:0 22px 22px}.input-with-btn{display:flex;gap:8px;align-items:center}.input-with-btn input{flex:1}.input-with-btn button{flex:0 0 auto;min-height:46px}.field-help{margin-top:7px;font-size:12px;line-height:1.5}.field-help.ok{color:var(--ok)}.field-help.error{color:var(--danger)}input[readonly],input:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.check-line{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.check-line input{width:auto;margin-top:2px}.check-line label{margin:0;font-size:14px}.supplier-extra{margin-top:12px;padding-top:2px}.agreement-section{margin-top:16px;padding-top:4px}.agreement-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.agreement-title{font-size:15px;font-weight:900;letter-spacing:-.2px}.agreement-list{display:grid;gap:8px}.agreement-card{display:flex;gap:10px;align-items:flex-start;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff}.agreement-card.required{background:#fffdf8}.agreement-card input{width:auto;margin:3px 0 0}.agreement-card label{margin:0;font-size:13px;line-height:1.55;font-weight:700}.agreement-card .agreement-desc{display:block;margin-top:3px;color:var(--muted);font-weight:500}.agreement-card .required-mark{color:#2563eb;font-weight:900}.agreement-card .optional-mark{color:#6b7280;font-weight:900}.modal-actions{display:flex;gap:8px;align-items:center;margin-top:18px}.modal-actions button{padding:12px 18px}
    @media(max-width:860px){.card{grid-template-columns:1fr}.hero{min-height:auto}.row{grid-template-columns:1fr}.panel{padding:30px 22px}.hero{padding:34px 26px}.hero h1{font-size:30px}}

    .remember-id-row{display:flex;align-items:center;gap:8px;width:max-content;margin:10px 0 0;font-size:13px;font-weight:800;color:var(--muted);cursor:pointer;user-select:none}
    .remember-id-row input{width:18px;height:18px;margin:0;accent-color:#5d6dff;cursor:pointer}
    .remember-id-row span{line-height:1}
    .portal-login-page.vrin-dark .remember-id-row{color:#cbd5e1}


/* Phase195: signup company lookup layout */
.signup-company-row .signup-business-search input{min-width:0}
.signup-company-row .signup-business-search button{min-width:72px}
.signup-company-row input[readonly]{background:rgba(148,163,184,.10)}
.portal-login-page.vrin-dark .signup-company-row input[readonly]{background:rgba(148,163,184,.12);color:#cbd5e1}
.portal-login-page.vrin-dark .signup-company-row input[readonly]::placeholder{color:rgba(203,213,225,.72)}

/* Phase196: signup password confirmation validation */
#signupPassword.field-invalid,
#signupPasswordConfirm.field-invalid{
  border-color:#ef4444!important;
  box-shadow:0 0 0 1px rgba(239,68,68,.45), 0 0 0 4px rgba(239,68,68,.10)!important;
}
#signupPassword.field-valid,
#signupPasswordConfirm.field-valid{
  border-color:rgba(34,197,94,.65)!important;
}
.portal-login-page.vrin-dark #signupPassword.field-invalid,
.portal-login-page.vrin-dark #signupPasswordConfirm.field-invalid{
  border-color:#ef4444!important;
  box-shadow:0 0 0 1px rgba(239,68,68,.55), 0 0 0 4px rgba(239,68,68,.14)!important;
}
.portal-login-page.vrin-dark .field-help.error{
  color:#f87171;
  font-weight:800;
}


/* Phase368: portal login public partner review showcase theme sync */
.public-review-showcase{padding:82px 28px 96px;background:var(--bg);border-top:1px solid var(--line)}
.public-review-inner{width:min(1480px,100%);margin:0 auto}
.public-review-head{text-align:center;max-width:860px;margin:0 auto 34px;background:transparent;border:0;box-shadow:none}
.public-review-kicker{display:inline-flex;margin-bottom:12px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.public-review-head h2{margin:0;color:var(--ink);font-size:34px;line-height:1.25;letter-spacing:-1.2px}
.public-review-head p{margin:14px 0 0;color:var(--muted);font-size:16px;line-height:1.7}
.public-review-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.public-review-card{min-width:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;background:#fff;padding:20px;box-shadow:0 14px 34px rgba(17,24,39,.07)}
.public-review-card-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.public-review-avatar{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#111827;color:#fff;font-size:18px;font-weight:950}
.public-review-company{min-width:0}.public-review-company strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.public-review-company span{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.public-review-stars{color:#f59e0b;letter-spacing:1px;font-size:17px;white-space:nowrap}.public-review-score{margin-left:7px;color:var(--ink);font-size:13px;font-weight:900}
.public-review-quote{margin:14px 0 18px;color:var(--ink);font-size:14px;line-height:1.65;font-weight:750;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.public-review-image-slider{position:relative;margin:0 0 16px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#070b12}
.public-review-image-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.public-review-image-button img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#0b1220}
.public-review-image-nav{position:absolute;top:50%;z-index:2;transform:translateY(-50%);display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(15,23,42,.58);color:#fff;font-size:24px;line-height:1;backdrop-filter:blur(8px);cursor:pointer}.public-review-image-nav.prev{left:9px}.public-review-image-nav.next{right:9px}.public-review-image-count{position:absolute;right:9px;bottom:9px;padding:5px 8px;border-radius:999px;background:rgba(15,23,42,.66);color:#fff;font-size:11px;font-weight:900;backdrop-filter:blur(8px)}
.public-review-lightbox{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.88);backdrop-filter:blur(9px)}.public-review-lightbox[hidden]{display:none}.public-review-lightbox-card{position:relative;width:min(1180px,100%);height:min(88vh,900px);display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:#05080d;overflow:hidden}.public-review-lightbox-card img{max-width:100%;max-height:100%;object-fit:contain}.public-review-lightbox-close,.public-review-lightbox-nav{position:absolute;z-index:2;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);background:rgba(15,23,42,.62);color:#fff;backdrop-filter:blur(10px);cursor:pointer}.public-review-lightbox-close{top:16px;right:16px;width:42px;height:42px;border-radius:12px;font-size:22px}.public-review-lightbox-nav{top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:999px;font-size:30px}.public-review-lightbox-nav.prev{left:16px}.public-review-lightbox-nav.next{right:16px}.public-review-lightbox-count{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:7px 11px;border-radius:999px;background:rgba(15,23,42,.68);color:#fff;font-size:12px;font-weight:900}
.public-review-meta{display:grid;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.public-review-meta-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;font-size:12px;line-height:1.45}.public-review-meta-row dt{color:var(--muted);font-weight:800}.public-review-meta-row dd{margin:0;color:var(--ink);word-break:break-word}
.public-review-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:28px auto 0;width:max-content;max-width:100%;padding:0;background:transparent;border:0;box-shadow:none;color:var(--muted);font-size:12px;font-weight:900}
.public-review-page-btn{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:25px;line-height:1;box-shadow:0 8px 20px rgba(17,24,39,.06)}
.public-review-page-btn:disabled{opacity:.35;cursor:not-allowed}

/* Active design theme bridge. The theme boot writes data-ms-theme to body/html. */
body.portal-login-page[data-ms-theme] .public-review-showcase{
  background:var(--ms-bg-gradient)!important;
  color:var(--ms-ink)!important;
  border-top-color:var(--ms-line)!important;
}
body.portal-login-page[data-ms-theme] .public-review-inner,
body.portal-login-page[data-ms-theme] .public-review-head,
body.portal-login-page[data-ms-theme] .public-review-pager{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
body.portal-login-page[data-ms-theme] .public-review-kicker{
  background:var(--ms-chip-bg)!important;
  color:var(--ms-chip-ink)!important;
  border-color:var(--ms-chip-border)!important;
}
body.portal-login-page[data-ms-theme] .public-review-head h2,
body.portal-login-page[data-ms-theme] .public-review-company strong,
body.portal-login-page[data-ms-theme] .public-review-score,
body.portal-login-page[data-ms-theme] .public-review-quote,
body.portal-login-page[data-ms-theme] .public-review-meta-row dd{
  color:var(--ms-ink)!important;
}
body.portal-login-page[data-ms-theme] .public-review-head p,
body.portal-login-page[data-ms-theme] .public-review-company span,
body.portal-login-page[data-ms-theme] .public-review-meta-row dt,
body.portal-login-page[data-ms-theme] .public-review-pager{
  color:var(--ms-muted)!important;
}
body.portal-login-page[data-ms-theme] .public-review-image-slider{border-color:var(--ms-line)!important;background:var(--ms-card-solid)!important}
body.portal-login-page[data-ms-theme] .public-review-card{
  background:var(--ms-card-solid)!important;
  color:var(--ms-ink)!important;
  border-color:var(--ms-line)!important;
  box-shadow:var(--ms-shadow-card)!important;
}
body.portal-login-page[data-ms-theme] .public-review-avatar{
  background:var(--ms-button-primary-bg)!important;
  color:var(--ms-button-primary-ink)!important;
  border:1px solid var(--ms-button-primary-border)!important;
}
body.portal-login-page[data-ms-theme] .public-review-meta{
  border-color:var(--ms-line)!important;
}
body.portal-login-page[data-ms-theme] .public-review-page-btn{
  background:var(--ms-button-secondary-bg)!important;
  color:var(--ms-button-secondary-ink)!important;
  border-color:var(--ms-button-secondary-border)!important;
  box-shadow:var(--ms-shadow-card)!important;
}
body.portal-login-page[data-ms-theme] .public-review-page-btn:not(:disabled):hover{
  background:var(--ms-button-secondary-hover-bg,var(--ms-button-secondary-bg))!important;
}

/* VRIN Dark keeps the showcase visually continuous with the login screen. */
body.portal-login-page[data-ms-theme="vrin"] .public-review-showcase{
  background:
    radial-gradient(circle at 14% 18%,rgba(91,113,255,.16),transparent 34%),
    radial-gradient(circle at 86% 12%,rgba(36,122,102,.14),transparent 30%),
    var(--ms-bg-gradient)!important;
}
body.portal-login-page[data-ms-theme="vrin"] .public-review-card{
  background:color-mix(in srgb,var(--ms-card-solid) 92%,transparent)!important;
  border-color:color-mix(in srgb,var(--ms-line) 88%,transparent)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.28)!important;
}
body.portal-login-page[data-ms-theme="vrin"] .public-review-page-btn{
  box-shadow:0 10px 24px rgba(0,0,0,.22)!important;
}
@media(max-width:1260px){.public-review-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.public-review-showcase{padding:58px 22px 72px}.public-review-head h2{font-size:29px}.public-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.public-review-grid{grid-template-columns:1fr}.public-review-head h2{font-size:25px}.public-review-head p{font-size:14px}}


/* Phase371: shared site footer on the integrated portal login page */
.portal-login-page .portal-login-site-footer{
  margin-top:0;
  border-top:1px solid var(--line);
}
.portal-login-page .portal-login-site-footer .customer-footer-inner{
  width:min(1320px,100%);
  max-width:1320px;
}
.portal-login-page[data-ms-theme] .portal-login-site-footer{
  background:var(--ms-panel-solid)!important;
  color:var(--ms-ink)!important;
  border-top-color:var(--ms-line)!important;
}
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-main{
  color:var(--ms-muted)!important;
}
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-title,
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-contact,
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-related summary{
  color:var(--ms-ink)!important;
}
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-meta{
  color:var(--ms-muted)!important;
}
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-admin-link{
  background:var(--ms-button-secondary-bg)!important;
  color:var(--ms-button-secondary-ink)!important;
  border-color:var(--ms-button-secondary-border)!important;
  box-shadow:var(--ms-shadow-card)!important;
}
.portal-login-page[data-ms-theme] .portal-login-site-footer .customer-footer-related summary{
  background:var(--ms-panel-2)!important;
  border-color:var(--ms-line)!important;
}
.portal-login-page[data-ms-theme="vrin"] .portal-login-site-footer{
  background:#111923!important;
  box-shadow:0 -18px 48px rgba(0,0,0,.18);
}
@media(max-width:820px){
  .portal-login-page .portal-login-site-footer .customer-footer-inner{padding:24px 22px;}
}

/* Phase374: partner logo module must load even while its visible state is unresolved. */
.partner-logo-showcase-host{display:block;width:100%;height:auto;margin:0;padding:0;background:transparent;overflow:hidden;visibility:visible;opacity:1;transition:opacity .18s ease}
.partner-logo-showcase-host.is-collapsed{height:1px;max-height:1px;visibility:hidden;opacity:0;pointer-events:none}
.partner-logo-showcase-host iframe{display:block;width:100%;height:1px;min-height:1px;border:0;background:transparent;overflow:hidden}


/* Phase377: one continuous portal background and a slightly shorter login viewport. */
body.portal-login-page[data-ms-theme]{
  min-height:100%;
  background:var(--ms-bg-gradient)!important;
  background-attachment:fixed!important;
}
body.portal-login-page[data-ms-theme="vrin"]{
  background:
    radial-gradient(circle at 12% 18%,rgba(91,113,255,.18),transparent 36%),
    radial-gradient(circle at 88% 24%,rgba(36,122,102,.16),transparent 34%),
    var(--ms-bg-gradient)!important;
  background-attachment:fixed!important;
}
body.portal-login-page[data-ms-theme] > .wrap{
  min-height:min(90svh,920px)!important;
  padding:24px 28px 22px!important;
  background:transparent!important;
  background-image:none!important;
}
body.portal-login-page[data-ms-theme] > .wrap > .card{
  margin:0 auto;
}
body.portal-login-page[data-ms-theme] .hero{
  min-height:520px!important;
  padding:38px!important;
}
body.portal-login-page[data-ms-theme] .panel{
  padding:38px!important;
}
body.portal-login-page[data-ms-theme] .public-review-showcase,
body.portal-login-page[data-ms-theme] .partner-logo-showcase-host{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}
body.portal-login-page[data-ms-theme] .public-review-showcase{
  border-top:0!important;
}
body.portal-login-page[data-ms-theme="vrin"] .public-review-showcase{
  background:transparent!important;
  background-image:none!important;
}
@media(max-width:860px){
  body.portal-login-page[data-ms-theme] > .wrap{
    min-height:auto!important;
    padding:24px 16px 46px!important;
  }
  body.portal-login-page[data-ms-theme] .hero{
    min-height:auto!important;
    padding:32px 26px!important;
  }
  body.portal-login-page[data-ms-theme] .panel{
    padding:30px 22px!important;
  }
}
@media(max-height:760px) and (min-width:861px){
  body.portal-login-page[data-ms-theme] > .wrap{
    min-height:auto!important;
    padding-top:22px!important;
    padding-bottom:48px!important;
  }
  body.portal-login-page[data-ms-theme] .hero{
    min-height:500px!important;
  }
}


/* Phase378: the public logo iframe must expose the parent page background without starting its own theme surface. */
body.portal-login-page[data-ms-theme] .partner-logo-showcase-host,
body.portal-login-page[data-ms-theme] .partner-logo-showcase-host iframe{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  color-scheme:normal;
}
/* Phase378: reviews and partner logos share the page background; the site footer remains an independent section. */
body.portal-login-page[data-ms-theme] .portal-login-site-footer{
  background:var(--ms-panel-solid)!important;
  background-image:none!important;
  border-top:1px solid var(--ms-line)!important;
  box-shadow:0 -14px 40px rgba(0,0,0,.16)!important;
}
body.portal-login-page[data-ms-theme="vrin"] .portal-login-site-footer{
  background:#111923!important;
  background-image:none!important;
  border-top-color:rgba(148,163,184,.18)!important;
  box-shadow:0 -18px 48px rgba(0,0,0,.22)!important;
}



/* Phase379: inline partner logo wall shares the exact parent-page background. */
.partner-logo-showcase-host{display:block;width:100%;height:auto;max-height:none;margin:0;padding:0;overflow:visible;visibility:visible;opacity:1;background:transparent!important;transition:opacity .18s ease}
.partner-logo-showcase-host.is-collapsed{display:none!important;height:0;max-height:0;visibility:hidden;opacity:0;pointer-events:none}
.partner-logo-showcase-inline{padding:56px 24px 66px;background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}
.partner-logo-showcase-inner{width:min(1320px,100%);margin:0 auto;background:transparent!important}
.partner-logo-showcase-head{max-width:760px;margin:0 auto 38px;padding:0;text-align:center;background:transparent!important;border:0!important;box-shadow:none!important}
.partner-logo-showcase-head h2{margin:0;color:var(--ms-ink,#fff);font-size:30px;line-height:1.25;letter-spacing:-.7px}
.partner-logo-showcase-head p{margin:12px 0 0;color:var(--ms-muted,#9aa7b5);font-size:14px;line-height:1.7}
.partner-logo-showcase-grid{display:grid;grid-template-columns:repeat(var(--partner-logo-desktop-columns,7),minmax(0,1fr));gap:30px 34px;padding:0;background:transparent!important}
.partner-logo-showcase-item{position:relative;display:grid;place-items:center;min-width:0;min-height:92px;padding:8px;border:0;border-radius:0;background:transparent!important;box-shadow:none!important;text-decoration:none;transition:transform .18s ease,opacity .18s ease}
a.partner-logo-showcase-item:hover{transform:translateY(-3px);opacity:.82}
.partner-logo-showcase-item img{display:block;max-width:100%;max-height:var(--partner-logo-height,56px);object-fit:contain;filter:none}
.partner-logo-showcase-item span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
body.portal-login-page[data-ms-theme] .partner-logo-showcase-host,
body.portal-login-page[data-ms-theme] .partner-logo-showcase-inline,
body.portal-login-page[data-ms-theme] .partner-logo-showcase-inner,
body.portal-login-page[data-ms-theme] .partner-logo-showcase-grid{background:transparent!important;background-color:transparent!important;background-image:none!important}
@media(max-width:1050px){.partner-logo-showcase-grid{grid-template-columns:repeat(var(--partner-logo-tablet-columns,4),minmax(0,1fr));gap:24px 28px}}
@media(max-width:620px){.partner-logo-showcase-inline{padding:44px 20px 50px}.partner-logo-showcase-head{margin-bottom:30px}.partner-logo-showcase-head h2{font-size:25px}.partner-logo-showcase-grid{grid-template-columns:repeat(var(--partner-logo-mobile-columns,2),minmax(0,1fr));gap:18px 20px}.partner-logo-showcase-item{min-height:78px;padding:6px}}

/* Phase380: reusable full-width slideshow between public reviews and partner logos. */
.portal-slideshow-host{display:block;width:100%;height:1px;min-height:1px;margin:0;padding:0;overflow:hidden;background:transparent;opacity:0;visibility:hidden;transition:height .22s ease,opacity .18s ease}
.portal-slideshow-host.is-collapsed{height:1px!important;min-height:1px;opacity:0;visibility:hidden;pointer-events:none}
.portal-slideshow-host iframe{display:block;width:100%;height:100%;border:0;background:transparent;overflow:hidden}
.portal-slideshow-host:not(.is-collapsed){opacity:1;visibility:visible;pointer-events:auto}

/* Phase391: reusable process showcase between public reviews and slideshow. */
.process-showcase-host{display:block;width:100%;height:1px;min-height:1px;margin:0;padding:0;overflow:hidden;background:transparent;opacity:0;visibility:hidden;transition:height .24s ease,opacity .18s ease}
.process-showcase-host.is-collapsed{height:1px!important;min-height:1px;opacity:0;visibility:hidden;pointer-events:none}
.process-showcase-host iframe{display:block;width:100%;height:100%;border:0;background:transparent;overflow:hidden}
.process-showcase-host:not(.is-collapsed){opacity:1;visibility:visible;pointer-events:auto}
body.portal-login-page[data-ms-theme] .process-showcase-host,body.portal-login-page[data-ms-theme] .process-showcase-host iframe{background:transparent!important}


/* Phase392: process showcase iframe shares the parent login background; only the module section surface is transparent. */
body.portal-login-page[data-ms-theme] .process-showcase-host,
body.portal-login-page[data-ms-theme] .process-showcase-host iframe{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}


/* Phase393: full-width platform metrics band above public reviews. */
.platform-metrics-host{display:block;width:100%;height:1px;min-height:1px;margin:0;padding:0;overflow:hidden;background:transparent;opacity:0;visibility:hidden;transition:height .22s ease,opacity .18s ease}
.platform-metrics-host.is-collapsed{height:1px!important;min-height:1px;opacity:0;visibility:hidden;pointer-events:none}
.platform-metrics-host iframe{display:block;width:100%;height:100%;border:0;background:transparent;overflow:hidden}
.platform-metrics-host:not(.is-collapsed){opacity:1;visibility:visible;pointer-events:auto}
body.portal-login-page[data-ms-theme] .platform-metrics-host,body.portal-login-page[data-ms-theme] .platform-metrics-host iframe{background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}


/* Phase416.6: insight showcase shares the continuous login-page background. */
.insight-showcase-host{display:block;width:100%;height:1px;min-height:1px;margin:0;padding:0;overflow:hidden;background:transparent;opacity:0;visibility:hidden;transition:height .24s ease,opacity .18s ease}
.insight-showcase-host.is-collapsed{height:1px!important;min-height:1px;opacity:0;visibility:hidden;pointer-events:none}
.insight-showcase-host iframe{display:block;width:100%;height:100%;border:0;background:transparent;overflow:hidden}
.insight-showcase-host:not(.is-collapsed){opacity:1;visibility:visible;pointer-events:auto}
body.portal-login-page[data-ms-theme] .insight-showcase-host,body.portal-login-page[data-ms-theme] .insight-showcase-host iframe{background:transparent!important;background-color:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}

/* Phase427: unified signup email verification */
.signup-email-verification{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.signup-email-verification>label{margin-top:0}
.signup-verification-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:7px}
.signup-verification-meta .field-help{margin-top:0}
.signup-verification-meta strong{color:var(--primary,#6075ff);font-size:12px;white-space:nowrap}
.signup-email-verification.verified{border-color:rgba(16,185,129,.48);background:rgba(16,185,129,.08)}
@media(max-width:560px){.signup-verification-meta{align-items:flex-start;flex-direction:column;gap:4px}}

/* Phase427.1: signup email verification theme bridge and cache-safe surface sync */
body.portal-login-page[data-ms-theme] .signup-email-verification{
  background:var(--ms-modal-section-surface-bg,var(--ms-modal-section-bg,var(--ms-panel-2)))!important;
  color:var(--ms-modal-text,var(--ms-ink))!important;
  border-color:var(--ms-modal-border,var(--ms-line))!important;
  box-shadow:none!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification>label{
  color:var(--ms-modal-text,var(--ms-ink))!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification input{
  background:var(--ms-modal-input-bg,var(--ms-input-bg))!important;
  color:var(--ms-modal-text,var(--ms-ink))!important;
  border-color:var(--ms-modal-input-border,var(--ms-input-border))!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification input::placeholder{
  color:color-mix(in srgb,var(--ms-modal-muted,var(--ms-muted)) 70%,transparent)!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification input:focus{
  border-color:color-mix(in srgb,var(--ms-accent) 72%,var(--ms-modal-input-border,var(--ms-input-border)))!important;
  outline:3px solid color-mix(in srgb,var(--ms-accent) 18%,transparent)!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification input:disabled{
  background:color-mix(in srgb,var(--ms-modal-input-bg,var(--ms-input-bg)) 82%,var(--ms-modal-section-bg,var(--ms-panel-2)) 18%)!important;
  color:var(--ms-modal-muted,var(--ms-muted))!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification button.secondary{
  background:var(--ms-button-secondary-bg,var(--ms-soft))!important;
  color:var(--ms-button-secondary-ink,var(--ms-ink))!important;
  border-color:var(--ms-button-secondary-border,var(--ms-line))!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification button.secondary:not(:disabled):hover{
  background:var(--ms-button-secondary-hover-bg,var(--ms-button-hover-bg,var(--ms-soft)))!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification .field-help{
  margin-top:0;
  padding:0!important;
  background:transparent!important;
  color:var(--ms-modal-muted,var(--ms-muted))!important;
  border:0!important;
  border-radius:0!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification .field-help.error{
  color:var(--ms-danger)!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification .field-help.ok{
  color:var(--ms-success)!important;
}
body.portal-login-page[data-ms-theme] .signup-verification-meta strong{
  color:var(--ms-accent)!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification.verified{
  background:var(--ms-success-bg)!important;
  border-color:var(--ms-badge-success-border,color-mix(in srgb,var(--ms-success) 42%,transparent))!important;
}
body.portal-login-page[data-ms-theme] .signup-email-verification.verified .signup-verification-meta strong{
  color:var(--ms-success)!important;
}

/* Phase428: versioned signup terms, full-text viewer, and theme-safe agreement cards */
.agreement-items{display:grid;gap:8px}
.agreement-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 12px;align-items:start}
.agreement-card>label{min-width:0;cursor:pointer}
.agreement-view-btn{align-self:center;min-height:34px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--soft);color:var(--ink);font-size:12px;font-weight:850;white-space:nowrap;cursor:pointer}
.agreement-view-btn:hover{filter:brightness(.97)}
.agreement-loading{padding:14px;border:1px dashed var(--line);border-radius:12px;background:var(--soft);color:var(--muted);font-size:12px;line-height:1.55;text-align:center}
.agreement-loading.error{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));color:var(--danger)}
.terms-modal-backdrop{z-index:80;background:var(--ms-modal-backdrop-surface,rgba(5,10,20,.72));backdrop-filter:blur(5px)}
.terms-modal-card{width:min(820px,100%);max-height:min(88vh,900px);display:flex;flex-direction:column;overflow:hidden;background:var(--ms-modal-surface-bg,var(--ms-modal-bg,#fff));color:var(--ms-modal-text,var(--ink,#172033));border-color:var(--ms-modal-border,var(--line,#d7dee8))}
.terms-modal-head{flex:0 0 auto;padding:20px 22px 16px;border-bottom:1px solid var(--ms-modal-border,var(--line,#d7dee8));background:var(--ms-modal-header-surface-bg,var(--ms-modal-header-bg,var(--ms-modal-bg,#fff)))}
.terms-modal-head h2{margin-bottom:5px;font-size:23px}
.terms-modal-content{flex:1 1 auto;min-height:0;padding:22px;overflow:auto;color:var(--ms-modal-text,var(--ink,#172033));background:var(--ms-modal-section-surface-bg,var(--ms-modal-section-bg,#fff));font-size:14px;line-height:1.75;overflow-wrap:anywhere}
.terms-modal-content h1,.terms-modal-content h2,.terms-modal-content h3,.terms-modal-content h4,.terms-modal-content h5,.terms-modal-content h6{margin:1.4em 0 .65em;color:inherit;line-height:1.35;letter-spacing:-.3px}
.terms-modal-content h1:first-child,.terms-modal-content h2:first-child,.terms-modal-content h3:first-child{margin-top:0}
.terms-modal-content p{margin:.75em 0}
.terms-modal-content ul,.terms-modal-content ol{padding-left:1.5em}
.terms-modal-content blockquote{margin:14px 0;padding:12px 14px;border-left:3px solid var(--ms-accent,#315bea);background:color-mix(in srgb,var(--ms-modal-section-bg,#fff) 86%,var(--ms-accent,#315bea) 14%);color:inherit}
.terms-modal-content hr{border:0;border-top:1px solid var(--ms-modal-border,var(--line,#d7dee8));margin:20px 0}
.terms-modal-content table{width:100%;margin:14px 0;border-collapse:collapse;table-layout:fixed;background:var(--ms-modal-table-bg,#fff);color:var(--ms-modal-text,var(--ink,#172033))}
.terms-modal-content th,.terms-modal-content td{padding:10px 11px;border:1px solid var(--ms-modal-border,var(--line,#d7dee8));text-align:left;vertical-align:top;word-break:break-word}
.terms-modal-content th{background:var(--ms-modal-table-head-bg,#f4f6f9);color:var(--ms-table-head-ink,var(--ms-modal-text,#111827));font-weight:850}
.terms-modal-content td{background:var(--ms-modal-table-bg,#fff);color:var(--ms-modal-text,var(--ink,#172033))}
.terms-modal-content a{color:var(--ms-accent,#315bea);text-decoration:underline}
.terms-modal-content code,.terms-modal-content pre{background:var(--ms-input-bg,rgba(127,127,127,.12));color:inherit;border:1px solid var(--ms-modal-border,var(--line,#d7dee8));border-radius:8px}
.terms-modal-content code{padding:1px 5px}
.terms-modal-content pre{padding:12px;overflow:auto}
.terms-modal-actions{flex:0 0 auto;display:flex;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--ms-modal-border,var(--line,#d7dee8));background:var(--ms-modal-header-surface-bg,var(--ms-modal-header-bg,var(--ms-modal-bg,#fff)))}
.terms-modal-actions button{min-width:92px}
body.terms-modal-open{overflow:hidden}
body.portal-login-page[data-ms-theme] .agreement-card,
body.portal-login-page[data-ms-theme] .agreement-loading{
  background:var(--ms-modal-section-surface-bg,var(--ms-modal-section-bg,var(--ms-panel-2)))!important;
  color:var(--ms-modal-text,var(--ms-ink))!important;
  border-color:var(--ms-modal-border,var(--ms-line))!important;
}
body.portal-login-page[data-ms-theme] .agreement-card.required{
  background:color-mix(in srgb,var(--ms-warning-bg,rgba(245,158,11,.12)) 42%,var(--ms-modal-section-bg,var(--ms-panel-2)))!important;
  border-color:color-mix(in srgb,var(--ms-warning,#f59e0b) 32%,var(--ms-modal-border,var(--ms-line)))!important;
}
body.portal-login-page[data-ms-theme] .agreement-card label,
body.portal-login-page[data-ms-theme] .agreement-card strong{color:var(--ms-modal-text,var(--ms-ink))!important}
body.portal-login-page[data-ms-theme] .agreement-card .agreement-desc{color:var(--ms-modal-muted,var(--ms-muted))!important}
body.portal-login-page[data-ms-theme] .agreement-card .required-mark{color:var(--ms-accent)!important}
body.portal-login-page[data-ms-theme] .agreement-card .optional-mark{color:var(--ms-modal-muted,var(--ms-muted))!important}
body.portal-login-page[data-ms-theme] .agreement-view-btn{
  background:var(--ms-button-secondary-bg,var(--ms-soft))!important;
  color:var(--ms-button-secondary-ink,var(--ms-ink))!important;
  border-color:var(--ms-button-secondary-border,var(--ms-line))!important;
}
body.portal-login-page[data-ms-theme] .agreement-view-btn:hover{background:var(--ms-button-secondary-hover-bg,var(--ms-button-hover-bg,var(--ms-soft)))!important}
body.portal-login-page[data-ms-theme] .terms-modal-card{background:var(--ms-modal-surface-bg,var(--ms-modal-bg-solid,var(--ms-modal-bg)))!important;color:var(--ms-modal-text,var(--ms-ink))!important;border-color:var(--ms-modal-border,var(--ms-line))!important}
body.portal-login-page[data-ms-theme] .terms-modal-head{background:var(--ms-modal-header-surface-bg,var(--ms-modal-header-bg,var(--ms-modal-bg)))!important;color:var(--ms-modal-text,var(--ms-ink))!important;border-color:var(--ms-modal-border,var(--ms-line))!important}
body.portal-login-page[data-ms-theme] .terms-modal-head h2{color:var(--ms-modal-text,var(--ms-ink))!important}
body.portal-login-page[data-ms-theme] .terms-modal-head .muted{color:var(--ms-modal-muted,var(--ms-muted))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content{background:var(--ms-modal-section-surface-bg,var(--ms-modal-section-bg,var(--ms-card-solid)))!important;color:var(--ms-modal-text,var(--ms-ink))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,span,strong,b,em,i,u,blockquote){color:inherit!important}
body.portal-login-page[data-ms-theme] .terms-modal-content table{background:var(--ms-modal-table-bg,var(--ms-table-bg,var(--ms-card-solid)))!important;color:var(--ms-modal-text,var(--ms-ink))!important;border-color:var(--ms-modal-border,var(--ms-line))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content table th{background:var(--ms-modal-table-head-bg,var(--ms-table-head-bg,var(--ms-panel-2)))!important;color:var(--ms-table-head-ink,var(--ms-modal-text,var(--ms-ink)))!important;border-color:var(--ms-modal-border,var(--ms-table-border,var(--ms-line)))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content table td{background:var(--ms-modal-table-bg,var(--ms-table-row-bg,var(--ms-card-solid)))!important;color:var(--ms-table-cell-ink,var(--ms-modal-text,var(--ms-ink)))!important;border-color:var(--ms-modal-border,var(--ms-table-border,var(--ms-line)))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content a{color:var(--ms-accent-2,var(--ms-accent))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content hr{border-color:var(--ms-modal-border,var(--ms-line))!important}
body.portal-login-page[data-ms-theme] .terms-modal-content blockquote{background:color-mix(in srgb,var(--ms-modal-section-bg,var(--ms-card-solid)) 82%,var(--ms-accent) 18%)!important;border-left-color:var(--ms-accent)!important}
body.portal-login-page[data-ms-theme] .terms-modal-content code,
body.portal-login-page[data-ms-theme] .terms-modal-content pre{background:var(--ms-modal-input-bg,var(--ms-input-bg))!important;color:var(--ms-modal-text,var(--ms-ink))!important;border-color:var(--ms-modal-border,var(--ms-line))!important}
body.portal-login-page[data-ms-theme] .terms-modal-actions{background:var(--ms-modal-header-surface-bg,var(--ms-modal-header-bg,var(--ms-modal-bg)))!important;border-color:var(--ms-modal-border,var(--ms-line))!important}
@media(max-width:620px){
  .agreement-card{grid-template-columns:auto minmax(0,1fr)}
  .agreement-view-btn{grid-column:2;justify-self:start;margin-top:2px}
  .terms-modal-backdrop{padding:10px}
  .terms-modal-card{max-height:94vh;border-radius:14px}
  .terms-modal-head,.terms-modal-content,.terms-modal-actions{padding-left:16px;padding-right:16px}
  .terms-modal-content{font-size:13px}
  .terms-modal-content table{table-layout:auto;display:block;overflow-x:auto}
}
