/* NI_PAGE_MEMBER_CSS_SPLIT_CORE_PACK8: member shell/auth/common form layer. Loaded before member-* modules by ni_frontend_page_css. */

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:1-247 */
/* NI_PAGE_MEMBER_CSS_SPLIT: member/passport hub layer. Loaded by ni_frontend_page_css. */
/* Extracted from pages.css: member center page rules */
/* NI_MEMBER_CENTER_SHELL_CONVERGENCE
 * Member center shell/menu only. Top dashboard and workspace title cards were retired
 * at template source to avoid duplicated page information; action bodies remain inside
 * .ni-member-content-card until each member subpage is safely converged.
 */
html body.ni-page-member{
  background:var(--ni-color-bg, #fdfbf8);
  color:var(--ni-color-text, #5d514b);
}
html body.ni-page-member .ni-member-shell,
html body.ni-page-member .ni-member-auth-shell{
  margin:0 auto 38px;
  box-sizing:border-box;
}

html body.ni-page-member .ni-member-layout{
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
html body.ni-page-member .ni-member-sidebar,
html body.ni-page-member .ni-member-main{
  min-width:0;
  box-sizing:border-box;
}
html body.ni-page-member .ni-member-sidebar-card,
html body.ni-page-member .ni-member-content-card{
  border:1px solid var(--ni-color-line, rgba(219,195,181,.62));
  border-radius:24px;
  background:var(--ni-color-surface, #fffdf9);
  box-shadow:var(--ni-shadow-soft, 0 10px 28px rgba(120,90,80,.10));
  box-sizing:border-box;
}
html body.ni-page-member .ni-member-sidebar-card{
  position:sticky;
  top:14px;
  overflow:hidden;
  padding:12px;
}
html body.ni-page-member .ni-member-content-card{
  overflow:hidden;
  padding:18px;
}
html body.ni-page-member .ni-member-menu{
  display:block;
}
html body.ni-page-member .ni-member-menu__head{
  padding:8px 8px 12px;
  border-bottom:1px solid rgba(219,195,181,.48);
}
html body.ni-page-member .ni-member-menu__head span{
  display:block;
  margin-bottom:3px;
  color:var(--ni-color-muted, #8a766f);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
html body.ni-page-member .ni-member-menu__head strong{
  display:block;
  color:var(--ni-color-heading, #4e372f);
  font-family:var(--ni-font-serif, "Noto Serif TC", "PMingLiU", serif);
  font-size:18px;
  letter-spacing:.05em;
}
html body.ni-page-member .ni-member-menu__list{
  display:grid;
  gap:6px;
  padding:12px 0 4px;
}
html body.ni-page-member .ni-member-menu__link[data-ni-member-nav-tier="secondary"]{
  margin-top:8px;
  border-top-color:rgba(219,195,181,.36);
}
html body.ni-page-member .ni-member-menu__link[data-ni-member-nav-tier="secondary"]::before{
  content:"";
  flex:0 0 auto;
  align-self:stretch;
  width:1px;
  min-height:22px;
  margin-right:2px;
  background:linear-gradient(180deg,transparent,rgba(155,100,99,.28),transparent);
}
html body.ni-page-member .ni-member-menu__link[aria-current="page"]{
  border-color:transparent;
  background:var(--ni-color-accent-bg, rgba(155,100,99,.075));
  color:var(--ni-color-accent, #9b6463);
  box-shadow:none;
}
html body.ni-page-member .ni-member-menu__link,
html body.ni-page-member .ni-member-menu__logout{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:38px;
  padding:8px 10px;
  border:1px solid transparent;
  border-radius:16px;
  color:var(--ni-color-text, #5d514b);
  text-decoration:none;
  box-sizing:border-box;
  transition:background .18s ease, border-color .18s ease, transform .18s ease, color .18s ease;
}
html body.ni-page-member .ni-member-menu__link:hover,
html body.ni-page-member .ni-member-menu__logout:hover,
html body.ni-page-member .ni-member-menu__link:focus,
html body.ni-page-member .ni-member-menu__logout:focus{
  border-color:transparent;
  background:var(--ni-color-accent-bg-hover, rgba(155,100,99,.06));
  color:var(--ni-color-accent, #9b6463);
  transform:none;
  outline:none;
}
html body.ni-page-member .ni-member-menu__link.is-active,
html body.ni-page-member .ni-member-menu__link.curs,
html body.ni-page-member .ni-member-menu__link[class*="curs"]{
  border-color:transparent;
  background:var(--ni-color-accent-bg, rgba(155,100,99,.075));
  color:var(--ni-color-accent, #9b6463);
  box-shadow:none;
}
html body.ni-page-member .ni-member-menu__icon{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:rgba(255,255,255,.74);
  overflow:hidden;
}
html body.ni-page-member .ni-member-menu__icon img{
  display:block;
  width:16px;
  height:16px;
  object-fit:contain;
}
/* NI_MEMBER_MENU_LOGOUT_CANONICAL
 * Desktop keeps the full side menu. Mobile menu layout is owned by member-rwd.css.
 * Desktop logout shows the door/arrow SVG plus text; mobile layout remains owned by member-rwd.css.
 */
html body.ni-page-member .ni-member-menu__list > .ni-member-menu__logout{
  justify-self:stretch;
  align-self:center;
  justify-content:flex-start;
  width:100%;
  min-width:0;
  max-width:none;
  height:auto;
  min-height:38px;
  max-height:none;
  margin:8px 0 0;
  padding:8px 10px;
  gap:10px;
  border:1px solid transparent;
  border-radius:16px;
  background:transparent;
  background-image:none;
  box-shadow:none;
  color:#6a4b43;
  text-decoration:none;
  transform:none;
}
html body.ni-page-member .ni-member-menu__list > .ni-member-menu__logout:hover,
html body.ni-page-member .ni-member-menu__list > .ni-member-menu__logout:focus{
  border:0;
  background:transparent;
  background-image:none;
  box-shadow:none;
  color:#9b6463;
  transform:none;
  outline:none;
}
html body.ni-page-member .ni-member-menu__logout-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:25px;
  height:25px;
  color:currentColor;
}
html body.ni-page-member .ni-member-menu__logout-icon svg{
  display:block;
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.85;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html body.ni-page-member .ni-member-menu__logout .ni-member-menu__icon{
  display:none;
}
html body.ni-page-member .ni-member-menu__logout-label{
  position:static;
  width:auto;
  height:auto;
  padding:0;
  margin:0;
  overflow:visible;
  clip:auto;
  white-space:nowrap;
  border:0;
  color:inherit;
  font-size:13px;
  font-weight:700;
}
html body.ni-page-member .ni-member-content-card > h5,
html body.ni-page-member .ni-member-content-card h5{
  margin:0 0 14px;
  padding:0 0 10px;
  border-bottom:1px solid rgba(219,195,181,.52);
  background:transparent;
  color:var(--ni-color-heading, #4e372f);
  font-family:var(--ni-font-serif, "Noto Serif TC", "PMingLiU", serif);
  font-size:20px;
  line-height:1.35;
}
html body.ni-page-member .ni-member-content-card h5 span{
  color:inherit;
}
html body.ni-page-member .ni-member-content-card .blank,
html body.ni-page-member .ni-member-content-card .blank5{
  height:10px;
  line-height:10px;
  overflow:hidden;
}
html body.ni-page-member .ni-member-auth-shell .usBox{
  margin:0;
  padding:0 0 20px;
}
html body.ni-page-member .ni-member-auth-shell .usBox_1,
html body.ni-page-member .ni-member-auth-shell .usBox_2,
html body.ni-page-member .ni-member-auth-shell .usBox_3{
  border:1px solid var(--ni-color-line, rgba(219,195,181,.62));
  border-radius:24px;
  background:var(--ni-color-surface, #fffdf9);
  box-shadow:var(--ni-shadow-soft, 0 10px 28px rgba(120,90,80,.10));
}

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:863-1025 */
/* NI_MEMBER_FORM_CONTROL_CONVERGENCE_PACK2
 * Canonical member form controls only. Scope is limited to existing
 * .ni-member-form / .ni-member-field / .ni-passport-form surfaces.
 * Do not alter user.php routing, field names, validation hooks, payment,
 * EZShip, checkout, or order state logic. Legacy selectors remain as fallback.
 */
html body.ni-page-member .ni-member-form,
html body.ni-page-member .ni-passport-form{
  --ni-member-control-height:42px;
  --ni-member-control-radius:14px;
  --ni-member-control-border:rgba(219,195,181,.64);
  --ni-member-control-focus:rgba(215,160,157,.74);
  --ni-member-control-bg:#fff;
  --ni-member-control-bg-soft:#fffaf6;
  --ni-member-control-shadow:0 0 0 3px rgba(215,160,157,.15);
}
html body.ni-page-member .ni-member-field input[type="email"],
html body.ni-page-member .ni-member-field input[type="tel"],
html body.ni-page-member .ni-member-field input[type="number"],
html body.ni-page-member .ni-member-field input[type="url"],
html body.ni-page-member .ni-member-field input[type="search"],
html body.ni-page-member .ni-member-field input[type="date"],
html body.ni-page-member .ni-member-field input[type="time"],
html body.ni-page-member .ni-member-field input[type="datetime-local"]{
  width:100%;
  min-height:var(--ni-member-control-height);
  margin:0;
  padding:0 12px;
  border:1px solid var(--ni-member-control-border);
  border-radius:var(--ni-member-control-radius);
  background:var(--ni-member-control-bg);
  color:var(--ni-color-text, #5d514b);
  font-size:13px;
  line-height:var(--ni-member-control-height);
  box-sizing:border-box;
  outline:none;
  box-shadow:none;
}
html body.ni-page-member .ni-member-field input[type="email"]:focus,
html body.ni-page-member .ni-member-field input[type="tel"]:focus,
html body.ni-page-member .ni-member-field input[type="number"]:focus,
html body.ni-page-member .ni-member-field input[type="url"]:focus,
html body.ni-page-member .ni-member-field input[type="search"]:focus,
html body.ni-page-member .ni-member-field input[type="date"]:focus,
html body.ni-page-member .ni-member-field input[type="time"]:focus,
html body.ni-page-member .ni-member-field input[type="datetime-local"]:focus{
  border-color:var(--ni-member-control-focus);
  box-shadow:var(--ni-member-control-shadow);
}
html body.ni-page-member .ni-member-field input[readonly],
html body.ni-page-member .ni-member-field textarea[readonly],
html body.ni-page-member .ni-member-field select[disabled],
html body.ni-page-member .ni-member-field input[disabled],
html body.ni-page-member .ni-member-control[readonly],
html body.ni-page-member .ni-member-control[disabled],
html body.ni-page-member .ni-passport-control[readonly],
html body.ni-page-member .ni-passport-control[disabled]{
  background:var(--ni-member-control-bg-soft);
  color:#9b8178;
  cursor:not-allowed;
}
html body.ni-page-member .ni-member-field input::placeholder,
html body.ni-page-member .ni-member-field textarea::placeholder,
html body.ni-page-member .ni-passport-control::placeholder,
html body.ni-page-member .ni-passport-field textarea::placeholder{
  color:#b29c92;
}
html body.ni-page-member .ni-member-field__hint,
html body.ni-page-member .ni-member-form-hint,
html body.ni-page-member .ni-passport-field__hint{
  margin:0;
  color:var(--ni-color-muted, #8a766f);
  font-size:12px;
  line-height:1.65;
}
html body.ni-page-member .ni-member-field__error,
html body.ni-page-member .ni-member-form-error,
html body.ni-page-member .ni-passport-field__error{
  margin:0;
  color:#9b6463;
  font-size:12px;
  font-weight:800;
  line-height:1.65;
}
html body.ni-page-member .ni-member-field.is-error,
html body.ni-page-member .ni-member-field[aria-invalid="true"]{
  border-color:rgba(184,95,98,.58);
  background:#fff6f4;
}
html body.ni-page-member .ni-member-field.is-error input,
html body.ni-page-member .ni-member-field.is-error select,
html body.ni-page-member .ni-member-field.is-error textarea,
html body.ni-page-member .ni-member-field[aria-invalid="true"] input,
html body.ni-page-member .ni-member-field[aria-invalid="true"] select,
html body.ni-page-member .ni-member-field[aria-invalid="true"] textarea{
  border-color:rgba(184,95,98,.68);
}
html body.ni-page-member .ni-member-check-list{
  display:grid;
  gap:8px;
}
html body.ni-page-member .ni-member-check,
html body.ni-page-member .ni-member-field label.ni-member-check{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-height:28px;
  color:#7b625a;
  font-size:13px;
  line-height:1.65;
}
html body.ni-page-member .ni-member-check input[type="checkbox"],
html body.ni-page-member .ni-member-check input[type="radio"],
html body.ni-page-member .ni-member-field input[type="checkbox"],
html body.ni-page-member .ni-member-field input[type="radio"]{
  accent-color:#c7656c;
}
html body.ni-page-member .ni-member-form-actions--between{
  justify-content:space-between;
  align-items:center;
}
html body.ni-page-member .ni-member-form-actions__note{
  margin:0;
  color:var(--ni-color-muted, #8a766f);
  font-size:12px;
  line-height:1.65;
}
html body.ni-page-member .ni-member-submit[disabled],
html body.ni-page-member .ni-passport-submit[disabled]{
  opacity:.58;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
html body.ni-page-member .ni-passport-field input[type="email"],
html body.ni-page-member .ni-passport-field input[type="tel"],
html body.ni-page-member .ni-passport-field input[type="number"],
html body.ni-page-member .ni-passport-field input[type="url"],
html body.ni-page-member .ni-passport-field input[type="search"]{
  width:100%;
  min-height:40px;
  max-width:none;
  border:1px solid rgba(219,195,181,.70);
  border-radius:16px;
  background:rgba(255,255,255,.82);
  color:#5d4d45;
  font-size:14px;
  line-height:1.45;
  padding:9px 12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.80);
  box-sizing:border-box;
  outline:none;
}
html body.ni-page-member .ni-passport-field input[type="email"]:focus,
html body.ni-page-member .ni-passport-field input[type="tel"]:focus,
html body.ni-page-member .ni-passport-field input[type="number"]:focus,
html body.ni-page-member .ni-passport-field input[type="url"]:focus,
html body.ni-page-member .ni-passport-field input[type="search"]:focus{
  border-color:rgba(215,160,157,.78);
  background:#fff;
  box-shadow:0 0 0 4px rgba(215,160,157,.14);
}

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:3332-3654 */
/* Member Passport Auth / Password Recovery Inner Forms convergence */
html body.ni-page-member .ni-passport{
  display:block;
  width:100%;
  margin:0 0 28px;
}

html body.ni-page-member .ni-passport-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:16px;
  align-items:stretch;
}

html body.ni-page-member .ni-passport-card{
  position:relative;
  overflow:hidden;
  display:grid;
  gap:18px;
  min-width:0;
  border:1px solid rgba(219,195,181,.62);
  border-radius:26px;
  background:
    radial-gradient(circle at right top, rgba(215,160,157,.12), transparent 35%),
    linear-gradient(180deg, #fffdf9 0%, #fffaf5 100%);
  box-shadow:0 12px 30px rgba(120,90,80,.10);
  padding:24px;
  box-sizing:border-box;
}

html body.ni-page-member .ni-passport-card::after{
  content:"";
  position:absolute;
  right:-58px;
  bottom:-74px;
  width:142px;
  height:142px;
  border-radius:999px;
  border:1px solid rgba(215,160,157,.18);
  background:rgba(255,255,255,.34);
  pointer-events:none;
}

html body.ni-page-member .ni-passport-card--register,
html body.ni-page-member .ni-passport-card--password,
html body.ni-page-member .ni-passport-card--notice{
  width:min(100%,720px);
  margin:0 auto;
}

html body.ni-page-member .ni-passport-card__head{
  position:relative;
  z-index:1;
  justify-items:start;
  text-align:left;
  width:100%;
}

html body.ni-page-member .ni-passport-card__kicker{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  width:100%;
  justify-self:start;
  text-align:left;
}

html body.ni-page-member .ni-passport-card__kicker::before{
  content:"";
  width:22px;
  height:1px;
}

html body.ni-page-member .ni-passport-card__head h2{
  margin:0;
  width:100%;
  text-align:left;
  color:var(--ni-color-heading, #4e372f);
  font-family:var(--ni-font-serif, "Noto Serif TC", "PMingLiU", serif);
  font-size:24px;
  line-height:1.3;
  letter-spacing:.04em;
}

html body.ni-page-member .ni-passport-card__head p,
html body.ni-page-member .ni-passport-intro,
html body.ni-page-member .ni-passport-card--notice p{
  margin:0;
  width:100%;
  text-align:left;
  color:#8a766f;
  font-size:14px;
  line-height:1.8;
}

html body.ni-page-member .ni-passport-intro{
  position:relative;
  z-index:1;
  display:grid;
  gap:8px;
}

html body.ni-page-member .ni-passport-intro__body{
  display:grid;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin:0 auto;
  text-align:left;
}

html body.ni-page-member .ni-passport-intro__body > strong,
html body.ni-page-member .ni-passport-intro__body > p{
  margin:0;
  width:100%;
  text-align:left;
}

html body.ni-page-member .ni-passport-intro strong{
  color:#5d4d45;
}

html body.ni-page-member .ni-passport-intro ol{
  margin:0;
  padding-left:1.35em;
}

html body.ni-page-member .ni-passport-intro__benefits{
  display:grid;
  gap:0;
  width:100%;
  max-width:100%;
  margin:0;
  text-align:left;
}

html body.ni-page-member .ni-passport-intro__benefits p{
  margin:0;
}

html body.ni-page-member .ni-passport-intro__benefits ol{
  margin:0;
  padding-left:0;
  list-style-position:inside;
}

html body.ni-page-member .ni-passport-form{
  position:relative;
  z-index:1;
  display:grid;
  gap:14px;
}

html body.ni-page-member .ni-passport-field{
  display:grid;
  grid-template-columns:128px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-width:0;
}

html body.ni-page-member .ni-passport-field--static{
  align-items:start;
}

html body.ni-page-member .ni-passport-field label{
  color:#6f5e55;
  font-size:13px;
  font-weight:800;
  line-height:1.45;
  text-align:right;
}

html body.ni-page-member .ni-passport-field--static strong{
  display:block;
  min-width:0;
  border:1px solid rgba(219,195,181,.52);
  border-radius:16px;
  background:rgba(255,255,255,.62);
  color:#5d4d45;
  font-size:14px;
  line-height:1.65;
  padding:11px 13px;
  word-break:break-word;
  box-sizing:border-box;
}

html body.ni-page-member .ni-passport-control,
html body.ni-page-member .ni-passport-field select,
html body.ni-page-member .ni-passport-field textarea{
  width:100%;
  min-height:40px;
  max-width:none;
  border:1px solid rgba(219,195,181,.70);
  border-radius:16px;
  background:rgba(255,255,255,.82);
  color:#5d4d45;
  font-size:14px;
  line-height:1.45;
  padding:9px 12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.80);
  box-sizing:border-box;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

html body.ni-page-member .ni-passport-control:focus,
html body.ni-page-member .ni-passport-field select:focus,
html body.ni-page-member .ni-passport-field textarea:focus{
  border-color:rgba(215,160,157,.78);
  background:#fff;
  box-shadow:0 0 0 4px rgba(215,160,157,.14);
}

html body.ni-page-member .ni-passport-control.is-filled{
  border-color:rgba(181,143,111,.48);
}

html body.ni-page-member .ni-passport-notice{
  min-width:18px;
  color:#c7656c;
  font-size:12px;
  line-height:1.4;
  font-weight:800;
}

html body.ni-page-member .ni-passport-captcha{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}

html body.ni-page-member .ni-passport-captcha__image{
  display:block;
  max-width:120px;
  min-height:36px;
  border:1px solid rgba(219,195,181,.58);
  border-radius:12px;
  background:#fff;
  object-fit:contain;
  cursor:pointer;
}

html body.ni-page-member .ni-passport-check{
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:#7f6d63;
  font-size:13px;
  line-height:1.65;
}

html body.ni-page-member .ni-passport-check input{
  flex:0 0 auto;
  margin-top:.35em;
}

html body.ni-page-member .ni-passport-check a,
html body.ni-page-member .ni-passport-link{
  color:#9a635b;
  font-weight:800;
  text-decoration:none;
}

html body.ni-page-member .ni-passport-check a:hover,
html body.ni-page-member .ni-passport-link:hover,
html body.ni-page-member .ni-passport-check a:focus,
html body.ni-page-member .ni-passport-link:focus{
  color:#c7656c;
  text-decoration:underline;
}

html body.ni-page-member .ni-passport-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:2px;
}

html body.ni-page-member .ni-passport-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  border-radius:999px;
  padding:0 18px;
  border:1px solid rgba(215,160,157,.44);
  color:#8d5452;
  background:#fff7f3;
  font-family:var(--ni-font-button, var(--ni-font-body));
  font-size:14px;
  font-weight:var(--ni-button-font-weight, 700);
  letter-spacing:var(--ni-button-letter-spacing, .03em);
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(120,90,80,.08);
  box-sizing:border-box;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}

html body.ni-page-member .ni-passport-submit--primary{
  border-color:rgba(199,101,108,.28);
  color:#fff;
  background:linear-gradient(135deg, #d7a09d 0%, #c7656c 100%);
}

html body.ni-page-member .ni-passport-submit:hover,
html body.ni-page-member .ni-passport-submit:focus{
  transform:translateY(-1px);
  box-shadow:0 14px 26px rgba(120,90,80,.12);
  outline:none;
}

html body.ni-page-member .ni-passport-submit--primary:hover,
html body.ni-page-member .ni-passport-submit--primary:focus{
  color:#fff;
  background:linear-gradient(135deg, #dfa8a5 0%, #cf7077 100%);
}

html body.ni-page-member .ni-passport-submit.is-action-pending{
  opacity:.72;
  pointer-events:none;
}

html body.ni-page-member .ni-passport-recaptcha,
html body.ni-page-member #v2box{
  margin:4px 0 0;
}

html body.ni-page-member .ni-recap-alert{
  margin:10px 0;
  padding:10px 14px;
  border:1px solid rgba(224,170,97,.36);
  border-radius:14px;
  background:#fff7d6;
  color:#6b5700;
  font-size:14px;
  line-height:1.55;
}

html body.ni-page-member .ni-passport-intensity{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  min-width:0;
}

html body.ni-page-member .ni-passport-intensity span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  border-bottom:2px solid #dadada;
  border-radius:12px 12px 10px 10px;
  background:rgba(255,255,255,.62);
  color:#8a766f;
  font-size:12px;
  font-weight:800;
}

html body.ni-page-member .ni-passport-hidden-question{
  display:none;
}

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:3655-3729 */
/* NI_MEMBER_CATALOG_NOTICE_FINAL_POLISH
 * Retired catalog payment-block notice convergence.
 * Keeps user.php action routing untouched and leaves order payment flow in order_detail.
 */
html body.ni-page-member .ni-member-catalog-notice{
  display:grid;
  gap:18px;
  max-width:720px;
  margin:0 auto;
}
html body.ni-page-member .ni-member-catalog-notice__head{
  margin-bottom:0;
}
html body.ni-page-member .ni-member-catalog-notice__card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:16px;
  align-items:start;
  padding:24px;
  border:1px solid rgba(219,195,181,.56);
  border-radius:28px;
  background:
    radial-gradient(circle at right top, rgba(215,160,157,.12), transparent 34%),
    #fffdf9;
  box-shadow:0 16px 42px rgba(114,86,72,.08);
  box-sizing:border-box;
}
html body.ni-page-member .ni-member-catalog-notice__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border:1px solid rgba(201,143,145,.42);
  border-radius:999px;
  background:#fff7f3;
  color:#9b6463;
  font-size:18px;
  font-weight:900;
  line-height:1;
  box-shadow:0 10px 24px rgba(201,143,145,.12);
}
html body.ni-page-member .ni-member-catalog-notice__body{
  display:grid;
  gap:8px;
  min-width:0;
}
html body.ni-page-member .ni-member-catalog-notice__body h3{
  margin:0;
  color:var(--ni-color-heading, #4e372f);
  font-family:var(--ni-font-serif, "Noto Serif TC", "PMingLiU", serif);
  font-size:20px;
  line-height:1.45;
  letter-spacing:.04em;
}
html body.ni-page-member .ni-member-catalog-notice__body p{
  margin:0;
  color:#7f6b63;
  font-size:14px;
  line-height:1.85;
  letter-spacing:.02em;
}
html body.ni-page-member .ni-member-catalog-notice__actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
}
html body.ni-page-member .ni-member-catalog-notice__back{
  min-width:180px;
  text-decoration:none;
}

/* Extracted from responsive.css: member responsive rules */

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:3730-3857 */
/* NI_MEMBER_CENTER_SHELL_RESPONSIVE
 * Pack 7 canonical shell RWD: desktop left navigation, mobile horizontal capsule rail.
 * The former collapsed menu-toggle state is retired; subpage buttons were removed from templates.
 */
@media (max-width: 960px){
  html body.ni-page-member .ni-member-layout{
    grid-template-columns:210px minmax(0,1fr);
    gap:12px;
  }
}
@media (max-width: 700px){
  html body.ni-page-member .ni-member-shell,
  html body.ni-page-member .ni-member-auth-shell{
    width:calc(100% - var(--ni-page-shell-edge-mobile, 16px));
    margin-bottom:24px;
  }

  html body.ni-page-member .ni-member-layout{
    display:block;
  }
  html body.ni-page-member .ni-member-sidebar{
    margin:0 0 10px;
  }
  html body.ni-page-member .ni-member-sidebar-card{
    position:relative;
    top:auto;
    max-height:none;
    overflow:visible;
    padding:0;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  html body.ni-page-member .ni-member-menu__head{
    display:none;
  }
  
  html body.ni-page-member .ni-member-content-card{
    padding:14px;
    border-radius:22px;
  }
  html body.ni-page-member .ni-member-content-card table{
    display:block;
    overflow-x:auto;
    max-width:100%;
  }
  html body.ni-page-member .ni-member-auth-shell .usBox_1,
  html body.ni-page-member .ni-member-auth-shell .usBox_2,
  html body.ni-page-member .ni-member-auth-shell .usBox_3{
    float:none;
    width:100%;
    box-sizing:border-box;
    margin:0 0 12px;
  }
}

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:4603-4668 */
/* NI_MEMBER_CATALOG_NOTICE_FINAL_POLISH_RWD */
@media (max-width:700px){
  html body.ni-page-member .ni-member-catalog-notice{
    gap:14px;
  }
  html body.ni-page-member .ni-member-catalog-notice__card{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    padding:20px 16px;
    border-radius:24px;
  }
  html body.ni-page-member .ni-member-catalog-notice__actions{
    display:grid;
    grid-template-columns:1fr;
  }
  html body.ni-page-member .ni-member-catalog-notice__back{
    width:100%;
    min-width:0;
  }
}
@media (max-width:374px){
  html body.ni-page-member .ni-member-catalog-notice__body h3{
    font-size:18px;
  }
}

/* Member order journey layer retained for order list/detail cards. */
html body.ni-page-member .ni-member-order-card__journey{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin:12px 0 0;
  padding:10px;
  border-radius:18px;
  background:rgba(253,248,244,.82);
  border:1px solid rgba(225,207,195,.72);
}
html body.ni-page-member .ni-member-order-card__journey span{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:6px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#897970;
  font-size:12px;
  line-height:1.35;
  text-align:center;
  font-weight:700;
}
html body.ni-page-member .ni-member-order-card__journey span.is-done{
  background:#f2dce2;
  color:#9d5f70;
}

@media (max-width:700px){
  html body.ni-page-member .ni-member-order-card__journey{
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:8px;
  }
}

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:5894-6242 */
/* NI_MEMBER_VISUAL_RECONVERGENCE_PACK1
 * Shell stabilization only: 960px frame, compact subpage hero, full-width content
 * components. No new ni-user-* mainline. No page frames >960px.
 */
html body.ni-page-member{
  overflow-x:clip;
}
html body.ni-page-member .ni-member-layout{
  width:100%;
  max-width:var(--ni-container, 960px);
}
html body.ni-page-member .ni-member-main,
html body.ni-page-member .ni-member-content-card{
  width:100%;
  max-width:none;
  min-width:0;
}

html body.ni-page-member.ni-member-page--subpage .ni-member-content-card > [data-ni-member-component]{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}
@media (max-width: 700px){
  html body.ni-page-member .ni-member-shell,
  html body.ni-page-member .ni-member-auth-shell{
    width:calc(100% - var(--ni-page-shell-edge-mobile, 16px));
  }
  html body.ni-page-member .ni-member-layout,
  html body.ni-page-member .ni-member-content-card{
    overflow-x:clip;
    -webkit-overflow-scrolling:auto;
  }
  html body.ni-page-member .ni-member-content-card table{
    display:block;
    overflow-x:auto;
    max-width:100%;
  }
}
@media (min-width: 701px){
  html body.ni-page-member .ni-member-layout{
    grid-template-columns:230px minmax(0,1fr);
  }
}

html body.ni-page-member .ni-member-sidebar-card{
  position:sticky;
  top:12px;
}
@media (max-width: 700px){
  html body.ni-page-member .ni-member-sidebar{
    margin:0 0 10px;
  }
  html body.ni-page-member .ni-member-sidebar-card{
    position:relative;
    top:auto;
    max-height:none;
    overflow:visible;
    padding:0;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  html body.ni-page-member .ni-member-menu__head{
    display:none;
  }
  html body.ni-page-member:not(.is-member-menu-open) .ni-member-sidebar-card,
  html body.ni-page-member.is-member-menu-open .ni-member-sidebar-card{
    max-height:none;
  }

}
/* NI_MEMBER_VISUAL_RECONVERGENCE_PACK3
 * Form pages width / field refit: profile, address, wallet apply, message compose.
 * Full-width cards, desktop 2-col grids, mobile 1-col, unified controls + action bars.
 */
html body.ni-page-member [data-ni-member-form-page],
html body.ni-page-member [data-ni-member-form-contract="message-compose"]{
  width:100%;
  max-width:none;
  min-width:0;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-form-contract],
html body.ni-page-member [data-ni-member-message-form],
html body.ni-page-member .ni-member-account-form{
  width:100%;
  max-width:none;
}
html body.ni-page-member [data-ni-member-card="profile-basic"],
html body.ni-page-member [data-ni-member-card="password-security"],
html body.ni-page-member [data-ni-member-card="address-card"],
html body.ni-page-member [data-ni-member-card="message-compose"],
html body.ni-page-member .ni-member-wallet-card--account-form{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-field-grid="profile-basic"],
html body.ni-page-member [data-ni-member-field-grid="address-card"],
html body.ni-page-member [data-ni-member-field-grid="message-compose"],
html body.ni-page-member [data-ni-member-form-contract="account-withdraw"] .ni-member-account-grid,
html body.ni-page-member [data-ni-member-form-contract="account-deposit"] .ni-member-account-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
  width:100%;
}
html body.ni-page-member [data-ni-member-form-contract="account-withdraw"] .ni-member-account-field--note,
html body.ni-page-member [data-ni-member-form-contract="account-deposit"] .ni-member-account-field--note,
html body.ni-page-member .ni-member-field--wide{
  grid-column:1 / -1;
}
html body.ni-page-member [data-ni-member-form-contract] .ni-member-control,
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field input[type="text"],
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field input[type="password"],
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field input[type="email"],
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field input[type="tel"],
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field input[type="file"],
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field select,
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field textarea{
  width:100%;
  min-height:42px;
  box-sizing:border-box;
}
html body.ni-page-member .ni-member-control--textarea,
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field textarea{
  min-height:118px;
  line-height:1.75;
  padding:11px 12px;
}
html body.ni-page-member .ni-member-control--file,
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field input[type="file"]{
  min-height:42px;
  padding:8px 12px;
  line-height:1.4;
  background:#fff;
}
html body.ni-page-member [data-ni-member-form-contract] .ni-member-field--radio legend.ni-member-field__label{
  margin-bottom:0;
}
html body.ni-page-member [data-ni-member-form-actions],
html body.ni-page-member .ni-member-form-actions[data-ni-member-form-actions]{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  width:100%;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(219,195,181,.36);
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-form-contract="message-compose"] .ni-member-message-type{
  margin-bottom:4px;
}
@media (max-width: 700px){
  html body.ni-page-member [data-ni-member-field-grid="profile-basic"],
  html body.ni-page-member [data-ni-member-field-grid="address-card"],
  html body.ni-page-member [data-ni-member-field-grid="message-compose"],
  html body.ni-page-member [data-ni-member-form-contract="account-withdraw"] .ni-member-account-grid,
  html body.ni-page-member [data-ni-member-form-contract="account-deposit"] .ni-member-account-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  html body.ni-page-member [data-ni-member-form-actions],
  html body.ni-page-member .ni-member-form-actions[data-ni-member-form-actions]{
    justify-content:stretch;
  }
  html body.ni-page-member [data-ni-member-form-actions] .ni-member-submit,
  html body.ni-page-member .ni-member-form-actions[data-ni-member-form-actions] .ni-member-submit{
    width:100%;
  }
}

/* NI_MEMBER_CSS_SPLIT_PACK8_SOURCE_RANGE: page-member.css:6577-7165 */
/* NI_MEMBER_VISUAL_RECONVERGENCE_PACK7
 * Auth passport + mini libraries (member zone / order query) width refit.
 * 960px auth shell, full-width passport forms, library widgets aligned.
 * No userLogin/register/submitPwd/orderQuery logic changes.
 */
html body.ni-page-member-auth [data-ni-member-auth-shell],
html body.ni-page-member-auth .ni-member-auth-shell{
  box-sizing:border-box;
}
html body.ni-page-member-auth [data-ni-member-auth-page],
html body.ni-page-member-auth .ni-passport{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
html body.ni-page-member-auth .ni-passport-grid,
html body.ni-page-member-auth [data-ni-passport-form],
html body.ni-page-member-auth .ni-passport-card{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
html body.ni-page-member-auth .ni-passport-grid--login{
  grid-template-columns:minmax(0,1fr) minmax(260px,0.44fr);
  gap:16px;
}
html body.ni-page-member-auth .ni-passport-card--register,
html body.ni-page-member-auth .ni-passport-card--password,
html body.ni-page-member-auth .ni-passport-card--notice{
  width:100%;
  max-width:min(100%,720px);
  margin-left:auto;
  margin-right:auto;
}
html body.ni-page-member-auth [data-ni-passport-form] .ni-passport-control,
html body.ni-page-member-auth [data-ni-passport-form] .ni-passport-field select,
html body.ni-page-member-auth [data-ni-passport-form] .ni-passport-field textarea{
  width:100%;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-library-page],
html body.ni-page-member-auth [data-ni-member-library-page]{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-library-page="order-query"] .ni-order-query-form,
html body.ni-page-member-auth [data-ni-member-library-page="order-query"] .ni-order-query-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
  width:100%;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-library-page="order-query"] .ni-order-query-control,
html body.ni-page-member-auth [data-ni-member-library-page="order-query"] .ni-order-query-control{
  width:100%;
  min-height:40px;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-library-part="member-info"],
html body.ni-page-member-auth [data-ni-member-library-part="member-info"]{
  width:100%;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-library-part="order-query-result"],
html body.ni-page-member-auth [data-ni-member-library-part="order-query-result"]{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
@media (max-width: 700px){
  html body.ni-page-member-auth .ni-passport-grid--login{
    grid-template-columns:1fr;
  }
  html body.ni-page-member-auth .ni-passport-card{
    padding:18px;
    border-radius:24px;
  }
  html body.ni-page-member [data-ni-member-library-page="order-query"] .ni-order-query-form,
  html body.ni-page-member-auth [data-ni-member-library-page="order-query"] .ni-order-query-form{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  html body.ni-page-member [data-ni-member-library-page="order-query"] .ni-order-query-button,
  html body.ni-page-member-auth [data-ni-member-library-page="order-query"] .ni-order-query-button{
    width:100%;
  }
}

/* NI_MEMBER_VISUAL_RECONVERGENCE_PACK8
 * Full matrix regression stabilization: Pack1-7 content surfaces full-width in 960px shell.
 * No new business selectors; confirms reconvergence contract after per-act hook matrix.
 */
html body.ni-page-member .ni-member-content-card > [data-ni-member-section],
html body.ni-page-member .ni-member-content-card > [data-ni-member-orders],
html body.ni-page-member .ni-member-content-card > [data-ni-member-track],
html body.ni-page-member .ni-member-content-card > [data-ni-member-message],
html body.ni-page-member .ni-member-content-card > [data-ni-member-wallet],
html body.ni-page-member .ni-member-content-card > [data-ni-member-collection],
html body.ni-page-member .ni-member-content-card > [data-ni-member-points],
html body.ni-page-member .ni-member-content-card > [data-ni-member-affiliate-tool],
html body.ni-page-member .ni-member-content-card > [data-ni-member-order-detail-shell]{
  width:100%;
  max-width:none;
  min-width:0;
  box-sizing:border-box;
}
html body.ni-page-member .ni-member-subpage,
html body.ni-page-member .ni-member-wallet,
html body.ni-page-member .ni-member-profile,
html body.ni-page-member .ni-member-address{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
html body.ni-page-member [data-ni-member-empty-state]{
  width:100%;
  max-width:none;
}

/* Member auth form convergence: retired duplicated Account hero; keep passport cards only. */
html body.ni-page-member-auth .ni-passport-card{
  border-color:rgba(219,195,181,.48);
  border-radius:28px;
  background:
    radial-gradient(circle at right top, rgba(215,160,157,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(255,250,245,.92) 100%);
  box-shadow:0 14px 38px rgba(120,90,80,.075);
}
html body.ni-page-member-auth .ni-passport-card::after{
  opacity:.30;
}
html body.ni-page-member-auth .ni-passport-card--password,
html body.ni-page-member-auth .ni-passport-card--register,
html body.ni-page-member-auth .ni-passport-card--notice{
  max-width:min(100%,760px);
}
html body.ni-page-member-auth .ni-passport-card--password .ni-passport-form,
html body.ni-page-member-auth .ni-passport-card--register .ni-passport-form{
  width:min(100%,620px);
  margin:0 auto;
}
html body.ni-page-member-auth .ni-passport-card--register-intro{
  justify-items:center;
  align-content:start;
  text-align:center;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-card__head{
  justify-items:start;
  justify-self:stretch;
  width:100%;
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-card__kicker,
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-card__head h2{
  justify-self:start;
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro{
  justify-items:center;
  text-align:left;
  width:min(100%,300px);
  margin:0 auto;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__body{
  justify-self:center;
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__body > strong,
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__body > p{
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__benefits{
  width:100%;
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__benefits p,
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__benefits li{
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-intro__benefits ol{
  width:100%;
  margin:0;
  padding-left:0;
  list-style:decimal;
  list-style-position:inside;
}
html body.ni-page-member-auth .ni-passport-card--register-intro .ni-passport-submit{
  width:min(100%,280px);
  justify-self:center;
  margin:0 auto;
}

/* NI_PASSPORT_HEAD_ALIGN: 登入/註冊標題 canonical 置左，覆蓋歷史置中殘留。 */
html body.ni-page-member-auth .ni-passport-card--login,
html body.ni-page-member-auth .ni-passport-card--register,
html body.ni-page-member-auth .ni-passport-card--password,
html body.ni-page-member-auth .ni-passport-card--notice{
  justify-items:stretch;
  align-content:start;
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card__head,
html body.ni-page-member-auth .ni-passport-card__kicker,
html body.ni-page-member-auth .ni-passport-card__head h2,
html body.ni-page-member-auth .ni-passport-card__head p{
  justify-items:start;
  justify-self:start;
  text-align:left;
}
html body.ni-page-member-auth .ni-passport-card__kicker{
  display:flex;
  justify-content:flex-start;
  width:100%;
}
html body.ni-page-member-auth .ni-passport-card__head h2,
html body.ni-page-member-auth .ni-passport-card__head p{
  width:100%;
}
@media (min-width:701px){
  html body.ni-page-member-auth [data-ni-passport-action="login"] .ni-passport-card--login .ni-passport-form{
    justify-items:center;
  }
  html body.ni-page-member-auth [data-ni-passport-action="login"] .ni-passport-field:not(.ni-passport-field--captcha){
    width:min(100%,444px);
    grid-template-columns:112px minmax(0,320px);
    justify-content:center;
  }
  html body.ni-page-member-auth [data-ni-passport-action="login"] #passport_login_username,
  html body.ni-page-member-auth [data-ni-passport-action="login"] #passport_login_password{
    width:320px;
    max-width:100%;
  }
  html body.ni-page-member-auth [data-ni-passport-action="login"] .ni-passport-actions{
    justify-content:center;
  }
}

/* Auth register agreement checkbox canonical: centered native square */
html body.ni-page-member-auth .ni-passport-check--agreement{
  justify-content:center;
  align-items:center;
  width:100%;
  margin:8px auto 0;
  padding:0;
  text-align:center;
}
html body.ni-page-member-auth .ni-passport-check--agreement input[name="agreement"]{
  -webkit-appearance:checkbox;
  appearance:auto;
  display:inline-block;
  flex:0 0 13px;
  width:13px;
  height:13px;
  min-width:13px;
  min-height:13px;
  margin:0;
  padding:0;
  border-radius:0;
  background:initial;
  box-shadow:none;
  accent-color:#9b6463;
  cursor:pointer;
}
html body.ni-page-member-auth .ni-passport-check--agreement input[name="agreement"]::after{
  content:none;
  display:none;
}
html body.ni-page-member-auth .ni-passport-check--agreement input[name="agreement"]:focus-visible{
  outline:2px solid rgba(155,100,99,.34);
  outline-offset:3px;
}
html body.ni-page-member-auth .ni-passport-check--agreement span{
  color:#7f6d63;
}
html body.ni-page-member-auth .ni-passport-check--agreement .agreement-link{
  color:#9b6463;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
html body.ni-page-member-auth .ni-passport-check--agreement .agreement-link:hover,
html body.ni-page-member-auth .ni-passport-check--agreement .agreement-link:focus{
  color:#9b6463;
}

html body.ni-page-member-auth .ni-passport-check[for="remember"]{
  justify-content:center;
  align-items:center;
  width:100%;
  margin:0 auto;
  padding:6px 0 2px;
  text-align:center;
}
html body.ni-page-member-auth .ni-passport-check[for="remember"] input[type="checkbox"]{
  -webkit-appearance:checkbox;
  appearance:auto;
  display:inline-block;
  flex:0 0 14px;
  width:14px;
  height:14px;
  min-width:14px;
  min-height:14px;
  margin:0;
  padding:0;
  border-radius:0;
  background:initial;
  box-shadow:none;
  accent-color:#c7656c;
  cursor:pointer;
}
html body.ni-page-member-auth .ni-passport-check[for="remember"] input[type="checkbox"]::after{
  content:none;
  display:none;
}
html body.ni-page-member-auth .ni-passport-check[for="remember"] input[type="checkbox"]:focus-visible{
  outline:2px solid rgba(215,160,157,.38);
  outline-offset:3px;
}
html body.ni-page-member-auth .ni-passport-check[for="remember"] input[type="checkbox"] + span{
  color:#7f6d63;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
}
@media (max-width:700px){
  html body.ni-page-member-auth .ni-passport-card--password .ni-passport-form,
  html body.ni-page-member-auth .ni-passport-card--register .ni-passport-form{
    width:100%;
  }
  html body.ni-page-member-auth .ni-passport-check[for="remember"]{
    justify-content:center;
  }
}

/* Member register structure polish: grouped single-column account/contact/submit flow. */
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-card--register{
  width:min(100%,760px);
  max-width:min(100%,760px);
  padding:30px clamp(22px,4vw,42px) 34px;
  gap:22px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-card__head{
  width:100%;
  margin:0;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-card__head p{
  max-width:none;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register{
  width:min(100%,540px);
  max-width:540px;
  margin:0 auto;
  gap:22px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section{
  position:relative;
  z-index:1;
  display:grid;
  gap:12px;
  min-width:0;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section + .ni-passport-section{
  padding-top:18px;
  border-top:1px solid rgba(219,195,181,.34);
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section__head{
  display:grid;
  gap:4px;
  min-width:0;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section__head span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#9a635b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section__head span::before{
  content:"";
  width:18px;
  height:1px;
  background:rgba(155,100,99,.58);
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section__head small{
  display:block;
  color:#9a857c;
  font-size:12px;
  line-height:1.7;
  letter-spacing:.03em;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section__fields{
  display:grid;
  gap:13px;
  min-width:0;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:7px;
  align-items:start;
  min-width:0;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > label{
  grid-column:1 / -1;
  display:block;
  color:#6f5e55;
  font-size:13px;
  font-weight:900;
  line-height:1.55;
  text-align:left;
  letter-spacing:.03em;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > .ni-passport-control,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > input.inputBg,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > select,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > textarea{
  grid-column:1 / -1;
  width:100%;
  min-height:42px;
  border-radius:17px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-notice{
  grid-column:1 / -1;
  align-self:start;
  justify-self:stretch;
  min-width:0;
  color:#9b6463;
  font-size:13px;
  line-height:1.45;
  white-space:normal;
  word-break:break-word;
  text-align:left;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--intensity .ni-passport-intensity,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--captcha .ni-passport-captcha{
  grid-column:1 / -1;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--intensity{
  margin-top:-4px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--intensity > label{
  color:#9a857c;
  font-size:12px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-intensity{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-intensity span{
  min-height:26px;
  border:1px solid rgba(219,195,181,.44);
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:#9a857c;
  font-size:12px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section--submit{
  justify-items:center;
  text-align:center;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section--submit .ni-passport-field--captcha{
  width:min(100%,420px);
  text-align:left;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section--submit .ni-passport-actions{
  justify-content:center;
  margin-top:2px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-check--agreement{
  margin:0 auto;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-check--agreement input[name="agreement"]{
  -webkit-appearance:checkbox;
  appearance:auto;
  border-radius:0;
  background:initial;
  box-shadow:none;
  accent-color:#9b6463;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-check--agreement .agreement-link{
  color:#9b6463;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-check--agreement .agreement-link:hover,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-check--agreement .agreement-link:focus{
  color:#9b6463;
}
@media (max-width:700px){
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-card--register{
    width:100%;
    padding:22px 16px 26px;
    border-radius:24px;
  }
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register,
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-card__head{
    width:100%;
    max-width:none;
  }
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field{
    grid-template-columns:minmax(0,1fr) auto;
  }
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section + .ni-passport-section{
    padding-top:16px;
  }
}

/* Member register input width + custom notice label convergence.
 * Keeps register() / input names / ids untouched; only normalizes visual width and label text rendering.
 */
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register{
  width:min(100%,560px);
  max-width:560px;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field{
  grid-template-columns:minmax(0,360px);
  justify-content:center;
  justify-items:stretch;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > label{
  grid-column:1 / -1;
  width:360px;
  max-width:100%;
  justify-self:center;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > label.ni-passport-label--single-line{
  white-space:nowrap;
  letter-spacing:.01em;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > .ni-passport-control,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > input.inputBg,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > select,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > textarea{
  grid-column:1 / -1;
  width:360px;
  max-width:100%;
  justify-self:center;
  box-sizing:border-box;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-notice{
  grid-column:1 / -1;
  width:360px;
  max-width:100%;
  justify-self:center;
  align-self:start;
  min-width:0;
  line-height:1.45;
  white-space:normal;
  word-break:break-word;
  text-align:left;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--intensity .ni-passport-intensity,
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--captcha .ni-passport-captcha{
  grid-column:1 / -1;
  width:360px;
  max-width:100%;
  justify-self:center;
  box-sizing:border-box;
}
html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-section--submit .ni-passport-field--captcha{
  width:100%;
}
@media (max-width:700px){
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field{
    width:min(100%,385px);
    grid-template-columns:minmax(0,1fr);
    justify-content:center;
    justify-items:stretch;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }

  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > label,
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > label.ni-passport-label--single-line{
    grid-column:1 / -1;
    width:100%;
    max-width:none;
    justify-self:stretch;
    box-sizing:border-box;
  }

  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > .ni-passport-control,
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > input.inputBg,
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > select,
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-field > textarea{
    grid-column:1 / -1;
    width:100%;
    max-width:none;
    justify-self:stretch;
    box-sizing:border-box;
  }

  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-form--register .ni-passport-notice{
    grid-column:1 / -1;
    width:100%;
    max-width:none;
    justify-self:stretch;
    align-self:start;
    line-height:1.45;
    white-space:normal;
    word-break:break-word;
  }

  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--intensity .ni-passport-intensity,
  html body.ni-page-member-auth [data-ni-passport-action="register"] .ni-passport-field--captcha .ni-passport-captcha{
    grid-column:1 / -1;
    width:100%;
    max-width:none;
    justify-self:stretch;
    box-sizing:border-box;
  }
}

/* NI_MEMBER_MESSAGE_UPLOAD_DROPZONE_CONVERGENCE
 * Canonical owner for the member message attachment picker.
 * Replaces the old native file input surface with one accessible dropzone card,
 * while preserving the original message_img field name and ECShop upload flow.
 */
html body.ni-page-member [data-ni-upload-zone].ni-member-upload{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:18px;
  border:1px solid rgba(219,195,181,.52);
  border-radius:24px;
  background:linear-gradient(180deg,#fffdf9 0%,#fffaf6 100%);
  box-shadow:0 16px 34px rgba(105,78,61,.06);
}
html body.ni-page-member .ni-member-upload__head{
  display:flex;
  align-items:center;
  gap:12px;
}
html body.ni-page-member .ni-member-upload__intro{
  margin:0;
  color:#8a766f;
  font-size:13px;
  line-height:1.7;
}
html body.ni-page-member [data-ni-upload-zone] .ni-member-upload__input,
html body.ni-page-member [data-ni-member-form-contract] [data-ni-upload-zone] input[type="file"].ni-member-upload__input,
html body.ni-page-member .ni-member-field input[type="file"].ni-member-upload__input{
  position:absolute;
  left:18px;
  top:64px;
  width:1px;
  height:1px;
  min-height:0;
  padding:0;
  border:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  appearance:none;
}
html body.ni-page-member .ni-member-upload__dropzone{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:156px;
  padding:24px 18px;
  border:1.5px dashed rgba(219,195,181,.9);
  border-radius:22px;
  background:linear-gradient(180deg,#fdfbf8 0%,#fffdf9 100%);
  color:#5d514b;
  text-align:center;
  cursor:pointer;
  box-sizing:border-box;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
html body.ni-page-member .ni-member-upload__dropzone:hover,
html body.ni-page-member .ni-member-upload__dropzone:focus{
  border-color:rgba(155,100,99,.52);
  background:#fbf4ee;
  box-shadow:0 14px 32px rgba(155,100,99,.12);
  outline:none;
  transform:translateY(-1px);
}
html body.ni-page-member [data-ni-upload-zone].is-dragging .ni-member-upload__dropzone{
  border-color:rgba(155,100,99,.72);
  background:#fff1f0;
  box-shadow:0 16px 36px rgba(155,100,99,.16);
}
html body.ni-page-member .ni-member-upload__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
  background-image:none;
  color:#9b6463;
  font-size:40px;
  font-weight:300;
  line-height:1;
  box-shadow:none;
}
html body.ni-page-member .ni-member-upload__title{
  color:#5d514b;
  font-size:15px;
  font-weight:900;
  letter-spacing:.02em;
}
html body.ni-page-member .ni-member-upload__text{
  color:#8a766f;
  font-size:13px;
  line-height:1.55;
}
html body.ni-page-member .ni-member-upload__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  margin-top:4px;
  padding:0 18px;
  border:1px solid rgba(155,100,99,.34);
  border-radius:999px;
  background:#fff4f3;
  color:#a45e65;
  font-size:13px;
  font-weight:900;
  line-height:1;
}
html body.ni-page-member .ni-member-upload__selected{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:72px;
  padding:10px 12px;
  border:1px solid rgba(219,195,181,.5);
  border-radius:18px;
  background:#fff;
}
html body.ni-page-member .ni-member-upload__selected[hidden]{
  display:none;
}
html body.ni-page-member .ni-member-upload__preview{
  display:flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  border:1px solid rgba(219,195,181,.5);
  border-radius:16px;
  background:#fbf4ee;
  color:#9a776b;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  overflow:hidden;
}
html body.ni-page-member .ni-member-upload__preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
html body.ni-page-member .ni-member-upload__meta{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
html body.ni-page-member .ni-member-upload__meta strong{
  color:#5d514b;
  font-size:14px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
html body.ni-page-member .ni-member-upload__meta span{
  color:#8a766f;
  font-size:12px;
  line-height:1.45;
}
html body.ni-page-member .ni-member-upload__meta span[data-ni-upload-detail]:empty{
  display:none;
}
html body.ni-page-member .ni-member-upload__remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 14px;
  border:1px solid rgba(219,195,181,.78);
  border-radius:999px;
  background:#fffdf9;
  color:#7b625a;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
html body.ni-page-member .ni-member-upload__remove:hover,
html body.ni-page-member .ni-member-upload__remove:focus{
  border-color:rgba(155,100,99,.38);
  color:#a45e65;
  background:#fff4f3;
  outline:none;
}
html body.ni-page-member .ni-member-upload__status{
  margin:0;
  color:#8a766f;
  font-size:12px;
  line-height:1.65;
}
html body.ni-page-member [data-ni-upload-zone].has-upload-error{
  border-color:rgba(207,74,92,.55);
  box-shadow:0 16px 34px rgba(207,74,92,.10);
}
html body.ni-page-member [data-ni-upload-zone].has-upload-error .ni-member-upload__status{
  color:#b44e5a;
  font-weight:800;
}
@media (max-width:700px){
  html body.ni-page-member [data-ni-upload-zone].ni-member-upload{
    padding:14px;
    border-radius:20px;
  }
  html body.ni-page-member .ni-member-upload__dropzone{
    min-height:140px;
    padding:20px 14px;
    border-radius:18px;
  }
  html body.ni-page-member .ni-member-upload__title{
    font-size:14px;
  }
  html body.ni-page-member .ni-member-upload__selected{
    grid-template-columns:48px minmax(0,1fr);
  }
  html body.ni-page-member .ni-member-upload__preview{
    width:48px;
    height:48px;
    border-radius:14px;
  }
  html body.ni-page-member .ni-member-upload__remove{
    grid-column:1 / -1;
    width:100%;
  }
}

/* NI_PASSPORT_SUBMIT_PAINT_GUARD
 * style.css 全域 button { background } 會把登入頁 CTA 洗成白底；
 * passport 按鈕底色只在此 guard 收斂，不另加 legacy-bridge 覆寫。
 */
html body.ni-page-member .ni-passport-submit,
html body.ni-page-member-auth .ni-passport-submit{
  border:1px solid rgba(215,160,157,.44);
  color:#8d5452;
  background:#fff7f3;
  background-image:none;
}
html body.ni-page-member .ni-passport-submit--primary,
html body.ni-page-member-auth .ni-passport-submit--primary{
  border-color:rgba(199,101,108,.28);
  color:#fff;
  background:linear-gradient(135deg, #d7a09d 0%, #c7656c 100%);
  background-color:#c7656c;
  background-image:linear-gradient(135deg, #d7a09d 0%, #c7656c 100%);
}
html body.ni-page-member .ni-passport-submit--primary:hover,
html body.ni-page-member .ni-passport-submit--primary:focus,
html body.ni-page-member-auth .ni-passport-submit--primary:hover,
html body.ni-page-member-auth .ni-passport-submit--primary:focus{
  color:#fff;
  background:linear-gradient(135deg, #dfa8a5 0%, #cf7077 100%);
  background-color:#cf7077;
  background-image:linear-gradient(135deg, #dfa8a5 0%, #cf7077 100%);
}

/* Shared flash notice for member/passport pages. */
html body.ni-page-member .ni-member-flash,
html body .ni-member-auth-shell .ni-member-flash {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(207, 113, 123, .22);
  border-radius: 18px;
  background: rgba(255, 247, 244, .92);
  color: #4e372f;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
  box-shadow: 0 12px 28px rgba(78, 55, 47, .06);
}

html body.ni-page-member .ni-member-flash--success,
html body .ni-member-auth-shell .ni-member-flash--success {
  border-color: rgba(142, 166, 128, .26);
  background: rgba(249, 252, 245, .92);
}

html body.ni-page-member .ni-member-flash--warning,
html body.ni-page-member .ni-member-flash--error,
html body .ni-member-auth-shell .ni-member-flash--warning,
html body .ni-member-auth-shell .ni-member-flash--error {
  color: #bf626d;
}
