/* Login-only skin. Existing authentication states, forms and workspace styles remain authoritative. */
.auth-gate.ocean-login{display:block;padding:0;height:100svh;overflow:auto;isolation:isolate;background:#f4f3e9;color:#31546b;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--ocean-ui:#35556d;--ocean-border:#45678026;--ocean-wash:#ffffff35;--ocean-selected:#ffffff99}
.auth-ready .auth-gate.ocean-login{display:none}
.ocean-login.night{background:#24465f;--ocean-ui:#cedee9;--ocean-border:#daeaf024;--ocean-wash:#ffffff05;--ocean-selected:#ffffff18}
.ocean-login .ocean-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ocean-login .ocean-brand{position:absolute;left:38px;top:26px;z-index:3;padding:0;background:transparent;box-shadow:none;border-radius:0}
.ocean-login .ocean-brand svg{display:block;width:240px;height:auto;aspect-ratio:507/79;fill:none;stroke:none}
.ocean-login .ocean-themes{position:absolute;right:34px;top:26px;z-index:3;display:flex;gap:4px;padding:4px;border-radius:24px;border:1px solid var(--ocean-border);background:var(--ocean-wash)}
.ocean-login .ocean-themes button{padding:7px 11px;border:0;border-radius:16px;background:none;color:var(--ocean-ui);font:inherit;font-size:11px;letter-spacing:1px;cursor:pointer}
.ocean-login .ocean-themes button[aria-pressed=true]{background:var(--ocean-selected);box-shadow:0 1px 5px #16385109}
.ocean-login .auth-panel{position:absolute;z-index:4;left:50%;top:39%;width:350px;max-width:calc(100vw - 40px);min-height:318px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transform:translate(-50%,-50%);transform-origin:50% 50%;filter:drop-shadow(0 14px 16px #122e4726);color:#325970}
.ocean-login .ocean-sheet{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;stroke:none;fill:none}
.ocean-login .ocean-form-content{position:relative;padding:42px 45px 48px;color:#325970}
.ocean-login #authTitle{margin:0 0 24px;color:#325970;font-size:20px;font-weight:550;letter-spacing:2px;text-align:center;line-height:1.5}
.ocean-login #authLead{display:none}
.ocean-login .auth-form{gap:14px;margin:0}
.ocean-login #authForm label{position:relative;display:block}
.ocean-login #authForm label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ocean-login .auth-form input{width:100%;height:37px;padding:5px 2px;border:0;border-bottom:1px solid #76929d65;border-radius:0;background:transparent;color:#284e66;font-size:13px;box-shadow:none;outline:0}
.ocean-login .auth-form input::placeholder{color:#78909b}
.ocean-login .auth-form input:focus{border-bottom-color:#28628c;outline:2px solid #65b9d7;outline-offset:3px}
.ocean-login #authPassword{padding-right:34px}
.ocean-login .ocean-eye{position:absolute;right:-8px;top:0;width:38px;height:37px;padding:0;border:0;background:none;color:#668497;display:grid;place-items:center;cursor:pointer}
.ocean-login .ocean-eye svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.4}
.ocean-login .btn.primary{width:100%;min-height:39px;margin-top:6px;border:0;border-radius:2px;background:#2d648b;color:#f2f6f6;font-size:13px;letter-spacing:2px;box-shadow:0 3px 6px #30506b16}
.ocean-login .btn.primary:hover{background:#255779}
.ocean-login .btn:disabled{opacity:.6;cursor:wait}
.ocean-login .auth-status{margin-top:14px;padding:9px 10px;font-size:12px;color:#8c443b;background:#fff5ed;border-color:#c47a622e;border-radius:3px;overflow-wrap:anywhere}
.ocean-login .auth-retry,.ocean-login .auth-cancel-change{border-radius:3px;background:#ffffff75;border-color:#76929d50;color:#31546b}
.ocean-login .auth-form label{color:#45677b}
.ocean-login .auth-account{color:#526d7a;background:#fff9;border-color:#76929d30;border-radius:3px}
.ocean-login .auth-account strong{color:#325970}
.ocean-login .auth-password-tip{color:#657d88}
.ocean-login .ocean-footer{position:absolute;left:38px;bottom:25px;color:#d5e6eea8;font-size:10px;letter-spacing:2px}
.ocean-login .ocean-tools{position:absolute;z-index:5;right:29px;bottom:22px;display:flex;align-items:center;gap:12px}
.ocean-login .ocean-tools button{height:36px;padding:0 13px;border:1px solid #d1e2eb60;border-radius:20px;background:#24445a30;color:#ecf7fc;cursor:pointer;font:inherit;font-size:12px}
.ocean-login .ocean-tools button:hover{background:#e0f4ff18}
.ocean-login button:focus-visible{outline:2px solid #65b9d7;outline-offset:4px}
.ocean-login.ocean-settled .ocean-skip,.auth-change-password .ocean-tools,.auth-error .ocean-tools{display:none}
.auth-change-password .ocean-login .auth-panel,.auth-error .ocean-login .auth-panel{top:50%!important;max-height:calc(100svh - 120px);overflow:auto}
.auth-change-password .ocean-login .auth-panel{width:410px}
.auth-change-password .ocean-login .ocean-form-content{padding:32px 38px 46px}
.auth-change-password .ocean-login #authTitle{font-size:20px;letter-spacing:0;margin-bottom:10px}
.auth-change-password .ocean-login #authLead,.auth-error .ocean-login #authLead{display:block;color:#637d8b;font-size:12px;line-height:1.6;margin:0 0 18px}
.auth-error .ocean-login .auth-panel{min-height:260px}
.auth-error .ocean-login .auth-retry{margin-top:16px}
@media(max-width:600px){.ocean-login .ocean-brand{left:23px;top:20px;padding:0}.ocean-login .ocean-brand svg{width:150px}.ocean-login .ocean-themes{right:17px;top:20px;gap:0}.ocean-login .ocean-themes button{padding:6px 8px;font-size:10px}.ocean-login .auth-panel{width:310px}.ocean-login .ocean-form-content{padding:36px 37px 43px}.ocean-login #authTitle{font-size:18px;letter-spacing:1px}.ocean-login .ocean-footer{left:23px;bottom:28px;font-size:9px;letter-spacing:1px}.ocean-login .ocean-tools{right:17px;gap:8px}.ocean-login .ocean-tools button{font-size:11px;padding:0 10px}.auth-change-password .ocean-login .ocean-form-content{padding:26px 26px 38px}}
@media(max-height:620px){.ocean-login .auth-panel{top:50%!important;max-height:calc(100svh - 100px);overflow:auto}.ocean-login .ocean-form-content{padding-top:25px;padding-bottom:35px}.ocean-login #authTitle{margin-bottom:15px}}
