/***** TEMA MODERNO: caratteri, colori e componenti comuni ai due temi (Bootstrap 3 e Bootstrap Italia) *****/

@font-face { font-family:'Titillium Web'; font-style:normal; font-weight:400; font-display:swap; src:url('../vendor/bootstrap-italia/fonts/Titillium_Web/TitilliumWeb-Regular.woff2') format('woff2'); }
@font-face { font-family:'Titillium Web'; font-style:normal; font-weight:600; font-display:swap; src:url('../vendor/bootstrap-italia/fonts/Titillium_Web/TitilliumWeb-SemiBold.woff2') format('woff2'); }
@font-face { font-family:'Titillium Web'; font-style:normal; font-weight:700; font-display:swap; src:url('../vendor/bootstrap-italia/fonts/Titillium_Web/TitilliumWeb-Bold.woff2') format('woff2'); }

:root {
  --gs-primary:#2457d6; --gs-primary-d:#1b43a8; --gs-primary-50:#eef3ff; --gs-primary-100:#dbe5ff;
  --gs-navy:#0f1f4b; --gs-bg:#f3f5fa; --gs-card:#ffffff; --gs-line:#e3e8f0; --gs-line2:#d3dae6;
  --gs-text:#1d2433; --gs-muted:#64708a;
  --gs-ok:#13865a; --gs-ok-50:#e8f7f0; --gs-warn:#a15c00; --gs-warn-50:#fff5e5; --gs-bad:#c62839; --gs-bad-50:#fdecee; --gs-info:#0b6f95; --gs-info-50:#e7f5fb;
  --gs-r:14px; --gs-r-sm:10px; --gs-shadow:0 1px 2px rgba(16,24,40,.05), 0 4px 14px -6px rgba(16,24,40,.10);
  --gs-hdr:112px;
}

/* ---- home ---- */
.gs-home { max-width:1240px; margin:0 auto; }
.gs-hello { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:24px 26px; border-radius:20px; color:#fff; background:radial-gradient(circle at 90% 10%, rgba(255,255,255,.16), transparent 45%), linear-gradient(120deg, var(--gs-navy) 0%, #1e3a8a 55%, var(--gs-primary) 100%); box-shadow:0 18px 40px -26px rgba(15,31,75,.8); margin-bottom:22px; }
.gs-hello h1, #gs-main .gs-hello h1 { color:#fff; font-size:28px; margin:0 0 4px; }
.gs-hello-date { margin:0 0 4px; font-size:13.5px; text-transform:uppercase; letter-spacing:.06em; opacity:.75; font-weight:600; }
.gs-hello-sub { margin:0; opacity:.9; }
.gs-hello-sub strong { color:#fff; }
.gs-hello-btn { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); color:#fff; }
.gs-hello-btn:hover, .gs-hello-btn:focus { background:#fff; color:var(--gs-navy); }
.gs-home-grid { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr); gap:26px; }
#gs-main .gs-sec { font-size:15px; text-transform:uppercase; letter-spacing:.07em; color:var(--gs-muted); margin:4px 0 12px; }
.gs-notes, .gs-list { display:grid; gap:10px; margin-bottom:24px; }
.gs-note { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:14px; background:#fff; border:1px solid var(--gs-line); box-shadow:var(--gs-shadow); color:var(--gs-text); text-decoration:none; transition:transform .15s, box-shadow .15s; }
.gs-note:hover, .gs-note:focus { text-decoration:none; color:var(--gs-text); transform:translateY(-1px); box-shadow:0 10px 24px -14px rgba(16,24,40,.35); }
.gs-note-ic { flex:none; display:grid; place-items:center; width:42px; height:42px; border-radius:12px; font-size:17px; top:0; }
.gs-note-txt { display:flex; flex-direction:column; min-width:0; }
.gs-note-txt strong { font-weight:600; font-size:15.5px; }
.gs-note-txt small { color:var(--gs-primary); font-weight:600; font-size:13.5px; }
.gs-note-bad .gs-note-ic { background:var(--gs-bad-50); color:var(--gs-bad); }
.gs-note-bad { border-left:4px solid var(--gs-bad); }
.gs-note-warn .gs-note-ic { background:var(--gs-warn-50); color:#c27600; }
.gs-note-info .gs-note-ic { background:var(--gs-info-50); color:var(--gs-info); }
.gs-note-ok .gs-note-ic { background:var(--gs-ok-50); color:var(--gs-ok); }
.gs-empty { display:flex; align-items:center; gap:14px; padding:18px; border-radius:14px; background:#fff; border:1px dashed var(--gs-line2); margin-bottom:24px; }
.gs-empty > .glyphicon { font-size:28px; color:var(--gs-ok); top:0; }
.gs-empty strong { display:block; font-size:16px; }
.gs-empty small { color:var(--gs-muted); font-size:14px; }
.gs-list-item { display:flex; gap:14px; padding:14px 16px; border-radius:14px; background:#fff; border:1px solid var(--gs-line); box-shadow:var(--gs-shadow); }
.gs-when { flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; width:52px; height:56px; border-radius:12px; background:var(--gs-primary-50); color:var(--gs-primary-d); line-height:1; }
.gs-when b { font-size:21px; }
.gs-when small { font-size:12px; text-transform:uppercase; font-weight:600; margin-top:3px; }
.gs-muted { color:var(--gs-muted); }
.gs-msg { margin-top:4px; font-style:italic; color:#47526b; }
.gs-tiles { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:12px; margin-bottom:18px; }
.gs-tile { display:flex; flex-direction:column; gap:3px; padding:16px; border-radius:16px; background:#fff; border:1px solid var(--gs-line); box-shadow:var(--gs-shadow); color:var(--gs-text); text-decoration:none; transition:transform .15s, box-shadow .15s, border-color .15s; }
.gs-tile:hover, .gs-tile:focus { text-decoration:none; color:var(--gs-text); transform:translateY(-2px); border-color:var(--gs-primary-100); box-shadow:0 14px 28px -16px rgba(36,87,214,.45); }
.gs-tile-ic { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--gs-primary-50); color:var(--gs-primary); font-size:18px; margin-bottom:8px; top:0; }
.gs-tile strong { font-size:16px; font-weight:700; }
.gs-tile small { color:var(--gs-muted); font-size:13px; line-height:1.35; }
.gs-manual { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:14px; background:var(--gs-primary-50); border:1px solid var(--gs-primary-100); color:var(--gs-text); text-decoration:none; }
.gs-manual:hover, .gs-manual:focus { text-decoration:none; color:var(--gs-text); background:var(--gs-primary-100); }
.gs-manual > .glyphicon { font-size:24px; color:var(--gs-primary); top:0; }
.gs-manual strong { display:block; }
.gs-manual small { color:var(--gs-muted); }
@media (max-width: 991px) { .gs-home-grid { grid-template-columns:1fr; gap:6px; } }
@media (max-width: 767px) {
  .gs-hello { padding:18px; border-radius:16px; margin-bottom:18px; }
  .gs-hello h1, #gs-main .gs-hello h1 { font-size:23px; }
  .gs-hello-btn { width:100%; }
  .gs-tiles { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
  .gs-tile { padding:14px; }
}

/* icone dell'accesso rapido: un colore diverso per ogni funzione */
.gs-tiles > .gs-tile:nth-child(8n+1) .gs-tile-ic { background:#eef3ff; color:#2457d6; }
.gs-tiles > .gs-tile:nth-child(8n+2) .gs-tile-ic { background:#fff4e0; color:#d97706; }
.gs-tiles > .gs-tile:nth-child(8n+3) .gs-tile-ic { background:#e7f7ef; color:#0f8a5f; }
.gs-tiles > .gs-tile:nth-child(8n+4) .gs-tile-ic { background:#f3edff; color:#7c3aed; }
.gs-tiles > .gs-tile:nth-child(8n+5) .gs-tile-ic { background:#ffeef3; color:#db2777; }
.gs-tiles > .gs-tile:nth-child(8n+6) .gs-tile-ic { background:#e6f6fa; color:#0e7490; }
.gs-tiles > .gs-tile:nth-child(8n+7) .gs-tile-ic { background:#fff0e8; color:#ea580c; }
.gs-tiles > .gs-tile:nth-child(8n+8) .gs-tile-ic { background:#edf0ff; color:#4f46e5; }

/* home sul telefono: saluto compatto, novità in righe sottili, accesso rapido a icone come un'app */
@media (max-width: 767px) {
  .gs-hello { display:block; padding:16px 18px; border-radius:18px; margin-bottom:18px; }
  .gs-hello-date { font-size:11.5px; margin-bottom:2px; }
  .gs-hello h1, #gs-main .gs-hello h1 { font-size:22px; margin-bottom:4px; }
  .gs-hello-sub { font-size:14px; line-height:1.45; }
  .gs-hello-btn { display:none; }
  .gs-home-grid { display:flex; flex-direction:column; gap:0; }
  #gs-main .gs-sec { font-size:12.5px; margin:0 0 10px 2px; }
  .gs-notes, .gs-list { gap:8px; margin-bottom:22px; }
  .gs-note, .gs-list-item { padding:12px; gap:12px; border-radius:14px; }
  .gs-note-ic { width:38px; height:38px; font-size:15px; border-radius:11px; }
  .gs-note-txt strong { font-size:14.5px; line-height:1.3; }
  .gs-note-txt small { font-size:13px; }
  .gs-empty { padding:12px 14px; margin-bottom:22px; border-style:solid; border-color:var(--gs-line); }
  .gs-empty > .glyphicon { font-size:22px; }
  .gs-empty strong { font-size:15px; }
  .gs-empty small { font-size:13px; line-height:1.35; }
  .gs-tiles { grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px 6px; padding:16px 8px 14px; margin-bottom:14px; background:#fff; border:1px solid var(--gs-line); border-radius:18px; box-shadow:var(--gs-shadow); }
  .gs-tile, .gs-tile:hover, .gs-tile:focus { align-items:center; text-align:center; gap:6px; padding:0; background:transparent; border:0; box-shadow:none; transform:none; }
  .gs-tile-ic { width:52px; height:52px; margin:0; border-radius:16px; font-size:20px; }
  .gs-tile:active .gs-tile-ic { transform:scale(.94); }
  .gs-tile strong { font-size:12.5px; font-weight:600; line-height:1.2; }
  .gs-tile small { display:none; }
  .gs-tiles > .gs-tile[href$="/utenti/profilo/"] { display:none; }
  .gs-manual { padding:12px 14px; border-radius:14px; }
  .gs-manual > .glyphicon { font-size:20px; }
  .gs-manual small { display:none; }
}
@media (max-width: 340px) {
  .gs-tile-ic { width:46px; height:46px; }
  .gs-tile strong { font-size:11.5px; }
}
