/* 整屏共享主视觉，认证表单悬浮其上，长表单在可达区域内滚动。 */
/* 秦韵智传正式统一身份登录界面。无演示按钮、无本地鉴权。 */
:root { font-family: -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif; font-synthesis:none; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
* {box-sizing:border-box;}
html,body,#app {margin:0; min-width:320px; min-height:100%;}
button,input {font:inherit;}
button {cursor:pointer;}
button:disabled {cursor:wait;}
a {color:inherit; text-decoration:none;}
button:focus-visible, a:focus-visible, input:focus-visible {outline:3px solid #5d91f3; outline-offset:3px;}
.qy-login { height:100vh; height:100dvh; min-height:0; background:#112846; color:#fff; display:flex; flex-direction:column; overflow:hidden; }
.qy-stage { flex:1 1 0%; height:0; min-height:0; position:relative; display:grid; grid-template-columns:minmax(0,65.6fr) minmax(440px,34.4fr); isolation:isolate; background:linear-gradient(116deg,#071b30 0%,#122c4d 70%,#102744 100%); }
.qy-visual { min-width:0; min-height:0; position:relative; overflow:hidden; background:#0a2038; }
.qy-visual-image { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center center; }
.qy-visual-edge { position:absolute; pointer-events:none; inset:0 0 0 auto; width:9%; background:linear-gradient(90deg, transparent,#112b49 100%); opacity:.42; }
.qy-access { min-width:0; min-height:0; display:flex; align-items:center; flex-direction:column; justify-content:flex-start; justify-content:safe center; overflow-x:hidden; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; scrollbar-color:rgba(146,178,218,.5) transparent; padding:20px clamp(20px,2.9vw,64px) 34px; position:relative; z-index:1; }
.qy-access-top { width:100%; text-align:right; color:#dce0e8; font-size:11px; letter-spacing:5px; position:absolute; top:25px; right:40px; }
.qy-access-top span { color:#b3c2d7; margin:0 2px; }
.qy-title { text-align:center; width:100%; margin:26px 0 25px; flex-shrink:0; }
.qy-title h1 { display:inline-flex; position:relative; align-items:center; gap:8px; margin:0 0 6px; font-size:clamp(45px,4.1vw,79px); font-weight:700; letter-spacing:7px; line-height:1.15; font-family:'STKaiti','Kaiti SC','KaiTi','Noto Serif SC',serif; color:#faefd8; text-shadow:0 3px 14px rgba(0,0,0,.2); white-space:nowrap; }
.qy-seal { font-family:'Noto Serif SC',serif; font-size:10px; color:#fff; line-height:1.25; letter-spacing:0; background:#b64636; border-radius:3px; padding:5px 3px; align-self:center; }
.qy-title p { font-family:'Noto Serif SC',serif; font-size:clamp(12px,1.05vw,19px); color:#f6f3ed; line-height:1.65; letter-spacing:1.3px; white-space:nowrap; margin:6px 0 0; }
.qy-card { flex-shrink:0; width:100%; max-width:480px; background:#fff; border:1px solid rgba(250,250,255,.8); border-radius:16px; box-shadow:0 24px 62px rgba(6,17,34,.24); color:#132340; padding:34px clamp(25px,3vw,48px) 32px; }
.qy-card-heading { text-align:center; margin-bottom:27px; }
.qy-card-heading h2 { font-size:28px; font-weight:700; letter-spacing:1px; line-height:1.5; margin:0 0 6px; color:#10213d; }
.qy-card-heading p { color:#8390a6; font-size:12px; margin:0; line-height:1.6; }
.qy-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:3px; gap:2px; border-radius:8px; background:#f1f4fa; margin-bottom:19px; }
.qy-tabs button { height:43px; padding:0 4px; border:0; background:transparent; color:#48546a; border-radius:6px; font-size:13px; font-weight:600; transition:background .15s,color .15s,box-shadow .15s; }
.qy-tabs button:hover:not(.is-active) { background:#e8edf7; }
.qy-tabs button.is-active { color:#fff; background:#2e68df; box-shadow:0 4px 8px rgba(30,89,200,.12); }
.qy-form { display:flex; flex-direction:column; gap:0; }
.qy-input { display:flex; position:relative; height:52px; align-items:center; gap:13px; width:100%; padding:0 14px; border:1px solid #e0e6f0; color:#8290a9; border-radius:8px; background:#fff; margin-bottom:15px; transition:box-shadow .2s,border-color .2s; }
.qy-input:focus-within { border-color:#3a72df; box-shadow:0 0 0 3px rgba(46,104,223,.11); }
.qy-input input { flex:1; min-width:0; border:0; background:transparent; outline:0; height:100%; font-size:14px; color:#152849; }
.qy-input input::placeholder { color:#9daabd; }
.qy-show-password { padding:5px; display:grid; place-items:center; border:0; background:transparent; color:#8392ae; margin:-6px; }
.qy-show-password:hover { color:#2e68df; }
.qy-submit { width:100%; height:47px; border-radius:6px; font-weight:600; font-size:14px; transition:background .2s,box-shadow .2s; }
.qy-submit { margin-top:5px; background:#2e68df; border:1px solid #2e68df; color:#fff; box-shadow:0 5px 15px rgba(46,104,223,.1); }
.qy-submit:hover { background:#1955c9; box-shadow:0 7px 19px rgba(46,104,223,.24); }
.qy-form-footer { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:16px; }
.qy-remember { display:flex; align-items:center; gap:8px; font-size:12px; color:#8290a5; cursor:pointer; }
.qy-remember input { width:15px; height:15px; margin:0; accent-color:#2e68df; }
.qy-help { font-size:12px; color:#2e68df; border:0; padding:3px 0; background:transparent; }
.qy-help:hover { text-decoration:underline; }
.qy-error { border:1px solid #f3bbb4; background:#fff3f0; border-radius:7px; padding:9px 10px; color:#b03b36; font-size:12px; margin:-3px 0 12px; }
.qy-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.qy-footer { flex:0 0 auto; min-height:52.5px; background:linear-gradient(90deg,#fafbfc,#edf1f7); color:#23344c; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 clamp(28px,3.5vw,68px); box-shadow:0 -1px 0 rgba(255,255,255,.2); }
.qy-footer-brand { display:flex; align-items:center; gap:23px; min-width:0; }
.qy-footer-brand strong { font-family:'STKaiti','Kaiti SC','KaiTi','Noto Serif SC',serif; font-weight:800; font-size:27px; line-height:1; letter-spacing:2px; white-space:nowrap; }
.qy-footer-brand span { font-size:11px; letter-spacing:1px; color:#66758a; white-space:nowrap; }
.qy-footer-links { color:#8491a5; font-size:11px; letter-spacing:1.2px; white-space:nowrap; }
.qy-footer-links i { font-style:normal; color:#9daac1; padding:0 9px; }
.qy-footer-tagline { color:#60748e; font-family:'Noto Serif SC',serif; font-size:12px; letter-spacing:2px; white-space:nowrap; }
/* Reuse the photographic/digital-human asset in the workbench (no geometric portrait). */
.portal .banner-avatar { position:relative; }
.portal .banner-avatar img { object-fit:cover; object-position:center 24%; height:100%; max-width:none; width:100%; }
.studio-screen img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center 26%; transform:none; }
@media (max-width:1380px) {
  .qy-stage { grid-template-columns:minmax(0,61fr) minmax(430px,39fr); }
  .qy-access { padding-left:24px; padding-right:24px; }
  .qy-title h1 { font-size:clamp(42px,4vw,60px); }
  .qy-title p { font-size:12px;letter-spacing:.5px; }
  .qy-footer-brand span { display:none; }
}
@media (max-width:820px) {
  .qy-stage { grid-template-columns:minmax(0,1fr); }
  .qy-visual { position:absolute; inset:0; pointer-events:none; }
  .qy-visual-edge { inset:0; width:100%; background:rgba(7,27,48,.78); opacity:1; }
  .qy-access { padding:24px 24px 28px; }
  .qy-access-top { display:none; }
  .qy-title { margin:8px 0 22px; }
  .qy-title h1 { font-size:54px; }
  .qy-title p { font-size:13px; }
  .qy-card { max-width:520px; }
  .qy-footer { min-height:44px; }
  .qy-footer-links { display:none; }
}
@media (max-width:540px) {
  .qy-access { padding:21px 15px 30px; }
  .qy-access-top { display:none; }
  .qy-title { margin:0 0 15px; }
  .qy-title h1 { font-size:43px;letter-spacing:3px; }
  .qy-title p { font-size:10px; white-space:normal; max-width:300px; margin:8px auto 0; }
  .qy-card { padding:25px 22px 26px; border-radius:13px; }
  .qy-card-heading h2 { font-size:25px; }
  .qy-card-heading p { font-size:11px; }
  .qy-card-heading { margin-bottom:21px; }
  .qy-tabs button { font-size:12px; }
  .qy-footer { flex-direction:row; padding:0 12px; min-height:47px; gap:12px; }
  .qy-footer-brand strong { font-size:24px; }
  .qy-footer-tagline { font-size:10px; }
}
@media (max-height:780px) {
  .qy-title { margin-top:14px; margin-bottom:16px; }
  .qy-card { padding-top:25px; padding-bottom:24px; }
  .qy-card-heading { margin-bottom:16px; }
  .qy-footer { min-height:41px; }
}
@media (max-height:680px) {
  .qy-access { padding-top:14px; padding-bottom:16px; }
  .qy-access-top { display:none; }
  .qy-title { margin:0 0 12px; }
  .qy-title h1 { font-size:40px; }
  .qy-title p { font-size:11px; margin-top:3px; }
  .qy-card { padding-top:20px; padding-bottom:20px; }
  .qy-card-heading { margin-bottom:12px; }
  .qy-card-heading h2 { font-size:25px; }
  .qy-card .qy-tabs { margin-bottom:14px; }
  .qy-tabs button { height:38px; }
  .qy-card .qy-login-input { height:46px; margin-bottom:12px; }
  .qy-card-links { margin-top:12px; }
  .qy-footer { min-height:32px; padding-top:0; padding-bottom:0; }
}

/* 登录操作置于辅助选项后方，以保持正式认证页的清晰视觉层级。 */
.qy-form-footer { margin:0 0 16px; }
.qy-submit { margin-top:0; display:flex; align-items:center; justify-content:center; gap:10px; }
.qy-submit:disabled {opacity:.75; transform:none; box-shadow:none;}
.qy-spinner {width:15px;height:15px;display:inline-block;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:qy-spin .75s linear infinite;}
@keyframes qy-spin {to {transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce) {.qy-spinner {animation:none;}}
@media (max-width:540px) {.qy-card {padding-bottom:30px;} .qy-form-footer {margin-bottom:19px;}}

/* 账号中心：注册、邮箱验证、找回密码、二次验证（保持主视觉布局不变）。 */
.qy-card[data-view="register"] { padding-top:22px; padding-bottom:24px; }
.qy-card[data-view="register"] .qy-card-heading { margin-bottom:13px; }
.qy-card[data-view="register"] .qy-card-heading h2 { font-size:25px; }
.qy-register-tabs { margin-bottom:12px; }
.qy-field { display:block; color:#52617a; font-size:12px; font-weight:600; margin-bottom:11px; }
.qy-field-label { display:block; margin-bottom:6px; }
.qy-required { color:#ce4c47; }
.qy-field .qy-input { margin:0; height:42px; padding:0 12px; }
.qy-field .qy-input input { font-size:13px; }
.qy-field .qy-show-password { flex:none; }
.qy-login-input { margin-bottom:15px; }
.qy-card-links { color:#77859c; font-size:12px; display:flex; gap:6px; align-items:center; justify-content:center; margin-top:15px; line-height:1.6; }
.qy-subtle-link { text-align:center; margin-top:8px; }
.qy-subtle-link .qy-link { color:#8490a6; font-size:11px; }
.qy-link { border:0; background:transparent; color:#2e68df; font-size:12px; font-weight:600; cursor:pointer; padding:2px 1px; }
.qy-link:hover { text-decoration:underline; }
.qy-admin-note { color:#8190a6; }
.qy-notice { font-size:11px; color:#8c6225; background:#fff9ed; border:1px solid #f2e1bd; border-radius:7px; padding:9px 10px; margin:0 0 12px; line-height:1.7; }
.qy-hint { font-size:11px; color:#7d8ba2; line-height:1.6; margin:0 0 12px; }
.qy-agreement { display:flex; align-items:flex-start; gap:7px; font-size:11px; line-height:1.8; margin:0 0 13px; color:#67778f; cursor:pointer; }
.qy-agreement input { margin:3px 0 0; accent-color:#2e68df; width:14px; height:14px; flex:none; }
.qy-agreement a { color:#2e68df; text-decoration:underline; text-underline-offset:2px; }
.qy-information { font-size:13px; line-height:1.8; color:#596b85; margin:0 0 20px; }
.qy-compact-form .qy-field { margin-bottom:20px; }
.qy-completion { display:flex; align-items:center; flex-direction:column; text-align:center; color:#2c66ce; padding:8px 0 0; }
.qy-completion p { font-size:13px; color:#61708b; line-height:1.9; margin:16px 0 26px; }
.qy-recovery-hint { margin-top:13px; margin-bottom:0; text-align:center; }
.qy-card[data-view="register"] .qy-error { margin:0 0 10px; }
.qy-card[data-view="register"] .qy-submit { height:43px; }
@media(max-width:540px) {
  .qy-card[data-view="register"] { padding:22px 20px 24px; }
  .qy-card[data-view="register"] .qy-card-heading { margin-bottom:11px; }
  .qy-card[data-view="register"] .qy-tabs button { height:38px; }
}

/* 手机底栏保持品牌与标语同排，按原实际高度减半。 */
@media (max-width:540px) { .qy-footer { min-height:47px; } }
@media (max-width:540px) and (max-height:680px) { .qy-footer { min-height:37px; } }

/* 主视觉贯穿整屏，玻璃质感仅作用于表单卡片。 */
.qy-login { position:relative; isolation:isolate; background:#102744; }
.qy-stage { position:static; display:flex; isolation:auto; background:transparent; }
.qy-visual { position:absolute; inset:0; z-index:-2; pointer-events:none; }
.qy-visual-image { object-position:center 42%; }
.qy-visual-edge {
  display:block;
  inset:0;
  width:100%;
  opacity:1;
  background:linear-gradient(90deg,rgba(6,20,36,.02) 30%,rgba(6,20,36,.16) 60%,rgba(6,20,36,.48) 100%);
}
.qy-access {
  width:clamp(460px,39vw,620px);
  margin-left:auto;
  padding:38px clamp(30px,3.4vw,66px);
  background:transparent;
  scrollbar-color:rgba(229,223,209,.5) transparent;
}
.qy-access-top { color:#ddd8ce; font-size:10px; letter-spacing:3px; right:38px; }
.qy-access-top span { color:#d1b78e; }
.qy-title { margin:18px 0 25px; }
.qy-title h1 { font-size:48px; letter-spacing:5px; color:#fff1d7; text-shadow:0 2px 18px #09182b; }
.qy-title p { font-size:11px; color:#ece5d8; letter-spacing:.7px; white-space:normal; text-shadow:0 1px 8px #09182b; }
.qy-seal { background:#903d32; }
.qy-card {
  max-width:440px;
  padding:30px 32px 28px;
  color:#f6f0e5;
  background:rgba(14,33,53,.72);
  border:1px solid rgba(244,231,210,.32);
  border-radius:18px;
  box-shadow:0 20px 64px rgba(3,13,25,.24),inset 0 1px 0 rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.qy-card-heading { text-align:left; margin-bottom:24px; }
.qy-card-heading h2 { color:#fff4e3; font-size:25px; font-weight:600; letter-spacing:0; }
.qy-card-heading p { color:#c7d2de; font-size:11px; }
.qy-tabs { padding:4px; background:rgba(4,17,32,.36); border:1px solid rgba(227,233,240,.16); }
.qy-tabs button { height:38px; color:#d3deea; font-size:12px; }
.qy-tabs button.is-active { background:#943f34; color:#fff7ed; box-shadow:0 3px 10px rgba(8,14,23,.15); }
.qy-tabs button:hover:not(.is-active) { background:rgba(255,255,255,.1); }
.qy-input { height:49px; color:#c8d4e0; background:rgba(5,20,36,.38); border-color:rgba(222,231,242,.3); }
.qy-input input { color:#fff7ed; font-size:13px; }
.qy-input input::placeholder { color:#c0cbd7; }
.qy-input:focus-within { border-color:#e2bd86; box-shadow:0 0 0 3px rgba(226,189,134,.15); }
.qy-show-password { color:#c8d4e0; }
.qy-show-password:hover { color:#ffe2b4; }
.qy-submit { background:#943f34; border-color:#b36653; border-radius:8px; box-shadow:0 5px 16px rgba(12,17,28,.18); }
.qy-submit:hover { background:#ac5041; border-color:#ce9278; box-shadow:0 6px 20px rgba(12,17,28,.24); }
.qy-field,.qy-information,.qy-agreement,.qy-hint,.qy-remember,.qy-card-links,.qy-admin-note { color:#d1dbe6; }
.qy-hint,.qy-remember { font-size:11px; }
.qy-remember input,.qy-agreement input { accent-color:#a54c3e; }
.qy-required { color:#ffbaa6; }
.qy-link,.qy-help,.qy-agreement a,.qy-subtle-link .qy-link { color:#ffdaaa; }
.qy-completion { color:#ffdaaa; }
.qy-completion p { color:#d1dbe6; }
/* 注册使用浅色玻璃卡片，提高长表单的辨识度。 */
.qy-card[data-view="register"] {
  color:#293746;
  background:rgba(255,250,241,.92);
  border-color:rgba(255,250,241,.85);
  box-shadow:0 20px 64px rgba(3,13,25,.25),inset 0 1px 0 rgba(255,255,255,.8);
}
.qy-card[data-view="register"] .qy-card-heading h2 { color:#293746; }
.qy-card[data-view="register"] .qy-card-heading p,
.qy-card[data-view="register"] .qy-field,
.qy-card[data-view="register"] .qy-hint,
.qy-card[data-view="register"] .qy-agreement,
.qy-card[data-view="register"] .qy-card-links { color:#56616c; }
.qy-card[data-view="register"] .qy-tabs { background:rgba(224,215,200,.55); border-color:rgba(128,109,86,.18); }
.qy-card[data-view="register"] .qy-tabs button { color:#56616c; }
.qy-card[data-view="register"] .qy-tabs button.is-active { color:#fff7ed; }
.qy-card[data-view="register"] .qy-tabs button:hover:not(.is-active) { background:rgba(255,255,255,.6); }
.qy-card[data-view="register"] .qy-input { background:rgba(255,255,255,.82); border-color:#b7b9bb; color:#65717d; }
.qy-card[data-view="register"] .qy-input input { color:#293746; }
.qy-card[data-view="register"] .qy-input input::placeholder { color:#707983; }
.qy-card[data-view="register"] .qy-input:focus-within { border-color:#943f34; box-shadow:0 0 0 3px rgba(148,63,52,.12); }
.qy-card[data-view="register"] .qy-show-password { color:#65717d; }
.qy-card[data-view="register"] .qy-show-password:hover,
.qy-card[data-view="register"] .qy-link,
.qy-card[data-view="register"] .qy-agreement a { color:#89372e; }
.qy-card[data-view="register"] .qy-required { color:#a43a2e; }
.qy-card[data-view="register"] :focus-visible { outline-color:#943f34; }
.qy-footer {
  min-height:52px;
  background:rgba(7,22,39,.65);
  color:#ece5d8;
  box-shadow:0 -1px 0 rgba(244,231,210,.16);
}
.qy-footer-brand strong { color:#f2e5cc; font-size:24px; }
.qy-footer-brand span,.qy-footer-links,.qy-footer-tagline { color:#c3cdd6; }
.qy-footer-links i { color:#bba886; }
button:focus-visible,a:focus-visible,input:focus-visible { outline-color:#e2bd86; }
@supports not ((backdrop-filter:blur(18px)) or (-webkit-backdrop-filter:blur(18px))) {
  .qy-card { background:rgba(14,33,53,.94); }
  .qy-card[data-view="register"] { background:#fffaf1; }
}
@media (max-width:1050px) and (min-width:821px) {
  .qy-access { width:440px; padding:30px 24px; }
  .qy-title h1 { font-size:42px; }
}
@media (max-width:820px) {
  .qy-visual { display:block; }
  .qy-visual-image { object-position:42% center; }
  .qy-visual-edge { background:rgba(6,20,36,.3); }
  .qy-access { width:100%; padding:26px 22px; }
  .qy-title { margin:8px 0 22px; }
  .qy-title h1 { font-size:43px; }
  .qy-footer { min-height:44px; padding:0 20px; }
  .qy-footer-brand strong { font-size:22px; }
}
@media (max-width:540px) {
  .qy-access { padding:22px 16px; }
  .qy-title h1 { font-size:40px; }
  .qy-title p { font-size:10px; }
  .qy-card { padding:25px 22px; border-radius:15px; }
  .qy-footer { min-height:47px; padding:0 12px; }
  .qy-footer-tagline { letter-spacing:1px; }
}
@media (max-height:720px) {
  .qy-access { padding-top:18px; padding-bottom:18px; }
  .qy-access-top { display:none; }
  .qy-title { margin:0 0 15px; }
  .qy-title h1 { font-size:35px; }
  .qy-title p { margin-top:3px; }
  .qy-card { padding-top:22px; padding-bottom:22px; }
  .qy-card-heading { margin-bottom:16px; }
  .qy-footer { min-height:37px; }
}
