/* TradeMason login — matches public landing; isolated from app shell CSS */
.tm-login-page{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.tm-login-main{
  flex:1;
  width:min(1160px,calc(100% - 24px));
  margin:0 auto;
  padding:20px 0 40px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,420px);
  gap:24px;
  align-items:start;
}
.tm-login-preview{
  padding:24px;
  border-radius:var(--tm-radius-lg);
  border:1px solid var(--tm-border);
  background:var(--tm-card);
}
.tm-login-preview h1{
  font-size:clamp(1.75rem,5vw,2.5rem);
  line-height:1.05;
  letter-spacing:-.03em;
  color:var(--tm-white);
  margin:14px 0 10px;
}
.tm-login-form-card{
  order:-1;
  padding:24px;
  border-radius:var(--tm-radius-lg);
  border:1px solid rgba(212,160,23,.35);
  background:linear-gradient(160deg,var(--tm-card-up),var(--tm-card));
  box-shadow:var(--tm-shadow);
}
.tm-login-form-card h2{margin:0 0 6px;color:var(--tm-white);font-size:1.5rem;letter-spacing:-.02em}
.tm-login-form-card .tm-lead{font-size:.92rem;margin-bottom:20px}
.tm-login-form{display:grid;gap:14px}
.tm-login-form .tm-field{margin:0}
.tm-login-form input{
  width:100%;
  min-height:52px;
  border-radius:14px;
  border:1px solid var(--tm-border);
  background:var(--tm-charcoal);
  color:var(--tm-white);
  padding:0 14px;
  font:inherit;
  transition:border-color .2s,box-shadow .2s;
}
.tm-login-form input:focus{
  outline:none;
  border-color:rgba(212,160,23,.6);
  box-shadow:0 0 0 3px rgba(212,160,23,.15);
}
.tm-login-form input.is-valid{border-color:rgba(34,197,94,.5)}
.tm-login-form input.is-invalid{border-color:rgba(239,68,68,.55)}
.tm-password-wrap{position:relative}
.tm-password-wrap input{padding-right:72px}
.tm-password-toggle{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  min-height:36px;
  padding:0 12px;
  border:0;
  border-radius:10px;
  background:rgba(212,160,23,.12);
  color:var(--tm-gold-hover);
  font-weight:800;
  font-size:.78rem;
  cursor:pointer;
}
.tm-login-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  font-size:.82rem;
  color:var(--tm-muted);
}
.tm-login-options label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700}
.tm-login-options input{accent-color:var(--tm-gold);width:16px;height:16px}
.tm-login-note{
  min-height:20px;
  margin:12px 0 0;
  padding:10px 12px;
  border-radius:12px;
  font-size:.82rem;
  color:var(--tm-muted);
  border:1px solid var(--tm-border);
  background:rgba(255,255,255,.03);
}
.tm-login-note.is-error{color:#fca5a5;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}
.tm-login-note.is-success{color:#86efac;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}
.tm-login-note.is-loading{color:var(--tm-gold-hover);border-color:rgba(212,160,23,.3)}
.tm-login-links{display:flex;justify-content:space-between;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--tm-border);font-size:.82rem}
.tm-login-links a{color:var(--tm-gold-hover);font-weight:800}
.tm-login-mini{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  margin-top:18px;
}
.tm-login-mini .tm-kpi{padding:10px;cursor:pointer}
.tm-login-mini .tm-kpi.is-active{border-color:rgba(212,160,23,.5);background:rgba(212,160,23,.08)}
.tm-login-flow{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-top:16px;
}
.tm-login-flow-step{
  padding:12px 10px;
  border-radius:14px;
  border:1px solid var(--tm-border);
  background:var(--tm-charcoal);
  cursor:pointer;
  transition:all .2s;
  text-align:left;
  color:inherit;
  font:inherit;
}
.tm-login-flow-step.is-active{
  border-color:rgba(212,160,23,.5);
  background:rgba(212,160,23,.1);
}
.tm-login-flow-step strong{display:block;color:var(--tm-white);font-size:.78rem;margin-bottom:4px}
.tm-login-flow-step span{display:block;color:var(--tm-muted);font-size:.68rem;line-height:1.35}
.tm-login-flow-detail{
  margin-top:14px;
  padding:14px;
  border-radius:14px;
  border:1px solid var(--tm-border);
  background:var(--tm-charcoal);
  font-size:.88rem;
  color:var(--tm-muted);
  min-height:64px;
}
.tm-login-flow-detail strong{color:var(--tm-white)}
.tm-login-trust{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  margin-top:16px;
}
.tm-login-trust div{
  padding:10px;
  border-radius:12px;
  border:1px solid var(--tm-border);
  background:rgba(255,255,255,.03);
  font-size:.72rem;
  font-weight:800;
  color:var(--tm-slate);
}
@media(max-width:900px){
  .tm-login-main{grid-template-columns:1fr;width:min(100% - 20px,560px)}
  .tm-login-form-card{order:-1}
  .tm-login-flow{grid-template-columns:repeat(2,1fr)}
  .tm-login-preview .tm-login-trust{display:none}
}
@media(max-width:520px){
  .tm-login-main{padding:12px 0 28px;width:min(100% - 16px,520px)}
  .tm-login-form-card,.tm-login-preview{padding:18px;border-radius:22px}
  .tm-login-mini{grid-template-columns:1fr 1fr}
}
