/* Module: dashboard (placeholder conservativo).
   Stili correnti mantenuti in core/utilities.css. */


/* Extracted from core/utilities.css (phase 2, conservative) */
#route-dashboard{
  /* Palette canonica (freddo neutro): viola=identità, blu=azione, ambra=attenzione */
  --dash-primary:var(--accent);          /* viola identità #B0A1EE */
  --dash-blue:var(--control);            /* blu funzionale (progress, stati) */
  --dash-pink:var(--accent);             /* unificato al viola */
  --dash-red:var(--warning);             /* attenzione ambra, non rosso acceso */
  --dash-bg:transparent;                 /* lascia il canvas app */
  --dash-sidebar:var(--surface-raised);
  --dash-card:var(--surface-panel);
  --dash-text:var(--text-primary);       /* mai bianco puro */
  --dash-muted:var(--text-secondary);
  --dash-border:var(--border-default, var(--line-soft));
  position:relative;
  overflow:auto;
  isolation:isolate;
  background:var(--dash-bg);
  color:var(--dash-text);
}#route-dashboard::before{
  /* overlay a pois scuro rimosso: dashboard = superficie continua editoriale (come Narrative) */
  display:none;
}#route-dashboard :is(.dashboard-shell,.route-main){
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:0;                                   /* niente gap scuri: sezioni contigue */
  min-height:100%;
  /* unica superficie continua (niente bordo: faceva "casino" col panel) */
  background:var(--surface-panel);
  border:0;
  border-radius:0;
}#route-dashboard .dashboard-hero,
#route-dashboard .dashboard-card{
  position:relative;
  overflow:hidden;
  /* sezioni piatte sulla superficie continua: niente card flottante */
  border:0;
  border-bottom:1px solid var(--editorial-line, var(--dash-border));
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
/* ultima sezione: niente hairline finale */
#route-dashboard :is(.dashboard-shell,.route-main) > :last-child,
#route-dashboard .dashboard-grid > :last-child{
  border-bottom:0;
}#route-dashboard .dashboard-hero::before,
#route-dashboard .dashboard-card::before{
  display:none;
}#route-dashboard .dashboard-hero{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px 26px;
  min-height:156px;
}#route-dashboard .dashboard-hero > :first-child{
  min-width:0;
}#route-dashboard .dashboard-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:.76rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--dash-blue) 60%, white 40%);
  margin-bottom:10px;
}#route-dashboard .dashboard-eyebrow::before{
  content:"";
  width:28px;
  height:1px;
  border-radius:999px;
  background:var(--ms-color-surface-primary);
}#route-dashboard .dashboard-title{
  margin:0;
  font-family:var(--font-display, var(--font-serif));
  font-weight:600;
  font-size:clamp(2rem, 3.4vw, 2.9rem);
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--dash-text);
}#route-dashboard :is(h1, h2, h3, h4, strong){
  color:var(--dash-text);
}#route-dashboard a{
  color:var(--dash-text);
}#route-dashboard a:hover{
  color:var(--dash-text);
}#route-dashboard .dashboard-subtitle{
  margin-top:12px;
  max-width:760px;
  color:var(--dash-muted);
  font-size:1rem;
  line-height:1.55;
}#route-dashboard .dashboard-hero-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  max-width:420px;
  align-self:start;
}#route-dashboard .dashboard-hero-links .btn{
  min-height:38px;
  border-radius:999px;
  padding:0 14px;
  border-color:var(--editorial-line, var(--dash-border));
  background:color-mix(in srgb, var(--dash-card) 82%, transparent);
  box-shadow:none;
}#route-dashboard .dashboard-grid{
  display:flex;                            /* colonna singola continua, sezioni impilate */
  flex-direction:column;
  gap:0;
}#route-dashboard .dashboard-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:0;
  padding:20px 26px;                       /* padding orizzontale = hero, allineamento editoriale */
}#route-dashboard .dashboard-card-summary{
  grid-column:span 4;
}#route-dashboard .dashboard-card-storyboards{
  grid-column:span 3;
}#route-dashboard .dashboard-card-quick{
  grid-column:span 5;
}#route-dashboard .dashboard-card-notes,
#route-dashboard .dashboard-card-tasks{
  grid-column:span 6;
}#route-dashboard .dashboard-card-activity{
  grid-column:span 12;
}#route-dashboard .dashboard-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--editorial-line, var(--dash-border));
}#route-dashboard .dashboard-card-title{
  margin:0;
  font-family:var(--font-display, var(--font-serif));
  font-weight:600;
  font-size:1.15rem;
  line-height:1.2;
  letter-spacing:0;
  color:var(--dash-text);
}#route-dashboard .dashboard-card-head .small.muted{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid var(--editorial-line, var(--dash-border));
  background:rgba(255,255,255,.03);
  color:var(--dash-muted);
  font-size:.76rem;
}#route-dashboard .dashboard-mini-link{
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  font-size:.8rem;
}#route-dashboard .dashboard-stats-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}#route-dashboard .dashboard-stat{
  position:relative;
  border:1px solid var(--editorial-line, var(--dash-border));
  border-radius:12px;
  background:color-mix(in srgb, var(--dash-card) 86%, black 14%);
  padding:16px 15px 14px;
}#route-dashboard .dashboard-stat::after{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:42px;
  height:2px;
  border-radius:999px;
  background:var(--ms-color-surface-primary);
}#route-dashboard .dashboard-stat-label{
  color:var(--dash-muted);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:8px;
}#route-dashboard .dashboard-stat-value{
  font-size:2.1rem;
  font-weight:600;
  line-height:.92;
  letter-spacing:-.04em;
  color:var(--dash-text);
}#route-dashboard .dashboard-storyboard-split{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}#route-dashboard .dashboard-story-pill{
  position:relative;
  border-radius:12px;
  padding:16px 14px;
  border:1px solid var(--editorial-line, var(--dash-border));
  background:color-mix(in srgb, var(--dash-card) 82%, black 18%);
  display:flex;
  flex-direction:column;
  gap:8px;
}#route-dashboard .dashboard-story-pill.has-board{
  border-color:color-mix(in srgb, var(--success, #7A9B7A) 40%, var(--dash-border) 60%);
  background:color-mix(in srgb, var(--dash-card) 86%, var(--success, #7A9B7A) 14%);
}#route-dashboard .dashboard-story-pill.has-board strong{
  color:color-mix(in srgb, var(--success, #7A9B7A) 70%, var(--dash-text) 30%);
}#route-dashboard .dashboard-story-pill.no-board{
  border-color:var(--dash-border);
  background:var(--dash-card);
}#route-dashboard .dashboard-story-pill-label{
  color:var(--dash-muted);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}#route-dashboard .dashboard-story-pill strong{
  font-size:2rem;
  line-height:.92;
  letter-spacing:-.04em;
}#route-dashboard .dashboard-quick-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
}#route-dashboard .dashboard-template-picker{
  display:grid;
  gap:8px;
}#route-dashboard .dashboard-quick-btn{
  width:100%;
  min-height:46px;
  justify-content:center;
  border-radius:14px;
  box-shadow:none;
}#route-dashboard .dashboard-quick-hint{
  color:var(--dash-muted);
  font-size:.82rem;
  line-height:1.45;
}#route-dashboard .dashboard-task-summary{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
}#route-dashboard .dashboard-task-summary-pill{
  border:1px solid var(--editorial-line, var(--dash-border));
  border-radius:16px;
  padding:12px 14px;
  background:color-mix(in srgb, var(--dash-card) 85%, black 15%);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}#route-dashboard .dashboard-task-summary-pill.is-done{
  border-color:color-mix(in srgb, var(--success, #7A9B7A) 38%, var(--dash-border) 62%);
}#route-dashboard .dashboard-task-summary-pill.is-open{
  border-color:color-mix(in srgb, var(--warning, #C4A574) 32%, var(--dash-border) 68%);
}#route-dashboard .dashboard-task-summary-label{
  font-size:.76rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--dash-muted);
}#route-dashboard .dashboard-task-summary-pill strong{
  font-size:1.3rem;
  color:var(--dash-text);
}#route-dashboard .dashboard-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
}#route-dashboard .dashboard-note-link,
#route-dashboard .dashboard-task-link{
  position:relative;
  text-decoration:none;
  color:var(--dash-text);
  border:1px solid var(--editorial-line, var(--dash-border));
  border-radius:12px;
  background:color-mix(in srgb, var(--dash-card) 90%, black 10%);
  padding:14px 14px 13px;
  transition:border-color .18s ease, background-color .18s ease, transform .08s ease, box-shadow .18s ease;
}#route-dashboard .dashboard-note-link::before,
#route-dashboard .dashboard-task-link::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  border-radius:18px 0 0 18px;
  background:color-mix(in srgb, var(--dash-blue) 72%, transparent);
  opacity:.7;
}#route-dashboard .dashboard-note-link:hover,
#route-dashboard .dashboard-task-link:hover{
  border-color:color-mix(in srgb, var(--dash-blue) 42%, var(--dash-primary) 58%);
  background:color-mix(in srgb, var(--dash-card) 78%, var(--dash-blue) 22%);
  box-shadow:none;
}#route-dashboard .dashboard-note-link:active,
#route-dashboard .dashboard-task-link:active{
  transform:translateY(1px);
}#route-dashboard .dashboard-note-head,
#route-dashboard .dashboard-task-top,
#route-dashboard .dashboard-task-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}#route-dashboard .dashboard-note-title,
#route-dashboard .dashboard-task-title{
  font-weight:700;
  color:var(--dash-text);
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}#route-dashboard .dashboard-note-time,
#route-dashboard .dashboard-task-meta time{
  font-size:.76rem;
  color:var(--dash-muted);
  white-space:nowrap;
}#route-dashboard .dashboard-note-preview{
  margin-top:8px;
  font-size:.92rem;
  color:var(--dash-muted);
  line-height:1.45;
}#route-dashboard .dashboard-note-foot{
  margin-top:10px;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:var(--dash-muted);
  font-size:.74rem;
}#route-dashboard .dashboard-progress{
  width:100%;
  height:9px;
  margin-top:10px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 1px rgba(0,0,0,.28);
}#route-dashboard .dashboard-progress-bar{
  display:block;
  height:100%;
  border-radius:999px;
  background:color-mix(in srgb, var(--dash-blue) 78%, white 22%);
}#route-dashboard .dashboard-task-ratio{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  font-weight:700;
  color:var(--dash-text);
  white-space:nowrap;
}#route-dashboard .dashboard-task-meta{
  margin-top:10px;
}#route-dashboard .dashboard-task-state{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.8rem;
  color:var(--dash-muted);
}#route-dashboard .dashboard-task-state::before{
  content:"";
  width:11px;
  height:11px;
  border-radius:999px;
  border:2px solid color-mix(in srgb, var(--dash-blue) 30%, var(--dash-border) 70%);
  background:color-mix(in srgb, var(--dash-card) 78%, black 22%);
}#route-dashboard .dashboard-task-state.is-done::before{
  background:var(--dash-blue);
  border-color:color-mix(in srgb, var(--dash-blue) 72%, white 28%);
  box-shadow:inset 0 0 0 2px rgba(14, 24, 39, .52);
}#route-dashboard .dashboard-activity-link{
  display:block;
  text-decoration:none;
  color:var(--dash-text);
  border:1px solid var(--editorial-line, var(--dash-border));
  border-radius:12px;
  padding:14px;
  background:color-mix(in srgb, var(--dash-card) 90%, black 10%);
  transition:border-color .18s ease, transform .08s ease, box-shadow .18s ease;
}#route-dashboard .dashboard-activity-link:hover{
  border-color:color-mix(in srgb, var(--dash-pink) 40%, var(--dash-primary) 60%);
  transform:translateY(-1px);
  box-shadow:none;
}#route-dashboard .dashboard-activity-head,
#route-dashboard .dashboard-activity-left{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}#route-dashboard .dashboard-activity-left{
  justify-content:flex-start;
  min-width:0;
}#route-dashboard .dashboard-activity-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:700;
  color:var(--dash-text);
  background:color-mix(in srgb, var(--dash-primary) 34%, transparent);
  border:1px solid color-mix(in srgb, var(--dash-primary) 55%, var(--dash-border) 45%);
}#route-dashboard .dashboard-activity-badge.is-note{
  background:color-mix(in srgb, var(--dash-pink) 24%, transparent);
  border-color:color-mix(in srgb, var(--dash-pink) 45%, var(--dash-border) 55%);
}#route-dashboard .dashboard-activity-badge.is-block{
  background:color-mix(in srgb, var(--dash-blue) 20%, transparent);
  border-color:color-mix(in srgb, var(--dash-blue) 40%, var(--dash-border) 60%);
}#route-dashboard .dashboard-activity-title{
  min-width:0;
  font-weight:600;
  color:var(--dash-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}#route-dashboard .dashboard-activity-time,
#route-dashboard .dashboard-activity-meta,
#route-dashboard .dashboard-activity-preview{
  color:var(--dash-muted);
}#route-dashboard .dashboard-activity-time{
  font-size:.78rem;
  white-space:nowrap;
}#route-dashboard .dashboard-activity-meta{
  margin-top:8px;
  font-size:.82rem;
}#route-dashboard .dashboard-activity-preview{
  margin-top:8px;
  font-size:.92rem;
  line-height:1.45;
}#route-dashboard .dashboard-empty{
  max-width:none;
}@media (max-width: 1180px){
#route-dashboard .dashboard-card-summary,
  #route-dashboard .dashboard-card-storyboards,
  #route-dashboard .dashboard-card-quick,
  #route-dashboard .dashboard-card-notes,
  #route-dashboard .dashboard-card-tasks,
  #route-dashboard .dashboard-card-activity{
    grid-column:span 12;
  }
}@media (max-width: 840px){
#route-dashboard .dashboard-hero{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-height:0;
  }#route-dashboard .dashboard-hero-links{
    justify-content:flex-start;
    max-width:none;
  }#route-dashboard .dashboard-storyboard-split,
  #route-dashboard .dashboard-quick-grid,
  #route-dashboard .dashboard-stats-grid,
  #route-dashboard .dashboard-task-summary{
    grid-template-columns:1fr;
  }
}

/* Azioni rapide — un solo primario blu (--control), gli altri neutri.
   !important per battere gli stili .btn legacy di unified-pass. */
/* 2 id (#workspaceMain) per battere la globale .btn di unified-pass (2,1,0)!important
   che forzava sfondo trasparente → i bottoni apparivano come solo testo */
#workspaceMain #route-dashboard .dashboard-quick-btn{ font-weight:600 !important; }
#workspaceMain #route-dashboard .dashboard-quick-btn.btn-primary{
  background:var(--control) !important;
  border:1px solid var(--control) !important;
  color:#fff !important;
}
#workspaceMain #route-dashboard .dashboard-quick-btn.btn-primary:hover{
  background:var(--control-hover, var(--control)) !important;
  border-color:var(--control-hover, var(--control)) !important;
}
#workspaceMain #route-dashboard .dashboard-quick-btn.btn-secondary{
  background:transparent !important;
  border:1px solid var(--editorial-line, var(--dash-border)) !important;
  color:var(--dash-text) !important;
}
#workspaceMain #route-dashboard .dashboard-quick-btn.btn-secondary:hover{
  background:var(--surface-raised) !important;
  border-color:var(--border-strong, var(--line-visible)) !important;
  color:var(--dash-text) !important;
}
#workspaceMain #route-dashboard .dashboard-quick-btn[disabled]{ opacity:.5 !important; cursor:not-allowed; }


/* Lavagna "Appunti della storia" — solo Panoramica (overview). Autosave live. */
#route-dashboard .dashboard-card-board{ grid-column:span 12; }
#route-dashboard .dashboard-board-input{
  width:100%;
  min-height:120px;
  resize:vertical;
  padding:12px 14px;
  font-family:var(--font-sans, inherit);
  font-size:.95rem;
  line-height:1.55;
  color:var(--dash-text);
  background:var(--surface-input, var(--bg-input)) !important;
  border:1px solid var(--dash-border) !important;
  border-radius:10px;
  box-shadow:none !important;
  transition:border-color .18s ease, box-shadow .18s ease;
}
#route-dashboard .dashboard-board-input::placeholder{ color:var(--dash-muted); }
#route-dashboard .dashboard-board-input:focus{
  outline:none;
  border-color:var(--control-muted, var(--accent-strong)) !important;
  box-shadow:0 0 0 3px var(--control-soft, var(--state-focus-ring)) !important;
}
#route-dashboard .dashboard-board-input:disabled{ opacity:.55; cursor:not-allowed; }

/* Stato salvataggio (data-state: pending|saving|saved|error) */
#route-dashboard .dashboard-board-status[data-state="saving"]{ color:var(--control) !important; }
#route-dashboard .dashboard-board-status[data-state="saved"]{ color:var(--success, #7A9B7A) !important; }
#route-dashboard .dashboard-board-status[data-state="pending"]{ color:var(--warning, #C4A574) !important; }
#route-dashboard .dashboard-board-status[data-state="error"]{ color:var(--error, #B47A7A) !important; }


/* Membri della storia — solo Panoramica */
#route-dashboard .dashboard-card-members{ grid-column:span 6; }
#route-dashboard .dashboard-members{ display:flex; flex-direction:column; gap:8px; }
#route-dashboard .dashboard-member{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--dash-border);
  border-radius:12px;
  background:color-mix(in srgb, var(--dash-card) 90%, black 10%);
}
#route-dashboard .dashboard-member.is-inactive{ opacity:.55; }
#route-dashboard .dashboard-member-avatar{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px; height:32px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:600;
  color:var(--accent);
  background:var(--accent-soft);
  border:1px solid var(--accent-muted);
}
#route-dashboard .dashboard-member-info{ flex:1 1 auto; min-width:0; }
#route-dashboard .dashboard-member-name{
  font-weight:600;
  color:var(--dash-text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#route-dashboard .dashboard-member-email{
  font-size:.78rem;
  color:var(--dash-muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#route-dashboard .dashboard-member-role{
  flex:0 0 auto;
  display:inline-flex; align-items:center;
  min-height:24px; padding:0 10px;
  border-radius:999px;
  font-size:.74rem; font-weight:600;
  color:var(--accent);
  background:var(--accent-soft);
  border:1px solid var(--accent-muted);
}
