@import url('https://fonts.googleapis.com/css2?family=Sora:wght@600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --navy:#0e0b52;
  --navy-deep:#070531;
  --accent:#4b56e0;
  --accent-soft:#eef0fd;
  --surface:#ffffff;
  --bg:#f5f6fb;
  --border:#e4e6f2;
  --text:#1c1d33;
  --text-muted:#6b6d85;
  --danger:#ce2b37;
  --danger-soft:#fdecec;
  --ok:#009246;
  --ok-soft:#e8f6ee;
}
*{box-sizing:border-box;}
body.portal-body{
  margin:0;
  min-height:100vh;
  background:var(--bg);
  font-family:'Inter',sans-serif;
  color:var(--text);
  padding:40px 16px;
}

/* --- Login --- */
.portal-card{
  max-width:380px;
  margin:60px auto;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:32px 28px;
  box-shadow:0 6px 24px rgba(14,11,82,0.08);
}
.portal-card h1{
  font-family:'Sora',sans-serif;
  font-size:1.2rem;
  color:var(--navy-deep);
  margin:0 0 4px;
}
.portal-sub{color:var(--text-muted);font-size:.88rem;margin:0 0 20px;}

/* --- Pagina admin --- */
.portal-wrap{max-width:820px;margin:0 auto;}
.portal-topbar{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;
  font-size:.85rem;color:var(--text-muted);margin-bottom:20px;
}
.portal-topbar a{color:var(--accent);text-decoration:none;font-weight:600;}
.portal-topbar a:hover{text-decoration:underline;}
.portal-wrap h1{font-family:'Sora',sans-serif;color:var(--navy-deep);font-size:1.3rem;margin:0 0 18px;}
.portal-wrap h2{font-family:'Sora',sans-serif;color:var(--navy-deep);font-size:1rem;margin:28px 0 12px;}

/* --- Alert --- */
.portal-alert{
  background:var(--danger-soft);color:var(--danger);
  border-radius:10px;padding:10px 14px;font-size:.86rem;margin-bottom:16px;
}
.portal-alert-ok{background:var(--ok-soft);color:var(--ok);}

/* --- Campi form --- */
label.field{display:block;margin-bottom:14px;}
label.field span{display:block;font-size:.78rem;font-weight:500;color:var(--text-muted);margin-bottom:6px;}
input[type=text], input[type=password], select{
  width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;
  background:var(--surface);font-family:'Inter',sans-serif;font-size:.95rem;color:var(--text);
}
input[type=text]:focus, input[type=password]:focus, select:focus{
  outline:2px solid var(--accent-soft);border-color:var(--accent);
}

button{
  border:1px solid var(--border);background:var(--surface);color:var(--navy-deep);
  border-radius:999px;padding:10px 18px;cursor:pointer;font-family:'Inter',sans-serif;
  font-weight:500;font-size:.88rem;transition:border-color .12s, background .12s;
}
button:hover{border-color:var(--accent);background:var(--accent-soft);}
button.primary{
  background:linear-gradient(135deg, var(--navy) 0%, var(--accent) 100%);
  color:#fff;border:none;font-family:'Sora',sans-serif;font-weight:600;
  width:100%;padding:13px 18px;box-shadow:0 8px 20px rgba(75,86,224,0.28);
}
button.secondary{background:var(--surface);}
button.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent;}
button.danger:hover{background:var(--danger);color:#fff;}

/* --- Cards utente (admin) --- */
.user-card{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:16px 18px;margin-bottom:14px;
}
.user-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:10px;}
.user-row:last-child{margin-bottom:0;}
.user-row strong{font-size:.95rem;color:var(--navy-deep);}
.user-row select{width:auto;min-width:110px;}
.user-row input[type=password]{flex:1;min-width:180px;}
.user-row label.check{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);}
.user-meta{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--text-muted);margin-top:10px;}
.user-actions{display:flex;justify-content:flex-end;margin-top:6px;}

.portal-form-inline{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:18px;display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;
}
.portal-form-inline .field{flex:1;min-width:160px;margin-bottom:0;}
