/* 東道協 · 前台「登錄 / 註冊」浮層（純靜態、零外鏈；掛在各正式頁與進入頁） */
.lm{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.lm[hidden]{display:none !important}
.lm [hidden]{display:none !important}
.lm__backdrop{position:absolute;inset:0;background:rgba(18,20,24,.44)}
.lm__dialog{
  position:relative;width:min(420px,100%);max-height:calc(100vh - 40px);overflow:auto;
  background:#FFFFFF;border:1px solid rgba(26,26,26,.08);border-radius:16px;
  box-shadow:0 28px 64px -24px rgba(0,0,0,.42);padding:clamp(22px,3.2vw,32px);
  font-family:var(--sans,-apple-system,"PingFang TC","Microsoft JhengHei",system-ui,sans-serif);
  color:var(--ink-1,#2E2E2E);
}
.lm__close{
  position:absolute;top:10px;right:12px;width:32px;height:32px;border:0;border-radius:50%;
  background:transparent;color:#8A8A8A;font-size:16px;line-height:1;cursor:pointer;transition:background .18s ease,color .18s ease;
}
.lm__close:hover{background:rgba(26,26,26,.06);color:#2E2E2E}
/* 完整 Logo（八卦 + 絛帶）：置於標題區上方，取用站內既有原圖，等比縮放不變形 */
.lm__dialog{--lm-logo:clamp(112px,30vw,134px)}
.lm__logo{display:flex;flex-direction:column;align-items:center;gap:5px;margin:0 0 16px}
.lm__logo[hidden]{display:none !important}
.lm__emblem{display:block;width:calc(var(--lm-logo) * .7928);height:auto;aspect-ratio:1 / 1;object-fit:contain}
.lm__ribbon{display:block;width:var(--lm-logo);height:auto;aspect-ratio:473 / 66;object-fit:contain}
.lm__logo ~ .lm__title,.lm__logo ~ .lm__sub{text-align:center}
.lm__title{margin:0;font-family:var(--serif,Georgia,serif);font-size:19px;letter-spacing:.12em;color:var(--ink-1,#2E2E2E)}
.lm__sub{margin:6px 0 18px;font-size:11.5px;letter-spacing:.12em;color:var(--ink-3,#6B6B6B)}
.lm__form{display:grid;gap:12px}
.lm__field{display:grid;gap:6px}
.lm__field > span{font-size:12.5px;letter-spacing:.06em;color:var(--ink-2,#4A4A4A)}
.lm__input{
  width:100%;padding:10px 12px;border:1px solid rgba(26,26,26,.18);border-radius:8px;background:#fff;
  font-family:var(--serif,Georgia,serif);font-size:14px;color:var(--ink-1,#2E2E2E);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.lm__input:focus{outline:none;border-color:var(--blue,#003DA5);box-shadow:0 0 0 3px rgba(0,61,165,.10)}
.lm__btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  padding:10px 18px;border:1px solid var(--blue,#003DA5);border-radius:999px;background:var(--blue,#003DA5);color:#fff;
  font-family:inherit;font-size:13.5px;letter-spacing:.1em;cursor:pointer;text-decoration:none;
  transition:background .2s ease,border-color .2s ease,opacity .2s ease;
}
.lm__btn:hover{background:#002F80;border-color:#002F80}
.lm__btn[disabled]{background:#E7E7E3;border-color:#DDDDD8;color:#9A9A94;cursor:not-allowed}
.lm__btn--ghost{background:transparent;color:var(--blue,#003DA5)}
.lm__btn--ghost:hover{background:rgba(0,61,165,.06)}
.lm__switch{margin:16px 0 0;font-size:12px;letter-spacing:.04em;color:var(--ink-3,#6B6B6B);text-align:center}
.lm__switch a{color:var(--blue,#003DA5);text-decoration:none;margin-left:6px}
.lm__switch a:hover{text-decoration:underline}
.lm__msg{margin:0;padding:9px 12px;border-radius:8px;font-size:12.5px;line-height:1.6}
.lm__msg[data-tone="err"]{background:rgba(218,41,28,.07);border:1px solid rgba(218,41,28,.22);color:#A61E14}
.lm__msg[data-tone="ok"]{background:rgba(0,61,165,.06);border:1px solid rgba(0,61,165,.18);color:#003DA5}
.lm__note{margin:10px 0 0;font-size:11px;line-height:1.7;letter-spacing:.02em;color:var(--ink-3,#6B6B6B)}
.lm__who{margin:0 0 4px;font-family:var(--serif,Georgia,serif);font-size:15px;letter-spacing:.06em;color:var(--ink-1,#2E2E2E)}
.lm__actions{display:grid;gap:10px;margin-top:16px}
.lm__account{padding-top:4px}
.lm__toast{
  position:fixed;left:50%;bottom:26px;transform:translate(-50%,12px);opacity:0;pointer-events:none;z-index:210;
  padding:10px 18px;border-radius:999px;background:rgba(26,26,26,.9);color:#fff;
  font-family:var(--sans,system-ui,sans-serif);font-size:12.5px;letter-spacing:.05em;
  transition:opacity .2s ease,transform .2s ease;
}
.lm__toast.is-on{opacity:1;transform:translate(-50%,0)}
@media (max-width:480px){
  .lm{padding:12px}
  .lm__dialog{padding:20px;border-radius:14px}
}
