/* Modal trasferimento esercizi — una superficie di pianificazione, non un form generico. */
.etm-overlay {
  position: fixed;
  z-index: 12050;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 26px;
  background: rgba(5, 9, 19, .72);
  backdrop-filter: blur(12px);
  animation: etm-fade-in .18s ease-out;
}
.etm-open { overflow: hidden; }
.etm-dialog {
  width: min(860px, 100%);
  max-height: min(820px, calc(100vh - 52px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, #60a5fa 30%, var(--border-light));
  border-radius: 22px;
  background: linear-gradient(135deg, color-mix(in srgb, #2563eb 10%, var(--bg-surface-raised)), var(--bg-surface-raised) 36%), var(--bg-surface-raised);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .48), 0 0 0 1px rgba(255, 255, 255, .025) inset;
  animation: etm-lift-in .22s cubic-bezier(.2,.8,.2,1);
}
.etm-head { display:flex; align-items:center; gap:12px; padding:22px 26px 14px; }
.etm-head-icon { width:39px; height:39px; display:grid; place-items:center; border:1px solid color-mix(in srgb, #60a5fa 58%, transparent); border-radius:13px; background:color-mix(in srgb, #3b82f6 18%, transparent); color:#93c5fd; font-size:22px; font-weight:800; }
.etm-head-copy { min-width:0; flex:1; }
.etm-head-copy > span, .etm-panel-kicker { display:block; color:#93c5fd; font-size:10px; font-weight:850; letter-spacing:.105em; line-height:1.2; text-transform:uppercase; }
.etm-head h2 { margin:3px 0 0; color:var(--text-heading); font-size:21px; letter-spacing:-.035em; }
.etm-close { width:34px; height:34px; border:1px solid var(--border-light); border-radius:10px; background:transparent; color:var(--text-secondary); font-size:24px; line-height:1; cursor:pointer; }
.etm-close:hover, .etm-close:focus-visible { border-color:#60a5fa; color:#dbeafe; outline:none; }
.etm-route { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:9px; margin:0 26px; padding:13px; border:1px solid color-mix(in srgb, var(--border-light) 86%, transparent); border-radius:14px; background:rgba(8, 15, 30, .33); }
.etm-route-node { min-width:0; padding:7px 9px; border-radius:10px; color:var(--text-secondary); }
.etm-route-node span { display:block; overflow:hidden; color:var(--text-muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.etm-route-node b { display:block; overflow:hidden; margin-top:2px; color:var(--text-heading); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.etm-route-node.is-origin { background:color-mix(in srgb, #38bdf8 12%, transparent); box-shadow:inset 3px 0 #38bdf8; }
.etm-route-node.is-content { background:color-mix(in srgb, #a78bfa 11%, transparent); box-shadow:inset 3px 0 #a78bfa; }
.etm-route-node.is-ready { background:color-mix(in srgb, #34d399 12%, transparent); box-shadow:inset 3px 0 #34d399; }
.etm-route > i { color:#60a5fa; font-size:18px; font-style:normal; }
.etm-steps { display:flex; gap:18px; padding:16px 26px 0; }
.etm-steps button { display:flex; align-items:center; gap:7px; border:0; border-bottom:2px solid transparent; padding:0 0 10px; background:transparent; color:var(--text-muted); font-size:12px; font-weight:800; cursor:pointer; }
.etm-steps button i { width:18px; height:18px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:10px; font-style:normal; }
.etm-steps button.is-active { border-color:#60a5fa; color:#dbeafe; }
.etm-body { min-height:0; flex:1; overflow:auto; padding:20px 26px 16px; }
.etm-panel-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:17px; }
.etm-panel h3 { margin:4px 0 4px; color:var(--text-heading); font-size:17px; letter-spacing:-.02em; }
.etm-panel p { margin:0; color:var(--text-secondary); font-size:12px; line-height:1.5; }
.etm-count-pill { flex:none; padding:7px 10px; border:1px solid color-mix(in srgb, #a78bfa 36%, var(--border-light)); border-radius:999px; background:color-mix(in srgb, #8b5cf6 12%, transparent); color:#ddd6fe; font-size:11px; font-weight:800; }
.etm-source-sections, .etm-destination-groups { display:grid; gap:10px; }
.etm-source-section, .etm-destination-group { overflow:hidden; border:1px solid var(--border-light); border-radius:14px; background:color-mix(in srgb, var(--bg-surface-sunken) 52%, transparent); }
.etm-source-section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; border-bottom:1px solid color-mix(in srgb, var(--border-light) 72%, transparent); color:var(--text-heading); font-size:12px; font-weight:850; }
.etm-source-section-head button { border:0; background:transparent; color:#93c5fd; font-size:11px; font-weight:800; cursor:pointer; }
.etm-source-section-head button:hover { color:#dbeafe; text-decoration:underline; }
.etm-source-list { display:grid; padding:5px; }
.etm-source-row, .etm-target-day { position:relative; display:flex; align-items:center; gap:10px; min-width:0; border-radius:10px; cursor:pointer; }
.etm-source-row { padding:9px 10px; }
.etm-source-row:hover { background:rgba(255,255,255,.035); }
.etm-source-row.is-selected { background:color-mix(in srgb, #6366f1 15%, transparent); }
.etm-source-row input, .etm-target-day input, .etm-move-toggle input { position:absolute; opacity:0; pointer-events:none; }
.etm-checkmark, .etm-target-dot { width:17px; height:17px; flex:none; border:1px solid var(--border-medium); border-radius:5px; background:var(--bg-surface-raised); }
.etm-source-row input:checked + .etm-checkmark { border-color:#818cf8; background:#6366f1; box-shadow:inset 0 0 0 4px var(--bg-surface-raised); }
.etm-source-copy, .etm-target-copy { min-width:0; flex:1; }
.etm-source-copy b, .etm-target-copy b { display:block; overflow:hidden; color:var(--text-heading); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.etm-source-copy small, .etm-target-copy small { display:block; margin-top:2px; color:var(--text-muted); font-size:10px; }
.etm-link-badge, .etm-target-status { flex:none; color:#c4b5fd; font-size:9px; font-weight:800; }
.etm-source-row.is-linked-child { cursor:default; opacity:.66; }
.etm-progression-note { display:flex; gap:10px; margin-top:15px; padding:11px 12px; border:1px solid color-mix(in srgb, #f59e0b 34%, var(--border-light)); border-radius:12px; background:color-mix(in srgb, #f59e0b 7%, transparent); }
.etm-progression-note > span { color:#fbbf24; font-size:19px; font-weight:900; }
.etm-progression-note p { font-size:11px; }.etm-progression-note b { color:#fde68a; }
.etm-destination-group > header { display:flex; align-items:center; gap:9px; padding:11px 13px; border-bottom:1px solid color-mix(in srgb, var(--border-light) 72%, transparent); }
.etm-block-marker { width:27px; height:27px; display:grid; place-items:center; border-radius:8px; background:color-mix(in srgb, #38bdf8 15%, transparent); color:#7dd3fc; font-size:10px; font-weight:900; }
.etm-destination-group header div { min-width:0; }.etm-destination-group header b { display:block; color:var(--text-heading); font-size:12px; }.etm-destination-group header small { display:block; margin-top:2px; color:var(--text-muted); font-size:10px; }
.etm-target-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; padding:6px; }
.etm-target-day { padding:9px; border:1px solid transparent; }.etm-target-day:hover { border-color:color-mix(in srgb, #38bdf8 42%, var(--border-light)); background:rgba(255,255,255,.035); }.etm-target-day.is-selected { border-color:color-mix(in srgb, #34d399 52%, var(--border-light)); background:color-mix(in srgb, #10b981 12%, transparent); }.etm-target-day.is-unavailable { cursor:not-allowed; opacity:.53; }.etm-target-day.is-unavailable:hover { border-color:transparent; background:transparent; }
.etm-target-dot { border-radius:50%; }.etm-target-day input:checked + .etm-target-dot { border-color:#34d399; background:#34d399; box-shadow:inset 0 0 0 4px var(--bg-surface-raised); }.etm-target-plus { color:#94a3b8; font-size:17px; font-weight:300; }
.etm-move-toggle { display:flex; align-items:center; gap:11px; margin-top:15px; padding:12px; border:1px solid color-mix(in srgb, #f59e0b 28%, var(--border-light)); border-radius:13px; background:color-mix(in srgb, #f59e0b 5%, transparent); cursor:pointer; }.etm-move-toggle > span:last-child { min-width:0; }.etm-move-toggle b { display:block; color:var(--text-heading); font-size:12px; }.etm-move-toggle small { display:block; margin-top:2px; color:var(--text-secondary); font-size:10px; }.etm-switch { width:36px; height:20px; position:relative; flex:none; border:1px solid var(--border-medium); border-radius:999px; background:var(--bg-surface-sunken); transition:.16s ease; }.etm-switch::after { width:14px; height:14px; position:absolute; top:2px; left:2px; border-radius:50%; background:#94a3b8; content:''; transition:.16s ease; }.etm-move-toggle input:checked + .etm-switch { border-color:#f59e0b; background:#92400e; }.etm-move-toggle input:checked + .etm-switch::after { transform:translateX(16px); background:#fcd34d; }
.etm-foot { display:flex; justify-content:flex-end; gap:9px; padding:15px 26px 21px; border-top:1px solid color-mix(in srgb, var(--border-light) 72%, transparent); }.etm-btn { min-height:38px; border:1px solid var(--border-light); border-radius:10px; padding:0 14px; background:var(--bg-surface-sunken); color:var(--text-heading); font-size:12px; font-weight:850; cursor:pointer; }.etm-btn:disabled { cursor:not-allowed; opacity:.45; }.etm-btn--primary { border-color:#3b82f6; background:linear-gradient(135deg,#2563eb,#4f46e5); color:white; }.etm-btn--move { border-color:#d97706; background:linear-gradient(135deg,#b45309,#d97706); color:#fffbeb; }.etm-btn span { margin-left:5px; font-size:15px; }
@keyframes etm-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes etm-lift-in { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } }
@media (max-width: 680px) { .etm-overlay { padding:10px; place-items:end center; }.etm-dialog { max-height:calc(100vh - 20px); border-radius:19px 19px 14px 14px; }.etm-head,.etm-body,.etm-foot { padding-left:16px; padding-right:16px; }.etm-route { margin:0 16px; grid-template-columns:1fr auto 1fr; }.etm-route-node.is-content,.etm-route > i:nth-of-type(2) { display:none; }.etm-steps { padding-left:16px; padding-right:16px; }.etm-panel-intro { gap:10px; }.etm-count-pill { font-size:10px; }.etm-target-list { grid-template-columns:1fr; }.etm-foot { justify-content:stretch; }.etm-btn { flex:1; padding:0 9px; } }
@media (prefers-reduced-motion: reduce) { .etm-overlay,.etm-dialog { animation:none; }.etm-switch,.etm-switch::after { transition:none; } }
