/* Stili comuni del portale Dipendenti Bertin */
:root {
  --primary: #104f27;
  --primary-l: #196634;
  --border: #e2e8f0;
  --text: #1a202c; --muted: #718096;
  --sh: 0 1px 3px rgba(0,0,0,.08);
  --r: 8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f0f4f8;color:var(--text);font-size:14px;line-height:1.4}

/* ── HEADER ── */
header{background:var(--primary);color:#fff;height:56px;padding:0 14px;display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:200;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.hd-brand h1{font-size:15px;font-weight:700;white-space:nowrap}
.hd-brand small{font-size:10px;opacity:.6;text-transform:uppercase;letter-spacing:.8px;display:block}
.hd-home{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:#fff;text-decoration:none;font-size:18px;background:rgba(255,255,255,.12);flex-shrink:0;transition:background .15s}
.hd-home:hover{background:rgba(255,255,255,.25)}
.hd-act{display:flex;align-items:center;gap:5px;flex-shrink:0;margin-left:auto}
.hd-user{font-size:11px;opacity:.75;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.btn{padding:5px 11px;border-radius:6px;border:none;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s;white-space:nowrap}
.btn-gh{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22)}
.btn-gh:hover{background:rgba(255,255,255,.22)}
.btn-gh.active{background:#fff;color:var(--primary);font-weight:700}

/* ── LOADER ── */
.loader{display:none;position:fixed;inset:0;background:rgba(255,255,255,.75);z-index:999;align-items:center;justify-content:center}
.loader.open{display:flex}
.spinner{width:36px;height:36px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── LOGIN ── */
.login{display:none;position:fixed;inset:0;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-l) 100%);z-index:1000;flex-direction:column;align-items:center;justify-content:center;padding:16px}
.login.open{display:flex}
.login-box{background:#fff;border-radius:16px;padding:36px 32px 28px;width:400px;max-width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.login-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:26px}
.login-logo .mk{height:64px;width:auto}
.login-logo .tx{height:48px;width:auto;max-width:calc(100% - 60px)}
.login-box h1{font-size:18px;color:var(--text);margin-bottom:4px;padding-top:22px;border-top:1px solid var(--border)}
.login-box p{color:var(--muted);font-size:13px;margin-bottom:22px}
.btn-google{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;padding:11px 18px;border-radius:8px;border:1.5px solid #dadce0;background:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;color:#3c4043;transition:background .15s,box-shadow .15s}
.btn-google:hover{background:#f8faf9;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.login-err{display:none;color:#c53030;background:#fff5f5;border:1px solid #fed7d7;border-radius:6px;font-size:13px;margin-top:16px;padding:8px 10px}
.login-err.show{display:block}
.login-ft{color:rgba(255,255,255,.7);font-size:11px;margin-top:18px}
@media(max-width:420px){.login-box{padding:28px 20px 22px}.login-logo .mk{height:52px}.login-logo .tx{height:40px}}
