/* Reference: shadcn new-york-v4 Card/Input/Button and login-01/login-03.
   Vanilla CSS + existing Vue/Element Plus. Everything is access-scoped. */
.access-portal,.access-login{
  --access-bg:#fafafa;--access-panel:#fff;--access-ink:#202124;
  --access-muted:#65686f;--access-line:#e4e4e7;--access-focus:#71717a;
  --access-action:#26374a;--access-accent:#44617f;--access-tint:#eef2f7;
  color:var(--access-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--access-bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;
  min-height:100vh;min-height:100svh;display:flex;flex-direction:column;
}
.access-portal *, .access-login *{box-sizing:border-box;}
.access-portal{margin:0;}
.access-login[data-line="xzs"]{--access-action:#28473f;--access-accent:#417365;--access-tint:#edf4f1;}
.access-mast{flex:none;width:100%;border-bottom:1px solid var(--access-line);background:var(--access-panel);}
.access-mast-inner{height:76px;max-width:1120px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.access-wordmark{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--access-ink);text-decoration:none;letter-spacing:.1px;}
.access-wordmark svg{width:23px;height:23px;}
.access-return{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:14px;color:var(--access-muted);text-decoration:none;}
.access-return svg{width:16px;height:16px;}
.access-return:hover{color:var(--access-ink);}
.access-return:focus-visible,.access-wordmark:focus-visible{outline:3px solid #d4d4d8;outline-offset:5px;border-radius:4px;}
.access-portal-main{width:100%;max-width:1120px;margin:0 auto;padding:80px 32px 100px;flex:1;display:flex;flex-direction:column;justify-content:center;}
.access-portal-heading{margin:0 0 36px;font-size:34px;line-height:1.3;font-weight:600;letter-spacing:-.8px;}
.access-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.access-entry{--entry-accent:#555d6b;--entry-tint:#f0f1f3;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:28px;background:var(--access-panel);border:1px solid var(--access-line);border-radius:12px;color:var(--access-ink);text-decoration:none;box-shadow:0 1px 2px #00000004;transition:border-color .16s,box-shadow .16s;}
.access-entry[data-line="city"]{--entry-accent:#44617f;--entry-tint:#eef2f7;}
.access-entry[data-line="xzs"]{--entry-accent:#417365;--entry-tint:#edf4f1;}
.access-entry-icon{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;color:var(--entry-accent);background:var(--entry-tint);}
.access-entry-icon svg{width:26px;height:26px;}
.access-entry h2{margin:24px 0 10px;font-size:23px;line-height:1.4;font-weight:600;letter-spacing:-.3px;}
.access-entry p{margin:0;color:var(--access-muted);font-size:15px;line-height:1.8;min-height:54px;}
.access-entry-bottom{width:100%;margin-top:24px;padding-top:18px;border-top:1px solid #ededee;display:flex;justify-content:space-between;align-items:center;color:var(--entry-accent);font-size:14px;font-weight:500;}
.access-entry-bottom svg{width:18px;height:18px;transition:transform .16s;}
.access-entry:hover{border-color:#bfc1c7;box-shadow:0 4px 14px #18181b06;}
.access-entry:hover .access-entry-bottom svg{transform:translateX(3px);}
.access-entry:focus-visible{outline:3px solid #d4d4d8;outline-offset:4px;border-color:var(--entry-accent);}
.access-login-main{flex:1;display:flex;align-items:center;justify-content:center;width:100%;padding:56px 24px 72px;}
.access-login-stack{width:100%;max-width:420px;}
.access-login-card{width:100%;padding:32px;background:var(--access-panel);border:1px solid var(--access-line);border-radius:12px;box-shadow:0 1px 3px #18181b05;}
.access-login-identity{display:flex;align-items:center;gap:16px;}
.access-login-icon{display:grid;place-items:center;flex:none;width:48px;height:48px;background:var(--access-tint);color:var(--access-accent);border-radius:10px;}
.access-login-icon svg{width:28px;height:28px;}
.access-login h1{margin:0;font-size:29px;font-weight:600;line-height:1.4;letter-spacing:-.5px;color:var(--access-ink);}
.access-login-description{margin:5px 0 0;color:var(--access-muted);font-size:14px;line-height:1.6;}
.access-login-form{border-top:1px solid var(--access-line);margin-top:28px;padding-top:26px;display:flex;flex-direction:column;gap:22px;}
.access-login-field{min-width:0;display:flex;flex-direction:column;gap:9px;}
.access-login-field label{font-size:14px;font-weight:500;line-height:1.5;color:var(--access-ink);}
.access-login .el-input{width:100%;font-size:15px;--el-input-text-color:var(--access-ink);--el-input-placeholder-color:#9a9ca3;--el-input-border-color:var(--access-line);}
.access-login .el-input__wrapper{height:46px;padding:1px 13px;border-radius:7px;background:#fff;box-shadow:0 0 0 1px #dcdde1 inset,0 1px 2px #00000003;transition:box-shadow .16s;}
.access-login .el-input__wrapper:hover{box-shadow:0 0 0 1px #b6b8c0 inset;}
.access-login .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--access-accent) inset,0 0 0 3px #71717a1c!important;}
.access-login .el-input__inner{height:44px;font-size:15px;}
.access-login .el-input__suffix{color:#777b84;}
.access-login .access-login-submit{width:100%;height:46px;margin:4px 0 0;font-size:15px;font-weight:500;border-radius:7px;--el-button-bg-color:var(--access-action);--el-button-border-color:var(--access-action);--el-button-hover-bg-color:var(--access-action);--el-button-hover-border-color:var(--access-action);--el-button-active-bg-color:var(--access-action);--el-button-active-border-color:var(--access-action);--el-button-text-color:#fff;--el-button-disabled-bg-color:var(--access-action);--el-button-disabled-border-color:var(--access-action);}
.access-login .access-login-submit:hover{filter:brightness(1.14);}
.access-login .access-login-submit:focus-visible{outline:3px solid #bfc5cd;outline-offset:3px;}
.access-login-note{text-align:center;color:var(--access-muted);font-size:13px;line-height:1.7;margin:22px 0 0;}
@media(max-width:800px){
 .access-portal-main{padding-top:54px;padding-bottom:64px;}
 .access-entry-grid{grid-template-columns:1fr;gap:14px;}
 .access-entry{display:grid;grid-template-columns:46px 1fr;column-gap:20px;padding:24px;}
 .access-entry-icon{grid-row:1/3;align-self:start;}
 .access-entry h2{margin:0 0 7px;font-size:21px;}
 .access-entry p{min-height:0;}
 .access-entry-bottom{grid-column:1/-1;margin-top:20px;padding-top:15px;}
}
@media(max-width:480px){
 .access-mast-inner{height:64px;padding:0 22px;}
 .access-wordmark{font-size:15px;gap:8px;}
 .access-return{font-size:13px;gap:5px;}
 .access-portal-main{padding:42px 22px 48px;}
 .access-portal-heading{font-size:26px;letter-spacing:-.5px;margin-bottom:26px;}
 .access-entry{padding:22px;column-gap:16px;}
 .access-entry p{font-size:14px;}
 .access-login-main{padding:40px 20px 56px;}
 .access-login-card{padding:26px 24px;}
 .access-login-identity{gap:14px;}
 .access-login h1{font-size:26px;}
 .access-login-description{font-size:13px;}
 .access-login .el-input__inner{font-size:16px;}
 .access-login-form{margin-top:26px;padding-top:24px;}
}
@media(prefers-reduced-motion:reduce){.access-portal *,.access-login *{transition:none!important;}}
