/* portal.css — override minimi del portale autenticato PlantariB2B.
   Riusa le CSS-variable del design system OrtoLab 3D (style.css):
   --teal, --teal-d, --bg, --bg-soft, --ink, --ink2, --ink3, --rule, --white,
   --r, --r2, --shadow, --shadow-lg, --sf, --mono. */

/* ----- Layout shell del portale ----- */
.portal-body{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sf);
}

/* ----- Header minimale ----- */
.portal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 22px;
  border-bottom:1px solid var(--rule);
  background:var(--white);
}
.portal-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--ink);
}
.portal-brand img{width:28px;height:28px;display:block}
.portal-brand .brand-mono{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--teal);
}
.portal-nav{display:flex;align-items:center;gap:18px;font-size:14px}
.portal-nav a{color:var(--ink2)}
.portal-nav a:hover{color:var(--teal)}
.portal-user{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  color:var(--ink2);
}
.portal-logout{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--teal-d);
  /* form reset so the inline POST form looks identical to the old <a> */
  margin:0;padding:0;border:none;background:none;
}
.portal-logout button{
  font-family:inherit;font-size:inherit;letter-spacing:inherit;
  color:inherit;background:none;border:none;padding:0;cursor:pointer;
}
.portal-logout:hover,.portal-logout button:hover{text-decoration:underline}

/* ----- Main ----- */
.portal-main{
  flex:1;
  width:100%;
  max-width:980px;
  margin:0 auto;
  padding:34px 22px 60px;
}
.portal-main h1{font-size:26px;letter-spacing:-.02em;margin-bottom:8px}
.portal-card{
  background:var(--white);
  border:1px solid var(--rule);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:26px;
  margin-top:20px;
}

/* ----- Footer minimale ----- */
.portal-footer{
  border-top:1px solid var(--rule);
  padding:16px 22px;
  font-size:12px;
  color:var(--ink3);
  text-align:center;
}
.portal-footer .ce{font-family:var(--mono);letter-spacing:.04em}

/* ----- Card login (estende core/base.html, blocco auth) ----- */
.auth-wrap{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg-soft);
  padding:24px;
}
.auth-card{
  width:100%;
  max-width:400px;
  background:var(--white);
  border:1px solid var(--rule);
  border-radius:var(--r2);
  box-shadow:var(--shadow-lg);
  padding:34px 30px;
}
.auth-card .auth-brand{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
}
.auth-card .auth-brand img{width:32px;height:32px}
.auth-card h1{font-size:21px;letter-spacing:-.02em;margin-bottom:4px}
.auth-card .auth-sub{font-size:13px;color:var(--ink3);margin-bottom:22px}
.auth-field{margin-bottom:16px}
.auth-field label{
  display:block;
  font-size:12px;
  font-weight:600;
  color:var(--ink2);
  margin-bottom:6px;
}
.auth-field input{
  width:100%;
  padding:11px 13px;
  border:1px solid var(--rule);
  border-radius:var(--r);
  background:var(--bg);
  color:var(--ink);
}
.auth-field input:focus{outline:2.5px solid var(--teal);outline-offset:0;border-color:transparent}
.auth-btn{
  width:100%;
  padding:12px;
  border-radius:var(--r);
  background:var(--teal);
  color:var(--white);
  font-weight:600;
  font-size:15px;
  margin-top:6px;
}
.auth-btn:hover{background:var(--teal-d)}
.auth-error{
  background:#fdecec;
  border:1px solid #f3c2c2;
  color:#8a2020;
  border-radius:var(--r);
  padding:10px 12px;
  font-size:13px;
  margin-bottom:16px;
}
