/* v22: compact controls and shared pills. Original shell and availability palette retained. */
[hidden] { display:none !important; }
:root { --location-in:#FFFFFF; --location-in-bg:#323D4B; --location-out:#FFFFFF; --location-out-bg:#627083; }
[data-theme="light"] { --location-in:#FFFFFF; --location-in-bg:#29323E; --location-out:#354252; --location-out-bg:#DFE4EA; }
.st-pill.vehicle-status { width:154px; flex:0 0 auto; justify-content:center; border:0; border-radius:999px; padding:4px 9px; font-size:.82rem; }
.pos-chip,.loc-badge { display:inline-flex; align-items:center; justify-content:center; border:0 !important; border-radius:999px !important; }
.pos-chip.pE,.loc-badge.loc-esterno { background:var(--location-out-bg) !important; color:var(--location-out) !important; }
.pos-chip.pI,.loc-badge.loc-interno { background:var(--location-in-bg) !important; color:var(--location-in) !important; }
.fleet-position { display:flex; justify-content:flex-end; align-items:center; min-width:0; margin-left:auto; text-align:right; }
.fcard { padding:10px 12px; gap:6px; border-left-width:1px; }
.fleet-cards { grid-template-columns:repeat(auto-fill,minmax(370px,1fr)); }
.fcard .fcard-open { border:0; background:none; color:inherit; padding:0; width:100%; font:inherit; text-align:left; cursor:pointer; align-items:center; min-height:44px; }
.fcard .fcard-open { display:grid; grid-template-columns:100px 154px minmax(0,1fr); gap:8px; }
.fcard-id { min-width:0; }
.fcard-id span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fcard .fleet-position { font-size:.78rem; }
.fleet-notes { color:var(--text-secondary); font-size:.85rem; }
.fleet-notes summary { display:block; cursor:pointer; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; min-height:26px; }
.fleet-notes summary::before { content:'▸ '; }
.fleet-notes[open] summary::before { content:'▾ '; }
.fleet-notes[open] summary { white-space:nowrap; }
.fleet-notes>div { white-space:pre-wrap; overflow-wrap:anywhere; }
/* v35: banner del cambio programmato – pastiglia su una riga, X a destra all'interno */
.sched-badge { display:flex; align-items:center; gap:6px; width:100%; max-width:340px; min-width:0; height:26px; box-sizing:border-box;
  padding:0 3px 0 9px; border-radius:999px; border:1px solid color-mix(in srgb, var(--tua-blue) 45%, transparent);
  background:var(--tua-blue-dim); color:var(--tua-blue-light); font-family:var(--font-mono); font-size:.72rem; font-weight:600; line-height:1; white-space:nowrap; }
[data-theme="light"] .sched-badge { color:var(--tua-blue); }
.sched-badge>svg { flex:none; }
.sched-badge .linkish { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-decoration:none; color:inherit; font:inherit; text-align:left; }
.sched-badge .linkish:hover { text-decoration:none; opacity:.8; }
.sched-badge .x { position:relative; flex:none; margin-left:auto; width:20px; height:20px; padding:0; border:0; border-radius:50%; display:grid; place-items:center;
  background:none; color:inherit; opacity:.7; cursor:pointer; }
.sched-badge .x:hover { opacity:1; background:color-mix(in srgb, currentColor 16%, transparent); }
@media (pointer:coarse) { .sched-badge .x::after { content:''; position:absolute; inset:-10px; } }
.sched-row { border:0; padding:6px 8px; }
.action-cell,.page-actions,.fcard-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.compact-toolbar { display:flex; align-items:center; gap:6px; margin-bottom:8px; }
.compact-toolbar .search-wrap { flex:1; min-width:0; }
.compact-toolbar input,.compact-toolbar select { min-width:0; }
.compact-toolbar .btn { flex:none; min-height:42px; }
.compact-toolbar .btn-icon { width:42px; padding:0; }
.availability-toolbar #profile-sel { flex:1; width:0; max-width:380px; }
.log-toolbar select { width:auto; }
.compact-daynav { margin:0 0 10px; gap:4px; }
.fold-section { margin:10px 0; min-width:0; }
.fold-section>summary { cursor:pointer; color:var(--text-secondary); font-weight:600; padding:10px 2px; min-height:44px; border-bottom:1px solid var(--border); margin-bottom:8px; }
.fold-section .day-head { display:none; }
.fold-section .day-sum { grid-column:-2/-1; }
.fold-section .rail { grid-template-columns:repeat(6,minmax(0,1fr)) 104px 165px; }
.history-controls { display:flex; justify-content:flex-end; margin-bottom:8px; }
.projection-controls { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.projection-controls>select { width:auto; max-width:185px; }
.projection-controls .pv-daynav { margin:0 0 0 auto; flex:1; justify-content:flex-end; gap:5px; }
.projection-controls .pv-daynav-label { min-width:0; }
.pv-rowname,.pv-cell,.pv-now { padding-top:4px !important; padding-bottom:4px !important; }
.yard-toolbar { display:flex; gap:8px; align-items:center; margin-bottom:10px; }
.yard-toolbar .chip-filters { flex-wrap:nowrap; gap:5px; }
.yard-card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; margin-bottom:8px; overflow:hidden; }
.yard-card-head { display:flex; align-items:center; gap:8px; padding:4px 10px; min-height:48px; }
.yard-card-head>b { font-size:1.2rem; }
.yard-card-head .track-status-text { font-size:.75rem; }
.yard-actions { margin-left:auto; display:flex; align-items:center; gap:3px; }
.yard-actions .icon-btn { width:40px; height:40px; border:0; background:none; }
.track-vehicle-item { border-radius:999px !important; border:0 !important; font-family:var(--font-main) !important; min-height:38px; line-height:1.2 !important; }
.track-vehicle-item.v-interno { background:var(--location-in-bg) !important; color:var(--location-in) !important; }
.track-vehicle-item.v-esterno { background:var(--location-out-bg) !important; color:var(--location-out) !important; }
.track-vehicle-item .loc-badge { padding:0; font-size:.75rem; min-width:10px; }
.track-vehicle-item:disabled { opacity:1; }
.mob-vsingle { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:0 10px 10px; }
/* One scroll owner; composer remains in the layout, never over action cards. */
body.page-chat { height:var(--chat-viewport,calc(var(--app-viewport-height, 100vh) * 1)); overflow:hidden; padding-bottom:0; }
.page-chat .chat-page { height:calc(var(--chat-viewport,calc(var(--app-viewport-height, 100vh) * 1)) - var(--topbar-h)); min-height:0; padding-top:12px; padding-bottom:0; }
.page-chat .chat-head { flex:none; padding-bottom:6px; }
.page-chat .chat-log { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-bottom:12px; scroll-padding-bottom:12px; }
.page-chat .chat-form { position:static; flex:none; bottom:auto; padding:8px 0 24px; background:var(--bg-primary); }
.page-chat .chat-form textarea { overflow-y:hidden; font:inherit; min-height:46px; height:46px; max-height:140px; }
.page-chat .chat-card { flex:none; max-width:100%; }
.chat-msg { flex:none; }
.chat-email { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; background:var(--bg-elevated); padding:10px; border-radius:10px; }
.chat-tool-result { white-space:pre-wrap; }
.chat-card input,.chat-card select { width:100%; }
.chat-card label { display:block; font-size:.85rem; }
.chat-card .cc-fields { display:grid; gap:8px; }
.guide-content { max-width:850px; }
.guide-content details { padding:12px; margin:8px 0; background:var(--bg-card); border:1px solid var(--border); border-radius:12px; }
.guide-content summary { cursor:pointer; font-weight:600; min-height:32px; }
.guide-content p { margin:8px 0; }
@media(max-width:900px) {
  .fleet-cards { grid-template-columns:minmax(0,1fr); }
  .main-content { padding-top:12px; }
  body[data-title="Flotta"]>.main-content>.page-header,body[data-title="Piazzale"]>.main-content>.page-header { display:none; }
  .mob-search-bar { margin-bottom:6px; gap:6px; }
  .mob-search-input { height:44px; padding-left:35px; }
  .mob-icon-btn { width:44px; height:44px; }
  .mob-chips { margin-bottom:2px; }
  .mob-chips .chip { min-height:40px; }
  .mob-section-header { padding-top:8px; }
  .mob-vehicle-row+.mob-vehicle-row { border-top:1px solid var(--border); }
  .mob-vehicle-row .mob-vehicle-card { display:grid; grid-template-columns:74px 144px minmax(0,1fr) 14px; gap:6px; padding:8px 10px; min-height:58px; border:0; }
  .mob-card-matricola { min-width:0; font-size:1rem; white-space:nowrap; }
  .st-pill.vehicle-status { width:144px;  font-size:.8rem; padding:4px 7px; }
  .mob-card-binario { font-size:.73rem; line-height:1.15; }
  .mob-row-extra { padding:0 10px 7px; }
  .mob-row-extra .mob-card-sub { margin-left:0; }
  .fcard .fcard-open { grid-template-columns:98px 144px minmax(0,1fr); gap:6px; }
  .fcard .fcard-id { min-width:44px; }
  .fcard-id b { font-size:1.12rem; }
  .fcard { padding:8px 10px; }
  .fold-section .rail { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .fold-section .rail .slot { min-width:0; padding:8px; }
  .fold-section .slot-count { font-size:1.5rem; }
  .fold-section .slot-main { gap:5px; }
  .fold-section .slot-of { font-size:.8rem; }
  .fold-section .slot .bullet { width:12px; height:12px; flex:none; }
  .fold-section .now-card,.fold-section .day-sum { grid-column:1/-1; }
  .fold-section .now-card { padding:8px 12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .fold-section .now-dots { display:none; }
  .vrow { grid-template-columns:65px repeat(6,minmax(0,1fr)) 52px; gap:3px; }
  .vrow.head span { font-size:.75rem; letter-spacing:0; }
  .vrow .now-loc { font-size:.7rem; }
  .compact-daynav { width:100%; display:flex; }
  .compact-daynav input[type="date"] { width:0; flex:1; min-width:0; padding:6px; }
  .projection-controls { gap:5px; }
  .projection-controls>select { max-width:125px; padding:5px; font-size:.8rem !important; }
  .projection-controls .pv-daynav { gap:2px; }
  .projection-controls .pv-daynav-label { font-size:.85rem; white-space:nowrap; }
  .projection-controls .pv-daynav-arrow { width:34px; height:40px; min-width:34px; }
  .projection-controls .pv-daynav-today { padding:4px; font-size:.75rem; }
  .pv-rowname .vid b { font-size:.95rem; }
  .pv-rowname .vid span { font-size:.72rem; }
  .yard-toolbar { gap:5px; }
  .yard-toolbar #track-view-toggle { padding:4px 8px; min-height:42px; flex:none; font-size:.8rem; }
  .yard-toolbar .chip { min-height:42px; padding:4px 9px; font-size:.85rem; }
  .mob-vcol .track-vehicle-item { max-width:100%; width:100%; justify-content:center; padding:6px; gap:4px; font-size:.8rem; }
  .track-vehicle-item .tv-sep { display:none; }
  .mob-vsingle .track-vehicle-item { min-width:150px; }
  .page-chat .chat-page { height:calc(var(--chat-viewport,calc(var(--app-viewport-height, 100vh) * 1)) - 56px - var(--bottomnav-h) - env(safe-area-inset-bottom,0px)); padding:8px 12px 0; }
  .page-chat .chat-head-ic { display:none; }
  .page-chat .chat-head p { font-size:.76rem; }
  .page-chat.keyboard-open .bottom-nav { display:none; }
  .page-chat.keyboard-open .chat-page { height:calc(var(--chat-viewport,calc(var(--app-viewport-height, 100vh) * 1)) - 56px); }
  .chat-msg { max-width:94%; }
}
@media(max-width:360px) {
  .fcard .fcard-open { grid-template-columns:65px 130px minmax(0,1fr); gap:4px; }
  .mob-vehicle-row .mob-vehicle-card { grid-template-columns:65px 130px minmax(0,1fr) 12px; gap:4px; padding:7px 8px; }
  .st-pill.vehicle-status { width:130px;  font-size:.72rem; }
  .pos-chip { padding:3px 5px; }
  .yard-toolbar .chip { padding:4px 6px; }
  .yard-toolbar #track-view-toggle { padding:4px 6px; }
  .yard-toolbar #track-view-toggle .ic { display:none; }
}

@media(max-width:360px){.mob-card-matricola{font-size:.88rem}.fcard .fcard-id b{font-size:.92rem}.fcard .fcard-id span{max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* v23: graphite/silver positions, calm track status, stable date controls. */
.yard-toolbar { align-items:center; }
.yard-toolbar .chip-filters { align-items:center; margin:0; padding:0; overflow:visible; }
.yard-toolbar .chip,.yard-toolbar #track-view-toggle { box-sizing:border-box; height:40px; min-height:40px; padding:0 12px; line-height:1; font-size:.85rem; display:inline-flex; align-items:center; justify-content:center; }
.yard-toolbar .chip { border-radius:18px; }
.yard-toolbar #track-view-toggle { border-radius:10px; }
body[data-title="Piazzale"] .track-status-text { color:var(--text-primary); font-size:.76rem; letter-spacing:0; }
.yard-card { border-left:3px solid var(--track-accent,var(--border)); }
[data-track-status="available"] { --track-accent:#22A359; }
[data-track-status="occupied"] { --track-accent:#D8B41A; }
[data-track-status="blocked"] { --track-accent:#DC4545; }
.track-row>td:first-child { border-left:3px solid var(--track-accent,var(--border)); }
body[data-title="Piazzale"] .track-forced { border:0; background:transparent; color:var(--text-secondary); display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:40px; padding:0; margin:0; flex:none; cursor:pointer; vertical-align:middle; }
.track-vehicle-item .loc-badge { background:transparent !important; color:inherit !important; }
.track-vehicle-item .tv-name,.track-vehicle-item .tv-matr { color:inherit !important; }
.track-vehicle-item .status-dot { box-shadow:0 0 0 2px #FFFFFF30; }
.projection-controls .pv-daynav { display:grid; grid-template-columns:40px 210px 40px 52px; gap:4px; align-items:center; flex:none; }
.projection-controls .pv-daynav-arrow,.projection-controls .pv-daynav-today { width:100%; height:40px; min-width:0; border-radius:9px; padding:0; font-family:var(--font-main); letter-spacing:0; text-transform:none; }
.projection-controls .pv-daynav-label { width:100%; min-width:0; }
@media(max-width:900px) {
  .mob-search-input { min-width:0; }
  .yard-toolbar .chip,.yard-toolbar #track-view-toggle { padding:0 10px; }
  .yard-card-head { gap:6px; }
  .yard-actions { gap:0; }
  .yard-actions .icon-btn { width:36px; }
  .projection-controls { display:grid; grid-template-columns:minmax(70px,1fr) auto; gap:6px; }
  .projection-controls>select { width:100%; max-width:125px; height:40px; }
  .projection-controls .pv-daynav { grid-template-columns:32px 87px 32px 42px; gap:3px; }
  .projection-controls .pv-daynav-label { font-size:.76rem; }
  .projection-controls .pv-daynav-arrow { min-width:0; width:32px; }
  .projection-controls .pv-daynav-today { font-size:.73rem; }
  .pv-scroll { touch-action:pan-y pinch-zoom; overflow-x:hidden; }
  .pv-rowname.sortable-col { font-size:.65rem; letter-spacing:0; }
}
@media(max-width:360px) {
  .yard-toolbar .chip,.yard-toolbar #track-view-toggle { padding:0 8px; font-size:.8rem; }
  body[data-title="Piazzale"] .track-status-text { font-size:.68rem; }
  .yard-card-head { gap:4px; padding-left:8px; padding-right:6px; }
  body[data-title="Piazzale"] .yard-card-head .track-forced { min-width:30px; }
  .yard-actions .icon-btn { width:32px; }
}

/* v24: desktop only. Existing mobile layout remains unchanged. */
.desktop-only-controls { display:none; }
.desktop-availability-controls { display:contents; }
/* Event history: metadata gets the full row; the edit control has its own column. */
#modal-events .ev-item { display:grid; grid-template-columns:minmax(0,1fr) max-content 40px; gap:4px 8px; align-items:center; padding:9px 0; }
#modal-events .ev-readonly { grid-template-columns:minmax(0,1fr) max-content; }
#modal-events .ev-when { min-width:0; white-space:normal; }
#modal-events .ev-act .btn { width:40px; min-width:40px; min-height:40px; padding:0; display:grid; place-items:center; }
#modal-events .ev-reason,#modal-events .ev-meta { grid-column:1/-1; min-width:0; }
#modal-events .ev-reason { font-size:.8rem; overflow-wrap:anywhere; }
#modal-events .ev-meta { display:block; width:100%; border:0; background:none; color:var(--text-secondary); padding:2px 0; margin:0; text-align:left; font:inherit; font-size:.72rem; line-height:1.4; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; cursor:pointer; }
#modal-events .ev-meta.expanded { white-space:normal; overflow-wrap:anywhere; }
@media(max-width:900px) {
  #modal-events .modal-body { padding:12px; }
  #modal-events .ev-item { gap:3px 5px; }
  #modal-events .ev-when { font-size:.72rem; }
}
@media(min-width:901px) {
  #desktop-yard-filters { display:flex; align-items:center; gap:12px; }
  body[data-title="Piazzale"] #loc-filter { display:none; }
  body[data-title="Piazzale"] .page-header>.page-actions { display:none; }
  #desktop-track-location { width:auto; min-height:40px; padding:0 10px; font-size:.85rem; }
  #desktop-track-status-filter .chip b,#status-filter .chip b { margin-left:3px; }
  #desktop-track-status-filter .chip.active b,#status-filter .chip.active b { color:inherit; }
  .desktop-track-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:nowrap; gap:6px; }
  .desktop-track-actions .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; height:36px; min-height:36px; white-space:nowrap; margin:0; }
  #tracks-table .track-row>td:last-child { vertical-align:middle; }
  #tracks-table { table-layout:fixed; width:100%; }
  #tracks-table th:nth-child(1) { width:90px; }
  #tracks-table th:nth-child(2) { width:120px; }
  #tracks-table th:nth-child(4) { width:80px; }
  #tracks-table th:nth-child(5) { width:235px; }
  #tracks-table th,#tracks-table td { padding-left:10px; padding-right:10px; }
  #tracks-table .vehicles-split { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  #tracks-table .track-vehicle-item { max-width:100%; min-width:0; box-sizing:border-box; }
  #tracks-table .tv-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #tracks-table .tv-matr,#tracks-table .loc-badge,#tracks-table .status-dot { flex-shrink:0; }
  .desktop-availability-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
  .desktop-availability-controls .availability-toolbar { flex:1; min-width:0; margin:0; }
  .desktop-availability-controls .compact-daynav { flex:none; width:auto; margin:0; align-items:center; }
  .desktop-availability-controls #datepick { width:160px; min-height:42px; }
  .desktop-availability-controls .compact-daynav .btn { min-height:42px; }
}

/* v25: configurable vehicle statuses, with neutral management state. */
.st-pill.vehicle-status.custom-status { background:color-mix(in srgb,var(--status-color) 17%,var(--bg-card,#fff)); color:color-mix(in srgb,var(--status-color) 65%,#111827); border:0; }
[data-theme="dark"] .st-pill.vehicle-status.custom-status {color:color-mix(in srgb,var(--status-color) 60%,#fff);}
.st-pill.custom-status .dot {background:var(--status-color); flex-shrink:0;}
.st-pill.custom-status .status-label {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.status-config-list {display:grid;gap:12px;}
.status-config-row {display:grid;grid-template-columns:minmax(160px,1fr) 76px minmax(165px,1fr) auto;gap:12px;align-items:end;padding:16px;}
.status-config-row .form-group {margin:0;min-width:0;}
.status-config-row input[type="color"] {height:42px;width:100%;padding:4px;cursor:pointer;}
.status-config-row .status-config-note {grid-column:1/-1;font-size:.8rem;color:var(--text-secondary);}
.status-config-preview {display:flex;gap:8px;align-items:center;min-width:0;}
.status-config-preview i {width:12px;height:12px;border-radius:50%;flex:none;}
.status-config-actions {display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin:16px 0;}
@media(max-width:600px){
 .status-config-row {grid-template-columns:minmax(0,1fr) 68px;padding:12px;gap:10px;}
 .status-config-row .status-config-mode {grid-column:1;}
 .status-config-row .status-config-delete {grid-column:2;}
}
.fleet-card-dates {margin:8px 0 0;display:grid;gap:4px;font-size:.8rem;}
.fleet-card-dates > div {display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px;align-items:baseline;}
.fleet-card-dates dt {color:var(--text-secondary);}
.fleet-card-dates dd {margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;}
.fleet-card-note {margin:8px 0 0;font-size:.82rem;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere;}
.status-config-row input[type="color"] {border:1px solid var(--border);border-radius:10px;background:var(--bg-card);}

/* v26: keep status pills compact also inside vertical flex containers. */
.st-pill.vehicle-status {height:auto;min-height:26px;max-width:100%;align-self:center;}
.status-config-fields {border:0;padding:0;margin:0;min-width:0;}
.status-config-row {grid-template-columns:minmax(140px,1.2fr) 64px minmax(165px,1fr) minmax(115px,.7fr) auto;}
.status-access-notice {padding:16px;margin-bottom:16px;}
.status-access-notice p {margin:8px 0;}
@media(max-width:1100px){
 .status-config-row {grid-template-columns:minmax(0,1fr) 68px;}
 .status-config-mode,.status-config-active {grid-column:1/-1;}
 .status-config-row .status-config-mode {grid-column:1/-1;}
 .status-config-row .status-config-delete {grid-column:2;justify-self:end;}
}
@media(min-width:901px){
 #tracks-table .track-state-line {display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
 #tracks-table .track-state-line .track-status-text {white-space:nowrap;}
 #tracks-table .track-state-line .track-forced {flex:none;margin:0;}
 #tracks-table th:nth-child(2),#tracks-table td:nth-child(2) {width:190px;min-width:190px;}
}

@media(min-width:901px){
 #tracks-table th:nth-child(1) {width:110px;}
 #tracks-table td:first-child>strong {white-space:nowrap;}
 #tracks-table th:nth-child(3) {white-space:normal;}
 #tracks-table th:nth-child(3)>span {display:block;}
}

/* v27: one confirmation at a time, with progress and an explicit stop. */
.chat-batch {padding:10px 12px;margin:8px 0;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.82rem;}
.chat-batch>span {flex:1;min-width:140px;}
.chat-batch .btn {min-height:36px;}

.chat-batch.running {position:sticky;top:0;z-index:2;}

/* ============================================================
   v29 – ORDINI DI LAVORO
   Colori categoria (validati per daltonismo, chiaro e scuro):
   correttiva = arancio, preventiva = blu. Il testo resta nei colori
   del testo: il colore sta solo nella pastiglia/segno accanto.
   ============================================================ */
:root { --wo-c:#E0611A; --wo-p:#4F84E8; --wo-c-bg:rgba(224,97,26,.16); --wo-p-bg:rgba(79,132,232,.16); }
[data-theme="light"] { --wo-c:#C2410C; --wo-p:#2563EB; --wo-c-bg:#FFEDD5; --wo-p-bg:#DBEAFE; }

.wo-badge { display:inline-flex; align-items:center; gap:6px; min-height:24px; padding:0 8px 0 3px; border-radius:7px;
  border:1px solid var(--border); background:var(--bg-card); font-family:var(--font-mono); font-size:.8rem; color:var(--text-primary); white-space:nowrap; }
.wo-badge b { display:inline-grid; place-items:center; min-width:18px; height:18px; border-radius:5px; font-size:.7rem; color:#fff; font-family:var(--font-main); }
.wo-badge.wo-correttiva b { background:var(--wo-c); }
.wo-badge.wo-preventiva b { background:var(--wo-p); }
.wo-chips { display:inline-flex; flex-wrap:wrap; gap:4px; }
.wo-k { display:inline-flex; align-items:center; gap:5px; }
.wo-k::before { content:''; width:8px; height:8px; border-radius:2px; background:var(--text-dim); }
.wo-k-c::before { background:var(--wo-c); }
.wo-k-p::before { background:var(--wo-p); }
.wo-dim { color:var(--text-dim); }

/* editor (modulo Flotta e finestra OdL) */
.wo-section { border:1px solid var(--border); border-radius:var(--radius); padding:10px 12px 12px; background:var(--bg-secondary); }
.wo-section > label, .wo-section .mob-label { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.wo-section .wo-ctx { font-weight:400; color:var(--text-dim); font-size:.78rem; }
.wo-rows { display:flex; flex-direction:column; gap:8px; margin:6px 0 8px; }
.wo-row { display:flex; flex-direction:column; gap:6px; padding:8px; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); }
.wo-row-main { display:flex; gap:6px; align-items:center; min-width:0; }
.wo-row-main .wo-number { flex:1; min-width:0; font-family:var(--font-mono); }
.wo-kind button { padding:0 9px; }
.wo-kind button.wo-on-correttiva { box-shadow:inset 0 -3px 0 var(--wo-c), var(--shadow); }
.wo-kind button.wo-on-preventiva { box-shadow:inset 0 -3px 0 var(--wo-p), var(--shadow); }
.wo-row .wo-notes { min-height:42px; resize:vertical; font-size:.88rem; }
.wo-add { align-self:flex-start; }
.wo-ro { list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.wo-ro li { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.wo-ro-notes, .wo-ord-notes { color:var(--text-secondary); font-size:.85rem; white-space:pre-wrap; word-break:break-word; }
.wo-modal-range { margin:0 0 10px; }
@media(max-width:420px){ .wo-kind button { padding:0 7px; font-size:.8rem; } }

/* Flotta: OdL del fermo in corso */
.wo-inline { margin-top:4px; }

/* pagina */
.wo-tabs-row { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.wo-filter-toggle { display:none; margin-left:auto; }
.wo-filter-toggle b:empty { display:none; }
.wo-filter-toggle b { font-family:var(--font-mono); background:var(--tua-blue); color:#fff; border-radius:999px; padding:0 6px; font-size:.75rem; }
.wo-filters { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end; padding:12px; border:1px solid var(--border);
  border-radius:var(--radius); background:var(--bg-card); margin-bottom:12px; }
.wo-f { display:flex; flex-direction:column; gap:4px; min-width:0; }
.wo-f > label, .wo-f-lab { font-size:.78rem; color:var(--text-dim); font-weight:600; }
.wo-f select, .wo-f input { min-height:38px; }
.wo-f-dates { flex-direction:row; align-items:center; gap:6px; }
.wo-f-dates[hidden] { display:none; }
.wo-f-grow { flex:1; min-width:180px; }
.wo-groupbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:4px 0 10px; }
.wo-check { display:flex; align-items:center; gap:6px; font-size:.85rem; color:var(--text-secondary); cursor:pointer; margin-left:auto; }
.wo-check input { width:auto; min-height:0; accent-color:var(--tua-blue); }
.wo-chip-clear { color:var(--text-dim); }
.wo-tot, .wo-group-tot { display:flex; flex-wrap:wrap; gap:4px 12px; font-size:.85rem; color:var(--text-secondary); }
.wo-tot b, .wo-group-tot b { font-family:var(--font-mono); color:var(--text-primary); font-weight:600; }
.wo-summary { margin-bottom:8px; }

.wo-group { border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-card); margin:0 0 10px; overflow:hidden; }
.wo-group .wo-group { margin:8px 10px; border-radius:10px; }
.wo-group > summary { list-style:none; cursor:pointer; display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; padding:10px 14px; min-height:46px; }
.wo-group > summary::-webkit-details-marker { display:none; }
.wo-group > summary::before { content:'▸'; color:var(--text-dim); width:10px; }
.wo-group[open] > summary::before { content:'▾'; }
.wo-group[open] > summary { border-bottom:1px solid var(--border); }
.wo-depth-0 > summary { background:var(--bg-elevated); }
.wo-group-title { font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.wo-group-tot { margin-left:auto; }
.wo-group-body { padding:0; }
.wo-group-body > .form-hint { margin:10px 14px; }
.wo-orphans > summary { color:var(--yellow-light); }

.wo-rows-list { display:flex; flex-direction:column; }
.wo-fermo + .wo-fermo { border-top:1px solid var(--border); }
#wo-list > .wo-rows-list { border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-card); overflow:hidden; }
.wo-fermo-open { width:100%; display:grid; grid-template-columns:minmax(90px,1.1fr) minmax(220px,2fr) 96px minmax(200px,4fr) 24px; gap:12px; align-items:start;
  text-align:left; background:none; border:0; color:inherit; font:inherit; padding:10px 14px; cursor:pointer; }
.wo-fermo-open.is-static { cursor:default; grid-template-columns:minmax(90px,1.1fr) minmax(220px,2fr) 96px minmax(200px,4fr) 40px; }
.wo-fermo-open:hover:not(.is-static) { background:var(--bg-elevated); }
.wo-fermo-open:focus-visible { outline:2px solid var(--tua-blue); outline-offset:-2px; }
.wo-veh { display:flex; flex-direction:column; min-width:0; }
.wo-veh b { font-family:var(--font-mono); }
.wo-veh small, .wo-when small, .wo-days small { color:var(--text-dim); font-size:.75rem; }
.wo-when { display:grid; grid-template-columns:1fr 1fr; gap:8px; font-family:var(--font-mono); font-size:.82rem; }
.wo-when > span { display:flex; flex-direction:column; }
.wo-when small { font-family:var(--font-main); }
.wo-days { display:flex; flex-direction:column; align-items:flex-end; font-family:var(--font-mono); }
.wo-days b { font-size:1rem; }
.wo-days small { white-space:nowrap; }
.wo-ords { display:flex; flex-direction:column; gap:5px; min-width:0; }
.wo-ord { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.wo-go { color:var(--text-dim); align-self:center; }
.wo-open { color:var(--wo-c); font-style:normal; font-weight:600; font-family:var(--font-main); }
.wo-none { color:var(--text-dim); font-style:italic; font-size:.85rem; }
.wo-cont { font-size:.75rem; color:var(--text-dim); }
.wo-fermo.is-cont .wo-veh b, .wo-fermo.is-cont .wo-ord { opacity:.6; }
.wo-fermo.is-empty .wo-veh b { color:var(--text-secondary); }

/* analisi */
.wo-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.wo-kpi { border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-card); padding:12px 14px; display:flex; flex-direction:column; gap:4px; min-width:0; }
.wo-kpi-lab { font-size:.78rem; color:var(--text-dim); font-weight:600; }
.wo-kpi-val { font-family:var(--font-mono); font-size:1.7rem; font-weight:600; line-height:1.1; }
.wo-kpi-sub { font-size:.82rem; color:var(--text-secondary); display:flex; flex-wrap:wrap; gap:4px; }
.wo-kpi-rows { display:flex; flex-direction:column; gap:3px; font-size:.85rem; }
.wo-kpi-rows > span { display:grid; grid-template-columns:1fr auto 64px; gap:6px; align-items:baseline; }
.wo-kpi-rows b { font-family:var(--font-mono); text-align:right; }
.wo-kpi-rows small { color:var(--text-dim); }
.linkish { background:none; border:0; padding:0; color:var(--tua-blue-light); font:inherit; cursor:pointer; text-decoration:underline; }
[data-theme="light"] .linkish { color:var(--tua-blue); }
.wo-panel { border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-card); padding:12px 14px; margin-bottom:12px; position:relative; }
.wo-panel-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; margin-bottom:8px; }
.wo-panel-head h2 { font-size:1rem; margin:0; }
.wo-legend { display:flex; gap:14px; font-size:.82rem; color:var(--text-secondary); margin-left:auto; }
.wo-legend span, .wo-tip span { display:inline-flex; align-items:center; gap:6px; }
.sw-c, .sw-p { width:10px; height:10px; border-radius:3px; display:inline-block; }
.sw-c { background:var(--wo-c); } .sw-p { background:var(--wo-p); }
.wo-chart { position:relative; }
.wo-chart svg { display:block; overflow:visible; }
.wo-grid { stroke:var(--border); stroke-width:1; }
.wo-ax { fill:var(--text-dim); font-size:11px; font-family:var(--font-mono); }
.b-c { fill:var(--wo-c); } .b-p { fill:var(--wo-p); }
.wo-hit { fill:transparent; }
.wo-bar.hover .wo-hit { fill:var(--bg-elevated); opacity:.6; }
.wo-tip { position:absolute; top:0; width:170px; background:var(--bg-elevated); border:1px solid var(--border-bright); border-radius:10px; box-shadow:var(--shadow-lg);
  padding:8px 10px; font-size:.8rem; display:flex; flex-direction:column; gap:3px; pointer-events:none; z-index:2; }
.wo-tip[hidden] { display:none; }
.wo-tip b { font-family:var(--font-mono); }
.wo-chart-table summary { cursor:pointer; font-size:.82rem; color:var(--text-secondary); margin-top:6px; }
.wo-table { width:100%; border-collapse:collapse; font-size:.86rem; }
.wo-table th, .wo-table td { padding:8px 10px; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap; }
.wo-table th { font-size:.75rem; color:var(--text-dim); font-weight:600; }
.wo-table .num { text-align:right; font-family:var(--font-mono); }
.wo-veh-table tbody tr { cursor:pointer; }
.wo-veh-table tbody tr:hover, .wo-veh-table tbody tr:focus-visible { background:var(--bg-elevated); outline:none; }
.th-sort { background:none; border:0; color:inherit; font:inherit; cursor:pointer; padding:0; }
.wo-share { display:inline-flex; align-items:center; gap:8px; }
.wo-share-bar { width:54px; height:6px; border-radius:3px; background:var(--wo-p-bg); overflow:hidden; display:inline-block; }
.wo-share-bar i { display:block; height:100%; background:var(--wo-c); border-radius:3px; }
.wo-open-dot { color:var(--wo-c); font-size:.7rem; }
.wo-method { margin:4px 2px 16px; }
.wo-veh-sum { display:flex; flex-wrap:wrap; gap:8px 20px; margin-bottom:12px; }
.wo-veh-sum > span { display:flex; flex-direction:column; }
.wo-veh-sum small { color:var(--text-dim); font-size:.75rem; }
.wo-veh-sum b { font-family:var(--font-mono); font-size:1.1rem; }
.wo-timeline { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.wo-timeline li { border:1px solid var(--border); border-left:3px solid var(--border-bright); border-radius:10px; padding:8px 10px; display:flex; flex-direction:column; gap:5px; align-items:flex-start; }
.wo-timeline li.is-open { border-left-color:var(--wo-c); }
.wo-tl-head { font-family:var(--font-mono); font-size:.85rem; display:flex; flex-wrap:wrap; gap:4px 10px; width:100%; }
.wo-tl-days { margin-left:auto; font-weight:600; }

@media(max-width:1100px){
  .wo-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wo-fermo-open { grid-template-columns:minmax(80px,1fr) minmax(200px,2fr) 104px minmax(160px,3fr) 20px; }
}
@media(max-width:900px){
  .wo-page .page-header { margin-bottom:.6rem; }
  .wo-page .page-header .page-actions { width:100%; }
  .wo-filter-toggle { display:inline-flex; }
  .wo-filters { display:none; }
  .wo-filters.open { display:flex; }
  .wo-filters .wo-f { flex:1 1 140px; }
  .wo-check { margin-left:0; }
  .wo-group-tot { margin-left:0; width:100%; padding-left:24px; }
  .wo-fermo-open, .wo-fermo-open.is-static { grid-template-columns:1fr auto; grid-template-areas:'veh days' 'when when' 'ords ords'; gap:6px 10px; padding:10px 12px; }
  .wo-veh { grid-area:veh; flex-direction:row; align-items:baseline; gap:8px; }
  .wo-days { grid-area:days; flex-direction:row; align-items:baseline; gap:4px; }
  .wo-when { grid-area:when; }
  .wo-ords { grid-area:ords; }
  .wo-go { display:none; }
  .wo-fermo-open.is-static > .icon-btn { position:absolute; right:10px; bottom:10px; }
  .wo-fermo { position:relative; }
  .wo-group .wo-group { margin:6px; }
  .wo-kpi-val { font-size:1.4rem; }
  .wo-legend { margin-left:0; }
}
@media(max-width:420px){ .wo-kpis { grid-template-columns:1fr 1fr; } .wo-kpi:nth-child(n+3) { grid-column:span 2; } .wo-kpi-val { font-size:1.25rem; } }
@media(max-width:480px){ .wo-row-main { flex-wrap:wrap; } .wo-row-main .wo-kind { width:100%; } .wo-row-main .wo-kind button { flex:1; } }

/* ============================================================
   v30 – MODULO DEL ROTABILE, FERMI, DOCUMENTI, STORICO
   ============================================================ */
.vmodal { max-width:620px; }
.vm-title { display:flex; align-items:center; gap:10px; flex-wrap:wrap; min-width:0; }
.vm-hint { background:var(--bg-secondary); border-radius:var(--radius-sm); padding:.55rem .8rem; margin:0 0 .8rem; }
.vm-sec { display:flex; flex-direction:column; gap:12px; padding:0 0 14px; margin:0 0 14px; border-bottom:1px solid var(--border); }
.vm-sec:last-child { border-bottom:0; margin-bottom:0; padding-bottom:0; }
.vm-sec .form-group, .vm-doc .form-group { margin:0; }
.vm-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:start; }
.vm-pos { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.vm-lr { display:flex; min-height:42px; }
.vm-lr button { flex:1; min-height:34px; padding:0 14px; }
.vm-lr button.on { color:var(--tua-blue-light); }
[data-theme="light"] .vm-lr button.on { color:var(--tua-blue); }
@media(max-width:560px){ .vm-grid:not(.vm-pos) { grid-template-columns:1fr; } }

/* scheda del fermo: rosso ritiro, verde riammissione, ambra fermo in corso */
.vm-doc { --dc:var(--yellow-light); --db:var(--yellow-bg); border:1px solid color-mix(in srgb, var(--dc) 45%, transparent);
  background:color-mix(in srgb, var(--db) 70%, var(--bg-card)); border-radius:var(--radius); padding:12px 14px;
  display:flex; flex-direction:column; gap:12px; margin:0 0 14px; }
.vm-doc-ritiro { --dc:var(--red); --db:var(--red-bg); }
.vm-doc-ritorno { --dc:var(--green); --db:var(--green-bg); }
.vm-doc-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.vm-doc-head b { font-size:.98rem; }
.vm-doc-ic { width:28px; height:28px; border-radius:8px; display:grid; place-items:center; background:var(--dc); color:#fff; flex:none; }
.vm-doc-since { margin-left:auto; font-family:var(--font-mono); font-size:.8rem; color:var(--text-secondary); }
.vm-num { display:grid; grid-template-columns:minmax(0,1fr) 92px auto; gap:8px; align-items:end; }
.vm-num input { font-family:var(--font-mono); font-weight:600; }
.vm-year input { text-align:center; }
.vm-sugg { min-height:42px; border-style:dashed; color:var(--dc); background:var(--bg-card); white-space:nowrap; }
.vm-ro { display:flex; align-items:baseline; gap:10px; font-size:.9rem; color:var(--text-secondary); }
.vm-ro b { color:var(--text-primary); }
.vm-wo-lab { font-size:.82rem; font-weight:600; color:var(--text-secondary); margin-bottom:-6px; }
.vm-doc .wo-rows { margin-top:0; }
.vm-doc .wo-row { background:var(--bg-card); }
@media(max-width:420px){ .vm-num { grid-template-columns:minmax(0,1fr) 78px; } .vm-sugg { grid-column:1/-1; } }

.vm-foot { align-items:center; flex-wrap:wrap; }
.vm-grow { flex:1; }
.vm-email { display:flex; align-items:center; gap:6px; font-size:.86rem; color:var(--text-secondary); cursor:pointer; }
.vm-email input { width:auto; min-height:0; accent-color:var(--tua-blue); }
.vm-mfoot-extra { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.vm-mfoot-extra:not(:has(:not([hidden]))) { display:none; }
.mob-btn-save.is-ritiro { background:var(--red); }
.mob-btn-save.is-ritorno { background:var(--green); }
.mob-sheet-header .vm-title { flex:1; }
#mobile-sheet .vm-sec { padding-bottom:12px; margin-bottom:12px; }

/* pulsanti Ritira / Riammetti */
.vm-act { font-weight:600; }
.vm-act-ritiro { color:var(--red-light); border-color:color-mix(in srgb, var(--red) 50%, transparent); background:var(--red-bg); }
.vm-act-ritorno { color:var(--green-light); border-color:color-mix(in srgb, var(--green) 50%, transparent); background:var(--green-bg); }
.mob-fermo-acts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 10px; }
.mob-fermo-acts .btn { min-height:44px; justify-content:center; }
.pick-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
.pick-card { display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm);
  background:var(--bg-card); color:inherit; font:inherit; text-align:left; cursor:pointer; }
.pick-card:hover { border-color:var(--tua-blue); }
.pick-card b { font-size:1.1rem; }
.pick-card > span:not(.status-badge) { font-size:.8rem; color:var(--text-secondary); }
.pick-card small { font-size:.75rem; color:var(--text-secondary); }

/* decorrenza e previsione: tutto alla stessa altezza */
.dec-trigger { min-height:42px; border-radius:10px; font-family:var(--font-main); font-size:.95rem; padding:0 12px; font-variant-numeric:tabular-nums; }
.dec-panel { padding:10px; display:flex; flex-direction:column; gap:8px; }
.dec-row + .dec-row { margin-top:0; }
.dec-days { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.dec-pick { display:grid; grid-template-columns:1fr 1fr auto; gap:6px; }
.dec-slots { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }
.dec-chip, .dec-clear { min-height:36px; font-family:var(--font-main); font-size:.85rem; font-variant-numeric:tabular-nums; padding:0 6px; border-radius:8px; }
.dec-date, .dec-time { min-height:36px !important; height:36px; font-family:var(--font-main); font-size:.88rem; padding:0 8px; min-width:0; border-radius:8px !important; }
.dec-lab { margin:2px 0 -2px; font-family:var(--font-main); letter-spacing:.06em; }
@media(max-width:520px){ .dec-slots { grid-template-columns:repeat(3,1fr); } }

/* finestra Documento */
.doc-modal .modal { max-width:640px; }
.doc-pick { margin-bottom:12px; flex-wrap:wrap; }
.doc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; }
.doc-grid .form-group { margin:0; }
.doc-grid .doc-wide { grid-column:1/-1; }
.doc-grid textarea { min-height:56px; }
.doc-checks { display:flex; flex-direction:column; gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid var(--border); }
.doc-check { display:flex; align-items:center; gap:8px; font-size:.9rem; cursor:pointer; }
.doc-check input { width:auto; min-height:0; accent-color:var(--tua-blue); }
@media(max-width:560px){ .doc-grid { grid-template-columns:1fr; } }

/* storico del rotabile */
.hist-modal { max-width:760px; }
.hist-tabs { margin-bottom:12px; }
.btn-hist { padding:0 8px; }
.hist-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.hist-table th { text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); padding:6px 8px; border-bottom:1px solid var(--border); }
.hist-table td { padding:8px; border-bottom:1px solid var(--border); vertical-align:top; }
.hist-future td { opacity:.7; }
.hist-tag { font-family:var(--font-main); font-size:.72rem; color:var(--yellow-light); }
.hist-fermo { border:1px solid var(--border); border-left:3px solid var(--border-bright); border-radius:10px; padding:10px 12px; margin-bottom:8px; display:flex; flex-direction:column; gap:8px; }
.hist-fermo.open { border-left-color:var(--red); }
.hist-fermo-head { display:flex; flex-wrap:wrap; gap:4px 14px; align-items:baseline; }
.hist-key { font-weight:600; }
.hist-dates { font-family:var(--font-mono); font-size:.82rem; color:var(--text-secondary); }
.hist-none, .fe-none { color:var(--yellow-light); font-family:var(--font-main); font-weight:500; font-size:.85rem; }
.hist-odl { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:5px; }
.hist-odl li { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; font-size:.88rem; }
.hist-odl li span:not(.wo-badge):not(.wo-badge span) { color:var(--text-secondary); }
.hist-act { display:flex; gap:6px; flex-wrap:wrap; }
.hist-act:empty { display:none; }

/* ordini di lavoro: numero di ritiro, vista Fermi, da abbinare */
.wo-fermo-open { grid-template-columns:minmax(90px,1fr) 96px minmax(220px,2fr) 96px minmax(200px,4fr) 24px; }
.wo-key { display:flex; flex-direction:column; font-family:var(--font-mono); font-size:.88rem; }
.wo-key small { font-family:var(--font-main); color:var(--text-dim); font-size:.75rem; }
.wo-key em { color:var(--text-dim); font-style:normal; }
@media(max-width:1100px){ .wo-fermo-open { grid-template-columns:minmax(80px,1fr) 90px minmax(200px,2fr) 104px minmax(160px,3fr) 20px; } }
@media(max-width:900px){
  .wo-fermo-open, .wo-fermo-open.is-static { grid-template-columns:1fr auto auto; grid-template-areas:'veh key days' 'when when when' 'ords ords ords'; }
  .wo-key { grid-area:key; flex-direction:row; gap:4px; align-items:baseline; }
  .wo-key small { display:none; }
}
.wo-count { font-family:var(--font-mono); background:var(--yellow-bg); color:var(--yellow-light); border-radius:999px; padding:0 7px; font-size:.78rem; }
.fe-wrap { border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-card); }
.fe-table { width:100%; border-collapse:collapse; font-size:.88rem; min-width:820px; }
.fe-table th { text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); padding:10px 12px; border-bottom:1px solid var(--border); white-space:nowrap; }
.fe-table td { padding:10px 12px; border-bottom:1px solid var(--border); vertical-align:top; }
.fe-table tr:last-child td { border-bottom:0; }
.fe-table tbody tr { cursor:pointer; }
.fe-table tbody tr:hover { background:var(--bg-elevated); }
.fe-table .num { text-align:right; white-space:nowrap; }
.fe-key { font-weight:600; white-space:nowrap; }
.fe-dates { white-space:nowrap; font-size:.82rem; }
.fe-table .wo-ord + .wo-ord { margin-top:4px; }
.unl-list { display:flex; flex-direction:column; gap:6px; }
.unl-row { display:flex; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; flex-wrap:wrap; }
.unl-txt { flex:1; min-width:160px; display:flex; flex-direction:column; }
.unl-txt small { color:var(--text-secondary); font-size:.8rem; }
.wo-modal-nums { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.wo-modal-nums .form-group { margin:0; }
#modal-wo .modal-footer { flex-wrap:wrap; }
.tpl-row { cursor:default; }
.tpl-act { display:flex; gap:4px; margin-left:auto; }
.tpl-cat { columns:2; font-size:.85rem; padding-left:18px; }
.tpl-cat code { font-family:var(--font-mono); }
@media(max-width:560px){ .tpl-cat { columns:1; } }
.fe-cp { display:block; font-size:.75rem; color:var(--text-dim); margin-top:2px; }
.nw-link { margin-top:16px; }
/* filtri OdL: etichette e controlli alla stessa altezza */
.wo-f > label, .wo-f-lab { display:block; margin:0; line-height:1.3; }
.wo-filters .seg { min-height:38px; padding:2px; align-items:stretch; }
.wo-filters .seg button { min-height:0; }
#desktop-view label > input[type="checkbox"] { margin:0; }
/* assistente: ritiri, riammissioni e OdL */
.cc-fermo { --dc:var(--yellow-light); border:1px solid color-mix(in srgb, var(--dc) 40%, transparent); border-radius:10px; padding:8px 10px; margin-top:8px; display:flex; flex-direction:column; gap:8px; }
.cc-fermo-ritiro { --dc:var(--red); } .cc-fermo-ritorno { --dc:var(--green); }
.cc-num { display:grid; grid-template-columns:minmax(0,1fr) 84px auto; gap:6px; align-items:end; }
.cc-num label { display:flex; flex-direction:column; gap:3px; font-size:.78rem; color:var(--text-secondary); margin:0; }
.cc-num input { min-height:38px; font-family:var(--font-mono); }
.cc-num .btn { min-height:38px; }
.cc-odl { display:flex; flex-direction:column; gap:4px; }
.cc-odl > div { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; font-size:.88rem; }
.cc-odl span:not(.wo-badge):not(.wo-badge span) { color:var(--text-secondary); }
@media(max-width:420px){ .cc-num { grid-template-columns:minmax(0,1fr) 76px; } .cc-num .btn { grid-column:1/-1; } }

/* ============================================================
   v31 – riammissione, iter del fermo, Fermi (Ordini di lavoro)
   ============================================================ */
/* pastiglie C/P tenui: rosso chiaro e azzurro chiaro */
:root { --wo-c-soft:rgba(248,113,113,.18); --wo-c-ink:#FCA5A5; --wo-p-soft:rgba(96,165,250,.18); --wo-p-ink:#93C5FD; --it:#5B8DEF; }
[data-theme="light"] { --wo-c-soft:#FCE1E1; --wo-c-ink:#B4232A; --wo-p-soft:#DCEEFF; --wo-p-ink:#1F67B5; --it:#1D4ED8; }
.wo-badge.wo-correttiva b { background:var(--wo-c-soft); color:var(--wo-c-ink); }
.wo-badge.wo-preventiva b { background:var(--wo-p-soft); color:var(--wo-p-ink); }
.wo-badge b { font-weight:700; }

/* Flotta: orologio del cambio programmato, pulsante Riammetti */
.sched-clock { display:inline-flex; color:var(--tua-blue-light); margin-left:4px; vertical-align:-2px; flex:none; }
.mob-card-matricola { display:inline-flex; align-items:center; overflow:hidden; }
.vm-act-riamm { color:var(--tua-blue-light); border-color:color-mix(in srgb, var(--tua-blue) 50%, transparent); background:var(--tua-blue-dim); }
.mob-fermo-acts { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
.mob-fermo-acts .btn { padding:0 6px; white-space:nowrap; }
.pick-done { color:var(--green-light) !important; font-weight:600; }
.vm-riamm { display:flex; align-items:center; gap:8px; margin:8px 0 4px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); font-size:.88rem; }
.vm-riamm-ic { color:var(--tua-blue-light); display:inline-flex; }
.vm-riamm-txt { flex:1; min-width:0; }
.vm-riamm-warn { color:var(--yellow-light); font-weight:600; }
.vm-riamm .btn { flex:none; }

/* finestre a pagina intera sul telefono (dettaglio del fermo, riammissione) */
.page-modal .modal { max-width:720px; width:100%; display:flex; flex-direction:column; max-height:calc(var(--app-viewport-height, 100vh) * 0.92); }
.page-modal .modal-body { overflow:auto; flex:1; }
.page-head { justify-content:flex-start; gap:6px; }
.page-head-txt { display:flex; flex-direction:column; min-width:0; }
.page-head-txt small { color:var(--text-secondary); font-size:.85rem; font-weight:400; }
@media(max-width:900px){
  .page-modal.modal-overlay { padding:0; align-items:stretch; }
  .page-modal .modal { max-width:none; height:100%; max-height:none; border-radius:0 !important; }
  .page-modal .modal-header { padding-top:calc(10px + env(safe-area-inset-top, 0)); }
  .page-modal .modal-footer { padding-bottom:calc(12px + env(safe-area-inset-bottom, 0)); }
}

/* dettaglio del fermo: iter, tempi */
.fd-body { display:flex; flex-direction:column; gap:20px; }
.fd-sec { margin:0; }
.fd-h { font-size:.75rem; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; margin:0 0 10px; }
.it-steps { list-style:none; margin:0; padding:0; }
.it-step { display:grid; grid-template-columns:30px minmax(0,1fr); column-gap:12px; }
.it-rail { display:flex; flex-direction:column; align-items:center; }
/* v35: linea blu continua verso i documenti esistenti, tratteggiata verso quelli da compilare */
.it-rail::after { content:''; flex:1; width:2px; min-height:12px; background:var(--it); }
.it-step.seg-dash .it-rail::after { background:repeating-linear-gradient(to bottom, var(--it) 0 5px, transparent 5px 10px); }
.it-step.last .it-rail::after { display:none; }
.it-ball { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem;
  border:2px solid var(--it); color:var(--it); background:var(--bg-card); box-sizing:border-box; }
.it-step.done .it-ball { background:var(--it); color:#fff; }
/* v35: documento futuro (programmato) → bordo tratteggiato e riempimento a righe */
.it-step.is-future .it-ball { border-style:dashed; background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--it) 30%, var(--bg-card)) 0 3px, var(--bg-card) 3px 6px); }
.it-step.is-future .it-ball svg { background:var(--bg-card); border-radius:50%; }
.it-body { padding:2px 0 16px; min-width:0; }
.it-top { display:flex; gap:10px; align-items:flex-start; }
.it-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; font-size:.9rem; color:var(--text-secondary); }
.it-txt b { color:var(--text-primary); font-size:1rem; }
.it-txt .mono { color:var(--text-primary); }
.it-dim { color:var(--text-dim); }
.it-warn { color:var(--yellow-light); font-weight:600; }
.it-act { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; flex:none; }
.fd-bar { display:flex; height:10px; border-radius:5px; overflow:hidden; background:var(--border); }
.fd-bar i:first-child { background:var(--it); }
.fd-bar i:last-child { background:color-mix(in srgb, var(--it) 40%, var(--bg-card)); }
.fd-leg { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 14px; margin-top:8px; font-size:.85rem; color:var(--text-secondary); }
.fd-leg i { display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:5px; }
.fd-leg .k1 { background:var(--it); } .fd-leg .k2 { background:color-mix(in srgb, var(--it) 40%, var(--bg-card)); }
.fd-leg b { color:var(--text-primary); }
.fd-fix summary { cursor:pointer; font-size:.88rem; color:var(--text-secondary); }
.fd-fix .wo-modal-nums { margin-top:10px; }

/* riammissione guidata */
.rm-body { display:flex; flex-direction:column; gap:14px; }
.rm-fs { border:0; margin:0; padding:0; min-width:0; display:flex; flex-direction:column; gap:14px; }
.rm-link { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-radius:12px; background:var(--tua-blue-dim); color:var(--text-primary); font-size:.92rem; line-height:1.4; }
.rm-link > svg { color:var(--tua-blue-light); flex:none; margin-top:1px; }
.rm-link > span { flex:1; }
.rm-link .linkish { flex:none; font-weight:600; }
.rm-blk { border:1px solid var(--border); border-radius:12px; padding:12px 14px; background:var(--bg-card); display:flex; flex-direction:column; gap:10px; }
.rm-blk .form-group { margin:0; }
.rm-h { font-size:.75rem; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; margin:0; }
.rm-num { display:grid; grid-template-columns:minmax(0,1fr) 84px auto; gap:8px; align-items:end; }
.rm-when { display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:8px; }
.rm-seg { display:flex; } .rm-seg button { flex:1; }
.rm-blk .doc-checks { margin-top:4px; }
.doc-from { margin-left:8px; font-size:.72rem; font-weight:600; color:var(--tua-blue-light); background:var(--tua-blue-dim); border-radius:999px; padding:1px 8px; white-space:nowrap; }
.doc-req { color:var(--red-light); }

/* Ordini di lavoro: testata su una riga */
.wo-head { flex-wrap:nowrap; }
.wo-actions { flex-wrap:nowrap; }
.wo-actions .btn { white-space:nowrap; }
@media(max-width:900px){
  .wo-page .page-header .page-actions.wo-actions { width:100%; }
  .wo-export { margin-left:auto; width:40px; padding:0 !important; justify-content:center; }
  .wo-export-lab { display:none; }
}
.wo-f-check { align-self:center; margin-left:0; }

/* Fermi: sezioni, schede (struttura fissa) */
.fe-sec-h { display:flex; align-items:baseline; gap:8px; margin:6px 2px 8px; font-size:.78rem; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; }
.fe-sec-h b { color:var(--text-primary); }
.fe-sec-tot { margin-left:auto; text-transform:none; letter-spacing:0; font-weight:600; color:var(--text-secondary); font-size:.85rem; }
#fe-closed-wrap { margin-top:14px; }
.fe-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:0; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.wo-group .fe-cards { border:0; border-radius:0; }
.fe-card { display:flex; flex-direction:column; gap:8px; width:100%; text-align:left; background:var(--bg-card); color:var(--text-primary); font:inherit;
  border:0; border-bottom:1px solid var(--border); border-right:1px solid var(--border); padding:12px 14px; cursor:pointer; min-width:0; }
.fe-card:hover { background:var(--bg-elevated); }
.fe-card:focus-visible { outline:2px solid var(--tua-blue); outline-offset:-2px; }
.fe-r1 { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; }
.fe-card.is-open .fe-r1 { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
.fe-veh { display:flex; align-items:baseline; gap:6px; min-width:0; white-space:nowrap; overflow:hidden; }
.fe-veh b { font-size:1.12rem; }
.fe-veh span { color:var(--text-secondary); font-weight:600; font-size:.92rem; overflow:hidden; text-overflow:ellipsis; }
.fe-num { font-size:.95rem; justify-self:end; color:var(--text-primary); }
.fe-card.is-open .fe-num { justify-self:center; }
.fe-nonum { color:var(--yellow-light); font-weight:700; font-size:.88rem; }
.fe-it { display:inline-flex; align-items:center; gap:3px; justify-self:end; }
.fe-it i { width:10px; height:10px; border-radius:50%; border:2px solid var(--border-bright); box-sizing:border-box; }
.fe-it i.d { background:var(--it); border-color:var(--it); }
.fe-it i.f { border-color:var(--it); border-style:dashed; background:color-mix(in srgb, var(--it) 30%, transparent); }
.fe-it b { width:8px; height:2px; background:var(--border-bright); }
.fe-it b.d { background:var(--it); }
.fe-it b.t { background:repeating-linear-gradient(to right, var(--it) 0 2px, transparent 2px 4px); }
.fe-r2 { display:grid; grid-template-columns:auto auto minmax(0,1fr); gap:12px; font-family:var(--font-mono); font-size:.82rem; color:var(--text-primary); white-space:nowrap; }
.fe-r2 > span { display:flex; flex-direction:column; min-width:0; }
.fe-r2 small { font-family:var(--font-main); font-size:.68rem; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; }
.fe-pv { color:var(--text-dim); }
.fe-days { align-items:flex-end; text-align:right; font-family:var(--font-main); color:var(--text-secondary); font-size:.82rem; }
.fe-of { color:var(--text-dim); }
.fe-r3 { display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; }
.fe-note { flex:1 1 120px; min-width:0; color:var(--text-secondary); font-size:.85rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fe-flag { font-size:.78rem; font-weight:600; color:var(--yellow-light); }
.fe-group > summary { gap:10px; }
.fe-gright { margin-left:auto; display:inline-flex; align-items:center; gap:10px; }
.fe-bar { display:inline-flex; width:56px; height:4px; border-radius:2px; overflow:hidden; background:var(--border); }
.fe-bar i.c { background:color-mix(in srgb, var(--wo-c-ink) 55%, var(--bg-card)); }
.fe-bar i.p { background:color-mix(in srgb, var(--wo-p-ink) 55%, var(--bg-card)); }
.fe-gtot { font-size:.85rem; color:var(--text-secondary); white-space:nowrap; }
@media(max-width:900px){
  .fe-cards { grid-template-columns:1fr; margin:0 -12px; border-radius:0; border-left:0; border-right:0; }
  .wo-group .fe-cards { margin:0; }
  .fe-card { border-right:0; padding:12px 14px; }
  .fe-sec-h { margin-left:0; margin-right:0; }
}
.it-txt .mono { font-size:.88rem; }
.fd-odl-head { display:flex; align-items:baseline; justify-content:space-between; }
.fd-odl-head .linkish { font-weight:600; }

/* Impostazioni → Modelli documenti: campi e caselle (v31) */
.tpl-card { padding:14px 16px; margin-top:1rem; }
.tpl-sec { margin-top:14px; border-top:1px solid var(--border); padding-top:10px; }
.tpl-h { font-size:.75rem; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; margin:0 0 6px; }
/* v35: riga del campo su una linea, colonne fisse condivise con l'intestazione; opzioni raggruppate a destra.
   La disposizione dipende dalla larghezza della sezione (container query), non dello schermo. */
.tpl-sec { container-type:inline-size; }
.tpl-frow { display:grid; grid-template-columns:118px minmax(120px,1fr) 96px 140px 312px; grid-template-areas:"key label type src opts";
  gap:8px; align-items:center; padding:6px 4px; border-bottom:1px solid var(--border); }
.tpl-frow > .tpl-key { grid-area:key; } .tpl-frow > input[data-c="label"] { grid-area:label; } .tpl-frow > select[data-c="type"] { grid-area:type; }
.tpl-frow > .tpl-src, .tpl-frow > .tpl-src2 { grid-area:src; } .tpl-frow > .tpl-opts { grid-area:opts; }
.tpl-frow .tpl-src { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tpl-fhead { padding-top:0; padding-bottom:4px; font-size:.72rem; font-weight:600; color:var(--text-dim); }
.tpl-fhead > span:nth-child(1) { grid-area:key; } .tpl-fhead > span:nth-child(2) { grid-area:label; } .tpl-fhead > span:nth-child(3) { grid-area:type; }
.tpl-fhead > span:nth-child(4) { grid-area:src; } .tpl-fhead > span:nth-child(5) { grid-area:opts; cursor:help; text-align:right; }
.tpl-opts { display:flex; align-items:center; gap:8px; justify-content:flex-end; min-width:0; }
.tpl-opts .tpl-flag { font-weight:400; font-size:.8rem; }
.tpl-opts .icon-btn, .tpl-move .icon-btn { width:30px; min-width:30px; height:30px; min-height:30px; padding:0; }
.tpl-fmt svg { fill:none; }
.tpl-fmt.is-custom { color:var(--tua-blue-light); border-color:var(--tua-blue); background:var(--tua-blue-dim); }
[data-theme="light"] .tpl-fmt.is-custom { color:var(--tua-blue); }
@container (max-width:780px) {
  .tpl-frow { grid-template-columns:118px minmax(0,1fr) 96px 140px; grid-template-areas:"key label type src" "key opts opts opts"; row-gap:4px; }
  .tpl-fhead { grid-template-areas:"key label type src"; } .tpl-fhead > span:nth-child(5) { display:none; }
}
@container (max-width:540px) {
  .tpl-frow { grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-areas:"key key" "label label" "type src" "opts opts"; }
  .tpl-frow .tpl-key { flex-direction:row; align-items:center; gap:8px; }
  .tpl-fhead { display:none; }
  .tpl-opts { justify-content:space-between; flex-wrap:wrap; }
}
.tpl-frow.is-new { background:var(--yellow-bg); border-radius:8px; }
.tpl-frow input[type=text], .tpl-frow select, .tpl-brow select { min-height:36px; height:36px; padding:0 8px; font-size:.88rem; }
.tpl-key { display:flex; flex-direction:column; gap:2px; min-width:0; }
.tpl-key code { font-size:.82rem; overflow:hidden; text-overflow:ellipsis; }
.tpl-new { align-self:flex-start; font-size:.68rem; font-weight:700; color:var(--yellow-light); background:var(--yellow-bg); border:1px solid var(--yellow); border-radius:999px; padding:0 7px; }
.tpl-src { font-size:.82rem; color:var(--text-secondary); }
.tpl-src2 { display:flex; gap:6px; min-width:0; }
.tpl-src2 select, .tpl-src2 input { min-width:0; flex:1; }
.tpl-flag { display:flex; align-items:center; gap:5px; font-size:.82rem; color:var(--text-secondary); white-space:nowrap; cursor:pointer; }
.tpl-flag input { width:auto; min-height:0; accent-color:var(--tua-blue); }
.tpl-move { display:flex; gap:2px; justify-content:flex-end; }
.tpl-brow { display:grid; grid-template-columns:28px minmax(0,1fr) 230px 180px; gap:8px; align-items:center; padding:6px 4px; border-bottom:1px solid var(--border); }
.tpl-bn { color:var(--text-dim); text-align:right; }
.tpl-bctx { font-size:.88rem; min-width:0; }
.tpl-bctx small { color:var(--text-dim); margin-left:4px; }
.tpl-warn { display:flex; gap:8px; align-items:center; padding:8px 10px; border-radius:8px; background:var(--yellow-bg); color:var(--yellow-light); font-size:.88rem; margin:12px 0 0; }
@media(max-width:900px){
  .tpl-brow { grid-template-columns:24px minmax(0,1fr); }
  .tpl-brow select { grid-column:2; }
}
@media(max-width:600px){
  .it-top { flex-direction:column; gap:6px; }
  .it-act { justify-content:flex-start; }
}
.fd-odl-head .linkish { font-size:.88rem; }
@media(max-width:900px){ .wo-head > div:first-child { display:none; } }

/* v32: tabella solo desktop; schede mobile v31 invariate. */
.fe-desktop { display:none; }
.fe-sortbar { display:none; }
.wo-f-grow .search-wrap input { width:100%; min-width:0; }
.fe-open-section > summary { cursor:pointer; list-style:none; padding:4px 0; }
.fe-open-section > summary::-webkit-details-marker { display:none; }
.fe-open-section > summary::before { content:'▸'; width:12px; }
.fe-open-section[open] > summary::before { content:'▾'; }
.tpl-removed { margin-top:12px; color:var(--text-secondary); }
.tpl-removed summary { cursor:pointer; }
.tpl-removed > div { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:5px 0; }
@media(min-width:901px) {
  /* overflow-x:hidden crea un contenitore scroll anche in verticale:
     sticky applicava di nuovo l'offset della barra dentro main. */
  .set-page { overflow:visible; }
  .fe-mobile { display:none; }
  .fe-desktop { display:block; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; background:var(--bg-card); }
  .wo-group .fe-desktop { border:0; border-radius:0; }
  .fe-sortbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 14px; }
  .fe-sortbar label { margin:0; font-size:.85rem; color:var(--text-secondary); }
  .fe-sortbar select { width:auto; min-height:34px; padding:5px 28px 5px 9px; font-size:.85rem; }
  .fe-sortbar .form-hint { margin:0 0 0 auto; }
  .fe-table-scroll { overflow-x:auto; }
  .fe-table { width:100%; min-width:880px; table-layout:fixed; border-collapse:collapse; }
  .fe-col-vehicle { width:10%; } .fe-col-phase { width:17%; } .fe-col-odl { width:31%; } .fe-col-days { width:8%; }
  .fe-table th { padding:10px 12px; text-align:left; font-size:.75rem; font-weight:600; letter-spacing:0; text-transform:none; color:var(--text-secondary); background:var(--bg-elevated); border-bottom:1px solid var(--border); white-space:normal; }
  .fe-table td { padding:12px; vertical-align:top; border-bottom:1px solid var(--border); font-size:.88rem; white-space:normal; }
  .fe-table tr:last-child td { border-bottom:0; }
  .fe-table tbody tr { cursor:pointer; }
  .fe-table tbody tr:hover { background:var(--bg-elevated); }
  .fe-table tbody tr:focus-within { background:var(--bg-elevated); }
  .fe-vehicle-link { display:block; border:0; background:none; padding:0; color:var(--text-primary); font:700 1rem var(--font-mono); cursor:pointer; overflow-wrap:anywhere; }
  .fe-type { display:block; font-size:.78rem; color:var(--text-secondary); margin:2px 0 5px; }
  .fe-doc-number { display:block; font-weight:600; overflow-wrap:anywhere; }
  .fe-doc-empty { color:var(--text-dim); font-weight:400; font-size:.8rem; }
  .fe-doc-date { display:block; font-size:.78rem; font-variant-numeric:tabular-nums; margin-top:4px; }
  .fe-doc-warning { display:block; color:var(--yellow-light); font-size:.75rem; margin-top:4px; }
  .fe-odl-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 8px; margin-bottom:5px; }
  .fe-odl-line:last-child { margin-bottom:0; }
  .fe-odl-note { flex:1 1 120px; min-width:0; font-size:.82rem; color:var(--text-secondary); white-space:pre-wrap; overflow-wrap:anywhere; }
  .fe-table .fe-duration { color:var(--text-secondary); font-size:.78rem; font-weight:400; font-variant-numeric:tabular-nums; }
  .fe-duration .fe-of { display:block; margin-top:3px; }
}

/* v32.1 — zoom locale e avvio senza lampeggio del login */
.app-zoom{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}
.app-zoom input{width:78px;min-width:0;accent-color:#2552d9;padding:0}
.app-zoom button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;min-width:38px;padding:3px}
@media(max-width:600px){.app-zoom label{display:none}.app-zoom input{width:54px}.tb-right{gap:6px}}
.auth-pending .login-card{display:none}
.auth-splash{display:none;position:fixed;inset:0;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:var(--bg,#f5f6fa);z-index:9999}
.auth-pending .auth-splash{display:flex}
.auth-splash p{margin:0;color:var(--text,#233047)}
.login-db{display:flex;justify-content:center;margin-bottom:18px;font-size:12px;gap:6px;align-items:center}
.login-db select{max-width:230px;padding:5px;border:1px solid #ccd1dc;border-radius:6px;background:transparent;color:inherit}

/* Il progetto resta riconoscibile anche su tablet e telefono. */
.tb-brand-txt{display:flex !important;max-width:150px}
.tb-brand-txt small{white-space:normal;overflow-wrap:anywhere}
@media(max-width:1360px){.tb-brand-txt b{display:none}.tb-brand{gap:6px}.tb-brand-txt{max-width:110px}}
@media(max-width:640px){.tb-title{display:none}.topbar{gap:8px}.tb-brand-txt{max-width:85px}.app-zoom{gap:2px}}

/* ============================================================
   v33 – SCHERMATA UNICA DEL FERMO, SEMAFORO OdL, DECORRENZA
   ============================================================ */

/* Decorrenza sempre aperta, a tutta larghezza, senza valore predefinito */
.dec-inline { display:flex; flex-direction:column; gap:8px; min-width:0; }
.dec-inline .dec-sum { display:flex; align-items:center; min-height:42px; padding:0 12px; border:1px solid var(--tua-blue); border-radius:10px;
  background:var(--tua-blue-dim); font-family:var(--font-mono); font-size:.95rem; font-weight:600; font-variant-numeric:tabular-nums; }
.dec-inline .dec-sum .dec-val.dec-empty { color:var(--text-dim); font-family:var(--font-main); font-weight:500; }
.dec-inline .dec-sum:has(.dec-empty) { border-color:var(--border-bright); background:var(--bg-secondary); border-style:dashed; }
.dec-inline .dec-panel { padding:0; border:0; background:none; box-shadow:none; display:flex; flex-direction:column; gap:8px; position:static; }
.dec-inline .dec-days { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
.dec-inline .dec-pick { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px; }
.dec-inline .dec-slots { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.dec-inline .dec-chip { min-height:38px; padding:0 4px; white-space:nowrap; }
.dec-inline .dec-now { border-style:dashed; font-weight:600; }
.dec-inline .dec-date, .dec-inline .dec-time { min-height:38px !important; height:38px; width:100%; }
@media(max-width:520px){ .dec-inline .dec-slots { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:380px){ .dec-inline .dec-days { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* Semaforo OdL: C (rossa) e P (blu) di fianco allo stato, accese se il fermo ha OdL di quel tipo */
.stato-cell { display:flex; align-items:center; gap:10px; flex-wrap:nowrap; }
.sem { display:inline-flex; align-items:center; gap:4px; padding:3px; border:1px solid var(--border); border-radius:999px; background:var(--bg-secondary);
  cursor:pointer; flex:none; font:inherit; transition:border-color .15s, transform .1s; }
.sem:hover { border-color:var(--border-bright); }
.sem:active { transform:scale(.96); }
.sem:focus-visible, .mob-dot:focus-visible { outline:2px solid var(--tua-blue); outline-offset:2px; }
.sem-l { width:20px; height:20px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-main); font-size:.68rem; font-weight:800;
  letter-spacing:0; color:var(--text-dim); background:transparent; border:1.5px solid var(--border-bright); opacity:.55; line-height:1; }
.sem-l.on { opacity:1; color:#fff; border-color:transparent; }
.sem-l.sem-c.on { background:var(--red); box-shadow:none; }
.sem-l.sem-p.on { background:var(--wo-p); box-shadow:none; }
.fcard-odl { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; font-size:.8rem; color:var(--text-secondary); }

/* Telefono: pastiglie cliccabili e pallino OdL */
.mob-hit { background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer; text-align:left; -webkit-tap-highlight-color:transparent; }
.mob-hit:active { opacity:.65; }
.mob-vehicle-row .mob-vehicle-card { display:grid; grid-template-columns:74px 144px minmax(0,1fr) 34px; gap:6px; align-items:center; padding:6px 6px 6px 10px; min-height:58px; border:0; cursor:default; }
.mob-vehicle-card > .mob-hit { min-height:44px; display:inline-flex; align-items:center; }
.mob-vehicle-card > .fleet-position { justify-content:flex-end; }
.mob-vehicle-card > .fleet-position.mob-hit { text-align:right; }
.mob-dotcell { display:flex; justify-content:center; align-items:center; }
.mob-dot { width:34px; height:44px; display:grid; place-items:center; background:none; border:0; padding:0; cursor:pointer; }
.mob-dot i { width:14px; height:14px; border-radius:50%; border:2px solid var(--border-bright); background:transparent; display:block; transition:background .15s; }
.mob-dot.on i { background:var(--wo-p); border-color:var(--wo-p); box-shadow:0 0 0 3px color-mix(in srgb, var(--wo-p) 22%, transparent); }
.fc-hit { background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer; text-align:left; min-height:44px; display:flex; align-items:center; }
.fc-hit:active { opacity:.65; }
.fcard .fcard-open.fcard-top { width:100%; }
@media(max-width:360px){ .mob-vehicle-row .mob-vehicle-card { grid-template-columns:65px 130px minmax(0,1fr) 30px; gap:4px; padding:6px 4px 6px 8px; } .mob-dot { width:30px; } }

/* Schermata unica */
.ff-modal { max-width:760px; }
.ff-body { display:flex; flex-direction:column; gap:14px; }
.ff-sec { display:flex; flex-direction:column; gap:12px; padding:0 0 14px; border-bottom:1px solid var(--border); }
.ff-sec:last-child { border-bottom:0; padding-bottom:0; }
.ff-sec .form-group, .ff-doc .form-group { margin:0; }
.ff-doc { margin:0; }
.ff-doc[hidden] { display:none; }
.vm-doc-riammissione { --dc:var(--tua-blue); --db:var(--tua-blue-dim); }
.ff-h { margin:2px 0 -2px; font-size:.75rem; font-weight:700; color:var(--text-secondary); text-transform:uppercase; letter-spacing:.06em; }
.ff-word { display:flex; flex-direction:column; gap:10px; }
.ff-word:empty { display:none; }
.ff-word .doc-grid { margin-top:0; }
.ff-doc .doc-grid .form-group input, .ff-doc .doc-grid .form-group textarea, .ff-doc .doc-grid .form-group select { background:var(--bg-card); }
.ff-foot { align-items:center; flex-wrap:wrap; gap:8px; }
.ff-foot .btn { white-space:nowrap; }
.ff-foot .btn svg { margin-right:6px; vertical-align:-3px; }
.ff-foot .btn-danger, .ff-foot .btn-success { color:#fff; }
@media(max-width:560px){
  .ff-foot { display:grid; grid-template-columns:1fr 1fr; }
  .ff-foot .vm-grow { display:none; }
  .ff-foot .vm-email { grid-column:1/-1; }
  .ff-foot #ff-word, .ff-foot #ff-save:only-of-type { grid-column:1/-1; }
  .ff-foot .btn { justify-content:center; min-height:46px; }
  .ff-foot #ff-word { order:-1; }
  .ff-foot #ff-rm-del { grid-column:1/-1; order:9; }
}
.ff-open-doc { align-self:flex-start; }

/* posizione: foglio che sale dal basso sul telefono */
.ff-move { max-width:420px !important; }
@media(max-width:900px){
  .ff-sheet.modal-overlay { padding:0; align-items:flex-end; }
  .ff-sheet .modal.ff-move { max-width:none; width:100%; height:auto; max-height:80vh; border-radius:18px 18px 0 0 !important; }
  .ff-sheet .modal-footer { padding-bottom:calc(12px + env(safe-area-inset-bottom, 0)); }
}

/* Ordini di lavoro: sezioni espandibili */
.fe-closed-section { margin-top:14px; }
.fe-closed-section > summary { padding:4px 0; }
.fe-hid { margin-left:auto; text-transform:none; letter-spacing:0; font-weight:600; font-size:.82rem; }
.fe-hid .linkish { font-size:.82rem; }
.fe-open-none { padding:8px 2px; }
/* v33.1 – campi compatti: valore in primo piano, scorciatoie secondarie. */
.dec.dec-compact { display:block; min-width:0; }
.dec.dec-compact .dec-panel { display:flex; position:static; flex-direction:column; padding:0; gap:0; margin:0; border:1px solid var(--border-bright); border-radius:10px; background:var(--bg-card); box-shadow:none; overflow:hidden; }
.dec.dec-compact .dec-val { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.dec.dec-compact .dec-pick { display:flex; align-items:center; gap:4px; padding:3px 7px; min-width:0; }
.dec.dec-compact .dec-date,.dec.dec-compact .dec-time { min-width:0; width:0; height:40px; min-height:40px!important; padding:6px; border:0; border-radius:5px; background:transparent; font-family:var(--font-mono); }
.dec.dec-compact .dec-date { flex:1.35; }
.dec.dec-compact .dec-time { flex:.8; }
.dec.dec-compact .dec-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 10px; padding:4px 6px; background:var(--bg-secondary); border-top:1px solid var(--border); }
.dec.dec-compact .dec-days,.dec.dec-compact .dec-slots { display:flex; gap:2px; min-width:0; }
.dec.dec-compact .dec-slots { margin-left:auto; padding-left:8px; border-left:1px solid var(--border); }
.dec.dec-compact .dec-chip { min-height:32px; padding:4px 8px; border:0; border-radius:5px; background:transparent; box-shadow:none; color:var(--text-secondary); font-size:.78rem; white-space:nowrap; }
.dec.dec-compact .dec-chip:hover { background:var(--bg-hover); color:var(--text-primary); }
.dec.dec-compact .dec-chip.on { background:var(--tua-blue-dim); color:var(--tua-blue); }
.dec.dec-compact .dec-now { color:var(--tua-blue); flex:none; }
.dec.dec-compact .dec-clear { flex:none; font-size:1.2rem; min-width:30px; padding:4px; }
.ff-modal .page-head-txt { flex:1; flex-direction:row; align-items:center; gap:12px; flex-wrap:wrap; }
.ff-modal #ff-hist { margin-left:auto; flex:none; }
.ff-doc.vm-doc { background:var(--bg-card); border-color:var(--border); border-left:3px solid var(--dc); }
.ff-doc .vm-doc-head { padding-bottom:9px; border-bottom:1px solid color-mix(in srgb,var(--dc) 22%,var(--border)); }
.ff-doc .vm-doc-ic { background:var(--dc); color:#fff; width:30px; height:30px; border-radius:8px; }
.ff-doc.vm-doc-ritiro { --dc:var(--red); }
.ff-doc.vm-doc-ritorno { --dc:var(--green); }
.ff-doc.vm-doc-riammissione { --dc:var(--tua-blue); }
.wo-rows .wo-row { border:0; padding:0; background:transparent; }
.wo-rows .wo-row-main { display:grid; grid-template-columns:78px 94px minmax(0,1fr) 36px; gap:6px; align-items:start; }
.wo-rows .wo-row-main .wo-kind { width:auto; display:flex; gap:4px; padding:0; border:0; box-shadow:none; background:transparent; }
.wo-kind button[data-kind] { flex:1; min-width:0; padding:0; height:40px; border-radius:7px; border:1px solid var(--border); box-shadow:none; font-weight:700; }
.wo-kind button[data-kind="preventiva"] { background:var(--wo-p-soft); color:var(--wo-p-ink); }
.wo-kind button[data-kind="correttiva"] { background:var(--wo-c-soft); color:var(--wo-c-ink); }
.wo-kind button[data-kind][aria-checked="false"] { opacity:.65; }
.wo-kind button[data-kind][aria-checked="true"] { border:2px solid currentColor; box-shadow:none; }
.wo-rows .wo-number { width:100%; padding:8px; min-height:40px; height:40px; font-size:.85rem; }
.wo-rows .wo-notes { width:100%; min-width:0; height:40px; min-height:40px; padding:9px 10px; line-height:20px; resize:none; white-space:pre; overflow-x:auto; overflow-y:hidden; }
.wo-rows .wo-expanded .wo-notes { white-space:pre-wrap; overflow-wrap:anywhere; overflow-x:hidden; }
.wo-rows .wo-del { width:36px; height:40px; color:var(--text-secondary); }
.wo-rows .wo-del:hover { color:var(--red); background:var(--red-bg); }
.wo-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.ff-word .doc-grid:has(.doc-km-plant) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ff-word .doc-grid .doc-km-plant { grid-column:auto; min-width:0; }
.ff-word .doc-grid .doc-km-plant:has([data-k="km"]) { grid-column:1; }
.ff-word .doc-grid .doc-km-plant:has([data-k="impianto_altro"]) { grid-column:2; }
.quick-time-settings { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
@media(pointer:coarse) {
  .dec.dec-compact .dec-chip { min-height:44px; }
  .wo-kind button[data-kind],.wo-rows .wo-del { min-height:44px; }
  .wo-rows .wo-row-main { grid-template-columns:92px 96px minmax(0,1fr) 44px; }
  .wo-rows .wo-del { width:44px; }
}
@media(max-width:520px) {
  .dec.dec-compact .dec-slots { border-left:0; padding-left:0; }
  .dec.dec-compact .dec-chip { padding-left:6px; padding-right:6px; }
  .wo-rows .wo-row-main { grid-template-columns:76px 80px minmax(0,1fr) 32px; gap:4px; }
  .wo-rows .wo-del { width:32px; }
  .wo-rows .wo-number,.wo-rows .wo-notes { padding-left:5px; padding-right:5px; }
  .ff-modal .page-head-txt { gap:6px; }
  .quick-time-settings { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* v33.2 – separazione fra dati del documento, riferimenti e strumenti. */
.ff-document-fields { display:flex; flex-direction:column; gap:12px; }
.ff-document-fields .ff-h { text-transform:none; letter-spacing:0; font-size:.9rem; color:var(--text-primary); padding-top:4px; }
.ff-fold { border-top:1px solid var(--border); margin:6px 0 0; }
.ff-fold > summary { display:flex; align-items:center; gap:8px; padding:13px 0; cursor:pointer; font-size:.9rem; font-weight:600; list-style:none; }
.ff-fold > summary::-webkit-details-marker { display:none; }
.ff-fold > summary::after { content:'›'; margin-left:auto; font-size:1.2rem; color:var(--text-dim); transform:rotate(0); }
.ff-fold[open] > summary::after { transform:rotate(90deg); }
.ff-fold > summary small { font-size:.76rem; font-weight:400; color:var(--text-secondary); }
.ff-fold-body { display:flex; flex-direction:column; gap:12px; padding:0 0 12px; }
.ff-complete { display:inline-block; width:9px; height:9px; border-radius:50%; flex:none; }
.ff-complete.complete { background:var(--green); }
.ff-complete.missing { background:var(--red); }
.ff-missing { margin:0; font-size:.82rem; color:var(--red); }
.ff-ref-row { display:grid; grid-template-columns:minmax(0,1fr) 92px; gap:10px; }
.ff-ref-row label,.ff-ref-km { display:flex; flex-direction:column; gap:5px; color:var(--text-secondary); font-size:.8rem; }
.ff-ref-row input,.ff-ref-km input { background:var(--bg-secondary); color:var(--text-secondary); font-family:var(--font-mono); }
.ff-service { align-self:flex-start; }
.ff-orders .wo-ro { margin:0; }
.wo-actions { padding-top:7px; border-top:1px solid var(--border); }
.wo-actions .btn.btn-ghost { border-color:transparent; background:transparent; box-shadow:none; color:var(--text-secondary); font-size:.78rem; }
.wo-actions .btn.btn-ghost:hover { background:var(--bg-hover); color:var(--text-primary); }
.wo-rows .wo-row-main .wo-number,.wo-rows .wo-row-main .wo-notes { background:var(--bg-card); border:1px solid var(--border-bright); }
.wo-rows .wo-del { border:0; box-shadow:none; background:transparent; opacity:.7; }
.wo-rows .wo-del:hover { opacity:1; }
.vm-num .vm-sugg { border:0; background:transparent; box-shadow:none; font-size:.8rem; }
.vm-num .vm-sugg:hover { background:var(--bg-hover); }
@media(max-width:420px) {
  .ff-fold > summary { flex-wrap:wrap; }
  .ff-ref-row { grid-template-columns:minmax(0,1fr) 80px; }
}

/* v34: iter più arioso, azioni compatte, programmi */
.fd-modal .it-step:not(.last) .it-body{padding-bottom:1.65rem}.fd-modal .it-act{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.planned-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1rem;border:0;border-bottom:1px solid var(--border);background:transparent;color:inherit;text-align:left;cursor:pointer}.planned-item:hover{background:var(--bg-secondary)}.tpl-format{grid-column:1/-1;display:flex;gap:.7rem;flex-wrap:wrap;padding:.5rem 0}.tpl-format label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.tpl-format input{max-width:140px}.tpl-filename{margin:1rem 0}.tpl-filename input{width:100%}@media(max-width:700px){.planned-item{align-items:flex-start;flex-direction:column;gap:.4rem}.fd-modal .it-act .btn{min-height:36px}.fd-modal .it-top{gap:.5rem}}

/* v35 — popup di formattazione del campo */
.dlg-fmt { max-width:540px; }
.dlg-fmt .dlg-title code { font-size:.95rem; }
.dlg-fmt .dlg-foot { flex-wrap:wrap; }
.fmt-on { display:flex; align-items:center; gap:8px; font-weight:600; color:var(--text-primary); cursor:pointer; }
.fmt-on input { width:18px; height:18px; min-height:0; accent-color:var(--tua-blue); }
.fmt-body { border:0; margin:0; padding:12px; border-radius:12px; background:var(--bg-elevated); display:flex; flex-direction:column; gap:12px; min-width:0; }
.fmt-body:disabled { opacity:.45; }
.fmt-line, .fmt-tri { display:grid; grid-template-columns:92px minmax(0,1fr); align-items:center; gap:10px; font-size:.88rem; }
.fmt-line > label, .fmt-line > span, .fmt-tri > span { color:var(--text-secondary); margin:0; font-size:.85rem; font-weight:600; }
.fmt-size { display:flex; align-items:center; gap:6px; }
.fmt-size input { width:92px; min-height:34px; height:34px; padding:0 8px; }
.fmt-size small { color:var(--text-dim); }
.fmt-sw { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.fmt-sw .sw { width:22px; height:22px; min-height:0; padding:0; border-radius:50%; border:2px solid var(--bg-card); background:var(--sw); box-shadow:0 0 0 1px var(--border-bright); cursor:pointer; }
.fmt-sw .sw.on { box-shadow:0 0 0 2px var(--tua-blue); }
.fmt-sw .sw-none { background:linear-gradient(135deg, transparent 45%, var(--red-light) 45% 55%, transparent 55%), var(--bg-card); }
.fmt-sw .sw-pick { position:relative; width:22px; height:22px; border-radius:50%; overflow:hidden; margin:0; cursor:pointer;
  background:conic-gradient(red, yellow, lime, cyan, blue, magenta, red); box-shadow:0 0 0 1px var(--border-bright); }
.fmt-sw .sw-pick input { position:absolute; inset:0; opacity:0; width:100%; height:100%; padding:0; border:0; cursor:pointer; }
.fmt-sw #fmt-hex { width:82px; margin-left:4px; min-height:30px; height:30px; padding:0 6px; font-size:.82rem; }
.fmt-tri .seg button { min-height:30px; padding:0 10px; font-size:.82rem; }
.fmt-prev { padding:10px 12px; border-radius:8px; background:#fff; color:#111; border:1px dashed var(--border-bright); font-family:Calibri, Arial, sans-serif; font-size:11pt; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fmt-prev.is-off { color:#111 !important; font-size:11pt !important; font-weight:400 !important; font-style:normal !important; }
@media (max-width:600px) { .fmt-line, .fmt-tri { grid-template-columns:1fr; gap:6px; } }

/* ===== v37: righe OdL con apertura della scheda; numero bloccato per gli OdL già esistenti ===== */
.wo-rows .wo-row-main { grid-template-columns:78px 94px minmax(0,1fr) 32px 32px; gap:6px; }
.wo-rows .wo-open,.wo-rows .wo-del { width:32px; height:40px; display:inline-flex; align-items:center; justify-content:center; }
.wo-rows .wo-open { border:0; box-shadow:none; background:transparent; color:var(--tua-blue-light); opacity:.85; cursor:pointer; border-radius:7px; }
.wo-rows .wo-open:hover { opacity:1; background:var(--bg-hover); }
.wo-rows .wo-number.wo-locked { background:var(--bg-elevated) !important; color:var(--text-secondary); cursor:default; }
.fd-odl-head { align-items:center; }
.fd-odl-head .odl-waiting { margin:0; }
@media(pointer:coarse) {
  .wo-rows .wo-row-main { grid-template-columns:92px 96px minmax(0,1fr) 40px 40px; }
  .wo-rows .wo-open,.wo-rows .wo-del { width:40px; min-height:44px; }
}
@media(max-width:520px) {
  .wo-rows .wo-row-main { grid-template-columns:76px 80px minmax(0,1fr) 30px 30px; gap:4px; }
  .wo-rows .wo-open,.wo-rows .wo-del { width:30px; }
}
.odl-waiting[hidden]{display:none!important}

/* v37.4 — tipi di rotabile: colonna del codice allineata; codice del tipo accanto ai rotabili */
.set-table .st-code-col { min-width: var(--code-w, 64px); white-space: nowrap; }
.st-mid.st-mid-row { flex-direction: row; align-items: center; gap: 8px; flex-wrap: wrap; }
.st-code { color: var(--text-dim); font-size: .78rem; }
.form-hint.tf-twin { color: var(--text-secondary); margin: -4px 0 10px; }
@media (max-width: 480px) { .set-table .st-code-col { min-width: 0; white-space: normal; } }
