/* Login owns its visual tokens; workspace controls retain the accepted G01 layout. */
.login-page{width:100%;min-height:100dvh;padding:48px 32px;display:grid;place-items:center;background:#f4f5f7;color:#202733;font-family:inherit}
.login-shell{width:min(1120px,100%);min-height:640px;display:grid;grid-template-columns:55% 45%;background:#fff;border:1px solid #e8eaee;border-radius:24px;overflow:hidden;box-shadow:0 20px 64px #18243c09}
.login-art{position:relative;isolation:isolate;min-width:0;background:#e7ebe8;overflow:hidden}
.login-art picture{position:absolute;inset:0}
.login-art picture img{width:100%;height:100%;object-fit:cover;object-position:65% center}
.login-art::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#f6f7f9bf,transparent 24%,transparent 75%,#12242165)}
.login-brand{position:absolute;z-index:1;left:32px;top:30px;display:flex;gap:10px;align-items:center;color:#243348;font-size:17px;font-weight:600}
.login-brand img{border-radius:5px;width:32px;height:32px}.login-brand b{font-weight:450}
.login-art-caption{position:absolute;z-index:1;bottom:34px;left:34px;color:#fff;display:grid;gap:11px}
.login-art-caption span{font-size:23px;font-weight:500;letter-spacing:.02em}.login-art-caption small{font-size:12px;color:#f1f3f1;letter-spacing:.05em}
.login-form-panel{display:flex;align-items:center;justify-content:center;padding:48px 40px}
.login-form-content{width:min(340px,100%)}.login-eyebrow{font-size:12px;font-weight:550;color:#64748b}
.login-form-content h1{font-size:30px;font-weight:620;letter-spacing:-.04em;line-height:1.4;margin:12px 0 10px;color:#202733}
.login-intro{font-size:14px;line-height:1.7;color:#667080;margin:0 0 34px}
.login-field{margin-bottom:20px;position:relative}.login-field label{display:block;font-size:13px;color:#3f4b5d;font-weight:550;margin-bottom:9px}
.login-field input{box-sizing:border-box;width:100%;height:46px;padding:0 14px;font-family:inherit;font-size:14px;color:#243044;background:#fff;border:1px solid #dce1e8;border-radius:10px;outline:none;transition:border-color .12s,box-shadow .12s}
.login-field input::placeholder{color:#77808e}.login-field input:hover{border-color:#b7c2d2}.login-field input:focus{border-color:#3478e5;box-shadow:0 0 0 3px #3478e518}.login-field input[aria-invalid=true]{border-color:#c84646}
.login-password{position:relative}.login-password input{padding-right:48px}.login-password button{position:absolute;right:3px;top:3px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#68778a;cursor:pointer;transition:background .12s}
.login-password button:hover{background:#f0f3f8}.login-password button:active{background:#e8eef7;transform:none}.login-password svg{width:19px;height:19px}
.login-page button:focus-visible,.media-retry:focus-visible{outline:2px solid #3478e5;outline-offset:3px}
#login-caps{position:absolute;top:100%;left:2px;font-size:11px;color:#946413;padding-top:4px}
#login-error{min-height:21px;line-height:1.5;margin:8px 0 15px;font-size:12px;color:#b13737;overflow-wrap:anywhere}
.login-submit{height:46px;width:100%;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid transparent;border-radius:10px;background:#2d6fe3;color:#fff;font-family:inherit;font-size:14px;font-weight:550;cursor:pointer;box-shadow:0 3px 9px #2d6fe31a;transition:background .12s,box-shadow .12s}
.login-submit:hover{background:#245fcc;box-shadow:0 4px 12px #2d6fe32b}.login-submit:active{transform:none;background:#2057bc}.login-submit:disabled{opacity:1;background:#557ab4;cursor:wait}.login-submit svg{height:17px;width:17px}
.login-submit[aria-busy=true] svg{display:none}
.login-submit[aria-busy=true]::after{content:"";width:13px;height:13px;border:1.5px solid #ffffff66;border-top-color:white;border-radius:50%;animation:login-wait .8s linear infinite}
@keyframes login-wait{to{transform:rotate(360deg)}}
[data-media-frame]{position:relative}
[data-media-main]{transition:opacity .14s;opacity:0}
.media-ready [data-media-main]{opacity:1}
.media-error [data-media-main]{opacity:0}
.media-retry{display:none;position:absolute;z-index:3;left:0;right:0;margin-inline:auto;width:max-content;top:50%;translate:0 -50%;white-space:nowrap;border:1px solid #d9e0e9;border-radius:10px;background:#fff;color:#4e5b6e;font:inherit;font-size:12px;padding:10px 14px;cursor:pointer}
.media-error>.media-retry{display:block}.media-retry:hover{background:#f4f7fc}.media-retry:active{transform:none}
.g-preview[data-media-frame]:not(.is-example){min-height:220px}
@media(max-width:800px){.login-page{padding:24px}.login-shell{grid-template-columns:1fr;max-width:460px;min-height:540px}.login-art{display:none}.login-form-panel{padding:40px 32px}}
@media(prefers-reduced-motion:reduce){.login-page *,[data-media-main]{transition:none!important;animation:none!important}}

.g-preview:not(.media-ready) img[data-media-main]{opacity:0}
.g-load-label{position:absolute;inset:0;display:grid;place-items:center;color:#56647a;font-size:14px;pointer-events:none}
.media-ready .g-load-label,.media-error .g-load-label{display:none}
.media-slow>.media-retry{display:block}
.g-working-light{width:96px;height:3px;display:block;margin:0 auto 18px;background:linear-gradient(90deg,#eef2f7,#648de8,#eef2f7);background-size:200% 100%;border-radius:8px;animation:worklight 1.8s linear infinite}
@keyframes worklight{to{background-position:-200% 0}}
.g-recent-works{margin:24px 0;color:#59677b;font-size:13px}.g-recent-works>div{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap}.g-recent-works button{width:80px;padding:6px;border:1px solid transparent;border-radius:12px;background:#f4f6f9;color:#506078}.g-recent-works button[aria-pressed=true]{border-color:#477be2}.g-recent-works img{object-fit:cover;border-radius:8px;display:block}.g-recent-works small{display:block;margin-top:4px}.g-recent-works button>span{display:grid;place-items:center;height:64px}
@media(prefers-reduced-motion:reduce){.g-working-light{animation:none}}

.original-preview{display:none;position:absolute;bottom:58px;left:50%;transform:translateX(-50%);border:0;border-radius:16px;padding:8px 16px;background:#fff;color:#285ec4}.media-error .original-preview{display:block}
