/* Guscio "app" della control room (ui-app-shell, 2026-10-11): schermate Oggi / Analisi / Mercato.
   app_shell.js mette hidden sui blocchi delle schermate non attive. Molti blocchi hanno un display proprio
   (grid, flex) che vince sulla regola del browser per [hidden]: qui hidden vince sempre. */
[data-screen][hidden]{display:none!important}
/* contenitore senza riquadro (es. il banner dell'agente, che il suo script mostra e nasconde da sé):
   i figli restano elementi della colonna principale, con il loro ordine */
.nrc-screen-part{display:contents}
/* prima che app_shell.js parta (script differito) la schermata è già scelta dallo script in <head>:
   niente lampo delle altre schermate al caricamento */
html[data-nrc-screen="oggi"] [data-screen]:not([data-screen="oggi"]),
html[data-nrc-screen="analisi"] [data-screen]:not([data-screen="analisi"]),
html[data-nrc-screen="mercato"] [data-screen]:not([data-screen="mercato"]){display:none!important}

/* ---------- transizione tra schermate (View Transitions API, app_shell.js) ----------
   Dissolvenza breve della pagina; menu e pulsante tondo hanno un nome proprio e restano fermi. Senza API o con
   prefers-reduced-motion il cambio è immediato. */
::view-transition-old(root), ::view-transition-new(root){animation-duration:.18s; animation-timing-function:ease}
html:root .sidebar nav{view-transition-name:nrc-nav}
html:root .nrc-ask-fab{view-transition-name:nrc-ask-fab}
@media (prefers-reduced-motion: reduce){
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*){animation:none!important}
}

/* ---------- skeleton leggeri al primo caricamento del pannello dell'agente ----------
   #agentDesk ha aria-busy="true" finché non arriva il primo journal (agent_desk.js): i blocchi che aspettano i dati
   mostrano una fascia che scorre, con altezze vicine a quelle finali (niente salto quando arrivano). */
@keyframes nrc-shimmer{from{background-position:100% 0} to{background-position:-100% 0}}
#agentDesk[aria-busy="true"] :is([data-id="appr"], .ad-mini-empty, .chart-empty, [data-sec="scan"] .scan-wrap, [data-id="cal"], [data-id="news"]){
  border-radius:12px; color:transparent!important;
  background:linear-gradient(90deg, rgba(255,255,255,.035) 30%, rgba(255,255,255,.085) 50%, rgba(255,255,255,.035) 70%);
  background-size:300% 100%; animation:nrc-shimmer 1.4s ease-in-out infinite;
}
#agentDesk[aria-busy="true"] :is([data-id="appr"], [data-sec="scan"] .scan-wrap, [data-id="cal"], [data-id="news"]) > *{visibility:hidden}
#agentDesk[aria-busy="true"] [data-id="appr"]{min-height:120px}
#agentDesk[aria-busy="true"] :is([data-sec="scan"] .scan-wrap, [data-id="cal"], [data-id="news"]){min-height:160px}
@media (prefers-reduced-motion: reduce){ #agentDesk[aria-busy="true"] *{animation:none!important} }

/* ---------- "Chiedi a Claude": pulsante tondo e finestra a comparsa ----------
   html:root davanti: lo stile generico dei pulsanti del tema (nrc_aurora.css, html:root button) non deve vincere.
   Telefono: foglio dal basso (sopra la barra delle schermate il pulsante), PC: pannello fluttuante in basso a destra. */
html:root .nrc-ask-fab{
  position:fixed; right:max(20px, env(safe-area-inset-right)); bottom:max(24px, calc(env(safe-area-inset-bottom) + 16px)); z-index:150;
  display:grid; place-items:center; width:56px; height:56px; padding:0; border-radius:50%; border:0; cursor:pointer;
  background:var(--t-accent, #9DB2FF); color:var(--t-on-accent, #0E1220);
  box-shadow:0 12px 28px -10px rgba(0,0,0,.7), 0 0 0 1px color-mix(in srgb, var(--t-accent, #9DB2FF) 40%, transparent);
  transition:transform .18s ease, filter .18s ease;
}
html:root .nrc-ask-fab:hover{filter:brightness(1.06); transform:translateY(-1px)}
html:root .nrc-ask-fab:active{transform:scale(.96)}
html:root .nrc-ask-fab:focus-visible{outline:2px solid var(--t-text, #E6EAF2); outline-offset:3px}
html:root .nrc-ask-fab[aria-expanded="true"]{visibility:hidden}
.nrc-ask-sheet{position:fixed; inset:0; z-index:300}
.nrc-ask-sheet[hidden]{display:none!important}
.nrc-ask-backdrop{position:absolute; inset:0; background:rgba(5,7,12,.58); opacity:0; transition:opacity .22s ease}
.nrc-ask-sheet.is-open .nrc-ask-backdrop{opacity:1}
.nrc-ask-dialog{
  position:absolute; left:0; right:0; bottom:0; box-sizing:border-box; max-height:min(88svh, 640px); overflow:auto; overscroll-behavior:contain;
  padding:4px max(16px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  background:#15171D; color:var(--t-text, #E6EAF2); border:1px solid var(--t-border, rgba(255,255,255,.08)); border-bottom:0;
  border-radius:20px 20px 0 0; box-shadow:0 -20px 50px -20px rgba(0,0,0,.8);
  transform:translateY(100%); transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.nrc-ask-dialog:focus{outline:none}
.nrc-ask-sheet.is-open .nrc-ask-dialog{transform:none}
.nrc-ask-sheet.is-dragging .nrc-ask-dialog{transition:none}
.nrc-ask-head{position:relative; display:flex; align-items:center; gap:12px; min-height:48px; padding:16px 0 8px; touch-action:none; cursor:grab}
.nrc-ask-grip{position:absolute; top:6px; left:50%; width:40px; height:5px; margin-left:-20px; border-radius:3px; background:var(--t-border-hi, rgba(255,255,255,.18))}
.nrc-ask-head h2{flex:1 1 auto; min-width:0; margin:0; font-size:17px; font-weight:700; letter-spacing:-.01em}
html:root .nrc-ask-close{display:grid; place-items:center; width:44px; height:44px; padding:0; border-radius:12px; cursor:pointer}
html.nrc-ask-open body{overflow:hidden}
@media (max-width:767px){
  /* sopra la barra delle schermate (52px + 12px di margini + area sicura) */
  html:root .nrc-ask-fab{bottom:calc(76px + env(safe-area-inset-bottom))}
}
/* ---------- piè di pagina: uno solo, ultimo elemento di ogni schermata ----------
   Fuori dai blocchi con data-screen, quindi visibile in Oggi, Analisi e Mercato; ultimo nella colonna (order).
   Il padding in fondo a .main (qui sotto) lo tiene sopra la barra del telefono e lontano dal pulsante tondo. */
html:root .main > .nrc-footer{order:100}
.nrc-footer{
  display:grid; gap:10px; margin-top:8px; padding:18px 4px 4px; border-top:1px solid var(--t-border, rgba(255,255,255,.07));
  color:var(--t-muted, #8A94A8); font-family:var(--t-sans, system-ui); font-size:13px; line-height:1.5;
}
.nrc-footer p{margin:0}
.nrc-footer-id{display:flex; align-items:center; gap:10px}
.nrc-footer-id strong{color:var(--t-text, #E6EAF2); font-weight:650}
.nrc-footer-mark{display:grid; place-items:center; flex:none; width:30px; height:30px; border-radius:9px; font-size:11px; font-weight:800; letter-spacing:-.02em;
  background:var(--t-accent, #9DB2FF); color:var(--t-on-accent, #0E1220)}
.nrc-footer-contacts{display:flex; flex-wrap:wrap; gap:4px 20px; margin:0; padding:0; list-style:none}
.nrc-footer-contacts a{display:inline-flex; align-items:center; gap:8px; min-height:32px; color:var(--t-text, #E6EAF2); text-decoration:none; overflow-wrap:anywhere}
.nrc-footer-contacts a:hover span{text-decoration:underline}
.nrc-footer-contacts a:focus-visible{outline:2px solid var(--t-accent, #9DB2FF); outline-offset:2px; border-radius:6px}
.nrc-footer-contacts svg{flex:none; color:var(--t-accent, #9DB2FF)}
.nrc-footer-note{font-size:12px}
@media (max-width:767px){
  .nrc-footer{padding:16px 2px 0}
  .nrc-footer-contacts{flex-direction:column}
  .nrc-footer-contacts a{min-height:44px}                 /* da pollice */
}

/* spazio in fondo a ogni schermata: a fine pagina il pulsante tondo (56px, fisso in basso a destra) non copre
   l'ultimo contenuto. PC: pulsante a 24px dal fondo -> 96px più l'area sicura. Telefono: il body ha già 76px più
   l'area sicura per la barra delle schermate, il pulsante sta sopra la barra -> altri 80px.
   html:root body: più forte di "body.nrc-compact-top .main{padding:...!important}" di control_room.css */
html:root body .main{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
@media (max-width:767px){ html:root body .main{padding-bottom:80px!important} }
@media (min-width:768px){
  .nrc-ask-backdrop{background:rgba(5,7,12,.18)}
  .nrc-ask-dialog{
    left:auto; right:max(24px, env(safe-area-inset-right)); bottom:96px; width:min(420px, calc(100vw - 48px)); max-height:min(80vh, 620px);
    padding:4px 16px 16px; border-bottom:1px solid var(--t-border, rgba(255,255,255,.08)); border-radius:18px;
    box-shadow:0 30px 70px -20px rgba(0,0,0,.85); opacity:0; transform:translateY(12px) scale(.98); transition:transform .2s ease, opacity .2s ease;
  }
  .nrc-ask-sheet.is-open .nrc-ask-dialog{opacity:1; transform:none}
  .nrc-ask-grip{display:none}
  .nrc-ask-head{cursor:default; padding-top:8px}
  html.nrc-ask-open body{overflow:auto}
}
@media (prefers-reduced-motion: reduce){
  html:root .nrc-ask-fab, .nrc-ask-backdrop, .nrc-ask-dialog{transition:none!important}
}
