/* SamueleFitnessCoach — tema grafico (caricato dopo gli stili dell'app) */
:root{
  --bg:#0a0908;
  --panel:rgba(22,20,19,.78);
  --panel2:rgba(34,31,29,.72);
  --line:rgba(255,255,255,.085);
  --line-strong:rgba(255,255,255,.14);
  --text:#f1ede8;
  --dim:#9d968f;
  --orange:#ff6a00;
  --red:#ff2d55;
  --gradient:linear-gradient(135deg,#ff7a1a 0%,#ff4a3d 55%,#ff2d55 100%);
  --orange-dim:rgba(255,106,0,.14);
  --font-display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --font-ui:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:dark;
}

/* ---------- Sfondo: faretto caldo dall'alto, riflesso in basso, grana ---------- */
html{background:var(--bg)}
body{
  background:transparent !important;
  font-family:var(--font-ui) !important;
  font-size:15px;
  font-kerning:normal;
  font-feature-settings:"kern" 1;
  line-height:1.5;
  letter-spacing:.003em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
body::before{
  content:"" !important;
  position:fixed !important; inset:0 !important; z-index:-2 !important; pointer-events:none;
  opacity:1 !important;
  background:
    radial-gradient(70% 45% at 50% -8%, rgba(255,122,26,.20) 0%, rgba(255,122,26,.06) 45%, transparent 75%),
    radial-gradient(55% 40% at 105% 105%, rgba(255,45,85,.12) 0%, transparent 70%),
    radial-gradient(45% 35% at -5% 70%, rgba(255,106,0,.05) 0%, transparent 70%),
    linear-gradient(180deg,#0f0d0b 0%,#0a0908 38%,#070606 100%) !important;
  background-size:auto !important;
  background-repeat:no-repeat !important;
}
body::after{
  content:"" !important;
  position:fixed !important; inset:-50% !important; z-index:-1 !important; pointer-events:none;
  opacity:.085 !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") !important;
  background-size:180px 180px !important;
  background-repeat:repeat !important;
  mix-blend-mode:soft-light;
}
.glow-field{
  top:-38% !important; width:1100px !important; height:760px !important; max-width:140vw;
  background:radial-gradient(closest-side, rgba(255,106,0,.13), rgba(255,45,85,.05) 60%, transparent) !important;
  filter:blur(40px) !important;
  z-index:-1 !important;
}
.athlete-silhouette{opacity:.022 !important; z-index:-1 !important; width:min(460px,70vw) !important}

/* ---------- Superfici ---------- */
.panel,.accordion-item,.modal,.sfc-dash-card,.sfc-sheet,dialog.sfc-dlg{
  background:linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(255,255,255,0) 40%), var(--panel) !important;
  border-color:var(--line) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 18px 40px -24px rgba(0,0,0,.8) !important;
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  backdrop-filter:blur(14px) saturate(120%);
}
.sfc-sheet{border:1.5px solid rgba(255,106,0,.75) !important; box-shadow:0 0 0 1px rgba(255,106,0,.08), 0 0 22px -6px rgba(255,106,0,.35) !important}
header.top{
  background:rgba(10,9,8,.72) !important;
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--line) !important;
}
input,select,textarea{
  background:rgba(0,0,0,.28) !important;
  border-color:var(--line-strong) !important;
  font-family:var(--font-ui) !important;
  font-size:15px !important;
}
input:focus,select:focus,textarea:focus{border-color:var(--orange) !important; box-shadow:0 0 0 3px rgba(255,106,0,.16)}
.sfc-cell,.sfc-exname{background:transparent !important}
input[type="checkbox"],input[type="radio"],input[type="range"]{background:none !important; box-shadow:none !important}

/* ---------- Caratteri ---------- */
h1,h2,h3,.plan-name,.brand,.sfc-tag,.sfc-kv b,.sfc-ed-name,.sfc-day-title,.sfc-dh h2{
  font-family:var(--font-display) !important;
  font-stretch:118%;
  font-variation-settings:"wdth" 118;
  font-weight:800 !important;
  letter-spacing:-.005em !important;
}
h1{line-height:1.05}
h2{font-size:clamp(18px,2.2vw,22px); line-height:1.15}
h3{font-size:16px; line-height:1.2}
.accordion-header h2{font-size:17px !important; letter-spacing:.005em !important}
.sfc-tag{font-weight:700 !important; font-variant-numeric:tabular-nums}
header.top .brand{transform:none !important; font-size:17px !important; letter-spacing:-.01em !important}
button,.btn-primary,.btn-ghost{font-family:var(--font-ui) !important; letter-spacing:.005em}
.btn-primary{font-weight:700 !important}

/* etichette: niente maiuscolo tecnico, testo leggibile */
label,.label,.auth-sub,.sfc-ed-who,.sfc-exmeta,.sfc-kv small,.sfc-score small,.sfc-bh .lbl,.sfc-msg time,.who{
  font-family:var(--font-ui) !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  font-weight:500;
}
label{font-size:13px !important; color:var(--dim)}
[style*="--font-display"]{font-weight:800 !important; font-variation-settings:"wdth" 118}
[style*="--font-ui"][style*="uppercase"]{text-transform:none !important; letter-spacing:0 !important}
.client-card .meta,.pill,.stat-chip,.meso-stat-card .meso-label,.meta-label,.cal-grid th,.ex-table th{
  text-transform:none !important; letter-spacing:0 !important;
}
th{
  font-family:var(--font-ui) !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  font-weight:600 !important;
  font-size:12.5px !important;
}
table,td,.sfc-cell,.cal-slot,.cal-grid td{font-variant-numeric:tabular-nums}
.ex-tag,.cal-slot,.cal-day-label,.hour-label,.macro-card .label,.ex-card-load-current .label{
  font-family:var(--font-ui) !important; text-transform:none !important; letter-spacing:0 !important;
}

::selection{background:rgba(255,106,0,.35); color:#fff}
:focus-visible{outline:2px solid var(--orange); outline-offset:2px}

/* campi speciali dell'editor scheda */
.sfc-ed-name{font-size:clamp(26px,4vw,38px) !important; text-transform:uppercase; background:transparent !important; border-color:transparent !important}
.sfc-day-title{font-size:22px !important; background:transparent !important; border-color:transparent !important}
.sfc-ed-name:focus,.sfc-day-title:focus{box-shadow:none}
.sfc-cell{font-size:14px !important}
.sfc-table .w-s{width:96px}
.sfc-bh input,.sfc-bh select{font-size:13.5px !important}

@media (max-width:640px){
  body{font-size:15.5px}
  h1,h2,h3,.plan-name,.sfc-ed-name{font-variation-settings:"wdth" 112; font-stretch:112%}
}
@media (prefers-reduced-transparency:reduce){
  .panel,.accordion-item,.modal,header.top{-webkit-backdrop-filter:none; backdrop-filter:none; background:#161413 !important}
}
@media print{
  body::before,body::after,.glow-field,.athlete-silhouette{display:none !important}
}

/* ================= Ottimizzazione iPhone / Android ================= */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ -webkit-tap-highlight-color:transparent; }
button, a, [role="button"]{ touch-action:manipulation; }
header.top{
  padding-top:max(14px, env(safe-area-inset-top)) !important;
  padding-left:max(20px, calc(env(safe-area-inset-left) + 12px)) !important;
  padding-right:max(20px, calc(env(safe-area-inset-right) + 12px)) !important;
}
main::after{ content:''; display:block; height:env(safe-area-inset-bottom); }
.sfc-ed-wrap{ padding-top:max(18px, env(safe-area-inset-top)) !important; padding-bottom:calc(120px + env(safe-area-inset-bottom)) !important; }
#toast, .toast{ bottom:calc(24px + env(safe-area-inset-bottom)) !important; }
dialog.sfc-dlg{ max-height:calc(92vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); max-height:calc(92dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
.sfc-chat{ max-height:65dvh; }
@media (max-width:640px){
  /* niente zoom automatico di Safari sui campi */
  input, select, textarea{ font-size:16px !important; }
  .sfc-cell{ font-size:15px !important; }
  /* scorrimento fluido anche su telefoni Android meno potenti */
  .panel, .accordion-item, .sfc-dash-card, .an-card{
    -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
    background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0) 40%), #151311 !important;
  }
  body::after{ mix-blend-mode:normal !important; opacity:.04 !important; }
  .glow-field{ filter:blur(28px) !important; }
  button, .btn-primary, .btn-ghost{ min-height:40px; }
  .sfc-icon{ width:40px; height:40px; }
}
@media (hover:none){
  .btn-primary:hover{ transform:none; }
  .btn-primary:active, .btn-ghost:active, .sfc-logbtn:active{ transform:scale(.97); }
}

/* intestazione compatta sui telefoni stretti */
body{ overflow-x:hidden; }
header.top{ gap:10px; }
header.top > div:first-child{ min-width:0; flex:1 1 auto; display:flex; align-items:center; gap:8px; }
header.top > div:last-child{ flex:0 0 auto; display:flex; align-items:center; gap:6px; }
@media (max-width:420px){
  header.top{ padding-left:max(14px, calc(env(safe-area-inset-left) + 8px)) !important; padding-right:max(14px, calc(env(safe-area-inset-right) + 8px)) !important; }
  header.top .brand{ font-size:15px !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
  header.top img, header.top svg{ flex:none; }
  header.top .btn-ghost.btn-small{ padding:8px 12px; }
  #sfc-push-btn{ padding:8px 10px !important; }
}
@media (max-width:379px){
  header.top .brand{ font-size:0 !important; gap:0 !important; }
  header.top .brand img{ width:34px !important; height:34px !important; }
}

/* nessun elemento decorativo può allargare la pagina sui telefoni */
html{ overflow-x:hidden; }
@supports (overflow:clip){ html, body{ overflow-x:clip; } }
