/* ── GREST Platform v1.3.16 ─────────────────────────────────────── */

:root {
  --navy:    #173054;
  --navy2:   #1e3d68;
  --navy3:   #243f6a;
  --accent:  #ef944d;
  --accent2: #e07d36;
  --green:   #22c55e;
  --red:     #ef4444;
  --amber:   #f59e0b;
  --surface: #f4f6fa;
  --card:    #ffffff;
  --border:  #dde3ef;
  --text:    #1a2a3d;
  --muted:   #6b7a90;
  --light:   #e8edf5;
  --radius:  10px;
  --shadow:  0 1px 4px rgba(23,48,84,.07), 0 4px 16px rgba(23,48,84,.06);
}

*, *::before, *::after { box-sizing: border-box; }

.lase-grest-root {
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  background: var(--surface);
  min-height: 100vh;
}

/* ── BOOT LOADER ─────────────────────────────────────────────── */
.lg-boot-loader {
  display: flex; align-items: center; justify-content: center;
  gap: 12px; padding: 60px 0; color: var(--muted); font-size: 14px;
}
.lg-boot-spinner {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid var(--border);
  border-top-color: var(--accent);
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── SHELL ───────────────────────────────────────────────────── */
.lase-grest-shell {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px 40px;
}

/* ── TOPBAR ──────────────────────────────────────────────────── */
.lg-topbar {
  background: var(--navy);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 20px;
  height: 56px;
  margin: 0 -16px 20px;
  position: sticky; top: 0; z-index: 100;
  box-shadow: 0 2px 8px rgba(23,48,84,.18);
}
.lg-topbar-brand {
  display: flex; align-items: center; gap: 10px;
}
.lg-topbar-badge {
  background: var(--accent);
  color: var(--navy);
  font-weight: 600;
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: .03em;
}
.lg-topbar h1 {
  margin: 0; font-size: 16px; font-weight: 600; color: #fff; line-height: 1;
}
.lg-topbar-user {
  display: flex; align-items: center; gap: 10px;
}
.lg-topbar-user-name { font-size: 13px; color: rgba(255,255,255,.75); }
.lg-topbar-role {
  font-size: 11px; font-weight: 500; padding: 3px 8px;
  background: rgba(255,255,255,.1); border-radius: 6px; color: #fff;
}

/* ── BTN BASE ────────────────────────────────────────────────── */
button, .lg-btn { cursor: pointer; font-family: inherit; font-size: 13px; }
.lg-btn-primary {
  background: var(--accent); color: var(--navy);
  border: none; border-radius: 8px; padding: 8px 16px;
  font-weight: 600; font-size: 13px;
  transition: background .15s, transform .1s;
}
.lg-btn-primary:hover  { background: var(--accent2); }
.lg-btn-primary:active { transform: scale(.98); }
.lg-btn-primary:disabled { opacity: .55; cursor: not-allowed; }

.lg-btn-secondary {
  background: #fff; color: var(--navy);
  border: 1px solid var(--border); border-radius: 8px;
  padding: 7px 14px; font-weight: 500; font-size: 13px;
  transition: background .15s, border-color .15s;
}
.lg-btn-secondary:hover { background: var(--light); border-color: #c5cfe0; }
.lg-btn-secondary.sm, .lg-btn-primary.sm { padding: 5px 10px; font-size: 12px; }

.lg-btn-ghost {
  background: none; border: none; color: var(--navy); font-weight: 500;
  padding: 0; text-decoration: underline; font-size: 13px;
}
.lg-btn-ghost:hover { color: var(--accent2); }

.lg-btn-danger {
  background: #fff1f1; color: #b91c1c;
  border: 1px solid #fca5a5; border-radius: 8px;
  padding: 5px 10px; font-size: 12px; font-weight: 500;
  transition: background .15s;
}
.lg-btn-danger:hover { background: #fee2e2; }

.lg-btn-logout {
  background: rgba(255,255,255,.12);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  transition: background .15s;
}
.lg-btn-logout:hover { background: rgba(255,255,255,.22); }

/* ── NAV TABS ────────────────────────────────────────────────── */
.lg-nav {
  display: flex; gap: 4px; flex-wrap: wrap;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  padding: 5px;
  margin-bottom: 20px;
  box-shadow: var(--shadow);
}
.lg-nav-tab {
  flex: 0 0 auto;
  display: flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  border-radius: 7px;
  border: none; background: none;
  color: var(--muted);
  font-size: 13px; font-weight: 500; font-family: inherit;
  cursor: pointer;
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.lg-nav-tab:hover  { background: var(--light); color: var(--text); }
.lg-nav-tab.active { background: var(--navy); color: #fff; }
.lg-nav-tab .lg-badge-count {
  font-size: 10px; font-weight: 600; padding: 1px 6px;
  border-radius: 10px; background: var(--accent); color: var(--navy);
  min-width: 18px; text-align: center; line-height: 16px;
}
.lg-nav-tab.active .lg-badge-count { background: rgba(255,255,255,.25); color: #fff; }

/* ── CARDS ───────────────────────────────────────────────────── */
.lg-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin-bottom: 16px;
  box-shadow: var(--shadow);
}
.lg-card-header {
  display: flex; align-items: flex-start;
  justify-content: space-between; gap: 12px;
  margin-bottom: 14px;
}
.lg-card-header h2, .lg-card-header h3 {
  margin: 0; font-size: 15px; font-weight: 600; color: var(--navy);
}
.lg-card-sub { color: var(--muted); font-size: 12px; margin-top: 2px; }

/* ── STAT GRID ───────────────────────────────────────────────── */
.lg-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.lg-stat {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  box-shadow: var(--shadow);
}
.lg-stat-label {
  font-size: 11px; font-weight: 500; color: var(--muted);
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px;
}
.lg-stat-value {
  font-size: 26px; font-weight: 600; color: var(--navy); line-height: 1;
}
.lg-stat-value.accent { color: var(--accent2); }
.lg-stat-value.green  { color: #16a34a; }
.lg-stat-value.amber  { color: #b45309; }

/* ── TABLES ──────────────────────────────────────────────────── */
.lg-table-wrap { overflow-x: auto; border-radius: 8px; }
.lg-table {
  width: 100%; border-collapse: collapse;
  font-size: 13px; color: var(--text);
}
.lg-table thead th {
  padding: 8px 12px;
  text-align: left;
  font-size: 11px; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: .05em;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  white-space: nowrap;
}
.lg-table thead th:first-child { border-radius: 8px 0 0 0; }
.lg-table thead th:last-child  { border-radius: 0 8px 0 0; }
.lg-table tbody tr {
  transition: background .1s;
}
.lg-table tbody tr:hover { background: #f8f9fc; }
.lg-table tbody tr + tr > td { border-top: 1px solid #f0f2f7; }
.lg-table tbody td {
  padding: 9px 12px; vertical-align: middle; line-height: 1.4;
}
.lg-table-empty td {
  color: var(--muted); text-align: center; padding: 28px;
}

/* ── PILLS / BADGES ──────────────────────────────────────────── */
.lg-pill {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11px; font-weight: 500;
  white-space: nowrap;
}
.lg-pill-gray   { background: var(--light); color: var(--muted); }
.lg-pill-blue   { background: #dbeafe; color: #1e40af; }
.lg-pill-green  { background: #dcfce7; color: #15803d; }
.lg-pill-amber  { background: #fef3c7; color: #92400e; }
.lg-pill-red    { background: #fee2e2; color: #b91c1c; }
.lg-pill-warn   { background: #fef9c3; color: #713f12; border: 1px solid #fde047; }

/* ── FORMS ───────────────────────────────────────────────────── */
.lg-form { display: flex; flex-direction: column; gap: 10px; }
.lg-form-row { display: grid; gap: 10px; }
.lg-col-2  { grid-template-columns: 1fr 1fr; }
.lg-col-3  { grid-template-columns: 1fr 1fr 1fr; }
.lg-col-4  { grid-template-columns: 1fr 1fr 1fr 1fr; }
.lg-span-2 { grid-column: span 2; }
.lg-span-3 { grid-column: span 3; }
.lg-span-4 { grid-column: span 4; }

.lg-field { display: flex; flex-direction: column; gap: 4px; }
.lg-label {
  font-size: 12px; font-weight: 500; color: var(--muted);
}
.lg-label.required::after { content: ' *'; color: #e11d48; }

input[type=text], input[type=email], input[type=password],
input[type=date], input[type=number], input[type=time],
select, textarea {
  font-family: inherit; font-size: 13px; color: var(--text);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 11px;
  width: 100%;
  min-height: 36px;
  transition: border-color .15s, box-shadow .15s;
  outline: none;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(23,48,84,.08);
}
textarea { min-height: 72px; resize: vertical; }
select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7a90' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; padding-right: 30px; }

.lg-form-actions {
  display: flex; align-items: center; gap: 10px;
  padding-top: 6px; flex-wrap: wrap;
}

/* ── FORM MESSAGE ────────────────────────────────────────────── */
.lg-msg {
  display: none;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 13px;
}
.lg-msg.show  { display: block; }
.lg-msg.ok    { background: #dcfce7; color: #15803d; }
.lg-msg.error { background: #fee2e2; color: #b91c1c; }

/* ── TOAST ───────────────────────────────────────────────────── */
#lg-toast-container {
  position: fixed; bottom: 20px; right: 20px;
  z-index: 9999; display: flex; flex-direction: column; gap: 8px;
}
.lg-toast {
  padding: 11px 16px;
  border-radius: 9px;
  font-size: 13px; font-weight: 500;
  box-shadow: 0 4px 18px rgba(0,0,0,.14);
  animation: toastIn .2s ease;
  max-width: 320px;
}
.lg-toast.ok    { background: #166534; color: #fff; }
.lg-toast.error { background: #991b1b; color: #fff; }
@keyframes toastIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

/* ── SECTION HEADER ──────────────────────────────────────────── */
.lg-section { margin-bottom: 10px; }
.lg-section h3 { margin: 0 0 4px; font-size: 14px; font-weight: 600; color: var(--navy); }
.lg-section-divider {
  border: none; border-top: 1px solid var(--border);
  margin: 14px 0 10px;
}
.lg-subsection-title {
  font-size: 12px; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: .05em;
  padding: 10px 0 6px;
  border-top: 1px solid var(--border);
  margin-top: 10px;
}

/* ── STEP WIZARD ─────────────────────────────────────────────── */
.lg-steps {
  display: flex; gap: 0; margin-bottom: 22px; overflow-x: auto;
  border-bottom: 2px solid var(--border);
}
.lg-step {
  display: flex; align-items: center; gap: 7px;
  padding: 10px 16px 12px;
  font-size: 13px; font-weight: 500; color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  white-space: nowrap; cursor: default;
}
.lg-step.active { color: var(--navy); border-bottom-color: var(--accent); }
.lg-step.done   { color: var(--muted); }
.lg-step-num {
  width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  background: var(--light); color: var(--muted);
  flex-shrink: 0;
}
.lg-step.active .lg-step-num { background: var(--navy); color: #fff; }
.lg-step.done   .lg-step-num { background: var(--green); color: #fff; }

.lg-step-panel { display: none; }
.lg-step-panel.active { display: block; }
.lg-step-nav {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 16px; padding-top: 14px;
  border-top: 1px solid var(--border);
}

/* ── CHECKBOXES ──────────────────────────────────────────────── */
.lg-check-row {
  display: flex; align-items: flex-start; gap: 9px;
  padding: 8px 12px;
  background: var(--surface);
  border-radius: 8px;
  font-size: 13px; line-height: 1.4;
}
.lg-check-row input[type=checkbox], .lg-check-row input[type=radio] {
  width: 16px; height: 16px; min-height: auto; flex-shrink: 0; margin-top: 2px;
  accent-color: var(--navy);
}
.lg-check-list { display: flex; flex-direction: column; gap: 6px; }
.lg-week-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 8px; margin-bottom: 6px;
}
.lg-week-check {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px; cursor: pointer;
  transition: border-color .15s, background .15s;
}
.lg-week-check:hover { border-color: var(--navy); background: var(--light); }
.lg-week-check input { width: 15px; height: 15px; min-height: auto; accent-color: var(--navy); }
.lg-week-check small { font-size: 11px; color: var(--muted); display: block; }
.lg-week-check.full small { color: #dc2626; }

/* ── UPLOAD ──────────────────────────────────────────────────── */
.lg-upload-zone {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; border: 2px dashed var(--border); border-radius: 9px;
  padding: 20px; cursor: pointer; text-align: center;
  transition: border-color .15s, background .15s;
  background: var(--surface);
}
.lg-upload-zone:hover { border-color: var(--navy); background: var(--light); }
.lg-upload-zone span { font-size: 13px; color: var(--muted); }
.lg-upload-zone input { display: none; }
.lg-upload-name { font-size: 12px; color: var(--navy); margin-top: 4px; }

/* ── ATTENDANCE TABLE ────────────────────────────────────────── */
.lg-attend-table input[type=time],
.lg-attend-table input[type=text] {
  min-height: 30px; padding: 5px 8px; font-size: 12px;
}
.lg-attend-table select {
  min-height: 30px; padding: 5px 8px; font-size: 12px;
  padding-right: 24px;
}
.lg-attend-row.absent td { background: #fff8f8; }
.lg-health-flag {
  display: inline-block; width: 8px; height: 8px;
  border-radius: 50%; background: var(--amber);
  margin-left: 4px; vertical-align: middle;
}

/* ── CHILD DETAIL ────────────────────────────────────────────── */
.lg-detail-card {
  background: var(--card); border: 2px solid var(--light);
  border-radius: var(--radius); padding: 20px;
  margin-bottom: 16px; box-shadow: var(--shadow);
}
.lg-detail-toolbar {
  display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 14px;
}
.lg-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px; margin-bottom: 16px;
}
.lg-panel {
  background: var(--surface);
  border-radius: 8px; padding: 14px;
}
.lg-panel h4 { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--navy); }
.lg-panel p, .lg-panel li { font-size: 13px; line-height: 1.45; margin: 0 0 4px; }
.lg-panel ul { margin: 0; padding-left: 16px; }
.lg-panel li + li { margin-top: 3px; }

/* ── WEEK DETAIL EXPAND ──────────────────────────────────────── */
.lg-week-expand {
  background: var(--light);
  border-top: 1px solid var(--border);
  padding: 10px 14px;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}
.lg-week-expand .lg-table tbody td { font-size: 12px; padding: 6px 10px; }

/* ── LOGIN ───────────────────────────────────────────────────── */
.lg-login-wrap {
  max-width: 400px; margin: 60px auto 0;
}
.lg-login-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 32px;
  box-shadow: var(--shadow);
}
.lg-login-badge {
  display: inline-block; background: var(--navy);
  color: #fff; font-size: 12px; font-weight: 600;
  padding: 4px 10px; border-radius: 8px; margin-bottom: 10px;
  letter-spacing: .04em;
}
.lg-login-card h2 {
  margin: 0 0 4px; font-size: 20px; font-weight: 600; color: var(--navy);
}
.lg-login-card p { margin: 0 0 20px; font-size: 13px; color: var(--muted); }
.lg-login-card .lg-form { gap: 12px; }

/* ── PASSWORD STRIP ──────────────────────────────────────────── */
.lg-pw-row {
  display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 8px; align-items: end;
}


/* ── QUICK SEARCH ────────────────────────────────────────────── */
.lg-quick-search-results { margin-top: 8px; }
.lg-quick-search-list { display:flex; flex-direction:column; gap:8px; }
.lg-quick-search-item {
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:10px 12px; border:1px solid var(--border); border-radius:8px;
  background:#fff; color:var(--text); text-align:left;
}
.lg-quick-search-item:hover { background: var(--light); border-color:#c5cfe0; }
.lg-quick-search-main { display:flex; flex-direction:column; gap:2px; min-width:0; }
.lg-quick-search-main strong { font-size:13px; color:var(--navy); }
.lg-quick-search-main small { font-size:11px; color:var(--muted); }
.lg-quick-search-side { display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.lg-quick-search-empty {
  padding:10px 12px; border:1px dashed var(--border); border-radius:8px;
  font-size:12px; color:var(--muted); background:var(--surface);
}

/* ── FILTER BAR ──────────────────────────────────────────────── */
.lg-filter-bar {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  margin-bottom: 14px;
}
.lg-filter-bar input, .lg-filter-bar select {
  width: auto; min-width: 180px;
}
.lg-filter-bar label {
  font-size: 12px; font-weight: 500; color: var(--muted);
}

/* ── LINKS ───────────────────────────────────────────────────── */
a { color: var(--navy); text-decoration: none; }
a:hover { text-decoration: underline; }
.lg-link { color: var(--accent2); font-weight: 500; cursor: pointer; text-decoration: underline; }

/* ── UTILS ───────────────────────────────────────────────────── */
.lg-muted   { color: var(--muted); }
.lg-small   { font-size: 12px; }
.lg-right   { text-align: right; }
.lg-nowrap  { white-space: nowrap; }
.lg-bold    { font-weight: 600; }
.lg-action-row { display: flex; gap: 6px; }
.lg-hidden  { display: none !important; }
.lg-inline-note {
  font-size: 12px; color: var(--muted);
  padding: 7px 10px; background: var(--surface);
  border-radius: 6px; border: 1px solid var(--border);
}

/* ── PAGINAZIONE ─────────────────────────────────────────────── */
.lg-pagination {
  display: flex; gap: 6px; align-items: center;
  justify-content: flex-end; margin-top: 10px; flex-wrap: wrap;
}
.lg-pagination button {
  min-width: 32px; height: 32px; border-radius: 6px; border: 1px solid var(--border);
  background: #fff; color: var(--text); font-size: 13px; font-weight: 500;
  transition: background .12s;
}
.lg-pagination button:hover   { background: var(--light); }
.lg-pagination button.active  { background: var(--navy); color: #fff; border-color: var(--navy); }
.lg-pagination button:disabled { opacity: .4; cursor: not-allowed; }

/* ── STATUS BADGES ENROLLMENT ────────────────────────────────── */
.es-draft     { background:#f1f5f9; color:#64748b; }
.es-in_review { background:#fef9c3; color:#854d0e; }
.es-confirmed { background:#dcfce7; color:#166534; }
.es-suspended { background:#ffedd5; color:#9a3412; }
.es-cancelled { background:#fee2e2; color:#991b1b; }

/* ── PRINT ───────────────────────────────────────────────────── */
@media print {
  body * { visibility: hidden !important; }
  #lg-printable, #lg-printable * { visibility: visible !important; }
  #lg-printable {
    position: absolute; left: 0; top: 0; width: 100%;
    background: #fff !important; color: #111 !important;
    font-family: Arial, sans-serif; font-size: 12px;
  }
  .lg-detail-toolbar { display: none !important; }
  .lg-table th, .lg-table td { border: 1px solid #ccc !important; }
}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 900px) {
  .lg-col-4 { grid-template-columns: 1fr 1fr; }
  .lg-span-3, .lg-span-4 { grid-column: span 2; }
  .lg-pw-row { grid-template-columns: 1fr 1fr; }
  .lg-pw-row .lg-btn-primary { grid-column: span 2; }
}
@media (max-width: 640px) {
  .lase-grest-shell { padding: 0 10px 32px; }
  .lg-topbar { margin: 0 -10px 16px; padding: 0 14px; }
  .lg-col-2, .lg-col-3, .lg-col-4 { grid-template-columns: 1fr; }
  .lg-span-2, .lg-span-3, .lg-span-4 { grid-column: span 1; }
  .lg-stats { grid-template-columns: 1fr 1fr; }
  .lg-pw-row { grid-template-columns: 1fr; }
  .lg-pw-row .lg-btn-primary { grid-column: span 1; }
  .lg-card { padding: 14px; }
  .lg-table { font-size: 12px; }
  .lg-table thead th, .lg-table tbody td { padding: 7px 8px; }
}

.lg-inline-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.lg-row-index { text-align:center; font-weight:600; color:var(--muted); width:56px; }


.lg-quick-search-card { margin-bottom: 14px; }
.lg-quick-search-bar { margin-bottom: 10px; }
.lg-quick-search-list { width: 100%; }
.lg-quick-search-item { width: 100%; }

@media (max-width: 640px) {
  .lg-quick-search-card { order: -1; }
  .lg-quick-search-bar { flex-direction: column; align-items: stretch; }
  .lg-quick-search-bar input,
  .lg-quick-search-bar button { width: 100% !important; min-width: 0 !important; }
  .lg-quick-search-item { flex-direction: column; align-items: flex-start; }
  .lg-quick-search-side { justify-content: flex-start; }
}


/* ── MOBILE REFINEMENT 1.2.4 ───────────────────────────────── */
.lg-quick-search-bar input[type="text"]{
  min-height: 38px !important;
  height: 38px !important;
  line-height: 1.2 !important;
  padding: 8px 12px !important;
  border-radius: 10px;
  display: block;
  -webkit-appearance: none;
  appearance: none;
}

@media (max-width: 768px) {
  .lg-topbar{
    height:auto;
    min-height:56px;
    padding:10px 12px;
    align-items:flex-start;
    gap:10px;
  }
  .lg-topbar-brand{
    min-width:0;
    flex:1 1 auto;
  }
  .lg-topbar h1{
    font-size:14px;
    line-height:1.15;
  }
  .lg-topbar-user{
    flex:0 0 auto;
    gap:6px;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
    max-width:52%;
  }
  .lg-topbar-user-name{
    font-size:12px;
    max-width:90px;
    white-space:normal;
    word-break:break-word;
    text-align:right;
    line-height:1.1;
  }
  .lg-topbar-role{
    font-size:10px;
    padding:3px 7px;
  }
  .lg-btn-logout{
    padding:6px 10px;
    font-size:12px;
  }
}

@media (max-width: 640px) {
  .lase-grest-shell{
    padding:0 8px 24px;
  }
  .lg-topbar{
    margin:0 -8px 12px;
    padding:10px 10px;
  }
  .lg-card{
    padding:12px;
    margin-bottom:12px;
  }
  .lg-card-header{
    margin-bottom:10px;
  }
  .lg-card-header h3{
    font-size:13px;
  }
  .lg-card-sub{
    font-size:11px;
  }
  .lg-stat{
    padding:12px;
  }
  .lg-stat-label{
    font-size:10px;
    margin-bottom:4px;
  }
  .lg-stat-value{
    font-size:22px;
  }
  .lg-quick-search-card{
    margin-bottom:12px;
  }
  .lg-quick-search-bar{
    gap:8px;
    margin-bottom:8px;
  }
  .lg-quick-search-bar input[type="text"]{
    min-height: 42px !important;
    height: 42px !important;
    max-height: 42px !important;
    padding: 9px 12px !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
  }
  .lg-quick-search-bar button{
    min-height: 40px;
    padding: 8px 12px;
    font-size: 13px;
  }
  .lg-quick-search-empty,
  .lg-quick-search-item{
    padding:8px 10px;
  }
}

/* v1.3.12 — compact public online request form */
.lase-grest-shell:has(.lg-public-request-form){max-width:1180px;}
.lg-public-request-form{gap:5px !important;}
.lg-public-request-form .lg-subsection-title{padding:6px 0 3px !important;margin-top:5px !important;font-size:10.5px !important;letter-spacing:.06em;}
.lg-public-request-form .lg-form-row{gap:5px 7px !important;}
.lg-public-request-form .lg-col-1{grid-template-columns:1fr;}
.lg-public-request-form .lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.lg-public-request-form .lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.lg-public-request-form .lg-col-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.lg-public-request-form .lg-col-6{grid-template-columns:repeat(6,minmax(0,1fr));}
.lg-public-request-form .lg-field{gap:2px !important;}
.lg-public-request-form .lg-label{font-size:10.5px !important;line-height:1.15;}
.lg-public-request-form input[type=text],.lg-public-request-form input[type=email],.lg-public-request-form input[type=date],.lg-public-request-form input[type=number],.lg-public-request-form select,.lg-public-request-form textarea{min-height:28px !important;height:28px;padding:4px 7px !important;border-radius:6px !important;font-size:12px !important;line-height:1.15 !important;}
.lg-public-request-form textarea{min-height:34px !important;height:34px;}
.lg-public-request-form .lg-help{margin-top:1px !important;font-size:10px !important;line-height:1.15;}
.lg-public-request-form .lg-check-list{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 7px !important;}
.lg-public-request-form .lg-check-row{padding:5px 7px !important;gap:6px !important;font-size:11.5px !important;line-height:1.2 !important;border-radius:6px !important;}
.lg-public-request-form .lg-check-row input[type=checkbox]{width:14px !important;height:14px !important;margin-top:0 !important;}
.lg-public-request-form .lg-week-grid{display:grid !important;grid-template-columns:repeat(6,minmax(0,1fr)) !important;gap:6px !important;}
.lg-public-request-form .lg-week-check{min-width:0;align-items:flex-start !important;gap:5px !important;padding:6px 7px !important;border-radius:7px !important;font-size:11.5px !important;line-height:1.15 !important;}
.lg-public-request-form .lg-week-check input{width:13px !important;height:13px !important;margin-top:1px;}
.lg-public-request-form .lg-week-check strong{display:block;font-size:11.5px;line-height:1.15;}
.lg-public-request-form .lg-week-check small{font-size:9.8px !important;line-height:1.15 !important;}
.lg-public-request-form .lg-form-actions{padding-top:4px !important;}
.lg-public-request-form .lg-btn-primary{min-height:32px;padding:7px 12px;}
@media (max-width:1100px){.lg-public-request-form .lg-week-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}.lg-public-request-form .lg-col-6{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}
@media (max-width:760px){.lg-public-request-form .lg-col-3,.lg-public-request-form .lg-col-4,.lg-public-request-form .lg-col-6{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}.lg-public-request-form .lg-week-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}.lg-public-request-form .lg-check-list{grid-template-columns:1fr !important;}}
@media (max-width:480px){.lg-public-request-form .lg-col-2,.lg-public-request-form .lg-col-3,.lg-public-request-form .lg-col-4,.lg-public-request-form .lg-col-6,.lg-public-request-form .lg-week-grid{grid-template-columns:1fr !important;}}

/* v1.2.5 — security/accessibility/UX hardening */
.lg-help{
  display:block;
  margin-top:5px;
  font-size:11px;
  color:#58677d;
}
.lg-help.error{
  color:#b42318;
  font-weight:700;
}
.es-draft{
  background:#eef2f7;
  color:#334155;
  border:1px solid #cbd5e1;
}
.lase-grest-root button:focus-visible,
.lase-grest-root input:focus-visible,
.lase-grest-root select:focus-visible,
.lase-grest-root textarea:focus-visible,
.lase-grest-root a:focus-visible{
  outline:3px solid rgba(14, 119, 255, .35);
  outline-offset:2px;
}
.lase-grest-root [readonly]{
  background:#f8fafc;
  color:#334155;
  cursor:not-allowed;
}
@media (max-width: 768px) {
  .lg-form-row.lg-col-2,
  .lg-form-row.lg-col-3,
  .lg-form-row.lg-col-4,
  .lg-detail-grid,
  .lg-stats{
    grid-template-columns:1fr !important;
  }
  .lg-table-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .lg-nav{
    overflow-x:auto;
    white-space:nowrap;
    padding-bottom:4px;
  }
  .lg-detail-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .lg-detail-toolbar button{
    width:100%;
  }
}

/* v1.3.0 multi-edizione */
.lg-season-switcher{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:12px;padding:8px 10px;font-size:13px;max-width:260px}
.lg-season-switcher option{color:#17213a;background:#fff}
.lg-season-card{border-left:4px solid var(--accent)}
.lg-muted{color:var(--muted);font-size:13px}
.lg-inline-form .lg-field-end{display:flex;align-items:flex-end}
@media(max-width:768px){.lg-topbar-user{width:100%;justify-content:flex-start;flex-wrap:wrap}.lg-season-switcher{max-width:100%;width:100%}}

.lg-season-switcher{min-width:180px;max-width:240px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;padding:6px 10px;font-size:13px;}
.lg-quick-search-empty{padding:10px 0;color:var(--muted);font-size:13px;}

/* v1.3.9 UX & communication */
.lase-grest-root{font-family:Arial,Helvetica,sans-serif}
.lg-user-meta{display:flex;align-items:center;gap:8px;min-width:0}
.lg-empty-state{display:flex;align-items:center;justify-content:center;gap:14px;text-align:left;padding:18px 12px;color:var(--text)}
.lg-empty-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#fff7ed;font-size:24px;flex:0 0 auto}
.lg-empty-state strong{display:block;color:var(--navy);font-size:14px;margin-bottom:2px}
.lg-empty-state p{margin:0 0 10px;color:var(--muted);font-size:12px}
.lg-step-progress{height:12px;border-radius:999px;background:#e8edf5;position:relative;overflow:hidden;margin:10px 0 18px;border:1px solid #dbe3ef}
.lg-step-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px;transition:width .2s ease}
.lg-step-progress em{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;font-style:normal;font-weight:700;color:#173054}
.lg-week-bars{display:grid;gap:9px}
.lg-week-bar-row{display:grid;grid-template-columns:105px 1fr;gap:10px;align-items:center}
.lg-week-bar-label{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}
.lg-week-bar-label strong{color:var(--navy)}
.lg-week-bar-track{height:12px;border-radius:999px;background:#e8edf5;overflow:hidden;border:1px solid #dbe3ef}
.lg-week-bar-track span{display:block;height:100%;border-radius:999px;background:#22c55e;transition:width .2s ease}
.lg-week-bar-track span.warn{background:#f59e0b}.lg-week-bar-track span.full{background:#ef4444}
.lg-loading-overlay{position:fixed;inset:0;background:rgba(16,35,63,.28);display:none;align-items:center;justify-content:center;z-index:99999;backdrop-filter:blur(2px)}
.lg-loading-overlay.show{display:flex}
.lg-loading-box{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);box-shadow:0 20px 50px rgba(16,35,63,.25);border-radius:18px;padding:18px 22px;color:var(--navy)}
.lg-pagination-compact{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}
.lg-pagination-compact button{border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}
.lg-pagination-compact button:disabled{opacity:.45;cursor:not-allowed}
.lg-pagination-compact label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.lg-pagination-compact input{width:64px;min-height:30px;padding:4px 6px;text-align:center}
@media(max-width:520px){
  .lg-topbar{height:auto;min-height:58px;align-items:flex-start;flex-direction:column;padding:10px 14px;gap:8px;position:sticky}
  .lg-topbar-brand{width:100%;justify-content:space-between}.lg-topbar h1{font-size:14px}
  .lg-topbar-user{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
  .lg-user-meta{display:none}.lg-season-switcher{grid-column:1/2;width:100%;min-width:0;max-width:none}.lg-btn-logout{grid-column:2/3}
  .lg-week-bar-row{grid-template-columns:1fr}.lg-empty-state{flex-direction:column;text-align:center}
}

/* v1.3.13 — honeypot offscreen + admin notes panel */
.lg-honeypot{position:absolute !important;left:-10000px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important;}
.lg-honeypot input{height:1px !important;min-height:1px !important;}
.lg-detail-toolbar .lg-btn-secondary,.lg-detail-toolbar .lg-btn-primary,.lg-detail-toolbar .lg-btn-danger{margin-left:6px}

/* v1.3.13-clean — public form final compact overrides (last in cascade) */
.lg-public-request-form{gap:4px !important;}
.lg-public-request-form .lg-subsection-title{padding:5px 0 2px !important;margin:4px 0 2px !important;font-size:10px !important;}
.lg-public-request-form .lg-form-row{gap:4px 6px !important;margin:0 !important;}
.lg-public-request-form .lg-field{gap:1px !important;}
.lg-public-request-form .lg-label{font-size:10px !important;line-height:1.05 !important;}
.lg-public-request-form input[type=text],.lg-public-request-form input[type=email],.lg-public-request-form input[type=date],.lg-public-request-form input[type=number],.lg-public-request-form select,.lg-public-request-form textarea{min-height:26px !important;height:26px !important;padding:3px 6px !important;font-size:11.5px !important;border-radius:6px !important;line-height:1.1 !important;}
.lg-public-request-form textarea{min-height:30px !important;height:30px !important;}
.lg-public-request-form .lg-help{font-size:9.5px !important;line-height:1.05 !important;margin-top:0 !important;}
.lg-public-request-form .lg-col-1{grid-template-columns:1fr !important;}
.lg-public-request-form .lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-col-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-col-6{grid-template-columns:repeat(6,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-check-list{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:4px 6px !important;}
.lg-public-request-form .lg-check-row{padding:4px 6px !important;gap:5px !important;font-size:11px !important;line-height:1.15 !important;border-radius:6px !important;}
.lg-public-request-form .lg-check-row input[type=checkbox]{width:13px !important;height:13px !important;margin-top:0 !important;}
.lg-public-request-form .lg-week-grid{display:grid !important;grid-template-columns:repeat(6,minmax(0,1fr)) !important;gap:5px !important;margin-bottom:3px !important;}
.lg-public-request-form .lg-week-check{padding:5px 6px !important;gap:4px !important;min-height:48px !important;align-items:flex-start !important;font-size:11px !important;line-height:1.1 !important;}
.lg-public-request-form .lg-week-check input{width:13px !important;height:13px !important;margin-top:1px !important;}
.lg-public-request-form .lg-week-check strong{font-size:11px !important;line-height:1.1 !important;}
.lg-public-request-form .lg-week-check small{font-size:9.5px !important;line-height:1.1 !important;}
.lg-public-request-form .lg-form-actions{padding-top:3px !important;}
.lg-public-request-form .lg-btn-primary{min-height:30px !important;padding:6px 12px !important;font-size:12px !important;}
@media(max-width:1100px){.lg-public-request-form .lg-col-6{grid-template-columns:repeat(3,minmax(0,1fr)) !important}.lg-public-request-form .lg-week-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important}}
@media(max-width:768px){.lg-public-request-form .lg-col-3,.lg-public-request-form .lg-col-4{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.lg-public-request-form .lg-col-6{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.lg-public-request-form .lg-week-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.lg-public-request-form .lg-check-list{grid-template-columns:1fr !important}}
@media(max-width:480px){.lg-public-request-form .lg-col-2,.lg-public-request-form .lg-col-3,.lg-public-request-form .lg-col-4,.lg-public-request-form .lg-col-6,.lg-public-request-form .lg-week-grid{grid-template-columns:1fr !important}}


/* v1.3.14 — compact public form final override */
.lase-grest-shell:has(.lg-public-request-form){max-width:1040px;}
.lg-public-request-form{gap:4px !important;}
.lg-public-request-form .lg-subsection-title{
  margin-top:6px !important;
  padding:6px 0 3px !important;
  font-size:10.5px !important;
}
.lg-public-request-form .lg-form-row{gap:5px 7px !important;}
.lg-public-request-form .lg-field{gap:2px !important;}
.lg-public-request-form .lg-label{font-size:10.5px !important;line-height:1.1;}
.lg-public-request-form input[type=text],
.lg-public-request-form input[type=email],
.lg-public-request-form input[type=date],
.lg-public-request-form input[type=number],
.lg-public-request-form select{
  min-height:28px !important;height:28px !important;
  padding:4px 7px !important;font-size:12px !important;border-radius:6px !important;
}
.lg-public-request-form textarea{
  min-height:34px !important;height:34px !important;
  padding:4px 7px !important;font-size:12px !important;border-radius:6px !important;
}
.lg-public-request-form .lg-help{font-size:10px !important;margin-top:1px !important;line-height:1.15;}
.lg-public-request-form .lg-check-list{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:5px 7px !important;
}
.lg-public-request-form .lg-check-row{
  padding:5px 7px !important;
  gap:6px !important;
  font-size:11.5px !important;
  line-height:1.2 !important;
  border-radius:6px !important;
}
.lg-public-request-form .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:6px !important;
}
.lg-public-request-form .lg-week-check{
  padding:6px 7px !important;
  min-height:46px !important;
  gap:5px !important;
  font-size:11px !important;
  line-height:1.1 !important;
  border-radius:7px !important;
}
.lg-public-request-form .lg-week-check input{width:13px !important;height:13px !important;min-height:auto !important;}
.lg-public-request-form .lg-week-check strong{font-size:11px !important;line-height:1.1 !important;}
.lg-public-request-form .lg-week-check small{font-size:9.5px !important;line-height:1.1 !important;}
.lg-public-request-form .lg-form-actions{padding-top:5px !important;}

@media (min-width: 769px){
  .lg-public-request-form .lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-col-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-col-6{grid-template-columns:repeat(6,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-span-2{grid-column:span 2 !important;}
}
@media (max-width: 900px){
  .lg-public-request-form .lg-week-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media (max-width: 768px){
  .lg-public-request-form .lg-col-3,
  .lg-public-request-form .lg-col-4,
  .lg-public-request-form .lg-col-6{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-week-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-check-list{grid-template-columns:1fr !important;}
}
@media (max-width: 480px){
  .lg-public-request-form .lg-col-2,
  .lg-public-request-form .lg-col-3,
  .lg-public-request-form .lg-col-4,
  .lg-public-request-form .lg-col-6,
  .lg-public-request-form .lg-week-grid{grid-template-columns:1fr !important;}
}

/* v1.3.15 — public JS moved to wp_footer to avoid wpautop corruption */


/* v1.3.17 — UI moderna modulo iscrizione admin */
.lg-admin-enroll-modern{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.lg-enroll-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:6px 2px 2px;
}
.lg-enroll-kicker{
  color:var(--accent2);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
}
.lg-enroll-hero h2{
  margin:0;
  font-size:26px;
  line-height:1.1;
  color:var(--navy);
  font-weight:800;
}
.lg-enroll-hero p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:13px;
}
.lg-enroll-hero-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.lg-enroll-modern-form{
  gap:14px;
}
.lg-enroll-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}
.lg-enroll-card{
  background:#fff;
  border:1px solid #dfe6f2;
  border-radius:16px;
  box-shadow:0 2px 8px rgba(23,48,84,.05);
  padding:16px;
  overflow:hidden;
}
.lg-enroll-card-head{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:14px;
}
.lg-enroll-icon{
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#fff7ed;
  color:var(--accent2);
  font-size:17px;
  flex:0 0 auto;
}
.lg-enroll-card-head h3{
  margin:0;
  color:var(--navy);
  font-size:15px;
  line-height:1.2;
  font-weight:800;
}
.lg-enroll-card-head p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.25;
}
.lg-enroll-card-body .lg-subsection-title{
  border-top:0;
  margin:10px 0 6px;
  padding:0;
  color:var(--navy);
  font-size:12px;
  letter-spacing:0;
  text-transform:none;
}
.lg-enroll-card-body .lg-subsection-title:first-child{margin-top:0;}
.lg-enroll-card-body .lg-form-row{
  gap:9px 10px;
}
.lg-enroll-card-body .lg-field{
  gap:4px;
}
.lg-enroll-card-body .lg-label{
  color:#40516a;
  font-size:11.5px;
  font-weight:700;
}
.lg-enroll-card-body input[type=text],
.lg-enroll-card-body input[type=email],
.lg-enroll-card-body input[type=date],
.lg-enroll-card-body input[type=number],
.lg-enroll-card-body select{
  min-height:36px;
  height:36px;
  border-radius:8px;
  border-color:#d6deeb;
  background:#fff;
  padding:7px 10px;
}
.lg-enroll-card-body textarea{
  min-height:58px;
  border-radius:8px;
  border-color:#d6deeb;
  padding:8px 10px;
}
.lg-enroll-card-body .lg-check-list{
  gap:7px;
}
.lg-enroll-card-body .lg-check-row{
  background:#f7f9fc;
  border:1px solid #eef2f7;
  border-radius:9px;
  padding:7px 9px;
  font-size:12.5px;
}
.lg-enroll-card-1,
.lg-enroll-card-6,
.lg-enroll-card-7{
  grid-column:1 / -1;
}
.lg-enroll-card-6 .lg-week-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
  gap:9px;
}
.lg-enroll-card-6 .lg-week-check{
  min-height:70px;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:6px;
  padding:9px 10px;
  border-radius:10px;
  background:#fff;
  border-color:#d8e1ef;
}
.lg-enroll-card-6 .lg-week-check:hover{
  border-color:var(--accent2);
  box-shadow:0 0 0 3px rgba(239,148,77,.11);
  background:#fffaf5;
}
.lg-enroll-card-6 .lg-week-check input{
  width:15px;
  height:15px;
  margin:0;
}
.lg-enroll-card-6 .lg-week-check strong{
  display:block;
  color:var(--navy);
  font-size:12.5px;
  line-height:1.1;
}
.lg-enroll-card-6 .lg-week-check small{
  display:block;
  font-size:10.5px;
  line-height:1.15;
}
.lg-enroll-card-7 .lg-check-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 12px;
}
.lg-enroll-card-7 .lg-section-divider{
  grid-column:1 / -1;
  margin:4px 0;
}
.lg-enroll-card-7 .lg-upload-zone{
  min-height:76px;
  padding:13px;
}
.lg-enroll-sticky-actions{
  position:sticky;
  bottom:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:12px 14px;
  background:rgba(244,246,250,.92);
  border:1px solid var(--border);
  border-radius:16px;
  backdrop-filter:blur(10px);
  box-shadow:0 -8px 24px rgba(23,48,84,.08);
}
.lg-enroll-sticky-actions #lg-enroll-msg{
  margin-right:auto;
  max-width:520px;
}
@media(max-width:980px){
  .lg-enroll-grid{grid-template-columns:1fr;}
  .lg-enroll-card-1,.lg-enroll-card-6,.lg-enroll-card-7{grid-column:auto;}
  .lg-enroll-card-7 .lg-check-list{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .lg-enroll-hero{flex-direction:column;}
  .lg-enroll-hero h2{font-size:22px;}
  .lg-enroll-card{padding:13px;}
  .lg-enroll-card-body .lg-col-2,
  .lg-enroll-card-body .lg-col-3,
  .lg-enroll-card-body .lg-col-4{
    grid-template-columns:1fr !important;
  }
  .lg-enroll-sticky-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .lg-enroll-sticky-actions #lg-enroll-msg{
    margin-right:0;
    max-width:none;
  }
  .lg-enroll-sticky-actions button{
    width:100%;
  }
}


/* v1.3.18 — Restyling solo grafico form pubblico /iscrivi
   Nota tecnica: solo CSS. Non tocca submit, token, email, AJAX o calcolo età. */

.lase-grest-shell:has(.lg-public-request-form){
  max-width:1120px;
  padding-top:22px;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card{
  border:1px solid #dfe7f3;
  border-radius:22px;
  box-shadow:0 18px 50px rgba(23,48,84,.08);
  padding:0;
  overflow:hidden;
  background:#fff;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-header{
  background:
    radial-gradient(circle at 96% 0%, rgba(239,148,77,.16), transparent 34%),
    linear-gradient(135deg, #ffffff 0%, #f7f9fd 100%);
  border-bottom:1px solid #e5ebf5;
  padding:20px 24px 16px;
  margin:0;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-header h3{
  font-size:23px;
  line-height:1.15;
  color:var(--navy);
  font-weight:800;
  letter-spacing:-.02em;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-sub{
  margin-top:5px;
  font-size:13px;
  color:#6b7a90;
}

.lg-public-request-form{
  padding:20px 24px 22px;
  gap:0 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr;
  column-gap:18px;
  row-gap:14px;
}

.lg-public-request-form > .lg-honeypot,
.lg-public-request-form > input[type="hidden"]{
  display:none !important;
}

.lg-public-request-form #lg-public-form-msg,
.lg-public-request-form .lg-subsection-title,
.lg-public-request-form .lg-form-actions{
  grid-column:1 / -1;
}

/* Le sezioni diventano blocchi/card logiche senza modificare il markup */
.lg-public-request-form .lg-subsection-title{
  position:relative;
  margin:4px 0 -4px !important;
  padding:0 0 8px 34px !important;
  border-top:0 !important;
  color:var(--navy);
  font-size:13px !important;
  font-weight:800;
  letter-spacing:.01em;
  text-transform:none;
}

.lg-public-request-form .lg-subsection-title::before{
  content:'';
  position:absolute;
  left:0;
  top:-3px;
  width:24px;
  height:24px;
  border-radius:10px;
  background:#fff4e8;
  border:1px solid #ffd9b5;
}

.lg-public-request-form .lg-subsection-title::after{
  content:'';
  position:absolute;
  left:8px;
  top:5px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent2);
}

.lg-public-request-form .lg-form-row{
  background:#fff;
  border:1px solid #e1e8f3;
  border-radius:16px;
  padding:13px;
  gap:10px 12px !important;
  box-shadow:0 2px 10px rgba(23,48,84,.035);
  align-self:start;
}

.lg-public-request-form .lg-form-row.lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-form-row.lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-form-row.lg-col-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}

.lg-public-request-form .lg-field{
  gap:4px !important;
}

.lg-public-request-form .lg-label{
  color:#354861;
  font-size:11.5px !important;
  font-weight:700;
  line-height:1.2;
}

.lg-public-request-form input[type=text],
.lg-public-request-form input[type=email],
.lg-public-request-form input[type=date],
.lg-public-request-form input[type=number],
.lg-public-request-form select{
  height:36px !important;
  min-height:36px !important;
  border-radius:9px !important;
  border:1px solid #d6dfeb !important;
  background:#fbfcff;
  padding:7px 10px !important;
  font-size:13px !important;
  line-height:1.2 !important;
}

.lg-public-request-form textarea{
  min-height:58px !important;
  height:58px !important;
  border-radius:9px !important;
  border:1px solid #d6dfeb !important;
  background:#fbfcff;
  padding:8px 10px !important;
  font-size:13px !important;
}

.lg-public-request-form input:focus,
.lg-public-request-form select:focus,
.lg-public-request-form textarea:focus{
  background:#fff;
  border-color:var(--navy) !important;
  box-shadow:0 0 0 3px rgba(23,48,84,.09) !important;
}

/* Alcuni blocchi devono respirare a tutta larghezza */
.lg-public-request-form .lg-week-grid,
.lg-public-request-form .lg-check-list{
  grid-column:1 / -1;
}

/* Settimane: griglia compatta, stabile, senza colonne lontane */
.lg-public-request-form .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(132px,1fr)) !important;
  gap:9px !important;
  background:#fff;
  border:1px solid #e1e8f3;
  border-radius:16px;
  padding:13px;
  box-shadow:0 2px 10px rgba(23,48,84,.035);
}

.lg-public-request-form .lg-week-check{
  min-height:74px !important;
  padding:9px 10px !important;
  border-radius:12px !important;
  border:1px solid #dbe4f1 !important;
  background:#fbfcff;
  display:flex !important;
  align-items:flex-start !important;
  gap:8px !important;
  line-height:1.15 !important;
  transition:border-color .15s, background .15s, box-shadow .15s, transform .1s;
}

.lg-public-request-form .lg-week-check:hover{
  border-color:var(--accent2) !important;
  background:#fffaf5;
  box-shadow:0 0 0 3px rgba(239,148,77,.1);
  transform:translateY(-1px);
}

.lg-public-request-form .lg-week-check input{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin-top:1px;
  flex:0 0 auto;
}

.lg-public-request-form .lg-week-check strong,
.lg-public-request-form .lg-week-check span{
  display:block;
  color:var(--navy);
  font-size:12.5px !important;
  font-weight:800;
  line-height:1.15;
  margin-bottom:2px;
}

.lg-public-request-form .lg-week-check small{
  display:block;
  color:#617088;
  font-size:10.5px !important;
  line-height:1.18 !important;
}

/* Consensi: più leggibili, ma compatti */
.lg-public-request-form .lg-check-list{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px 12px !important;
  background:#fff;
  border:1px solid #e1e8f3;
  border-radius:16px;
  padding:13px;
  box-shadow:0 2px 10px rgba(23,48,84,.035);
}

.lg-public-request-form .lg-check-row{
  background:#f7f9fd !important;
  border:1px solid #eef2f8;
  border-radius:10px !important;
  padding:8px 10px !important;
  font-size:12.5px !important;
  line-height:1.3 !important;
  color:#2d3c50;
}

.lg-public-request-form .lg-check-row input[type=checkbox],
.lg-public-request-form .lg-check-row input[type=radio]{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin-top:1px !important;
}

.lg-public-request-form .lg-help{
  font-size:10.5px !important;
  color:#6b7a90;
  margin-top:2px !important;
}

.lg-public-request-form .lg-form-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  padding:14px 0 0 !important;
  margin-top:0;
  border-top:1px solid #e5ebf5;
}

.lg-public-request-form .lg-form-actions .lg-btn-primary,
.lg-public-request-form button[type=submit]{
  min-height:40px;
  padding:10px 18px;
  border-radius:11px;
  box-shadow:0 8px 18px rgba(239,148,77,.18);
}

/* Riduzione effetto “lenzuolo”: le righe singole non diventano enormi */
.lg-public-request-form .lg-form-row:has(textarea){
  align-items:start;
}

/* Desktop ampio: alcuni blocchi sanitari/deleghe possono affiancarsi meglio */
@media (min-width: 1000px){
  .lg-public-request-form .lg-form-row.lg-col-2:has(textarea){
    grid-template-columns:1fr 1fr !important;
  }
}

/* Tablet */
@media (max-width: 900px){
  .lg-public-request-form{
    grid-template-columns:1fr;
    padding:18px;
  }
  .lg-public-request-form .lg-form-row.lg-col-3,
  .lg-public-request-form .lg-form-row.lg-col-4{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .lg-public-request-form .lg-check-list{
    grid-template-columns:1fr !important;
  }
}

/* Mobile */
@media (max-width: 560px){
  .lase-grest-shell:has(.lg-public-request-form){
    padding-left:8px;
    padding-right:8px;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-card-header{
    padding:16px 16px 12px;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-card-header h3{
    font-size:20px;
  }
  .lg-public-request-form{
    padding:14px;
    gap:12px !important;
  }
  .lg-public-request-form .lg-form-row,
  .lg-public-request-form .lg-form-row.lg-col-2,
  .lg-public-request-form .lg-form-row.lg-col-3,
  .lg-public-request-form .lg-form-row.lg-col-4{
    grid-template-columns:1fr !important;
    padding:11px;
  }
  .lg-public-request-form .lg-week-grid{
    grid-template-columns:1fr 1fr !important;
    padding:11px;
  }
  .lg-public-request-form .lg-week-check{
    min-height:68px !important;
  }
  .lg-public-request-form .lg-form-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .lg-public-request-form .lg-form-actions button{
    width:100%;
  }
}

@media (max-width: 380px){
  .lg-public-request-form .lg-week-grid{
    grid-template-columns:1fr !important;
  }
}


/* v1.3.19 — Public form visual parity con scheda interna
   Solo grafica/markup header: nessuna modifica a submit, token, mail, età o AJAX. */
.lase-grest-shell:has(.lg-public-request-form){
  max-width:1180px !important;
  margin:0 auto !important;
  padding:18px 14px 30px !important;
  color:#173054;
}
.lase-grest-shell:has(.lg-public-request-form) .lg-card{
  border:1px solid #dfe6f2 !important;
  border-radius:22px !important;
  overflow:hidden !important;
  background:#f8fbff !important;
  box-shadow:0 20px 55px rgba(23,48,84,.10) !important;
  padding:0 !important;
}
.lase-grest-shell:has(.lg-public-request-form) .lg-public-hero{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:20px !important;
  padding:18px 22px !important;
  margin:0 !important;
  border-bottom:1px solid #e3eaf5 !important;
  background:
    radial-gradient(circle at 96% 0%, rgba(239,148,77,.18), transparent 32%),
    linear-gradient(135deg,#fff 0%,#f6f9fe 100%) !important;
}
.lg-public-hero-copy{min-width:0;flex:1 1 auto;}
.lg-public-hero-copy h2{
  margin:0 !important;
  color:var(--navy) !important;
  font-size:24px !important;
  line-height:1.1 !important;
  font-weight:850 !important;
  letter-spacing:-.02em !important;
}
.lg-public-hero-copy .lg-card-sub{
  margin-top:5px !important;
  color:#64748b !important;
  font-size:13px !important;
  line-height:1.35 !important;
}
.lg-public-brand{
  order:2;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8c225;
  border:1px solid rgba(0,149,218,.18);
  border-radius:16px;
  padding:8px 10px;
  box-shadow:0 8px 22px rgba(23,48,84,.08);
}
.lg-public-brand-logo{
  display:block;
  width:170px;
  max-width:28vw;
  height:auto;
  object-fit:contain;
}
.lg-public-request-form{
  padding:18px 22px 22px !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px 14px !important;
  background:#f8fbff !important;
}
.lg-public-request-form > input[type="hidden"],
.lg-public-request-form > .lg-honeypot{display:none !important;}
.lg-public-request-form #lg-public-form-msg,
.lg-public-request-form .lg-form-actions{grid-column:1 / -1 !important;}

/* Titoli sezione con icone stile scheda interna */
.lg-public-request-form .lg-subsection-title{
  grid-column:1 / -1 !important;
  position:relative !important;
  margin:5px 0 -4px !important;
  padding:0 0 0 42px !important;
  min-height:32px !important;
  display:flex !important;
  align-items:center !important;
  border:0 !important;
  color:var(--navy) !important;
  font-size:15px !important;
  line-height:1.2 !important;
  font-weight:850 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.lg-public-request-form .lg-subsection-title::before{
  position:absolute !important;
  left:0 !important;
  top:1px !important;
  width:30px !important;
  height:30px !important;
  border-radius:12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#fff7ed !important;
  color:var(--accent2) !important;
  border:0 !important;
  font-size:16px !important;
  box-shadow:none !important;
}
.lg-public-request-form .lg-subsection-title::after{display:none !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(1)::before{content:'✉️' !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(2)::before{content:'👶' !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(3)::before{content:'👨‍👩‍👧' !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(4)::before{content:'📞' !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(5)::before{content:'🩺' !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(6)::before{content:'📅' !important;}
.lg-public-request-form .lg-subsection-title:nth-of-type(7)::before{content:'✅' !important;}

/* Righe campi: look card interno ma compatto */
.lg-public-request-form .lg-form-row,
.lg-public-request-form .lg-week-grid,
.lg-public-request-form > .lg-check-list{
  background:#fff !important;
  border:1px solid #dfe6f2 !important;
  border-radius:16px !important;
  box-shadow:0 2px 8px rgba(23,48,84,.045) !important;
  padding:13px !important;
  margin:0 !important;
  gap:9px 10px !important;
  align-self:start !important;
}
.lg-public-request-form .lg-col-1{grid-template-columns:1fr !important;}
.lg-public-request-form .lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-col-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-col-6{grid-template-columns:repeat(6,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-span-2{grid-column:span 2 !important;}
.lg-public-request-form .lg-field{gap:4px !important;}
.lg-public-request-form .lg-label{
  color:#40516a !important;
  font-size:11.5px !important;
  line-height:1.15 !important;
  font-weight:750 !important;
}
.lg-public-request-form input[type=text],
.lg-public-request-form input[type=email],
.lg-public-request-form input[type=date],
.lg-public-request-form input[type=number],
.lg-public-request-form select{
  min-height:36px !important;
  height:36px !important;
  border-radius:8px !important;
  border:1px solid #d6deeb !important;
  background:#fff !important;
  padding:7px 10px !important;
  color:#172033 !important;
  font-size:13px !important;
  line-height:1.2 !important;
}
.lg-public-request-form textarea{
  min-height:58px !important;
  height:58px !important;
  border-radius:8px !important;
  border:1px solid #d6deeb !important;
  background:#fff !important;
  padding:8px 10px !important;
  color:#172033 !important;
  font-size:13px !important;
  line-height:1.25 !important;
}
.lg-public-request-form input:focus,
.lg-public-request-form select:focus,
.lg-public-request-form textarea:focus{
  border-color:var(--accent2) !important;
  box-shadow:0 0 0 3px rgba(239,148,77,.14) !important;
  outline:0 !important;
}
.lg-public-request-form .lg-help{
  margin-top:1px !important;
  color:#6b7a90 !important;
  font-size:10.5px !important;
  line-height:1.18 !important;
}
.lg-public-request-form .lg-help.error{color:#b42318 !important;font-weight:750 !important;}

/* Blocchi che devono stare a tutta larghezza */
.lg-public-request-form .lg-health-compact,
.lg-public-request-form .lg-week-grid,
.lg-public-request-form > .lg-check-list,
.lg-public-request-form .lg-form-actions{grid-column:1 / -1 !important;}
.lg-public-request-form .lg-health-compact{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-health-compact .lg-check-list{
  display:flex !important;
  align-items:center !important;
  background:#f7f9fc !important;
  border:1px solid #eef2f7 !important;
  border-radius:12px !important;
  padding:8px !important;
  box-shadow:none !important;
}
.lg-public-request-form .lg-check-list{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px 12px !important;
}
.lg-public-request-form .lg-check-row{
  display:flex !important;
  align-items:flex-start !important;
  gap:8px !important;
  background:#f7f9fc !important;
  border:1px solid #eef2f7 !important;
  border-radius:9px !important;
  padding:7px 9px !important;
  color:#2d3c50 !important;
  font-size:12.5px !important;
  line-height:1.25 !important;
}
.lg-public-request-form .lg-check-row input[type=checkbox]{
  flex:0 0 auto !important;
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin:1px 0 0 !important;
}

/* Settimane: stessa logica card del gestionale, più ordinate */
.lg-public-request-form .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr)) !important;
  gap:9px !important;
}
.lg-public-request-form .lg-week-check{
  min-height:70px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:6px !important;
  padding:9px 10px !important;
  border-radius:10px !important;
  background:#fff !important;
  border:1px solid #d8e1ef !important;
  color:var(--navy) !important;
  line-height:1.12 !important;
  transition:border-color .15s, box-shadow .15s, background .15s, transform .1s !important;
}
.lg-public-request-form .lg-week-check:hover{
  border-color:var(--accent2) !important;
  box-shadow:0 0 0 3px rgba(239,148,77,.11) !important;
  background:#fffaf5 !important;
  transform:translateY(-1px) !important;
}
.lg-public-request-form .lg-week-check input{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin:0 !important;
}
.lg-public-request-form .lg-week-check span{display:block !important;}
.lg-public-request-form .lg-week-check strong{
  display:block !important;
  color:var(--navy) !important;
  font-size:12.5px !important;
  line-height:1.1 !important;
  font-weight:850 !important;
}
.lg-public-request-form .lg-week-check small{
  display:block !important;
  color:#607087 !important;
  font-size:10.5px !important;
  line-height:1.15 !important;
}
.lg-public-request-form .lg-week-check.full{opacity:.58 !important;background:#f3f6fb !important;}

.lg-public-request-form .lg-form-actions{
  position:sticky !important;
  bottom:0 !important;
  z-index:10 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  margin:4px -22px -22px !important;
  padding:12px 22px !important;
  border-top:1px solid #e3eaf5 !important;
  background:rgba(248,251,255,.94) !important;
  backdrop-filter:blur(8px) !important;
  box-shadow:0 -8px 22px rgba(23,48,84,.06) !important;
}
.lg-public-request-form .lg-form-actions .lg-btn-primary,
.lg-public-request-form button[type=submit]{
  min-height:40px !important;
  padding:10px 18px !important;
  border-radius:11px !important;
  font-size:13px !important;
  font-weight:800 !important;
  box-shadow:0 8px 18px rgba(239,148,77,.18) !important;
}

@media (min-width: 1050px){
  .lg-public-request-form .lg-public-lead-row{grid-column:1 / -1 !important;}
}
@media (max-width: 980px){
  .lg-public-brand-logo{width:145px;max-width:34vw;}
  .lg-public-request-form{grid-template-columns:1fr !important;padding:16px !important;}
  .lg-public-request-form .lg-col-4,
  .lg-public-request-form .lg-col-6{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-health-compact{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .lg-public-request-form .lg-form-actions{margin:4px -16px -16px !important;padding:12px 16px !important;}
}
@media (max-width: 640px){
  .lase-grest-shell:has(.lg-public-request-form){padding:8px !important;}
  .lase-grest-shell:has(.lg-public-request-form) .lg-public-hero{
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
    padding:15px !important;
  }
  .lg-public-brand{order:0;padding:6px 8px;border-radius:13px;}
  .lg-public-brand-logo{width:138px;max-width:70vw;}
  .lg-public-hero-copy h2{font-size:21px !important;}
  .lg-public-request-form{padding:13px !important;gap:10px !important;}
  .lg-public-request-form .lg-subsection-title{font-size:14px !important;margin-top:3px !important;}
  .lg-public-request-form .lg-form-row,
  .lg-public-request-form .lg-form-row.lg-col-2,
  .lg-public-request-form .lg-form-row.lg-col-3,
  .lg-public-request-form .lg-form-row.lg-col-4,
  .lg-public-request-form .lg-form-row.lg-col-6,
  .lg-public-request-form .lg-health-compact{
    grid-template-columns:1fr !important;
    padding:11px !important;
  }
  .lg-public-request-form .lg-span-2{grid-column:auto !important;}
  .lg-public-request-form .lg-check-list{grid-template-columns:1fr !important;}
  .lg-public-request-form .lg-week-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;padding:11px !important;}
  .lg-public-request-form .lg-form-actions{
    position:static !important;
    margin:4px -13px -13px !important;
    padding:12px 13px !important;
    align-items:stretch !important;
  }
  .lg-public-request-form .lg-form-actions button{width:100% !important;}
}
@media (max-width: 390px){
  .lg-public-request-form .lg-week-grid{grid-template-columns:1fr !important;}
}


/* v1.3.20 — allineamento scheda interna e modulo online */
.lg-admin-enroll-modern .lg-enroll-card-1{
  grid-column:1 / -1;
}
.lg-admin-enroll-modern .lg-admin-lead-row{
  background:#fff;
}
.lg-admin-enroll-modern .lg-enroll-card-7{
  grid-column:1 / -1;
}
.lg-public-request-form .lg-health-flags textarea{
  min-height:48px !important;
  height:48px !important;
}
.lg-public-request-form .lg-health-flags .lg-check-row{
  align-items:flex-start;
}
@media (min-width: 900px){
  .lg-public-request-form .lg-health-flags{
    grid-template-columns:1fr 1fr !important;
  }
}


/* v1.3.21 — /iscrivi allineato graficamente alla scheda GREST interna
   Solo CSS: non tocca submit, token, mail, AJAX, età o database. */

/* Shell pubblica: stessa sensazione della piattaforma, non landing */
.lase-grest-shell:has(.lg-public-request-form){
  max-width:1180px !important;
  margin:0 auto !important;
  padding:18px 18px 34px !important;
  background:transparent !important;
}

/* Rimuove il look "landing card" e lo avvicina alla vista admin */
.lase-grest-shell:has(.lg-public-request-form) > .lg-card{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  overflow:visible !important;
}

/* Header pubblico = hero compatta come Nuova iscrizione */
.lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  padding:6px 2px 16px !important;
  margin:0 !important;
  background:transparent !important;
  border:0 !important;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero::before{
  content:'ISCRIZIONI ONLINE';
  position:absolute;
  margin-top:0;
  color:var(--accent2);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero h3{
  margin:18px 0 0 !important;
  font-size:26px !important;
  line-height:1.1 !important;
  color:var(--navy) !important;
  font-weight:800 !important;
  letter-spacing:-.02em !important;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero .lg-card-sub{
  margin:6px 0 0 !important;
  color:var(--muted) !important;
  font-size:13px !important;
  line-height:1.35 !important;
}

/* Branding discreto: non deve dominare */
.lase-grest-shell:has(.lg-public-request-form) .lg-public-brand{
  order:2 !important;
  flex:0 0 auto !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-public-brand-logo{
  display:block !important;
  max-width:126px !important;
  width:126px !important;
  height:auto !important;
  object-fit:contain !important;
  border-radius:10px !important;
  box-shadow:0 2px 8px rgba(23,48,84,.08) !important;
}

.lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero > div:not(.lg-public-brand){
  order:1 !important;
  flex:1 1 auto !important;
}

/* Il form pubblico diventa una griglia a card identica all'admin */
.lg-public-request-form{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  padding:0 !important;
  background:transparent !important;
}

/* Niente "sezioni sciolte": ogni subsection title + blocco seguente diventa un modulo visivo */
.lg-public-request-form .lg-subsection-title{
  grid-column:auto !important;
  position:relative !important;
  margin:0 0 -8px !important;
  padding:14px 16px 0 46px !important;
  min-height:42px !important;
  background:#fff !important;
  border:1px solid #dfe6f2 !important;
  border-bottom:0 !important;
  border-radius:16px 16px 0 0 !important;
  box-shadow:0 2px 8px rgba(23,48,84,.05) !important;
  color:var(--navy) !important;
  font-size:15px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

/* Le icone diventano uguali per trattamento a quelle admin */
.lg-public-request-form .lg-subsection-title::before{
  content:'';
  position:absolute !important;
  left:14px !important;
  top:12px !important;
  width:24px !important;
  height:24px !important;
  border-radius:10px !important;
  background:#fff7ed !important;
  border:0 !important;
}

.lg-public-request-form .lg-subsection-title::after{
  content:'';
  position:absolute !important;
  left:23px !important;
  top:21px !important;
  width:6px !important;
  height:6px !important;
  border-radius:50% !important;
  background:var(--accent2) !important;
}

/* Le card del contenuto: stesse proporzioni della scheda interna */
.lg-public-request-form .lg-form-row,
.lg-public-request-form .lg-week-grid,
.lg-public-request-form .lg-check-list{
  background:#fff !important;
  border:1px solid #dfe6f2 !important;
  border-radius:16px !important;
  box-shadow:0 2px 8px rgba(23,48,84,.05) !important;
  padding:16px !important;
  gap:9px 10px !important;
  align-self:start !important;
}

/* Se una card segue subito il titolo, si salda visivamente come l'admin */
.lg-public-request-form .lg-subsection-title + .lg-form-row,
.lg-public-request-form .lg-subsection-title + .lg-week-grid,
.lg-public-request-form .lg-subsection-title + .lg-check-list{
  border-top-left-radius:0 !important;
  border-top-right-radius:0 !important;
}

/* Referente pratica full-width come nella scheda interna */
.lg-public-request-form .lg-public-lead-row,
.lg-public-request-form .lg-subsection-title:first-of-type{
  grid-column:1 / -1 !important;
}

/* Dati minore: layout come admin, non spezzato da landing */
.lg-public-request-form .lg-form-row.lg-col-1{
  grid-column:1 / -1 !important;
}

.lg-public-request-form .lg-form-row.lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-form-row.lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-form-row.lg-col-4{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.lg-public-request-form .lg-form-row.lg-col-6{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}

.lg-public-request-form .lg-span-2{
  grid-column:span 2 !important;
}

/* Campi identici alla scheda GREST */
.lg-public-request-form .lg-field{
  gap:4px !important;
}

.lg-public-request-form .lg-label{
  color:#40516a !important;
  font-size:11.5px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
}

.lg-public-request-form input[type=text],
.lg-public-request-form input[type=email],
.lg-public-request-form input[type=date],
.lg-public-request-form input[type=number],
.lg-public-request-form select{
  min-height:36px !important;
  height:36px !important;
  border-radius:8px !important;
  border:1px solid #d6deeb !important;
  background:#fff !important;
  padding:7px 10px !important;
  font-size:13px !important;
  line-height:1.2 !important;
  box-shadow:none !important;
}

.lg-public-request-form textarea{
  min-height:58px !important;
  height:58px !important;
  border-radius:8px !important;
  border:1px solid #d6deeb !important;
  background:#fff !important;
  padding:8px 10px !important;
  font-size:13px !important;
  line-height:1.25 !important;
}

.lg-public-request-form input:focus,
.lg-public-request-form select:focus,
.lg-public-request-form textarea:focus{
  border-color:var(--accent2) !important;
  box-shadow:0 0 0 3px rgba(239,148,77,.12) !important;
  outline:none !important;
}

.lg-public-request-form .lg-help{
  color:var(--muted) !important;
  font-size:11px !important;
  line-height:1.25 !important;
  margin-top:2px !important;
}

/* Salute: come card admin, checkbox+textarea compatte */
.lg-public-request-form .lg-health-flags{
  grid-template-columns:1fr 1fr !important;
  gap:8px 12px !important;
}

.lg-public-request-form .lg-health-flags textarea{
  min-height:54px !important;
  height:54px !important;
}

/* Settimane full-width, griglia come admin */
.lg-public-request-form .lg-week-grid,
.lg-public-request-form .lg-subsection-title:nth-of-type(6){
  grid-column:1 / -1 !important;
}

.lg-public-request-form .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr)) !important;
  gap:9px !important;
}

.lg-public-request-form .lg-week-check{
  min-height:70px !important;
  padding:9px 10px !important;
  border-radius:10px !important;
  background:#fff !important;
  border:1px solid #d8e1ef !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:6px !important;
  line-height:1.1 !important;
  box-shadow:none !important;
}

.lg-public-request-form .lg-week-check:hover{
  border-color:var(--accent2) !important;
  box-shadow:0 0 0 3px rgba(239,148,77,.11) !important;
  background:#fffaf5 !important;
  transform:none !important;
}

.lg-public-request-form .lg-week-check input{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin:0 !important;
}

.lg-public-request-form .lg-week-check strong{
  display:block !important;
  color:var(--navy) !important;
  font-size:12.5px !important;
  line-height:1.1 !important;
  font-weight:800 !important;
}

.lg-public-request-form .lg-week-check small{
  display:block !important;
  color:#617088 !important;
  font-size:10.5px !important;
  line-height:1.15 !important;
}

/* Consensi full-width come admin */
.lg-public-request-form .lg-check-list,
.lg-public-request-form .lg-subsection-title:nth-of-type(7){
  grid-column:1 / -1 !important;
}

.lg-public-request-form .lg-check-list{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px 12px !important;
}

.lg-public-request-form .lg-check-row{
  background:#f7f9fc !important;
  border:1px solid #eef2f7 !important;
  border-radius:9px !important;
  padding:7px 9px !important;
  font-size:12.5px !important;
  line-height:1.25 !important;
  color:#2d3c50 !important;
  box-shadow:none !important;
}

.lg-public-request-form .lg-check-row input[type=checkbox],
.lg-public-request-form .lg-check-row input[type=radio]{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin-top:1px !important;
}

/* Crema solare allineata come campo finale della card consensi */
.lg-public-request-form .lg-check-list + .lg-form-row{
  grid-column:1 / -1 !important;
  margin-top:-14px !important;
  border-top-left-radius:0 !important;
  border-top-right-radius:0 !important;
  box-shadow:0 2px 8px rgba(23,48,84,.05) !important;
}

/* Messaggi e azioni */
.lg-public-request-form #lg-public-form-msg,
.lg-public-request-form .lg-form-actions{
  grid-column:1 / -1 !important;
}

.lg-public-request-form .lg-form-actions{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:10px !important;
  position:sticky !important;
  bottom:0 !important;
  z-index:20 !important;
  padding:12px 14px !important;
  background:rgba(244,246,250,.92) !important;
  border:1px solid var(--border) !important;
  border-radius:16px !important;
  backdrop-filter:blur(10px) !important;
  box-shadow:0 -8px 24px rgba(23,48,84,.08) !important;
  margin-top:0 !important;
}

.lg-public-request-form .lg-form-actions button[type=submit]{
  min-height:40px !important;
  padding:10px 18px !important;
  border-radius:11px !important;
}

/* Honeypot e hidden sempre invisibili */
.lg-public-request-form > .lg-honeypot,
.lg-public-request-form > input[type="hidden"]{
  display:none !important;
}

/* Responsive: replica la compattezza admin */
@media(max-width:980px){
  .lg-public-request-form{
    grid-template-columns:1fr !important;
  }
  .lg-public-request-form .lg-form-row.lg-col-2,
  .lg-public-request-form .lg-form-row.lg-col-3,
  .lg-public-request-form .lg-form-row.lg-col-4,
  .lg-public-request-form .lg-form-row.lg-col-6,
  .lg-public-request-form .lg-health-flags,
  .lg-public-request-form .lg-check-list{
    grid-template-columns:1fr !important;
  }
  .lg-public-request-form .lg-span-2{
    grid-column:auto !important;
  }
}

@media(max-width:640px){
  .lase-grest-shell:has(.lg-public-request-form){
    padding:12px 10px 28px !important;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero{
    flex-direction:column !important;
    gap:10px !important;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-public-brand{
    order:1 !important;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero > div:not(.lg-public-brand){
    order:2 !important;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-public-brand-logo{
    width:108px !important;
    max-width:108px !important;
  }
  .lase-grest-shell:has(.lg-public-request-form) .lg-card-header.lg-public-hero h3{
    font-size:22px !important;
  }
  .lg-public-request-form .lg-form-row,
  .lg-public-request-form .lg-week-grid,
  .lg-public-request-form .lg-check-list{
    padding:13px !important;
  }
  .lg-public-request-form .lg-week-grid{
    grid-template-columns:1fr 1fr !important;
  }
  .lg-public-request-form .lg-form-actions{
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .lg-public-request-form .lg-form-actions button{
    width:100% !important;
  }
}

@media(max-width:420px){
  .lg-public-request-form .lg-week-grid{
    grid-template-columns:1fr !important;
  }
}


/* v1.3.22 — pubblico con markup GREST reale, non più simulato via override
   Queste regole ripuliscono gli override storici del vecchio lg-public-request-form. */
.lg-public-enroll-modern{
  max-width:none;
}

.lg-public-enroll-hero{
  margin-bottom:0;
}

.lg-public-hero-brand{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border:1px solid #dfe6f2;
  border-radius:16px;
  background:#fff;
  box-shadow:0 2px 8px rgba(23,48,84,.05);
}

.lg-public-hero-brand img{
  display:block;
  width:126px;
  max-width:126px;
  height:auto;
  border-radius:10px;
}

/* Il form pubblico ora usa lg-enroll-grid e lg-enroll-card come l'admin */
.lg-public-grest-form{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  padding:0 !important;
  background:transparent !important;
}

.lg-public-grest-form .lg-enroll-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  align-items:start !important;
}

/* Evita che i vecchi selettori .lg-public-request-form deformino le card */
.lg-public-grest-form .lg-enroll-card{
  background:#fff !important;
  border:1px solid #dfe6f2 !important;
  border-radius:16px !important;
  box-shadow:0 2px 8px rgba(23,48,84,.05) !important;
  padding:16px !important;
  overflow:hidden !important;
}

.lg-public-grest-form .lg-enroll-card-head{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  margin-bottom:14px !important;
}

.lg-public-grest-form .lg-enroll-icon{
  width:30px !important;
  height:30px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:12px !important;
  background:#fff7ed !important;
  color:var(--accent2) !important;
  font-size:17px !important;
  flex:0 0 auto !important;
}

.lg-public-grest-form .lg-enroll-card-head h3{
  margin:0 !important;
  color:var(--navy) !important;
  font-size:15px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
}

.lg-public-grest-form .lg-enroll-card-head p{
  margin:3px 0 0 !important;
  color:var(--muted) !important;
  font-size:11.5px !important;
  line-height:1.25 !important;
}

/* Card full-width come admin */
.lg-public-grest-form .lg-enroll-card-1,
.lg-public-grest-form .lg-enroll-card-5,
.lg-public-grest-form .lg-enroll-card-7{
  grid-column:1 / -1 !important;
}

/* Sezioni interne: stile admin, non "titolo card" pubblico */
.lg-public-grest-form .lg-enroll-card-body .lg-subsection-title{
  position:static !important;
  margin:10px 0 6px !important;
  padding:0 !important;
  min-height:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:var(--navy) !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.lg-public-grest-form .lg-enroll-card-body .lg-subsection-title::before,
.lg-public-grest-form .lg-enroll-card-body .lg-subsection-title::after{
  content:none !important;
  display:none !important;
}

.lg-public-grest-form .lg-enroll-card-body .lg-subsection-title:first-child{
  margin-top:0 !important;
}

/* Righe e campi: uguali ad admin */
.lg-public-grest-form .lg-form-row{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  gap:9px 10px !important;
}

.lg-public-grest-form .lg-form-row.lg-col-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
.lg-public-grest-form .lg-form-row.lg-col-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.lg-public-grest-form .lg-form-row.lg-col-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
.lg-public-grest-form .lg-form-row.lg-col-6{grid-template-columns:repeat(6,minmax(0,1fr)) !important;}

.lg-public-grest-form .lg-field{
  gap:4px !important;
}

.lg-public-grest-form .lg-label{
  color:#40516a !important;
  font-size:11.5px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
}

.lg-public-grest-form input[type=text],
.lg-public-grest-form input[type=email],
.lg-public-grest-form input[type=date],
.lg-public-grest-form input[type=number],
.lg-public-grest-form select{
  min-height:36px !important;
  height:36px !important;
  border-radius:8px !important;
  border:1px solid #d6deeb !important;
  background:#fff !important;
  padding:7px 10px !important;
  font-size:13px !important;
  line-height:1.2 !important;
  box-shadow:none !important;
}

.lg-public-grest-form textarea{
  min-height:58px !important;
  height:58px !important;
  border-radius:8px !important;
  border:1px solid #d6deeb !important;
  background:#fff !important;
  padding:8px 10px !important;
  font-size:13px !important;
  line-height:1.25 !important;
}

/* Week grid identica al modulo interno */
.lg-public-grest-form .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr)) !important;
  gap:9px !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}

.lg-public-grest-form .lg-week-check{
  min-height:70px !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:6px !important;
  padding:9px 10px !important;
  border-radius:10px !important;
  background:#fff !important;
  border:1px solid #d8e1ef !important;
  box-shadow:none !important;
  line-height:1.1 !important;
}

.lg-public-grest-form .lg-week-check:hover{
  border-color:var(--accent2) !important;
  box-shadow:0 0 0 3px rgba(239,148,77,.11) !important;
  background:#fffaf5 !important;
  transform:none !important;
}

.lg-public-grest-form .lg-week-check input{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin:0 !important;
}

.lg-public-grest-form .lg-week-check strong{
  display:block !important;
  color:var(--navy) !important;
  font-size:12.5px !important;
  line-height:1.1 !important;
  font-weight:800 !important;
}

.lg-public-grest-form .lg-week-check small{
  display:block !important;
  color:#617088 !important;
  font-size:10.5px !important;
  line-height:1.15 !important;
}

/* Check list identica al modulo interno */
.lg-public-grest-form .lg-check-list{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px 12px !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}

.lg-public-grest-form .lg-check-row{
  background:#f7f9fc !important;
  border:1px solid #eef2f7 !important;
  border-radius:9px !important;
  padding:7px 9px !important;
  font-size:12.5px !important;
  line-height:1.25 !important;
  color:#2d3c50 !important;
  box-shadow:none !important;
  display:flex !important;
  gap:7px !important;
}

.lg-public-grest-form .lg-check-row input[type=checkbox],
.lg-public-grest-form .lg-check-row input[type=radio]{
  width:15px !important;
  height:15px !important;
  min-height:auto !important;
  margin-top:1px !important;
  flex:0 0 auto !important;
}

.lg-public-grest-form .lg-section-divider{
  grid-column:1 / -1 !important;
  border:0 !important;
  border-top:1px solid #e5ebf5 !important;
  width:100% !important;
}

/* Barra finale uguale alla interna */
.lg-public-grest-form .lg-public-sticky-actions{
  position:sticky !important;
  bottom:0 !important;
  z-index:20 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  padding:12px 14px !important;
  background:rgba(244,246,250,.92) !important;
  border:1px solid var(--border) !important;
  border-radius:16px !important;
  backdrop-filter:blur(10px) !important;
  box-shadow:0 -8px 24px rgba(23,48,84,.08) !important;
}

.lg-public-grest-form > .lg-honeypot,
.lg-public-grest-form > input[type="hidden"]{
  display:none !important;
}

/* Responsive */
@media(max-width:980px){
  .lg-public-grest-form .lg-enroll-grid{
    grid-template-columns:1fr !important;
  }
  .lg-public-grest-form .lg-enroll-card-1,
  .lg-public-grest-form .lg-enroll-card-5,
  .lg-public-grest-form .lg-enroll-card-7{
    grid-column:auto !important;
  }
  .lg-public-grest-form .lg-check-list{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:640px){
  .lg-public-enroll-hero{
    flex-direction:column !important;
  }
  .lg-public-hero-brand{
    align-self:flex-start;
  }
  .lg-public-hero-brand img{
    width:108px !important;
    max-width:108px !important;
  }
  .lg-public-grest-form .lg-form-row.lg-col-2,
  .lg-public-grest-form .lg-form-row.lg-col-3,
  .lg-public-grest-form .lg-form-row.lg-col-4,
  .lg-public-grest-form .lg-form-row.lg-col-6{
    grid-template-columns:1fr !important;
  }
  .lg-public-grest-form .lg-span-2{
    grid-column:auto !important;
  }
  .lg-public-grest-form .lg-week-grid{
    grid-template-columns:1fr 1fr !important;
  }
  .lg-public-grest-form .lg-public-sticky-actions{
    align-items:stretch !important;
    flex-direction:column !important;
  }
  .lg-public-grest-form .lg-public-sticky-actions button{
    width:100% !important;
  }
}

@media(max-width:420px){
  .lg-public-grest-form .lg-week-grid{
    grid-template-columns:1fr !important;
  }
}


/* v1.3.23 — titolo pubblico e settimane compatte */
.lg-public-enroll-hero h2 .lg-public-title-sub{
  display:inline-block;
  margin-top:3px;
  font-size:21px;
  line-height:1.12;
  color:var(--navy);
  font-weight:800;
}

/* La card settimane deve essere larga ma compatta, non un elenco verticale */
.lg-public-grest-form .lg-public-weeks-card{
  grid-column:1 / -1 !important;
}

.lg-public-grest-form .lg-public-weeks-card .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:9px !important;
  align-items:stretch !important;
}

.lg-public-grest-form .lg-public-weeks-card .lg-week-check{
  min-height:76px !important;
  height:auto !important;
  width:100% !important;
  display:grid !important;
  grid-template-columns:18px 1fr !important;
  grid-auto-flow:column !important;
  align-items:start !important;
  gap:8px !important;
  padding:9px 10px !important;
}

.lg-public-grest-form .lg-public-weeks-card .lg-week-check input{
  grid-column:1 !important;
  grid-row:1 !important;
  margin-top:1px !important;
}

.lg-public-grest-form .lg-public-weeks-card .lg-week-check > div,
.lg-public-grest-form .lg-public-weeks-card .lg-week-check > span{
  grid-column:2 !important;
  min-width:0 !important;
}

.lg-public-grest-form .lg-public-weeks-card .lg-week-check strong{
  font-size:12.5px !important;
  margin-bottom:3px !important;
}

.lg-public-grest-form .lg-public-weeks-card .lg-week-check small{
  font-size:10.5px !important;
  line-height:1.18 !important;
}

@media(max-width:1020px){
  .lg-public-grest-form .lg-public-weeks-card .lg-week-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }
}

@media(max-width:720px){
  .lg-public-grest-form .lg-public-weeks-card .lg-week-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
  .lg-public-enroll-hero h2 .lg-public-title-sub{
    font-size:18px;
  }
}

@media(max-width:420px){
  .lg-public-grest-form .lg-public-weeks-card .lg-week-grid{
    grid-template-columns:1fr !important;
  }
}


/* v1.3.24 — sul pubblico il bottone invio sta alla fine del modulo, non sticky */
.lg-public-grest-form .lg-public-sticky-actions,
.lg-public-request-form .lg-form-actions{
  position:static !important;
  bottom:auto !important;
  z-index:auto !important;
  margin-top:0 !important;
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  padding:14px 0 0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

.lg-public-grest-form .lg-public-sticky-actions button[type=submit]{
  min-height:42px !important;
  padding:11px 20px !important;
  border-radius:12px !important;
}

@media(max-width:640px){
  .lg-public-grest-form .lg-public-sticky-actions{
    align-items:stretch !important;
  }
  .lg-public-grest-form .lg-public-sticky-actions button{
    width:100% !important;
  }
}


/* v1.3.25 — FIX definitivo griglia settimane pubblico
   Reset completo dei conflitti accumulati su .lg-week-grid / .lg-week-check. */
.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card{
  grid-column:1 / -1 !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-enroll-card-body{
  display:block !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  grid-auto-flow:row !important;
  grid-auto-columns:unset !important;
  grid-auto-rows:auto !important;
  gap:10px !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  align-items:stretch !important;
  justify-items:stretch !important;
}

/* Ogni settimana è una card compatta orizzontale */
.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check{
  position:relative !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:auto !important;
  min-height:78px !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:20px minmax(0, 1fr) !important;
  grid-template-rows:auto !important;
  grid-auto-flow:unset !important;
  align-items:start !important;
  justify-content:stretch !important;
  justify-items:start !important;
  gap:8px !important;
  padding:12px 12px !important;
  margin:0 !important;
  overflow:hidden !important;
  border:1px solid #d8e1ef !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:none !important;
  line-height:1.2 !important;
  cursor:pointer !important;
  transform:none !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check:hover{
  border-color:var(--accent2) !important;
  background:#fffaf5 !important;
  box-shadow:0 0 0 3px rgba(239,148,77,.11) !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check > input[type="checkbox"]{
  position:static !important;
  grid-column:1 !important;
  grid-row:1 !important;
  display:block !important;
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  min-height:16px !important;
  max-width:16px !important;
  max-height:16px !important;
  margin:1px 0 0 0 !important;
  padding:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
  flex:none !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check > div,
.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check > span{
  grid-column:2 !important;
  grid-row:1 !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check strong{
  display:block !important;
  margin:0 0 5px 0 !important;
  padding:0 !important;
  color:var(--navy) !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.15 !important;
  white-space:normal !important;
  overflow:visible !important;
}

.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check small{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:#617088 !important;
  font-size:11px !important;
  line-height:1.25 !important;
  white-space:normal !important;
  overflow:visible !important;
}

/* Stato non disponibile */
.lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed > label.lg-week-check.full{
  opacity:.62 !important;
  background:#f7f9fc !important;
  cursor:not-allowed !important;
}

/* Responsive: compatto ma leggibile */
@media(max-width:1100px){
  .lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }
}

@media(max-width:760px){
  .lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:430px){
  .lase-grest-shell .lg-public-grest-form .lg-public-weeks-card .lg-public-weeks-grid-fixed{
    grid-template-columns:1fr !important;
  }
}


/* v1.3.26 — guardia visuale se wpautop lascia residui dentro settimane */
.lg-public-weeks-grid-fixed > p,
.lg-public-weeks-grid-fixed > br,
.lg-public-weeks-grid-fixed .lg-week-check > p,
.lg-public-weeks-grid-fixed .lg-week-check > br{
  display:none !important;
}

.lg-public-weeks-grid-fixed .lg-week-check .lg-week-check{
  display:grid !important;
  position:relative !important;
  width:100% !important;
  margin:0 !important;
}


/* v1.3.27 — supporto anti-wpautop tardivo */
.lg-public-weeks-grid-fixed > p,
.lg-public-weeks-grid-fixed > br{
  display:none !important;
}


/* v1.3.33 — footer societario form pubblico e consensi */
.lg-public-form-footer{
  margin:8px 2px 0;
  padding:10px 4px 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
  text-align:center;
  border-top:1px solid #e5ebf5;
}
.lg-public-form-footer strong{
  color:var(--navy);
}


/* v1.4.0 — Modulo Contabilità */
.lg-accounting-kpis .lg-stat-value{
  font-size:22px;
}
#lg-accounting-detail{
  margin-top:14px;
}
#lg-accounting-detail-card{
  border-left:4px solid var(--accent2);
}
#lg-accounting-form textarea{
  min-height:72px;
}
.lg-table td[style*="text-align:right"]{
  white-space:nowrap;
}

/* v1.4.1 — contabilità diagnostica */
.lg-accounting-sync-card{
  border-left:4px solid var(--accent2);
}
.lg-empty-rich{
  margin-top:12px;
  padding:16px;
  border:1px dashed #d8e1ef;
  border-radius:14px;
  background:#f8fafc;
  text-align:center;
}
.lg-empty-rich .lg-empty-icon{
  font-size:28px;
  margin-bottom:6px;
}
.lg-empty-rich h4{
  margin:0 0 6px;
  color:var(--navy);
}
.lg-empty-rich p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}

/* v1.4.2 — diagnostica contabilità */
.lg-accounting-status-debug{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin:6px 0 0;
}
.lg-accounting-status-debug .lg-pill{
  font-size:11px;
}

/* v1.4.6 — scheda contabile più pratica */
#lg-accounting-detail{
  margin:14px 0;
}
.lg-accounting-detail-card{
  border-left:5px solid var(--accent2);
  box-shadow:0 14px 34px rgba(23,48,84,.12);
}
.lg-accounting-detail-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:12px;
}
.lg-table tr.is-selected td{
  background:#fff7ed !important;
}
@media(max-width:720px){
  .lg-accounting-detail-toolbar{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* v1.4.8 — filtri e azioni rapide contabilità */
.lg-accounting-filter-bar{
  display:grid;
  grid-template-columns: minmax(220px, 1fr) 210px 190px auto;
  gap:8px;
  padding:0 0 12px;
  align-items:center;
}
.lg-accounting-filter-bar input,
.lg-accounting-filter-bar select{
  min-height:36px;
  border:1px solid #d6deeb;
  border-radius:8px;
  padding:7px 10px;
  background:#fff;
}
@media(max-width:860px){
  .lg-accounting-filter-bar{
    grid-template-columns:1fr;
  }
}

/* v1.5.1 — preview richiesta pagamento */
.lg-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.52);
  z-index:99999;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:36px 16px;
  overflow:auto;
}
.lg-modal-card{
  width:min(980px,100%);
  background:#fff;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  padding:18px;
}
.lg-modal-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
}
.lg-modal-head h3{
  margin:0;
  color:var(--navy);
}
.lg-payment-preview-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:8px 0 12px;
}
.lg-payment-preview-meta span{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  color:#334155;
}
.lg-payment-preview-card textarea{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  min-height:360px;
}
@media(max-width:720px){
  .lg-modal-head{flex-direction:column}
  .lg-modal-backdrop{padding:16px 8px}
}

/* v1.5.3 — impostazioni pagamento edizione */
.lg-season-payment-card{
  border-left:4px solid var(--accent2);
}

/* v1.5.4 — gestione annullamento richieste online */
.lg-online-cancel-card textarea{
  min-height:120px;
}
.lg-online-cancel-card select{
  min-height:38px;
  border:1px solid #d6deeb;
  border-radius:8px;
  padding:8px 10px;
}

/* v1.5.5 — online request validated but linked practice missing */
.lg-alert-inline{
  display:block;
  margin:8px 0 0;
  padding:8px 10px;
  border-radius:10px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  font-size:12px;
  font-weight:700;
}

/* v1.5.9 — Backup admingrest */
.lg-backup-hero{
  border-left:4px solid var(--accent2);
}
.lg-backup-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0;
}
.lg-backup-stats{
  grid-template-columns:repeat(4,minmax(150px,1fr));
}
@media(max-width:760px){
  .lg-backup-stats{grid-template-columns:1fr}
}

/* v1.6.2 — Scheda cartacea per iscrizioni interne */
.lg-upload-box{
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  padding:14px;
}
.lg-paper-btn{
  white-space:nowrap;
}

/* v1.6.3 — microfix contabilità e scheda cartacea */
.lg-missing-paper{
  color:#b45309;
  margin-top:4px;
  font-weight:700;
}

/* v1.6.4 — modale incasso rapido */
.lg-mark-paid-card{max-width:520px}

/* v1.6.6 — audit non-backup: scheda contabile e scheda cartacea */
.lg-accounting-movement-tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}
.lg-missing-paper-toolbar{
  display:inline-flex;
  align-items:center;
  margin-left:0;
  padding:7px 10px;
  border-radius:999px;
}

/* 1.6.7 — audit non-backup: matrice settimane e ricevuta interna */
.lg-week-matrix-wrap{max-height:420px;overflow:auto}
.lg-week-matrix th:first-child,.lg-week-matrix td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:210px}
.lg-week-matrix th{white-space:nowrap;text-align:center}
.lg-week-matrix-cell{text-align:center;font-weight:800;color:#9ca3af;min-width:42px}
.lg-week-matrix-cell.is-active{color:#0f766e;background:#ecfdf5}
.lg-week-matrix-cell.is-cancelled{color:#b91c1c;background:#fef2f2}
.lg-week-changes-card,.lg-week-matrix-card{margin-top:14px}

/* v1.6.16 — Tooltip descrittivi UI */
.lg-subtabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 14px;
}
.lg-subtab{
  border:1px solid #cbd5e1;
  background:#fff;
  color:#0f2747;
  border-radius:999px;
  padding:8px 13px;
  font-weight:800;
  cursor:pointer;
}
.lg-subtab.is-active{
  background:#0f2747;
  color:#fff;
  border-color:#0f2747;
}
.lg-tech-details{
  margin-top:8px;
  padding:8px 10px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:#f8fafc;
  font-size:13px;
}
.lg-tech-details summary{
  cursor:pointer;
  font-weight:800;
}
.lg-bulk-bar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:10px 12px;
  margin:6px 0 12px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
}
.lg-inline-select{
  display:block;
  width:100%;
  max-width:190px;
  margin:0 0 5px;
  border:1px solid #cbd5e1;
  border-radius:8px;
  padding:6px 8px;
  font-size:12px;
  background:#fff;
}
.lg-offcanvas-backdrop{
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(15,23,42,.34);
  display:flex;
  justify-content:flex-end;
}
.lg-offcanvas-panel{
  width:min(880px,94vw);
  height:100vh;
  overflow:auto;
  background:#fff;
  box-shadow:-18px 0 44px rgba(15,23,42,.22);
  padding:18px;
  animation:lgSlideIn .16s ease-out;
}
@keyframes lgSlideIn{from{transform:translateX(24px);opacity:.75}to{transform:translateX(0);opacity:1}}
.lg-accounting-detail-tabs{margin:12px 0}
.lg-accounting-detail-body{padding-bottom:24px}
.lg-accounting-summary-grid{margin-top:8px}
@media(max-width:760px){
  .lg-offcanvas-panel{width:100vw;padding:14px}
  .lg-inline-select{max-width:100%}
}


/* v1.6.16 — tooltip descrittivi sui comandi */
.lase-grest-shell [data-tooltip],
.lg-public-form [data-tooltip] {
  position: relative;
}

.lase-grest-shell [data-tooltip]::after,
.lg-public-form [data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 9px);
  transform: translateX(-50%) translateY(4px);
  z-index: 99999;
  width: max-content;
  max-width: 260px;
  padding: 7px 9px;
  border-radius: 10px;
  background: rgba(17, 24, 39, .96);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
  box-shadow: 0 10px 25px rgba(15, 23, 42, .18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  white-space: normal;
  text-align: center;
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.lase-grest-shell [data-tooltip]::before,
.lg-public-form [data-tooltip]::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: calc(100% + 4px);
  transform: translateX(-50%) translateY(4px);
  z-index: 99999;
  border: 6px solid transparent;
  border-top-color: rgba(17, 24, 39, .96);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.lase-grest-shell [data-tooltip]:hover::after,
.lase-grest-shell [data-tooltip]:focus-visible::after,
.lg-public-form [data-tooltip]:hover::after,
.lg-public-form [data-tooltip]:focus-visible::after,
.lase-grest-shell [data-tooltip]:hover::before,
.lase-grest-shell [data-tooltip]:focus-visible::before,
.lg-public-form [data-tooltip]:hover::before,
.lg-public-form [data-tooltip]:focus-visible::before {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.lg-table td:last-child [data-tooltip]::after,
.lg-action-row [data-tooltip]::after {
  bottom: calc(100% + 10px);
}

@media (hover: none) {
  .lase-grest-shell [data-tooltip]::after,
  .lase-grest-shell [data-tooltip]::before,
  .lg-public-form [data-tooltip]::after,
  .lg-public-form [data-tooltip]::before {
    display: none;
  }
}


/* v1.6.17 — Restyling scheda online: Salute affiancata a Emergenze, Settimane prima dei Consensi */
.lg-public-request-form .lg-public-health-card{
  grid-column:auto !important;
}
.lg-public-request-form .lg-public-weeks-card,
.lg-public-request-form .lg-enroll-card-7{
  grid-column:1 / -1 !important;
}
.lg-public-request-form .lg-public-weeks-card .lg-week-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(118px,1fr)) !important;
  gap:9px !important;
}
.lg-public-request-form .lg-public-weeks-card .lg-week-check{
  min-height:70px !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:6px !important;
}
.lg-public-request-form .lg-public-health-card .lg-check-list{
  grid-template-columns:1fr 1fr !important;
}
@media(max-width:980px){
  .lg-public-request-form .lg-public-health-card,
  .lg-public-request-form .lg-public-weeks-card,
  .lg-public-request-form .lg-enroll-card-7{
    grid-column:auto !important;
  }
}
@media(max-width:760px){
  .lg-public-request-form .lg-public-health-card .lg-check-list{
    grid-template-columns:1fr !important;
  }
}


/* 1.6.20 — hardening operativo leggero */
.lg-duplicate-warning{display:none;margin-top:10px;border:1px solid #f59e0b;background:#fffbeb;color:#92400e;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.35}
.lg-duplicate-warning.show{display:block}
.lg-duplicate-warning ul{margin:6px 0 0 16px;padding:0}
.lg-duplicate-warning li{margin:2px 0}
.lg-week-matrix th:first-child{z-index:3}
.lg-week-matrix thead th{position:sticky;top:0;background:#f8fafc;z-index:2}
.lg-upload-box input[type="file"]{width:100%;border:1px dashed var(--border);border-radius:12px;background:#fff;padding:10px;font-size:12px;color:var(--text)}
.lg-upload-box input[type="file"]::file-selector-button{border:0;border-radius:999px;background:var(--primary);color:#fff;padding:7px 12px;margin-right:10px;font-weight:700;cursor:pointer}

/* v1.6.21 — usability polish: mobile tables, progress, focus and feedback */
.lg-season-wrap{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);border-radius:12px;padding:3px 6px 3px 9px;box-shadow:0 8px 18px rgba(0,0,0,.08)}
.lg-season-wrap .lg-season-icon{font-size:15px;line-height:1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.lg-season-wrap .lg-season-switcher{border:0!important;background:transparent!important;box-shadow:none!important;padding-left:0!important}

.lg-table-wrap{position:relative;box-shadow:inset -14px 0 18px -18px rgba(15,23,42,.55)}
.lg-table tbody tr.is-selected td{background:#eef6ff!important;border-top-color:#bfdbfe!important;border-bottom-color:#bfdbfe!important}
.lg-table tbody tr.is-selected td:first-child{box-shadow:inset 4px 0 0 #2563eb}

.lg-enroll-progress{display:flex;gap:8px;align-items:stretch;margin:14px 0 18px;overflow-x:auto;padding:3px 2px 8px;scrollbar-width:thin}
.lg-enroll-progress-dot{min-width:118px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:7px 10px;box-shadow:0 8px 18px rgba(15,23,42,.05);color:#475569;font-size:12px;white-space:nowrap}
.lg-enroll-progress-dot b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#e0f2fe;color:#075985;font-size:12px;flex:0 0 auto}
.lg-enroll-progress-dot em{font-style:normal;overflow:hidden;text-overflow:ellipsis}

.lg-age-badge{display:none;margin:8px 0 0;width:max-content;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;letter-spacing:.01em}
.lg-age-badge.show{display:inline-flex}
.lg-age-badge.ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.lg-age-badge.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.lg-dup-field{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.14)!important;background:#fff7f7!important}

.lg-toast[role="status"]::before{content:'✓ ';font-weight:900}
.lg-toast[role="alert"]::before{content:'! ';font-weight:900}

@media(max-width:900px){
  .lg-table-wrap{overflow-x:auto;border-radius:14px;background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0)),linear-gradient(90deg, rgba(15,23,42,.12), rgba(255,255,255,0) 18px),linear-gradient(270deg, rgba(15,23,42,.12), rgba(255,255,255,0) 18px);background-attachment:local,scroll,scroll;background-position:left center,left center,right center;background-repeat:no-repeat;background-size:100% 100%,36px 100%,36px 100%}
  .lg-table-mobile thead{display:none}
  .lg-table-mobile,.lg-table-mobile tbody,.lg-table-mobile tr,.lg-table-mobile td{display:block;width:100%}
  .lg-table-mobile{border-collapse:separate;border-spacing:0;background:transparent!important}
  .lg-table-mobile tbody tr{background:#fff;border:1px solid #e5e7eb;border-radius:14px;margin:0 0 12px;padding:8px 10px;box-shadow:0 8px 22px rgba(15,23,42,.06)}
  .lg-table-mobile tbody tr + tr > td{border-top:0!important}
  .lg-table-mobile tbody td{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border:0!important;padding:7px 2px!important;text-align:right!important}
  .lg-table-mobile tbody td::before{content:attr(data-label);font-weight:800;color:#64748b;text-align:left;min-width:112px;max-width:46%;font-size:12px;line-height:1.25}
  .lg-table-mobile tbody td:empty{display:none}
  .lg-table-mobile tbody td:last-child{justify-content:flex-end;flex-wrap:wrap;border-top:1px dashed #e5e7eb!important;margin-top:4px;padding-top:10px!important}
  .lg-table-mobile tbody td:last-child::before{display:none}
  .lg-season-wrap{width:100%}
  .lg-season-wrap .lg-season-switcher{width:100%;max-width:none}
}


/* 1.6.22 - riepilogo presenze */
.lg-attendance-subtabs{display:flex;gap:8px;flex-wrap:wrap}
.lg-att-summary-grid{align-items:start;margin-top:14px}
.lg-section-title{font-size:13px;font-weight:700;color:var(--navy);margin:8px 0 10px}
.lg-progress-mini{height:7px;background:#edf1f6;border-radius:999px;overflow:hidden;min-width:70px;display:inline-block;vertical-align:middle;margin-right:6px}
.lg-progress-mini span{display:block;height:100%;background:var(--navy);border-radius:999px}
.lg-att-summary-kpis{margin:14px 0}
@media (max-width: 980px){.lg-att-summary-grid{grid-template-columns:1fr!important}}

/* v1.6.23 — dashboard operatore e strumenti settimanali */
.lg-operator-today-card { border-left: 4px solid var(--accent); }
.lg-operator-today-head { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin: 8px 0 14px; }
.lg-operator-child-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap:10px; }
.lg-operator-child-card { text-align:left; border:1px solid var(--border); background:#fff; border-radius:14px; padding:10px 12px; cursor:pointer; box-shadow:0 4px 12px rgba(23,48,84,.06); transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease; }
.lg-operator-child-card:hover, .lg-operator-child-card:focus { transform:translateY(-1px); border-color:var(--accent); box-shadow:0 8px 20px rgba(23,48,84,.10); outline:none; }
.lg-operator-child-card strong { display:block; color:var(--navy); font-size:13px; margin-bottom:4px; }
.lg-operator-child-card span { display:block; color:var(--muted); font-size:12px; }
.lg-empty-inline { padding:12px; border:1px dashed var(--border); border-radius:12px; color:var(--muted); background:#fafcff; }

/* v1.6.24 — modello ruoli: operatore, segreteria, contabilità, admingrest */


/* v1.6.26 — lista operatori più compatta e leggibile */
.lg-operator-daylist-note{font-size:11px;color:var(--muted);background:#f8fbff;border:1px solid var(--border);border-radius:12px;padding:8px 10px;margin:0 0 10px}
.lg-operator-daylist{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.lg-operator-child-card{padding:9px 10px;min-width:0}
.lg-operator-child-card.has-health{border-color:#f6c86b;background:#fffaf0}
.lg-operator-child-top{display:flex!important;align-items:flex-start;justify-content:space-between;gap:8px;color:inherit!important;font-size:inherit!important;margin:0 0 5px!important}
.lg-operator-child-top strong{margin:0!important;font-size:12.5px!important;line-height:1.2}
.lg-operator-child-top em{font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap;margin-top:1px}
.lg-operator-health-badges{display:flex;flex-direction:column;gap:4px;margin-top:5px;min-width:0}
.lg-operator-health-pill{display:block;border-radius:9px;padding:5px 6px;font-size:10px;line-height:1.2;font-weight:650;word-break:break-word;overflow-wrap:anywhere;min-width:0}
.lg-operator-health-pill.warn{background:#fff1cc;color:#7a4b00;border:1px solid #ffd980}
.lg-operator-health-pill.info{background:#eaf4ff;color:#173054;border:1px solid #cfe5ff}
.lg-operator-health-ok{display:block;font-size:10px;color:#64806a;background:#edf9ef;border:1px solid #c8ebce;border-radius:9px;padding:5px 6px;margin-top:5px;line-height:1.2}
@media (max-width: 700px){.lg-operator-daylist{grid-template-columns:1fr}.lg-operator-child-top{display:block!important}.lg-operator-child-top em{display:block;margin-top:2px}}

/* Release 1.6.29 - contrasto modulo pubblico e mobile operatori */
.lg-public-info-strip{
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#0f172a;
  border-radius:14px;
  font-size:13px;
  line-height:1.45;
}
.lg-public-grest-form input[type=text],
.lg-public-grest-form input[type=email],
.lg-public-grest-form input[type=date],
.lg-public-grest-form input[type=number],
.lg-public-grest-form select,
.lg-public-grest-form textarea,
.lg-public-request-form input[type=text],
.lg-public-request-form input[type=email],
.lg-public-request-form input[type=date],
.lg-public-request-form input[type=number],
.lg-public-request-form select,
.lg-public-request-form textarea{
  background:#ffffff !important;
  border:1.5px solid #94a3b8 !important;
  color:#0f172a !important;
  box-shadow:0 1px 0 rgba(15,23,42,.04), inset 0 0 0 1px rgba(255,255,255,.65) !important;
}
.lg-public-grest-form input:focus,
.lg-public-grest-form select:focus,
.lg-public-grest-form textarea:focus,
.lg-public-request-form input:focus,
.lg-public-request-form select:focus,
.lg-public-request-form textarea:focus{
  border-color:#2563eb !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.18) !important;
  outline:none !important;
}
.lg-week-capacity-input,
.lg-week-open-select{
  width:100%;
  min-width:86px;
}
@media(max-width:640px){
  .lase-grest-shell.lg-role-operator .lg-dashboard-kpis{
    display:none !important;
  }
}


/* v1.6.30 — Correzioni modulo pubblico: rimosso avviso rapido e consensi compatti */
.lg-public-request-form .lg-check-list{
  align-items:start !important;
  grid-auto-rows:min-content !important;
}
.lg-public-request-form .lg-check-row{
  align-self:start !important;
  min-height:0 !important;
  display:flex !important;
  align-items:flex-start !important;
}
.lg-public-request-form .lg-check-row span{
  line-height:1.25 !important;
}
.lg-public-request-form .lg-check-list > div{
  align-self:start !important;
}
.lg-public-request-form .lg-public-info-strip{
  display:none !important;
}

/* v1.6.31 — Capienza visibile in Edizioni + pulizia D-Day */
.lg-capacity-quickbox{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px;
  margin:14px 0 16px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  border-radius:16px;
}
.lg-capacity-quick-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.lg-capacity-quick-actions input,
.lg-capacity-quick-actions select{
  height:38px;
  border:1px solid #9fb2cf;
  border-radius:10px;
  padding:0 10px;
  background:#fff;
  color:var(--navy);
}
.lg-capacity-quick-actions input{width:100px;font-weight:800;text-align:center;}
.lg-season-capacity-card{scroll-margin-top:90px;}
.lg-week-capacity-input{max-width:92px;text-align:center;font-weight:700;}
.lg-week-open-select{min-width:82px;}
.lg-dday-reset-card{
  border-color:#fecaca!important;
  box-shadow:0 10px 30px rgba(185,28,28,.08)!important;
}
.lg-dday-reset-card h3{color:#991b1b!important;}
#lg-dday-confirm-text{
  border-color:#fca5a5;
  font-weight:800;
  letter-spacing:.04em;
}
@media (max-width:780px){
  .lg-capacity-quickbox{align-items:flex-start;flex-direction:column;}
  .lg-capacity-quick-actions{justify-content:flex-start;width:100%;}
  .lg-capacity-quick-actions input,.lg-capacity-quick-actions select,.lg-capacity-quick-actions button{width:100%;}
}


/* ─── v1.6.33 UX D-Day: feedback, mobile touch, errori umani ───────────── */
.lg-priority-card{border:2px solid rgba(220,38,38,.28)!important;background:linear-gradient(135deg,#fff7ed,#fff)!important;box-shadow:0 14px 35px rgba(220,38,38,.10)!important;}
.lg-priority-card h3{color:#991b1b!important;}
.lg-field-invalid .lg-label,.lg-check-row.lg-field-invalid,.lg-week-check.lg-field-invalid{color:#991b1b!important;}
.lg-invalid,.lg-field-invalid input,.lg-field-invalid select,.lg-field-invalid textarea{border-color:#dc2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.12)!important;background:#fff7f7!important;}
.lg-field-error{display:block;margin-top:4px;color:#b91c1c;font-size:11.5px;font-weight:800;line-height:1.25;}
.lg-btn-primary.is-loading,.lg-btn-secondary.is-loading,.lg-btn-danger.is-loading{position:relative;pointer-events:none;opacity:.78;}
.lg-btn-primary.is-loading:before,.lg-btn-secondary.is-loading:before,.lg-btn-danger.is-loading:before{content:"";display:inline-block;width:13px;height:13px;margin-right:7px;border:2px solid currentColor;border-top-color:transparent;border-radius:999px;vertical-align:-2px;animation:lgSpin .75s linear infinite;}
@keyframes lgSpin{to{transform:rotate(360deg)}}
.lg-public-request-form input[type=text],.lg-public-request-form input[type=email],.lg-public-request-form input[type=tel],.lg-public-request-form input[type=date],.lg-public-request-form input[type=number],.lg-public-request-form select,.lg-public-request-form textarea{background:#fff!important;border-color:#b7c2d6!important;}
.lg-public-request-form input:focus,.lg-public-request-form select:focus,.lg-public-request-form textarea:focus{border-color:#0b5cab!important;box-shadow:0 0 0 3px rgba(11,92,171,.16)!important;outline:none!important;}
.lg-public-request-form .lg-week-check,.lg-public-request-form .lg-check-row{cursor:pointer;}
@media(max-width:760px){
  .lg-public-request-form input[type=text],.lg-public-request-form input[type=email],.lg-public-request-form input[type=tel],.lg-public-request-form input[type=date],.lg-public-request-form input[type=number],.lg-public-request-form select{min-height:44px!important;height:44px!important;font-size:16px!important;padding:10px 12px!important;}
  .lg-public-request-form textarea{min-height:72px!important;height:auto!important;font-size:16px!important;padding:10px 12px!important;}
  .lg-public-request-form .lg-check-row,.lg-public-request-form .lg-week-check{min-height:44px!important;padding:11px 12px!important;font-size:14px!important;align-items:center!important;}
  .lg-public-request-form .lg-check-row input[type=checkbox],.lg-public-request-form .lg-check-row input[type=radio],.lg-public-request-form .lg-week-check input{width:22px!important;height:22px!important;min-width:22px!important;margin-top:0!important;}
  .lg-public-sticky-actions .lg-btn-primary{width:100%;min-height:52px!important;font-size:16px!important;}
  .lg-dashboard-kpis{display:none!important;}
}


/* ─── v1.6.34 Operatività e Contabilità ───────────────────────────────── */
.lg-filter-presets{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.lg-filter-chip{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;color:#334155;cursor:pointer;min-height:34px}
.lg-filter-chip.is-active{background:#0b5cab;color:#fff;border-color:#0b5cab;box-shadow:0 6px 16px rgba(11,92,171,.18)}
.lg-accounting-residual td:nth-child(6){background:#fff7ed}
.lg-accounting-overdue{background:#fff1f2!important}
.lg-accounting-overdue td{border-top-color:#fecdd3!important;border-bottom-color:#fecdd3!important}
.lg-accounting-overdue td:nth-child(6){color:#991b1b;font-weight:800}
.lg-child-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.lg-health-badges,.lg-health-badges-inline{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.lg-health-badge{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.lg-pill-red{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.lg-pill-amber{background:#fef3c7;color:#92400e;border-color:#fde68a}
.lg-pill-blue{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.lg-group-note{margin:10px 0 12px;padding:12px;border:1px solid #dbeafe;border-radius:14px;background:#eff6ff}
.lg-group-note>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lg-group-note input{min-width:260px;flex:1}
@media(max-width:760px){
  .lg-child-detail-head{flex-direction:column}.lg-child-detail-head button{width:100%}
  .lg-accounting-filter-bar{align-items:stretch}.lg-filter-presets{width:100%}.lg-filter-chip{flex:1;text-align:center}
  .lg-attend-table .lg-table-wrap{overflow:visible}
  .lg-attend-table table,.lg-attend-table thead,.lg-attend-table tbody,.lg-attend-table th,.lg-attend-table td,.lg-attend-table tr{display:block;width:100%}
  .lg-attend-table thead{display:none}
  .lg-attend-table tr{background:#fff;border:1px solid #dbe3ef;border-radius:16px;padding:12px;margin:10px 0;box-shadow:0 6px 18px rgba(15,23,42,.06)}
  .lg-attend-table td{border:0!important;padding:5px 0!important}
  .lg-attend-table td:first-child{display:none}
  .lg-attend-table td:nth-child(2){font-size:16px;font-weight:900;color:#0f172a;margin-bottom:4px}
  .lg-attend-table select,.lg-attend-table input{width:100%;min-height:42px}
  .lg-group-note>div{display:block}.lg-group-note input,.lg-group-note button{width:100%;margin-top:6px}
}


/* ─── v1.6.36 Rifinitura scheda + settimane live ───────────────────────── */
.lg-edit-sheet-card{margin-top:14px!important;padding:18px!important;border:1px solid #dbe7f6!important;background:linear-gradient(180deg,#ffffff,#f8fbff)!important;box-shadow:0 14px 38px rgba(15,23,42,.08)!important;border-radius:18px!important;}
.lg-edit-sheet-header{align-items:flex-start!important;border-bottom:1px solid #dbe7f6!important;padding-bottom:14px!important;margin-bottom:12px!important;}
.lg-edit-sheet-header h3{font-size:17px!important;margin:0!important;color:#0f2d52!important;}
.lg-edit-sheet-header .lg-card-sub{margin-top:4px!important;color:#64748b!important;}
.lg-edit-sheet-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 14px;padding:12px;border:1px solid #dbeafe;border-radius:16px;background:#eff6ff;}
.lg-edit-sheet-summary>div{background:#fff;border:1px solid #dbeafe;border-radius:12px;padding:9px 10px;min-width:0;}
.lg-edit-sheet-summary span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#64748b;font-weight:900;margin-bottom:3px;}
.lg-edit-sheet-summary strong{display:block;font-size:13px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lg-edit-sheet-form{gap:12px!important;}
.lg-edit-sheet-form .lg-edit-section-title{display:flex;align-items:center;gap:8px;margin:16px 0 8px!important;padding:10px 12px!important;border:0!important;border-radius:14px!important;background:#f1f5f9!important;color:#173054!important;font-weight:900!important;font-size:12px!important;letter-spacing:.08em!important;}
.lg-edit-sheet-form .lg-edit-section-title::before{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.08);font-size:13px;letter-spacing:0;}
.lg-edit-sheet-form .lg-edit-section-title:nth-of-type(1)::before{content:'✉️';}
.lg-edit-sheet-form .lg-edit-section-title:nth-of-type(2)::before{content:'👶';}
.lg-edit-sheet-form .lg-edit-section-title:nth-of-type(3)::before{content:'👨‍👩‍👧';}
.lg-edit-sheet-form .lg-edit-section-title:nth-of-type(4)::before{content:'🧾';}
.lg-edit-sheet-form .lg-edit-section-title:nth-of-type(5)::before{content:'📞';}
.lg-edit-sheet-form .lg-edit-section-title:nth-of-type(6)::before{content:'🩺';}
.lg-edit-sheet-form .lg-form-row{gap:12px!important;}
.lg-edit-sheet-form .lg-field{gap:5px!important;}
.lg-edit-sheet-form .lg-label{font-size:11.5px!important;font-weight:800!important;color:#4f6380!important;}
.lg-edit-sheet-form input[type=text],.lg-edit-sheet-form input[type=email],.lg-edit-sheet-form input[type=tel],.lg-edit-sheet-form input[type=date],.lg-edit-sheet-form input:not([type]),.lg-edit-sheet-form select,.lg-edit-sheet-form textarea{border:1px solid #c8d6ea!important;border-radius:11px!important;background:#fff!important;min-height:40px!important;padding:9px 11px!important;font-size:13.5px!important;box-shadow:0 1px 0 rgba(15,23,42,.03)!important;}
.lg-edit-sheet-form textarea{min-height:78px!important;line-height:1.35!important;}
.lg-edit-sheet-form input:focus,.lg-edit-sheet-form select:focus,.lg-edit-sheet-form textarea:focus{border-color:#0b5cab!important;box-shadow:0 0 0 4px rgba(11,92,171,.12)!important;}
.lg-edit-sheet-form .lg-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important;padding:12px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;}
.lg-edit-sheet-form .lg-check-list textarea,.lg-edit-sheet-form .lg-check-list .lg-field{grid-column:auto;}
.lg-edit-sheet-form .lg-check-row{border:1px solid #dbe7f6!important;background:#fff!important;border-radius:12px!important;padding:10px 12px!important;min-height:40px!important;align-items:center!important;}
.lg-edit-sheet-form .lg-check-row input[type=checkbox]{width:18px!important;height:18px!important;min-width:18px!important;}
.lg-edit-sheet-form .lg-upload-box{border:1px dashed #93b4da!important;background:#f8fbff!important;border-radius:16px!important;padding:14px!important;}
.lg-edit-sheet-actions{position:sticky;bottom:0;z-index:5;margin:4px -18px -18px;padding:14px 18px!important;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-top:1px solid #dbe7f6;}
.lg-edit-sheet-actions .lg-btn-primary{min-height:42px;padding-left:18px;padding-right:18px;}
.lg-week-live-status{display:block;margin-top:4px;font-weight:900!important;text-transform:uppercase;letter-spacing:.03em;}
.lg-week-live-open .lg-week-live-status{color:#15803d!important;}
.lg-week-live-full{opacity:.72;background:#f8fafc!important;}
.lg-week-live-full .lg-week-live-status{color:#b91c1c!important;}
.lg-weeks-refreshing{position:relative;}
.lg-weeks-refreshing::after{content:'Aggiornamento disponibilità…';position:absolute;right:8px;top:-28px;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;box-shadow:0 4px 12px rgba(15,23,42,.08);}
@media(max-width:900px){.lg-edit-sheet-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.lg-edit-sheet-form .lg-form-row.lg-col-3,.lg-edit-sheet-form .lg-form-row.lg-col-4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.lg-edit-sheet-card{padding:14px!important;border-radius:16px!important}.lg-edit-sheet-summary{grid-template-columns:1fr}.lg-edit-sheet-form .lg-form-row,.lg-edit-sheet-form .lg-form-row.lg-col-2,.lg-edit-sheet-form .lg-form-row.lg-col-3,.lg-edit-sheet-form .lg-form-row.lg-col-4{grid-template-columns:1fr!important}.lg-edit-sheet-form .lg-span-2,.lg-edit-sheet-form .lg-span-3,.lg-edit-sheet-form .lg-span-4{grid-column:auto!important}.lg-edit-sheet-form .lg-check-list{grid-template-columns:1fr}.lg-edit-sheet-actions{margin:4px -14px -14px;padding:12px 14px!important}.lg-edit-sheet-actions .lg-btn-primary{width:100%;}.lg-weeks-refreshing::after{position:static;display:block;margin-bottom:8px;text-align:center;}}
