/* ==========================================================================
   SecureAccess Portal — Stile principale (tema chiaro/scuro)
   ========================================================================== */

.sap-theme-light, .sap-body.sap-theme-light, body[data-sap-theme="light"]{
  --sap-bg:#f4f6fb;
  --sap-card:#ffffff;
  --sap-border:#e2e8f0;
  --sap-text:#1e293b;
  --sap-muted:#64748b;
  --sap-primary:#1a2b4c;
  --sap-primary-light:#2d4373;
  --sap-accent:#3b82f6;
  --sap-accent-dark:#2563eb;
  --sap-success:#16a34a;
  --sap-danger:#dc2626;
  --sap-warning:#d97706;
  --sap-shadow:0 4px 20px rgba(20,30,60,0.08);
  --sap-input-bg:#fbfcfe;
}
.sap-theme-dark, .sap-body.sap-theme-dark, body[data-sap-theme="dark"]{
  --sap-bg:#0f172a;
  --sap-card:#1a2436;
  --sap-border:#2b3a52;
  --sap-text:#e7ecf5;
  --sap-muted:#94a3b8;
  --sap-primary:#dbe4f7;
  --sap-primary-light:#a8bce0;
  --sap-accent:#3b82f6;
  --sap-accent-dark:#60a5fa;
  --sap-success:#22c55e;
  --sap-danger:#f87171;
  --sap-warning:#fbbf24;
  --sap-shadow:0 4px 24px rgba(0,0,0,0.45);
  --sap-input-bg:#111a2c;
}

.sap-body{
  margin:0;
  background:var(--sap-bg);
  color:var(--sap-text);
  font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  line-height:1.55;
  min-height:100vh;
}
.sap-shortcode-wrap, .sap-wp-admin-wrap{
  background:var(--sap-bg);
  color:var(--sap-text);
  font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  padding:6px;
  border-radius:12px;
}
.sap-shortcode-wrap a{color:var(--sap-accent-dark);}
.sap-shortcode-wrap *{box-sizing:border-box;}
.sap-body *{box-sizing:border-box;}

/* ---------- Topbar pubblica ---------- */
.sap-topbar{
  background:linear-gradient(135deg, var(--sap-primary) 0%, var(--sap-primary-light) 100%);
  color:#fff; padding:0 24px; height:60px;
  display:flex; align-items:center; justify-content:space-between;
  box-shadow:var(--sap-shadow);
}
.sap-theme-dark .sap-topbar{ background:linear-gradient(135deg,#0b1120 0%, #1c2942 100%); }
.sap-brand{font-weight:700;font-size:1.15rem;display:flex;align-items:center;gap:10px;color:#fff;}
.sap-dot{width:10px;height:10px;border-radius:50%;background:var(--sap-accent);box-shadow:0 0 0 4px rgba(59,130,246,.25);}
.sap-nav{display:flex;align-items:center;gap:16px;}
.sap-nav a{color:#dbe4f7;font-size:.9rem;font-weight:500;text-decoration:none;}
.sap-nav a:hover{color:#fff;}
.sap-lang-switch{display:flex;gap:6px;}
.sap-lang-switch a{border:1px solid rgba(255,255,255,.3);padding:3px 9px;border-radius:6px;font-size:.75rem;color:#fff;text-decoration:none;}
.sap-wp-admin-wrap .sap-lang-switch a{border-color:var(--sap-border);color:var(--sap-text);}
.sap-lang-switch a.active{background:var(--sap-accent);border-color:var(--sap-accent);color:#fff;}

/* ---------- Layout pagine ---------- */
.sap-page, .sap-auth-shell{
  max-width:1180px; margin:0 auto; padding:40px 20px 70px;
}
.sap-auth-shell{max-width:560px; display:flex; align-items:center; min-height:80vh;}
.sap-is-public .sap-auth-shell{min-height:calc(100vh - 140px);}

.sap-card{
  background:var(--sap-card); border:1px solid var(--sap-border); border-radius:14px;
  box-shadow:var(--sap-shadow); padding:34px; width:100%;
}
.sap-card + .sap-card{margin-top:22px;}
.sap-card-wide{max-width:1100px;margin:0 auto;}

.sap-form-header{text-align:center;margin-bottom:22px;}
.sap-icon-circle{
  width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--sap-accent),var(--sap-accent-dark));
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 16px;
  box-shadow:0 8px 20px rgba(59,130,246,.35);
}
.sap-icon-success{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 8px 20px rgba(34,197,94,.35);}
.sap-icon-warning{background:linear-gradient(135deg,#fbbf24,#d97706);box-shadow:0 8px 20px rgba(217,119,6,.3);}
.sap-icon-danger{background:linear-gradient(135deg,#f87171,#dc2626);box-shadow:0 8px 20px rgba(220,38,38,.3);}

.sap-title{font-size:1.6rem;font-weight:800;color:var(--sap-primary);margin:0 0 8px;}
.sap-subtitle{color:var(--sap-muted);margin:0 0 4px;font-size:.95rem;}
.sap-center{text-align:center;}
.sap-mt{margin-top:20px;} .sap-mt-sm{margin-top:8px;} .sap-mt-0{margin-top:0 !important;}
.sap-muted{color:var(--sap-muted);} .sap-small{font-size:.82rem;} .sap-break{word-break:break-all;}
.sap-nowrap{white-space:nowrap;}
.sap-flex-between{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.sap-flex-gap{display:flex;gap:8px;}
.sap-inline-flex{display:flex;gap:10px;align-items:center;}
.sap-inline-form{display:inline;}

/* ---------- Form ---------- */
.sap-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-bottom:6px;}
.sap-col-2{grid-column:1/-1;}
@media (max-width:620px){.sap-grid-2{grid-template-columns:1fr;}}
.sap-field label, .sap-field-label{display:block;font-weight:600;font-size:.85rem;margin-bottom:6px;color:var(--sap-text);}
.sap-req{color:var(--sap-danger);}
.sap-field input[type=text], .sap-field input[type=email], .sap-field input[type=password],
.sap-field select, .sap-field textarea{
  width:100%; padding:11px 13px; border:1.5px solid var(--sap-border); border-radius:9px;
  font-size:.95rem; background:var(--sap-input-bg); color:var(--sap-text); transition:.15s; font-family:inherit;
}
.sap-field input:focus, .sap-field select:focus, .sap-field textarea:focus{
  outline:none;border-color:var(--sap-accent);box-shadow:0 0 0 3px rgba(59,130,246,.18);
}
.sap-field textarea{min-height:90px;resize:vertical;}
.sap-form{margin-top:6px;}

/* ---------- Buttons ---------- */
.sap-btn{
  display:inline-block;background:var(--sap-accent);color:#fff;border:none;
  padding:11px 24px;border-radius:9px;font-size:.93rem;font-weight:600;cursor:pointer;
  transition:.15s;text-decoration:none;
}
.sap-btn:hover{background:var(--sap-accent-dark);color:#fff;}
.sap-btn-block{width:100%;text-align:center;}
.sap-btn-lg{padding:13px 24px;font-size:1rem;margin-top:8px;}
.sap-btn-sm{padding:7px 15px;font-size:.82rem;}
.sap-btn-xs{padding:5px 11px;font-size:.76rem;}
.sap-btn-ghost{background:transparent;border:1.5px solid var(--sap-border);color:var(--sap-text);}
.sap-btn-ghost:hover{background:var(--sap-border);color:var(--sap-text);}
.sap-btn-success{background:var(--sap-success);} .sap-btn-success:hover{filter:brightness(.92);}
.sap-btn-danger{background:var(--sap-danger);} .sap-btn-danger:hover{filter:brightness(.92);}

/* ---------- Alerts & Badges ---------- */
.sap-alert{padding:13px 16px;border-radius:9px;margin-bottom:18px;font-size:.9rem;border-left:4px solid;}
.sap-alert-error{background:rgba(220,38,38,.08);color:#dc2626;border-color:var(--sap-danger);}
.sap-alert-success{background:rgba(34,197,94,.08);color:#16a34a;border-color:var(--sap-success);}
.sap-alert-warning{background:rgba(217,119,6,.08);color:#d97706;border-color:var(--sap-warning);}
.sap-alert-info{background:rgba(59,130,246,.08);color:#2563eb;border-color:var(--sap-accent);}
.sap-theme-dark .sap-alert-error{color:#fca5a5;}
.sap-theme-dark .sap-alert-success{color:#86efac;}
.sap-theme-dark .sap-alert-info{color:#93c5fd;}

.sap-badge{display:inline-block;padding:3px 11px;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.sap-badge-pending{background:#fef3c7;color:#92400e;}
.sap-badge-approved{background:#dcfce7;color:#166534;}
.sap-badge-rejected{background:#fee2e2;color:#991b1b;}
.sap-badge-cat{background:rgba(59,130,246,.12);color:var(--sap-accent-dark);margin-bottom:8px;}

/* ---------- Tables ---------- */
.sap-table-wrap{overflow-x:auto;}
.sap-table{width:100%;border-collapse:collapse;font-size:.86rem;}
.sap-table th{text-align:left;background:rgba(59,130,246,.07);color:var(--sap-primary);padding:10px 12px;font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--sap-border);}
.sap-table td{padding:10px 12px;border-bottom:1px solid var(--sap-border);vertical-align:middle;}
.sap-table tr:hover td{background:rgba(59,130,246,.04);}
.sap-table code{font-size:.78rem;}

/* ---------- Stats ---------- */
.sap-admin-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:24px;}
@media (max-width:900px){.sap-admin-stats{grid-template-columns:repeat(2,1fr);}}
.sap-stat{background:var(--sap-card);border:1px solid var(--sap-border);border-radius:12px;padding:16px;text-align:center;box-shadow:var(--sap-shadow);}
.sap-stat-num{font-size:1.7rem;font-weight:800;color:var(--sap-primary);}
.sap-stat-warning .sap-stat-num{color:var(--sap-warning);}
.sap-stat-success .sap-stat-num{color:var(--sap-success);}
.sap-stat-danger .sap-stat-num{color:var(--sap-danger);}
.sap-stat-lbl{font-size:.75rem;color:var(--sap-muted);text-transform:uppercase;letter-spacing:.03em;margin-top:4px;}

/* ---------- Tabs / Search ---------- */
.sap-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:2px solid var(--sap-border);flex-wrap:wrap;}
.sap-tabs a{padding:9px 16px;font-size:.86rem;font-weight:600;color:var(--sap-muted);border-bottom:3px solid transparent;margin-bottom:-2px;text-decoration:none;}
.sap-tabs a.active{color:var(--sap-accent-dark);border-color:var(--sap-accent);}
.sap-search-form{display:flex;gap:8px;margin-bottom:16px;}
.sap-search-form input{padding:9px 12px;border:1.5px solid var(--sap-border);border-radius:9px;background:var(--sap-input-bg);color:var(--sap-text);max-width:280px;width:100%;}

/* ---------- Key/value detail ---------- */
.sap-section-title{font-size:1.02rem;font-weight:700;color:var(--sap-primary);margin:28px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--sap-border);}
.sap-kv{display:grid;grid-template-columns:200px 1fr;gap:9px 16px;font-size:.88rem;}
.sap-kv strong{color:var(--sap-muted);font-weight:600;}

/* ---------- Content cards with image (sezioni autorizzate) ---------- */
.sap-content-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:8px;}
.sap-content-card{background:var(--sap-card);border:1px solid var(--sap-border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:.15s;box-shadow:var(--sap-shadow);}
.sap-content-card:hover{transform:translateY(-3px);}
.sap-content-thumb{height:130px;background:rgba(59,130,246,.06);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.sap-thumb-img{width:100%;height:100%;object-fit:cover;}
.sap-thumb-placeholder{font-size:2rem;opacity:.4;}
.sap-content-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:6px;}
.sap-content-body h3{margin:0;font-size:1.02rem;color:var(--sap-text);}
.sap-content-body .sap-btn{margin-top:auto;align-self:flex-start;}

/* ---------- Link checklist con miniatura (assegnazione autorizzazioni) ---------- */
.sap-link-checklist{display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;border:1px solid var(--sap-border);border-radius:10px;padding:12px;}
.sap-link-check-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;cursor:pointer;}
.sap-link-check-item:hover{background:rgba(59,130,246,.06);}
.sap-link-check-thumb{width:46px;height:46px;border-radius:8px;overflow:hidden;background:rgba(59,130,246,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sap-thumb-img-sm{width:100%;height:100%;object-fit:cover;}
.sap-thumb-placeholder-sm{font-size:1.1rem;opacity:.4;}

/* ---------- Image picker (admin link form) ---------- */
.sap-image-picker{display:flex;align-items:center;gap:16px;}
.sap-image-preview{width:90px;height:90px;border-radius:10px;background:rgba(59,130,246,.07);display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px dashed var(--sap-border);}
.sap-image-preview img{width:100%;height:100%;object-fit:cover;}

/* ---------- Theme switch (settings) ---------- */
.sap-theme-switch{display:flex;gap:16px;margin-top:8px;}
.sap-theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.85rem;font-weight:600;cursor:pointer;padding:14px;border:2px solid var(--sap-border);border-radius:12px;}
.sap-theme-option.selected, .sap-theme-option:has(input:checked){border-color:var(--sap-accent);background:rgba(59,130,246,.06);}
.sap-theme-option input{margin:0;}
.sap-theme-swatch{width:64px;height:42px;border-radius:8px;display:block;box-shadow:0 2px 8px rgba(0,0,0,.15);}
.sap-theme-swatch-light{background:linear-gradient(135deg,#f4f6fb,#ffffff);border:1px solid #e2e8f0;}
.sap-theme-swatch-dark{background:linear-gradient(135deg,#0f172a,#1a2436);border:1px solid #2b3a52;}

/* ---------- Admin standalone shell (iframe) ---------- */
.sap-admin-shell{min-height:100vh;}
.sap-admin-topbar{
  background:linear-gradient(135deg,var(--sap-primary) 0%, var(--sap-primary-light) 100%);
  padding:0 24px;height:58px;display:flex;align-items:center;justify-content:space-between;
}
.sap-theme-dark .sap-admin-topbar{background:linear-gradient(135deg,#0b1120,#1c2942);}
.sap-admin-brand{color:#fff;font-weight:700;font-size:1.05rem;}
.sap-admin-brand small{opacity:.6;font-weight:500;font-size:.65rem;}
.sap-admin-nav{display:flex;gap:14px;align-items:center;}
.sap-admin-nav a{color:#dbe4f7;font-size:.85rem;font-weight:600;text-decoration:none;padding:6px 4px;border-bottom:2px solid transparent;}
.sap-admin-nav a.active{color:#fff;border-color:var(--sap-accent);}
.sap-admin-content{padding:26px 30px;max-width:1280px;margin:0 auto;}

/* ---------- WP-Admin integration tweaks ---------- */
.sap-wp-admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.wrap.sap-wp-admin-wrap{background:transparent;}

/* ---------- Privacy box & copyright ---------- */
.sap-privacy-box{
  background:rgba(59,130,246,.05); border:1px solid var(--sap-border); border-radius:10px;
  padding:16px 18px; margin:18px 0;
}
.sap-privacy-title{font-weight:700;font-size:.88rem;color:var(--sap-primary);margin-bottom:8px;}
.sap-privacy-text{font-size:.8rem;color:var(--sap-muted);max-height:120px;overflow-y:auto;margin-bottom:12px;line-height:1.6;padding-right:4px;}
.sap-checkbox-label{display:flex;align-items:flex-start;gap:10px;font-size:.85rem;font-weight:500;cursor:pointer;}
.sap-checkbox-label input{margin-top:3px;flex-shrink:0;width:16px;height:16px;}
.sap-copyright{text-align:center;font-size:.74rem;color:var(--sap-muted);margin-top:22px;opacity:.85;}

/* ---------- Filtro categorie e sezioni raggruppate (Area Riservata) ---------- */
.sap-category-filter{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 8px;}
.sap-filter-btn{
  background:var(--sap-card);border:1.5px solid var(--sap-border);color:var(--sap-text);
  padding:8px 16px;border-radius:20px;font-size:.82rem;font-weight:600;cursor:pointer;transition:.15s;
}
.sap-filter-btn:hover{border-color:var(--sap-accent);}
.sap-filter-btn.active{background:var(--sap-accent);border-color:var(--sap-accent);color:#fff;}
.sap-category-section{margin-top:30px;}
.sap-category-heading{
  font-size:1.05rem;font-weight:700;color:var(--sap-primary);margin:0 0 14px;
  display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--sap-border);
}
.sap-category-count{
  background:rgba(59,130,246,.12);color:var(--sap-accent-dark);font-size:.72rem;font-weight:700;
  padding:2px 9px;border-radius:12px;
}
.sap-category-section.sap-hidden{display:none;}

/* ---------- Contenitori contenuti: orizzontale / griglia / elenco (configurabili) ---------- */
.sap-content-horizontal{
  display:flex; gap:18px; overflow-x:auto; overflow-y:hidden; padding-bottom:10px;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
}
.sap-content-horizontal::-webkit-scrollbar{height:8px;}
.sap-content-horizontal::-webkit-scrollbar-thumb{background:var(--sap-border);border-radius:4px;}
.sap-content-horizontal::-webkit-scrollbar-track{background:transparent;}
.sap-content-horizontal > .sap-content-card{flex:0 0 auto; scroll-snap-align:start;}

.sap-content-grid{
  display:grid; grid-template-columns:repeat(var(--sap-grid-cols,4), 1fr); gap:18px;
}
@media (max-width:980px){ .sap-content-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .sap-content-grid{ grid-template-columns:1fr; } }

.sap-content-list{ display:flex; flex-direction:column; gap:14px; }
.sap-content-list > .sap-content-card{
  flex-direction:row; align-items:stretch;
}
.sap-content-list > .sap-content-card .sap-content-thumb{ flex:0 0 140px; height:auto; }
.sap-content-list > .sap-content-card .sap-content-body{ flex:1; }

/* ---------- Dimensioni card (small / medium / large) ---------- */
.sap-content-horizontal > .sap-card-size-small,
.sap-card-mode-grid.sap-card-size-small{ width:200px; }
.sap-content-horizontal > .sap-card-size-medium,
.sap-card-mode-grid.sap-card-size-medium{ width:260px; }
.sap-content-horizontal > .sap-card-size-large,
.sap-card-mode-grid.sap-card-size-large{ width:320px; }
.sap-card-mode-grid{ width:100% !important; }
.sap-card-size-small .sap-content-body h3{ font-size:.92rem; }
.sap-card-size-large .sap-content-body h3{ font-size:1.12rem; }
.sap-card-size-small .sap-content-body{ padding:12px; }
.sap-card-size-large .sap-content-body{ padding:20px; }

/* ---------- Stile grafico card ---------- */
.sap-card-style-shadow{ box-shadow:var(--sap-shadow); border:1px solid var(--sap-border); }
.sap-card-style-bordered{ box-shadow:none; border:1.5px solid var(--sap-border); }
.sap-card-style-minimal{ box-shadow:none; border:none; background:transparent; }
.sap-card-style-minimal .sap-content-thumb{ border-radius:10px; }

/* ---------- Proporzioni immagine ---------- */
.sap-content-thumb.sap-ratio-square{ aspect-ratio:1/1; height:auto; }
.sap-content-thumb.sap-ratio-wide{ aspect-ratio:16/9; height:auto; }
.sap-content-thumb.sap-ratio-tall{ aspect-ratio:3/4; height:auto; }

/* ---------- Anteprime grafiche selezionabili (impostazioni) ---------- */
.sap-layout-swatches{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;}
.sap-layout-swatch{
  display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;
  padding:14px 16px;border:2px solid var(--sap-border);border-radius:12px;font-size:.8rem;font-weight:600;
  min-width:110px;
}
.sap-layout-swatch.selected, .sap-layout-swatch:has(input:checked){border-color:var(--sap-accent);background:rgba(59,130,246,.06);}
.sap-layout-swatch input{position:absolute;opacity:0;width:0;height:0;}
.sap-swatch-box{width:84px;height:54px;display:flex;align-items:center;justify-content:center;background:var(--sap-bg);border-radius:8px;border:1px solid var(--sap-border);overflow:hidden;padding:6px;}
.sap-swatch-label{color:var(--sap-text);}

.sap-mini-row{display:flex;gap:4px;align-items:flex-end;}
.sap-mini-row span{width:14px;height:30px;background:var(--sap-accent);border-radius:3px;opacity:.85;}
.sap-mini-row-flat span{height:20px;}

.sap-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;width:100%;}
.sap-mini-grid span{height:14px;background:var(--sap-accent);border-radius:3px;opacity:.85;}

.sap-mini-list{display:flex;flex-direction:column;gap:4px;width:100%;}
.sap-mini-list span{height:10px;background:var(--sap-accent);border-radius:3px;opacity:.85;}

.sap-mini-card{background:var(--sap-accent);border-radius:5px;opacity:.85;}
.sap-mini-card-sm{width:26px;height:34px;}
.sap-mini-card-md{width:36px;height:44px;}
.sap-mini-card-lg{width:46px;height:54px;}
.sap-style-shadow{box-shadow:0 4px 8px rgba(0,0,0,.25);}
.sap-style-bordered{background:transparent;border:2px solid var(--sap-accent);}
.sap-style-minimal{background:transparent;border-bottom:2px solid var(--sap-accent);border-radius:0;}

.sap-mini-groups{display:flex;flex-direction:column;gap:5px;width:100%;}
.sap-mini-group-row{display:flex;gap:3px;}
.sap-mini-group-row span{width:16px;height:12px;background:var(--sap-accent);border-radius:2px;opacity:.85;}

.sap-mini-ratio{background:var(--sap-accent);border-radius:4px;opacity:.85;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;}
.sap-ratio-square{width:32px;height:32px;}
.sap-ratio-wide{width:48px;height:27px;}
.sap-ratio-tall{width:26px;height:40px;}
.sap-ratio-none{width:32px;height:32px;background:transparent;border:2px dashed var(--sap-border);color:var(--sap-muted);}

.sap-toggle-row{display:flex;flex-direction:column;gap:10px;margin-top:6px;}

/* ---------- Shortcode iframe embed wrapper ---------- */
.sap-iframe-embed iframe{display:block;}
