/* RIGATO Area riservata — palette del sito hrste.it applicata al layout canonico HRSTE */
:root{
  --ink:#0a1826;
  --ink-2:#132638;
  --accent:#d94b0f;
  --accent-dark:#b73d0a;
  --text:#4a5568;
  --text-strong:#0a1826;
  --bg:#ffffff;
  --bg-pause:#f5f2ea;
  --line:#e8e2d5;
  --slate-50:#f8fafc;
  --slate-100:#f1f5f9;
  --slate-200:#e2e8f0;
  --slate-500:#64748b;
  --slate-700:#334155;
  --emerald-50:#e8f5ec;
  --emerald-700:#0d3f22;
  --amber-50:#fff4db;
  --amber-700:#9A6700;
  --red-50:#fdecea;
  --red-700:#7a1a10;
  --blue-50:#dbeafe;
  --blue-700:#1e40af;
  --r-btn:2px;
  --r-input:2px;
  --r-card:6px;
  --topbar-h:64px;
  --sidebar-w:240px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font:15px/1.5 'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}

/* --- Topbar --- */
.topbar{
  position:sticky;top:0;z-index:20;
  height:var(--topbar-h);
  background:var(--ink);
  color:#fff;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;
  border-bottom:2px solid var(--accent);
}
.topbar-brand{
  display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;
}
.topbar-brand:hover{text-decoration:none}
.topbar-logo{
  width:36px;height:36px;
  background:var(--accent);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:20px;
  border-radius:var(--r-card);
}
.topbar-title{
  font-weight:700;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;
}
.topbar-sub{
  color:#c8d0da;font-weight:400;letter-spacing:.08em;
}
.topbar-user{
  display:flex;align-items:center;gap:14px;
}
.user-avatar{
  width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  object-fit:cover;
}
.user-info{font-size:.78rem;line-height:1.3;text-align:right;color:#c8d0da}
.user-name{color:#fff;font-weight:600}
.user-email{color:rgba(255,255,255,.6);font-size:.72rem}
.btn-logout{
  color:#fff;background:transparent;
  border:1px solid rgba(255,255,255,.25);
  padding:8px 16px;
  font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  border-radius:var(--r-btn);
  transition:.15s;
  text-decoration:none;
}
.btn-logout:hover{background:var(--accent);border-color:var(--accent);text-decoration:none}

/* --- App layout: sidebar + main --- */
.app{
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  min-height:calc(100vh - var(--topbar-h));
}
.sidebar{
  background:var(--bg-pause);
  border-right:1px solid var(--line);
  padding:24px 0;
  display:flex;flex-direction:column;
  position:sticky;top:var(--topbar-h);
  height:calc(100vh - var(--topbar-h));
}
.sidebar nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 12px}
.side-item{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;
  color:var(--text-strong);
  text-decoration:none;
  font-size:.88rem;font-weight:500;
  border-radius:var(--r-card);
  transition:.15s;
}
.side-item:hover{background:#e8e2d5;text-decoration:none}
.side-item--active{
  background:var(--ink);color:#fff;font-weight:600;
}
.side-item--active:hover{background:var(--ink);text-decoration:none}
.side-icon{font-size:1.05rem;width:20px;text-align:center}
.sidebar-foot{
  padding:20px 24px;border-top:1px solid var(--line);
  font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;
}
.sidebar-foot a{color:var(--ink);text-decoration:none}
.sidebar-foot a:hover{color:var(--accent)}

/* --- Main content --- */
.main{padding:32px 40px 60px;max-width:1200px}
.page-h1{
  font-family:'Fraunces',Georgia,serif;
  font-size:2rem;font-weight:700;color:var(--ink);
  margin-bottom:8px;line-height:1.2;letter-spacing:-.01em;
}
.page-sub{
  color:var(--slate-500);
  margin-bottom:28px;
}

/* --- Card --- */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--r-card);
  margin-bottom:20px;
  overflow:hidden;
}
.card-header{
  padding:18px 24px;border-bottom:1px solid var(--line);
  background:#fff;
}
.card-header h2{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.15rem;font-weight:700;color:var(--ink);margin-bottom:4px;
}
.card-header .sub{
  font-size:.85rem;color:var(--slate-500);
}
.card-body{padding:24px}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .app{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;flex-direction:row;overflow-x:auto}
  .sidebar nav{flex-direction:row;gap:4px}
  .sidebar-foot{border-top:0;border-left:1px solid var(--line)}
  .main{padding:24px 20px 40px}
}

/* --- Module tiles (dashboard) --- */
.tile{
  display:block;
  background:#fff;
  border:1px solid var(--line);
  border-left:4px solid var(--accent);
  border-radius:var(--r-card);
  padding:22px 24px;
  color:var(--text);
  text-decoration:none;
  transition:.15s;
}
.tile:hover{
  background:var(--bg-pause);
  border-left-color:var(--ink);
  text-decoration:none;
  transform:translateY(-1px);
}
.tile-icon{font-size:1.8rem;margin-bottom:10px}
.tile-title{
  font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:1.15rem;
  color:var(--ink);margin-bottom:6px;
}
.tile-desc{font-size:.85rem;color:var(--slate-500);line-height:1.5}
.tile-status{
  display:inline-block;margin-top:12px;
  padding:2px 10px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  border-radius:2px;
}
.tile-status--pending{background:var(--amber-50);color:var(--amber-700)}
.tile-status--ready{background:var(--emerald-50);color:var(--emerald-700)}

/* --- Alert --- */
.alert{
  padding:14px 18px;border-left:4px solid;
  border-radius:var(--r-card);
  margin-bottom:20px;font-size:.9rem;
}
.alert-info{background:var(--blue-50);border-color:#3b82f6;color:var(--blue-700)}
.alert-warning{background:var(--amber-50);border-color:#f59e0b;color:var(--amber-700)}
.alert-success{background:var(--emerald-50);border-color:#10b981;color:var(--emerald-700)}
.alert-danger{background:var(--red-50);border-color:#dc2626;color:var(--red-700)}

/* --- Buttons (piatti, spigolosi, uppercase — stile RIGATO) --- */
.btn{
  display:inline-block;
  background:var(--ink);color:#fff;
  border:none;
  border-radius:var(--r-btn);
  padding:12px 22px;
  font:inherit;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;
  cursor:pointer;text-decoration:none;
  transition:background .15s;
}
.btn:hover{background:var(--accent);text-decoration:none;color:#fff}
.btn-accent{background:var(--accent)}
.btn-accent:hover{background:var(--accent-dark)}
.btn-ghost{
  background:#fff;color:var(--ink);border:1px solid var(--ink);
  border-radius:var(--r-btn);padding:12px 22px;
  font:inherit;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;
  cursor:pointer;text-decoration:none;
  transition:.15s;margin-right:8px;
}
.btn-ghost:hover{background:var(--ink);color:#fff;text-decoration:none}

/* --- Form (canonico HRSTE: label leggibile normale case, form-group compatto) --- */
label{
  display:block;font-size:.85rem;font-weight:600;color:var(--text-strong);
  margin-bottom:5px;
}
input[type=text],input[type=email],input[type=password],input[type=color],
input[type=number],input[type=date],input[type=datetime-local],input[type=url],
input[type=tel],select,textarea{
  width:100%;padding:9px 12px;
  border:1px solid var(--line);
  border-radius:var(--r-input);
  font:inherit;font-size:.9rem;background:#fff;color:var(--ink);
  transition:border-color .15s;
}
input[type=color]{padding:0;width:60px;height:38px;cursor:pointer}
input[type=file]{
  width:100%;padding:9px 12px;font-size:.85rem;
  border:1px dashed var(--line);background:var(--bg-pause);border-radius:var(--r-input);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,75,15,.12)}
textarea{min-height:80px;font-family:inherit;line-height:1.5}
input[type=submit],button[type=submit]{cursor:pointer}

.form-group{margin-bottom:16px}
.form-group + .form-group{margin-top:12px}
.form-group .help,.form-group .nota-help{
  font-size:.78rem;color:var(--slate-500);margin-top:4px;line-height:1.4;
}

/* Griglia densi campi (canonico HRSTE): auto-fill min 230px */
.griglia{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:14px 18px;
  margin:12px 0;
}

/* Checkbox/radio inline */
.check label{
  display:inline-flex;align-items:center;gap:6px;
  font-weight:400;margin-right:16px;
  text-transform:none;letter-spacing:0;font-size:.9rem;
  color:var(--text-strong);
}
.check input{width:auto;margin:0}
.check{margin:8px 0}

/* Table wrapper scrollabile */
.tw{overflow-x:auto;margin:12px 0;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.tw table{border-collapse:collapse;width:100%;font-size:.88rem}
.tw th{background:var(--ink);color:#fff;text-align:left;padding:10px 12px;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;white-space:nowrap}
.tw td{border-top:1px solid var(--line);padding:10px 12px;vertical-align:top;line-height:1.45}
.tw tr:hover td{background:var(--bg-pause)}

/* Bottoni HRSTE-compat: .btn.sec .btn.arancio */
.btn.sec{background:#fff;color:var(--ink);border:1px solid var(--ink)}
.btn.sec:hover{background:var(--ink);color:#fff;text-decoration:none}
.btn.arancio{background:var(--accent);color:#fff}
.btn.arancio:hover{background:var(--accent-dark);color:#fff}

/* Alias .errore = alert-danger, .box = alert-info soft */
.errore{
  background:var(--red-50);border-left:4px solid #dc2626;color:var(--red-700);
  padding:14px 18px;border-radius:var(--r-card);margin-bottom:16px;font-size:.9rem;
}
.errore strong{color:var(--red-700)}

/* .box = callout info/help (canonico HRSTE) */
.box{
  background:var(--bg-pause);border-left:4px solid var(--accent);
  padding:14px 18px;border-radius:var(--r-card);margin:14px 0;
  font-size:.9rem;color:var(--text);
}
.box p{margin:6px 0}
.box p:first-child{margin-top:0}
.box p:last-child{margin-bottom:0}

/* .nota = testo grigio piccolo */
.nota{color:var(--slate-500);font-size:.85rem;line-height:1.5}
p.nota,.nota{margin:6px 0}

/* .tag varianti canoniche HRSTE */
.tag{
  display:inline-block;padding:2px 10px;border-radius:2px;
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  background:var(--slate-100);color:var(--slate-700);
}
.tag.rosso{background:var(--red-50);color:var(--red-700)}
.tag.verde{background:var(--emerald-50);color:var(--emerald-700)}
.tag.giallo{background:var(--amber-50);color:var(--amber-700)}
.tag.k{background:var(--ink);color:#fff}

/* --- Fullscreen (login, errori) --- */
.fullscreen{
  min-height:100vh;background:var(--ink);
  display:grid;place-items:center;padding:20px;
}
.fs-card{
  background:#fff;
  padding:40px 44px;
  max-width:480px;width:100%;
  border-radius:var(--r-card);
  border-top:4px solid var(--accent);
}
.fs-card h1{
  font-family:'Fraunces',Georgia,serif;
  font-size:1.4rem;font-weight:700;color:var(--ink);margin-bottom:12px;
}
.fs-card p{color:var(--text);margin-bottom:18px;line-height:1.6}
.fs-card .btn{width:100%;text-align:center;padding:14px 20px}
.fs-card .fs-google{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:#fff;color:var(--ink);
  border:1px solid var(--line);
  padding:14px 20px;width:100%;text-align:center;
  font-weight:600;text-transform:none;letter-spacing:0;font-size:.95rem;
  border-radius:var(--r-btn);text-decoration:none;
  transition:.15s;
}
.fs-card .fs-google:hover{background:var(--bg-pause);border-color:var(--ink);text-decoration:none}
.fs-card .fs-meta{
  margin-top:24px;text-align:center;color:var(--slate-500);font-size:.8rem;
}
.fs-card .fs-meta a{color:var(--slate-500)}
