/* Cronologia: scoped to the new read-only page and its navigation entry. */
.tab[data-view="chronology-view"]::before {
  content:""; background:var(--v4-accent) !important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11a9 9 0 1 1 2.6 7M3 5v6h6M12 7v5l3 2'/%3E%3C/svg%3E") center / 20px no-repeat;
}
body[data-active-view="chronology-view"] { overflow-y:auto; overflow-x:hidden; }
body[data-active-view="chronology-view"] main { height:auto; min-height:100dvh; overflow:visible; padding-bottom:12px; }
#chronology-view.is-active { display:flex; flex-direction:column; gap:12px; min-height:calc(100dvh - 12px); min-width:0; }
#chronology-view .chronology-heading { display:flex; justify-content:space-between; min-height:56px; flex-shrink:0; padding:8px 16px; }
#chronology-view .chronology-heading h1 { font:600 22px/1.2 var(--ui-font-heading); letter-spacing:0; }
.chronology-heading svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#chronology-content { display:flex; flex-direction:column; gap:14px; flex:1; min-width:0; }
.chronology-summary,.chronology-panel { background:#fff; border:1px solid var(--v4-line); border-radius:var(--v4-radius); box-shadow:var(--v4-shadow); min-width:0; }
.chronology-summary { display:grid; grid-template-columns:minmax(220px,1.25fr) repeat(2,minmax(150px,1fr)) minmax(205px,1.2fr) minmax(145px,.85fr); align-items:center; padding:18px 14px; gap:12px; }
.chronology-train { display:flex; align-items:center; gap:15px; min-width:0; }
.chronology-train > img { width:46px; height:54px; object-fit:contain; }
.chronology-train > div { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
#chronology-train { width:100%; min-width:140px; height:34px; padding:4px 28px 4px 10px; font:600 14px var(--ui-font-heading); color:var(--v4-ink); border:1px solid var(--v4-line-strong); border-radius:5px; background:#fff; }
.chronology-status { font:600 11px var(--ui-font-text); color:#16855b; background:#e4f5ec; border-radius:4px; padding:3px 8px; }
.chronology-status.is-out { color:#b42338; background:#ffedf0; }
.chronology-status.is-unknown { color:var(--v4-muted); background:var(--v4-panel-head); }
.chronology-stat { display:flex; flex-direction:column; gap:7px; padding-left:18px; border-left:1px solid var(--v4-line); min-width:0; }
.chronology-stat > span { font-size:12px; color:var(--v4-muted); }
.chronology-stat strong { font:600 clamp(16px,1.25vw,23px)/1.3 var(--ui-font-heading); color:var(--v4-ink); overflow-wrap:anywhere; }
.chronology-panel { display:flex; flex-direction:column; flex:1; min-height:258px; padding:16px 18px 12px; }
.chronology-panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-shrink:0; }
.chronology-panel h2 { margin:0; font:600 16px/1.4 var(--ui-font-heading); color:var(--v4-ink); }
.chronology-panel-heading p { margin:4px 0 0; font:12px/1.45 var(--ui-font-text); color:var(--v4-muted); }
.chronology-panel-actions { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.chronology-navigation { display:flex; align-items:center; gap:5px; }
.chronology-navigation button { min-height:32px; min-width:33px; padding:4px 10px; color:var(--v4-ink); background:#fff; border:1px solid var(--v4-line-strong); border-radius:5px; font:600 12px var(--ui-font-text); cursor:pointer; }
.chronology-navigation button:not([data-chronology-scroll="today"]) { font-size:22px; line-height:20px; font-weight:400; }
.chronology-navigation button:hover:not(:disabled) { border-color:var(--v4-primary); background:var(--v4-hover); }
.chronology-navigation button:disabled { opacity:.4; cursor:default; }
.chronology-scroll { display:flex; align-items:flex-start; min-width:0; overflow-x:auto; overflow-y:hidden; flex:1; padding-top:14px; outline-offset:2px; scrollbar-gutter:stable; }
.chronology-track { position:relative; flex:0 0 auto; margin:0 6px; --progress-color:#16855b; }
.chronology-calendar-row { position:absolute; left:0; right:0; --axis:calc(100% - 30px); --axis-color:#0785b3; }
.chronology-calendar-row.is-temporal,.chronology-undated.is-temporal { --axis-color:#7656b8; }
.chronology-rail,.chronology-progress-rail { position:absolute; top:var(--axis); left:0; height:3px; background:var(--axis-color); width:calc(100% - 33px); border-radius:2px; }
.chronology-rail::after { content:""; position:absolute; right:-12px; top:-4px; width:9px; height:9px; border-top:2px solid var(--axis-color); border-right:2px solid var(--axis-color); transform:rotate(45deg); }
.chronology-rail { background:linear-gradient(to right,var(--axis-color) 0%,var(--axis-color) 96%,transparent 96%),repeating-linear-gradient(to right,var(--axis-color) 0 5px,transparent 5px 10px); }
.chronology-progress-rail { width:var(--position); background:var(--progress-color); }
.chronology-infinity { position:absolute; top:calc(var(--axis) - 12px); right:-2px; font:26px/1 var(--ui-font-text); color:var(--v4-primary); }
.chronology-points { list-style:none; margin:0; padding:0; }
.chronology-point { position:absolute; top:var(--axis); left:var(--point); width:0; }
.chronology-limit-tick { position:absolute; top:calc(var(--axis) - 5px); height:13px; width:0; border-left:2px solid var(--axis-color); transform:translateX(-1px); pointer-events:none; }
.chronology-node { display:grid; place-items:center; position:absolute; width:19px; height:19px; left:-9px; top:calc(-8px - var(--node-rise,0px)); background:#fff; color:#fff; border:3px solid var(--axis-color); border-radius:50%; font:600 12px var(--ui-font-text); box-sizing:border-box; }
.chronology-calendar-row .chronology-point::before { content:""; position:absolute; left:0; bottom:0; width:1px; height:var(--node-rise,0px); background:var(--axis-color); }
.chronology-node[data-chronology-detail] { padding:0; min-width:0; min-height:0; cursor:pointer; }
.chronology-node[data-chronology-detail]::after { content:""; position:absolute; inset:-8px; border-radius:50%; }
.chronology-node[data-chronology-detail]:hover { box-shadow:0 0 0 4px #7656b820; }
#chronology-detail-dialog { width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:0; overflow:auto; }
#chronology-detail-dialog .dialog-header { gap:16px; }
.chronology-detail-content { padding:16px 20px; }
.chronology-detail-train { margin:0 0 14px; color:var(--v4-muted); font-weight:600; }
#chronology-detail-dialog table { width:100%; border-collapse:collapse; table-layout:fixed; }
#chronology-detail-dialog th,#chronology-detail-dialog td { padding:10px 12px; text-align:left; border-bottom:1px solid var(--v4-line); }
#chronology-detail-dialog thead { background:var(--v4-panel-head); }
#chronology-detail-dialog tbody th { font-weight:600; }
.chronology-detail-note { margin:14px 0 0; color:var(--v4-muted); font-size:12px; line-height:1.5; }
#chronology-detail-dialog .dialog-actions { justify-content:flex-end; padding:12px 20px; border-top:1px solid var(--v4-line); border-bottom:0; }
.chronology-point.is-completed .chronology-node { background:#16855b; border-color:#16855b; }
.chronology-point.is-declared .chronology-node { border-color:#16855b; }
.chronology-point.is-reference .chronology-node { border-color:var(--v4-muted); background:var(--v4-panel-head); }
.chronology-point.is-approaching .chronology-node { border-color:#229bb5; }
.chronology-point.is-overdue .chronology-node { border-color:#c73e4d; background:#ffedf0; }
.chronology-point-label { display:flex; flex-direction:column; gap:4px; position:absolute; bottom:24px; left:-65px; width:138px; color:var(--v4-ink); background:#fff; z-index:2; }
.chronology-point-label strong,.chronology-point-label b { font:600 14px/1.25 var(--ui-font-heading); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chronology-point-label small { font:12px/1.3 var(--ui-font-text); color:var(--v4-muted); }
.chronology-point.is-overdue small { color:#b42338; }
.chronology-cursor { position:absolute; left:var(--position); top:80px; bottom:12px; width:0; border-left:1px dashed var(--progress-color); z-index:1; }
.chronology-current-label { position:absolute; top:50px; left:clamp(70px,var(--position),calc(100% - 70px)); transform:translateX(-50%); white-space:nowrap; border-radius:4px; background:var(--progress-color); padding:6px 9px; font:600 12px/1.2 var(--ui-font-heading); color:#fff; }
.chronology-progress { position:absolute; top:var(--axis); left:var(--position); z-index:3; color:var(--progress-color); }
.chronology-progress i { position:absolute; top:-17px; left:-8px; width:0; height:0; border-top:17px solid var(--progress-color); border-left:8px solid transparent; border-right:8px solid transparent; }
.chronology-progress strong { position:absolute; left:15px; bottom:2px; padding:2px 4px; background:#fff; white-space:nowrap; font:600 14px/1.2 var(--ui-font-heading); }
.chronology-month { position:absolute; top:12px; bottom:12px; border-left:1px solid var(--v4-line); }
.chronology-month > span { display:block; margin-left:8px; color:var(--v4-muted); white-space:nowrap; font:600 12px/1.4 var(--ui-font-text); }
.chronology-undated { --axis-color:#0785b3; border-top:1px solid var(--v4-line); padding-top:10px; }
.chronology-undated h3 { margin:0 0 10px; color:var(--v4-muted); font:600 12px var(--ui-font-text); }
.chronology-undated ol { display:flex; flex-wrap:wrap; gap:12px 22px; padding:0; list-style:none; }
.chronology-undated .chronology-point { position:relative; top:auto; left:auto; width:160px; padding-left:22px; }
.chronology-undated .chronology-node { top:2px; left:0; width:14px; height:14px; border-width:2px; }
.chronology-undated .chronology-point-label { position:static; width:auto; }
.chronology-notice { margin:8px 0; padding:9px 12px; background:#f5f8fa; border-left:3px solid #8ab9cb; border-radius:4px; color:var(--v4-muted); font:12px/1.5 var(--ui-font-text); overflow-wrap:anywhere; }
.chronology-empty { display:grid; place-items:center; min-height:150px; padding:22px; color:var(--v4-muted); font:13px/1.5 var(--ui-font-text); text-align:center; }
.chronology-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 6px; flex-wrap:wrap; }
.chronology-legend { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; }
.chronology-legend > span { display:flex; align-items:center; gap:7px; font:11px var(--ui-font-text); color:var(--v4-muted); }
.chronology-legend i { display:grid; place-items:center; width:13px; height:13px; border:2px solid #0785b3; border-radius:50%; font:10px var(--ui-font-text); }
.chronology-legend .is-completed { background:#16855b; border-color:#16855b; color:#fff; }
.chronology-legend .is-current { width:0; height:0; border-radius:0; border:7px solid transparent; border-top:12px solid #16855b; border-bottom:0; }
.chronology-legend .is-temporal { border-color:#7656b8; }
.chronology-legend .is-overdue { background:#ffedf0; border-color:#c73e4d; }
.chronology-reading { margin-left:auto; font:11px var(--ui-font-text); color:var(--v4-muted); }
#chronology-content .visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
#chronology-content :is(button,select,.chronology-scroll):focus-visible { outline:2px solid var(--v4-primary); outline-offset:2px; }
@container workspace (max-width:1000px) {
  .chronology-summary { grid-template-columns:minmax(200px,1.1fr) repeat(2,minmax(140px,1fr)); padding:12px; }
  .chronology-stat:nth-child(4),.chronology-stat:nth-child(5) { padding-top:7px; border-top:1px solid var(--v4-line); }
  .chronology-stat:nth-child(4) { grid-column:2; }
  .chronology-summary .chronology-train { grid-row:span 2; }
  .chronology-stat strong { font-size:17px; }
  .chronology-panel { padding:12px; }
  .chronology-panel-heading { flex-wrap:wrap; }
  .chronology-panel-actions { margin-left:auto; }
}
@container workspace (max-width:620px) {
  .chronology-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .chronology-summary .chronology-train { grid-column:1/-1; grid-row:auto; }
  .chronology-stat { padding:10px 0 0; border:0; border-top:1px solid var(--v4-line); }
  .chronology-stat:nth-child(4) { grid-column:auto; }
  .chronology-panel h2 { font-size:15px; }
  .chronology-panel-actions { width:100%; justify-content:flex-end; }
  .chronology-reading { margin-left:0; }
}
@media (max-height:820px) {
  #chronology-content { gap:10px; }
  #chronology-view.is-active { gap:10px; }
  #chronology-view .chronology-heading { min-height:48px; }
  .chronology-panel { min-height:238px; }
  .chronology-summary { padding-top:12px; padding-bottom:12px; }
}
@media (prefers-reduced-motion:reduce) { .chronology-scroll { scroll-behavior:auto; } }

.chronology-current-label, .chronology-cursor, .chronology-progress { cursor:ew-resize; touch-action:none; user-select:none; }
.chronology-current-label { z-index:5; }
.chronology-cursor::after { content:""; position:absolute; left:-10px; top:0; bottom:0; width:20px; }
.chronology-current-label:focus-visible { outline:2px solid var(--v4-primary); outline-offset:3px; }
#chronology-content.is-dragging-date, #chronology-content.is-dragging-date * { cursor:ew-resize; user-select:none; }

/* Previsioni: intestazione originale, widget contenuti nella sua unica riga. */
.tab[data-view="chronology-view"] { display:none !important; }
#alerts-view .alerts-forecast-panel { container:forecast-panel / inline-size; }
#alerts-view .alerts-forecast-panel > .alerts-dashboard-heading { position:relative; flex-shrink:0; gap:24px; }
#alerts-view .alerts-forecast-panel > .alerts-dashboard-heading > p { flex-shrink:0; white-space:nowrap; }
#forecast-chronology-widgets { display:flex; align-items:center; gap:18px; flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
#forecast-chronology-widgets::-webkit-scrollbar { display:none; }
#forecast-chronology-widgets[hidden],#forecast-chronology-navigation[hidden],#forecast-chronology-host[hidden],#alerts-forecast-list[hidden] { display:none !important; }
#forecast-chronology-widgets .forecast-chronology-toggle { display:flex; align-items:center; flex-shrink:0; gap:8px; min-height:0; margin:0; padding:0; border:0; border-radius:0; background:transparent; font:600 12px var(--ui-font-text); cursor:pointer; }
#forecast-chronology-widgets .forecast-chronology-toggle > span:first-child { font:600 14px/1.2 var(--ui-font-heading); }
#forecast-chronology-navigation { display:flex; flex:1; align-items:center; justify-content:space-between; gap:18px; min-width:max-content; }
.forecast-train-navigation { display:flex; align-items:center; gap:5px; margin-inline:auto; }
#forecast-chronology-navigation > .chronology-navigation { margin-left:auto; }
@container forecast-panel (min-width:960px) {
  .forecast-train-navigation { position:absolute; left:50%; transform:translateX(-50%); margin:0; }
}
#forecast-chronology-widgets :is(button,select) { box-sizing:border-box; height:26px; min-height:26px; padding:2px 7px; border:1px solid var(--v4-line-strong); border-radius:4px; background:#fff; color:var(--v4-ink); font:600 12px var(--ui-font-text); }
#forecast-chronology-widgets button { min-width:26px; cursor:pointer; }
#forecast-chronology-widgets button:not([data-chronology-scroll="today"]) { font-size:18px; line-height:20px; font-weight:400; }
#forecast-chronology-widgets button:disabled { opacity:.4; cursor:default; }
#forecast-chronology-widgets button:hover:not(:disabled) { border-color:var(--v4-primary); background:var(--v4-hover); }
#forecast-chronology-widgets :is(button,select):focus-visible { outline:2px solid var(--v4-primary); outline-offset:-2px; }
#forecast-chronology-train { width:140px; }
#forecast-chronology-position { min-width:45px; margin-left:5px; white-space:nowrap; color:var(--v4-muted); font:12px var(--ui-font-text); }
#alerts-forecast-list [data-forecast-train][tabindex] { cursor:pointer; }
#alerts-forecast-list [data-forecast-train]:focus-visible { outline:2px solid var(--v4-primary); outline-offset:-2px; }
#forecast-chronology-host { display:flex; flex:1; min-width:0; min-height:0; overflow:hidden; contain:size; }
#forecast-chronology-host #chronology-content { gap:0; min-height:0; overflow:hidden; }
#forecast-chronology-host .chronology-panel { flex:1; min-height:0; padding:0 10px; border:0; border-radius:0; box-shadow:none; overflow:auto; }
#forecast-chronology-host .chronology-scroll { flex:1 0 0; min-height:0; padding-top:0; overflow-x:auto; overflow-y:hidden; }
#forecast-chronology-host .chronology-current-label { top:32px; padding:4px 8px; }
#forecast-chronology-host .chronology-cursor { top:56px; }
#forecast-chronology-host .chronology-point-label { gap:3px; }
#forecast-chronology-host .chronology-point-label :is(strong,b) { font-size:12px; }
#forecast-chronology-host .chronology-point-label small { font-size:11px; }
#forecast-chronology-host .chronology-footer { flex-shrink:0; min-height:22px; padding:2px 12px 4px; }
#forecast-chronology-host .chronology-reading { margin-left:auto; }
#forecast-chronology-host .chronology-notice { flex-shrink:0; margin:4px 0; padding:4px 8px; }
#forecast-chronology-host .chronology-undated { flex-shrink:0; }
@media (max-width:1100px) {
  #forecast-chronology-widgets,#forecast-chronology-navigation { gap:9px; }
  #forecast-chronology-train { width:116px; }
}
