/* EO console login — consumes shared tokens from tokens.css */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
[hidden]{display:none!important}
body{
  background:var(--canvas);
  font-family:var(--sans);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-variant-numeric:tabular-nums;
  overflow-x:hidden
}
input,button{font-family:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible{
  outline:2px solid rgba(var(--primaryRGB),.38);
  outline-offset:2px
}
.btn{
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--canvas);
  color:var(--ink);
  font-size:var(--fs-body);
  font-weight:600;
  height:42px;
  padding:0 18px
}
.btn.primary{
  border-color:var(--primary);
  background:var(--primary);
  color:var(--on-primary)
}
.btn.primary:hover{background:var(--primary2)}
.login-body{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:42px 24px;
  background:var(--canvas)
}
.login-shell{
  width:100%;
  max-width:980px;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,470px) minmax(0,390px);
  justify-content:center;
  gap:22px;
  align-items:stretch
}
.login-card,.login-receipt{
  min-width:0;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  box-shadow:var(--sh-sm)
}
.login-card{
  padding:34px;
  background:var(--canvas)
}
.login-brand{display:flex;align-items:center;gap:11px}
.login-logo{
  color:var(--primary);
  font-family:var(--mono);
  font-size:18px;
  line-height:1;
  flex-shrink:0
}
.login-brand-text{line-height:1.15}
.login-brand-text .nm{font-family:var(--mono);font-weight:600;font-size:15px}
.login-brand-text .sub{font-size:var(--fs-caption);color:var(--ink3)}
.login-kicker{
  margin:30px 0 0;
  color:var(--ink3);
  font-family:var(--mono);
  font-size:var(--fs-caption);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em
}
.login-card h1{
  margin:8px 0 0;
  max-width:390px;
  font-family:var(--sans);
  font-size:var(--fs-display);
  font-weight:600;
  letter-spacing:0;
  line-height:var(--lh-display);
  overflow-wrap:break-word
}
.login-card .lede{
  margin:14px 0 0;
  max-width:390px;
  color:var(--ink3);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  overflow-wrap:break-word
}
.login-tabs{
  margin-top:25px;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  background:var(--surface2);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  padding:4px
}
.login-tabs button{
  flex:1 1 130px;
  border:none;
  border-radius:var(--r-xs);
  background:transparent;
  color:var(--ink3);
  font-size:var(--fs-small);
  font-weight:600;
  line-height:1.2;
  padding:9px 10px;
  min-height:36px
}
.login-tabs button.on{
  background:var(--surface);
  color:var(--ink);
  box-shadow:var(--sh-sm)
}
.login-card form{margin-top:18px}
.login-card label{
  display:block;
  font-size:var(--fs-small);
  font-weight:600;
  color:var(--ink2);
  margin-top:14px
}
.login-card input{
  margin-top:8px;
  width:100%;
  height:46px;
  border:1px solid var(--line2);
  border-radius:var(--r-sm);
  padding:0 14px;
  font-size:15px;
  background:var(--canvas);
  outline:none;
  color:var(--ink)
}
.login-card input:focus{border-color:rgba(var(--primaryRGB),.65)}
.login-card .btn{
  margin-top:16px;
  width:100%;
  height:46px;
  border-radius:var(--r-sm);
  font-size:15px
}
.login-err{
  margin-top:16px;
  border-radius:var(--r-sm);
  background:var(--redT);
  color:var(--red);
  padding:11px 14px;
  font-size:var(--fs-small);
  font-weight:600
}
.login-hint{
  margin:14px 0 0;
  font-size:var(--fs-small);
  color:var(--faint);
  line-height:var(--lh-small);
  overflow-wrap:break-word
}
.login-secondary{
  margin-top:14px;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--surface2);
  overflow:hidden
}
.login-secondary summary{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 12px;
  color:var(--ink2);
  font-size:var(--fs-small);
  font-weight:600;
  cursor:pointer;
  list-style:none
}
.login-secondary summary::-webkit-details-marker{display:none}
.login-secondary summary::after{
  content:"";
  width:7px;
  height:7px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  flex:0 0 auto
}
.login-secondary[open] summary::after{transform:rotate(-135deg)}
.login-secondary label{
  margin:0 12px;
  padding-top:2px
}
.login-secondary .login-hint{
  margin:8px 12px 0;
  padding-bottom:12px
}
.login-secondary-current{
  min-width:0;
  margin-left:auto;
  color:var(--faint);
  font-family:var(--mono);
  font-size:var(--fs-caption);
  font-weight:500;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.login-invite{
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  padding:14px;
  background:var(--surface2)
}
.login-invite-title{font-weight:600}
.login-invite-copy{
  margin-top:5px;
  color:var(--ink3);
  font-size:var(--fs-small);
  line-height:var(--lh-small)
}
.login-foot{
  border-top:1px solid var(--line);
  margin-top:22px;
  padding-top:14px;
  font-size:var(--fs-small);
  color:var(--faint);
  line-height:var(--lh-small)
}
.login-receipt{
  position:relative;
  overflow:hidden;
  padding:28px 28px 24px;
  background:var(--receipt-bg);
  color:var(--receipt-ink);
  border-color:var(--receipt-line)
}
.receipt-label{
  font-family:var(--mono);
  font-size:var(--fs-caption);
  color:var(--receipt-muted);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em
}
.receipt-line{
  display:grid;
  grid-template-columns:28px 1fr;
  column-gap:12px;
  row-gap:3px;
  border-top:1px solid var(--receipt-line);
  padding:18px 0
}
.receipt-line:first-of-type{margin-top:16px}
.receipt-line span{
  grid-row:1/3;
  width:22px;
  height:22px;
  border-radius:var(--r-xs);
  border:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--primary);
  font-family:var(--mono);
  font-size:var(--fs-caption);
  font-weight:600;
  background:transparent
}
.receipt-line b{font-size:15px;color:var(--receipt-ink)}
.receipt-line em{
  font-style:normal;
  color:var(--receipt-muted);
  font-size:var(--fs-small);
  line-height:var(--lh-small);
  overflow-wrap:break-word
}
.receipt-note{
  margin-top:4px;
  border:1px solid var(--receipt-line);
  border-radius:var(--r-sm);
  padding:12px 13px;
  background:var(--receipt-well);
  color:var(--receipt-muted);
  font-family:var(--mono);
  font-size:var(--fs-caption);
  font-weight:500
}
@media (max-width:1020px){
  .login-body{align-items:flex-start;padding:24px 16px}
  .login-shell{grid-template-columns:1fr;max-width:520px}
  .login-card{padding:28px 24px}
}
@media (max-width:430px){
  .login-body{padding:14px 10px}
  .login-card{padding:24px 18px}
  .login-receipt{padding:24px 20px 20px}
}
