:root{color-scheme:dark;--bg:#101a1e;--panel:#142126;--ink:#edf2ed;--muted:#9eafad;--line:#33464a;--accent:#bdd2c3;--gold:#b9a879}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 'Segoe UI','Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}.login-layout{min-height:100svh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,1fr)}.studio-intro{padding:52px 9%;background:radial-gradient(ellipse at 20% 80%,#42605b33,transparent 55%),linear-gradient(145deg,#223438,#16262b 60%,#1b2b30);display:flex;flex-direction:column;position:relative;border-right:1px solid #ffffff0a}.brand{display:flex;align-items:center;gap:14px;width:fit-content;letter-spacing:2px;font-size:13px;font-weight:600}.brand-mark{width:42px;height:46px;border:1px solid #95b6aa6b;border-radius:9px;display:grid;place-items:center;font:26px Georgia,serif;color:var(--accent)}.brand small{display:block;letter-spacing:3px;font-weight:400;color:var(--muted);font-size:10px;margin-top:3px}.intro-copy{margin:auto 0;padding:95px 0}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);margin:0 0 18px}h1{font-family:'Microsoft YaHei',sans-serif;font-size:clamp(32px,3.6vw,52px);font-weight:400;line-height:1.6;letter-spacing:3px;margin:0 0 24px}.intro-description{color:#b3c2bf;font-size:15px;line-height:2}.local-note{display:flex;gap:14px;align-items:center;color:var(--accent);font-size:12px}.local-note>span{font-size:24px}.local-note p{margin:0}.local-note small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:80px max(32px,8%);background:var(--bg);position:relative}.login-card{width:100%;max-width:390px;margin:auto}.login-card h2{font-size:29px;line-height:1.4;letter-spacing:1px;font-weight:500;margin:0 0 12px}.login-description{color:var(--muted);font-size:13px;margin:0 0 30px}form{display:grid;gap:10px}label{font-size:12px;color:#c7d2ce;margin-top:10px}input,button{font:inherit;min-height:49px;border-radius:8px}input:not([type=hidden]){width:100%;background:#1b2a30;border:1px solid var(--line);padding:11px 14px;color:var(--ink);outline:none}input:focus{border-color:#adc8ba;box-shadow:0 0 0 3px #adc8ba13}button{margin-top:20px;background:var(--accent);color:#172a25;border:1px solid var(--accent);font-size:14px;font-weight:600;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}button:hover{background:#d0e1d6}button:focus-visible,a:focus-visible{outline:3px solid #d2bd8a;outline-offset:4px}.access-note{margin:27px 0 0;padding-top:20px;border-top:1px solid #ffffff0c;color:var(--muted);font-size:11px;line-height:1.9}.login-error:empty{display:none}.login-error{color:#f2b8a8;background:#a64f3820;border:1px solid #ca806347;padding:12px 14px;font-size:12px;border-radius:8px;margin-bottom:15px;overflow-wrap:anywhere}footer{position:absolute;bottom:28px;left:32px;right:32px;text-align:center;letter-spacing:2px;font-size:9px;color:#758d8e}footer span{display:block;letter-spacing:1px;margin-top:3px}@media(max-width:850px){.login-layout{grid-template-columns:1fr}.studio-intro{padding:26px 30px;border-right:0;border-bottom:1px solid #ffffff0a}.intro-copy{padding:38px 0 18px}.intro-copy h1{font-size:30px;line-height:1.45;margin-bottom:12px}.intro-description{font-size:12px;margin-bottom:0}.local-note{display:none}.login-panel{min-height:560px;padding:45px 30px 85px}.login-card{max-width:420px}.login-description{margin-bottom:20px}}@media(max-width:390px){.studio-intro{padding:22px}.intro-copy{padding:24px 0 10px}.intro-copy h1{font-size:26px}.login-panel{padding:32px 22px 75px}.login-card h2{font-size:25px}}
/* Optional gateway banner; insert only into authenticated responses. */
.public-preview-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 24px;background:#18332d;color:#d8e8dd;font:12px/1.5 'Segoe UI','Microsoft YaHei',sans-serif;border-bottom:1px solid #56766b}.public-preview-banner form{margin:0;display:block}.public-preview-banner button{margin:0;min-height:34px;padding:6px 12px;font-size:12px}.public-preview-banner small{color:#b4cabd}
