/* Employee portal: sign-in dialog in the Venus editorial register. Colours come from the page tokens so it follows the three styles. */
:root{--portal-error:#a94a32}
html[data-theme="deepspace"]{--portal-error:#e8927a}
.portal-nav{color:var(--muted)}.portal-nav:hover,.portal-nav:focus-visible{color:var(--ink)}
.portal{width:min(460px,92vw);margin:auto;padding:44px 40px 36px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:15px/1.75 Inter,Arial,sans-serif;position:relative;overflow:visible}
.portal::backdrop{background:rgba(10,15,34,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.portal:before,.portal:after{content:'+';position:absolute;color:var(--accent);font:14px monospace;left:12px;top:8px}.portal:after{left:auto;top:auto;right:12px;bottom:8px}
.portal .eyebrow{color:var(--accent)}
.portal h2{font-size:clamp(30px,3.4vw,40px);line-height:1.1;margin:16px 0 14px;letter-spacing:-.02em}
.portal h3{font:500 12px/1.5 Inter,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.portal-lead{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 28px;max-width:44ch}
.portal-close-form{position:absolute;top:16px;right:18px;margin:0}
.portal-close{background:none;border:0;padding:6px 0;color:var(--muted);font:10px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid transparent}
.portal-close:hover{color:var(--ink);border-bottom-color:var(--ink)}
.portal .contact-field label{color:var(--accent)}
.portal .contact-field input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.portal-submit{width:100%;margin-top:7px;background:var(--gold);color:var(--night);border:0;cursor:pointer;justify-content:center;gap:16px;font:10px/1.6 ui-monospace,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;min-height:46px}
.portal-submit[disabled]{opacity:.55;cursor:wait}
.portal-ghost{display:block;width:100%;margin-top:12px;min-height:44px;background:transparent;color:var(--ink);border:1px solid var(--line);cursor:pointer;font:10px/1.6 ui-monospace,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}
.portal-ghost:hover{border-color:var(--ink)}
.portal-sessions{margin-bottom:8px}
.portal-session-list{list-style:none;margin:0 0 4px;padding:0;border-top:1px solid var(--line)}
.portal-session{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.portal-session.is-active{border-left:2px solid var(--accent);padding-left:12px}
.portal-session-name{display:block;font-weight:500;font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portal-session-name small{font-weight:400;font-size:11px;color:var(--accent);margin-left:8px}
.portal-session-email{display:block;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portal-session-actions{display:flex;gap:14px;flex-shrink:0}
.portal-session-actions button{background:none;border:0;padding:6px 0;cursor:pointer;color:var(--ink);font:10px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--ink)}
.portal-session-actions button.portal-remove{color:var(--muted);border-bottom-color:transparent}.portal-session-actions button.portal-remove:hover{color:var(--portal-error);border-bottom-color:var(--portal-error)}
.portal-status{margin:16px 0 0;padding:12px 14px;border:1px solid var(--line);font-size:12px;line-height:1.7}
.portal-status.is-error{color:var(--portal-error);border-color:var(--portal-error)}
.portal-status[hidden],.portal-sessions[hidden],.portal-form[hidden],.portal-loader[hidden],.portal-ghost[hidden]{display:none}
.portal-loader{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 0 8px}
.portal-loader p{font-size:13px;color:var(--muted);margin:18px 0 0}
.portal-ring{width:34px;height:34px;border:1px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:portal-spin 1s linear infinite}
@keyframes portal-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.portal-ring{animation:none;border-color:var(--accent)}}
@media(max-width:700px){.portal{padding:40px 22px 30px}.portal-session{flex-wrap:wrap}.portal-session-actions{width:100%;justify-content:flex-end}}
