/* ==========================================================================
   NEURO-LEVELING — THEME V3 "MONARCH"
   Re-skin in stile Solo Leveling + identita NerdCoach.
   Caricato DOPO styles.css: sovrascrive palette, chrome e componenti chiave.
   ========================================================================== */

:root {
  /* --- fondali: nero-blu profondo, non grigio --- */
  --bg:#03040A; --bg2:#05070F; --surface:#0A0F1F; --surface2:#101832; --surface-h:#18224A;

  /* --- accenti: blu elettrico NerdCoach + viola monarca --- */
  --primary:#2F62FF;        /* blu logo (schiarito per leggibilita su nero) */
  --primary-deep:#0837F0;   /* blu logo puro, per glow */
  --secondary:#7B3FFF;      /* viola monarca */
  --secondary-deep:#5B0FD6; /* viola stella logo */
  --ice:#5FD8FF;            /* ciano ghiaccio, solo per dati/evidenze */
  --gold:#FFC94A;           /* ricompense, XP */
  --accent:#FF3B5C;         /* pericolo / boss */
  --success:#35E08A;
  --warning:#FFB800;

  /* --- fazioni ricalibrate sulla nuova palette --- */
  --physique:#FF5C9E; --neural:#4C8BFF; --cognitive:#4FE3D0; --social:#A97BFF;

  /* --- testo --- */
  --text:#EAF0FF; --text-dim:#A9B6DC; --text-muted:#7987B4;
  --border:#1D2A55;
  --border-lit:rgba(90,140,255,.34);

  --glow-blue:0 0 24px rgba(47,98,255,.35);
  --glow-violet:0 0 26px rgba(123,63,255,.32);
  --panel-grad:linear-gradient(158deg, rgba(24,42,104,.42) 0%, rgba(8,12,28,.92) 62%);

  --nav:72px;
}

/* ==================== FONDALE GLOBALE ==================== */
body{
  background:
    radial-gradient(120% 70% at 50% -10%, rgba(47,98,255,.16) 0%, transparent 62%),
    radial-gradient(90% 60% at 100% 105%, rgba(123,63,255,.13) 0%, transparent 60%),
    var(--bg);
  background-attachment:fixed;
}
/* griglia tecnica appena percettibile */
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(80,130,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80,130,255,.045) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(120% 80% at 50% 0%, #000 0%, transparent 75%);
  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%, #000 0%, transparent 75%);
}
.vignette{background:radial-gradient(ellipse at center, transparent 48%, rgba(0,0,0,.55) 100%)}
.scanlines{background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.05) 3px,rgba(0,0,0,.05) 4px)}

/* ==================== GLITCH — piu sobrio, blu/viola invece di rosso ==================== */
.glitch-text::before{color:var(--secondary);opacity:.45}
.glitch-text::after{color:var(--ice);opacity:.35}
.screen-title.glitch-text::before,.screen-title.glitch-text::after{display:none}

/* ==================== TIPOGRAFIA ==================== */
/* i sottotitoli erano in mono ultra-spaziato: illeggibili. Ora testo normale. */
.screen-sub{
  font-family:var(--font-b);font-size:.92rem;letter-spacing:0;line-height:1.5;
  color:var(--text-dim);margin-bottom:20px;max-width:42ch;
}
/* la barretta di accento e sul background: i pseudo-elementi sono occupati dal glitch */
.screen-title{
  font-size:1.55rem;letter-spacing:3px;color:var(--text);
  text-shadow:0 0 18px rgba(47,98,255,.45);
  position:relative;padding-left:15px;margin-bottom:8px;
  background:linear-gradient(180deg,var(--ice),var(--primary) 55%,var(--secondary)) left center / 4px 74% no-repeat;
  filter:drop-shadow(0 0 8px rgba(47,98,255,.45));
}
.section-label{
  color:var(--ice);border-bottom:1px solid var(--border-lit);
  letter-spacing:2.5px;text-shadow:0 0 10px rgba(95,216,255,.3);
}
.section-label::before{content:'◆ ';color:var(--primary);opacity:.9}

/* ==================== "SYSTEM WINDOW" — pannelli ==================== */
.nl-panel,
.today-command,
.start-here-module,
.assess-intro-card,
.assess-summary-card,
.gear-power-card,
.codex-card{
  position:relative;
  background:var(--panel-grad) !important;
  border:1px solid var(--border-lit) !important;
  box-shadow:inset 0 1px 0 rgba(140,180,255,.12), 0 18px 40px rgba(0,0,0,.5), 0 0 30px rgba(30,70,200,.14) !important;
}
/* parentesi angolari stile finestra di sistema */
.nl-panel::before,.today-command::before,.start-here-module::before{
  content:'';position:absolute;left:-1px;top:-1px;width:18px;height:18px;
  border-top:2px solid var(--ice);border-left:2px solid var(--ice);
  border-radius:6px 0 0 0;opacity:.75;pointer-events:none;
}
.nl-panel::after,.today-command::after,.start-here-module::after{
  content:'';position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;
  border-bottom:2px solid var(--secondary);border-right:2px solid var(--secondary);
  border-radius:0 0 6px 0;opacity:.75;pointer-events:none;
}

/* card generiche */
.quest-card,.boss-card,.chain-card,.buff-card{
  background:linear-gradient(160deg, rgba(20,32,72,.55), rgba(7,10,22,.94)) !important;
  border:1px solid var(--border) !important;
}
.quest-card:hover,.boss-card:hover{border-color:var(--border-lit) !important;box-shadow:var(--glow-blue) !important}

/* ==================== TOP BAR con logo ==================== */
.user-bar{
  background:linear-gradient(180deg, rgba(8,12,28,.96), rgba(6,9,20,.86));
  border-bottom:1px solid var(--border-lit);
  box-shadow:0 6px 24px rgba(0,0,0,.5);
}
.nc-brand{display:flex;align-items:center;gap:8px;flex-shrink:0;text-decoration:none}
.nc-brand img{height:22px;width:auto;display:block;filter:drop-shadow(0 0 10px rgba(47,98,255,.55))}
.nc-brand-txt{
  font-family:var(--font-d);font-size:.55rem;font-weight:700;letter-spacing:2px;
  color:var(--text-muted);line-height:1.15;
}
.user-bar{gap:8px}
.user-bar .user-avatar{margin-left:auto;width:28px;height:28px;border-radius:9px}
.user-bar .user-email{flex:0 1 auto;font-size:.68rem;text-align:right;max-width:38vw}
.user-bar .btn-logout{min-height:34px;padding:6px 11px;border-color:var(--border-lit)}
@media (max-width:400px){ .user-bar .user-email{display:none} }

/* ==================== BOTTOM NAV (5 voci) ==================== */
.nav-bar{
  height:var(--nav);
  background:linear-gradient(180deg, rgba(9,13,30,.92), rgba(3,4,10,.98));
  border-top:1px solid var(--border-lit);
  box-shadow:0 -10px 34px rgba(0,0,0,.6), 0 -1px 0 rgba(95,216,255,.18) inset;
}
.nav-btn{padding:8px 4px;flex:1;min-width:0;gap:5px;position:relative;transition:color .2s}
.nav-btn svg{width:23px;height:23px}
.nav-btn span{font-family:var(--font-d);font-size:.56rem;font-weight:700;letter-spacing:1.1px;white-space:nowrap}
.nav-btn.active{color:var(--ice);filter:drop-shadow(0 0 8px rgba(95,216,255,.6))}
.nav-btn.active::before{
  content:'';position:absolute;top:0;left:22%;right:22%;height:2px;
  background:linear-gradient(90deg,transparent,var(--ice),transparent);
  box-shadow:0 0 12px var(--ice);
}
.nav-btn.boss-btn .boss-btn-inner{
  background:radial-gradient(circle at 35% 30%, #8B2BFF, #3A0BA3 70%);
  box-shadow:0 0 22px rgba(123,63,255,.65), inset 0 0 14px rgba(0,0,0,.5);
  border:1px solid rgba(180,150,255,.4);
}

/* ==================== DRAWER "ALTRO" ==================== */
.nl-drawer{
  position:fixed;inset:0;z-index:9500;display:none;
  background:rgba(2,3,8,.82);backdrop-filter:blur(8px);
  align-items:flex-end;justify-content:center;
}
.nl-drawer.open{display:flex;animation:nlFade .2s ease-out}
@keyframes nlFade{from{opacity:0}to{opacity:1}}
.nl-drawer-sheet{
  width:100%;max-width:480px;
  background:linear-gradient(180deg, rgba(14,22,52,.98), rgba(4,6,16,.99));
  border:1px solid var(--border-lit);border-bottom:none;
  border-radius:22px 22px 0 0;
  padding:18px 16px calc(22px + var(--safe-b) + var(--nav));
  box-shadow:0 -20px 60px rgba(0,0,0,.7), 0 0 40px rgba(47,98,255,.15);
  animation:nlUp .26s cubic-bezier(.16,1,.3,1);
  max-height:80dvh;overflow-y:auto;
}
@keyframes nlUp{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
.nl-drawer-grab{width:44px;height:4px;border-radius:4px;background:var(--border-lit);margin:0 auto 16px}
.nl-drawer-title{
  font-family:var(--font-d);font-size:.72rem;letter-spacing:2.6px;color:var(--ice);
  margin-bottom:14px;text-align:center;text-transform:uppercase;
}
.nl-drawer-list{display:grid;gap:9px}
.nl-drawer-item{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  padding:13px 14px;border-radius:14px;
  background:linear-gradient(150deg, rgba(24,40,96,.5), rgba(8,12,26,.9));
  border:1px solid var(--border);color:var(--text);
  font-family:var(--font-b);transition:border-color .18s, transform .12s, box-shadow .18s;
}
.nl-drawer-item:hover,.nl-drawer-item:active{border-color:var(--border-lit);transform:translateX(3px);box-shadow:var(--glow-blue)}
.nl-drawer-ico{
  flex-shrink:0;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.2rem;
  background:radial-gradient(circle at 35% 30%, rgba(47,98,255,.35), rgba(10,16,40,.9));
  border:1px solid var(--border-lit);
}
.nl-drawer-name{display:block;font-family:var(--font-d);font-size:.82rem;font-weight:700;letter-spacing:1.4px}
.nl-drawer-desc{display:block;font-size:.76rem;color:var(--text-muted);line-height:1.35;margin-top:3px}

/* ==================== HOME ==================== */
.nl-home-hero{
  position:relative;text-align:center;padding:26px 16px 22px;margin:-4px -4px 20px;
  border-radius:22px;overflow:hidden;
  background:
    radial-gradient(90% 120% at 50% 0%, rgba(47,98,255,.24), transparent 62%),
    linear-gradient(180deg, rgba(12,20,50,.7), rgba(4,6,16,.2));
  border:1px solid var(--border-lit);
}
.nl-home-hero::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--ice),transparent);opacity:.6;
}
.nl-home-logo{height:56px;width:auto;margin:0 auto 12px;display:block;filter:drop-shadow(0 0 22px rgba(47,98,255,.6))}
.nl-kicker{
  font-family:var(--font-m);font-size:.68rem;letter-spacing:3.4px;color:var(--ice);
  text-transform:uppercase;display:inline-flex;align-items:center;gap:7px;
}
.nl-kicker::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 10px var(--success);animation:nlPulse 2s infinite}
@keyframes nlPulse{0%,100%{opacity:1}50%{opacity:.3}}
.nl-home-title{
  font-family:var(--font-d);font-size:1.7rem;font-weight:900;letter-spacing:2px;margin:10px 0 6px;
  background:linear-gradient(180deg,#FFFFFF 30%,#8FB4FF 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 16px rgba(47,98,255,.4));
}
.nl-home-lead{font-size:.92rem;color:var(--text-dim);line-height:1.55;max-width:34ch;margin:0 auto}

/* --- carta hunter --- */
.nl-hunter{display:grid;gap:14px;padding:16px;border-radius:18px;margin-bottom:20px}
.nl-hunter-top{display:flex;align-items:center;gap:13px}
.nl-hunter-av{
  width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:1.7rem;flex-shrink:0;
  background:radial-gradient(circle at 35% 30%, rgba(47,98,255,.4), rgba(6,10,26,.95));
  border:1px solid var(--border-lit);box-shadow:var(--glow-blue);
}
.nl-hunter-id{flex:1;min-width:0}
.nl-hunter-name{font-family:var(--font-d);font-size:1.1rem;font-weight:800;letter-spacing:1.4px;color:var(--text)}
.nl-hunter-class{font-size:.78rem;color:var(--text-dim);margin-top:3px}
.nl-hunter-rank{text-align:center;flex-shrink:0;padding-left:12px;border-left:1px solid var(--border)}
.nl-hunter-rank-lbl{font-family:var(--font-m);font-size:.6rem;letter-spacing:2px;color:var(--text-muted)}
.nl-hunter-rank-val{
  font-family:var(--font-d);font-size:1.9rem;font-weight:900;line-height:1;
  color:var(--ice);text-shadow:0 0 18px rgba(95,216,255,.6);
}
.nl-xp{display:grid;gap:6px}
.nl-xp-track{height:9px;border-radius:6px;background:rgba(8,12,30,.9);border:1px solid var(--border);overflow:hidden}
.nl-xp-fill{
  height:100%;border-radius:6px;
  background:linear-gradient(90deg,var(--primary-deep),var(--primary) 55%,var(--ice));
  box-shadow:0 0 14px rgba(47,98,255,.7);transition:width .5s ease-out;
}
.nl-xp-meta{display:flex;justify-content:space-between;font-family:var(--font-m);font-size:.7rem;color:var(--text-muted);letter-spacing:1px}
.nl-chips{display:flex;flex-wrap:wrap;gap:7px}
.nl-chip{
  font-family:var(--font-m);font-size:.7rem;letter-spacing:.8px;padding:6px 11px;border-radius:20px;
  background:rgba(20,34,80,.5);border:1px solid var(--border);color:var(--text-dim);
}
.nl-chip b{color:var(--text);font-family:var(--font-d);font-size:.72rem}

/* --- prossima mossa --- */
.nl-next{display:grid;gap:12px;padding:17px;border-radius:18px;margin-bottom:22px}
.nl-next-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nl-badge{
  font-family:var(--font-d);font-size:.6rem;font-weight:700;letter-spacing:1.8px;padding:5px 11px;border-radius:20px;
  border:1px solid currentColor;text-transform:uppercase;white-space:nowrap;
}
.nl-badge.ok{color:var(--success);background:rgba(53,224,138,.09)}
.nl-badge.warn{color:var(--gold);background:rgba(255,201,74,.09)}
.nl-next-kick{font-family:var(--font-m);font-size:.66rem;letter-spacing:2.6px;color:var(--text-muted);text-transform:uppercase}
.nl-next-title{font-family:var(--font-d);font-size:1.12rem;font-weight:800;letter-spacing:.8px;color:var(--text)}
.nl-next-copy{font-size:.88rem;line-height:1.55;color:var(--text-dim)}
.nl-cta{
  display:flex;align-items:center;justify-content:center;gap:9px;width:100%;cursor:pointer;
  padding:14px 18px;border-radius:13px;border:1px solid rgba(120,160,255,.45);
  background:linear-gradient(135deg,var(--primary-deep),var(--secondary-deep));
  color:#fff;font-family:var(--font-d);font-size:.92rem;font-weight:800;letter-spacing:1.6px;
  box-shadow:0 10px 28px rgba(20,50,180,.45), inset 0 1px 0 rgba(255,255,255,.2);
  transition:transform .14s, box-shadow .2s;
}
.nl-cta:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(40,80,220,.55)}
.nl-cta:active{transform:translateY(0)}

/* --- griglia sezioni --- */
.nl-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:8px}
.nl-sec{
  position:relative;text-align:left;cursor:pointer;overflow:hidden;
  padding:15px 13px;border-radius:16px;
  background:linear-gradient(155deg, rgba(22,36,86,.5), rgba(6,9,22,.94));
  border:1px solid var(--border);color:var(--text);
  transition:border-color .18s, transform .14s, box-shadow .2s;
}
.nl-sec:hover,.nl-sec:active{border-color:var(--border-lit);transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.5), var(--glow-blue)}
.nl-sec::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .2s;
  background:radial-gradient(90% 70% at 50% 0%, rgba(95,216,255,.16), transparent 70%);
}
.nl-sec:hover::before{opacity:1}
.nl-sec-ico{
  display:grid;place-items:center;width:38px;height:38px;border-radius:11px;margin-bottom:10px;
  font-size:1.15rem;line-height:1;
  background:radial-gradient(circle at 35% 30%, rgba(47,98,255,.38), rgba(8,13,32,.92));
  border:1px solid var(--border-lit);box-shadow:inset 0 0 14px rgba(47,98,255,.2);
}
.nl-sec-name{font-family:var(--font-d);font-size:.82rem;font-weight:800;letter-spacing:1.3px;color:var(--text);margin-bottom:5px}
.nl-sec-desc{font-size:.76rem;line-height:1.4;color:var(--text-muted)}
.nl-sec.wide{grid-column:1 / -1}

/* --- come funziona --- */
.nl-steps{display:grid;gap:10px;margin-bottom:8px}
.nl-step{
  display:flex;gap:13px;align-items:flex-start;padding:13px 14px;border-radius:14px;
  background:linear-gradient(150deg, rgba(18,30,72,.42), rgba(6,9,22,.9));
  border:1px solid var(--border);
}
.nl-step-n{
  flex-shrink:0;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  font-family:var(--font-d);font-size:.85rem;font-weight:900;color:var(--ice);
  background:rgba(10,18,44,.9);border:1px solid var(--border-lit);
  box-shadow:inset 0 0 12px rgba(47,98,255,.25);
}
.nl-step-t{font-family:var(--font-d);font-size:.8rem;font-weight:700;letter-spacing:1.1px;color:var(--text);margin-bottom:3px}
.nl-step-d{font-size:.79rem;line-height:1.45;color:var(--text-muted)}

.nl-foot{
  text-align:center;padding:22px 10px 6px;font-size:.74rem;color:var(--text-muted);line-height:1.6;
  border-top:1px solid var(--border);margin-top:20px;
}
.nl-foot a{color:var(--primary);text-decoration:none}
.nl-foot img{height:20px;width:auto;opacity:.75;display:block;margin:0 auto 10px}

/* ==================== LOGIN ==================== */
.login-screen{
  background:
    radial-gradient(110% 60% at 50% 0%, rgba(47,98,255,.2), transparent 60%),
    radial-gradient(80% 50% at 50% 100%, rgba(123,63,255,.16), transparent 60%),
    var(--bg);
}
.login-logo{font-size:0 !important;margin-bottom:18px !important;animation:none !important;filter:none !important}
.login-logo img{height:78px;width:auto;display:block;margin:0 auto;filter:drop-shadow(0 0 30px rgba(47,98,255,.65))}
.login-title{color:var(--text);text-shadow:0 0 26px rgba(47,98,255,.55);font-size:1.65rem}
.login-subtitle{color:var(--ice);opacity:.85;letter-spacing:3.6px}
.btn-google{background:rgba(12,18,40,.9);border-color:var(--border-lit)}
.btn-google:hover{border-color:var(--primary);box-shadow:var(--glow-blue)}

/* ==================== BOTTONI ==================== */
.btn-primary{
  background:linear-gradient(135deg,var(--primary-deep),var(--secondary-deep)) !important;
  border:1px solid rgba(120,160,255,.4) !important;
  box-shadow:0 8px 24px rgba(20,50,180,.4), inset 0 1px 0 rgba(255,255,255,.18) !important;
  color:#fff !important;
}
.btn-primary:hover{box-shadow:0 12px 30px rgba(40,80,220,.55) !important}
.btn-secondary{border-color:var(--border-lit) !important}

/* ==================== ONBOARDING ==================== */
.onb-logo{font-size:0 !important;margin-bottom:16px !important}
.onb-logo img{height:66px;width:auto;display:block;margin:0 auto;filter:drop-shadow(0 0 26px rgba(47,98,255,.6))}
.onb-guide-card{background:var(--panel-grad);border-color:var(--border-lit)}

/* ==================== TAB E LEGGIBILITA ==================== */
/* le 4 aree della Quest Board non devono piu scorrere fuori schermo */
.quest-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;overflow:visible;margin-bottom:14px}

.health-snapshot-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.health-snapshot-grid.hidden{display:none}
.health-snapshot-card{
  min-width:0;
  padding:10px 11px;
  border:1px solid rgba(73,214,255,.24);
  border-radius:12px;
  background:rgba(3,16,35,.68);
}
.health-snapshot-label{
  display:block;
  color:#8fa9bd;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.health-snapshot-value{
  display:block;
  margin-top:4px;
  color:#f2fbff;
  font-family:var(--font-display,Orbitron,sans-serif);
  font-size:.92rem;
  font-weight:700;
  overflow-wrap:anywhere;
}
.health-snapshot-card.missing .health-snapshot-value{color:#6f8292}
.quest-tab{
  flex:initial;display:flex;align-items:center;justify-content:center;
  min-height:36px;padding:6px 3px;text-align:center;font-size:.55rem;letter-spacing:.3px;line-height:1.2;
  white-space:normal;border-radius:10px;border-color:var(--border);
}
.quest-tab.tab-active{
  background:linear-gradient(160deg, rgba(47,98,255,.28), rgba(123,63,255,.16));
  border-color:var(--border-lit);color:var(--text);box-shadow:var(--glow-blue);
}
.codex-tabs{flex-wrap:wrap}

/* i testi lunghi in mono spaziato erano faticosi: font di lettura */
.q-desc,.bc-quote,.boss-fight-lore,.assess-intro-copy,.codex-card-copy,
.profile-summary-meta,.gear-source-line,.today-scan-item{
  font-family:var(--font-b) !important;letter-spacing:0 !important;line-height:1.5 !important;
}

/* ==================== RESPONSIVE ==================== */
@media (max-width:360px){
  .nav-btn span{font-size:.5rem;letter-spacing:.6px}
  .nl-sections{gap:9px}
  .nl-home-title{font-size:1.45rem}
}
@media (min-width:520px){
  .nl-sections{grid-template-columns:repeat(2,1fr)}
}

/* ==========================================================================
   PASSAGGIO 2 — copertura di TUTTE le schermate
   ========================================================================== */

/* ---- famiglia "superficie": card neutre → pannello system window ---- */
.gear-card,.gear-slot-card,.gear-set-card,.gear-blueprint-card,.gear-material-card,
.gear-consumable-card,.gear-empty-state,.gear-linked-preview,
.profile-summary-card,.profile-reco-card,.trait-reco-card,.title-choice,
.today-card,.today-scan-panel,.today-directive-box,
.start-here-shell,.start-here-card,.start-here-build,
.progress-layers-shell,.progress-layer-card,
.boss-campaign-card,.boss-campaign-banner,.boss-execution-box,.boss-protocol-section,
.assess-boss-brief,.readiness-rank,.assess-result,
.system-guide-card,.system-guide-mini,.guide-context-panel,
.weekly-card,.combo-tracker,.quest-layer,.legacy-item,.legacy-progress,
.settings-section,.reset-account-box,.ai-config-box,.settings-warning-card,
.am-card,.mini-grid,.tq-box,.onb-guide-card,.onb-stats-preview,
.quest-summary-grid,.quest-loot-preview,.rewards-banner,.buffs-banner{
  background:linear-gradient(158deg, rgba(22,38,92,.34) 0%, rgba(8,12,26,.9) 62%) !important;
  border:1px solid var(--border) !important;
  border-radius:14px;
}

/* ---- BOSS: le card erano piatte e spente ---- */
.boss-grid{gap:11px}
.boss-card{
  padding:18px 12px 16px;border-radius:16px;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(123,63,255,.2), transparent 62%),
    linear-gradient(180deg, rgba(20,26,60,.72), rgba(6,8,20,.96)) !important;
  border:1px solid var(--border) !important;
  box-shadow:0 12px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(150,170,255,.1) !important;
}
.boss-card:hover,.boss-card:active{
  border-color:rgba(160,110,255,.5) !important;
  box-shadow:0 16px 38px rgba(0,0,0,.55), 0 0 26px rgba(123,63,255,.35) !important;
  transform:translateY(-3px);
}
.bc-icon{font-size:2.1rem;filter:drop-shadow(0 0 14px rgba(123,63,255,.6))}
.bc-name{font-family:var(--font-d);letter-spacing:.6px;color:var(--text)}
.bc-lv{color:var(--secondary);text-shadow:0 0 10px rgba(123,63,255,.5)}
.bc-quote{color:var(--text-muted);font-style:italic}
.boss-skull-center{filter:drop-shadow(0 0 26px rgba(123,63,255,.55))}
.boss-hp-fill{background:linear-gradient(90deg,#7B3FFF,#FF3B5C) !important;box-shadow:0 0 12px rgba(255,59,92,.5) !important}

/* ---- barre di progresso: tutte blu-ciano con glow ---- */
.xp-bar-fill,.chain-fill,.qp-fill,.start-here-progress-bar > span,.gear-unlock-track > span,.rr-bar > span{
  background:linear-gradient(90deg,var(--primary-deep),var(--primary) 55%,var(--ice)) !important;
  box-shadow:0 0 12px rgba(47,98,255,.6) !important;
}
.xp-bar-outer,.stat-bar-wrap,.faction-bar-wrap,.chain-progress-bar,.boss-hp-track{
  background:rgba(6,10,26,.9) !important;border:1px solid var(--border);
}
.stat-bar-fill,.faction-bar-fill{box-shadow:0 0 10px currentColor}

/* ---- chip e pill: linguaggio unico ---- */
.today-chip,.today-meta-pill,.codex-chip,.gear-bonus-pill,.buff-pill,.quest-summary-chip,
.stat-bonus-chip,.assess-boss-pill,.combo-chip,.system-guide-pill,.level-pill,
.q-tags > span,.quest-loot-chip,.custom-tag,.weekly-tag,.timed-tag,.daily-bonus-tag{
  background:rgba(24,42,100,.42) !important;
  border:1px solid var(--border) !important;
  color:var(--text-dim);
}
.today-primary-cta,.guide-context-btn,.today-cta-row .btn-primary{
  background:linear-gradient(135deg,var(--primary-deep),var(--secondary-deep)) !important;
  border:1px solid rgba(120,160,255,.42) !important;color:#fff !important;
  box-shadow:0 8px 22px rgba(20,50,180,.4) !important;
}

/* ---- CODEX ---- */
.codex-tab{border-radius:10px;border-color:var(--border);font-size:.62rem;padding:8px 12px}
.codex-tab.tab-active{
  background:linear-gradient(160deg, rgba(47,98,255,.28), rgba(123,63,255,.16)) !important;
  border-color:var(--border-lit) !important;color:var(--text) !important;box-shadow:var(--glow-blue) !important;
}
.codex-card-title{color:var(--ice) !important;text-shadow:0 0 12px rgba(95,216,255,.3)}
.codex-row{border-bottom:1px solid var(--border)}
.codex-row-title{font-family:var(--font-d);color:var(--text)}

/* ---- GUIDA AI (chat) ---- */
.companion-hdr{border-bottom:1px solid var(--border-lit);padding-bottom:12px}
.companion-name{color:var(--secondary) !important;text-shadow:0 0 16px rgba(123,63,255,.45)}
.companion-avatar{
  background:radial-gradient(circle at 35% 30%, rgba(123,63,255,.5), rgba(8,10,26,.95));
  border:1px solid var(--border-lit);box-shadow:var(--glow-violet);border-radius:14px;
}
.guide-prompt-row{display:flex;flex-wrap:wrap;gap:7px;overflow:visible}
.guide-prompt-chip{
  flex:0 1 auto;white-space:normal;border-radius:12px;
  background:rgba(24,42,100,.42) !important;border:1px solid var(--border) !important;
  font-family:var(--font-b) !important;font-size:.76rem;
}
.guide-prompt-chip:hover{border-color:var(--border-lit) !important}
.chat-messages{padding:14px 0}
.chat-msg{
  border:1px solid var(--border);
  background:linear-gradient(158deg, rgba(22,38,92,.34), rgba(8,12,26,.9));
}
.chat-msg.user,.chat-msg[class*="user"]{
  background:linear-gradient(135deg, rgba(47,98,255,.3), rgba(123,63,255,.22));
  border-color:var(--border-lit);
}
.chat-bar{border-top:1px solid var(--border-lit);padding-top:10px}
.chat-input{background:rgba(8,12,28,.9) !important;border:1px solid var(--border) !important;color:var(--text) !important}
.chat-input:focus{border-color:var(--border-lit) !important;box-shadow:var(--glow-blue) !important}
.chat-send{
  background:linear-gradient(135deg,var(--primary-deep),var(--secondary-deep)) !important;
  border:1px solid rgba(120,160,255,.4) !important;box-shadow:0 6px 18px rgba(20,50,180,.4) !important;
}

/* ---- INPUT, SELECT, SLIDER ---- */
.onb-input,.onb-select,.onb-textarea,.cq-textarea,.cq-stat-sel{
  background:rgba(8,12,28,.9) !important;border:1px solid var(--border) !important;
  color:var(--text) !important;border-radius:11px !important;
}
.onb-input:focus,.onb-select:focus,.onb-textarea:focus{
  border-color:var(--border-lit) !important;box-shadow:var(--glow-blue) !important;outline:none;
}
.onb-label,.af-lbl{color:var(--text-dim)}
.af-slider,.onb-slider{background:rgba(8,12,28,.92) !important;border:1px solid var(--border)}
.af-slider::-webkit-slider-thumb,.onb-slider::-webkit-slider-thumb{
  background:linear-gradient(135deg,var(--ice),var(--primary)) !important;
  box-shadow:0 0 14px rgba(47,98,255,.7) !important;border:2px solid #0A1024 !important;
}
.af-slider::-moz-range-thumb,.onb-slider::-moz-range-thumb{
  background:linear-gradient(135deg,var(--ice),var(--primary)) !important;
  box-shadow:0 0 14px rgba(47,98,255,.7) !important;border:2px solid #0A1024 !important;
}
.af-val,.onb-slider-val{color:var(--ice) !important;text-shadow:0 0 10px rgba(95,216,255,.5)}
.af-info-btn{border-color:var(--border-lit);color:var(--ice)}

/* ---- OVERLAY, MODALI, TOAST, SYSTEM POPUP ---- */
.overlay{background:rgba(2,3,8,.88);backdrop-filter:blur(9px)}
.overlay-box,.cq-modal,.tq-box{
  background:linear-gradient(160deg, rgba(18,30,74,.96), rgba(4,6,16,.99)) !important;
  border:1px solid var(--border-lit) !important;border-radius:20px !important;
  box-shadow:0 30px 70px rgba(0,0,0,.7), 0 0 44px rgba(47,98,255,.16) !important;
}
.ov-title{font-family:var(--font-d);letter-spacing:2px;text-shadow:0 0 18px rgba(47,98,255,.5)}
.ov-icon{filter:drop-shadow(0 0 22px rgba(47,98,255,.55))}
.toast{
  border-radius:12px;font-family:var(--font-b);font-size:.86rem;
  background:linear-gradient(150deg, rgba(20,34,84,.96), rgba(6,9,22,.97));
  border:1px solid var(--border-lit);box-shadow:0 14px 34px rgba(0,0,0,.55);
}
.toast-success{border-color:rgba(53,224,138,.5);color:var(--success)}
.toast-xp{border-color:rgba(255,201,74,.5);color:var(--gold)}
.toast-levelup{border-color:rgba(123,63,255,.55);color:#C4A6FF}
.toast-alert{border-color:rgba(255,59,92,.5);color:#FF7089}
.system-popup{
  background:linear-gradient(160deg, rgba(20,34,84,.97), rgba(5,8,20,.97)) !important;
  border:1px solid var(--border-lit) !important;border-radius:16px !important;
}
.system-popup-title{color:var(--ice)}
.system-popup-badge{background:rgba(47,98,255,.2);border:1px solid var(--border-lit);color:var(--ice)}

/* ---- testi lunghi: sempre font di lettura ---- */
.codex-row-copy,.today-card-copy,.today-scan-panel-copy,.start-here-card-copy,.gear-item-desc,
.progress-layer-copy,.boss-campaign-copy,.guide-context-copy,.settings-copy,.cq-hint,.tq-desc,
.gear-power-desc,.gear-material-desc,.trait-reco-copy,.profile-reco-copy,.am-copy,
.today-why-row,.assess-summary-item,.boss-bullet-list li,.protocol-instr{
  font-family:var(--font-b) !important;letter-spacing:0 !important;line-height:1.5 !important;
}

/* ---- header di sezione interni ---- */
.status-header,.quest-layer-head,.quest-summary-head,.gear-set-head,.boss-campaign-head,
.start-here-head,.progress-layers-head,.assess-summary-head,.profile-summary-head{
  border-bottom:1px solid var(--border);
}
.boss-section-kicker,.quest-layer-kicker,.gear-unlock-kicker,.start-here-kicker,
.progress-layers-kicker,.assess-summary-kicker,.assess-intro-kicker,.today-command-kicker,
.profile-build-kicker,.quest-signal-label{
  color:var(--ice) !important;text-shadow:0 0 10px rgba(95,216,255,.28);
}

/* ---- rarità: restano riconoscibili sopra il nuovo fondale ---- */
.rarity-border-rare{border-color:#4C8BFF !important}
.rarity-border-epic{border-color:#A97BFF !important}
.rarity-border-legendary{border-color:#FFC94A !important}
.gear-rarity-rare{color:#6FA5FF !important}
.gear-rarity-epic{color:#C4A6FF !important}
.gear-rarity-legendary{color:#FFC94A !important}

/* ==========================================================================
   IL PUNTO DI RESPAWN — Ren, Mika, Eiden
   ========================================================================== */
.rw-kicker{
  font-family:var(--font-m);font-size:.66rem;letter-spacing:2.6px;text-transform:uppercase;
  color:var(--ice);text-shadow:0 0 10px rgba(95,216,255,.3);
}
.rw-intro{font-size:.88rem;line-height:1.55;color:var(--text-dim);margin:0 0 14px}
.rw-sub{
  font-family:var(--font-d);font-size:.62rem;font-weight:700;letter-spacing:1.8px;
  color:var(--text-muted);margin:14px 0 7px;
}
.rw-list{margin:0;padding-left:18px;display:grid;gap:5px}
.rw-list li{font-size:.82rem;line-height:1.45;color:var(--text-dim)}

/* --- Eiden --- */
.rw-hero{padding:18px;border-radius:18px;margin-bottom:22px}
.rw-hero-copy{font-size:.9rem;line-height:1.6;color:var(--text-dim);margin:10px 0 14px}
.rw-quote{
  position:relative;padding:14px 16px;border-radius:12px;
  background:rgba(8,14,34,.72);border-left:3px solid var(--ice);
  font-size:.92rem;line-height:1.55;color:var(--text);font-style:italic;
}
.rw-quote span{
  display:block;margin-top:8px;font-style:normal;font-family:var(--font-m);
  font-size:.66rem;letter-spacing:1.6px;color:var(--text-muted);
}

/* --- schede personaggio --- */
.rw-char{
  position:relative;padding:17px;border-radius:18px;margin-bottom:14px;overflow:hidden;
  background:linear-gradient(158deg, rgba(20,34,84,.4), rgba(6,9,22,.94));
  border:1px solid var(--border);
}
.rw-char::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rw-accent,var(--primary));
  box-shadow:0 0 16px var(--rw-accent,var(--primary));
}
.rw-ren{--rw-accent:#5FD8FF}
.rw-mika{--rw-accent:#FF5C9E}
.rw-char.rw-sel{border-color:var(--rw-accent);box-shadow:0 0 26px rgba(47,98,255,.2)}
.rw-char-top{display:flex;align-items:center;gap:13px;margin-bottom:12px}
.rw-glyph{
  flex-shrink:0;width:52px;height:52px;border-radius:15px;display:grid;place-items:center;
  font-size:1.7rem;font-weight:700;color:var(--rw-accent,var(--primary));
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.1), rgba(6,10,26,.95));
  border:1px solid var(--rw-accent,var(--border-lit));
  box-shadow:0 0 22px -4px var(--rw-accent,transparent), inset 0 0 18px rgba(0,0,0,.5);
  text-shadow:0 0 18px currentColor;
}
.rw-glyph.small{width:34px;height:34px;font-size:1.1rem;border-radius:11px}
.rw-char-name{font-family:var(--font-d);font-size:1.15rem;font-weight:900;letter-spacing:2.4px;color:var(--text)}
.rw-char-role{font-family:var(--font-m);font-size:.68rem;letter-spacing:2px;color:var(--rw-accent,var(--text-muted));margin-top:3px}
.rw-selflag{
  margin-left:auto;font-family:var(--font-d);font-size:.52rem;letter-spacing:1.4px;
  padding:5px 9px;border-radius:20px;color:var(--rw-accent);border:1px solid currentColor;white-space:nowrap;
}
.rw-char-line{font-size:.94rem;line-height:1.5;color:var(--text);font-weight:500;margin:0 0 10px}
.rw-char-body{font-size:.86rem;line-height:1.6;color:var(--text-dim);margin:0 0 8px}
.rw-app{
  margin-top:12px;padding:11px 13px;border-radius:11px;font-size:.83rem;line-height:1.5;
  background:rgba(10,18,44,.7);border:1px solid var(--border);color:var(--text-dim);
}
.rw-app b{color:var(--rw-accent,var(--ice))}
.rw-pick{
  margin-top:13px;width:100%;cursor:pointer;padding:12px;border-radius:12px;
  font-family:var(--font-d);font-size:.76rem;font-weight:700;letter-spacing:1.4px;
  background:rgba(12,20,48,.85);border:1px solid var(--rw-accent,var(--border-lit));
  color:var(--rw-accent,var(--text));transition:box-shadow .2s, transform .12s;
}
.rw-pick:hover{box-shadow:0 0 22px -6px var(--rw-accent);transform:translateY(-1px)}
.rw-hint{
  font-size:.8rem;line-height:1.5;color:var(--text-muted);text-align:center;
  padding:11px 14px;border:1px dashed var(--border-lit);border-radius:12px;margin-bottom:6px;
}

/* --- combo RESET / ALIGN / ACT --- */
.rw-combo{display:grid;gap:10px;margin-bottom:8px}
.rw-step{
  display:flex;gap:13px;align-items:flex-start;padding:14px;border-radius:14px;
  background:linear-gradient(150deg, rgba(18,30,72,.42), rgba(6,9,22,.9));
  border:1px solid var(--border);
}
.rw-step-n{
  flex-shrink:0;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:1.05rem;
  background:radial-gradient(circle at 35% 30%, rgba(47,98,255,.38), rgba(8,13,32,.92));
  border:1px solid var(--border-lit);
}
.rw-step-k{font-family:var(--font-d);font-size:.86rem;font-weight:800;letter-spacing:1.8px;color:var(--ice);margin-bottom:4px}
.rw-step-d{font-size:.84rem;line-height:1.5;color:var(--text-dim)}
.rw-step-app{
  margin-top:7px;font-family:var(--font-m);font-size:.7rem;letter-spacing:.8px;color:var(--text-muted);
}

.rw-party{padding:17px;border-radius:18px;margin-bottom:8px}
.rw-party .nl-cta{margin-top:12px}

/* --- riferimenti --- */
.rw-mentori{display:grid;gap:8px}
.rw-mentore{
  padding:11px 13px;border-radius:12px;border:1px solid var(--border);
  background:rgba(12,20,48,.5);
}
.rw-mentore b{
  display:block;font-family:var(--font-d);font-size:.76rem;letter-spacing:1.4px;
  color:var(--secondary);margin-bottom:4px;
}
.rw-mentore span{display:block;font-size:.8rem;line-height:1.45;color:var(--text-muted)}

/* --- blocco Home: trasmissione da Eiden --- */
.rw-transmit{
  padding:16px 17px;border-radius:18px;margin-bottom:22px;cursor:pointer;
  transition:transform .14s, box-shadow .2s;
}
.rw-transmit:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.5), var(--glow-blue)}
.rw-transmit-head{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.rw-transmit-q{
  font-size:1rem;line-height:1.55;color:var(--text);font-style:italic;margin:0 0 8px;
}
.rw-transmit-src{font-family:var(--font-m);font-size:.66rem;letter-spacing:1.6px;color:var(--text-muted)}
.rw-transmit-tip{
  margin-top:12px;padding-top:11px;border-top:1px solid var(--border);
  font-size:.82rem;line-height:1.5;color:var(--text-dim);
}

/* artwork personaggio: compare da solo appena il PNG e presente in dist/ */
/* Gli artwork sono PNG trasparenti: 'contain' fa stare dentro tutta la figura,
   niente ritagli. I mezzibusti poggiano sul fondo, i volti restano centrati. */
.rw-glyph.has-art{
  background-size:contain;background-position:center bottom;background-repeat:no-repeat;
  font-size:0;color:transparent;text-shadow:none;
}
/* mezzobusto nella scheda personaggio — niente shorthand `background`,
   altrimenti azzera size/position impostati sopra e l'inline dell'artwork. */
.rw-char .rw-glyph.has-art{
  width:104px;height:140px;border-radius:14px;
  background-color:transparent;
  background-size:contain;background-position:center bottom;
  border-color:transparent;box-shadow:none;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.6));
}
/* miniatura: volto */
.rw-glyph.small.has-art{width:44px;height:44px;background-position:center center;border-radius:12px;border-color:var(--rw-accent,var(--border-lit))}

/* --- Grimorio ACT: fasi, regole, glossario, volumi --- */
.rw-aion{--rw-accent:#7B3FFF}
.rw-char-id{flex:1;min-width:0}
.rw-cta{margin-top:13px;text-decoration:none}
.rw-act-k{font-family:var(--font-d);font-size:1.15rem;font-weight:900;color:var(--ice)}
.rw-principio{
  margin:14px 0 6px;padding:16px;border-radius:14px;text-align:center;
  background:linear-gradient(150deg, rgba(47,98,255,.16), rgba(123,63,255,.12));
  border:1px solid var(--border-lit);font-size:.92rem;line-height:1.6;color:var(--text-dim);
}
.rw-principio b{display:block;margin-top:6px;font-family:var(--font-d);font-size:.95rem;letter-spacing:1px;color:var(--text)}
.rw-regole{display:grid;gap:9px}
.rw-regola{
  display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:13px;
  background:linear-gradient(150deg, rgba(18,30,72,.42), rgba(6,9,22,.9));
  border:1px solid var(--border);font-size:.87rem;line-height:1.5;color:var(--text);
}
.rw-regola span{
  flex-shrink:0;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;
  font-family:var(--font-d);font-size:.78rem;font-weight:900;color:var(--gold);
  border:1px solid rgba(255,201,74,.45);background:rgba(255,201,74,.1);
}
.rw-fasi{display:grid;gap:10px}
.rw-fase{
  padding:15px;border-radius:14px;border:1px solid var(--border);
  background:linear-gradient(150deg, rgba(18,30,72,.42), rgba(6,9,22,.9));
}
.rw-fase-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.rw-fase-n{font-family:var(--font-m);font-size:.66rem;letter-spacing:1.8px;color:var(--text-muted)}
.rw-fase-t{font-family:var(--font-d);font-size:.92rem;font-weight:800;letter-spacing:1.6px;color:var(--ice)}
.rw-fase-o{margin-top:8px;font-size:.82rem;line-height:1.45;color:var(--text-muted)}
.rw-fase-o b{color:var(--text-dim)}
.rw-gloss{display:grid;gap:8px}
.rw-gloss-row{
  display:grid;gap:4px;text-align:left;cursor:pointer;width:100%;
  padding:12px 14px;border-radius:12px;border:1px solid var(--border);
  background:linear-gradient(150deg, rgba(20,34,84,.4), rgba(6,9,22,.9));
  transition:border-color .18s, transform .12s;
}
.rw-gloss-row:hover,.rw-gloss-row:active{border-color:var(--border-lit);transform:translateX(3px)}
.rw-gloss-t{font-family:var(--font-d);font-size:.78rem;font-weight:800;letter-spacing:1.6px;color:var(--ice)}
.rw-gloss-d{font-size:.8rem;line-height:1.45;color:var(--text-muted)}
.rw-book{padding:18px;border-radius:18px;margin:20px 0 6px}
.rw-book-row{display:flex;gap:13px;align-items:flex-start;margin-top:14px}
.rw-book-ico{
  flex-shrink:0;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.25rem;
  background:radial-gradient(circle at 35% 30%, rgba(47,98,255,.35), rgba(8,13,32,.92));
  border:1px solid var(--border-lit);
}
.rw-book-t{font-family:var(--font-d);font-size:.82rem;font-weight:800;letter-spacing:1.3px;color:var(--text);margin-bottom:4px}
.rw-book-d{font-size:.82rem;line-height:1.5;color:var(--text-muted)}

/* avatar di AION nella chat, quando l'artwork e presente */
.companion-avatar.has-art{
  background-size:contain;background-position:center center;background-repeat:no-repeat;
  background-color:rgba(12,10,34,.9);
  font-size:0;color:transparent;width:56px;height:56px;border-radius:50%;
  border:1px solid rgba(160,120,255,.55);box-shadow:var(--glow-violet);
}

/* ==========================================================================
   DAILY SCAN — spiegazioni per voce
   ========================================================================== */
.sc-info-btn{
  width:auto !important;height:auto !important;border-radius:20px !important;
  padding:6px 12px !important;font-family:var(--font-m) !important;font-size:.66rem !important;
  letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap;
  border:1px solid var(--border-lit) !important;background:rgba(47,98,255,.14) !important;
  color:var(--ice) !important;
}
.sc-info-btn[aria-expanded="true"]{background:rgba(95,216,255,.22) !important;box-shadow:var(--glow-blue) !important}
.af-tooltip{
  background:linear-gradient(158deg, rgba(22,38,92,.5), rgba(6,10,24,.94)) !important;
  border:1px solid var(--border-lit) !important;border-radius:14px !important;padding:14px !important;
}
.sc-info{display:grid;gap:12px}
.sc-block p{margin:4px 0 0;font-size:.84rem;line-height:1.55;color:var(--text-dim)}
.sc-block b{color:var(--text)}
.sc-k{
  font-family:var(--font-d);font-size:.6rem;font-weight:700;letter-spacing:1.8px;
  color:var(--ice);text-shadow:0 0 10px rgba(95,216,255,.25);
}
.sc-note{
  padding:11px 13px;border-radius:11px;font-size:.82rem;line-height:1.5;
  background:rgba(255,201,74,.09);border:1px solid rgba(255,201,74,.35);color:#F5D68A;
}
.sc-read{
  margin-top:9px;padding:9px 12px;border-radius:11px;
  font-size:.8rem;line-height:1.45;color:var(--text-muted);
  background:rgba(10,16,38,.7);border:1px solid var(--border);border-left-width:3px;
}
.sc-read b{font-family:var(--font-d);font-size:.72rem;letter-spacing:1.1px}
.sc-read.sc-ok{border-left-color:var(--success)}
.sc-read.sc-ok b{color:var(--success)}
.sc-read.sc-warn{border-left-color:var(--gold)}
.sc-read.sc-warn b{color:var(--gold)}
.sc-intro-list{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}
.sc-intro-copy{font-size:.86rem;line-height:1.55;color:var(--text-dim);margin:0 0 10px}
.sc-intro-copy b{color:var(--text)}
.sc-intro-list ul{margin:0 0 10px;padding-left:18px;display:grid;gap:6px}
.sc-intro-list li{font-size:.82rem;line-height:1.45;color:var(--text-muted)}
.sc-intro-list li b{color:var(--ice);font-family:var(--font-d);font-size:.76rem;letter-spacing:.8px}
.sc-disclaimer{
  margin:0;font-size:.78rem;line-height:1.45;color:var(--text-muted);font-style:italic;
}
.af{margin-bottom:22px}
.af-lbl{color:var(--text)}

/* --- Daily Scan: protocollo di misurazione sempre visibile --- */
.sc-howto{
  margin:0 0 12px;padding:13px 14px;border-radius:13px;
  background:linear-gradient(158deg, rgba(22,38,92,.34), rgba(7,11,26,.9));
  border:1px solid var(--border);border-left:3px solid var(--ice);
}
.sc-howto-k{
  display:block;font-family:var(--font-d);font-size:.6rem;font-weight:700;letter-spacing:1.8px;
  color:var(--ice);margin-bottom:9px;
}
.sc-steps{margin:0;padding-left:0;list-style:none;counter-reset:sc;display:grid;gap:8px}
.sc-steps li{
  counter-increment:sc;position:relative;padding-left:30px;
  font-size:.83rem;line-height:1.5;color:var(--text-dim);
}
.sc-steps li::before{
  content:counter(sc);position:absolute;left:0;top:0;
  width:21px;height:21px;border-radius:7px;display:grid;place-items:center;
  font-family:var(--font-d);font-size:.66rem;font-weight:900;color:var(--ice);
  background:rgba(10,18,44,.9);border:1px solid var(--border-lit);
}
.sc-steps li b{color:var(--text)}
.sc-anchors{display:grid;gap:7px}
.sc-anchor{display:flex;gap:11px;align-items:baseline;font-size:.83rem;line-height:1.45;color:var(--text-dim)}
.sc-anchor b{
  flex-shrink:0;min-width:38px;text-align:center;padding:3px 7px;border-radius:7px;
  font-family:var(--font-d);font-size:.68rem;color:var(--ice);
  background:rgba(10,18,44,.9);border:1px solid var(--border-lit);
}
.sc-howto-note{margin:10px 0 0;font-size:.8rem;line-height:1.5;color:var(--text-muted)}
.sc-howto-note b{color:var(--text-dim)}

/* --- Home: striscia con i tre volti del party --- */
.rw-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:20px}
.rw-strip-card{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;
  padding:12px 8px 13px;border-radius:16px;text-align:center;color:var(--text);
  background:linear-gradient(160deg, rgba(22,36,86,.5), rgba(6,9,22,.94));
  border:1px solid var(--border);
  transition:border-color .18s, transform .14s, box-shadow .2s;
}
.rw-strip-card:hover,.rw-strip-card:active{
  border-color:var(--rw-accent,var(--border-lit));transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(0,0,0,.5);
}
.rw-strip-card.rw-sel{border-color:var(--rw-accent,var(--border-lit));box-shadow:0 0 22px -6px var(--rw-accent,transparent)}
.rw-glyph.strip{
  width:64px;height:84px;border-radius:12px;display:grid;place-items:center;
  font-size:1.5rem;line-height:1;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.1), rgba(6,10,26,.95));
  border:1px solid var(--border-lit);
}
.rw-glyph.strip.has-art{
  width:78px;height:78px;border-radius:50%;
  background-position:center center;background-size:contain;
  background-color:rgba(10,17,42,.85);border-color:var(--rw-accent,var(--border-lit));
  box-shadow:0 0 0 3px rgba(10,17,42,.85), 0 8px 22px rgba(0,0,0,.5);
}
.rw-strip-name{font-family:var(--font-d);font-size:.72rem;font-weight:800;letter-spacing:1.2px;color:var(--rw-accent,var(--text))}
.rw-strip-role{font-size:.66rem;line-height:1.3;color:var(--text-muted)}
.rw-strip-flag{
  position:absolute;top:-7px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-family:var(--font-m);font-size:.52rem;letter-spacing:1.2px;padding:2px 8px;border-radius:20px;
  background:var(--bg);border:1px solid var(--rw-accent,var(--border-lit));color:var(--rw-accent,var(--ice));
}
@media (max-width:360px){
  .rw-glyph.strip{width:54px;height:72px}
  .rw-strip-role{display:none}
}

/* ==========================================================================
   INTERVENTI DEL PARTY — card che entra dal basso
   ========================================================================== */
.nl-party{
  position:fixed;z-index:9400;
  left:12px;right:12px;bottom:calc(var(--nav) + 12px + var(--safe-b));
  max-width:460px;margin:0 auto;
  display:flex;gap:13px;align-items:flex-start;
  padding:14px 40px 14px 14px;border-radius:18px;
  background:linear-gradient(158deg, rgba(20,34,84,.97), rgba(5,8,20,.98));
  border:1px solid var(--rw-accent,var(--border-lit));
  box-shadow:0 20px 50px rgba(0,0,0,.65), 0 0 34px -10px var(--rw-accent,transparent);
  transform:translateY(24px);opacity:0;pointer-events:none;
  transition:transform .3s cubic-bezier(.16,1,.3,1), opacity .25s;
}
.nl-party.open{transform:none;opacity:1;pointer-events:auto}
.rw-glyph.party{
  flex-shrink:0;width:58px;height:74px;border-radius:12px;display:grid;place-items:center;
  font-size:1.4rem;line-height:1;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.1), rgba(6,10,26,.95));
  border:1px solid var(--rw-accent,var(--border-lit));
}
.rw-glyph.party.has-art{
  width:60px;height:60px;border-radius:50%;
  background-position:center center;background-size:contain;
  background-color:rgba(10,17,42,.85);border-color:var(--rw-accent,var(--border-lit));
}
.nl-party-body{flex:1;min-width:0}
.nl-party-name{
  font-family:var(--font-d);font-size:.76rem;font-weight:800;letter-spacing:1.3px;
  color:var(--rw-accent,var(--ice));display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
}
.nl-party-name span{font-family:var(--font-b);font-size:.68rem;font-weight:400;letter-spacing:0;color:var(--text-muted)}
.nl-party-text{margin:6px 0 0;font-size:.88rem;line-height:1.5;color:var(--text)}
.nl-party-cta{
  margin-top:11px;padding:9px 15px;border-radius:11px;cursor:pointer;
  background:linear-gradient(135deg,var(--primary-deep),var(--secondary-deep));
  border:1px solid rgba(120,160,255,.42);color:#fff;
  font-family:var(--font-d);font-size:.72rem;font-weight:700;letter-spacing:1.1px;
}
.nl-party-x{
  position:absolute;top:9px;right:11px;width:28px;height:28px;border-radius:9px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid var(--border);color:var(--text-muted);
  font-size:1.1rem;line-height:1;display:grid;place-items:center;
}
.nl-party-x:hover{color:var(--text);border-color:var(--border-lit)}

/* ==========================================================================
   DESKTOP — la nav diventa una barra laterale e il contenuto respira
   ========================================================================== */
.nav-rail-brand,.nav-rail-extra{display:none}

@media (min-width:1000px){
  :root{
    --rail:238px;
    --chrome-bottom:0px !important;   /* batte lo stile inline di syncAppChromeMetrics */
  }

  /* --- barra laterale --- */
  .nav-bar{
    top:0;bottom:0;left:0;right:auto;
    width:var(--rail);height:100dvh;
    flex-direction:column;justify-content:flex-start;align-items:stretch;gap:3px;
    padding:20px 12px calc(20px + var(--safe-b));
    border-top:none;border-right:1px solid var(--border-lit);
    box-shadow:6px 0 30px rgba(0,0,0,.5);
    overflow-y:auto;overscroll-behavior:contain;
  }
  .nav-bar::-webkit-scrollbar{width:6px}
  .nav-bar::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}

  .nav-rail-brand{
    display:flex;align-items:center;gap:10px;text-decoration:none;
    padding:4px 12px 18px;margin-bottom:10px;border-bottom:1px solid var(--border);
  }
  .nav-rail-brand img{height:30px;width:auto;filter:drop-shadow(0 0 12px rgba(47,98,255,.55))}
  .nav-rail-brand span{
    font-family:var(--font-d);font-size:.6rem;font-weight:800;letter-spacing:2.2px;
    color:var(--text-dim);line-height:1.2;
  }

  .nav-btn{
    flex:0 0 auto;flex-direction:row;justify-content:flex-start;align-items:center;
    gap:13px;width:100%;padding:11px 14px;border-radius:12px;
  }
  .nav-btn svg{width:20px;height:20px;flex-shrink:0}
  .nav-btn span{font-size:.72rem;letter-spacing:1.4px}
  .nav-btn:hover{background:rgba(47,98,255,.1);color:var(--text-dim)}
  .nav-btn.active{background:linear-gradient(135deg, rgba(47,98,255,.24), rgba(123,63,255,.14))}
  .nav-btn.active::before{
    top:16%;bottom:16%;left:0;right:auto;width:2px;height:auto;
    background:linear-gradient(180deg,transparent,var(--ice),transparent);
  }
  .nav-btn.boss-btn{flex-direction:row}
  .nav-btn.boss-btn .boss-btn-inner{width:26px;height:26px;font-size:.86rem;display:grid;place-items:center;flex-shrink:0}

  /* su desktop ci stanno tutte le voci: il drawer non serve */
  #navMoreBtn{display:none}
  .nav-rail-extra{display:block;margin-top:6px}
  .nav-rail-sep{
    font-family:var(--font-m);font-size:.58rem;letter-spacing:2.4px;color:var(--text-muted);
    padding:14px 14px 8px;margin-top:8px;border-top:1px solid var(--border);
  }
  .nav-rail-btn{color:var(--text-muted)}
  .nav-rail-ico{font-size:1rem;width:20px;text-align:center;flex-shrink:0}

  /* --- contenuto --- */
  .user-bar{left:var(--rail)}
  .screen{left:var(--rail);bottom:0}
  .screen-content{max-width:1020px;padding:30px 44px 60px}
  .screen-title{font-size:1.9rem}
  .screen-sub{font-size:.98rem;max-width:64ch}

  .nl-home-hero{padding:38px 28px 32px;margin-bottom:26px}
  .nl-home-logo{height:68px}
  .nl-home-title{font-size:2.1rem}
  .nl-home-lead{max-width:52ch;font-size:.98rem}

  /* le due card di testa affiancate (inline-grid: attenzione allo spazio bianco fra i tag) */
  .nl-hunter,.nl-next{display:inline-grid;vertical-align:top;width:calc(50% - 13px);margin-bottom:16px}
  .nl-hunter{margin-right:14px}

  /* il logo e gia nella barra laterale: niente doppione in alto */
  .user-bar .nc-brand{display:none}
  .user-bar{justify-content:flex-end;padding-top:12px;padding-bottom:12px}

  .nl-sections{grid-template-columns:repeat(4,1fr);gap:13px}
  .nl-steps{grid-template-columns:repeat(2,1fr)}
  .rw-strip{max-width:640px}
  .rw-glyph.strip.has-art{width:96px;height:96px}
  .rw-gloss{grid-template-columns:repeat(2,1fr)}
  .rw-fasi,.rw-regole{grid-template-columns:repeat(3,1fr);display:grid}
  .quest-tabs{grid-template-columns:repeat(6,1fr)}
  .boss-grid{grid-template-columns:repeat(3,1fr)}
  .nl-sec-desc,.rw-strip-role{font-size:.8rem}

  /* card degli interventi: angolo in basso a destra, non a tutta larghezza */
  .nl-party{left:auto;right:26px;bottom:26px;max-width:390px;margin:0}

  /* se il drawer si aprisse comunque, che sia una finestra centrata */
  .nl-drawer{align-items:center}
  .nl-drawer-sheet{border-radius:20px;border-bottom:1px solid var(--border-lit);padding-bottom:22px;max-width:560px}
}

/* schermi molto larghi: non far diventare il testo una riga infinita */
@media (min-width:1500px){
  .screen-content{max-width:1180px}
}

/* ==========================================================================
   CHECKLIST DELLA MISSIONE — tutti gli step visibili insieme
   Prima il box aveva max-height 260px con scroll interno: con 5 o piu step
   se ne vedevano tre e bisognava scorrere dentro una finestra dentro un'altra.
   ========================================================================== */
.tq-checklist{
  max-height:none !important;
  overflow:visible !important;
  gap:6px;
  padding:8px;
  background:rgba(8,12,28,.55);
  border:1px solid var(--border);
  border-radius:12px;
}
/* voci piu compatte: piu step entrano nella stessa schermata */
.tq-check-item{
  padding:8px 10px;border-radius:10px;
  border:1px solid var(--border);
  background:linear-gradient(150deg, rgba(20,34,84,.35), rgba(7,11,26,.85));
  gap:9px;
}
.tq-check-item.done{border-color:rgba(53,224,138,.4);background:rgba(53,224,138,.07)}
.tq-check-copy{font-size:.84rem;line-height:1.4}
.tq-check-item input[type="checkbox"]{margin-top:1px;flex-shrink:0;width:18px;height:18px;accent-color:var(--primary)}

/* la finestra puo usare piu spazio prima di scorrere */
.tq-box{max-width:440px !important;width:94% !important;padding:22px 18px !important}
.overlay-box.tq-box{max-height:calc(100dvh - 24px - var(--safe-t) - var(--safe-b))}

@media (max-width:400px){
  .tq-check-copy{font-size:.8rem}
  .tq-check-item{padding:7px 9px}
}

/* su schermi larghi, con molti step, due colonne: ci stanno tutti senza scorrere */
@media (min-width:1000px){
  .tq-box{max-width:720px !important}
  .tq-checklist:has(> :nth-child(5)){grid-template-columns:repeat(2,1fr)}
}

/* Intestazione della missione piu compatta: il posto guadagnato serve agli step.
   Obiettivo: con 6 step la finestra non deve scorrere su un telefono. */
.tq-box .ov-icon,.tq-header{font-size:2.1rem;margin-bottom:6px;line-height:1}
.tq-box .ov-title{font-size:1.05rem;letter-spacing:1px;margin-bottom:4px}
.tq-mode-badge{margin:2px 0 6px}
.tq-desc{font-size:.85rem;line-height:1.4;margin-bottom:6px}
.tq-target{font-size:.8rem;margin-bottom:8px}
.tq-checklist{margin:8px 0}
/* il testo degli step era in monospace largo: in Roboto va a capo molto meno */
.tq-check-copy{font-family:var(--font-b) !important;letter-spacing:0 !important}
.tq-science{font-family:var(--font-b) !important;letter-spacing:0 !important;font-size:.78rem;line-height:1.4;padding:9px 11px;margin:8px 0}
.tq-hint{font-size:.76rem;line-height:1.35;margin-top:6px}
.tq-actions{margin-top:10px}

.tq-hint{font-family:var(--font-b) !important;letter-spacing:0 !important}
/* schermi bassi (SE, telefoni piccoli): stringi ancora, ma senza toccare gli step */
@media (max-height:800px){
  .tq-box .ov-icon,.tq-header{font-size:1.6rem;margin-bottom:4px}
  .tq-box .ov-title{font-size:.98rem}
  .tq-desc{font-size:.8rem;margin-bottom:4px}
  .tq-target{margin-bottom:6px}
  .tq-checklist{gap:5px;padding:6px;margin:6px 0}
  .tq-check-item{padding:6px 9px}
  .tq-science{font-size:.74rem;padding:8px 10px;margin:6px 0}
  /* ridondante: il bottone dice gia "CHECKLIST 0/6" */
  .tq-hint{display:none}
}
