.login{display:grid;grid-template-columns:minmax(360px,32%) 1fr;height:100vh;height:100dvh;flex:1;min-height:0;background:var(--gray-50);color:var(--gray-900)}.login-form{display:flex;flex-direction:column;padding:clamp(20px,4vh,36px) clamp(24px,5vw,72px) 22px;min-width:0;background:var(--gray-0);border-right:1px solid var(--border)}.login-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;line-height:1.3;padding:0 6px;color:var(--gray-900)}.login-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;width:100%;max-width:400px;animation:login-in var(--duration-motion,.3s) var(--ease-out-expo,cubic-bezier(.16,1,.3,1))}@keyframes login-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.login-h1{font:var(--type-display);letter-spacing:var(--tracking-display,-1px);margin:0;padding:0 6px;color:var(--gray-900)}.login-sub{margin:-6px 0 0;padding:0 6px;font-size:13px;line-height:1.5;color:var(--gray-800)}.login-foot{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.4;color:var(--gray-800);border-top:1px solid var(--border);padding:14px 6px 2px;max-width:400px}.login-foot>svg{flex:none}.login-viz{position:relative;background:var(--gray-50);overflow:hidden}.login-viz:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0) 0 0 /22px 22px;opacity:.55;pointer-events:none}.login-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.login-cap{position:absolute;left:20px;bottom:16px;display:flex;align-items:center;gap:8px;font-size:11px;line-height:1.4;color:var(--gray-800);background:var(--gray-0);border:1px solid var(--border);border-radius:999px;padding:4px 11px;box-shadow:var(--shadow-xs,0 1px 2px rgba(16,16,16,.04));opacity:0;transform:translateY(4px);transition:opacity var(--duration-default,.2s) var(--ease-standard,cubic-bezier(.2,0,0,1)),transform var(--duration-default,.2s) var(--ease-standard,cubic-bezier(.2,0,0,1));pointer-events:none;white-space:nowrap;max-width:calc(100% - 40px);overflow:hidden;text-overflow:ellipsis}.login-cap.on{opacity:1;transform:none}.login-body form{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.login-body form.login-form-tight{gap:8px}.login-body form>*{min-width:0}.login-submit{margin-top:6px;width:100%}.login-submit-label{display:inline-flex;align-items:center;justify-content:center;gap:6px}.ws-addr input{font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,monospace)!important}.ws-list{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;margin-top:2px}.ws-list>*{min-width:0}.ws-list-h{font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px 4px}.ws-list-h,.ws-row{color:var(--gray-800)}.ws-row{display:flex;align-items:center;gap:4px;border-radius:var(--radius-control,8px);font-size:13px}.ws-row:focus-within,.ws-row:hover{background:var(--gray-50);color:var(--gray-900)}.ws-pick{display:flex;flex:1;min-width:0;align-items:center;gap:9px;padding:7px 10px;border:none;border-radius:var(--radius-control,8px);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.ws-pick>svg{flex:none}.ws-host{font-size:12px;color:var(--gray-900);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-when{font-size:10.5px}.ws-when,.ws-x{flex:none;color:var(--gray-800)}.ws-x{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:6px;border:none;border-radius:7px;background:none;cursor:pointer;opacity:0;transition:opacity var(--duration-fast,.12s) var(--ease-standard,cubic-bezier(.2,0,0,1))}.ws-x:hover{background:var(--gray-100);color:var(--gray-900)}.ws-row:focus-within .ws-x,.ws-row:hover .ws-x{opacity:1}.ws-connected{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;border:1px solid var(--border);border-radius:999px;padding:5px 12px 5px 10px;background:var(--gray-0);cursor:pointer;max-width:100%;font:inherit;color:var(--gray-900);transition:border-color var(--duration-fast,.12s) var(--ease-standard,cubic-bezier(.2,0,0,1))}.ws-connected:hover{border-color:var(--border-strong)}.ws-connected .ws-host{flex:0 1 auto}.ws-connected.static{cursor:default}.ws-connected.static:hover{border-color:var(--border)}.ws-connected .ws-change{font-size:11.5px;color:var(--gray-800)}.login .dot,.reauth .dot{width:7px;height:7px;border-radius:99px;flex:none}.dot-busy{background:var(--brand-blue);animation:v2pulse 1s infinite}.dot-ok{background:var(--brand-green)}.dot-idle{background:var(--border-strong)}@keyframes v2pulse{0%,to{opacity:1}50%{opacity:.35}}.linkbtn{border:none;background:none;color:var(--brand-blue);font-size:12px;cursor:pointer;padding:0 0 0 12px;font-family:inherit}.linkbtn:hover{text-decoration:underline}.login-spin{display:inline-flex;animation:login-spin 1s linear infinite}@keyframes login-spin{to{transform:rotate(1turn)}}.login-err{display:flex;align-items:flex-start;gap:6px;font-size:12.5px;line-height:1.45;color:var(--status-critical);padding:0 6px}.login-err.is-warning{color:var(--status-warning-text)}.login-err>svg{flex:none;margin-top:2px}.login-err-detail{margin-top:6px;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:11px;color:var(--gray-800);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-tag,6px);padding:6px 8px;word-break:break-word}@media(min-width:1600px){.login{grid-template-columns:minmax(440px,30%) 1fr}}@media(max-width:900px){.login{grid-template-columns:1fr;grid-template-rows:minmax(200px,36dvh) 1fr;height:100dvh}.login-viz{order:-1;border-bottom:1px solid var(--border)}.login-form{padding:16px 20px 14px;border-right:none;overflow-y:auto;min-height:0}.login-body{justify-content:flex-start;padding-top:8px}.login-cap{left:14px;bottom:12px}.ws-pick{min-height:44px}.login-form button[type=submit]{min-height:44px!important;font-size:14px!important}.login-form .ws-addr input,.login-form input{min-height:24px!important;font-size:16px!important}}.reauth{position:fixed;inset:0;z-index:var(--z-modal,400);display:grid;place-items:center;padding:20px;background:#f5f5f5b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:login-fade var(--duration-default,.2s) var(--ease-out-expo,cubic-bezier(.16,1,.3,1))}@keyframes login-fade{0%{opacity:0}to{opacity:1}}.reauth-field{position:absolute;inset:0;opacity:.85;pointer-events:auto}.reauth-field .login-canvas{position:absolute;inset:0;width:100%;height:100%}.reauth-card{position:relative;width:min(400px,100%);display:grid;gap:16px;background:var(--gray-0);border:1px solid var(--border);border-radius:var(--radius-card,12px);padding:24px;box-shadow:var(--shadow-lg,0 12px 32px rgba(16,16,16,.1),0 2px 6px rgba(16,16,16,.05));animation:login-in var(--duration-motion,.3s) var(--ease-out-expo,cubic-bezier(.16,1,.3,1))}.reauth-card .login-brand,.reauth-card .login-h1{padding:0}.reauth-card .login-h1{font:600 24px/1.1 var(--font-figtree,"Figtree Variable",Figtree,ui-sans-serif,system-ui,sans-serif);letter-spacing:-.5px}.reauth-card .login-sub{margin:0;padding:0;font-size:12.5px}.reauth-card form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.reauth-card form>*{min-width:0}.reauth-card .login-err{padding:0}.reauth-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.linkbtn.ws-more{padding:6px 10px;text-align:left}.login-opening{display:grid;gap:6px;padding:0 6px}.login-opening .login-h1{padding:0}.login-opening-host{font-size:12px;color:var(--gray-800)}
