.timeline-icon{margin-right:6px;font-size:14px}
.timeline-meta{font-size:12px;color:#94a3b8;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}
.timeline-meta-list{list-style:none;margin:6px 0 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}
.timeline-meta-list li span{font-weight:600;color:#1e293b;margin-right:4px}
.timeline-action{margin:0}
.btn-link{background:none;border:none;padding:0;color:#1d4ed8;font-size:12px;cursor:pointer;text-decoration:underline}
.btn-link:hover{color:#1e40af}
:root{--bg:#f7f8fb;--card:#ffffff;--muted:#6b7280;--text:#0f172a;--primary:#1f6feb;--ok:#16a34a;--warn:#f59e0b;--danger:#dc2626;--info:#0891b2;--border:#e5e7eb}
*{box-sizing:border-box}
html,body{font-size:16px}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}
.layout{display:flex;min-height:100vh}
.sidebar{
    --sidebar-accent:#6366f1;
    --sidebar-accent-soft:rgba(99,102,241,.14);
    --sidebar-glow:rgba(59,130,246,.22);
    width:280px;
    background:
        radial-gradient(ellipse 120% 80% at 0% 0%,rgba(99,102,241,.12),transparent 55%),
        radial-gradient(ellipse 90% 60% at 100% 100%,rgba(37,99,235,.1),transparent 50%),
        linear-gradient(180deg,#0c1222 0%,#0f172a 42%,#0d1324 100%);
    color:#e5e7eb;
    display:flex;
    flex-direction:column;
    border-right:1px solid rgba(99,102,241,.12);
    box-shadow:4px 0 32px rgba(8,11,22,.45),inset -1px 0 0 rgba(129,140,248,.08);
    position:sticky;
    top:0;
    height:100vh;
    max-height:100vh;
}
.sidebar a{color:#cbd5e1;text-decoration:none}
.sidebar-brand{
    padding:17px 15px 14px;
    border-bottom:1px solid rgba(99,102,241,.1);
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
}
.sidebar-brand::after{
    content:'';
    position:absolute;
    left:16px;
    right:16px;
    bottom:0;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(129,140,248,.35) 20%,rgba(59,130,246,.45) 50%,rgba(129,140,248,.35) 80%,transparent);
    opacity:.7;
}
.sidebar-brand .brand-logo{display:inline-flex;align-items:center;justify-content:center;transition:opacity .25s ease,transform .25s ease}
.sidebar-brand .brand-logo:hover{opacity:.92;transform:scale(1.02)}
.sidebar-brand .logo{width:126px;height:auto;display:block;object-fit:contain;border-radius:0;background:transparent;filter:drop-shadow(0 2px 8px rgba(15,23,42,.4))}

/* ====== Toggle menu mobile (hamburger animato) + overlay ====== */
.sidebar-toggle{
	display:inline-flex;
	width:42px;
	height:42px;
	flex:0 0 auto;
	/* Niente margin-right:auto qui: lo spazio verso destra lo gestisce già
	   .topbar-app__lead (subito dopo), altrimenti i due margini automatici si
	   dividono lo spazio libero e il titolo pagina finisce "centrato" invece
	   di restare allineato a sinistra, incollato all'hamburger. */
	align-items:center;
	justify-content:center;
	padding:0;
	border:1px solid #e2e8f0;
	border-radius:13px;
	background:linear-gradient(180deg,#ffffff,#f8fafc);
	color:#0f172a;
	cursor:pointer;
	box-shadow:0 2px 10px rgba(15,23,42,.07);
	transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .15s ease;
	-webkit-tap-highlight-color:transparent;
}
.sidebar-toggle:hover{background:#f1f5f9;border-color:#cbd5e1;box-shadow:0 4px 14px rgba(15,23,42,.1)}
.sidebar-toggle:active{transform:scale(.93)}
.sidebar-toggle:focus-visible{outline:none;border-color:#818cf8;box-shadow:0 0 0 3px rgba(99,102,241,.28)}
.topbar-app--with-back .sidebar-toggle{margin-right:10px}
.sidebar-toggle__box{position:relative;display:block;width:20px;height:14px}
.sidebar-toggle__line{
	position:absolute;
	left:0;right:0;
	height:2px;
	border-radius:999px;
	background:currentColor;
	transition:top .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),opacity .2s ease,width .3s ease;
}
.sidebar-toggle__line:nth-child(1){top:0}
.sidebar-toggle__line:nth-child(2){top:6px;width:80%}
.sidebar-toggle__line:nth-child(3){top:12px}
.sidebar-toggle:hover .sidebar-toggle__line:nth-child(2){width:100%}
body.sidebar-open .sidebar-toggle{
	background:linear-gradient(135deg,#eef2ff,#ffffff);
	border-color:#c7d2fe;
	color:#4f46e5;
}
body.sidebar-open .sidebar-toggle__line:nth-child(1){top:6px;transform:rotate(45deg)}
body.sidebar-open .sidebar-toggle__line:nth-child(2){opacity:0;transform:translateX(-10px)}
body.sidebar-open .sidebar-toggle__line:nth-child(3){top:6px;transform:rotate(-45deg)}

/* Pulsante di chiusura dentro al drawer (solo mobile) */
.sidebar-close{
	display:none;
	position:absolute;
	top:50%;
	right:12px;
	transform:translateY(-50%);
	width:34px;
	height:34px;
	align-items:center;
	justify-content:center;
	padding:0;
	border:1px solid rgba(148,163,184,.25);
	border-radius:10px;
	background:rgba(148,163,184,.12);
	color:#cbd5e1;
	cursor:pointer;
	transition:background .2s ease,color .2s ease,transform .15s ease,border-color .2s ease;
	-webkit-tap-highlight-color:transparent;
}
.sidebar-close svg{width:18px;height:18px;display:block}
.sidebar-close:hover{background:rgba(99,102,241,.2);border-color:rgba(129,140,248,.5);color:#fff}
.sidebar-close:active{transform:translateY(-50%) scale(.92)}

.sidebar-overlay{
	display:none;
	position:fixed;
	inset:0;
	z-index:998;
	background:radial-gradient(120% 120% at 0% 0%,rgba(30,41,59,.42),rgba(8,11,22,.62));
	-webkit-backdrop-filter:blur(3px);
	backdrop-filter:blur(3px);
	opacity:0;
	pointer-events:none;
	transition:opacity .3s ease;
}

/* ====== Collasso sidebar su desktop (a scelta dell'utente) ====== */
@media (min-width:901px){
	.sidebar{
		transition:width .32s cubic-bezier(.4,0,.2,1),opacity .26s ease,transform .32s cubic-bezier(.4,0,.2,1);
	}
	body.sidebar-collapsed .sidebar{
		width:0;
		min-width:0;
		opacity:0;
		transform:translateX(-16px);
		border-right-color:transparent;
		box-shadow:none;
		pointer-events:none;
		overflow:hidden;
	}
	/* Quando la sidebar è chiusa, l'hamburger resta in evidenza per riaprirla */
	body.sidebar-collapsed .sidebar-toggle{
		background:linear-gradient(135deg,#eef2ff,#ffffff);
		border-color:#c7d2fe;
		color:#4f46e5;
	}
}
.new-item-button-wrapper{position:relative;padding:10px 15px 12px;border-bottom:1px solid rgba(99,102,241,.08)}
.new-item-button{
    width:100%;
    padding:10px 15px;
    background:linear-gradient(135deg,#3b82f6 0%,#4f46e5 48%,#7c3aed 100%);
    border:1px solid rgba(167,139,250,.25);
    border-radius:11px;
    color:#fff;
    font-weight:600;
    font-size:13.5px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s ease,filter .28s ease;
    box-shadow:0 4px 16px rgba(59,130,246,.35),0 0 0 1px rgba(255,255,255,.06) inset;
    position:relative;
    overflow:hidden;
}
.new-item-button::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.2);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}
.new-item-button:hover::before{width:300px;height:300px}
.new-item-button:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 28px rgba(99,102,241,.45),0 0 24px rgba(124,58,237,.2);
    filter:brightness(1.05);
}
.new-item-button:active{transform:translateY(0);box-shadow:0 2px 8px rgba(59,130,246,0.3)}
.new-item-button.active .new-item-button-arrow{transform:rotate(180deg)}
.new-item-button-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1)}
.new-item-button:hover .new-item-button-icon{transform:rotate(90deg) scale(1.1)}
.new-item-button-text{font-weight:600;letter-spacing:0.01em}
.new-item-button-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);margin-left:auto}
.new-item-button-arrow svg{width:100%;height:100%}
.new-item-dropdown{
    max-height:0;
    overflow:hidden;
    background:linear-gradient(165deg,rgba(30,41,59,.95),rgba(15,23,42,.98));
    border:1px solid transparent;
    border-radius:12px;
    box-shadow:0 12px 40px rgba(8,11,22,.5);
    backdrop-filter:blur(12px);
    transition:all .3s cubic-bezier(.4,0,.2,1);
    margin-top:6px;
    opacity:0;
    transform:scale(.97);
}
.new-item-dropdown.active{
    max-height:500px;
    opacity:1;
    transform:scale(1);
    border-color:rgba(99,102,241,.25);
    box-shadow:0 16px 48px rgba(8,11,22,.55),0 0 0 1px rgba(129,140,248,.08);
}
.new-item-dropdown-content{display:flex;flex-direction:column;padding:6px}
.new-item-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:#e2e8f0;text-decoration:none;transition:all 0.2s cubic-bezier(0.4,0,0.2,1);position:relative;overflow:hidden;margin-bottom:2px}
.new-item-option::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--option-color);transform:scaleY(0);transition:transform 0.2s cubic-bezier(0.4,0,0.2,1)}
.new-item-option:hover::before{transform:scaleY(1)}
.new-item-option:hover{background:rgba(59,130,246,0.1);transform:translateX(4px);color:#fff}
.new-item-option:last-child{margin-bottom:0}
.new-item-option-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;transition:transform 0.2s cubic-bezier(0.4,0,0.2,1)}
.new-item-option:hover .new-item-option-icon{transform:scale(1.15) rotate(5deg)}
.new-item-option-icon svg{width:100%;height:100%}
.new-item-option-label{flex:1;font-weight:500;font-size:14px}
.new-item-option-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:0.5;transition:all 0.2s cubic-bezier(0.4,0,0.2,1);flex-shrink:0}
.new-item-option:hover .new-item-option-arrow{opacity:1;transform:translateX(4px)}
.new-item-option-arrow svg{width:100%;height:100%}
.sidebar-nav{
    display:flex;
    flex-direction:column;
    padding:7px 7px 10px;
    flex:1 1 auto;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(99,102,241,.35) transparent;
}
.sidebar-nav::-webkit-scrollbar{width:5px}
.sidebar-nav::-webkit-scrollbar-track{background:transparent;margin:4px 0}
.sidebar-nav::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,rgba(99,102,241,.45),rgba(59,130,246,.35));
    border-radius:999px;
}
.sidebar-nav .nav-section{display:flex;flex-direction:column;margin:5px 0 2px}
.sidebar-nav .nav-section:first-child{margin-top:3px}
.sidebar-nav .nav-title{
    font-size:10px;
    letter-spacing:.11em;
    text-transform:uppercase;
    color:#64748b;
    padding:8px 13px 4px;
    font-weight:600;
    display:flex;
    align-items:center;
    gap:7px;
    line-height:1.3;
}
.sidebar-nav .nav-title::before{
    content:'';
    width:3px;
    height:3px;
    border-radius:50%;
    background:linear-gradient(135deg,#60a5fa,#a78bfa);
    box-shadow:0 0 6px rgba(129,140,248,.6);
    flex-shrink:0;
}
.sidebar-nav .nav-fold{
    width:calc(100% - 14px);
    margin:2px 7px;
    padding:6px 13px;
    border:1px solid transparent;
    border-radius:10px;
    background:transparent;
    cursor:pointer;
    text-align:left;
    font-family:inherit;
    font-size:13.5px;
    font-weight:500;
    line-height:1.35;
    color:#cbd5e1;
    display:flex;
    align-items:center;
    gap:9px;
    transition:background .22s ease,color .22s ease;
}
.sidebar-nav .nav-fold svg{
    width:17px;
    height:17px;
    opacity:.82;
    flex-shrink:0;
}
.sidebar-nav .nav-fold span{flex:1;min-width:0}
.sidebar-nav .nav-fold-chevron{
    width:12px;
    height:12px;
    opacity:.45;
    flex-shrink:0;
    transition:transform .22s ease,opacity .22s ease;
}
.sidebar-nav .nav-fold:hover{
    background:rgba(59,130,246,.08);
    color:#f1f5f9;
}
.sidebar-nav .nav-fold:hover .nav-fold-chevron{opacity:.7}
.sidebar-nav .nav-section--collapsible[data-collapsed="false"] .nav-fold-chevron{
    transform:rotate(180deg);
    opacity:.65;
}
.sidebar-nav .nav-section--collapsible[data-collapsed="false"] .nav-fold{
    color:#e2e8f0;
}
.sidebar-nav .nav-fold.is-open{
    background:rgba(59,130,246,.1);
    color:#e2e8f0;
}
.sidebar-nav .nav-section--collapsible .nav-section-body{
    padding-left:8px;
}
.sidebar-nav .nav-section-body{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    transition:max-height .28s cubic-bezier(.4,0,.2,1),opacity .22s ease;
}
.sidebar-nav .nav-section--collapsible[data-collapsed="true"] .nav-section-body{
    max-height:0;
    opacity:0;
    pointer-events:none;
}
.sidebar-nav .nav-section--collapsible[data-collapsed="false"] .nav-section-body{
    max-height:320px;
    opacity:1;
}
.sidebar-nav .nav-divider{
    height:1px;
    margin:6px 20px 4px;
    background:rgba(99,102,241,.15);
}
.sidebar-nav .nav-subgroup{
    margin:2px 0 4px 16px;
    padding:2px 0 2px 10px;
    border-left:2px solid rgba(99,102,241,.2);
}
.sidebar-nav .nav-section--bottom{
    margin-top:auto;
    padding-top:8px;
    border-top:1px solid rgba(99,102,241,.12);
}
.sidebar-nav a{
    padding:6px 13px;
    border-radius:10px;
    margin:2px 7px;
    display:flex;
    align-items:center;
    gap:9px;
    font-weight:500;
    font-size:13.5px;
    line-height:1.35;
    position:relative;
    transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease;
    border:1px solid transparent;
}
.sidebar-nav a::before{
    content:'';
    position:absolute;
    left:0;
    top:50%;
    width:3px;
    height:0;
    border-radius:0 3px 3px 0;
    background:linear-gradient(180deg,#60a5fa,#818cf8,#a78bfa);
    transform:translateY(-50%);
    transition:height .22s cubic-bezier(.4,0,.2,1),opacity .22s ease;
    opacity:0;
    box-shadow:0 0 12px rgba(129,140,248,.5);
}
.sidebar-nav a:hover{
    background:linear-gradient(90deg,rgba(59,130,246,.12),rgba(99,102,241,.08));
    color:#f8fafc;
    border-color:rgba(99,102,241,.12);
    transform:translateX(2px);
}
.sidebar-nav a:hover::before{height:55%;opacity:.85}
.sidebar-nav a:hover svg{opacity:1;color:#93c5fd}
.sidebar-nav a.active{
    background:linear-gradient(90deg,rgba(59,130,246,.18),rgba(99,102,241,.12) 55%,rgba(124,58,237,.06));
    color:#fff;
    border-color:rgba(129,140,248,.2);
    box-shadow:0 2px 12px rgba(37,99,235,.15),inset 0 1px 0 rgba(255,255,255,.04);
}
.sidebar-nav a.active::before{height:70%;opacity:1}
.sidebar-nav a.active svg{opacity:1;color:#a5b4fc;filter:drop-shadow(0 0 6px rgba(129,140,248,.35))}
.sidebar-nav a svg{
    width:17px;
    height:17px;
    opacity:.82;
    flex-shrink:0;
    transition:opacity .22s ease,color .22s ease,filter .22s ease;
}
.sidebar-nav a span{flex:1;min-width:0}
.sidebar-nav a span.sidebar-nav-badge{flex:0 0 auto}
.sidebar-nav .badge.accent,
.sidebar-nav .badge.accent.sidebar-nav-badge{
    margin-left:auto;
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    padding:0;
    border-radius:50%;
    font-size:14px;
    line-height:1;
    font-weight:800;
    font-variant-numeric:tabular-nums;
    background:linear-gradient(135deg,#3b82f6,#6366f1);
    color:#fff;
    border:none;
    box-shadow:0 0 0 2px rgba(15,23,42,.55),0 2px 10px rgba(99,102,241,.45);
    letter-spacing:0;
}
.sidebar-nav .badge.accent.sidebar-nav-badge--wide{
    width:auto;
    min-width:26px;
    height:26px;
    padding:0 7px;
    border-radius:13px;
    font-size:12px;
}

/* Sub-voci Compiti (Task / Ticket / Progetti) */
.sidebar-nav a.nav-subitem{
    margin:1px 7px 1px 0;
    padding:5px 11px 5px 10px;
    font-size:13px;
    border-radius:8px;
    background:transparent;
    color:#94a3b8;
}
.sidebar-nav a.nav-subitem::before{display:none}
.sidebar-nav a.nav-subitem:hover{
    background:rgba(59,130,246,.08);
    color:#cbd5e1;
    transform:none;
    border-color:transparent;
}
.sidebar-nav a.nav-subitem.active{
    background:rgba(59,130,246,.14);
    color:#e2e8f0;
    border-color:transparent;
    box-shadow:none;
}
.sidebar-nav a.nav-subitem.active svg{
    color:#93c5fd;
    opacity:1;
}
.sidebar-nav a.nav-subitem svg{
    opacity:.75;
}

/* Sezione Amministrazione (voci non cliccabili per ora) */
.nav-disabled-group{
    margin:3px 7px 6px;
    padding:6px 9px 8px;
    border-radius:11px;
    background:rgba(15,23,42,.45);
    border:1px solid rgba(99,102,241,.08);
    backdrop-filter:blur(4px);
}
.nav-disabled-label{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:#64748b;
    margin-bottom:4px;
    font-weight:600;
    line-height:1.25;
}
.sidebar-nav a.nav-disabled{
    cursor:default;
    opacity:.65;
    background:transparent;
    margin:1px 0;
    padding:4px 10px 4px 12px;
    font-size:12.5px;
}
.sidebar-nav a.nav-disabled:hover{
    background:transparent;
    color:#94a3b8;
    transform:none;
    border-color:transparent;
}
.sidebar-nav a.nav-disabled::before{display:none}
#inserisci-materiale-activity, .materiale-from-magazzino-activity {
    width: auto;
  }
/* Righe materiale attività: Data stretta; Cerca/Codice/Qty/Prezzo a rapporto 2:3:2:3; Descrizione = spazio residuo */
.materiale-riga-activity {
    display: grid;
    grid-template-columns: max-content minmax(5.5rem, 7.5rem) minmax(8rem, 11rem) minmax(8rem, 1fr) minmax(5.5rem, 7.5rem) minmax(8rem, 11rem) auto;
    gap: 0.5rem;
    align-items: end;
    padding: 0.75rem;
    background: white;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
}
.materiale-riga-activity > div {
    min-width: 0;
}
.materiale-riga-activity .materiale-data-activity {
    width: 9.5rem;
    max-width: 100%;
    box-sizing: border-box;
}
.materiale-riga-activity .materiale-quantita-activity {
    width: 100%;
    max-width: 5.5rem;
}
.materiale-riga-activity .materiale-prezzo-activity {
    width: 100%;
    max-width: 7.5rem;
}
.materiale-riga-activity .materiale-codice-activity,
.materiale-riga-activity .materiale-nome-activity,
.materiale-riga-activity .materiale-search-activity {
    width: 100%;
    box-sizing: border-box;
}
  .task-card-body p {
    margin: 0;
  }
.content{flex:1;display:flex;flex-direction:column;min-width:0;width:100%}
.topbar{background:transparent}
/* Topbar principale: una riga, elementi allineati al centro verticale */
.topbar-app{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	flex-wrap:wrap;
	gap:12px;
	row-gap:8px;
	min-height:48px;
	padding:10px 20px;
	background:#fff;
	border-bottom:1px solid #e2e8f0;
	position:sticky;
	top:0;
	z-index:100;
	box-sizing:border-box;
}
.topbar-app--with-back{
	justify-content:space-between
}
/* Contenitore del blocco "sinistra" della topbar: back-link + titolo pagina.
   L'auto-margin è qui (non più sul singolo back-link) così i due elementi
   restano incollati e il resto della topbar viene spinto a destra. */
.topbar-app__lead{
	display:flex;
	align-items:center;
	gap:10px;
	margin-right:auto;
	min-width:0;
	overflow:hidden
}
.topbar-app__back{
	display:inline-flex;
	align-items:center;
	gap:.35rem;
	padding:.35rem .55rem;
	border-radius:8px;
	font-size:.8125rem;
	font-weight:600;
	color:#475569;
	text-decoration:none;
	line-height:1.3;
	flex-shrink:0;
	transition:background .15s ease,color .15s ease
}
.topbar-app__back:hover{
	background:#f1f5f9;
	color:#1e293b
}
.topbar-app__back-icon{
	font-size:1rem;
	line-height:1
}
/* Slot generico per il titolo di pagina, spostato qui via JS da [data-page-title].
   Normalizza solo il titolo (h1-h4) del blocco spostato; badge/pill interni
   (es. contatore, stato) mantengono il loro stile originale. */
.topbar-app__title{
	display:flex;
	align-items:center;
	gap:8px;
	min-width:0;
	overflow:hidden;
	color:#0f172a
}
.topbar-app__title:empty{
	display:none
}
.topbar-app__title h1,
.topbar-app__title h2,
.topbar-app__title h3,
.topbar-app__title h4{
	font-size:15px!important;
	font-weight:700!important;
	line-height:1.2!important;
	color:inherit!important;
	margin:0!important;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	max-width:280px
}
.topbar-app__title .subtle{
	font-size:12px!important;
	font-weight:600!important;
	color:#94a3b8!important
}
.topbar-app__end{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:12px;
	row-gap:8px;
	margin-left:auto
}
.topbar-app--with-back .topbar-app__end{
	margin-left:0;
	flex-shrink:0
}
/* Dashboard: saluto + azioni sulla stessa riga della topbar */
.topbar-app--dash{
	justify-content:flex-start;
	gap:12px 16px;
	padding:8px 16px;
	min-height:44px
}
.topbar-app--dash .topbar-app__greet{
	display:flex;
	align-items:baseline;
	flex-wrap:wrap;
	gap:4px 10px;
	margin-right:auto;
	min-width:0
}
.topbar-app--dash .topbar-app__greet-title{
	font-size:.9375rem;
	font-weight:700;
	color:#0f172a;
	line-height:1.25
}
.topbar-app--dash .topbar-app__greet-date{
	font-size:.8125rem;
	font-weight:500;
	color:#64748b;
	line-height:1.25
}
.topbar-app--dash .topbar-app__greet-date::before{
	content:'·';
	margin-right:10px;
	color:#cbd5e1
}
.topbar-app__actions{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:6px;
	flex-shrink:0
}
.topbar-app__action{
	display:inline-flex;
	align-items:center;
	gap:.35rem;
	padding:.35rem .65rem;
	border-radius:6px;
	border:1px solid #e2e8f0;
	background:#fff;
	color:#475569;
	font-size:.75rem;
	font-weight:600;
	text-decoration:none;
	line-height:1.2;
	transition:background .12s,border-color .12s,color .12s
}
.topbar-app__action svg{
	width:14px;
	height:14px;
	flex-shrink:0;
	display:block
}
.topbar-app__action:hover{
	background:#f8fafc;
	border-color:#cbd5e1;
	color:#1e293b
}
.topbar-app__action--primary{
	background:#4f46e5;
	border-color:#4f46e5;
	color:#fff
}
.topbar-app__action--primary:hover{
	background:#4338ca;
	border-color:#4338ca;
	color:#fff
}
.topbar-app--dash .topbar-app__end{
	margin-left:0;
	flex-shrink:0
}
@media (max-width:900px){
	.topbar-app--dash .topbar-app__actions{display:none}
	.topbar-app--dash .topbar-app__greet-date::before{display:none}
	.topbar-app--dash .topbar-app__greet{
		flex-direction:column;
		align-items:flex-start;
		gap:0
	}
	.topbar-app__title h1,
	.topbar-app__title h2,
	.topbar-app__title h3,
	.topbar-app__title h4{
		max-width:38vw
	}
}
@media (max-width:560px){
	.topbar-app__badge span:not(.topbar-app__badge-dot){display:none}
	.topbar-app__logout span{display:none}
}
.topbar-app__notify{
	position:relative;
	flex-shrink:0;
	display:flex;
	align-items:center;
}
.topbar-app__notify-btn{
	position:relative;
	background:transparent;
	border:none;
	cursor:pointer;
	padding:8px;
	border-radius:8px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	line-height:0;
	transition:background .2s;
}
.topbar-app__notify-btn:hover{background:#f8fafc}
.topbar-app__notify-btn svg{width:22px;height:22px;color:#64748b;display:block}
.topbar-app__badge{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:6px 12px;
	border-radius:999px;
	background:#e2e8f0;
	color:#334155;
	font-size:13px;
	font-weight:600;
	line-height:1.2;
	flex-shrink:0;
	white-space:nowrap;
}
.topbar-app__badge-dot{
	width:10px;
	height:10px;
	border-radius:999px;
	background:#22c55e;
	box-shadow:0 0 0 2px rgba(34,197,94,.2);
	flex-shrink:0;
}
.topbar-app__logout svg{width:18px;height:18px;display:block;flex-shrink:0}
.topbar-app__dropdown{
	display:none;
	position:absolute;
	top:calc(100% + 8px);
	right:0;
	background:#fff;
	border:1px solid #e2e8f0;
	border-radius:12px;
	box-shadow:0 10px 25px rgba(0,0,0,.1);
	width:min(380px,calc(100vw - 32px));
	max-height:500px;
	overflow:hidden;
	z-index:1000;
}
.topbar-app__dropdown-head{
	padding:1rem;
	border-bottom:1px solid #e2e8f0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
}
.topbar-app__dropdown-list{
	max-height:400px;
	overflow-y:auto;
	scrollbar-width:thin;
	scrollbar-color:#cbd5e1 #f1f5f9;
}
.container{max-width:none;width:100%;margin:0 auto;padding:20px}
.main{padding-top:10px}

/* Larghezza documento condivisa — allineata a sinistra (non centrata) */
:root{--app-content-max-width:370mm}
.app-content-shell{
    max-width:var(--app-content-max-width);
    width:100%;
    margin:0;
    margin-right:auto;
    box-sizing:border-box;
}
.container.main:has(.app-content-shell),
.container.main:has(.billing-page--editor),
.container.main:has(.billing-page),
.container.main:has(.client-view-toggle),
.container.main:has(.settings-shell),
.container.main:has(.form-card),
.container.main:has(.task-create-wrapper),
.container.main:has(.magazzino-detail-shell),
.container.main:has(.tasks-table-card--admin-board){
    max-width:none;
    width:100%;
    padding:10px 12px 14px;
    box-sizing:border-box;
}
.container.main:has(.client-view-toggle) > .client-view-toggle,
.container.main:has(.client-view-toggle) > .client-pane{
    max-width:var(--app-content-max-width);
    width:100%;
    margin-left:0;
    margin-right:auto;
    box-sizing:border-box;
}
.container.main > section.settings-shell,
.container.main > .settings-shell,
.container.main > section.form-card,
.container.main > .task-create-wrapper,
.container.main > .magazzino-detail-shell{
    max-width:var(--app-content-max-width);
    width:100%;
    margin-left:0;
    margin-right:auto;
    box-sizing:border-box;
}
.container.main > .magazzino-detail-shell{padding:1.5rem 0}

.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 12px 28px rgba(0,0,0,.06)}
.card.narrow{max-width:var(--app-content-max-width);width:100%;margin:0;margin-right:auto;margin-bottom:16px}
.form-card{max-width:var(--app-content-max-width);width:100%;margin:0;margin-right:auto;margin-bottom:16px}
label{display:block;margin-bottom:10px}
label span{display:block;font-size:13px;color:var(--muted);margin:0!important}
input,select,textarea{width:100%;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);font-size:16px;outline:none;transition:border-color .15s, box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(147,197,253,.35)}
textarea{min-height:140px}
.btn{display:inline-block;padding:12px 16px;border-radius:12px;background:#fafafa;color:#0f172a;text-decoration:none;border:1px solid var(--border);cursor:pointer;transition:.2s;font-weight:600}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(0,0,0,.08)}
.btn.primary{background:var(--primary);color:#fff;border-color:#1d4ed8}
.btn.primary:disabled,
.btn.primary[disabled],
.btn.primary.is-save-idle{
    background:#cbd5e1;color:#64748b;border-color:#cbd5e1;
    cursor:not-allowed;box-shadow:none;transform:none;opacity:1
}
.btn.primary:disabled:hover,
.btn.primary[disabled]:hover,
.btn.primary.is-save-idle:hover{
    background:#cbd5e1;color:#64748b;border-color:#cbd5e1;
    box-shadow:none;transform:none
}
.btn.ghost{background:#fff;border-color:var(--border)}
.btn.btn--with-icon{display:inline-flex;align-items:center;gap:8px;padding-inline:14px 18px}
.btn.btn--with-icon .btn-icon{font-size:16px;line-height:1}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.table{width:100%;border-collapse:separate;border-spacing:0;border-radius:16px;overflow:hidden;background:#fff;border:1px solid rgba(148,163,184,.22);box-shadow:0 8px 22px rgba(15,23,42,.06);table-layout:auto}
.table thead tr{background:#f7f9fc}
.table thead th{padding:10px 16px;color:#1f2937;font-weight:600;letter-spacing:.01em;font-size:13px;text-transform:none;border-bottom:1px solid rgba(148,163,184,.28)}
.table thead th:first-child{text-align:left}
.table tbody tr{transition:all .2s ease;border-bottom:1px solid rgba(148,163,184,.12);position:relative;margin:0}
.table tbody tr:nth-child(even){background:#f8fafc;border-left:2px solid rgba(148,163,184,.08)}
.table tbody tr:nth-child(odd){background:#ffffff;border-left:2px solid transparent}
.table tbody tr:hover{background:#f0f9ff!important;box-shadow:inset 4px 0 0 #2563eb,0 2px 8px rgba(37,99,235,.08);border-left-color:#2563eb;transform:translateX(1px);z-index:1}
.table tbody tr.task-row--expanded{background:#eff6ff!important;border-left:4px solid #2563eb!important;box-shadow:inset 4px 0 0 #2563eb,0 4px 12px rgba(37,99,235,.12)!important;z-index:2}
.table tbody tr.task-row--expanded:hover{background:#dbeafe!important;box-shadow:inset 4px 0 0 #1d4ed8,0 4px 16px rgba(37,99,235,.16)!important}
/* La riga espansa è "incollata" al suo dettaglio: niente separatore sotto */
.table tbody tr.task-row--expanded::after{display:none}
/* Pannello dettaglio collegato visivamente alla riga padre (stessa spina blu) */
.tasks-grid tbody tr.task-details--open > .task-detail-cell{position:relative;box-shadow:inset 4px 0 0 #2563eb;border-top:2px solid #bfdbfe;background:linear-gradient(180deg,#eff6ff 0,#f8fafc 72px);padding-top:40px}
.tasks-grid tbody tr.task-details--open > .task-detail-cell::before{content:"↑ Dettagli della riga selezionata";position:absolute;top:12px;left:24px;background:#2563eb;color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 11px;border-radius:999px;box-shadow:0 2px 6px rgba(37,99,235,.35);white-space:nowrap;z-index:1}
/* Vista amministrativa: nessun colore di stato sulle righe (qui c'è solo da fatturare) */
.tasks-grid[data-board-origin="admin"] tbody tr.task-row:not(.task-row--expanded),
.tasks-grid[data-board-origin="admin"] tbody tr.task-row--overdue:not(.task-row--expanded),
.tasks-grid[data-board-origin="admin"] tbody tr.task-row--urgent:not(.task-row--expanded),
.tasks-grid[data-board-origin="admin"] tbody tr.task-row--reassign-requested:not(.task-row--expanded),
.tasks-grid[data-board-origin="admin"] tbody tr[data-reassign-requested="1"]:not(.task-row--expanded),
.tasks-grid[data-board-origin="admin"] tbody tr.has-active-timer:not(.task-row--expanded),
.tasks-grid[data-board-origin="admin"] tbody tr.has-paused-timer:not(.task-row--expanded){background:#fff!important;border-left-color:transparent!important;box-shadow:none!important;animation:none!important}
.tasks-grid[data-board-origin="admin"] tbody tr.task-row:not(.task-row--expanded):hover,
.tasks-grid[data-board-origin="admin"] tbody tr.has-active-timer:not(.task-row--expanded):hover{background:#f8fafc!important;box-shadow:none!important;transform:none!important}
.table tbody tr:not(:last-child)::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.15),transparent)}
.table tbody td{padding:10px 16px;vertical-align:middle;line-height:1.4;color:#1f2937;font-size:14px;border-right:1px solid rgba(148,163,184,.08)}
.table tbody td:last-child{border-right:none}
.table tbody td.td-select{text-align:center;padding-left:16px;padding-right:16px}
.table tbody td.td-actions{text-align:right}
.table tbody td.td-actions .btn{margin-left:auto;display:inline-flex;justify-content:center}
.table tbody tr:last-child{border-bottom:none}
.table tbody tr:last-child td{border-bottom:none}
.table tbody tr:last-child::after{display:none}
.table tbody td:first-child{font-weight:600;color:#0f172a}
.table-modern td,.table-modern th{white-space:nowrap}
/* Consenti wrapping dove necessario (es. Dashboard) */
.table-modern td.wrap,.table-modern th.wrap{white-space:normal;word-break:break-word}
/* Stile tabella task tipo "AG Grid" */
.tasks-grid{border-radius:0;border-color:#d1d5db;box-shadow:none;table-layout:auto}
.tasks-grid{
    border-radius:14px;
    border-color:#e2e8f0;
    box-shadow:0 14px 30px rgba(15,23,42,.08);
    table-layout:auto;
    overflow:hidden
}
.tasks-grid thead tr{background:#f9fafb}
.tasks-grid thead th{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.08em;
    padding:8px 10px;
    border-bottom:1px solid #e2e8f0;
    color:#64748b;
    background:linear-gradient(to bottom,#f9fafb,#f1f5f9)
}
.tasks-grid thead th[data-sort-key]{
    position:relative;
    padding-right:22px
}
.tasks-grid thead th[data-sort-key]::after{
    content:'';
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    font-size:10px;
    color:#cbd5e1;
    pointer-events:none
}
.tasks-grid thead th.is-sorted-asc::after{
    content:'▲';
    color:#2563eb
}
.tasks-grid thead th.is-sorted-desc::after{
    content:'▼';
    color:#2563eb
}
.itickets-table thead th[data-sort-key]{
    position:relative;
    padding-right:20px
}
.itickets-table thead th[data-sort-key]::after{
    content:'';
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    font-size:10px;
    color:#cbd5e1;
    pointer-events:none
}
.itickets-table thead th.is-sorted-asc::after{content:'▲';color:#2563eb}
.itickets-table thead th.is-sorted-desc::after{content:'▼';color:#2563eb}
.itickets-table .tasks-grid-filters-row th{padding:3px 6px;vertical-align:middle;overflow:hidden}
.tasks-grid--managed-cols{table-layout:fixed}
.tasks-grid--managed-cols.tasks-grid--auto-fill{width:100%;min-width:100%}
.tasks-grid--managed-cols col.is-col-hidden{width:0!important;visibility:collapse}
.table-scroll > .table.tasks-grid--managed-cols.tasks-grid--auto-fill{width:100%;min-width:100%;box-sizing:border-box}
.table-scroll.tasks-legacy-table{background:#fff}
/* Righe compatte: evita che il ridimensionamento colonne allunghi inutilmente l'altezza */
.tasks-grid--managed-cols tbody td{
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    vertical-align:middle
}
.tasks-grid--managed-cols tbody td.wrap{white-space:nowrap}
.tasks-grid--managed-cols tbody td.wrap .task-title-block,
.tasks-grid--managed-cols tbody td.wrap .task-title-text{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis
}
.tasks-grid--managed-cols .planning-cell__btn{
    min-height:0;
    padding:4px 6px;
    gap:2px
}
.tasks-grid--managed-cols .planning-cell__date,
.tasks-grid--managed-cols .planning-cell__time,
.tasks-grid--managed-cols .planning-cell__badge,
.tasks-grid--managed-cols .planning-cell__cta{white-space:nowrap}
.tasks-grid--managed-cols .task-assignees-cell{white-space:nowrap}
.tasks-grid--managed-cols .task-assignees{
    flex-wrap:nowrap;
    overflow:hidden;
    gap:4px
}
.tasks-grid--managed-cols .task-assignee{
    flex-shrink:1;
    min-width:0;
    max-width:100%;
    overflow:hidden
}
.tasks-grid--managed-cols .task-assignee .assignee-name{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.tasks-grid--managed-cols .status-cell > div{
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:4px!important;
    overflow:hidden
}
.tasks-grid--managed-cols .status-cell .status-pill,
.tasks-grid--managed-cols .status-cell > div > span{
    flex-shrink:1;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.tasks-grid--managed-cols tbody td.priority-cell{
    overflow:visible;
    white-space:normal;
    text-align:center;
    vertical-align:middle;
    padding:10px 8px;
    line-height:1.35;
    min-height:52px
}
.tasks-grid--managed-cols .priority-cell__stack{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:100%;
    min-width:0;
    margin:0 auto;
    text-align:center
}
.tasks-grid--managed-cols .priority-cell .priority-pill{
    margin:0 auto;
    flex-shrink:0;
    justify-content:center
}
.tasks-grid--managed-cols .priority-cell .priority-due{
    display:block;
    width:100%;
    font-size:10px;
    line-height:1.35;
    color:#64748b;
    font-weight:500;
    white-space:nowrap;
    text-align:center
}
.tasks-grid--managed-cols .priority-cell .priority-due.is-overdue{color:#dc2626;font-weight:700}
.tasks-grid--managed-cols .priority-cell .priority-due.is-urgent{color:#d97706;font-weight:700}
.tasks-grid--managed-cols thead tr:first-child th.th-priority{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.2;
    text-align:center;
    vertical-align:middle
}
.tasks-grid--managed-cols thead tr:first-child th.th-priority br{display:block}
.priority-cell{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:0;
    padding:10px 8px;
    text-align:center;
    vertical-align:middle;
    overflow:visible;
    line-height:1.35
}
.priority-cell__stack{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:100%;
    margin:0 auto;
    text-align:center
}
.priority-due{
    display:block;
    width:100%;
    font-size:11px;
    line-height:1.35;
    color:#64748b;
    font-weight:500;
    white-space:nowrap;
    text-align:center
}
.priority-due.is-overdue{color:#dc2626;font-weight:700}
.priority-due.is-urgent{color:#d97706;font-weight:700}
.tasks-grid--managed-cols .client-cell__body,
.tasks-grid--managed-cols .client-name,
.tasks-grid--managed-cols .client-cell__contact{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis
}
/* Con colonne gestite da JS: larghezza solo da <col>, non da width fissi su th/td */
.tasks-grid--managed-cols thead th.th-category,
.tasks-grid--managed-cols tbody td.category-cell,
.tasks-grid--managed-cols tbody td.fatturazione-cell,
.tasks-grid--managed-cols thead th.th-client{
    width:auto!important;
    min-width:0!important;
    max-width:none!important
}
.tasks-grid--managed-cols tbody td.category-cell .task-category-select,
.tasks-grid--managed-cols tbody td.category-cell .task-category,
.tasks-grid--managed-cols tbody td.origin-cell .task-origin-select,
.tasks-grid--managed-cols tbody td.client-cell .task-client-select,
.tasks-grid--managed-cols tbody td.client-cell .task-client-input,
.tasks-grid--managed-cols tbody td.fatturazione-cell .task-billing-select,
.tasks-grid--managed-cols tbody td.fatturazione-cell .billing-status-pill{
    max-width:100%
}
/* Header compatto: evita righe altissime dopo resize/riordino colonne */
.tasks-grid--managed-cols thead tr:first-child th[data-col-key]{
    white-space:nowrap;
    line-height:1.25;
    padding:6px 8px 6px 22px;
    vertical-align:middle;
    overflow:hidden;
    text-overflow:ellipsis;
    position:relative;
    user-select:none;
    touch-action:none
}
.tasks-grid--managed-cols thead tr:first-child th[data-col-key] .tasks-col-header-label{
    display:inline-flex;
    overflow:hidden;
    text-overflow:ellipsis
}
.tasks-grid--managed-cols thead tr:first-child th[data-col-key]:hover,
.tasks-grid--managed-cols thead tr:first-child th[data-col-key]:focus-within{
    overflow:visible;
    z-index:12
}
.tasks-col-header-label:has(.tasks-col-tip-trigger){
    overflow:visible
}
.tasks-grid--managed-cols thead tr:first-child th[data-col-key] br{
    display:none
}
.tasks-grid--managed-cols .tasks-grid-filters-row th{
    padding:3px 6px;
    vertical-align:middle;
    overflow:hidden
}
.tasks-grid--managed-cols .tasks-grid-filter{
    flex-wrap:nowrap;
    min-width:0
}
.tasks-grid thead th[data-col-key]{
    cursor:default;
    position:relative;
    z-index:1;
    padding:6px 8px 6px 22px;
    padding-right:14px;
    overflow:hidden;
    text-overflow:ellipsis;
    user-select:none;
    touch-action:none;
    vertical-align:middle
}
.tasks-col-header-label{
    display:inline-flex;
    align-items:center;
    gap:4px;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    line-height:1.25;
    vertical-align:middle
}
.tasks-col-tip-trigger{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:16px;
    height:16px;
    margin:0;
    padding:0;
    border:none;
    border-radius:50%;
    background:transparent;
    color:#94a3b8;
    font:inherit;
    line-height:1;
    cursor:help;
    position:relative;
    vertical-align:middle
}
.tasks-col-tip-trigger__icon{
    font-size:11px;
    font-weight:700;
    line-height:1
}
.tasks-col-tip-trigger:hover,
.tasks-col-tip-trigger:focus-visible{
    color:#2563eb;
    background:rgba(37,99,235,.08);
    outline:none
}
.tasks-col-tip-bubble{
    position:absolute;
    left:50%;
    bottom:calc(100% + 8px);
    transform:translateX(-50%);
    z-index:120;
    min-width:180px;
    max-width:min(280px,70vw);
    padding:8px 10px;
    border-radius:8px;
    background:#0f172a;
    color:#f8fafc;
    font-size:11px;
    font-weight:500;
    line-height:1.45;
    text-align:left;
    white-space:normal;
    box-shadow:0 8px 24px rgba(15,23,42,.28);
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transition:opacity .15s ease,visibility .15s ease
}
.tasks-col-tip-bubble::after{
    content:'';
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%);
    border:6px solid transparent;
    border-top-color:#0f172a
}
.tasks-col-tip-trigger:hover .tasks-col-tip-bubble,
.tasks-col-tip-trigger:focus-visible .tasks-col-tip-bubble{
    opacity:1;
    visibility:visible
}
.task-detail-chip__label,
.task-field-label.label,
.tasks-columns-item__label{
    display:inline-flex;
    align-items:center;
    gap:4px;
    flex-wrap:wrap
}
.tasks-columns-item__label .tasks-col-tip-trigger{
    margin-left:2px
}
.tasks-col-drag-handle{
    position:absolute;
    left:5px;
    top:50%;
    transform:translateY(-50%);
    width:12px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:10px;
    line-height:1;
    letter-spacing:-1px;
    color:#94a3b8;
    cursor:grab;
    border-radius:3px;
    opacity:.75;
    z-index:2
}
.tasks-col-drag-handle:hover{
    color:#2563eb;
    background:rgba(37,99,235,.08);
    opacity:1
}
body.is-col-dragging .tasks-col-drag-handle{
    cursor:grabbing;
    color:#1d4ed8
}
.tasks-grid thead th[data-col-key].is-drag-source{
    cursor:grabbing;
    opacity:.85
}
.tasks-grid thead th[data-col-key][data-sort-key]{
    padding-right:22px
}
.tasks-grid thead th[data-col-key].is-col-resizing{
    z-index:12
}
.tasks-grid thead th[data-col-key].is-col-resizing{cursor:col-resize}
/* Gutter ridimensionamento: layer sopra le celle (evita che la colonna a destra intercetti il click) */
.tasks-grid thead tr:first-child{
    position:relative
}
.tasks-grid-resize-gutters{
    position:absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
    pointer-events:none;
    z-index:40
}
.tasks-col-resize-gutter{
    position:absolute;
    top:0;
    height:100%;
    cursor:col-resize;
    pointer-events:auto;
    touch-action:none;
    box-sizing:border-box
}
.tasks-col-resize-gutter::after{
    content:'';
    position:absolute;
    top:18%;
    bottom:18%;
    left:50%;
    transform:translateX(-50%);
    width:2px;
    border-radius:2px;
    background:rgba(148,163,184,.55);
    transition:background .15s ease;
    pointer-events:none
}
.tasks-col-resize-gutter:hover::after{background:#2563eb}
.tasks-grid thead tr[data-resize-bound="1"] th[data-col-key]{
    cursor:default
}
body.is-col-dragging{
    cursor:grabbing!important;
    user-select:none
}
body.is-col-dragging .tasks-grid thead th[data-col-key]{
    cursor:grabbing
}
body.is-col-resizing .tasks-grid thead th[data-col-key]{
    cursor:col-resize
}
body.is-col-resizing .tasks-col-resize-gutter::after{background:#2563eb}
body.is-col-resizing{
    cursor:col-resize!important;
    user-select:none
}
body.is-col-resizing .tasks-grid thead th[data-col-key]{cursor:col-resize}
/* visibility:collapse mantiene l'allineamento col/colgroup/header/body (no display:none) */
.tasks-grid--managed-cols th.is-col-hidden,
.tasks-grid--managed-cols td.is-col-hidden{
    visibility:collapse!important;
    width:0!important;
    min-width:0!important;
    max-width:0!important;
    padding:0!important;
    border:none!important;
    overflow:hidden;
    font-size:0;
    line-height:0
}
.tasks-grid:not(.tasks-grid--managed-cols) th.is-col-hidden,
.tasks-grid:not(.tasks-grid--managed-cols) td.is-col-hidden{
    display:none!important;
    width:0!important;
    padding:0!important;
    border:none!important
}
/* Picker colonne */
.tasks-columns-picker-wrap{position:relative}
.tasks-columns-trigger{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-weight:500
}
.tasks-columns-trigger__icon{
    font-size:15px;
    line-height:1;
    opacity:.85
}
.tasks-columns-trigger__badge{
    font-size:10px;
    font-weight:700;
    line-height:1;
    padding:3px 6px;
    border-radius:999px;
    background:#dbeafe;
    color:#1d4ed8
}
.tasks-columns-panel{
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    width:min(360px,calc(100vw - 32px));
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:14px;
    box-shadow:0 20px 40px rgba(15,23,42,.14),0 0 0 1px rgba(15,23,42,.04);
    z-index:1200;
    padding:0;
    overflow:hidden
}
.tasks-columns-panel__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px 10px;
    background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
    border-bottom:1px solid #e2e8f0
}
.tasks-columns-panel__title{
    margin:0;
    font-size:15px;
    font-weight:700;
    color:#0f172a;
    letter-spacing:-.01em
}
.tasks-columns-panel__hint{
    margin:4px 0 0;
    font-size:11px;
    color:#64748b;
    line-height:1.4
}
.tasks-columns-save-status{
    flex-shrink:0;
    font-size:11px;
    font-weight:600;
    padding:4px 8px;
    border-radius:999px;
    white-space:nowrap
}
.tasks-columns-save-status.is-saving{background:#fef3c7;color:#b45309}
.tasks-columns-save-status.is-saved{background:#dcfce7;color:#15803d}
.tasks-columns-save-status.is-error{background:#fee2e2;color:#b91c1c}
.tasks-columns-panel__toolbar{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 16px;
    border-bottom:1px solid #f1f5f9
}
.tasks-columns-search{
    flex:1;
    min-width:0;
    padding:8px 10px;
    border:1px solid #e2e8f0;
    border-radius:8px;
    font-size:13px;
    background:#fff
}
.tasks-columns-search:focus{
    outline:none;
    border-color:#3b82f6;
    box-shadow:0 0 0 3px rgba(59,130,246,.15)
}
.tasks-columns-panel__list{
    list-style:none;
    margin:0;
    padding:8px;
    max-height:min(340px,50vh);
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    gap:4px
}
.tasks-columns-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    border-radius:10px;
    border:1px solid transparent;
    background:#fff;
    cursor:grab;
    transition:background .12s ease,border-color .12s ease,box-shadow .12s ease
}
.tasks-columns-item:hover{background:#f8fafc;border-color:#e2e8f0}
.tasks-columns-item.is-dragging{opacity:.45;cursor:grabbing}
.tasks-columns-item.is-drag-over{
    border-color:#93c5fd;
    background:#eff6ff;
    box-shadow:inset 0 0 0 1px #bfdbfe
}
.tasks-columns-item.is-filtered-out{display:none}
.tasks-columns-item__drag{
    color:#94a3b8;
    font-size:14px;
    line-height:1;
    flex-shrink:0;
    user-select:none
}
.tasks-columns-item__label{
    flex:1;
    font-size:13px;
    font-weight:500;
    color:#334155;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.tasks-columns-item__toggle{
    position:relative;
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
    cursor:pointer
}
.tasks-columns-item__cb{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.tasks-columns-item__switch{
    width:36px;
    height:20px;
    border-radius:999px;
    background:#cbd5e1;
    position:relative;
    transition:background .2s ease
}
.tasks-columns-item__switch::after{
    content:'';
    position:absolute;
    top:2px;
    left:2px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.2);
    transition:transform .2s ease
}
.tasks-columns-item__cb:checked + .tasks-columns-item__switch{background:#2563eb}
.tasks-columns-item__cb:checked + .tasks-columns-item__switch::after{transform:translateX(16px)}
.tasks-columns-item__cb:focus-visible + .tasks-columns-item__switch{outline:2px solid #3b82f6;outline-offset:2px}
.tasks-columns-panel__foot{
    padding:10px 16px 14px;
    border-top:1px solid #e2e8f0;
    background:#fafbfc;
    display:flex;
    flex-direction:column;
    gap:10px
}
.tasks-columns-panel__tip{
    margin:0;
    font-size:11px;
    color:#64748b;
    line-height:1.4
}
/* Cella pianificazione in elenco */
.planning-cell__btn{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    width:100%;
    min-height:52px;
    padding:6px 8px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#f8fafc;
    cursor:pointer;
    font:inherit;
    color:#334155;
    transition:background .15s ease,border-color .15s ease,box-shadow .15s ease
}
.planning-cell__btn:hover:not(:disabled){
    background:#eff6ff;
    border-color:#93c5fd;
    box-shadow:0 0 0 3px rgba(59,130,246,.12)
}
.planning-cell__btn:disabled{opacity:.55;cursor:not-allowed}
.planning-cell__btn--empty{border-style:solid;background:#fff}
.planning-cell__date{font-size:12px;font-weight:600;color:#0f172a}
.planning-cell__time{font-size:11px;color:#64748b}
.planning-cell__cta{font-size:11px;font-weight:600;color:#2563eb;line-height:1.3}
.planning-cell__badge{
    font-size:10px;
    font-weight:600;
    padding:2px 6px;
    border-radius:999px
}
.planning-cell__badge--fixed{background:#dcfce7;color:#15803d}
.planning-cell__badge--draft{background:#f1f5f9;color:#64748b}
@keyframes pulse-glow{
    0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.55)}
    50%{box-shadow:0 0 0 8px rgba(124,58,237,0)}
}
/* Dettaglio ticket: palette blu + viola saturato */
.page--tasks-detail{
    --task-blue:#3b82f6;
    --task-blue-dark:#2563eb;
    --task-blue-soft:#eff6ff;
    --task-purple:#7c3aed;
    --task-purple-dark:#6d28d9;
    --task-purple-soft:#f5f3ff;
    --task-purple-border:#c4b5fd;
    --task-purple-glow:rgba(124,58,237,.22);
    --td-premium-radius:16px;
    --td-premium-shadow:0 1px 2px rgba(15,23,42,.04),0 10px 32px rgba(99,102,241,.08);
    position:relative;
    min-height:100vh;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    background:
        radial-gradient(ellipse 90% 55% at 0% -8%,rgba(59,130,246,.11),transparent 52%),
        radial-gradient(ellipse 70% 45% at 100% 0%,rgba(124,58,237,.09),transparent 48%),
        linear-gradient(180deg,#f8faff 0%,#f1f5f9 42%,#eef2ff 100%)
}
.page--tasks-detail .task-detail-shell{
    padding:0 .15rem .85rem;
    width:100%;
    max-width:1600px;
    margin:0 auto;
    box-sizing:border-box
}
.page--tasks-detail .task-detail-layout{
    display:grid;
    align-items:start;
    gap:.85rem;
    width:100%;
    max-width:100%;
    grid-template-columns:minmax(0,1fr) minmax(300px,360px);
    box-sizing:border-box
}
.page--tasks-detail .task-detail-primary,
.page--tasks-detail .task-detail-middle{
    min-width:0;
    width:100%;
    box-sizing:border-box
}
.page--tasks-detail .task-detail-primary,
.page--tasks-detail .task-detail-middle{
    gap:.85rem
}
/* Dettaglio ticket: header scheda */
.task-detail-header{
    --tdh-accent:var(--task-blue);
    position:sticky;
    top:0;
    z-index:40;
    width:100%;
    margin-bottom:.85rem;
    padding:1.05rem 1.2rem 1.1rem;
    background:linear-gradient(165deg,rgba(255,255,255,.97) 0%,#f8faff 48%,#f5f3ff 100%);
    border:1px solid rgba(224,231,255,.95);
    border-radius:var(--td-premium-radius);
    box-shadow:var(--td-premium-shadow);
    backdrop-filter:blur(8px);
    overflow:hidden
}
.task-detail-header::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:3px;
    background:linear-gradient(90deg,var(--task-blue) 0%,#6366f1 42%,var(--task-purple) 100%);
    pointer-events:none
}
.task-detail-header__row{
    display:flex;
    align-items:center;
    gap:.75rem;
    flex-wrap:wrap
}
.task-detail-header__row--top{
    justify-content:space-between;
    margin-bottom:.85rem;
    padding-bottom:.85rem;
    border-bottom:1px solid #eef2f6
}
.task-detail-header__identity{
    display:flex;
    align-items:center;
    gap:.5rem;
    flex:1 1 200px;
    min-width:0
}
.task-detail-header__id{
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.03em;
    color:#475569;
    flex-shrink:0;
    padding:.2rem .5rem;
    background:var(--task-blue-soft);
    color:#1e40af;
    border-radius:6px;
    line-height:1.3
}
.task-detail-header__timer-live{
    font-size:.95rem;
    line-height:1;
    animation:pulse-glow 2s infinite
}
.task-detail-header__title{
    font-size:1.125rem;
    font-weight:600;
    letter-spacing:-.02em;
    color:#0f172a;
    cursor:pointer;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    min-width:0;
    line-height:1.35;
    transition:color .15s ease
}
.task-detail-header__title:hover{color:#2563eb}
.task-detail-header__title-edit{
    opacity:0;
    font-size:.75rem;
    color:#94a3b8;
    flex-shrink:0;
    transition:opacity .15s ease
}
.task-detail-header__identity:hover .task-detail-header__title-edit{opacity:.7}
.task-detail-header__title-input{
    display:none;
    flex:1;
    min-width:120px;
    font-size:1.05rem;
    font-weight:600;
    padding:.4rem .55rem;
    border:2px solid #3b82f6;
    border-radius:8px;
    background:#fff;
    box-shadow:0 0 0 3px rgba(59,130,246,.15)
}
.task-detail-header__actions{
    display:flex;
    align-items:center;
    gap:.45rem;
    flex-shrink:0;
    flex-wrap:wrap
}
.task-detail-header__btn{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    white-space:nowrap;
    border-radius:9px;
    font-weight:600;
    box-shadow:0 1px 2px rgba(15,23,42,.06)
}
.task-detail-header__btn.btn.primary{
    background:linear-gradient(180deg,#3b82f6 0%,#2563eb 100%);
    border-color:#2563eb
}
.task-detail-header__btn.btn.ghost{
    background:#fff;
    border:1px solid #e2e8f0;
    color:#334155
}
.task-detail-header__btn.btn.ghost:hover{
    background:#f8fafc;
    border-color:#cbd5e1
}
/* Griglia metadati */
.task-detail-header__meta{
    display:grid;
    grid-template-columns:minmax(0,.52fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,1.05fr) minmax(0,.65fr) minmax(0,.78fr);
    gap:.45rem
}
@media (max-width:1200px){
    .task-detail-header__meta{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:720px){
    .task-detail-header__meta{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
    .task-detail-header__meta{grid-template-columns:1fr}
}
.task-detail-chip{
    display:flex;
    flex-direction:column;
    gap:.2rem;
    min-width:0;
    padding:.55rem .7rem .6rem;
    background:linear-gradient(165deg,#fff 0%,#fafbff 100%);
    border:1px solid rgba(224,231,255,.9);
    border-radius:11px;
    box-shadow:0 1px 2px rgba(99,102,241,.04);
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease
}
.task-detail-chip:hover{
    border-color:rgba(196,181,253,.75);
    box-shadow:0 4px 16px rgba(124,58,237,.09);
    transform:translateY(-1px)
}
.task-detail-chip:focus-within{
    border-color:var(--task-purple-border);
    box-shadow:0 0 0 3px var(--task-purple-glow),0 4px 14px rgba(59,130,246,.08)
}
.task-detail-chip--id{border-left:3px solid #cbd5e1}
.task-detail-chip__value--id{
    font-variant-numeric:tabular-nums;
    color:#475569;
    font-weight:700;
    font-size:.8rem
}
.task-detail-chip--client{border-left:3px solid var(--task-blue)}
.task-detail-chip--contact{border-left:3px solid #38bdf8}
.task-detail-chip--contact-refs{border-left:3px solid #7dd3fc}
.task-detail-chip--category{border-left:3px solid var(--task-purple)}
.task-detail-chip--origin{border-left:3px solid #818cf8}
.task-detail-chip--created{border-left:3px solid #93c5fd}
.task-detail-chip--compact{
    padding:.5rem .55rem .55rem
}
.task-detail-chip--compact .task-detail-chip__label{
    font-size:.58rem;
    letter-spacing:.05em
}
.task-detail-chip--compact .task-detail-chip__value,
.task-detail-chip--compact .task-origin-select{
    font-size:.75rem
}
.task-detail-chip__value--compact-datetime{
    font-size:.75rem;
    letter-spacing:-.01em
}
.task-detail-chip__value--refs{
    color:#64748b;
    font-weight:500;
    font-size:.75rem
}
.task-detail-chip--contact .task-detail-chip__value{color:#0369a1}
.task-detail-chip__field--contact{
    position:relative;
    min-height:0
}
.task-detail-chip--contact:has(.task-detail-chip__field--contact.is-editing){
    position:relative;
    z-index:60;
    overflow:visible
}
.task-detail-header:has(.task-detail-chip__field--contact.is-editing){
    overflow:visible
}
.task-detail-chip__field--contact.is-editing{
    z-index:5
}
.task-detail-chip__field--contact.is-editing .task-detail-contact-edit-panel{
    display:block
}
.task-detail-chip__field--contact.is-editing .task-detail-contact-input{
    padding:.2rem .35rem;
    border:1px solid #7dd3fc;
    border-radius:6px;
    background:#f0f9ff
}
.task-detail-contact-compact{
    display:flex;
    align-items:center;
    gap:.2rem;
    min-width:0;
    width:100%
}
.task-detail-contact-compact.is-hidden{display:none}
.task-detail-contact__text{
    flex:1;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.8125rem;
    font-weight:600;
    color:#0369a1;
    line-height:1.3;
    cursor:pointer
}
.task-detail-contact__text:hover{color:#0c4a6e;text-decoration:underline;text-underline-offset:2px}
.task-detail-contact__edit-btn{
    flex-shrink:0;
    position:relative;
    z-index:3;
    width:22px;
    height:22px;
    padding:0;
    border:none;
    border-radius:4px;
    background:transparent;
    color:#94a3b8;
    font-size:.75rem;
    line-height:1;
    cursor:pointer;
    pointer-events:auto;
    transition:background .12s ease,color .12s ease
}
.task-detail-chip__field--contact{
    pointer-events:auto
}
.task-detail-contact__edit-btn:hover{
    background:#e0f2fe;
    color:#0369a1
}
.task-detail-contact-edit-panel{
    position:relative;
    width:100%
}
.task-detail-contact-edit-panel[hidden]{display:none!important}
.task-detail-contact-input{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    padding:0;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    font-size:.8125rem;
    font-weight:600;
    color:#0369a1;
    font-family:inherit;
    line-height:1.35;
    outline:none
}
.task-detail-contact-input::placeholder{
    color:#94a3b8;
    font-weight:500
}
.task-detail-contact-input:focus{
    color:#0c4a6e
}
.task-detail-contact-input:disabled{
    opacity:.65;
    cursor:wait
}
.task-detail-contact-input.is-saving{opacity:.75}
.task-detail-contact-input.is-saved{box-shadow:0 0 0 2px rgba(34,197,94,.35);border-radius:4px}
.task-detail-contact-results{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:120;
    margin-top:4px;
    max-height:220px;
    overflow-y:auto;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:8px;
    box-shadow:0 8px 24px rgba(15,23,42,.12)
}
.task-detail-contact-results button{
    display:block;
    width:100%;
    padding:.45rem .55rem;
    border:none;
    border-bottom:1px solid #f1f5f9;
    background:transparent;
    text-align:left;
    font-size:.75rem;
    color:#334155;
    cursor:pointer;
    font-family:inherit
}
.task-detail-contact-results button:hover{background:#f8fafc}
.task-detail-contact-results button:last-child{border-bottom:none}
/* Titolo ticket (card descrizione / ex-attività) */
.activity-ticket-title.task-detail-header__identity{
    display:flex;
    align-items:center;
    gap:.3rem;
    flex:1;
    width:100%;
    min-width:0
}
.task-card-description__title.activity-ticket-title{
    margin:0;
    padding:0;
    border-bottom:none
}
.task-card-description__title .task-detail-header__title,
.task-card-description__title .activity-ticket-title__display{
    font-size:1rem;
    font-weight:700;
    color:#0f172a;
    white-space:normal;
    overflow:visible;
    text-overflow:unset;
    line-height:1.3
}
.task-card-description__toggle:hover{color:#475569}
.task-card-description__title .task-detail-header__title-edit{
    cursor:pointer
}
.task-card-description__title .task-detail-header__title,
.task-card-description__title .activity-ticket-title__display{
    cursor:text
}
.activity-ticket-title{
    width:100%;
    margin:0 0 .35rem;
    padding:0 0 .28rem;
    border-bottom:1px solid #eef2f6
}
.activity-ticket-title .task-detail-header__title,
.activity-ticket-title .activity-ticket-title__display{
    font-size:.875rem;
    font-weight:600;
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    display:block;
    min-width:0;
    flex:1
}
.activity-ticket-title .task-detail-header__title-input{
    display:none;
    width:100%;
    font-size:.875rem;
    font-weight:600;
    padding:.2rem .45rem;
    line-height:1.25
}
.activity-ticket-title .task-detail-header__title-edit{
    font-size:.65rem;
    opacity:.55;
    flex-shrink:0
}
.activity-ticket-title:hover .task-detail-header__title-edit{opacity:.85}
.task-detail-chip__value--datetime{color:#475569;font-variant-numeric:tabular-nums}
.task-detail-chip__value--priority .priority-pill{margin:0}
.task-detail-chip__label{
    font-size:.625rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#6366f1;
    line-height:1.2
}
.task-detail-chip__field{
    min-width:0;
    width:100%
}
.task-detail-chip__field--billing .fatturazione-cell__inner{display:block;width:100%}
.task-detail-chip__value{
    display:block;
    font-size:.8125rem;
    font-weight:600;
    color:#0f172a;
    line-height:1.35;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.task-detail-chip--client .task-detail-chip__value{color:#1d4ed8}
.task-detail-chip--category .task-detail-chip__value{color:var(--task-purple-dark)}
.task-detail-chip--created .task-detail-chip__value{color:#4338ca}
/* Select integrati (no doppio box) */
.task-detail-header .task-client-select,
.task-detail-header .task-category-select,
.task-detail-header .task-origin-select,
.task-detail-header .task-billing-select{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    padding:0 1.1rem 0 0;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    font-size:.8125rem;
    font-weight:600;
    line-height:1.35;
    font-family:inherit;
    cursor:pointer;
    appearance:none;
    box-sizing:border-box;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right .1rem center;
    background-size:12px 12px
}
.task-detail-header .task-client-select{color:#1d4ed8}
.task-detail-header .task-category-select{color:var(--task-purple-dark)}
.task-detail-header .task-origin-select{color:#4338ca}
.task-detail-header .task-priority-select.priority-high{color:#be123c}
.task-detail-header .task-priority-select.priority-medium{color:var(--task-purple)}
.task-detail-header .task-priority-select.priority-low{color:#6366f1}
.task-detail-header .task-billing-select{color:#64748b}
.task-detail-header .task-client-select:hover,
.task-detail-header .task-category-select:hover,
.task-detail-header .task-origin-select:hover,
.task-detail-header .task-priority-select:hover,
.task-detail-header .task-billing-select:hover{
    filter:none;
    background-color:transparent;
    border-color:transparent
}
.task-detail-header .task-client-select:focus,
.task-detail-header .task-category-select:focus,
.task-detail-header .task-origin-select:focus,
.task-detail-header .task-priority-select:focus,
.task-detail-header .task-billing-select:focus{
    outline:none;
    box-shadow:none
}
.task-detail-header .task-client-select.is-saved,
.task-detail-header .task-category-select.is-saved,
.task-detail-header .task-origin-select.is-saved,
.task-detail-header .task-priority-select.is-saved,
.task-detail-header .task-billing-select.is-saved{
    box-shadow:none;
    animation:tdh-field-saved .5s ease
}
@keyframes tdh-field-saved{
    0%{background-color:rgba(124,58,237,.14)}
    100%{background-color:transparent}
}
.page--tasks-detail .task-card--title-duplicate{display:none!important}
.page--tasks-detail .task-detail-chip .priority-pill.high{
    background:rgba(190,18,60,.12);
    color:#be123c;
    border-color:rgba(190,18,60,.25)
}
.page--tasks-detail .task-detail-chip .priority-pill.medium{
    background:rgba(124,58,237,.12);
    color:var(--task-purple-dark);
    border-color:rgba(124,58,237,.28)
}
.page--tasks-detail .task-detail-chip .priority-pill.low{
    background:rgba(99,102,241,.12);
    color:#4338ca;
    border-color:rgba(99,102,241,.28)
}
.page--tasks-detail .task-detail-header__btn.btn.ghost:hover{
    background:var(--task-purple-soft);
    border-color:var(--task-purple-border);
    color:var(--task-purple-dark)
}
.page--tasks-detail .task-detail-header__btn.btn.primary{
    background:linear-gradient(135deg,var(--task-blue) 0%,#4f46e5 48%,var(--task-purple) 100%);
    border:none;
    box-shadow:0 4px 14px rgba(59,130,246,.28)
}
.page--tasks-detail .task-detail-header__btn.btn.primary:hover{
    box-shadow:0 6px 20px rgba(124,58,237,.32);
    filter:brightness(1.03)
}

/* Dettaglio ticket: card premium */
.page--tasks-detail .task-card{
    border:1px solid rgba(224,231,255,.9);
    border-radius:var(--td-premium-radius);
    background:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 22px rgba(99,102,241,.06);
    overflow:hidden
}
.page--tasks-detail .task-card:hover{
    border-color:rgba(196,181,253,.55);
    box-shadow:0 2px 8px rgba(15,23,42,.05),0 12px 28px rgba(124,58,237,.1)
}
.page--tasks-detail .task-card-header{
    padding:.55rem .85rem;
    background:linear-gradient(135deg,rgba(239,246,255,.92) 0%,rgba(245,243,255,.88) 55%,rgba(255,255,255,.9) 100%);
    border-bottom:1px solid rgba(224,231,255,.75)
}
.page--tasks-detail .task-card-title{
    font-size:.8125rem;
    font-weight:700;
    letter-spacing:-.02em;
    color:#1e293b
}
.page--tasks-detail .task-card-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:1.6rem;
    height:1.6rem;
    font-size:.9rem;
    line-height:1;
    border-radius:8px;
    background:linear-gradient(135deg,var(--task-blue-soft),var(--task-purple-soft));
    border:1px solid rgba(196,181,253,.4);
    filter:none;
    flex-shrink:0
}
.page--tasks-detail .task-card-hint{
    font-size:.7rem;
    font-weight:500;
    color:#6366f1;
    letter-spacing:.01em
}
.page--tasks-detail .task-card-body{
    background:linear-gradient(180deg,#fff 0%,#fafbff 100%)
}
.page--tasks-detail .task-card-activity-note{
    border-color:rgba(196,181,253,.55);
    box-shadow:0 2px 10px rgba(124,58,237,.08),0 14px 36px rgba(59,130,246,.1)
}
.page--tasks-detail .task-card-activity-note .task-card-header{
    background:linear-gradient(135deg,#eff6ff 0%,#ede9fe 52%,#f5f3ff 100%);
    border-bottom-color:rgba(196,181,253,.45)
}
.page--tasks-detail .task-card-activity-note .task-card-icon{
    background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(124,58,237,.18));
    border-color:rgba(99,102,241,.35)
}
.page--tasks-detail .activity-note-form{
    border:1px dashed rgba(196,181,253,.55);
    border-radius:12px;
    background:linear-gradient(180deg,#fff 0%,#f8faff 100%);
    transition:border-color .2s ease,box-shadow .2s ease
}
.page--tasks-detail .activity-note-form:focus-within,
.page--tasks-detail .activity-note-form:hover{
    border-color:rgba(129,140,248,.65);
    box-shadow:0 0 0 3px rgba(99,102,241,.08)
}
.page--tasks-detail .task-card-description .task-card-header{
    background:linear-gradient(135deg,rgba(239,246,255,.85) 0%,#fff 100%)
}
.page--tasks-detail .task-detail-middle .task-card-header{
    background:linear-gradient(135deg,rgba(254,243,199,.25) 0%,rgba(245,243,255,.9) 40%,#fff 100%)
}
.page--tasks-detail .task-detail-middle .task-card:nth-child(1) .task-card-icon{
    background:linear-gradient(135deg,#fef3c7,var(--task-purple-soft));
    border-color:rgba(251,191,36,.35)
}
.page--tasks-detail .task-field-label{
    color:#64748b!important;
    font-size:.68rem!important;
    font-weight:700!important;
    letter-spacing:.06em!important
}
.page--tasks-detail .task-card-timeline .task-card-header{
    background:linear-gradient(135deg,#f8fafc 0%,#f5f3ff 100%)
}
.page--tasks-detail .task-tab-btn.active,
.page--tasks-detail .task-tab-btn.is-active,
.page--tasks-detail .task-tab-btn[data-active="1"]{
    color:var(--task-purple-dark)!important;
    border-bottom-color:var(--task-purple)!important;
    background:linear-gradient(180deg,var(--task-purple-soft),#fff)!important
}
.page--tasks-detail .btn.primary{
    background:linear-gradient(135deg,var(--task-blue) 0%,#4f46e5 50%,var(--task-purple) 100%);
    border:none;
    box-shadow:0 4px 12px rgba(59,130,246,.25)
}
.page--tasks-detail .btn.primary:hover{
    box-shadow:0 6px 18px rgba(124,58,237,.3);
    transform:translateY(-1px)
}
.page--tasks-detail .btn.ghost:hover{
    background:var(--task-purple-soft);
    border-color:var(--task-purple-border);
    color:var(--task-purple-dark)
}
.page--tasks-detail input:focus,
.page--tasks-detail select:focus,
.page--tasks-detail textarea:focus{
    border-color:#818cf8!important;
    box-shadow:0 0 0 3px rgba(99,102,241,.12)!important
}
.page--tasks-detail .task-detail-timer-slot .task-timer-bar{
    box-shadow:0 2px 12px rgba(99,102,241,.1),0 8px 28px rgba(124,58,237,.08);
    border-color:rgba(196,181,253,.45)
}

/* Dettaglio ticket: barra timer in cima (sotto topbar) */
.page--tasks-detail .task-detail-timer-slot{
	width:100%;
	margin:0 0 .65rem
}
.page--tasks-detail .task-detail-timer-slot .task-timer-bar-wrap{
	margin-bottom:0
}
.page--tasks-detail .task-detail-timer-slot .task-timer-bar{
	border-radius:12px
}
/* Tempistiche: metriche analisi (label sopra valore, spaziature ampie) */
.page--tasks-detail .task-timings-metrics{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(156px,1fr));
	gap:.85rem;
	margin:.25rem 0 .35rem
}
.page--tasks-detail .task-timings-metric{
	display:grid;
	grid-template-rows:auto auto;
	row-gap:.55rem;
	padding:1rem 1.1rem;
	min-height:4.85rem;
	box-sizing:border-box
}
.page--tasks-detail .task-timings-metric__label,
.page--tasks-detail .task-timings-metric__value{
	display:block;
	margin:0
}
.page--tasks-detail .task-timings-insights{
	gap:1.35rem
}
.page--tasks-detail .task-timings-insights__hint{
	margin-bottom:.15rem;
	padding:.85rem 1rem
}
/* Dettaglio ticket: barra timer compatta */
.task-timer-bar-wrap{margin-bottom:0}
.task-timer-bar{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:0;
    width:100%;
    padding:.55rem .85rem;
    background:linear-gradient(135deg,#f8faff 0%,#fff 45%,#f5f3ff 100%);
    border:1px solid #e0e7ff;
    border-radius:12px;
    box-shadow:0 1px 2px rgba(15,23,42,.04),0 6px 20px rgba(99,102,241,.06);
    transition:box-shadow .2s ease,border-color .2s ease;
    overflow-x:auto
}
.task-timer-bar.is-running{
    border-color:#93c5fd;
    box-shadow:0 0 0 1px rgba(59,130,246,.18),0 8px 24px rgba(124,58,237,.14);
    background:linear-gradient(135deg,#eff6ff 0%,#fff 42%,#ede9fe 100%)
}
.task-timer-bar.is-paused:not(.is-running){
    border-color:#fcd34d;
    background:linear-gradient(135deg,#fffbeb 0%,#fff 50%,#fef3c7 100%)
}
.task-timer-bar.is-paused:not(.is-running) .task-timer-bar__zone-label{
    color:#b45309
}
.task-timer-bar__btn--resume.task-timer-bar__btn--primary{
    background:linear-gradient(135deg,#2563eb 0%,#4f46e5 100%);
    border-color:#4338ca;
    color:#fff
}
.task-timer-bar.has-pending-activity{
    flex-wrap:wrap;
    align-items:stretch;
    gap:0;
    padding:.65rem .85rem .55rem;
    border-color:#fdba74;
    box-shadow:0 0 0 1px rgba(251,146,60,.22),0 8px 22px rgba(234,88,12,.08);
    background:linear-gradient(180deg,#fff7ed 0%,#fff 38%,#fafbff 100%)
}
.task-timer-bar__pending{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    flex:1 1 100%;
    width:100%;
    min-width:0;
    padding:0 0 .6rem;
    margin:0 0 .55rem;
    border-bottom:1px solid rgba(251,146,60,.35)
}
.task-timer-bar__pending[hidden]{display:none!important}
.task-timer-bar.has-pending-activity .task-timer-bar__pending[hidden]{display:none!important}
.task-timer-bar__pending-main{
    display:flex;
    align-items:flex-start;
    gap:.55rem;
    flex:1 1 auto;
    min-width:0
}
.task-timer-bar__pending-icon{
    flex-shrink:0;
    width:2rem;
    height:2rem;
    border-radius:10px;
    background:linear-gradient(135deg,#ea580c 0%,#c2410c 100%);
    color:#fff;
    font-size:.9rem;
    font-weight:800;
    line-height:2rem;
    text-align:center;
    box-shadow:0 2px 8px rgba(234,88,12,.25)
}
.task-timer-bar__pending-copy{
    flex:1 1 auto;
    min-width:0
}
.task-timer-bar__pending-title{
    display:block;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.02em;
    color:#9a3412;
    line-height:1.25
}
.task-timer-bar__pending-text{
    margin:.15rem 0 0;
    font-size:.7rem;
    font-weight:500;
    line-height:1.4;
    color:#b45309
}
.task-timer-bar__pending-hint{
    margin:.35rem 0 0;
    flex:1 1 100%;
    font-size:.68rem;
    font-weight:600;
    line-height:1.35;
    color:#c2410c
}
.task-timer-bar__pending-hint strong{color:#9a3412}
.task-timer-bar__btn--pending{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    padding:.5rem .85rem;
    font-size:.75rem;
    font-weight:700;
    color:#fff;
    background:linear-gradient(135deg,#ea580c 0%,#c2410c 100%);
    border:1px solid #c2410c;
    border-radius:9px;
    box-shadow:0 3px 10px rgba(234,88,12,.28);
    white-space:nowrap
}
.task-timer-bar__btn--pending:not(:disabled):hover{
    background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);
    transform:translateY(-1px);
    box-shadow:0 4px 14px rgba(234,88,12,.32)
}
.task-timer-bar__body{
    display:flex;
    align-items:center;
    flex:1 1 auto;
    min-width:0;
    width:100%;
    gap:0
}
.task-timer-bar.has-pending-activity .task-timer-bar__body{
    flex-wrap:wrap;
    row-gap:.35rem
}
.task-timer-bar.has-pending-activity .task-timer-bar__zone--activity{
    display:none
}
.task-timer-bar.has-pending-activity .task-timer-bar__zone--active:has([data-timer-active-users]:empty){
    display:none
}
.task-timer-bar.has-pending-activity .task-timer-bar__zone--active:has([data-timer-active-users]:empty) + .task-timer-bar__vsep{
    display:none
}
.task-timer-bar.has-pending-activity .task-timer-bar__zone--totals{
    flex:1 1 auto;
    min-width:10rem
}
.task-timer-bar.has-pending-activity .task-timer-bar__zone--status{
    margin-left:auto
}
.task-timer-bar.has-pending-activity .task-timer-bar__zone-heading{
    color:#b45309
}
.task-timer-bar.has-pending-activity .task-timer-bar__quick-btn{
    opacity:.92
}
@media (max-width:900px){
    .task-timer-bar__pending{
        flex-direction:column;
        align-items:stretch
    }
    .task-timer-bar__btn--pending{
        justify-content:center;
        width:100%
    }
}
.timer-pending-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
    padding:.55rem .65rem;
    margin-bottom:.55rem;
    border-radius:10px;
    background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%);
    border:1px solid #fdba74;
    box-shadow:0 2px 8px rgba(234,88,12,.1)
}
.timer-pending-banner[hidden]{display:none!important}
.timer-pending-banner__main{
    display:flex;
    align-items:flex-start;
    gap:.5rem;
    flex:1 1 auto;
    min-width:0
}
.timer-pending-banner__icon{
    flex-shrink:0;
    width:1.75rem;
    height:1.75rem;
    border-radius:8px;
    background:linear-gradient(135deg,#ea580c 0%,#c2410c 100%);
    color:#fff;
    font-size:.8rem;
    font-weight:800;
    line-height:1.75rem;
    text-align:center
}
.timer-pending-banner__copy{flex:1 1 auto;min-width:0}
.timer-pending-banner__title{
    display:block;
    font-size:.75rem;
    font-weight:800;
    color:#9a3412;
    line-height:1.25
}
.timer-pending-banner__text{
    margin:.12rem 0 0;
    font-size:.68rem;
    font-weight:500;
    line-height:1.35;
    color:#b45309
}
.timer-pending-banner__hint{
    margin:0;
    flex-shrink:0;
    font-size:.68rem;
    font-weight:600;
    line-height:1.35;
    color:#c2410c;
    white-space:nowrap
}
.timer-pending-banner__hint strong{color:#9a3412}
.timer-pending-banner__btn{
    flex-shrink:0;
    padding:.4rem .7rem!important;
    font-size:.72rem!important;
    font-weight:700!important;
    color:#fff!important;
    background:linear-gradient(135deg,#ea580c 0%,#c2410c 100%)!important;
    border:1px solid #c2410c!important;
    border-radius:8px!important;
    white-space:nowrap;
    box-shadow:0 2px 8px rgba(234,88,12,.22)!important
}
.timer-pending-banner__btn:hover{
    background:linear-gradient(135deg,#f97316 0%,#ea580c 100%)!important
}
.timer-card.has-pending-activity{
    padding:.55rem .6rem .5rem;
    background:linear-gradient(180deg,#fff7ed 0%,#fff 55%);
    border-radius:10px;
    outline:1px solid #fdba74;
    outline-offset:0
}
.task-timer-bar__zone{
    display:flex;
    align-items:center;
    gap:.5rem;
    flex-shrink:0;
    min-width:0;
    padding:0 .55rem
}
.task-timer-bar__zone:first-child{padding-left:0}
.task-timer-bar__zone--activity{
    gap:.4rem;
    flex-shrink:0
}
.task-timer-bar__zone--active,
.task-timer-bar__zone--totals{
    flex:1 1 0;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:.45rem;
    min-width:8rem;
    max-width:none
}
.task-timer-bar__zone--status{
    flex-shrink:0;
    margin-left:auto;
    padding-right:0;
    padding-left:.65rem
}
.task-timer-bar__vsep--before-status{
    margin-left:.35rem
}
.task-timer-bar__zone-label{
    font-size:.7rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#6366f1;
    white-space:nowrap
}
.task-timer-bar__zone-heading{
    font-size:.625rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#94a3b8;
    line-height:1.2;
    white-space:nowrap
}
.task-timer-bar__vsep{
    width:1px;
    align-self:stretch;
    min-height:2.5rem;
    background:#e0e7ff;
    flex-shrink:0;
    margin:0 .15rem
}
.task-timer-bar__dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#cbd5e1;
    flex-shrink:0;
    transition:background .2s ease,box-shadow .2s ease
}
.task-timer-bar.is-running .task-timer-bar__dot{
    background:var(--task-blue);
    box-shadow:0 0 0 4px rgba(59,130,246,.35);
    animation:timer-bar-pulse 2s ease-in-out infinite
}
.task-timer-bar.is-paused:not(.is-running) .task-timer-bar__dot{
    background:var(--task-purple);
    box-shadow:0 0 0 4px var(--task-purple-glow)
}
@keyframes timer-bar-pulse{
    0%,100%{box-shadow:0 0 0 4px rgba(59,130,246,.35)}
    50%{box-shadow:0 0 0 7px rgba(124,58,237,.12)}
}
.task-timer-bar__users{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.25rem;
    flex:1 1 auto;
    min-width:0;
    max-height:1.75rem;
    overflow:hidden
}
.task-timer-bar__zone--active .task-timer-bar__users:empty,
.task-timer-bar__zone--totals .task-timer-bar__users:empty{
    min-height:1.25rem
}
.task-timer-bar [data-timer-active-users] .user-badge,
.task-timer-bar [data-timer-total-users] .user-badge,
.task-timer-bar [data-time-users] .user-badge{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
    padding:.15rem .45rem;
    background:#fff;
    border:1px solid #e0e7ff;
    border-radius:999px;
    font-size:.65rem;
    font-weight:600;
    color:#4338ca;
    white-space:nowrap
}
.task-timer-bar [data-timer-active-users] .user-badge .user-dot,
.task-timer-bar [data-timer-total-users] .user-badge .user-dot,
.task-timer-bar [data-time-users] .user-badge .user-dot{
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--task-purple)
}
.task-timer-bar [data-timer-active-users] .user-badge.is-me{
    border-color:#93c5fd;
    background:#eff6ff;
    color:#1d4ed8
}
.task-timer-bar [data-timer-total-users] .user-badge.is-me{
    border-color:#c4b5fd;
    background:#f5f3ff;
    color:#5b21b6
}
.task-timer-bar [data-timer-active-users] .user-badge .user-time,
.task-timer-bar [data-timer-total-users] .user-badge .user-time{
    font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;
    font-size:.65rem;
    font-weight:600;
    color:#64748b;
    margin-left:.2rem
}
.task-timer-bar [data-timer-active-users] .user-badge .user-time--session{
    color:#5b21b6;
    font-weight:700;
    font-size:.7rem;
    padding:.05rem .35rem;
    border-radius:999px;
    background:linear-gradient(180deg,#f5f3ff 0%,#ede9fe 100%);
    border:1px solid #c4b5fd
}
.task-timer-bar [data-timer-active-users] .user-badge .user-dot--paused{
    background:#f59e0b;
    animation:none
}
.task-timer-bar [data-timer-total-users] .task-timer-bar__total-badge{
    padding:.2rem .65rem;
    border-color:#c4b5fd;
    background:linear-gradient(135deg,#f5f3ff 0%,#eff6ff 100%);
    color:#5b21b6
}
.task-timer-bar [data-timer-total-users] .task-timer-bar__total-badge .user-time{
    margin-left:0;
    font-size:.8rem;
    color:#5b21b6
}
.task-timer-bar__controls{
    display:flex;
    align-items:center;
    gap:.35rem;
    flex-shrink:0
}
.task-timer-bar__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.3rem;
    padding:.4rem .75rem;
    font-size:.78rem;
    font-weight:600;
    font-family:inherit;
    border-radius:8px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease;
    white-space:nowrap
}
.task-timer-bar__btn:disabled{
    opacity:.45;
    cursor:not-allowed;
    transform:none!important
}
.task-timer-bar__btn:not(:disabled):hover{transform:translateY(-1px)}
.task-timer-bar__btn--primary{
    color:#fff;
    background:linear-gradient(180deg,#3b82f6 0%,#2563eb 100%);
    border-color:#2563eb;
    box-shadow:0 2px 6px rgba(37,99,235,.28)
}
.task-timer-bar__btn--primary:not(:disabled):hover{
    box-shadow:0 4px 12px rgba(37,99,235,.35)
}
.task-timer-bar__btn--ghost{
    color:#334155;
    background:#fff;
    border-color:#e2e8f0
}
.task-timer-bar__btn--ghost:not(:disabled):hover{
    background:#f8fafc;
    border-color:#cbd5e1
}
.task-timer-bar__btn--stop{
    color:#b91c1c;
    background:#fff;
    border-color:#fecaca
}
.task-timer-bar__btn--stop:not(:disabled):hover{
    background:#fef2f2;
    border-color:#f87171
}
.task-timer-bar__btn--icon{
    padding:.4rem .55rem;
    color:#64748b;
    background:#fff;
    border-color:#e2e8f0;
    font-size:.95rem;
    line-height:1
}
.task-timer-bar__btn--icon:not(:disabled):hover{
    color:#2563eb;
    border-color:#93c5fd;
    background:#eff6ff
}
.task-timer-bar__btn-icon{font-size:.7rem;line-height:1}
.task-timer-bar__quick{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.3rem
}
.task-timer-bar__quick-btn{
    padding:.32rem .6rem;
    font-size:.7rem;
    font-weight:600;
    font-family:inherit;
    color:#5b21b6;
    background:#fff;
    border:1px solid #e0e7ff;
    border-radius:999px;
    cursor:pointer;
    transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease;
    white-space:nowrap
}
.task-timer-bar__quick-btn:hover{
    background:var(--task-purple-soft);
    border-color:var(--task-purple-border);
    color:var(--task-purple-dark);
    box-shadow:0 2px 8px var(--task-purple-glow)
}
.task-timer-bar__quick-btn[data-quick-status-btn="risolto"]:hover,
.task-timer-bar__quick-btn[data-quick-status-btn="non_risolto"]:hover,
.task-timer-bar__quick-btn[data-quick-status-btn="in_standby"]:hover{
    background:var(--task-purple-soft);
    border-color:var(--task-purple);
    color:var(--task-purple-dark)
}
.task-timer-bar__quick-btn--muted{color:#6366f1}
.task-timer-bar__quick-btn--muted:hover{
    background:#eff6ff;
    border-color:#93c5fd;
    color:#1d4ed8
}
@media (max-width:900px){
    .task-timer-bar{
        flex-wrap:wrap;
        gap:.5rem .65rem
    }
    .task-timer-bar__vsep{
        display:none
    }
    .task-timer-bar__zone{
        padding:0
    }
    .task-timer-bar__zone--active,
    .task-timer-bar__zone--totals{
        width:100%;
        max-width:none
    }
    .task-timer-bar__zone--status{
        width:100%;
        margin-left:0;
        padding-top:.35rem;
        border-top:1px solid #eef2f6
    }
    .task-timer-bar__vsep--before-status{display:none}
}
.visually-hidden{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important
}

/* Dettaglio ticket: riga compatta tabella (legacy, opzionale) */
.task-detail-compact-wrap{
    width:100%;
    margin-bottom:.75rem;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:8px;
    overflow-x:auto;
    overflow-y:hidden
}
.tasks-grid--detail-row{
    width:100%;
    table-layout:auto;
    margin:0;
    font-size:12px
}
.tasks-grid--detail-row .task-row--compact td{
    padding:6px 8px;
    vertical-align:middle;
    border-bottom:none;
    white-space:nowrap;
    line-height:1.25
}
.tasks-grid--detail-row .task-compact-row__title{
    min-width:140px;
    max-width:280px;
    white-space:nowrap
}
.tasks-grid--detail-row .task-title-text{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-weight:600;
    color:#0f172a
}
.tasks-grid--detail-row .planning-cell{width:1%;white-space:nowrap}
.tasks-grid--detail-row .origin-cell{max-width:130px;min-width:100px}
.tasks-grid--detail-row .category-cell{max-width:180px}
.tasks-grid--detail-row .client-cell{max-width:200px;min-width:140px}
.tasks-grid--detail-row .fatturazione-cell{max-width:200px;min-width:150px}
.tasks-grid--detail-row .task-origin-select,
.tasks-grid--detail-row .task-client-select,
.tasks-grid--detail-row .task-category-select,
.tasks-grid--detail-row .task-billing-select{
    width:100%;
    max-width:100%;
    font-size:.8rem
}
.tasks-grid--detail-row .task-assignees-cell{max-width:200px}
.tasks-grid--detail-row .status-cell{white-space:nowrap}
.tasks-grid--detail-row .execution-date-cell{font-size:.8rem}
.tasks-grid--detail-row .execution-date-cell__lines{
    display:flex;
    flex-direction:column;
    gap:2px
}
.tasks-grid--detail-row .timer-cell{font-size:.7rem}
.tasks-grid--detail-row .timer-cell__stack{
    display:flex;
    flex-direction:column;
    gap:2px
}
.tasks-grid--detail-row .timer-cell__active{
    display:flex;
    align-items:center;
    gap:3px
}
.tasks-grid--detail-row .task-reassign-badge,
.task-reassign-badge{
    font-size:11px;
    color:#92400e;
    font-weight:700;
    padding:4px 8px;
    background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);
    border-radius:6px;
    border:1px solid #f59e0b;
    display:block;
    width:100%;
    max-width:100%;
    text-align:center;
    box-shadow:0 1px 4px rgba(245,158,11,.25);
    margin-top:6px;
    letter-spacing:.02em;
    line-height:1.3
}
.task-quick-odl-badge{
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
    padding:4px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
    background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%);
    color:#c2410c;
    border:1px solid #fdba74;
    box-shadow:0 1px 4px rgba(249,115,22,.18);
    white-space:nowrap
}
/* Colonna Tipo (vista amministrativa): ODL diretto vs Ticket */
.type-cell{vertical-align:middle}
.task-type-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap;border:1px solid transparent}
.task-type-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.task-type-badge--odl{background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%);color:#c2410c;border-color:#fdba74}
.task-type-badge--ticket{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.task-type-badge--task{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
/* Pill tempo fatturabile (colonna "Fatturabile" elenco ODL amministrativo) */
.odl-billable-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.odl-billable-pill::before{content:"€";font-weight:700;font-size:.72rem;opacity:.7}
.odl-billable-pill.is-adjusted{background:#fef3c7;color:#b45309;border-color:#fcd34d}
.odl-billable-pill.is-adjusted::before{content:"✏️";font-size:.7rem;opacity:1}
.tasks-grid--detail-row tr[data-reassign-requested="1"],
.tasks-grid tr[data-reassign-requested="1"],
tr.task-row--reassign-requested{
    background:linear-gradient(90deg,rgba(254,243,199,.5) 0%,#fff 32%)!important
}
.tasks-grid--detail-row .status-cell > div{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px
}
.tasks-grid--detail-row .task-billing-badge-static{
    font-size:11px;
    color:#64748b;
    font-weight:500;
    padding:2px 6px;
    background:#f1f5f9;
    border-radius:4px;
    display:inline-block;
    margin-top:4px
}
.tasks-grid--detail-row .status-cell > div{
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:4px
}
/* Wizard pianificazione (tpw) */
body.has-planning-wizard-open{overflow:hidden}
.tpw[hidden]{display:none!important}
.tpw-is-hidden{display:none!important}
.tpw--internal [data-step-nav="1"],
.tpw--internal [data-step-nav="4"],
.tpw--internal .tpw__step-line{display:none!important}
.tpw__overlay{
    position:fixed;inset:0;z-index:13000;display:flex;align-items:center;justify-content:center;
    padding:16px;background:rgba(15,23,42,.5);backdrop-filter:blur(4px)
}
.tpw__dialog{
    width:min(640px,100%);max-height:min(92vh,760px);display:flex;flex-direction:column;
    background:#fff;border-radius:18px;box-shadow:0 25px 50px rgba(15,23,42,.25);overflow:hidden
}
.tpw__header{
    display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
    padding:20px 22px 16px;border-bottom:1px solid #e2e8f0;
    background:linear-gradient(135deg,#eff6ff 0%,#fff 55%)
}
.tpw__eyebrow{margin:0 0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#3b82f6}
.tpw__header h2{margin:0;font-size:20px;font-weight:700;color:#0f172a;letter-spacing:-.02em}
.tpw--internal .tpw__dialog{
    width:min(840px,100%);max-height:min(92vh,880px);
}
.tpw--internal .tpw__header h2{font-size:22px}
.tpw__subtitle{margin:6px 0 0;font-size:13px;color:#64748b;line-height:1.35}
.tpw__close{
    flex-shrink:0;border:none;background:#fff;width:36px;height:36px;border-radius:10px;
    font-size:22px;line-height:1;cursor:pointer;color:#64748b;box-shadow:0 1px 3px rgba(15,23,42,.08)
}
.tpw__close:hover{background:#f1f5f9;color:#0f172a}
.tpw__stepper{
    display:flex;align-items:center;gap:0;padding:14px 20px 12px;
    border-bottom:1px solid #f1f5f9;background:#fafbfc;overflow-x:auto
}
.tpw__step{
    display:flex;flex-direction:column;align-items:center;gap:4px;min-width:72px;flex-shrink:0
}
.tpw__step-num{
    width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:700;background:#e2e8f0;color:#64748b;transition:all .2s ease
}
.tpw__step-label{font-size:10px;font-weight:600;color:#94a3b8;text-align:center;white-space:nowrap}
.tpw__step.is-active .tpw__step-num{background:#2563eb;color:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.2)}
.tpw__step.is-active .tpw__step-label{color:#1d4ed8}
.tpw__step.is-done .tpw__step-num{background:#10b981;color:#fff}
.tpw__step.is-done .tpw__step-label{color:#059669}
.tpw__step-line{flex:1;min-width:12px;height:2px;background:#e2e8f0;margin:0 4px;margin-bottom:18px}
.tpw__body{padding:18px 22px 20px;overflow-y:auto;flex:1}
.tpw__pane{display:none}
.tpw__pane.is-active{display:block;animation:tpwFadeIn .2s ease}
@keyframes tpwFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tpw__lead{margin:0 0 16px;font-size:13px;color:#64748b;line-height:1.5}
.tpw__panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.tpw__panel-grid{grid-template-columns:1fr}}
.tpw__panel{
    border:1px solid #e2e8f0;border-radius:12px;background:#fff;
    display:flex;flex-direction:column;min-height:200px;overflow:hidden
}
.tpw--internal .tpw__panel{min-height:240px}
.tpw__panel-head{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:10px 12px;border-bottom:1px solid #f1f5f9;background:#f8fafc;
    font-size:12px;font-weight:700;color:#475569
}
.tpw__filter{
    flex:1;min-width:0;max-width:120px;padding:5px 8px;border:1px solid #e2e8f0;border-radius:6px;
    font-size:11px;font-family:inherit
}
.tpw__chip-list{
    padding:10px;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;
    overflow-y:auto;max-height:200px;flex:1
}
.tpw--internal .tpw__chip-list{max-height:260px}

/* Wizard pianificazione — embed nel nuovo task */
.tpw-embed--create{margin:0}
.tpw-embed__shell{
    border:1px solid #e2e8f0;border-radius:16px;background:#fff;overflow:hidden;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.tpw-embed__stepper{
    padding:12px 16px 10px!important;background:#fafbfc;border-bottom:1px solid #f1f5f9;
}
.tpw-embed__body{padding:16px 18px 18px}
.tpw-embed__footer{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:12px 16px 14px;border-top:1px solid #f1f5f9;background:#fafbfc;
}
.tpw-embed__footer-right{display:flex;gap:8px;margin-left:auto}
.tpw-embed__hint{margin-top:12px}
.tpw-embed--create .tpw__datetime-card{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;
}
@media (max-width:560px){
    .tpw-embed--create .tpw__datetime-card{grid-template-columns:1fr}
}
.tpw__chip{
    display:inline-flex;align-items:center;max-width:100%;
    padding:6px 12px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;
    cursor:pointer;transition:all .15s ease;user-select:none
}
.tpw__chip.is-on{background:#dbeafe;border-color:#3b82f6;color:#1e40af}
.tpw__chip.is-filtered-out{display:none}
.tpw__chip-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.tpw__chip-text{font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.tpw__empty{margin:0;font-size:12px;color:#94a3b8;font-style:italic}
.tpw__notify-card{
    display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;
    border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;cursor:pointer
}
.tpw__notify-input{width:18px;height:18px;margin:0;flex-shrink:0;accent-color:#2563eb;cursor:pointer}
.tpw__notify-text{font-size:13px;color:#475569;line-height:1.35}
.tpw__notify-text strong{display:block;color:#0f172a;font-weight:600}
.tpw__datetime-card{
    display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;
    border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc)
}
.tpw__field{display:flex;flex-direction:column;gap:6px}
.tpw__field-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.tpw__control{
    padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;
    font-family:inherit;background:#fff;transition:border-color .15s,box-shadow .15s
}
.tpw__control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.tpw__status-grid,.tpw__method-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:480px){.tpw__status-grid,.tpw__method-grid{grid-template-columns:1fr}}
.tpw__status-card,.tpw__method-card{
    display:flex;align-items:flex-start;gap:12px;padding:14px;border:2px solid #e2e8f0;
    border-radius:12px;cursor:pointer;background:#fff;transition:all .15s ease
}
.tpw__status-card input,.tpw__method-card input{position:absolute;opacity:0;pointer-events:none}
.tpw__status-card.is-selected,.tpw__method-card.is-selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.tpw__method-card{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:16px 12px}
.tpw__status-icon{font-size:20px;font-weight:700;color:#2563eb;line-height:1;flex-shrink:0}
.tpw__status-text{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#64748b}
.tpw__status-text strong{font-size:14px;color:#0f172a}
.tpw__method-icon{font-size:24px;line-height:1}
.tpw__method-label{font-size:13px;font-weight:600;color:#334155}
.tpw__recap{margin-top:16px;padding:14px 16px;border-radius:12px;background:#f0fdf4;border:1px solid #bbf7d0}
.tpw__recap-title{margin:0 0 10px;font-size:12px;font-weight:700;color:#166534;text-transform:uppercase;letter-spacing:.04em}
.tpw__recap-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tpw__recap-list li{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#475569}
.tpw__recap-list strong{color:#0f172a;font-weight:600}
.tpw__footer{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:14px 20px;border-top:1px solid #e2e8f0;background:#fafbfc
}
.tpw__footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}
.tpw__btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;
    cursor:pointer;border:1px solid transparent;transition:all .15s ease;white-space:nowrap
}
.tpw__btn:disabled{opacity:.6;cursor:not-allowed}
.tpw__btn--ghost{background:#fff;border-color:#e2e8f0;color:#475569}
.tpw__btn--ghost:hover:not(:disabled){background:#f1f5f9}
.tpw__btn--primary{background:#2563eb;color:#fff}
.tpw__btn--primary:hover:not(:disabled){background:#1d4ed8}
.tpw__btn--success{background:#059669;color:#fff}
.tpw__btn--success:hover:not(:disabled){background:#047857}
.tpw__btn--danger{background:#fff;border-color:#fecaca;color:#dc2626}
.tpw__btn--danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}
.tpw__footer-right{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.itickets-planning-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.itickets-planning-clear{color:#dc2626!important;border-color:#fecaca!important}
.itickets-planning-clear:hover{background:#fef2f2!important}
/* Wizard attività post-timer (taw) */
body.has-timer-activity-wizard-open{overflow:hidden}
.taw[hidden]{display:none!important}
.taw-is-hidden{display:none!important}
.taw__overlay{
    position:fixed;inset:0;z-index:14000;display:flex;align-items:center;justify-content:center;
    padding:10px;background:rgba(15,23,42,.55);backdrop-filter:blur(5px)
}
.taw__dialog{
    width:min(640px,100%);max-height:calc(100dvh - 20px);display:flex;flex-direction:column;
    background:#fff;border-radius:16px;box-shadow:0 25px 50px rgba(15,23,42,.28);overflow:hidden
}
.taw__dialog--wide{width:min(920px,100%)}
.taw__header{
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
    padding:12px 16px 10px;border-bottom:1px solid #e2e8f0;
    background:linear-gradient(135deg,#fef2f2 0%,#fff 50%);flex-shrink:0
}
.taw__eyebrow{margin:0 0 2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#dc2626}
.taw__header h2{margin:0;font-size:17px;font-weight:700;color:#0f172a;letter-spacing:-.02em}
.taw__subtitle{margin:2px 0 0;font-size:12px;color:#64748b;line-height:1.3}
.taw__banner{
    margin:6px 0 0;padding:6px 10px;border-radius:8px;font-size:11px;line-height:1.35;
    background:#fef2f2;border:1px solid #fecaca;color:#991b1b
}
.taw__banner.is-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.taw__stepper{
    display:flex;align-items:center;gap:0;padding:8px 14px 6px;
    border-bottom:1px solid #f1f5f9;background:#fafbfc;overflow-x:auto;flex-shrink:0
}
.taw__step{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;flex-shrink:0}
.taw__step-num{
    width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:700;background:#e2e8f0;color:#64748b;transition:all .2s ease
}
.taw__step-label{font-size:9px;font-weight:600;color:#94a3b8;text-align:center;white-space:nowrap}
.taw__step.is-active .taw__step-num{background:#dc2626;color:#fff;box-shadow:0 0 0 4px rgba(220,38,38,.18)}
.taw__step.is-active .taw__step-label{color:#b91c1c}
.taw__step.is-done .taw__step-num{background:#10b981;color:#fff}
.taw__step.is-done .taw__step-label{color:#059669}
.taw__step-line{flex:1;min-width:10px;height:2px;background:#e2e8f0;margin:0 4px;margin-bottom:14px}
.taw__body{padding:10px 16px 12px;overflow:visible;flex:0 1 auto;min-height:0}
.taw__pane{display:none}
.taw__pane.is-active{display:block;animation:tawFadeIn .2s ease}
@keyframes tawFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.taw__lead{margin:0 0 8px;font-size:12px;color:#64748b;line-height:1.4}
.taw__lead--compact{margin-bottom:6px}
.taw__field{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}
.taw__field--inline{margin-bottom:4px}
.taw__field-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.taw__esito-group{display:flex;gap:10px;flex-wrap:wrap}
.taw__esito-opt{display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:140px;padding:12px 14px;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#334155;background:#fff;transition:border-color .15s,background .15s}
.taw__esito-opt:hover{border-color:#cbd5e1}
.taw__esito-opt input{margin:0;width:16px;height:16px;cursor:pointer}
.taw__esito-opt:has(input:checked){border-color:#10b981;background:#ecfdf5;color:#047857}
.taw__editor-host{
    width:100%;
    min-height:200px
}
.taw__textarea{
    width:100%;min-height:180px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;
    font-size:13px;font-family:inherit;resize:vertical;line-height:1.45
}
.taw .tox-tinymce{
    border-radius:8px!important;
    min-height:240px!important
}
.taw .tox .tox-edit-area{
    min-height:180px!important
}
.taw .tox .tox-edit-area__iframe{
    min-height:180px!important;
    height:180px!important
}
.taw__textarea:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
/* Dettaglio ticket: editor attività (TinyMCE) */
.task-card-activity-note .activity-note-form{
    background:#fff;
    border:1px solid #cbd5e1;
    border-radius:10px
}
.task-card-activity-note .activity-note-form:hover{
    border-color:#94a3b8
}
.task-card-activity-note .activity-note-editor-host{
    width:100%;
    min-height:220px;
    box-sizing:border-box
}
.task-card-activity-note .activity-note-editor-host textarea[data-activity-note-input]{
    display:block;
    width:100%;
    min-height:220px!important;
    box-sizing:border-box
}
.task-card-activity-note .activity-note-editor-host .tox-tinymce{
    width:100%!important;
    box-sizing:border-box
}
.task-card-activity-note .tox-tinymce{
    border:1px solid #cbd5e1!important;
    border-radius:8px!important;
    min-height:220px!important;
    width:100%!important
}
.task-card-activity-note .tox .tox-edit-area{
    min-height:180px!important
}
.task-card-activity-note .tox .tox-edit-area__iframe{
    min-height:180px!important;
    height:180px!important
}
.task-card-activity-note textarea[data-activity-note-input]{
    width:100%;
    min-height:180px!important;
    max-height:600px;
    border-radius:8px;
    border:1px solid #cbd5e1;
    padding:8px 10px;
    font-size:.875rem;
    font-family:inherit;
    background:#fff;
    resize:vertical
}
.activity-note-file-row,
.taw__field--file-row{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:10px;
    flex:1 1 100%;
    min-width:0;
    width:100%
}
.activity-note-file-input,
.taw__field--file-row .taw__file{
    flex:0 0 50%;
    width:50%;
    max-width:50%;
    min-width:0;
    padding:4px 8px;
    border-radius:6px;
    border:1px solid #cbd5e1;
    background:#fff;
    font-size:.8rem;
    cursor:pointer;
    transition:border-color .2s ease
}
.activity-note-file-input:focus,
.taw__field--file-row .taw__file:focus{
    outline:none;
    border-color:#3b82f6
}
.activity-note-file-row__label,
.taw__field--file-row .taw__field-label{
    margin:0;
    font-size:.75rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#64748b;
    white-space:nowrap;
    line-height:1.2
}
.taw__file{
    width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;font-size:13px;background:#fff
}
.taw__field--file-row .taw__file{
    padding:8px 10px;
    border-radius:10px;
    font-size:13px
}
.taw__materials-slot{margin-top:6px;overflow:visible}
.taw__materials-slot[hidden]{display:none!important}
.activity-note-form.activity-required{
    border-color:#ef4444!important;
    background:linear-gradient(135deg,rgba(254,242,242,.95),rgba(254,226,226,.95))!important;
    box-shadow:0 0 0 4px rgba(239,68,68,.1),0 8px 24px rgba(239,68,68,.2)!important
}
.taw__materials-slot[data-taw-materials-fallback-hidden] [data-taw-materials-fallback]{display:none!important}
.taw__materials-slot .taw-materials-embedded{
    margin:0!important;padding:0.5rem 0.6rem!important;border-radius:8px!important
}
.taw__materials-slot .taw-materials-embedded>label{
    margin-bottom:0.35rem!important;font-size:0.75rem!important
}
.taw__materials-slot [data-activity-materials-block]>label input[type="checkbox"],
.taw__materials-slot [data-materials-toggle]{
    width:16px!important;
    height:16px!important;
    min-width:16px!important;
    flex-shrink:0!important;
    margin:0!important;
    padding:0!important;
    border:none!important;
    border-radius:4px!important;
    accent-color:#0284c7;
    cursor:pointer
}
.taw__materials-slot .materiale-riga-activity input[type="checkbox"]{
    width:14px!important;
    height:14px!important;
    min-width:14px!important;
    flex-shrink:0!important;
    margin:0!important;
    padding:0!important;
    border:none!important
}
.taw__materials-slot #materiali-righe-activity{gap:0.4rem!important}
.taw__materials-slot #btn-aggiungi-materiale-activity{
    margin-top:0.4rem!important;padding:0.35rem 0.5rem!important;font-size:0.75rem!important;
    width:auto!important;min-height:0!important
}
.taw__materials-slot .materiale-riga-activity{
    display:grid!important;
    grid-template-columns:6.5rem 1fr 1fr 4rem 4.5rem 2rem!important;
    grid-template-rows:auto auto auto!important;
    gap:0.3rem 0.35rem!important;
    padding:0.45rem 0.5rem!important;
    align-items:end!important;
    overflow:visible!important;
    min-width:0!important
}
.taw__materials-slot .materiale-riga-activity>div{min-width:0!important}
.taw__materials-slot .materiale-riga-activity>div:nth-child(1){grid-column:1;grid-row:1}
.taw__materials-slot .materiale-riga-activity>div:nth-child(2){grid-column:2/-1;grid-row:1}
.taw__materials-slot .materiale-riga-activity>div:nth-child(3){grid-column:1;grid-row:2}
.taw__materials-slot .materiale-riga-activity>div:nth-child(4){grid-column:2/4;grid-row:2}
.taw__materials-slot .materiale-riga-activity>div:nth-child(5){grid-column:4;grid-row:2}
.taw__materials-slot .materiale-riga-activity>div:nth-child(6){grid-column:5;grid-row:2}
.taw__materials-slot .materiale-riga-activity>div:nth-child(7){grid-column:6;grid-row:2;align-self:end}
.taw__materials-slot .materiale-riga-activity>div:nth-child(8){
    grid-column:1/-1;grid-row:3;margin-top:0!important;padding:0.3rem 0.4rem!important
}
.taw__materials-slot .materiale-riga-activity label{
    font-size:0.62rem!important;margin:0!important;line-height:1.2!important
}
.taw__materials-slot .materiale-riga-activity label span[style]{
    font-size:0.58rem!important
}
.taw__materials-slot .materiale-riga-activity input,
.taw__materials-slot .materiale-riga-activity .materiale-search-activity{
    padding:0.28rem 0.35rem!important;font-size:0.72rem!important;
    border-radius:5px!important
}
.taw__materials-slot .materiale-data-activity{width:100%!important;max-width:100%!important}
.taw__materials-slot .materiale-quantita-activity,
.taw__materials-slot .materiale-prezzo-activity{max-width:100%!important}
.taw__materials-slot .materiale-riga-activity .materiale-rimuovi-activity{
    padding:0.25rem 0.35rem!important;font-size:0.75rem!important
}
.taw__materials-slot .materiale-search-results-activity{max-height:140px!important;font-size:0.72rem!important}
@media (max-width:720px){
    .taw__dialog--wide{width:100%}
    .taw__materials-slot .materiale-riga-activity{
        grid-template-columns:1fr 1fr!important;
        grid-template-rows:auto!important
    }
    .taw__materials-slot .materiale-riga-activity>div:nth-child(1){grid-column:1;grid-row:auto}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(2){grid-column:1/-1;grid-row:auto}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(3){grid-column:1;grid-row:auto}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(4){grid-column:1/-1;grid-row:auto}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(5){grid-column:1;grid-row:auto}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(6){grid-column:2;grid-row:auto}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(7){grid-column:2;grid-row:auto;justify-self:end}
    .taw__materials-slot .materiale-riga-activity>div:nth-child(8){grid-column:1/-1}
}
.taw__error{margin:8px 0 0;font-size:12px;color:#dc2626;font-weight:600}
.taw__recap{padding:14px 16px;border-radius:12px;background:#f0fdf4;border:1px solid #bbf7d0}
.taw__recap-title{margin:0 0 10px;font-size:12px;font-weight:700;color:#166534;text-transform:uppercase;letter-spacing:.04em}
.taw__recap-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.taw__recap-list li{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#475569}
.taw__recap-list strong{color:#0f172a;font-weight:600;text-align:right;max-width:65%;word-break:break-word}
.taw__footer{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:10px 16px;border-top:1px solid #e2e8f0;background:#fafbfc;flex-shrink:0
}
.taw__footer-right{display:flex;align-items:center;gap:8px;margin-left:auto}
.taw__btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;
    cursor:pointer;border:1px solid transparent;transition:all .15s ease;white-space:nowrap
}
.taw__btn:disabled{opacity:.6;cursor:not-allowed}
.taw__btn--ghost{background:#fff;border-color:#e2e8f0;color:#475569}
.taw__btn--ghost:hover:not(:disabled){background:#f1f5f9}
.taw__btn--primary{background:#2563eb;color:#fff}
.taw__btn--primary:hover:not(:disabled){background:#1d4ed8}
.taw__btn--success{background:#059669;color:#fff}
.taw__btn--success:hover:not(:disabled){background:#047857}
.taw__btn--danger{color:#b91c1c;border-color:#fecaca;background:#fff}
.taw__btn--danger:hover:not(:disabled){background:#fef2f2}
.taw__time-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 12px
}
.taw__duration-input{
    display:flex;
    align-items:center;
    gap:6px
}
.taw__duration-part{
    width:4.25rem;
    min-width:0;
    text-align:center;
    padding:8px 6px
}
.taw__duration-sep{
    font-size:12px;
    font-weight:600;
    color:#64748b;
    flex-shrink:0
}
.taw__input{
    width:100%;
    padding:8px 10px;
    border:1px solid #e2e8f0;
    border-radius:8px;
    font-size:13px;
    font-family:inherit
}
.taw__input--readonly{background:#f8fafc;color:#0f172a;font-weight:600}
.taw__input--readonly[type="datetime-local"]{pointer-events:none;cursor:default}
.taw__status-grid{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:4px
}
.taw__status-btn{
    padding:8px 14px;
    font-size:12px;
    font-weight:600;
    font-family:inherit;
    border:1px solid #e2e8f0;
    border-radius:999px;
    background:#fff;
    color:#334155;
    cursor:pointer;
    transition:all .15s ease
}
.taw__status-btn:hover{border-color:#93c5fd;background:#eff6ff}
.taw__status-btn.is-selected{
    border-color:#2563eb;
    background:#2563eb;
    color:#fff;
    box-shadow:0 2px 8px rgba(37,99,235,.28)
}
.taw__status-btn--muted{color:#6366f1}
.taw__status-btn--muted.is-selected{background:#6366f1;border-color:#6366f1}
.taw__hint{
    margin:8px 0 0;
    font-size:11px;
    color:#92400e;
    line-height:1.35;
    padding:6px 8px;
    background:#fffbeb;
    border-radius:8px;
    border:1px solid #fde68a
}

/* Nuovo ODL — variante più robusta */
#tasks-quick-odl-wizard.taw--bold .taw__dialog{
    width:min(680px,100%);
    border-radius:20px;
    box-shadow:0 28px 60px rgba(15,23,42,.32);
}
#tasks-quick-odl-wizard.taw--bold .taw__header{
    padding:18px 22px 14px;
}
#tasks-quick-odl-wizard.taw--bold .taw__eyebrow{
    font-size:11px;
    margin-bottom:4px;
}
#tasks-quick-odl-wizard.taw--bold .taw__header h2{
    font-size:22px;
    line-height:1.2;
}
#tasks-quick-odl-wizard.taw--bold .taw__subtitle{
    font-size:14px;
    margin-top:6px;
    line-height:1.4;
}
#tasks-quick-odl-wizard.taw--bold .taw__stepper{
    padding:16px 22px 14px;
}
#tasks-quick-odl-wizard.taw--bold .taw__step{
    min-width:84px;
    gap:6px;
}
#tasks-quick-odl-wizard.taw--bold .taw__step-num{
    width:38px;
    height:38px;
    font-size:17px;
    font-weight:800;
}
#tasks-quick-odl-wizard.taw--bold .taw__step.is-active .taw__step-num{
    box-shadow:0 0 0 5px rgba(220,38,38,.22);
}
#tasks-quick-odl-wizard.taw--bold .taw__step-label{
    font-size:12px;
    font-weight:700;
}
#tasks-quick-odl-wizard.taw--bold .taw__step-line{
    height:3px;
    min-width:18px;
    margin:0 6px 24px;
    border-radius:2px;
}
#tasks-quick-odl-wizard.taw--bold .taw__body{
    padding:18px 22px 20px;
}
#tasks-quick-odl-wizard.taw--bold .taw__lead{
    font-size:14px;
    margin-bottom:14px;
    line-height:1.45;
}
#tasks-quick-odl-wizard.taw--bold .taw__field{
    gap:7px;
    margin-bottom:12px;
}
#tasks-quick-odl-wizard.taw--bold .taw__field-label{
    font-size:12px;
}
#tasks-quick-odl-wizard.taw--bold .taw__input,
#tasks-quick-odl-wizard.taw--bold .taw__textarea,
#tasks-quick-odl-wizard.taw--bold select.taw__input{
    padding:12px 14px;
    font-size:15px;
    border-radius:10px;
    border-width:2px;
}
#tasks-quick-odl-wizard.taw--bold .taw__textarea{
    min-height:200px;
    line-height:1.5;
}
#tasks-quick-odl-wizard.taw--bold .taw__duration-part{
    width:5rem;
    padding:12px 8px;
    font-size:15px;
    font-weight:600;
}
#tasks-quick-odl-wizard.taw--bold .taw__duration-sep{
    font-size:14px;
}
#tasks-quick-odl-wizard.taw--bold .taw__time-grid{
    gap:14px 16px;
}
#tasks-quick-odl-wizard.taw--bold .taw__footer{
    padding:14px 22px 16px;
}
#tasks-quick-odl-wizard.taw--bold .taw__footer-right{
    gap:10px;
}
#tasks-quick-odl-wizard.taw--bold .taw__btn{
    padding:13px 22px;
    font-size:15px;
    font-weight:700;
    border-radius:12px;
    min-height:48px;
}
#tasks-quick-odl-wizard.taw--bold .taw__error{
    font-size:13px;
    margin-top:10px;
}
#tasks-quick-odl-wizard.taw--bold .taw__hint{
    font-size:13px;
    padding:10px 12px;
    margin-top:10px;
}
#tasks-quick-odl-wizard.taw--bold .taw__field--file-row .taw__field-label{
    font-size:12px;
}
#tasks-quick-odl-wizard.taw--bold .taw__field--file-row .taw__file{
    padding:12px 14px;
    font-size:14px;
}
.taw__field-label-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap
}
.taw__dictate-btn,.btn.is-dictating,[data-speech-dictate].is-dictating,[data-activity-dictate].is-dictating,[data-taw-dictate].is-dictating{
    font-size:0.75rem;padding:4px 10px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;
    color:#475569;cursor:pointer;font-weight:600;font-family:inherit;line-height:1.2
}
.taw__dictate-btn:hover{background:#f1f5f9}
.is-dictating,.btn.is-dictating,[data-activity-dictate].is-dictating,[data-taw-dictate].is-dictating{
    background:#fee2e2!important;border-color:#fecaca!important;color:#dc2626!important
}
/* Dettaglio ticket — pianificazione */
.task-planning-card{
    margin:0;border:1px solid #e2e8f0;border-radius:14px;background:#fff;
    overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,.04)
}
.task-planning-card.is-fixed{border-left:4px solid #10b981}
.task-planning-card:not(.is-fixed){border-left:4px solid #94a3b8}
.task-planning-card__header{
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
    padding:14px 16px;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#f8fafc,#fff)
}
.task-planning-card__title-wrap{display:flex;align-items:flex-start;gap:10px;min-width:0}
.task-planning-card__icon{font-size:22px;line-height:1;flex-shrink:0}
.task-planning-card__title-wrap h4{margin:0;font-size:15px;font-weight:700;color:#0f172a}
.task-planning-card__title-wrap p{margin:4px 0 0;font-size:12px;color:#64748b;line-height:1.35}
.task-planning-card__summary{
    display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;
    padding:12px 16px;background:#f8fafc;border-bottom:1px solid #f1f5f9
}
.task-planning-card__date{font-size:18px;font-weight:700;color:#0f172a;letter-spacing:-.02em}
.task-planning-card__time{font-size:14px;font-weight:500;color:#475569}
.task-planning-card__duration{
    font-size:12px;font-weight:600;color:#64748b;background:#fff;
    padding:4px 10px;border-radius:999px;border:1px solid #e2e8f0
}
.task-planning-card__badge{
    display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
    padding:4px 10px;border-radius:999px
}
.task-planning-card__badge--fixed{background:#dcfce7;color:#15803d}
.task-planning-card__badge--draft{background:#f1f5f9;color:#64748b}
.task-planning-card__badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.task-planning-card__alert{font-size:12px;font-weight:600}
.task-planning-card__alert--warn{color:#d97706}
.task-planning-card__alert--danger{color:#dc2626}
.task-planning-card__body{padding:16px}
.task-planning-form{display:flex;flex-direction:column;gap:14px}
.task-planning-form__section-title{
    margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8
}
.task-planning-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:520px){.task-planning-form__grid{grid-template-columns:1fr}}
.task-planning-form__field{display:flex;flex-direction:column;gap:6px}
.task-planning-form__field>span{font-size:12px;font-weight:600;color:#64748b}
.task-planning-form__control{
    width:100%;padding:9px 12px;border:1px solid #e2e8f0;border-radius:10px;
    font-size:14px;font-family:inherit;background:#fff;transition:border-color .15s,box-shadow .15s
}
.task-planning-form__control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.task-planning-form__control:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}
.task-planning-form__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-top:4px}
.task-planning-form__submit{
    padding:10px 18px;background:#2563eb;color:#fff;border:none;border-radius:10px;
    font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s
}
.task-planning-form__submit:hover:not(:disabled){background:#1d4ed8}
.task-planning-form__submit:disabled{opacity:.55;cursor:not-allowed}
.task-planning-form__hint{margin:0;font-size:12px;color:#94a3b8;line-height:1.4}
.tasks-grid thead th.is-drag-source{
    opacity:.7;
    background:#e0f2fe;
    border-bottom-color:#60a5fa
}
.tasks-grid thead th.is-drag-target{
    box-shadow:inset 2px 0 0 #2563eb,inset -2px 0 0 #2563eb
}
.tasks-grid tbody tr{
    background:#ffffff;
    border-bottom:1px solid #e5e7eb;
    border-left:none
}
.tasks-grid tbody tr:nth-child(even){background:#f9fafb}
.tasks-grid tbody tr:hover{
    background:#eef2ff!important;
    box-shadow:none;
    transform:none
}
/* Hover su tutta la riga: ogni td deve prendere lo stesso sfondo del tr */
.tasks-grid tbody tr:hover > td{
    background:#eef2ff!important
}
.tasks-grid tbody tr.task-row--urgent:hover > td{
    background:#fef3c7!important
}
.tasks-grid tbody tr.task-row--overdue:hover > td{
    background:#fee2e2!important
}
.tasks-grid tbody tr.task-row--expanded:hover > td{
    background:#dbeafe!important
}
.tasks-grid tbody td{
    padding:6px 8px;
    font-size:12px;
    border-right:1px solid #e5e7eb
}
.tasks-grid tbody td.priority-cell{
    padding:10px 8px;
    overflow:visible;
    text-align:center;
    vertical-align:middle;
    line-height:1.35
}
.tasks-grid tbody td:last-child{border-right:none}
.tasks-grid-container{width:100%;min-height:420px;height:calc(100vh - 180px);max-height:calc(100vh - 180px);margin-bottom:8px;border-radius:12px;overflow:hidden}
.tasks-grid-filters-row th{
    background:#f8fafc;
    border-bottom:1px solid #e2e8f0;
    padding:4px 6px
}
.tasks-grid-filter{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:4px
}
.tasks-grid-filter-active{
    flex:1 0 100%;
    width:100%;
    font-size:10px;
    line-height:1.3;
    font-weight:600;
    color:#1d4ed8;
    padding:1px 0 0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.tasks-grid-filter-input[data-multi-filter-active="1"]{
    border-color:#60a5fa;
    background:#eff6ff;
    color:#1e3a8a
}
.tasks-grid-filter-btn.is-active{
    background:#dbeafe;
    color:#1d4ed8;
    box-shadow:inset 0 0 0 1px rgba(37,99,235,.35)
}
.tasks-grid-filter-btn.is-active:hover{
    color:#1e3a8a
}
.tasks-grid-filter-input{
    flex:1 1 auto;
    min-width:0;
    border-radius:8px;
    border:1px solid #cbd5e1;
    background:#ffffff;
    color:#0f172a;
    padding:4px 10px;
    font-size:11px;
    box-shadow:0 0 0 1px rgba(148,163,184,.15)
}
.tasks-grid-filter-input::placeholder{color:#9ca3af}
.tasks-grid-filter-input:focus{
    outline:none;
    border-color:#60a5fa;
    box-shadow:0 0 0 2px rgba(96,165,250,.4)
}
.tasks-grid-filter-btn{
    border-radius:999px;
    border:none;
    background:transparent;
    color:#64748b;
    width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    cursor:pointer;
    padding:0;
    box-shadow:none
}
.tasks-grid-filter-btn:hover{
    background:transparent;
    color:#0f172a;
    border-color:transparent;
    box-shadow:none
}
.tasks-grid-filter-icon{display:inline-block;transform:scale(.9)}
.tasks-legacy-table{display:block}

/* Contenitore dettagli sotto le righe nella tabella tasks */
.task-details-inline{
    background:#f8fafc;
    border-top:1px solid rgba(148,163,184,.22);
    padding:0;
    margin:0;
}

/* Menu filtri multiselezione */
.tasks-filter-menu{
    position:fixed;
    z-index:1200;
    min-width:220px;
    background:#ffffff;
    color:#0f172a;
    border-radius:12px;
    border:1px solid #e2e8f0;
    box-shadow:0 18px 45px rgba(15,23,42,.18);
    overflow:hidden;
}
.tasks-filter-menu-inner{
    padding:8px 10px 10px 10px;
    max-height:260px;
    overflow:auto;
    font-size:12px
}
.tasks-filter-menu-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:6px;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#64748b
}
.tasks-filter-menu-header button{
    border:none;
    background:transparent;
    color:#94a3b8;
    cursor:pointer;
    font-size:14px;
    padding:0 2px
}
.tasks-filter-menu-header button:hover{color:#0f172a}
.tasks-filter-menu-actions{
    display:flex;
    gap:6px;
    margin-bottom:6px
}
.tasks-filter-menu-actions button{
    flex:1 1 auto;
    border-radius:999px;
    border:1px solid #e2e8f0;
    background:#f8fafc;
    color:#475569;
    font-size:11px;
    padding:3px 8px;
    cursor:pointer
}
.tasks-filter-menu-actions button:hover{
    background:#e0f2fe;
    border-color:#60a5fa;
    color:#0f172a
}
.tasks-filter-menu-list{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:11px
}
.tasks-filter-menu-list label{
    display:flex;
    align-items:center;
    gap:6px;
    cursor:pointer;
    padding:2px 0
}
.tasks-filter-menu-list input[type="checkbox"]{
    width:12px;
    height:12px;
    cursor:pointer;
    accent-color:#2563eb
}
.tasks-filter-menu--status{
    min-width:268px;
    max-width:320px
}
.tasks-filter-menu--status .tasks-filter-menu-inner{
    max-height:none;
    overflow:visible;
    padding:10px 12px 12px
}
.tasks-filter-menu-list--status{
    gap:0;
    padding:0
}
.tasks-filter-status-block{
    margin:0 0 10px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc;
    overflow:hidden
}
.tasks-filter-status-block:last-child{
    margin-bottom:0
}
.tasks-filter-status-group,
.tasks-filter-status-item{
    display:flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    margin:0;
    border-radius:0;
    transition:background .12s ease,color .12s ease
}
.tasks-filter-status-group{
    font-weight:700;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#475569;
    padding:8px 12px;
    background:linear-gradient(to bottom,#f8fafc,#f1f5f9);
    border-bottom:1px solid #e2e8f0
}
.tasks-filter-status-group:hover{
    background:#eef2f7;
    color:#334155
}
.tasks-filter-status-group.is-all-checked{
    color:#1e40af
}
.tasks-filter-status-group.is-all-checked .tasks-filter-status-group__label{
    color:inherit
}
.tasks-filter-status-items{
    display:flex;
    flex-direction:column;
    padding:4px 0 6px
}
.tasks-filter-status-item{
    font-weight:500;
    font-size:12px;
    color:#334155;
    padding:6px 12px 6px 34px;
    position:relative
}
.tasks-filter-status-item:hover{
    background:#f1f5f9;
    color:#0f172a
}
.tasks-filter-status-item::before{
    content:'';
    position:absolute;
    left:18px;
    top:50%;
    transform:translateY(-50%);
    width:4px;
    height:4px;
    border-radius:50%;
    background:#94a3b8;
    transition:background .12s ease
}
.tasks-filter-status-item.is-selected{
    background:#eff6ff;
    color:#1e3a8a
}
.tasks-filter-status-item.is-selected:hover{
    background:#dbeafe;
    color:#1e3a8a
}
.tasks-filter-status-item.is-selected::before{
    background:#3b82f6
}
.tasks-filter-status-group input[type="checkbox"],
.tasks-filter-status-item input[type="checkbox"]{
    accent-color:#2563eb
}
.tasks-filter-status-group__label,
.tasks-filter-status-item__label{
    flex:1;
    line-height:1.35;
    color:inherit
}

.badge{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:#fff;margin:0 6px 4px 0}
.badge.ok{background:rgba(22,163,74,.08);color:#166534;border-color:rgba(22,163,74,.18)}
.badge.warn{background:rgba(245,158,11,.12);color:#92400e;border-color:rgba(245,158,11,.18)}
.badge.danger{background:rgba(220,38,38,.12);color:#7f1d1d;border-color:rgba(220,38,38,.2)}
.badge.info{background:rgba(8,145,178,.1);color:#0c4a6e;border-color:rgba(8,145,178,.2)}
.badge.muted{background:#fff;color:#6b7280}
.search{display:flex;gap:10px}
.footer{padding:20px 0;color:#9ca3af}

/* Detail page enhancements */
.grid{display:grid;gap:18px}
.grid.two{grid-template-columns:1fr 1fr}
@media (max-width: 1100px){.grid.two{grid-template-columns:1fr}}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center}
.kpi h4{margin:0 0 6px 0;font-size:13px;color:var(--muted)}
.kpi .value{font-size:20px;font-weight:800}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill{padding:8px 12px;border-radius:999px;background:#f3f4f6;border:1px solid var(--border);font-size:12px;color:#111827}
.pill-note{background:rgba(59,130,246,.12);color:#1d4ed8;border-color:rgba(59,130,246,.24)}
.hero-card{display:flex;flex-direction:column;gap:18px}
.hero-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.hero-actions{display:flex;align-items:center;gap:10px}
.client-view-toggle{display:flex;gap:8px;margin-bottom:16px;align-items:center}
.client-view-toggle .view-toggle[data-pane="log"]{margin-left:auto}
.view-toggle{padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;transition:.2s;box-shadow:0 2px 6px rgba(15,23,42,.08)}
.view-toggle:hover{background:#f1f5f9;color:var(--text)}
.view-toggle.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 12px 26px rgba(31,111,235,.25)}
.client-pane{display:none}
.client-pane.active{display:block}
.hero-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.summary-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.summary-meta-grid .label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin-bottom:4px}
.summary-meta-grid .value{font-size:15px;font-weight:600;color:#0f172a}
.summary-meta-grid .value.subtle{font-weight:500;color:#64748b}
.alert{padding:12px 16px;border-radius:12px;border:1px solid transparent;font-size:14px;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.alert-success{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.25);color:#0f766e}
.alert-error{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.25);color:#b91c1c}
.form-inline{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.form-inline input:not([type=checkbox]),.form-inline select{flex:1;min-width:180px}
.provider-field{display:flex;gap:8px;align-items:center;flex:1;min-width:220px}
.provider-field select{flex:1}
.provider-field input{flex:1;display:none}
.provider-field.other-active input{display:block}
.provider-field.other-active select{flex:0.6}
.accent{color:#1f6feb}
.fw-500{font-weight:500}
.user-pill{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid rgba(148,163,184,.18);background:rgba(255,255,255,.05);backdrop-filter:blur(6px)}
.user-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#1f6feb,#2563eb);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.04em;box-shadow:0 12px 24px rgba(37,99,235,.25)}
.user-info{display:flex;flex-direction:column;line-height:1.25}
.user-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}
.user-name{font-size:15px;font-weight:600;color:#0f172a}
.sidebar-user{
    margin-top:auto;
    padding:6px 15px 18px;
    position:sticky;
    bottom:0;
    background:linear-gradient(0deg,rgba(12,18,34,.98) 0%,rgba(12,18,34,.75) 70%,transparent 100%);
}
.sidebar-user .user-pill{
    gap:11px;
    padding:10px 12px;
    border-radius:14px;
    background:linear-gradient(145deg,rgba(30,41,59,.75),rgba(15,23,42,.9));
    border:1px solid rgba(129,140,248,.18);
    box-shadow:0 8px 24px rgba(8,11,22,.45),0 0 0 1px rgba(255,255,255,.03) inset;
    backdrop-filter:blur(10px);
    transition:border-color .25s ease,box-shadow .25s ease;
}
.sidebar-user .user-pill:hover{
    border-color:rgba(167,139,250,.28);
    box-shadow:0 16px 36px rgba(8,11,22,.55),0 0 20px rgba(99,102,241,.08);
}
.sidebar-user .user-info{line-height:1.3}
.sidebar-user .user-label{font-size:10px;color:#94a3b8;letter-spacing:.1em}
.sidebar-user .user-name{font-size:14px;color:#f8fafc;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.sidebar-user .user-avatar{
    width:36px;
    height:36px;
    font-size:14px;
    background:linear-gradient(135deg,#3b82f6 0%,#6366f1 50%,#8b5cf6 100%);
    box-shadow:0 6px 18px rgba(99,102,241,.35),0 0 0 2px rgba(167,139,250,.15);
}
.sidebar-user .user-links{gap:12px;margin-top:6px}
.user-links{display:flex;gap:14px;margin-top:8px}
.user-links a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:12px;
    font-weight:600;
    color:#a5b4fc;
    text-decoration:none;
    padding:4px 0;
    transition:color .2s ease,transform .2s ease;
}
.user-links a:hover{color:#e0e7ff;transform:translateX(2px)}
.sidebar-user .user-links a{font-size:12px;padding:3px 0;gap:6px}
.sidebar-user .user-links a svg{width:15px;height:15px}
.user-links a svg{width:16px;height:16px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1px solid rgba(148,163,184,.28);background:#fff;color:#1f2937;cursor:pointer;transition:all .2s ease;padding:0;margin:0 2px;box-shadow:0 6px 14px rgba(15,23,42,.08)}
.icon-btn svg{width:16px;height:16px;stroke:currentColor}
.icon-btn:hover{background:#eef2ff;border-color:#c7d2fe;color:#1d4ed8}
.icon-btn.danger{color:#dc2626;border-color:rgba(248,113,113,.38);background:#fff5f5}
.icon-btn.danger:hover{background:#fee2e2;color:#b91c1c;border-color:rgba(248,113,113,.6)}
.table .actions-cell{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.inline-edit-row{display:none;background:linear-gradient(170deg,rgba(248,250,252,.94),#ffffff)}
.inline-edit-row.open{display:table-row}
.inline-edit-row td{padding:0;border-bottom:1px solid rgba(148,163,184,.2)}
.inline-edit-form{padding:16px;background:rgba(248,250,252,.9)}
.inline-edit-form .form-inline{gap:10px;flex-wrap:wrap}
.inline-edit-form .actions{margin-top:12px}
.table .empty-state{text-align:center;color:#64748b}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(148,163,184,.12);color:#1f2937;font-size:12px;font-weight:600}
.chip .icon{font-size:14px}
.domains-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;background:#fff;border:1px solid var(--border);padding:12px 14px;border-radius:12px;box-shadow:none}
.domains-filter{margin-bottom:12px}
.domains-filter .filter-field{display:flex;flex-direction:column;gap:6px;min-width:180px}
.domains-filter label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.domains-filter input,.domains-filter select{min-width:180px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--text);padding:10px 12px}
.domains-filter input::placeholder{color:#94a3b8}
.domains-filter .filter-actions{display:flex;gap:10px;align-items:center;margin-left:auto}
.domains-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0 12px 0}
.sort-pills{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sort-label{font-size:12px;letter-spacing:.08em;color:#94a3b8;text-transform:uppercase}
.pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.25);background:#fff;color:#1f2937;font-weight:600;font-size:13px;text-decoration:none;transition:.2s}
.pill:hover{border-color:#2563eb;color:#2563eb}
.pill.active{background:linear-gradient(135deg,#2563eb,#1f6feb);color:#fff;border-color:transparent;box-shadow:0 14px 24px rgba(37,99,235,.3)}
.icon-pill{display:inline-flex;width:38px;height:38px;border-radius:12px;border:1px solid rgba(148,163,184,.25);justify-content:center;align-items:center;color:#1f2937;text-decoration:none;transition:.2s}
.icon-pill:hover{color:#2563eb;border-color:#2563eb}
.icon-pill.active{background:#2563eb;color:#fff;border-color:#2563eb}
.toolbar-actions{display:flex;align-items:center;gap:12px}
.checkbox{display:inline-flex;align-items:center;gap:8px}
.checkbox input{width:auto}
.checkbox span{white-space:nowrap}
.vtabs{display:flex;gap:16px}
.vtabs-nav{display:flex;flex-direction:column;gap:6px;min-width:220px}
.vtab-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#1f2937;font-weight:600;cursor:pointer}
.vtab-btn.active{background:linear-gradient(135deg,#0f172a,#1f2937);color:#fff;border-color:rgba(15,23,42,.6);box-shadow:0 10px 20px rgba(15,23,42,.18)}
.vtabs-content{flex:1}
.vtab-pane{display:none}
.vtab-pane.active{display:block}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.view-switcher{
    display:flex;
    align-items:center;
    gap:8px;
}
.view-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 18px;
    border-radius:999px;
    border:1px solid rgba(148,163,184,.32);
    background:#f8fafc;
    color:#0f172a;
    font-weight:600;
    font-size:13px;
    text-decoration:none;
    transition:background .18s ease, color .18s ease, box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}
.view-pill:hover{
    border-color:#2563eb;
    color:#2563eb;
    background:#eff6ff;
}
.view-pill.active{
    background:radial-gradient(circle at 0% 0%,rgba(255,255,255,.15),transparent 55%), linear-gradient(135deg,#020617,#0f172a);
    color:#f9fafb;
    border-color:rgba(15,23,42,.85);
    box-shadow:0 18px 45px rgba(15,23,42,.55);
    transform:translateY(-1px);
}
.domain-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.domain-card{position:relative;display:flex;flex-direction:column;background:linear-gradient(155deg,#ffffff 0%,rgba(248,250,252,.92) 100%);border-radius:20px;border:1px solid rgba(148,163,184,.18);box-shadow:0 22px 48px rgba(15,23,42,.16);padding:18px;overflow:hidden;transition:transform .2s, box-shadow .2s}
.domain-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:.3s;background:linear-gradient(135deg,rgba(37,99,235,.2),rgba(30,64,175,.12))}
.domain-card:hover{transform:translateY(-4px);box-shadow:0 28px 54px rgba(15,23,42,.22)}
.domain-card:hover::after{opacity:1}
.domain-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}
.domain-card-title{display:flex;flex-direction:column;gap:6px}
.domain-name{font-size:18px;font-weight:700;color:#0f172a}
.state-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600;background:rgba(241,245,249,.8);color:#1f2937;border:1px solid rgba(148,163,184,.25)}
.state-warn .state-chip{background:rgba(251,191,36,.18);color:#92400e;border-color:rgba(251,191,36,.35)}
.state-danger .state-chip{background:rgba(248,113,113,.18);color:#b91c1c;border-color:rgba(248,113,113,.35)}
.state-ok .state-chip{background:rgba(74,222,128,.18);color:#166534;border-color:rgba(74,222,128,.3)}
.domain-card-tags{display:flex;gap:6px;align-items:center}
.tag{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;font-size:11px;font-weight:600;background:rgba(226,232,240,.7);color:#1f2937;text-transform:uppercase;letter-spacing:.05em}
.tag.success{background:rgba(74,222,128,.16);color:#166534}
.tag.muted{background:rgba(226,232,240,.4);color:#64748b}
.domain-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:16px}
.domain-info{display:flex;flex-direction:column;gap:4px}
.domain-info .label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}
.domain-info .value{font-size:14px;font-weight:600;color:#0f172a}
.domain-card-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:16px}
.service-box{padding:14px;border-radius:16px;background:rgba(241,245,249,.9);border:1px solid rgba(148,163,184,.2);display:flex;flex-direction:column;gap:6px}
.service-box .service-head{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#64748b}
.service-box .service-title{font-weight:700;color:#1f2937;text-transform:none;letter-spacing:0}
.service-box .service-value{font-size:16px;font-weight:700;color:#0f172a}
.service-box .service-value.accent{color:#1f6feb}
.service-box .service-value.muted{color:#94a3b8;font-weight:600}
.service-box .service-meta{font-size:12px;color:#475569}
.service-box .service-meta.danger{color:#b91c1c;font-weight:600}
.service-box .service-meta.muted{color:#94a3b8}
.domain-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}
.domain-card-footer .btn{padding:10px 16px;border-radius:12px;font-weight:600}
.domain-card-footer .footnote{font-size:12px;color:#64748b}
.domains-view{display:flex;flex-direction:column;gap:22px}
.domains-view-table .domain-gallery{display:none}
.domains-view-cards .domain-table-wrapper{display:none}
.domain-table-wrapper{border-radius:20px;border:1px solid rgba(148,163,184,.16);background:linear-gradient(160deg,#ffffff 0%,rgba(248,250,252,.92) 100%);box-shadow:0 20px 42px rgba(15,23,42,.12);overflow:hidden}
.domain-table{width:100%;border-collapse:separate;border-spacing:0}
.domain-table thead th{background:rgba(241,245,249,.65);color:#1f2937;font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:14px 18px;border-bottom:1px solid rgba(148,163,184,.22)}
.domain-table thead th a{text-decoration:none;color:inherit;display:flex;align-items:center;gap:6px}
.domain-table tbody td{padding:14px 18px;border-bottom:1px solid rgba(148,163,184,.16);vertical-align:middle}
.domain-table .col-domain{width:20%}
.domain-table .col-days{width:7%}
.domain-table .col-narrow{width:8%}
.domain-table tbody tr:last-child td{border-bottom:none}
.domain-table tbody tr{transition:background .2s}
.domain-table tbody tr:hover{background:rgba(226,232,240,.45)}
.domain-table tbody tr.state-warn{border-left:4px solid rgba(251,191,36,.6)}
.domain-table tbody tr.state-danger{border-left:4px solid rgba(248,113,113,.65)}
.domain-table tbody tr.state-ok{border-left:4px solid rgba(34,197,94,.5)}
.domain-table tbody tr.state-muted{border-left:4px solid rgba(148,163,184,.4)}
.cell-title{font-weight:700;color:#0f172a;font-size:15px}
.cell-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:#64748b}
.cell-subtle{color:#94a3b8;font-size:12px;font-weight:500}
.domain-table td,.domain-table th{white-space:nowrap}
.cell-stack{display:flex;flex-direction:column;gap:4px}
.sort-arrow{font-size:11px;color:#64748b}
.checklist-block{display:flex;flex-direction:column;gap:14px}
.checklist-list{display:flex;flex-direction:column;gap:12px}
.checklist-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:linear-gradient(170deg,rgba(248,250,252,.96),#ffffff);box-shadow:0 8px 22px rgba(15,23,42,.06);transition:background .2s, border-color .2s}
.checklist-row.done{background:rgba(226,232,240,.55);border-color:rgba(148,163,184,.28);opacity:.75}
.checklist-toggle{margin:0}
.checklist-check{width:32px;height:32px;border-radius:50%;border:1px solid rgba(148,163,184,.38);background:#fff;color:#2563eb;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 6px 14px rgba(15,23,42,.08)}
.checklist-row.done .checklist-check{background:linear-gradient(135deg,#34d399,#059669);border-color:rgba(16,185,129,.4);color:#fff;box-shadow:0 10px 20px rgba(5,150,105,.25)}
.check-icon{font-size:18px;line-height:1}
.checklist-body{flex:1;display:flex;flex-direction:column;gap:6px}
.checklist-title{font-size:14px;font-weight:600;color:#0f172a}
.checklist-note{font-size:13px;color:#475569;line-height:1.45}
.checklist-meta{font-size:12px;color:#64748b}
.checklist-delete{margin:0}
.checklist-form{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px dashed rgba(148,163,184,.36);border-radius:12px;background:rgba(248,250,252,.78)}
.checklist-form input{padding:12px;font-size:14px;border-radius:10px;border:1px solid rgba(148,163,184,.28);background:#fff}
.checklist-form input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.18);outline:none}
.checklist-form .btn{align-self:flex-start}
.checklist-form-fields{display:flex;flex-direction:column;gap:8px}
.empty-state{margin:0;font-size:13px;padding:10px 0}
@media (min-width: 720px){
	.checklist-form-fields{flex-direction:row;gap:10px}
	.checklist-form-fields input{flex:1}
}
.auth-body{background:#f8fafc}
.auth-layout{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px}
.auth-main{width:100%;max-width:360px}
.auth-logo{text-align:center;margin-bottom:24px}
.auth-logo img{width:120px;height:auto}
.auth-card{background:#ffffff;border:1px solid rgba(148,163,184,.2);border-radius:18px;padding:28px;box-shadow:0 18px 36px rgba(15,23,42,.08)}
.auth-card h2{margin:0 0 18px 0;text-align:center;font-size:22px;color:#0f172a}
.auth-card .btn{width:100%;justify-content:center}
.auth-footer{margin-top:32px;color:#94a3b8;font-size:12px;text-align:center}
.auth-field{display:block;margin-bottom:16px}
.auth-field input{width:100%;padding:14px 16px;border:1px solid rgba(148,163,184,.32);border-radius:14px;font-size:15px;color:#0f172a;background:#fff;transition:border-color .15s, box-shadow .15s}
.auth-field input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.18);outline:none}
.auth-form .btn{margin-top:6px}
.badge.accent{background:rgba(31,111,235,.1);color:#1f6feb;border-color:rgba(31,111,235,.25)}
.accordion{display:flex;flex-direction:column;gap:12px}
.acc-item{border:1px solid rgba(148,163,184,.28);border-radius:18px;background:linear-gradient(160deg,rgba(248,250,252,.92),#ffffff);box-shadow:0 20px 42px rgba(15,23,42,.08);position:relative;overflow:hidden}
.acc-item::before{display:none}
.acc-item.state-ok{border-color:rgba(16,185,129,.22)}
.acc-item.state-warn{border-color:rgba(249,115,22,.22)}
.acc-item.state-danger{border-color:rgba(248,113,113,.26)}
.acc-item.state-muted{border-color:rgba(148,163,184,.26)}
.acc-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;background:#fbfdff;border-bottom:1px solid var(--border);border-radius:14px 14px 0 0}
.acc-title{display:flex;gap:10px;align-items:center;font-weight:700}
.acc-meta{display:flex;gap:8px;flex-wrap:wrap}
.acc-arrow{transition:.2s}
.acc-item.open .acc-arrow{transform:rotate(90deg)}
.acc-body{display:none;padding:12px 16px 16px 16px}
.acc-item.open .acc-body{display:block}
.section-chip{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;font-size:12px}
.subtle{color:var(--muted)}
.divider{height:1px;background:var(--border);margin:8px 0}
.form-compact input,.form-compact select{padding:10px;border-radius:10px}
.form-compact .btn{padding:10px 12px;border-radius:10px}
.section-bar{background:#eef6ff;border:1px solid #cfe3ff;color:#0b4aa2;padding:8px 12px;border-radius:10px;margin:6px 0 10px 0;font-weight:600}
.btn.small{padding:8px 10px;border-radius:10px}
.note-form{display:flex;flex-direction:column;gap:16px}
.note-textarea{width:100%;min-height:220px;padding:18px 20px;border:1px solid rgba(148,163,184,.32);border-radius:16px;background:linear-gradient(180deg,rgba(248,250,252,.95),#ffffff);font-size:15px;color:#0f172a;line-height:1.6;letter-spacing:.01em;resize:vertical;box-shadow:inset 0 1px 2px rgba(15,23,42,.05)}
.note-textarea:focus{border-color:rgba(148,163,184,.58);box-shadow:0 0 0 4px rgba(148,163,184,.18)}
.note-meta{font-size:12px;color:#64748b}
.pin-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}
.pin-toggle input{width:18px;height:18px}
.note-history{margin-top:18px;border-top:1px solid rgba(148,163,184,.2);padding-top:16px}
.note-history-head{font-weight:600;font-size:14px;color:#1f2937;margin-bottom:12px}
.note-history ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.note-history li{padding:12px 14px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.04);display:flex;flex-direction:column;gap:8px}
.note-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.note-entry-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:#64748b}
.note-entry-actions{margin:0}
.note-entry-actions .btn-link{font-size:12px}
.note-entry-text{font-size:14px;color:#0f172a;line-height:1.45}
.note-columns{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:12px}
.note-column{display:flex;flex-direction:column;gap:18px}
.timeline-section{display:flex;flex-direction:column;gap:14px}
.timeline-section h4{font-size:14px;font-weight:600;color:#1f2937;margin:0}
.access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.access-card{border:1px solid rgba(148,163,184,.22);border-radius:16px;background:linear-gradient(170deg,#ffffff 0%,rgba(248,250,252,.96) 100%);box-shadow:0 16px 30px rgba(15,23,42,.08);padding:18px;display:flex;flex-direction:column;gap:16px}
.access-form{display:flex;flex-direction:column;gap:16px}
.access-block{display:flex;flex-direction:column;gap:10px}
.access-block h5{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#475569}
.access-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.access-fields label span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:6px;display:block}
.access-card textarea{min-height:110px;border-radius:12px}
.domain-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:8px 0 16px;padding:14px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:rgba(248,250,252,.75)}
.domain-overview .label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:4px}
.domain-overview .value{font-size:15px;font-weight:600;color:#0f172a}
.domain-overview .badges{display:flex;flex-wrap:wrap;gap:8px}
.mini-pill{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#0f172a;font-size:12px;font-weight:500;border:1px solid rgba(148,163,184,.2)}
.mini-pill strong{font-weight:700;color:#1e293b}
.mini-pill.accent{background:rgba(37,99,235,.12);color:#1d4ed8;border-color:rgba(37,99,235,.24)}
.timeline-card{background:linear-gradient(160deg,rgba(248,250,252,.92),#ffffff);box-shadow:0 18px 36px rgba(15,23,42,.08)}
.timeline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;position:relative}
.timeline-item{display:flex;position:relative}
.timeline-content{background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:10px 14px;flex:1;box-shadow:0 6px 14px rgba(15,23,42,.04)}
.timeline-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:4px}
.timeline-user{font-size:12px;color:#1f2937;font-weight:600;margin-bottom:4px}
.timeline-message{font-size:14px;color:#0f172a;margin-bottom:4px}
.timeline-icon{margin-right:6px;font-size:14px}
.timeline-meta{font-size:12px;color:#94a3b8;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}
.timeline-meta-list{list-style:none;margin:6px 0 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}
.timeline-meta-list li span{font-weight:600;color:#1e293b;margin-right:4px}
.timeline-action{margin:0}
.btn-link{background:none;border:none;padding:0;color:#1d4ed8;font-size:12px;cursor:pointer;text-decoration:underline}
.btn-link:hover{color:#1e40af}
.note-entry-actions .btn-link.danger,.btn-link.danger{color:#dc2626}
.btn-link.danger:hover{color:#b91c1c}
.pinned-note{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid rgba(37,99,235,.22);border-radius:12px;background:rgba(59,130,246,.08);margin-bottom:18px}
.pin-icon{font-size:18px}
.pin-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#1d4ed8;margin-bottom:4px;font-weight:600}
.pin-text{font-size:14px;color:#0f172a;line-height:1.5}
.pin-meta{font-size:12px;margin-top:6px}
@media (max-width: 900px){
    /* Sidebar come drawer scorrevole off-canvas */
    .sidebar{
        position:fixed;
        top:0;
        left:0;
        bottom:0;
        height:100dvh;
        max-height:100dvh;
        width:min(85vw,320px);
        transform:translateX(-100%);
        transition:transform .36s cubic-bezier(.4,0,.2,1),box-shadow .36s ease;
        z-index:1000;
        box-shadow:none;
        border-right:1px solid rgba(99,102,241,.12);
    }
    body.sidebar-open .sidebar{
        transform:translateX(0);
        box-shadow:22px 0 70px rgba(8,11,22,.6);
    }
    .sidebar-brand a{font-size:inherit}
    .sidebar-brand .logo{width:120px;height:auto}
    .sidebar-nav a span{display:inline}

    .sidebar-toggle{display:inline-flex}
    .sidebar-close{display:inline-flex}
    .sidebar-overlay{display:block}
    body.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}
    body.sidebar-open{overflow:hidden}

    .container{padding:12px}
    .card.narrow,.form-card{max-width:100%;margin:16px auto}
    .table-modern td,.table-modern th{white-space:normal}
}
.table.table-compact thead th{padding:6px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.table.table-compact tbody td{padding:6px 8px;font-size:12px;line-height:1.2}
.table.table-compact tbody td.priority-cell{
    padding:10px 8px;
    line-height:1.35;
    overflow:visible;
    vertical-align:middle;
    text-align:center
}
.table.table-compact .priority-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    padding:0;
    border-radius:999px;
    font-size:11px;
    font-weight:600;
    margin:0 auto
}
.table.table-compact .priority-label{display:none}
.table.table-compact .priority-cell .priority-dot{
    margin:0;
    box-shadow:0 0 0 2px rgba(148,163,184,.18)
}
.table.table-compact .priority-due{
    display:block;
    width:100%;
    text-align:center;
    line-height:1.35;
    font-size:10px
}
.table.table-compact .task-title-text{font-size:13px}
.table.table-compact .client-name,
.table.table-compact .task-category,
.table.table-compact .task-assignee,
.table.table-compact .task-assignees .assignee-name,
.table.table-compact .task-due__date,
.table.table-compact .task-due__status,
.table.table-compact .status-pill{font-size:11px}
.table.table-compact .status-pill{padding:3px 8px}
.table.table-compact .task-time{font-size:11px;gap:4px}
.table.table-compact .task-time .time-chip,
.table.table-compact .task-time .time-main{padding:0;background:transparent;border:none}
.table.table-compact .td-actions .btn{padding:4px 8px;font-size:11px}
.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.service-card{position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(148,163,184,.22);box-shadow:0 16px 34px rgba(15,23,42,.08);background:linear-gradient(170deg,#ffffff 0%,rgba(248,250,252,.97) 100%);padding-top:14px}
.service-card .section-header{margin:0 0 10px;padding-bottom:10px;border-bottom:3px solid transparent;display:flex;align-items:center;justify-content:space-between}
.service-card h4{font-weight:600;color:#1f2937;letter-spacing:.01em}
.service-card-ssl .section-header{border-bottom-color:rgba(30,64,175,.3)}
.service-card-cookie .section-header{border-bottom-color:rgba(99,102,241,.28)}
.service-card-weglot .section-header{border-bottom-color:rgba(13,148,136,.28)}
.service-card-manutenzione .section-header{border-bottom-color:rgba(234,88,12,.3)}
.service-card-backup .section-header{border-bottom-color:rgba(14,165,233,.32)}
@media (max-width: 1100px){.services-grid{grid-template-columns:1fr}}
.note-columns{grid-template-columns:1fr}
.access-grid{grid-template-columns:1fr}
.table-compact thead th{padding:6px 10px;font-size:12px;color:#475569;background:transparent;border-bottom:1px solid rgba(148,163,184,.18);font-weight:600}
.table-compact tbody td{padding:8px 10px;font-size:13px}
.table-compact tbody tr:hover{background:rgba(248,250,252,.8)}
.table-compact select:not(.billing-doc-hub-state-select){height:28px;line-height:28px;padding:2px 8px}
.status-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, #64748b 50%), linear-gradient(135deg, #64748b 50%, transparent 50%), linear-gradient(to right, #e5e7eb, #e5e7eb);background-position:calc(100% - 18px) calc(50% - 3px), calc(100% - 13px) calc(50% - 3px), calc(100% - 2.2em) 50%;background-size:5px 5px,5px 5px,1px 60%;background-repeat:no-repeat;padding-right:2.6em;border-color:rgba(148,163,184,.4)}
.table-compact .icon-btn{height:28px;width:28px}
.settings-form{display:flex;flex-direction:column;gap:18px}
.tabs{display:flex;gap:6px;align-items:center}
.tab{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;color:#475569;font-weight:700;font-size:13px;cursor:pointer}
.tab.active{background:linear-gradient(135deg,#2563eb,#1f6feb);color:#fff;border-color:transparent;box-shadow:0 10px 20px rgba(31,111,235,.25)}
.settings-tab{display:none;flex-direction:column;gap:14px}
.settings-tab.active{display:flex}

/* Utenti — permessi per app (layout verticale, senza scroll orizzontale) */
.app-member-roles-board{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.app-member-roles-user{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#f8fafc}
.app-member-roles-user__name{margin:0 0 10px;font-size:0.95rem;font-weight:600;color:#0f172a}
.app-member-roles-user__groups{display:flex;flex-wrap:wrap;gap:10px 14px}
.app-member-roles-item{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 220px;max-width:100%}
.app-member-roles-item__group{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:#64748b}
.app-member-roles-item__select{width:100%;max-width:100%;font-size:0.8125rem;padding:0.4rem 0.5rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
.app-member-roles-item--forced .app-member-roles-item__select{border-color:#f59e0b;background:#fffbeb}
[data-users-tabs]{flex-wrap:wrap;gap:4px}
[data-users-tabs] .tab{font-size:0.8125rem;padding:0.35rem 0.65rem}

/* Guida permessi (tab Utenti) */
.perm-guide{display:flex;flex-direction:column;gap:16px;padding:4px 0 8px}
.perm-guide-intro{padding:14px 16px;background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 100%);border:1px solid #bfdbfe;border-radius:12px}
.perm-guide-steps{margin:0;padding:0 0 0 1.25rem;display:flex;flex-direction:column;gap:12px}
.perm-guide-step{padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:10px;line-height:1.45;font-size:0.9rem}
.perm-guide-step strong{color:#0f172a}
.perm-guide-details{border:1px solid var(--border);border-radius:10px;padding:0 14px 12px;background:#fff}
.perm-guide-details summary{cursor:pointer;font-weight:600;font-size:0.9rem;padding:12px 0;color:#1e40af;list-style-position:outside}
.perm-guide-details[open] summary{margin-bottom:4px;border-bottom:1px solid #e2e8f0;padding-bottom:10px}
.perm-guide-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:10px}
.perm-guide-role{padding:10px 12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}
.perm-guide-role--muted{background:#f1f5f9}
.perm-guide-role__name{display:block;font-weight:700;font-size:0.8rem;color:#1d4ed8;margin-bottom:6px}
.perm-guide-role p{margin:0;font-size:0.8125rem;color:#475569;line-height:1.4}
.perm-guide-examples{margin:10px 0 0;padding-left:1.2rem;font-size:0.875rem;color:#475569;line-height:1.5}
.perm-guide-footer{margin:0;font-size:0.8rem}

.user-perm-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px;padding:12px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;font-size:0.8125rem}
.user-perm-flow__step{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#166534}
.user-perm-flow__step span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#16a34a;color:#fff;font-size:0.75rem}
.user-perm-flow__arrow{color:#64748b;font-weight:700}
.user-group-assign-panel{margin-bottom:20px;padding:16px 18px;background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 100%);border:2px solid #93c5fd;border-radius:12px}
.user-group-assign-panel__title{margin:0 0 6px;font-size:1rem;color:#1e3a8a}
.user-group-assign-panel__hint{margin:0 0 14px;font-size:0.8125rem}
.user-group-assign-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;align-items:end}
.user-group-assign-form label{display:flex;flex-direction:column;gap:4px;margin:0}
.user-group-assign-form label span{font-size:0.75rem;font-weight:600;color:#475569}
.user-group-assign-form select,.user-group-assign-form input{width:100%;padding:0.45rem 0.5rem;border:1px solid #cbd5e1;border-radius:8px;font-size:0.875rem}
.users-table-wrap{overflow-x:auto;max-width:100%}
.users-row--no-group{background:#fffbeb}
.users-group-pills{display:flex;flex-wrap:wrap;gap:6px}
.users-group-pill{display:inline-flex;align-items:center;gap:4px}
.users-group-pill__remove{display:inline;margin:0}
.users-group-pill__remove button{background:none;border:none;color:#dc2626;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}
.users-add-group-cell{min-width:280px;max-width:360px}
.users-row-assign-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.users-row-assign-form select{flex:1 1 100px;min-width:0;max-width:140px;font-size:0.75rem;padding:0.35rem 0.4rem}
.users-row-assign-form .btn{margin:0}
.user-intervention-panel{margin:16px 0;padding:14px 16px;background:#f0f9ff;border:1px solid rgba(14,165,233,.25);border-radius:12px}
.user-intervention-panel__title{margin:0 0 6px;font-size:0.95rem;color:#0c4a6e}
.user-intervention-panel__hint{margin:0;font-size:0.8125rem;line-height:1.5}
.users-intervention-cell{white-space:normal!important;min-width:300px;max-width:420px;vertical-align:top}
.users-intervention-form{display:flex;flex-direction:column;gap:8px}
.users-intervention-form .intervention-defaults-fields{display:grid;grid-template-columns:1fr;gap:8px}
.users-intervention-form .intervention-defaults-fields__label{font-size:0.6875rem;font-weight:600;color:#64748b;display:block;margin-bottom:2px}
.users-intervention-form .billing-input--compact{font-size:0.75rem;padding:0.35rem 0.45rem;width:100%}
.users-intervention-form__save{align-self:flex-start;margin:0}
.intervention-defaults-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}
.intervention-defaults-fields__item{display:flex;flex-direction:column;gap:4px;margin:0}
.intervention-defaults-fields__label{font-size:12px;color:#64748b}
.intervention-defaults-fields__item--cost{max-width:180px}
.intervention-defaults-fields select,.intervention-defaults-fields input{width:100%}
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:linear-gradient(180deg,#f8fafc,#ffffff);box-shadow:0 12px 28px rgba(15,23,42,.05)}
.switch{display:flex;align-items:center;gap:10px;font-weight:600;color:#0f172a}
.switch input{width:46px;height:26px;appearance:none;background:#cbd5f5;border-radius:999px;position:relative;outline:none;cursor:pointer;transition:background .2s}
.switch input::after{content:"";position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;top:3px;left:4px;box-shadow:0 2px 6px rgba(15,23,42,.15);transition:transform .2s}
.switch input:checked{background:#2563eb}
.switch input:checked::after{transform:translateX(18px)}
.hint{color:#64748b;font-size:12px;margin-top:6px;display:block}
.settings-send-now{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:12px}
.settings-send-now .btn{padding:10px 16px}
.table-compact .actions-cell{white-space:nowrap}

/* --- Layout overflow & UX enhancements --- */
/* Allow grid children to shrink and avoid horizontal overflow */
.grid > * { min-width: 0; }
/* Ensure two-column grids can shrink columns below intrinsic min-content size */
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* Make generic tables resilient to long content */
.table{width:100%}
.table th,.table td{word-break:break-word;overflow-wrap:anywhere}
.table td a{word-break:break-all}
/* Let section headers wrap controls on smaller widths */
.section-header { flex-wrap: wrap; }
/* Horizontal scroll wrapper for wide tables (e.g., dashboard widgets) */
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll > .table{min-width:100%;width:100%}
@media (max-width: 1200px){
    .th-select{width:48px;min-width:48px}
    .th-priority{width:100px;min-width:100px}
    .th-title{width:auto;min-width:180px}
    .th-client{width:120px;min-width:120px;max-width:120px}
    .tasks-grid tbody td.client-cell{max-width:120px;width:120px}
    .th-category{width:110px;min-width:110px;max-width:110px}
    .th-assignee{width:120px;min-width:120px}
    .th-status{width:90px;min-width:90px}
    .th-time{width:90px;min-width:90px}
    .th-due{width:100px;min-width:100px}
    .th-actions{width:80px;min-width:80px}
}
@media (max-width: 768px){
    .table-scroll{overflow-x:auto;display:block;-webkit-overflow-scrolling:touch}
    .table-scroll > .table{display:block;min-width:900px;width:100%}
    .table thead th{padding:8px 12px;font-size:12px}
    .table tbody td{padding:8px 12px;font-size:13px}
    .th-select,.th-priority,.th-status,.th-time,.th-due,.th-actions{width:auto;min-width:80px}
    .th-title{min-width:200px}
    .th-client,.th-assignee{min-width:100px}
    .th-category{min-width:110px;max-width:110px}
    .tasks-grid tbody td.category-cell{max-width:110px;width:110px}
}
@media (max-width: 480px){
    .table-scroll > .table{min-width:1000px}
    .table thead th{padding:6px 10px;font-size:11px}
    .table tbody td{padding:6px 10px;font-size:12px}
    .chk-row,.chk-all{width:16px;height:16px}
}
/* Utility per celle multi-linea nelle tabelle moderne */
.table-modern .cell-multiline{ white-space: normal; word-break: break-word; }
/* Riga di badge che può andare a capo su più linee */
.badge-row{ display:flex; flex-wrap:wrap; gap:6px; }
.kpi-card{border:1px solid rgba(148,163,184,.22);border-radius:14px;padding:14px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.06);display:flex;flex-direction:column;gap:6px}
.kpi-card .kpi-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}
.kpi-card .kpi-value{font-size:22px;font-weight:800;color:#0f172a}
.kpi-card-alert{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.35)}
.kpi-card-alert .kpi-value{color:#b91c1c}
.task-detail-list{display:flex;flex-direction:column;gap:6px}
.task-detail-tags{display:flex;flex-wrap:wrap;gap:6px}
.empty-placeholder{border-radius:10px}
.timer-card{
    border:1px solid rgba(148,163,184,.16);
    border-radius:14px;
    padding:10px 12px;
    background:#fff;
    box-shadow:0 8px 18px rgba(15,23,42,.06);
    display:flex;
    flex-direction:column;
    gap:8px;
    transition:all .2s ease;
    width:100%;
}
.timer-card.running{border-color:rgba(59,130,246,.45);box-shadow:0 16px 32px rgba(37,99,235,.18);background:linear-gradient(180deg,#ffffff 0%,#eff6ff 100%)}
.timer-card.loading{opacity:.85}
.timer-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.timer-card-icon{width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,#1f6feb,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:0 8px 18px rgba(31,111,235,.22);font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif;-moz-font-feature-settings:"liga" 1,"kern" 1;-moz-font-feature-settings:"liga","kern";font-feature-settings:"liga","kern"}
.timer-card-info{flex:1;display:flex;flex-direction:column;gap:4px}
.timer-card-title{font-size:15px;font-weight:700;color:#0f172a}
.timer-card-caption{font-size:12px;color:#64748b}
.timer-card-state{font-size:12px;font-weight:600;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.22);background:#f8fafc;color:#475569;text-transform:uppercase;letter-spacing:.08em}
.timer-card-state.running{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.35);color:#1d4ed8}
.timer-card-body{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:flex-start}
.timer-card-current{display:flex;flex-direction:column;gap:4px;min-width:140px}
.timer-card-display{font-family:"SFMono-Regular",Consolas,Menlo,monospace;font-size:22px;font-weight:700;color:#0f172a}
.timer-note-block{flex:1 1 220px;min-width:220px;margin-top:0}
.timer-note-form{margin-top:0;padding:6px 8px;border-radius:10px;border:1px dashed rgba(148,163,184,.6);background:#f8fafc;display:flex;flex-direction:column;gap:6px}
.timer-note-form.is-disabled{opacity:.55;pointer-events:none}
.timer-note-label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#64748b}
.timer-note-label textarea{width:100%;resize:vertical;min-height:40px;border-radius:8px;border:1px solid #cbd5e1;padding:6px 8px;font-size:11px}
.timer-note-actions{display:flex;justify-content:flex-end;gap:6px}
.task-timeline{border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;padding:10px 12px;max-height:260px;overflow:auto}
.task-timeline-item{display:flex;gap:8px;padding:6px 0;border-bottom:1px dashed rgba(148,163,184,.35)}
.task-timeline-item:last-child{border-bottom:none}
.task-timeline-icon{width:22px;height:22px;border-radius:999px;background:#fff;border:1px solid rgba(148,163,184,.5);display:flex;align-items:center;justify-content:center;font-size:12px}
.task-timeline-content{flex:1 1 auto;min-width:0}
.task-timeline-title{font-size:12px;font-weight:600;color:#0f172a}
.task-timeline-meta{font-size:11px;color:#64748b}
.task-timeline-extra{margin-top:2px;font-size:11px;color:#111827}
.task-timeline-meta--with-duration{display:flex;align-items:center;justify-content:space-between;gap:8px}
.task-timeline-meta--with-duration .task-timeline-meta-main{font-size:11px;color:#64748b}
.task-timeline-duration{font-size:11px;font-weight:600;color:#111827;white-space:nowrap}
.task-timeline-note{margin-top:4px;padding:4px 6px;border-radius:8px;background:#eff6ff;color:#0f172a;border:1px solid rgba(59,130,246,.25)}
.timer-card-total{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.timer-card-total .label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}
.timer-card-total .value{font-size:18px;font-weight:700;color:#1f2937}
.timer-card-actions{display:flex;gap:8px;flex-wrap:wrap}
.timer-card.running .timer-card-actions [data-timer-stop]{background:#fee2e2;border-color:rgba(248,113,113,.38);color:#b91c1c}
.timer-card.running .timer-card-actions [data-timer-stop]:hover{background:#fecaca;border-color:rgba(248,113,113,.5)}
.timer-card-message{font-size:12px;min-height:16px}
.timer-card-message.info{color:#2563eb}
.timer-card-message.success{color:#16a34a}
.timer-card-message.error{color:#dc2626}
.settings-shell{padding:28px 32px;border-radius:22px;background:linear-gradient(180deg,#ffffff 0%,rgba(248,250,252,.96) 100%);box-shadow:0 20px 45px rgba(15,23,42,.1)}
.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.settings-header-intro{flex:1;min-width:220px}
.settings-header .tabs{margin-left:auto}
.settings-content{display:flex;flex-direction:column;gap:24px}
.settings-block{border:1px solid rgba(148,163,184,.24);border-radius:18px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.08);padding:22px 24px;display:flex;flex-direction:column;gap:18px}
.settings-block-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.settings-block-header .subtle{max-width:520px}
.settings-grid{display:grid;gap:16px}
.settings-grid.two{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.settings-grid.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.permission-board{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.permission-column{display:flex;flex-direction:column;gap:16px}
.permission-column-head{display:flex;flex-direction:column;gap:4px}
.permission-column-list{display:flex;flex-direction:column;gap:14px;max-height:520px;overflow:auto;padding-right:6px}
.permission-card{border:1px solid rgba(148,163,184,.22);border-radius:16px;background:#fff;box-shadow:0 12px 24px rgba(15,23,42,.07);padding:16px 18px;display:flex;flex-direction:column;gap:14px;transition:all .2s ease}
.permission-card.active{border-color:rgba(59,130,246,.4);box-shadow:0 16px 32px rgba(37,99,235,.16)}
.permission-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.permission-card-title{display:flex;flex-direction:column;gap:6px;min-width:200px}
.permission-card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.permission-card-body{display:flex;flex-direction:column;gap:8px}
.permission-card-body.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.perm-checkbox{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(148,163,184,.16);border-radius:10px;background:#f8fafc;cursor:pointer;transition:border-color .15s,background .15s}
.perm-checkbox input{width:auto;margin:0;accent-color:#2563eb}
.perm-checkbox span{font-size:13px;font-weight:600;color:#1f2937}
.perm-checkbox:hover{border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.12)}
.perm-checkbox input:checked + span{color:#1d4ed8}
.perm-radio{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid rgba(148,163,184,.16);border-radius:12px;background:#f8fafc;cursor:pointer;transition:all .15s;margin-bottom:8px}
.perm-radio:hover{border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.08)}
.perm-radio input{width:auto;margin:0;margin-top:2px;accent-color:#2563eb;flex-shrink:0}
.perm-radio input:checked + span strong{color:#1d4ed8}
.perm-radio span{display:flex;flex-direction:column;gap:4px;flex:1}
.perm-radio span strong{font-size:14px;font-weight:600;color:#1f2937;line-height:1.4}
.perm-radio span small{font-size:12px;color:#64748b;line-height:1.4}
.perm-radio input:checked + span{color:#1d4ed8}
.perm-radio:has(input:checked){border-color:rgba(59,130,246,.5);background:rgba(59,130,246,.12)}
.perm-meta{font-size:12px;color:#64748b;font-weight:500}
.group-header-card{transition:all .2s ease}
.group-header-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.vtabs-nav{display:flex;flex-direction:column;gap:4px;min-width:200px;border-right:1px solid rgba(148,163,184,.16);padding-right:16px;margin-right:20px}
.vtabs-content{flex:1}
.vtabs{display:flex;gap:20px;align-items:flex-start}
.vtab-btn{display:block;width:100%;padding:10px 14px;text-align:left;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .15s;font-size:14px;font-weight:500;color:#64748b;position:relative}
.vtab-btn:hover{background:#f1f5f9;color:#1f2937}
.vtab-btn.active{background:#eef2ff;color:#1d4ed8;font-weight:600}
.vtab-btn.muted{opacity:.6;cursor:not-allowed}
.vtab-pane{display:none}
.vtab-pane.active{display:block}
@media (max-width: 900px){
    .vtabs{flex-direction:column}
    .vtabs-nav{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid rgba(148,163,184,.16);padding-right:0;padding-bottom:12px;margin-right:0;margin-bottom:20px;min-width:auto}
    .vtabs-content{width:100%}
}
.perm-status{margin-top:2px}
.permission-card-hint{margin:0}
.permission-note{margin-top:6px}
.permission-placeholder{padding:18px;border:1px dashed rgba(148,163,184,.4);border-radius:14px;background:#f8fafc;color:#475569;font-size:13px;text-align:center}
.permission-actions{margin-top:12px}
.btn.tiny{padding:6px 10px;font-size:12px;border-radius:8px}
.settings-shell .tabs .tab{margin-left:6px}
@media (max-width: 900px){
    .permission-column-list{max-height:none}
    .settings-shell{padding:24px 18px}
    .settings-block{padding:18px}
}
.progress-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#1e3a8a;font-size:12px;font-weight:600}
.progress-chip.complete{background:#ecfdf5;color:#047857}
.progress-chip .chip-icon{font-size:13px}
.estimate-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:600}
.task-title-block{display:flex;align-items:center;justify-content:space-between;gap:10px}
.task-title-text{font-weight:600;font-size:15px;color:#0f172a}
a.task-title-link.task-title-text{color:inherit;text-decoration:none}
a.task-title-link.task-title-text:hover{color:#2563eb;text-decoration:underline}
.task-meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.time-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.26);background:#fff;margin-top:4px}
.time-chip .chip-icon{font-size:14px}
.time-chip.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}
.chip-icon{display:inline-block;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif;-moz-font-feature-settings:"liga" 1,"kern" 1;-moz-font-feature-settings:"liga","kern";font-feature-settings:"liga","kern";unicode-bidi:isolate;text-rendering:optimizeLegibility}
.time-main .chip-icon{font-size:14px}
/* Fix per Firefox: forzare rendering emoji */
@-moz-document url-prefix(){.chip-icon,.timer-active-indicator,.timer-card-icon,.task-card-icon{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","EmojiOne Color","Android Emoji","Twemoji Mozilla",sans-serif!important;font-variant-emoji:emoji}}
.time-chip.subtle{color:#64748b;border-style:dashed}
.task-time{min-width:110px}
.task-summary{display:flex;gap:24px;align-items:stretch;flex-wrap:wrap;margin-bottom:24px}
.task-summary-info{flex:1;min-width:260px;display:flex;flex-direction:column;gap:14px}
.task-summary-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.task-summary-name{font-size:20px;font-weight:700;color:#0f172a}
.task-summary-meta{display:flex;gap:10px;flex-wrap:wrap}
.task-summary-metrics{display:flex;gap:18px;flex-wrap:wrap}
.summary-metric{background:#fff;border:1px solid rgba(148,163,184,.24);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:4px;min-width:140px;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.summary-metric .label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}
.summary-metric strong{font-size:16px;color:#0f172a}
.task-summary-users{display:flex;gap:8px;flex-wrap:wrap}
.time-contributor{padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#1f2937;font-size:12px;font-weight:600}
.time-contributor.subtle{background:transparent;color:#64748b;font-weight:500}
.task-summary-timer{flex:0 0 320px}
.task-quick-actions{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}
.task-quick-actions form{display:flex;gap:8px;align-items:flex-end;background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:14px;padding:12px 16px;box-shadow:0 8px 18px rgba(15,23,42,.06)}
.task-quick-actions label{display:flex;flex-direction:column;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.task-quick-actions select{min-width:160px;border-radius:10px}
.task-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.timer-card-metrics{display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between}
.timer-card-metric{display:flex;flex-direction:column;gap:4px}
.timer-card-metric .label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}
.timer-card-metric .value{font-family:"SFMono-Regular",Consolas,Menlo,monospace;font-weight:700;color:#1f2937}
.global-timer{position:fixed;bottom:24px;right:24px;z-index:1200;max-width:320px;font-family:inherit}
.global-timer[hidden]{display:none}
.global-timer.hidden{display:none}
.global-timer.collapsed .gt-body{display:none}
.global-timer .gt-inner{background:#0f172a;color:#f8fafc;border-radius:18px;box-shadow:0 20px 40px rgba(15,23,42,.3);padding:16px 18px;display:flex;flex-direction:column;gap:12px;border:1px solid rgba(59,130,246,.45)}
.global-timer.is-paused .gt-inner{border-color:rgba(167,139,250,.55);box-shadow:0 20px 40px rgba(91,33,182,.22)}
.global-timer.is-paused .gt-label{color:#c4b5fd}
.global-timer.is-paused .gt-display{opacity:.92}
.gt-header{display:flex;justify-content:flex-start;align-items:center;gap:10px}
.gt-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#93c5fd;font-weight:700}
.gt-actions-inline{display:none}
.gt-btn{
    display:inline-block;
    border:none;
    border-radius:10px;
    padding:8px 12px;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    transition:transform .15s, box-shadow .15s;
    background:#1f2937;
    color:#e2e8f0;
    text-decoration:none
}
.gt-btn:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(15,23,42,.25);color:#f8fafc}
.gt-btn.is-disabled,.gt-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}
.gt-btn.primary{background:linear-gradient(135deg,#2563eb,#1f6feb);color:#fff}
.gt-btn.ghost{background:rgba(148,163,184,.16);color:#cbd5f5}
.gt-body{display:flex;flex-direction:column;gap:10px}
.gt-task{font-size:14px;font-weight:600;color:#f1f5f9}
.gt-time{display:flex;align-items:baseline;gap:10px;font-family:"SFMono-Regular",Consolas,Menlo,monospace}
.gt-display{font-size:22px;font-weight:700}
.gt-total{font-size:12px;color:#cbd5f5}
.gt-buttons{display:flex;gap:8px;flex-wrap:wrap}
.gt-buttons .gt-btn{flex:1 1 auto;text-align:center}
@media (max-width: 720px){
    .global-timer{left:16px;right:16px;bottom:16px;max-width:none}
}
.th-select{width:48px;min-width:48px;max-width:48px;text-align:center}
.chk-row,.chk-all{width:18px;height:18px;cursor:pointer;accent-color:#2563eb}
.table tbody td.td-select{text-align:center;padding:10px 16px}
.table thead th.th-select{padding:10px 16px}
.th-priority{width:100px;min-width:100px;max-width:120px;text-align:center}
.th-title{width:auto;min-width:200px}
.th-client{width:140px;min-width:120px;max-width:180px}
.tasks-grid tbody td.client-cell,
.tasks-grid thead th.th-client{overflow:hidden;max-width:180px;box-sizing:border-box}
.client-cell{vertical-align:middle;padding:6px 8px;overflow:hidden}
.client-cell__body{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%;overflow:hidden}
.client-cell .client-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.client-cell__contact{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.85em;line-height:1.25}
.th-category{width:130px;min-width:130px;max-width:130px}
.th-assignee{width:140px;min-width:120px;max-width:180px}
.th-status{width:100px;min-width:90px;max-width:120px}
.th-time{width:100px;min-width:90px;max-width:120px}
.th-due{width:120px;min-width:100px;max-width:140px}
.th-actions{width:90px;min-width:80px;max-width:100px;text-align:right}
.table thead th{font-weight:600;text-align:left}
.table thead th.th-select{text-align:center}
.table tbody td.td-select{text-align:center;padding-left:18px;padding-right:18px}
.table tbody td.td-actions{text-align:right}
.table tbody td.td-actions .btn{margin-left:auto;display:inline-flex;justify-content:center}
.priority-cell{display:flex;align-items:center;justify-content:center;gap:0;padding:10px 8px;text-align:center}
.table tbody td.priority-cell{padding:10px 8px;text-align:center;vertical-align:middle;overflow:visible}
.priority-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}
.priority-pill.high{background:rgba(248,113,113,.18);color:#b91c1c;border-color:rgba(248,113,113,.35)}
.priority-pill.medium{background:rgba(250,204,21,.18);color:#92400e;border-color:rgba(250,204,21,.35)}
.priority-pill.low{background:rgba(74,222,128,.18);color:#166534;border-color:rgba(74,222,128,.3)}
.priority-dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block;box-shadow:0 0 0 3px rgba(148,163,184,.15)}
.task-quick-danger{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.btn.danger{background:rgba(248,113,113,.16);color:#b91c1c;border:1px solid rgba(248,113,113,.38)}
.btn.danger:hover{background:rgba(248,113,113,.24);box-shadow:0 10px 22px rgba(248,113,113,.28);color:#991b1b}
.task-summary-note{font-size:12px;color:#94a3b8}
.task-detail-cell{background:#f8fafc;padding:24px}
.task-detail-shell{display:flex;flex-direction:column;gap:24px}
.task-detail-layout{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(320px,0.6fr);gap:24px;align-items:flex-start}
.task-detail-primary{display:flex;flex-direction:column;gap:20px;grid-column:1/2}
.task-detail-middle{display:flex;flex-direction:column;gap:16px;grid-column:2/3;min-width:0}
.task-detail-secondary{display:flex;flex-direction:column;gap:20px;grid-column:2/3}
.task-card{background:#fff;border:1px solid rgba(148,163,184,.22);border-radius:18px;padding:18px 20px;box-shadow:0 12px 28px rgba(15,23,42,.06);display:flex;flex-direction:column;gap:14px}
.task-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.task-card-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#0f172a}
.task-card-icon{font-size:16px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif;-moz-font-feature-settings:"liga" 1,"kern" 1;-moz-font-feature-settings:"liga","kern";font-feature-settings:"liga","kern"}
.task-card-hint{font-size:12px;color:#94a3b8;font-weight:500}
.task-card-body{display:flex;flex-direction:column;gap:12px}
.task-detail-middle .task-card{padding:14px 16px;border-radius:16px;box-shadow:0 10px 22px rgba(15,23,42,.05);gap:10px}
.task-detail-middle .task-card-body{gap:10px}
.btn--assign-highlight{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:10px 18px;
    border-radius:999px;
    background:linear-gradient(135deg,#22c55e,#16a34a);
    color:#f9fafb;
    border:1px solid rgba(34,197,94,.7);
    box-shadow:0 10px 26px rgba(22,163,74,.25);
}
.btn--assign-highlight .btn-icon{
    margin-right:4px;
    font-size:15px;
}
.btn--assign-highlight:hover{
    background:linear-gradient(135deg,#16a34a,#15803d);
    box-shadow:0 12px 30px rgba(22,163,74,.32);
    transform:translateY(-1px);
}
.task-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.task-tab-button{border:none;background:#e2e8f0;color:#475569;padding:8px 14px;border-radius:12px;font-weight:600;cursor:pointer;transition:background .15s, box-shadow .15s}
.task-tab-button:hover{background:#cbd5f5}
.task-tab-button.active{background:linear-gradient(135deg,#2563eb,#1f6feb);color:#fff;box-shadow:0 10px 22px rgba(31,111,235,.25)}
.task-tab-panels{margin-top:12px;display:flex;flex-direction:column;gap:16px}
.task-tab-content{display:none;flex-direction:column;gap:16px}
.task-tab-content.active{display:flex}
.task-tab-section{background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 20px rgba(15,23,42,.05)}
.task-tab-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.task-tab-title{font-size:14px;font-weight:600;color:#0f172a}
.task-tab-hint{font-size:12px;color:#94a3b8}
.task-inline-form{display:flex;flex-wrap:wrap;gap:8px}
.task-inline-form input[type="text"],.task-inline-form input[type="date"],.task-inline-form select,.task-inline-form textarea{flex:1 1 220px;border:1px solid rgba(148,163,184,.32);border-radius:10px;padding:10px 12px;font-size:13px}
.task-inline-form input[type="file"]{flex:1 1 220px;font-size:13px}
.task-inline-form input[type="color"],.task-color-input{width:44px;height:38px;border:none;border-radius:10px;padding:0;cursor:pointer}
.task-comments-list{max-height:260px;overflow:auto}
.task-overview-chips{display:flex;flex-wrap:wrap;gap:8px}
.task-overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.overview-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#1f2937;font-size:12px;font-weight:600}
.overview-item{display:flex;flex-direction:column;gap:4px;background:#f8fafc;border:1px solid rgba(148,163,184,.18);border-radius:12px;padding:10px 12px}
.overview-item .label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:600}
.overview-item .value{font-size:14px;font-weight:600;color:#1f2937}
.task-summary-line{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;padding:6px 0;border-bottom:1px solid rgba(148,163,184,.15)}
.task-summary-line:last-child{border-bottom:none}
.task-description-content{font-size:14px;line-height:0;color:#111827;white-space:pre-line}
.task-description-content p{margin:0 0 6px}
.task-description-content ul,.task-description-content ol{margin:0 0 6px 18px;padding-left:0}
.task-description-content li{margin:2px 0}

/* Editor descrizione task */
.task-description-editor{
    border:1.5px solid rgba(148,163,184,.2);
    border-radius:10px;
    background:#ffffff;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.task-description-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    padding:6px 8px;
    background:#f9fafb;
    border-bottom:1px solid rgba(148,163,184,.18);
}
.task-description-toolbar button{
    border:none;
    background:#e5e7eb;
    border-radius:6px;
    padding:4px 8px;
    font-size:12px;
    font-weight:500;
    color:#374151;
    cursor:pointer;
}
.task-description-toolbar button:hover{
    background:#d1d5db;
}
.task-description-toolbar .toolbar-separator{
    width:1px;
    height:18px;
    background:rgba(148,163,184,.5);
    margin:0 4px;
}
.task-description-editor__area{
    min-height:140px;
    max-height:360px;
    padding:10px 12px;
    overflow-y:auto;
    font-size:14px;
    line-height:1.6;
}
.task-description-editor__area:focus{
    outline:none;
}
.task-summary-line .label{color:#64748b;text-transform:uppercase;font-size:11px;letter-spacing:.08em;font-weight:600}
.task-summary-line .value{font-weight:600;color:#1f2937;text-align:right}
.task-summary-users{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.task-card-summary .task-summary-users{margin-top:8px}
.task-card-stato-admin .task-card-body--compact{min-height:0}
.task-stato-delete{
    margin-top:auto;
    align-self:flex-end;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:0.25rem;
    width:100%;
    padding-top:0.75rem;
    border-top:1px solid #ede9fe
}
.task-stato-delete-hint{
    font-size:0.65rem;
    text-align:right;
    color:#94a3b8
}
.btn.task-stato-delete-btn{
    background:linear-gradient(165deg,#f5f3ff 0%,#ede9fe 100%);
    color:#6d28d9;
    border:1px solid #c4b5fd;
    font-weight:600
}
.btn.task-stato-delete-btn:hover{
    background:linear-gradient(165deg,#ede9fe 0%,#ddd6fe 100%);
    color:#5b21b6;
    border-color:#a78bfa;
    box-shadow:0 4px 14px rgba(124,58,237,.18)
}
.task-card-assignment{margin-top:16px}
.task-card-assignment .task-form-field{margin-bottom:16px}
.task-card-assignment .task-form-field:last-child{margin-bottom:0}
.task-card-assignment .btn{width:100%;margin-top:8px}
.task-assigned-users-list{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(148,163,184,.15)}
.task-assigned-groups-list{margin-top:8px}
.task-assigned-users-label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.task-assigned-users-items{display:flex;flex-direction:column;gap:6px}
.task-assigned-user-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border:1px solid rgba(148,163,184,.15);border-radius:8px;transition:all .2s ease}
.task-assigned-user-item:hover{background:#f1f5f9;border-color:rgba(148,163,184,.25)}
.task-assigned-user-name{font-size:13px;font-weight:500;color:#1f2937;display:flex;align-items:center;gap:6px}
.task-assigned-user-remove,
.task-assigned-group-remove{
    width:24px;
    height:24px;
    border:1px solid #c4b5fd;
    background:linear-gradient(165deg,#f5f3ff 0%,#ede9fe 100%);
    color:#6d28d9;
    border-radius:6px;
    cursor:pointer;
    font-size:18px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:all .2s ease;
    flex-shrink:0;
    padding:0
}
.task-assigned-user-remove:hover,
.task-assigned-group-remove:hover{
    background:linear-gradient(165deg,#ede9fe 0%,#ddd6fe 100%);
    color:#5b21b6;
    border-color:#a78bfa;
    box-shadow:0 4px 14px rgba(124,58,237,.18);
    transform:scale(1.1)
}
.task-assigned-users-empty{font-size:13px;color:#94a3b8;font-style:italic;padding:8px 0;text-align:center}
.task-assign-controls{margin-top:16px}
.task-assign-section{margin-top:20px;padding-top:20px;border-top:1px solid rgba(148,163,184,.15)}
.task-assign-section:first-of-type{margin-top:0;padding-top:0;border-top:none}
.task-assign-section-header{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.task-assign-section-icon{font-size:18px;line-height:1}
.task-assign-section-title{font-size:14px;font-weight:600;color:#1f2937}
.task-assign-section--replace{border-top-color:rgba(245,158,11,.2);background:linear-gradient(180deg,rgba(255,251,235,.3),transparent);padding:16px;border-radius:10px;margin-top:16px}
.task-assign-section--group{border-top-color:rgba(37,99,235,.2);background:linear-gradient(180deg,rgba(239,246,255,.3),transparent);padding:16px;border-radius:10px;margin-top:16px}
.task-form-field--optional .label-hint{color:#94a3b8;font-size:11px}
.btn-full{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px}
.task-assign-buttons{display:flex;gap:8px;margin-top:12px}
.task-assign-buttons .btn{flex:1 1 auto}
.task-assign-buttons .btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}
.task-assign-buttons .btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}
.task-assign-buttons .btn-secondary{background:#fff;color:#64748b;border-color:rgba(148,163,184,.3)}
.task-assign-buttons .btn-secondary:hover{background:#f8fafc;color:#475569;border-color:rgba(148,163,184,.4)}
.task-assign-form .task-form-field:last-child{margin-bottom:0}
.task-replace-form .task-form-field{margin-bottom:14px}
.task-replace-form .task-form-field:last-child{margin-bottom:0}
.task-card-timer .timer-card{box-shadow:none;border:none;padding:0}
.task-card-timer .timer-card-head{padding:0}
.task-card-timer .timer-card-actions .btn{flex:1 1 auto}
.task-card-timer.is-fullwidth{grid-column:1 / -1}
.task-manage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.task-manage-grid form{background:#f8fafc;border:1px solid rgba(148,163,184,.18);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 6px 14px rgba(15,23,42,.05)}
.task-manage-grid label span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:600}
.task-manage-grid input,.task-manage-grid select{width:100%;border:1px solid rgba(148,163,184,.32);border-radius:10px;padding:10px 12px;font-size:13px;background:#fff;color:#1f2937}
.task-manage-danger{display:flex;justify-content:flex-end;margin-top:12px}
.task-detail-secondary .task-card{position:relative}
.task-detail-secondary .task-card::after{content:"";position:absolute;inset:0;border-radius:18px;border:1px solid rgba(148,163,184,.12);pointer-events:none}
@media (max-width: 1200px){
    .task-detail-layout{grid-template-columns:1fr}
    .task-detail-secondary{order:-1}
}
@media (max-width: 720px){
    .task-detail-cell{padding:18px}
    .task-tab-section{padding:14px}
    .task-manage-grid{grid-template-columns:1fr}
}
.task-overview-actions{display:flex;align-items:center;gap:10px}
.tasks-header{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
.tasks-header--compact.card{padding:10px 14px;margin-bottom:8px;border-radius:12px;box-shadow:0 4px 14px rgba(15,23,42,.05)}
.tasks-header--compact .tasks-header__layout{align-items:center;gap:10px 14px}
.tasks-header--compact .tasks-header__main{gap:6px;flex:1 1 auto;min-width:0}
.tasks-header--compact .tasks-header__main h3{margin:0;font-size:15px;font-weight:700;line-height:1.2;white-space:nowrap}
.tasks-header--compact .tasks-header__title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.tasks-header--compact .tasks-header__meta{margin:0;gap:5px}
.tasks-header--compact .tasks-header__meta.is-empty{flex-direction:row}
.tasks-header--compact .tasks-header__badge{padding:2px 8px;font-size:11px;gap:4px}
.tasks-header--compact .tasks-header__badge-icon{font-size:12px}
.tasks-header--compact .tasks-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.tasks-header--compact .tasks-tabs__item{padding:4px 10px;font-size:12px;gap:5px;border-radius:999px;box-shadow:none}
.tasks-header--compact .tasks-tabs__item.is-active{box-shadow:0 2px 8px rgba(37,99,235,.2)}
.tasks-header--compact .tasks-tabs__icon{font-size:13px}
.tasks-header--compact .tasks-header__actions{gap:6px;flex-shrink:0}
.tasks-header--compact .btn--compact{padding:5px 10px;font-size:12px;gap:5px;border-radius:8px}
@media (min-width:900px){
    .tasks-header--compact .tasks-header__layout{flex-wrap:nowrap}
    .tasks-header--compact .tasks-header__main{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 14px}
    .tasks-header--compact .tasks-header__title-row{flex:0 1 auto}
    .tasks-header--compact .tasks-tabs{flex:1 1 auto;min-width:200px}
}
.tasks-header__layout{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.tasks-header__main{display:flex;flex-direction:column;gap:4px;flex:1 1 420px;min-width:260px}
.tasks-header__main h3{margin:0;font-size:20px}
.tasks-header__hint{margin:0;color:#64748b;font-size:14px;max-width:520px;line-height:1.35}
.tasks-header__actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    align-items:center;
    align-self:flex-start;
}
.tasks-header__new{
    margin-left:auto;
}

.tasks-table-card.card{padding:10px 14px 12px;border-radius:12px;box-shadow:0 4px 14px rgba(15,23,42,.05)}
.tasks-table-card .section-header{margin-bottom:6px;row-gap:8px}
/* La barra "Data esecuzione" è inline nella toolbar: niente offset verticale, allinea con i pulsanti a sinistra */
.tasks-table-card .section-header .tasks-date-filters-bar--compact{margin-top:0}
.tasks-table-card .tasks-list-header--compact{margin-bottom:0;padding:0;border:none}
.tasks-table-card .table-scroll.tasks-legacy-table{max-height:calc(100vh - 168px);overflow:auto;-webkit-overflow-scrolling:touch}
.tasks-date-filters-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}
.tasks-date-filters-bar--compact{margin-top:8px;padding:6px 10px;font-size:12px}
.tasks-date-filters-bar--compact label{font-size:12px;color:#64748b;white-space:nowrap}
.tasks-date-filters-bar--compact input[type=date]{padding:3px 6px;font-size:12px;border-radius:4px;border:1px solid #e2e8f0}
.tasks-date-filters-bar--compact .tasks-date-preset-select{padding:3px 6px;font-size:12px}
.tasks-date-filters-bar--compact .btn.small{padding:4px 10px;font-size:12px}
.tasks-list-header{
    align-items:center;
}
.tasks-list-header-main{
    display:flex;
    align-items:baseline;
}
.tasks-list-views{
    margin-left:auto;
}
/* Toolbar tasks: tab + badge sulla stessa fascia */
.tasks-header__toolbar{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 12px;
    margin-top:4px;
}
.tasks-header__toolbar .tasks-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0;
    flex:1 1 auto;
    min-width:min(100%,280px);
}
.tasks-header__toolbar .tasks-header__meta{
    margin-top:0;
    flex:0 1 auto;
}
.tasks-header__toolbar .tasks-header__meta.is-empty{
    flex:1 1 100%;
    width:100%;
}
@media (min-width:960px){
    .tasks-header__toolbar{
        flex-wrap:nowrap;
        gap:14px 20px;
    }
    .tasks-header__toolbar .tasks-header__meta:not(.is-empty){
        margin-left:auto;
        justify-content:flex-end;
    }
}
.tasks-header__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:0}
.tasks-header__meta.is-empty{flex-direction:column;align-items:flex-start;gap:10px}
.tasks-header__meta-hint{font-size:13px;color:#94a3b8;line-height:1.4}
.tasks-header__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#e2e8f0;color:#1f2937;font-size:12px;font-weight:600}
.tasks-header__badge-icon{font-size:15px;line-height:1}
.tasks-header__badge.is-alert{background:#fde68a;color:#92400e}
.tasks-header__badge.is-danger{background:#fecaca;color:#b91c1c}
.tasks-header__badge.is-muted{background:#f1f5f9;color:#475569}
.tasks-header__badge.is-billable{background:#d1fae5;color:#047857}
.tasks-header__badge.is-ghost{background:#fff;border:1px dashed rgba(148,163,184,.5);color:#64748b}
.tasks-tabs__item{border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a;font-size:13px;font-weight:500;padding:6px 12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s}
.tasks-tabs__item:hover{border-color:#cbd5e1;background:#eef2ff}
.tasks-tabs__item.is-active{background:#1d4ed8;color:#eff6ff;border-color:#1d4ed8;box-shadow:0 4px 14px rgba(37,99,235,.25)}
.tasks-tabs__icon{font-size:15px;line-height:1}
.tasks-tabs__count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(15,23,42,.12);color:inherit;font-size:10px;font-weight:700;line-height:1}
.tasks-tabs__item.is-active .tasks-tabs__count{background:rgba(255,255,255,.22);color:#fff}
@media (max-width: 720px){
    .tasks-header__actions{width:100%;justify-content:flex-start;align-self:stretch}
}
.tasks-controls-bar{display:flex;align-items:stretch;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.tasks-controls-bar__left,.tasks-controls-bar__right{flex:1 1 auto;min-width:280px}
.tasks-controls-bar__left{flex:1 1 320px}
.tasks-controls-bar__right{flex:1 1 300px}
.tasks-search-bar{display:flex;align-items:center;margin-bottom:20px}
.tasks-search-toggle{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:12px;border:1px solid rgba(148,163,184,.2);background:#fff;color:#475569;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;justify-content:space-between}
.tasks-search-toggle:hover{background:#f8fafc;border-color:rgba(59,130,246,.3);color:#2563eb}
.tasks-search-toggle:active{transform:translateY(0)}
.tasks-search-toggle[aria-expanded="true"]{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}
.tasks-search-toggle__icon{font-size:16px;line-height:1;opacity:.7;transition:opacity .2s}
.tasks-search-toggle:hover .tasks-search-toggle__icon{opacity:1}
.tasks-search-toggle[aria-expanded="true"] .tasks-search-toggle__icon{opacity:1}
.tasks-search-toggle__text{font-weight:600;letter-spacing:-.01em}
.tasks-search-toggle__badge{font-size:11px;color:#64748b;font-weight:700;margin-left:auto;padding:4px 8px;background:#e2e8f0;border-radius:6px;white-space:nowrap;min-width:20px;text-align:center;line-height:1}
.tasks-search-toggle:hover .tasks-search-toggle__badge{background:#cbd5e1;color:#475569}
.tasks-search-toggle[aria-expanded="true"] .tasks-search-toggle__badge{background:#3b82f6;color:#fff}
.tasks-search-toggle__arrow{font-size:12px;color:#94a3b8;transition:all .2s ease;font-weight:600;margin-left:8px;opacity:.7}
.tasks-search-toggle:hover .tasks-search-toggle__arrow{opacity:1;color:#64748b}
.tasks-search-toggle[aria-expanded="true"] .tasks-search-toggle__arrow{opacity:1;color:#1d4ed8;transform:rotate(180deg)}
.tasks-filters{display:flex;flex-direction:column;gap:18px;padding:16px 18px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:#f8fafc;box-shadow:inset 0 1px 0 rgba(255,255,255,.6);animation:slideDown .3s ease-out}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);box-shadow:0 0 0 3px rgba(16,185,129,.2),0 4px 12px rgba(16,185,129,.4)}50%{opacity:.9;transform:scale(1.15);box-shadow:0 0 0 5px rgba(16,185,129,.3),0 6px 16px rgba(16,185,129,.6)}}
.tasks-filters__row{display:grid;gap:12px}
.tasks-filters__row--primary{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.tasks-filters__row--secondary{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}
.tasks-filters__row--actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.tasks-filter{display:flex;flex-direction:column;gap:6px;flex:1 1 180px;min-width:0}
.tasks-filter--search{flex:1 1 320px}
.tasks-filter--quick{flex:0 1 220px}
.tasks-filter--select{min-width:180px}
.tasks-filter__label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#64748b;font-weight:600}
.tasks-filter__control{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid rgba(148,163,184,.22);border-radius:12px;padding:6px 10px;transition:border-color .15s, box-shadow .15s}
.tasks-filter__control:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.35)}
.tasks-filter__control .icon{font-size:16px;color:#94a3b8}
.tasks-filter__control input,.tasks-filter__control select{border:none;padding:8px 0;background:transparent;font-size:14px;color:#0f172a;flex:1 1 auto;outline:none;min-width:0}
.tasks-filter__control select{padding-right:26px}
.tasks-filter__control option{color:#0f172a}
.tasks-filter--actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}
.tasks-filter--actions .btn{flex:0 0 auto;min-width:140px}
.tasks-filter--actions .btn.ghost{min-width:auto}
@media (max-width: 960px){
    .tasks-filters{padding:14px 16px}
    .tasks-filter--search{flex:1 1 260px}
}
@media (max-width: 640px){
    .tasks-filters__row--primary{flex-direction:column;align-items:stretch}
    .tasks-filter--quick{flex:1 1 auto}
}
@media (max-width: 540px){
    .tasks-filters__row--actions{justify-content:flex-start}
    .tasks-filter--actions{flex-wrap:wrap;justify-content:flex-start}
    .tasks-filter--actions .btn{flex:1 1 160px}
}
.tasks-bulk-toggle{display:flex;align-items:center;margin-bottom:20px}
.tasks-bulk-toggle__btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:12px;border:1px solid rgba(148,163,184,.2);background:#fff;color:#475569;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;justify-content:space-between}
.tasks-bulk-toggle__btn:hover{background:#f8fafc;border-color:rgba(245,158,11,.3);color:#92400e}
.tasks-bulk-toggle__btn:active{transform:translateY(0)}
.tasks-bulk-toggle__btn[aria-expanded="true"]{background:#fffbeb;border-color:#f59e0b;color:#78350f}
.tasks-bulk-toggle__icon{font-size:16px;line-height:1;opacity:.7;transition:opacity .2s}
.tasks-bulk-toggle__btn:hover .tasks-bulk-toggle__icon{opacity:1}
.tasks-bulk-toggle__btn[aria-expanded="true"] .tasks-bulk-toggle__icon{opacity:1}
.tasks-bulk-toggle__text{font-weight:600;letter-spacing:-.01em}
.tasks-bulk-toggle__count{font-size:11px;color:#64748b;font-weight:600;margin-left:auto;padding:4px 8px;background:#f1f5f9;border-radius:6px;white-space:nowrap;min-width:auto;text-align:center;line-height:1}
.tasks-bulk-toggle__btn:hover .tasks-bulk-toggle__count{background:#e2e8f0;color:#475569}
.tasks-bulk-toggle__btn[aria-expanded="true"] .tasks-bulk-toggle__count{background:#fbbf24;color:#78350f}
.tasks-bulk-toggle__arrow{font-size:12px;color:#94a3b8;transition:all .2s ease;font-weight:600;margin-left:8px;opacity:.7}
.tasks-bulk-toggle__btn:hover .tasks-bulk-toggle__arrow{opacity:1;color:#64748b}
.tasks-bulk-toggle__btn[aria-expanded="true"] .tasks-bulk-toggle__arrow{opacity:1;color:#78350f;transform:rotate(180deg)}
.tasks-bulk{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:12px 14px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px rgba(15,23,42,.06);animation:slideDown .3s ease-out}
/* Dock fluttuante — overlay, non sposta il layout */
.tasks-bulk--dock{
    position:fixed;bottom:12px;top:auto;z-index:1100;margin:0;padding:0;border:none;background:transparent;
    box-shadow:none;animation:none;pointer-events:none
}
.tasks-bulk--dock.is-dock-visible{pointer-events:auto}
.tasks-bulk--dock[hidden]{display:none!important}
.tasks-bulk__dock{
    display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;
    padding:11px 14px;border:1px solid rgba(255,255,255,.1);border-radius:16px;
    background:linear-gradient(165deg,#1e293b 0%,#0f172a 100%);
    box-shadow:0 20px 50px rgba(2,6,23,.55),0 4px 14px rgba(2,6,23,.35),inset 0 1px 0 rgba(255,255,255,.08);
    animation:tasksBulkDockIn .22s ease-out;color:#e2e8f0
}
@keyframes tasksBulkDockIn{
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:translateY(0)}
}
.tasks-bulk__dock-meta{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-right:12px;border-right:1px solid rgba(255,255,255,.12)}
.tasks-bulk__close{
    display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;
    border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06);color:#94a3b8;
    font-size:18px;line-height:1;cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s,color .15s
}
.tasks-bulk__close:hover{background:rgba(239,68,68,.18);border-color:rgba(248,113,113,.45);color:#fca5a5}
.tasks-bulk__selection{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;background:rgba(59,130,246,.22);color:#93c5fd;font-size:12px;font-weight:700;letter-spacing:.01em;white-space:nowrap;border:1px solid rgba(96,165,250,.35)}
.tasks-bulk__dock-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.tasks-bulk__dock-group--invoice{flex:1 1 320px}
.tasks-bulk__dock-group--bulk{flex:0 1 auto}
.tasks-bulk__dock-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;white-space:nowrap;flex-shrink:0}
.tasks-bulk__dock-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.tasks-bulk__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tasks-bulk__grid{display:grid;grid-template-columns:1fr;gap:10px}
.tasks-bulk__grid--with-invoice{grid-template-columns:minmax(260px,1fr) minmax(320px,1.4fr)}
.tasks-bulk__card{border:1px solid #e8edf3;border-radius:12px;padding:12px 14px;background:#f8fafc;display:flex;flex-direction:column;gap:0;min-width:0}
.tasks-bulk__card--invoice{background:linear-gradient(180deg,#f8fbff,#f8fafc);border-color:#dbeafe}
.tasks-bulk__card-head h4{margin:0;font-size:13px;font-weight:700;color:#0f172a}
.tasks-bulk__card-hint{margin:6px 0 10px;font-size:12px;line-height:1.45;color:#64748b}
.tasks-bulk__card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tasks-bulk__invoice-stack{display:flex;flex-direction:column;gap:8px;align-items:flex-start;width:100%}
.tasks-bulk__invoice-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.tasks-bulk__invoice-row{margin:0}
.tasks-bulk__dock-actions form{margin:0}
.tasks-bulk__invoice-draft-select{flex:1 1 180px;min-width:140px;max-width:280px;height:32px}
.tasks-bulk__controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tasks-bulk__dock .tasks-bulk__select{
    flex:1 1 160px;min-width:0;max-width:100%;height:32px;padding:0 10px;
    border:1px solid rgba(255,255,255,.16);border-radius:8px;
    background:rgba(15,23,42,.65);color:#f1f5f9;font-size:12px
}
.tasks-bulk__dock .tasks-bulk__select:focus{outline:none;border-color:rgba(96,165,250,.55);box-shadow:0 0 0 2px rgba(59,130,246,.25)}
.tasks-bulk__dock .tasks-bulk__select option{background:#1e293b;color:#f1f5f9}
.tasks-bulk__controls .btn,.tasks-bulk__dock-actions .btn{flex:0 0 auto;height:32px;white-space:nowrap}
.tasks-bulk__dock .btn{background:rgba(255,255,255,.08);color:#e2e8f0;border-color:rgba(255,255,255,.16)}
.tasks-bulk__dock .btn:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24)}
.tasks-bulk__dock .btn.primary{background:var(--primary);color:#fff;border-color:#2563eb;box-shadow:0 2px 8px rgba(37,99,235,.35)}
.tasks-bulk__dock .btn.primary:hover{background:#2563eb;border-color:#1d4ed8}
.tasks-bulk__head{display:flex;flex-direction:column;gap:6px}
.tasks-bulk__head h4{margin:0;font-size:15px;font-weight:700;color:#0f172a}
.tasks-bulk__hint{margin:0;color:#64748b;font-size:13px}
.tasks-bulk__count{font-size:12px;color:#94a3b8;font-weight:600}
.tasks-bulk__invoice-hint{
    flex:1 1 180px;min-width:120px;font-size:11px;font-weight:600;color:#94a3b8;line-height:1.3;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.tasks-bulk__invoice-hint.is-ok{color:#6ee7b7;white-space:normal}
.tasks-bulk__invoice-hint.is-err{color:#fca5a5;white-space:normal}
.tasks-grid tbody tr.task-row--bulk-selected td{
    background:linear-gradient(90deg,rgba(30,58,138,.18),rgba(30,58,138,.06) 140px)!important;
    box-shadow:inset 3px 0 0 #3b82f6
}
@media (max-width:900px){
.tasks-bulk__grid--with-invoice{grid-template-columns:1fr}
.tasks-bulk__dock{align-items:stretch}
.tasks-bulk__dock-meta{border-right:none;padding-right:0;width:100%}
.tasks-bulk__dock-group--invoice,.tasks-bulk__dock-group--bulk{width:100%}
.tasks-bulk__invoice-hint{white-space:normal}
}
@media (max-width:640px){
.tasks-bulk--dock{bottom:8px}
.tasks-bulk__dock{padding:10px}
.tasks-bulk__dock-actions,.tasks-bulk__controls{width:100%}
.tasks-bulk__dock-actions form,.tasks-bulk__controls .btn,.tasks-bulk__dock-actions .btn{flex:1 1 auto}
.tasks-bulk__select{width:100%;max-width:none}
}
.odl-billing-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:.68rem;font-weight:700;white-space:nowrap;text-decoration:none}
.odl-billing-badge--draft{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}
.odl-billing-badge--draft:hover{background:#fde68a}
.odl-billing-badge--invoiced{background:#d1fae5;color:#059669;border:1px solid #6ee7b7}
.adm-draft-group-header td{
    padding:0!important;
    border:none!important;
    background:transparent!important;
}
.adm-draft-group-header__inner{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    margin:10px 0 4px;padding:10px 14px;
    border:1px solid #fcd34d;border-radius:12px 12px 0 0;
    background:linear-gradient(180deg,#fffbeb 0%,#fef3c7 100%);
    box-shadow:inset 4px 0 0 #f59e0b;
}
.adm-draft-group-header__icon{font-size:15px;line-height:1}
.adm-draft-group-header__link{font-size:13px;font-weight:800;color:#b45309;text-decoration:none}
.adm-draft-group-header__link:hover{text-decoration:underline}
.adm-draft-group-header__meta{font-size:12px;color:#92400e;font-weight:600}
.adm-draft-group-header__open{margin-left:auto}
.tasks-grid tbody tr.task-row--draft-group{background:#fffdf5}
.tasks-grid tbody tr.task-row--draft-group td{border-top-color:#fde68a}
.tasks-grid tbody tr.task-row--draft-group.task-row--draft-first td,
.tasks-grid tbody tr.task-row--draft-group.task-row--draft-single td{border-top:1px solid #fcd34d}
.tasks-grid tbody tr.task-row--draft-group.task-row--draft-last td,
.tasks-grid tbody tr.task-row--draft-group.task-row--draft-single td{border-bottom:2px solid #fcd34d}
.tasks-grid tbody tr.task-row--draft-group td:first-child{box-shadow:inset 4px 0 0 #fbbf24}
.tasks-grid tbody tr.task-row--draft-group + tr.task-row--draft-group td{border-top-color:#fef3c7}
.tasks-grid tbody tr.task-row--draft-last + tr.adm-draft-group-header td .adm-draft-group-header__inner,
.tasks-grid tbody tr.task-row--draft-single + tr.adm-draft-group-header td .adm-draft-group-header__inner{margin-top:14px}
.adm-draft-group-header--invoice .adm-draft-group-header__inner{
    border-color:#6ee7b7;
    background:linear-gradient(180deg,#ecfdf5 0%,#d1fae5 100%);
    box-shadow:inset 4px 0 0 #10b981;
}
.adm-draft-group-header--invoice .adm-draft-group-header__link{color:#047857}
.adm-draft-group-header--invoice .adm-draft-group-header__meta{color:#065f46}
.adm-draft-group-header__meta--sources a{color:#047857;text-decoration:none;font-weight:700}
.adm-draft-group-header__meta--sources a:hover{text-decoration:underline}
.tasks-grid tbody tr.task-row--invoice-group{background:#f0fdf4}
.tasks-grid tbody tr.task-row--invoice-group td{border-top-color:#bbf7d0}
.tasks-grid tbody tr.task-row--invoice-group.task-row--draft-first td,
.tasks-grid tbody tr.task-row--invoice-group.task-row--draft-single td{border-top:1px solid #6ee7b7}
.tasks-grid tbody tr.task-row--invoice-group.task-row--draft-last td,
.tasks-grid tbody tr.task-row--invoice-group.task-row--draft-single td{border-bottom:2px solid #6ee7b7}
.tasks-grid tbody tr.task-row--invoice-group td:first-child{box-shadow:inset 4px 0 0 #34d399}
.tasks-grid tbody tr.task-row--invoice-group + tr.task-row--invoice-group td{border-top-color:#d1fae5}
.tasks-grid tbody tr.task-row--draft-last + tr.adm-draft-group-header--invoice td .adm-draft-group-header__inner,
.tasks-grid tbody tr.task-row--draft-single + tr.adm-draft-group-header--invoice td .adm-draft-group-header__inner{margin-top:14px}
.tasks-grid tbody tr.task-details--invoice-group td.task-detail-cell{background:#f0fdf4;border-left:4px solid #34d399}
.tasks-grid tbody tr.task-details--draft-group td.task-detail-cell{background:#fffdf5;border-left:4px solid #fbbf24}
.task-flow{border:1px solid rgba(148,163,184,.18);border-radius:16px;background:#f1f5f9;padding:16px}
.task-flow__steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.task-flow__step{display:flex;gap:12px;align-items:flex-start}
.task-flow__index{width:36px;height:36px;border-radius:50%;background:#2563eb;color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(37,99,235,.2)}
.task-flow__label{display:flex;flex-direction:column;gap:4px}
.task-flow__title{font-size:13px;font-weight:700;color:#0f172a;text-transform:uppercase;letter-spacing:.04em}
.task-flow__subtitle{font-size:12px;color:#64748b;line-height:1.4}
@media (max-width: 640px){
    .task-flow__steps{grid-template-columns:1fr}
}
.tasks-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;opacity:.7}
.tasks-summary__card{border:1px dashed rgba(148,163,184,.35);border-radius:12px;background:#f8fafc;padding:10px 12px;display:flex;flex-direction:column;gap:4px;box-shadow:none;transition:opacity .2s ease, transform .2s ease}
.tasks-summary__card:hover{transform:none;box-shadow:none;opacity:.85}
.tasks-summary__card.is-primary,
.tasks-summary__card.is-warn,
.tasks-summary__card.is-danger{background:#e5e7eb;color:#374151;border-color:rgba(156,163,175,.8);box-shadow:none}
.tasks-summary__card.is-primary .tasks-summary__label,
.tasks-summary__card.is-warn .tasks-summary__label,
.tasks-summary__card.is-danger .tasks-summary__label{color:#6b7280;font-weight:600}
.tasks-summary__card.is-primary .tasks-summary__value,
.tasks-summary__card.is-warn .tasks-summary__value,
.tasks-summary__card.is-danger .tasks-summary__value{color:#111827;text-shadow:none}
.tasks-summary__card.is-primary .tasks-summary__trend,
.tasks-summary__card.is-warn .tasks-summary__trend,
.tasks-summary__card.is-danger .tasks-summary__trend{color:#4b5563;font-weight:500}
.tasks-summary__label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;font-weight:600}
.tasks-summary__value{font-size:22px;font-weight:700;color:#111827;line-height:1.1}
.tasks-summary__trend{font-size:12px;font-weight:500;color:#6b7280;line-height:1.4}
.tasks-summary__progress{display:flex;align-items:center;gap:8px;margin-top:8px}
.tasks-summary__progress-bar{position:relative;flex:1 1 auto;height:8px;border-radius:999px;background:rgba(148,163,184,.3);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}
.tasks-summary__progress-bar span{position:absolute;inset:0;border-radius:999px;background:linear-gradient(90deg,#60a5fa 0%,#3b82f6 50%,#2563eb 100%);box-shadow:0 1px 3px rgba(37,99,235,.3)}
.tasks-summary__progress-value{font-size:12px;font-weight:700;color:#1f2937}
.tasks-summary__card.is-primary .tasks-summary__progress-bar{background:rgba(255,255,255,.25);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}
.tasks-summary__card.is-primary .tasks-summary__progress-bar span{background:rgba(255,255,255,.9);box-shadow:0 1px 3px rgba(255,255,255,.5)}
.tasks-summary__card.is-primary .tasks-summary__progress-value{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.tasks-summary__card.is-warn .tasks-summary__progress-bar{background:rgba(255,255,255,.25);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}
.tasks-summary__card.is-warn .tasks-summary__progress-bar span{background:rgba(255,255,255,.9);box-shadow:0 1px 3px rgba(255,255,255,.5)}
.tasks-summary__card.is-danger .tasks-summary__progress-bar{background:rgba(255,255,255,.25);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}
.tasks-summary__card.is-danger .tasks-summary__progress-bar span{background:rgba(255,255,255,.9);box-shadow:0 1px 3px rgba(255,255,255,.5)}
.tasks-filters-active{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 14px;border-radius:12px;background:#f1f5f9;border:1px solid rgba(148,163,184,.22);flex-wrap:wrap}
.tasks-filters-active__label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:700}
.tasks-filters-active__chips{display:flex;gap:8px;flex-wrap:wrap}
.tasks-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#fff;border:1px solid rgba(148,163,184,.24);font-size:12px;font-weight:600;color:#0f172a}
.tasks-filters-active__reset{margin-left:auto;font-size:12px;font-weight:600;color:#2563eb;text-decoration:none}
.tasks-filters-active__reset:hover{text-decoration:underline}
@media (max-width: 640px){
    .tasks-filters-active__reset{margin-left:0}
}
.task-row{transition:all .2s ease;border-left:3px solid transparent;position:relative}
.task-row--urgent{background:#fffbeb!important;border-left-color:#f59e0b;box-shadow:inset 0 0 0 1px rgba(245,158,11,.15)}
.task-row--urgent:hover{background:#fef3c7!important;border-left-color:#d97706;box-shadow:inset 4px 0 0 #d97706,0 2px 8px rgba(217,119,6,.12)}
.task-row--overdue{background:#fef2f2!important;border-left-color:#ef4444;box-shadow:inset 0 0 0 1px rgba(239,68,68,.15)}
.task-row--overdue:hover{background:#fee2e2!important;border-left-color:#dc2626;box-shadow:inset 4px 0 0 #dc2626,0 2px 8px rgba(220,38,38,.12)}
.task-row:hover{transform:translateX(2px);box-shadow:0 2px 8px rgba(15,23,42,.08);z-index:2}
.task-time{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.task-time .time-chip{margin-top:0}
.task-time .time-chip + .time-chip{margin-top:0}
.timer-active-indicator{display:inline-flex!important;align-items:center;justify-content:center;font-size:16px;line-height:1;cursor:help;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif;-moz-font-feature-settings:"liga" 1,"kern" 1;-moz-font-feature-settings:"liga","kern";font-feature-settings:"liga","kern";background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:50%;width:28px;height:28px;box-shadow:0 0 0 4px rgba(16,185,129,.25),0 4px 14px rgba(16,185,129,.5),inset 0 1px 2px rgba(255,255,255,.3);animation:pulse 2s infinite;margin-right:8px;vertical-align:middle;position:relative;z-index:1}
.task-due{vertical-align:middle;padding:10px 12px;min-width:120px;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-due__content{display:flex;flex-direction:column;gap:4px;align-items:flex-start;white-space:nowrap}
.task-due__status{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;background:#e2e8f0;color:#1f2937;font-size:11px;font-weight:600;white-space:nowrap;line-height:1.2;flex-shrink:0}
.task-due__status.is-warn{background:rgba(245,158,11,.16);color:#92400e}
.task-due__status.is-danger{background:rgba(248,113,113,.16);color:#b91c1c}
.task-due__date{font-weight:600;color:#0f172a;font-size:13px;white-space:nowrap;line-height:1.3;flex-shrink:0}
.task-due__meta{font-size:11px;color:#64748b;line-height:1.2;white-space:nowrap;flex-shrink:0}
.task-due__empty{color:#94a3b8;font-size:13px;font-weight:500;white-space:nowrap;display:inline-block;min-width:1ch;text-align:center}
.task-assignees-cell{white-space:normal}
.task-assignees{display:flex;flex-wrap:wrap;gap:6px}
.task-assignee{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 6px;
    border-radius:6px;
    background:transparent;
    color:#111827;
    border:1px solid rgba(148,163,184,.3);
    font-size:12px;
    font-weight:500;
}
.task-category{display:block;max-width:100%;padding:6px 12px;border-radius:999px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}
.tasks-grid tbody td.category-cell,
.tasks-grid thead th.th-category{overflow:hidden;max-width:130px;width:130px;box-sizing:border-box}
.category-cell{vertical-align:middle;padding:6px 8px;overflow:hidden}
.category-cell__inner{overflow:hidden;max-width:100%;min-width:0}
.task-category-select{display:block;max-width:100%;min-width:0;width:100%;padding:6px 24px 6px 10px;border-radius:999px;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;appearance:none;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:linear-gradient(45deg,transparent 50%,#166534 50%),linear-gradient(135deg,#166534 50%,transparent 50%);background-position:calc(100% - 10px) 50%,calc(100% - 5px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.task-category-select:hover{border-color:#86efac;background-color:#ecfdf5}
.task-category-select:focus{outline:none;border-color:#4ade80;box-shadow:0 0 0 2px rgba(74,222,128,.25)}
.task-category-select:disabled{opacity:.65;cursor:wait}
.task-origin-select{display:block;max-width:100%;min-width:0;width:100%;padding:6px 24px 6px 10px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;appearance:none;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 10px) 50%,calc(100% - 5px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.task-origin-select:hover{border-color:#cbd5e1;background-color:#f1f5f9}
.task-origin-select:focus{outline:none;border-color:#94a3b8;box-shadow:0 0 0 2px rgba(148,163,184,.25)}
.task-origin-select:disabled{opacity:.65;cursor:wait}
.task-client-select{display:block;max-width:100%;min-width:0;width:100%;padding:6px 24px 6px 10px;border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;appearance:none;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:linear-gradient(45deg,transparent 50%,#1e40af 50%),linear-gradient(135deg,#1e40af 50%,transparent 50%);background-position:calc(100% - 10px) 50%,calc(100% - 5px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.task-client-select:hover{border-color:#93c5fd;background-color:#dbeafe}
.task-client-select:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.25)}
.task-client-select:disabled{opacity:.65;cursor:wait}
.task-category-select.is-saving,.task-origin-select.is-saving,.task-client-select.is-saving,.task-billing-select.is-saving{opacity:.75;cursor:wait}
.task-category-select.is-saved,.task-origin-select.is-saved,.task-client-select.is-saved,.task-billing-select.is-saved{box-shadow:0 0 0 2px rgba(34,197,94,.35)}
.task-billing-select option{color:#0f172a;background:#fff}
.task-client-input{display:block;max-width:100%;min-width:0;width:100%;padding:6px 10px;border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;font-size:12px;font-weight:600;font-family:inherit;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-client-input::placeholder{color:#64748b;font-weight:500}
.task-client-input:hover{border-color:#93c5fd;background-color:#dbeafe}
.task-client-input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.25);background:#fff}
.task-client-input:disabled{opacity:.65;cursor:wait}
.origin-cell__inner,.client-cell__inner{min-width:0;max-width:100%}
/* Colonna "Modalità di intervento" (board ticket/amministrativa): contenuto centrato rispetto alla colonna */
.tasks-grid[data-board-origin="ticket"] th.th-origin,
.tasks-grid[data-board-origin="admin"] th.th-origin,
.tasks-grid[data-board-origin="ticket"] td.origin-cell,
.tasks-grid[data-board-origin="admin"] td.origin-cell{text-align:center}
.tasks-grid[data-board-origin="ticket"] td.origin-cell .origin-cell__inner,
.tasks-grid[data-board-origin="admin"] td.origin-cell .origin-cell__inner{display:flex;justify-content:center}
.tasks-grid--managed-cols tbody td.fatturazione-cell .fatturazione-cell__inner{max-width:100%;min-width:0}
.task-billing-select{display:block;max-width:100%;min-width:0;width:100%;padding:6px 24px 6px 10px;border-radius:999px;border:1px solid #e2e8f0;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;appearance:none;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 10px) 50%,calc(100% - 5px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.task-billing-select:hover{filter:brightness(.97)}
.task-billing-select:focus{outline:none;box-shadow:0 0 0 2px rgba(59,130,246,.2)}
.task-billing-select:disabled{opacity:.65;cursor:wait}
.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}
.status-pill--in_entrata,.status-pill--da_pianificare,.status-pill--open{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.status-pill--assegnato{background:#f0fdf4;border-color:#86efac;color:#166534}
.status-pill--pianificato{background:#f0f9ff;border-color:#bae6fd;color:#0c4a6e}
.status-pill--in_corso,.status-pill--in_progress{background:#fefce8;border-color:#facc15;color:#854d0e}
.status-pill--in_esecuzione{background:#fff7ed;border-color:#fdba74;color:#c2410c}
.status-pill--in_standby{background:#fef3c7;border-color:#fde68a;color:#92400e}
.status-pill--risolto,.status-pill--chiuso_risolto{background:#ecfdf5;border-color:#6ee7b7;color:#047857}
.status-pill--non_risolto,.status-pill--chiuso_non_risolto,.status-pill--done{background:#fee2e2;border-color:#fca5a5;color:#991b1b}
.status-pill--chiuso,.status-pill--inviato,.status-pill--archiviato,.status-pill--archived{background:#f1f5f9;border-color:#cbd5e1;color:#334155}
.task-create-wrapper{width:100%;max-width:var(--app-content-max-width);margin:0;margin-right:auto;padding:16px 20px;box-sizing:border-box}
.task-create-breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:8px 0;font-size:13px;color:#64748b}
.breadcrumb-link{color:#2563eb;text-decoration:none;font-weight:500;transition:color .2s;display:flex;align-items:center;gap:6px}
.breadcrumb-link:hover{color:#1d4ed8;text-decoration:underline}
.breadcrumb-separator{color:#94a3b8;font-weight:300}
.breadcrumb-current{color:#0f172a;font-weight:600}
.task-create-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);padding:24px 28px;border:1px solid rgba(148,163,184,.1);transition:box-shadow .3s ease}
.task-create-card:hover{box-shadow:0 4px 20px rgba(15,23,42,.1),0 2px 4px rgba(15,23,42,.06)}
.task-create-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px;padding-bottom:20px;border-bottom:1.5px solid rgba(148,163,184,.12)}
.task-create-title{display:flex;align-items:flex-start;gap:16px;flex:1}
.task-create-icon{font-size:36px;line-height:1;filter:drop-shadow(0 2px 4px rgba(37,99,235,.2));animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.task-create-title h3{margin:0 0 6px 0;font-size:24px;font-weight:800;color:#0f172a;letter-spacing:-.02em;line-height:1.2}
.task-create-subtitle{margin:0;font-size:13px;color:#64748b;line-height:1.5;font-weight:400}
.task-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;margin-bottom:14px}
.task-alert--warning{background:#fffbeb;border:1px solid #fbbf24}
.task-alert--info{background:#eff6ff;border:1px solid #93c5fd}
.task-alert-icon{font-size:18px;line-height:1}
.task-alert-body{flex:1;min-width:0}
.task-alert-title{font-size:13px;font-weight:600;color:#92400e;margin-bottom:2px}
.task-alert-text{font-size:12px;color:#92400e}
.btn--icon{display:inline-flex;align-items:center;gap:8px}
.task-create-form{display:flex;flex-direction:column;gap:0}
.task-create-layout{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}
.task-create-main{display:flex;flex-direction:column;gap:16px}
.task-create-sidebar{display:flex;flex-direction:column;gap:16px;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;padding-right:8px}
.task-create-sidebar::-webkit-scrollbar{width:6px}
.task-create-sidebar::-webkit-scrollbar-track{background:transparent}
.task-create-sidebar::-webkit-scrollbar-thumb{background:rgba(148,163,184,.3);border-radius:3px}
.task-create-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.5)}
.task-form-hero{margin-bottom:4px}
.task-form-field--hero{margin-bottom:0}
.task-form-input--hero{font-size:18px;font-weight:600;padding:14px 18px;border:2px solid rgba(37,99,235,.2);background:linear-gradient(180deg,#ffffff,#f8fafc);box-shadow:0 2px 8px rgba(37,99,235,.06)}
.task-form-input--hero:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12),0 2px 12px rgba(37,99,235,.1);transform:translateY(-1px)}
.task-form-section--compact{padding:18px;gap:16px;margin-bottom:0}
.task-form-section--sidebar{padding:16px;gap:12px;background:linear-gradient(180deg,#ffffff,#f8fafc);border:1px solid rgba(148,163,184,.12);border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.03);transition:box-shadow .2s ease,border-color .2s ease}
.task-form-section--sidebar:hover{box-shadow:0 2px 8px rgba(15,23,42,.06);border-color:rgba(148,163,184,.22)}
.task-form-section--sidebar .task-form-section-title{margin-bottom:12px;font-size:14px}
.task-form-section--sidebar .task-form-section-title .section-icon{font-size:18px}
.task-form-section--status .task-form-section-title{margin-bottom:10px}
.task-status-summary{display:flex;flex-direction:column;gap:10px}
.task-status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:600;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
.task-status-assign{display:flex;flex-direction:column;gap:2px;font-size:12px}
.task-status-assign .label{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-size:11px;font-weight:600}
.task-status-assign .value{font-weight:600;color:#0f172a}
.task-form-section{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:#ffffff;border:1px solid rgba(148,163,184,.3);border-radius:10px;box-shadow:0 1px 3px rgba(15,23,42,.03);transition:box-shadow .2s ease,border-color .2s ease}
.task-form-section:hover{box-shadow:0 2px 8px rgba(15,23,42,.06);border-color:rgba(148,163,184,.35)}
.task-form-section-title{margin:0 0 14px 0;font-size:16px;font-weight:800;color:#0f172a;display:flex;align-items:center;gap:10px;letter-spacing:-.01em;text-transform:none}
.task-form-section-title .section-icon{font-size:20px;line-height:1;filter:drop-shadow(0 1px 2px rgba(37,99,235,.2))}
.task-form-grid{display:grid;gap:14px}
.task-form-grid--one{grid-template-columns:1fr}
.task-form-grid--two{grid-template-columns:repeat(2,1fr)}
.task-form-grid--three{grid-template-columns:repeat(3,1fr)}
@media (max-width: 1200px){
    .task-form-grid--two,.task-form-grid--three{grid-template-columns:1fr}
    .task-create-layout{grid-template-columns:1fr}
    .task-create-sidebar{position:static;max-height:none;order:-1}
}
.task-form-field{display:flex;flex-direction:column;gap:8px}
.task-form-label{display:flex;flex-direction:column;gap:2px;font-size:12px;font-weight:500;color:#4b5563}
.label-text{font-weight:600;color:#111827;display:inline-flex;align-items:center;gap:4px}
.label-required{color:#dc2626;font-weight:700;font-size:11px;line-height:1}
.label-hint{font-size:11px;font-weight:400;color:#6b7280;margin-top:0}
.task-form-input,.task-form-select,.task-form-textarea{width:100%;padding:10px 14px;border:1.5px solid rgba(148,163,184,.2);border-radius:10px;background:#fff;color:#0f172a;font-size:14px;font-family:inherit;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none;font-weight:400;line-height:1.5}
.task-form-input:hover,.task-form-select:hover,.task-form-textarea:hover{border-color:rgba(37,99,235,.3);background:#fafbfc}
.task-form-input:focus,.task-form-select:focus,.task-form-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1),0 1px 4px rgba(37,99,235,.08);outline:none;background:#fff;transform:translateY(-1px)}
.task-form-input::placeholder,.task-form-textarea::placeholder{color:#94a3b8;font-weight:400}
.task-form-textarea{resize:vertical;min-height:80px;line-height:1.5}
.task-form-select--multiple{min-height:120px;padding:8px}
.task-form-select--multiple option{padding:8px 12px;border-radius:6px;margin:2px 0}
.task-form-select--multiple option:checked{background:#2563eb;color:#fff}
.task-users-checkbox-container{background:#fff;border:1.5px solid rgba(148,163,184,.2);border-radius:8px;overflow:hidden}
.task-users-checkbox-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#f8fafc;border-bottom:1px solid rgba(148,163,184,.1)}
.task-users-checkbox-all{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;font-weight:600;color:#374151;user-select:none}
.task-users-checkbox-all input[type="checkbox"]{width:14px;height:14px;cursor:pointer;accent-color:#2563eb}
.task-users-count{font-size:11px;font-weight:600;color:#64748b;padding:2px 8px;background:#fff;border-radius:4px;border:1px solid rgba(148,163,184,.2)}
.task-users-checkbox-list{max-height:140px;overflow-y:auto;padding:3px;display:flex;flex-direction:column;gap:1px}
.task-users-checkbox-list::-webkit-scrollbar{width:5px}
.task-users-checkbox-list::-webkit-scrollbar-track{background:transparent}
.task-users-checkbox-list::-webkit-scrollbar-thumb{background:rgba(148,163,184,.3);border-radius:2px}
.task-users-checkbox-list::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.5)}
.task-user-checkbox-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;cursor:pointer;transition:all .15s ease;user-select:none}
.task-user-checkbox-item:hover{background:#f0f9ff}
.task-user-checkbox-item input[type="checkbox"]{width:13px;height:13px;cursor:pointer;accent-color:#2563eb;flex-shrink:0}
.task-user-checkbox-label{font-size:11px;font-weight:500;color:#1f2937;flex:1;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-user-checkbox-item:has(input:checked){background:#eff6ff;border:1px solid rgba(37,99,235,.2)}
.task-user-checkbox-item:has(input:checked) .task-user-checkbox-label{color:#1e40af;font-weight:600}
.task-groups-checkbox-container{background:#fff;border:1.5px solid rgba(14,165,233,.2);border-radius:6px;overflow:hidden}
.task-groups-checkbox-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#f0f9ff;border-bottom:1px solid rgba(14,165,233,.1)}
.task-groups-checkbox-all{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:11px;font-weight:600;color:#0c4a6e;user-select:none;white-space:nowrap}
.task-groups-checkbox-all input[type="checkbox"]{width:13px;height:13px;cursor:pointer;accent-color:#0ea5e9}
.task-groups-count{font-size:10px;font-weight:600;color:#0369a1;padding:2px 6px;background:#fff;border-radius:4px;border:1px solid rgba(14,165,233,.2);white-space:nowrap}
.task-users-count{font-size:10px;font-weight:600;color:#64748b;white-space:nowrap}
.task-groups-checkbox-list{max-height:140px;overflow-y:auto;padding:3px;display:flex;flex-direction:column;gap:1px}
.task-groups-checkbox-list::-webkit-scrollbar{width:5px}
.task-groups-checkbox-list::-webkit-scrollbar-track{background:transparent}
.task-groups-checkbox-list::-webkit-scrollbar-thumb{background:rgba(14,165,233,.3);border-radius:2px}
.task-groups-checkbox-list::-webkit-scrollbar-thumb:hover{background:rgba(14,165,233,.5)}
.task-group-checkbox-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;cursor:pointer;transition:all .15s ease;user-select:none}
.task-group-checkbox-item:hover{background:#e0f2fe}
.task-group-checkbox-item input[type="checkbox"]{width:13px;height:13px;cursor:pointer;accent-color:#0ea5e9;flex-shrink:0}
.task-group-checkbox-label{font-size:11px;font-weight:500;color:#0c4a6e;flex:1;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.task-group-checkbox-item:has(input:checked){background:#e0f2fe;border:1px solid rgba(14,165,233,.3)}
.task-group-checkbox-item:has(input:checked) .task-group-checkbox-label{color:#075985;font-weight:600}
/* Label + checkbox (notifica email, ecc.): evita width:100% globale sugli input */
.task-form-checkbox-label{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:10px;
    cursor:pointer;
    margin:0;
    font-size:14px;
    font-weight:500;
    color:#334155;
    line-height:1.4;
    max-width:100%;
}
.task-form-checkbox-label input[type="checkbox"]{
    width:18px;
    height:18px;
    min-width:18px;
    margin:2px 0 0;
    flex-shrink:0;
    cursor:pointer;
    accent-color:#2563eb;
    padding:0;
    border:none;
    border-radius:4px;
    background:#fff;
    box-shadow:none;
}
.task-form-field--checkbox .task-form-checkbox-label > span{
    flex:1;
    min-width:0;
}
.task-form-actions{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1.5px solid rgba(148,163,184,.12);margin-top:20px}
.btn--large{padding:16px 32px;font-size:16px;font-weight:700;border-radius:14px;transition:all .25s cubic-bezier(.4,0,.2,1);letter-spacing:-.01em}
.btn--large .btn-icon{font-size:18px;line-height:1}
.btn--create{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 16px rgba(37,99,235,.3),0 2px 4px rgba(37,99,235,.2);border:none;color:#fff;position:relative;overflow:hidden}
.btn--create::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity .3s}
.task-action-btn{display:inline-flex;align-items:center;justify-content:center;position:relative;transition:all .2s ease}
.task-action-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.2);opacity:.95}
.task-action-btn:hover::after{content:attr(title);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#1f2937;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:1000;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.task-action-btn:hover::before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#1f2937;z-index:1001;pointer-events:none}
.btn--create:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,99,235,.4),0 4px 8px rgba(37,99,235,.3)}
.btn--create:hover::before{opacity:1}
.btn--create:active{transform:translateY(0);box-shadow:0 4px 12px rgba(37,99,235,.3)}
.task-form-section--assign{background:linear-gradient(180deg,#eff6ff,#f0f9ff);border-color:rgba(37,99,235,.2);box-shadow:0 1px 4px rgba(37,99,235,.08)}
.task-form-section--assign:hover{border-color:rgba(37,99,235,.3);box-shadow:0 2px 8px rgba(37,99,235,.12)}
.section-icon{font-size:20px;line-height:1;filter:drop-shadow(0 2px 4px rgba(37,99,235,.2))}
.task-assign-container{display:flex;gap:16px}
.task-assign-options{display:flex;gap:12px;flex-wrap:wrap}
.task-assign-option{flex:1;min-width:180px}
.task-assign-radio{display:none}
.task-assign-option-label{display:flex;align-items:center;gap:10px;padding:12px 16px;border:2px solid rgba(148,163,184,.25);border-radius:10px;background:#fff;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-weight:600;color:#374151;box-shadow:0 1px 4px rgba(15,23,42,.04);position:relative;overflow:hidden;font-size:13px}
.task-assign-option-label::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(37,99,235,.05),rgba(31,111,235,.02));opacity:0;transition:opacity .2s;z-index:0}
.task-assign-option-label:hover{border-color:#93c5fd;background:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 8px rgba(37,99,235,.1)}
.task-assign-option-label:hover::before{opacity:1}
.task-assign-radio:checked + .task-assign-option-label{border-color:#2563eb;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1e40af;box-shadow:0 2px 8px rgba(37,99,235,.15),inset 0 1px 0 rgba(255,255,255,.8);transform:translateY(-1px)}
.task-assign-radio:checked + .task-assign-option-label::before{opacity:1}
.option-icon{font-size:20px;line-height:1;position:relative;z-index:1;filter:drop-shadow(0 1px 2px rgba(37,99,235,.2))}
.option-text{font-size:13px;font-weight:700;position:relative;z-index:1;letter-spacing:-.01em}
.task-assign-group-panel,.task-assign-users-panel{animation:slideDown .2s ease-out;padding-top:4px}
.task-assign-group-users{margin-top:20px;padding:20px;background:#fff;border:2px solid rgba(37,99,235,.15);border-radius:14px;box-shadow:0 4px 12px rgba(37,99,235,.08)}
.group-users-label{font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;display:flex;align-items:center;gap:6px}
.group-users-label::before{content:"👥";font-size:14px}
.group-users-list{display:flex;flex-wrap:wrap;gap:10px}
.group-user-item{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1.5px solid #93c5fd;color:#1e40af;font-size:13px;font-weight:600;box-shadow:0 2px 6px rgba(37,99,235,.1);transition:transform .2s}
.group-user-item:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(37,99,235,.15)}
.group-user-icon{font-size:16px;line-height:1;filter:drop-shadow(0 1px 2px rgba(37,99,235,.2))}
.group-user-name{font-weight:600;letter-spacing:-.01em}
.task-assign-selected{display:flex;align-items:center;gap:8px;margin-top:12px;padding:12px 16px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:2px solid #93c5fd;border-radius:12px;color:#1e40af;font-size:13px;font-weight:700;box-shadow:0 2px 8px rgba(37,99,235,.12);animation:slideDown .2s ease-out}
.task-assign-selected::before{content:"✓";font-size:16px;line-height:1;font-weight:800}
#selected-count{font-weight:800;font-size:14px}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media (max-width: 960px){
    .task-create-wrapper{padding:16px}
    .task-create-card{padding:28px 24px}
    .task-create-header{flex-direction:column;align-items:stretch;gap:20px}
    .task-create-title{flex-direction:column;gap:12px}
    .task-create-icon{font-size:36px}
    .task-create-title h3{font-size:26px}
    .task-form-section{padding:24px 20px}
    .task-form-section--compact{padding:20px}
    .task-form-section--sidebar{padding:18px}
    .task-form-actions{flex-direction:column-reverse;align-items:stretch;gap:12px}
    .task-form-actions .btn{width:100%;justify-content:center}
}
@media (max-width: 640px){
    .task-create-card{padding:20px 16px}
    .task-create-header{padding-bottom:24px;margin-bottom:32px}
    .task-create-title h3{font-size:22px}
    .task-create-subtitle{font-size:14px}
    .task-form-section{padding:20px 16px;gap:20px}
    .task-form-section--compact{padding:18px 16px}
    .task-form-section-title{font-size:16px;margin-bottom:16px}
    .task-form-section-title .section-icon{font-size:20px}
    .task-form-input--hero{font-size:18px;padding:16px 20px}
    .breadcrumb-link,.breadcrumb-current{font-size:13px}
    .task-assign-options{flex-direction:column}
    .task-assign-option{min-width:100%}
    .task-assign-option-label{padding:16px 20px}
}
/* Banner notifiche push su mobile */
.push-notification-banner{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#1e40af,#1e3a8a);color:#fff;z-index:10000;box-shadow:0 -4px 20px rgba(0,0,0,0.3);transform:translateY(100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);max-width:100%;padding:0}
.push-notification-banner.show{transform:translateY(0)}
.push-notification-banner.success{background:linear-gradient(135deg,#16a34a,#15803d)}
.push-banner-content{display:flex;align-items:center;gap:16px;padding:16px 20px;max-width:100%}
.push-banner-icon{font-size:32px;flex-shrink:0;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:0.8}}
.push-banner-text{flex:1;min-width:0}
.push-banner-text strong{display:block;font-size:16px;font-weight:600;margin-bottom:4px;color:#fff}
.push-banner-text p{margin:0;font-size:13px;color:rgba(255,255,255,0.9);line-height:1.4}
.push-banner-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.push-banner-btn{padding:10px 20px;border:none;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all 0.2s cubic-bezier(0.4,0,0.2,1);white-space:nowrap}
.push-banner-btn-primary{background:#fff;color:#1e40af;box-shadow:0 2px 8px rgba(0,0,0,0.2)}
.push-banner-btn-primary:hover{background:#f0f9ff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.3)}
.push-banner-btn-primary:active{transform:translateY(0);box-shadow:0 1px 4px rgba(0,0,0,0.2)}
.push-banner-btn-close{background:transparent;color:rgba(255,255,255,0.8);font-size:24px;line-height:1;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%}
.push-banner-btn-close:hover{background:rgba(255,255,255,0.2);color:#fff}
@media (max-width:480px){.push-banner-content{flex-wrap:wrap;padding:14px 16px;gap:12px}.push-banner-icon{font-size:28px}.push-banner-text strong{font-size:15px}.push-banner-text p{font-size:12px}.push-banner-btn{padding:8px 16px;font-size:13px}.push-banner-actions{width:100%;justify-content:space-between}.push-banner-btn-primary{flex:1}}
/* Stili compatti per anagrafica */
.form-label-modern{display:flex;flex-direction:column;gap:3px;margin-bottom:0}
.form-label-modern span{margin:0!important;font-size:12px;font-weight:600;color:#64748b}
.form-label-modern input,.form-label-modern select{padding:8px 10px;font-size:14px;margin-top:4px}
.input-modern,.select-modern{padding:8px 10px;font-size:14px}
/* Sezioni collassabili anagrafica - Design migliorato */
.anagrafica-section{background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 8px rgba(15,23,42,0.06);overflow:hidden;transition:box-shadow 0.3s,transform 0.2s}
.anagrafica-section:hover{box-shadow:0 4px 12px rgba(15,23,42,0.1)}
.section-header-collapsible{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#ffffff,#f8fafc);border-bottom:2px solid #e2e8f0;transition:all 0.3s;user-select:none}
.section-header-collapsible:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding-left:18px}
.section-header-collapsible:active{transform:scale(0.998)}
.section-header-collapsible .section-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:white;font-size:18px;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,0.15);transition:transform 0.2s}
.section-header-collapsible:hover .section-icon{transform:scale(1.05)}
.section-header-collapsible .section-title{margin:0;font-size:16px;font-weight:700;color:#1e293b;letter-spacing:-0.01em}
.section-header-collapsible .section-description{margin:3px 0 0 0;font-size:12px;color:#64748b;font-weight:500}
.section-arrow{flex-shrink:0;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);color:#64748b;opacity:0.7}
.section-header-collapsible:hover .section-arrow{opacity:1;transform:translateX(2px)}
.anagrafica-section[data-section-open="true"] .section-arrow{transform:rotate(180deg)}
.anagrafica-section[data-section-open="true"] .section-header-collapsible{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}
.section-content{padding:16px;background:#fff}

/* Dashboard global search: premium visual treatment */
.dashboard-global-search{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(99,102,241,.18);
    background:
        radial-gradient(1200px 340px at -10% -20%, rgba(59,130,246,.12), transparent 45%),
        radial-gradient(900px 300px at 110% -20%, rgba(139,92,246,.12), transparent 42%),
        linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
}
.dashboard-global-search__glow{
    position:absolute;
    inset:auto -120px -160px auto;
    width:360px;height:360px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(37,99,235,.16), rgba(37,99,235,0) 70%);
    pointer-events:none;
}
.dashboard-global-search__header{align-items:flex-start;gap:14px;flex-wrap:wrap;position:relative;z-index:1}
.dashboard-global-search__intro{flex:1;min-width:280px}
.dashboard-global-search__title{margin:0;font-size:24px;letter-spacing:-.02em}
.dashboard-global-search__subtitle{font-size:13px}
.dashboard-global-search__form{gap:8px;flex:1;justify-content:flex-end;min-width:320px}
.dashboard-global-search__input{
    min-width:260px;flex:1;
    background:#fff;
    border:1px solid rgba(99,102,241,.22);
    box-shadow:0 10px 30px rgba(15,23,42,.06), inset 0 1px 0 rgba(255,255,255,.9);
}
.dashboard-global-search__input:focus{
    border-color:#818cf8;
    box-shadow:0 0 0 4px rgba(129,140,248,.18), 0 12px 28px rgba(37,99,235,.14);
}
.dashboard-global-search__submit{
    background:linear-gradient(135deg,#2563eb,#4f46e5);
    color:#fff;border:none;
    box-shadow:0 10px 24px rgba(37,99,235,.26);
}
.dashboard-global-search__submit:hover{box-shadow:0 14px 28px rgba(37,99,235,.32)}
.dashboard-global-search__reset{background:#fff}
.dashboard-global-search__stats{margin-top:10px;position:relative;z-index:1}
.dashboard-global-search__stats-total{
    background:linear-gradient(135deg, rgba(37,99,235,.13), rgba(79,70,229,.13));
    border-color:rgba(79,70,229,.22);
    color:#1e3a8a;
}
.dashboard-global-search__stats-chip{border-color:rgba(148,163,184,.3)}
.dashboard-global-search__empty{margin-top:10px}
.dashboard-global-search__grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:12px;
    margin-top:12px;
    position:relative;
    z-index:1;
}
.dashboard-global-search__bucket{
    border:1px solid rgba(148,163,184,.24);
    border-radius:14px;
    padding:12px;
    background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,255,.96));
    box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.dashboard-global-search__bucket-title{
    font-weight:800;
    font-size:12px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#334155;
    margin-bottom:10px;
}
.dashboard-global-search__bucket-list{display:flex;flex-direction:column;gap:7px}
.dashboard-global-search__result{
    text-decoration:none;
    border:1px solid rgba(148,163,184,.2);
    border-radius:10px;
    padding:9px 10px;
    background:#fff;
    transition:all .2s ease;
}
.dashboard-global-search__result:hover{
    border-color:rgba(79,70,229,.35);
    box-shadow:0 8px 18px rgba(79,70,229,.12);
    transform:translateY(-1px);
}
.dashboard-global-search__result-title{font-weight:700;color:#0f172a}
.dashboard-global-search__result-meta{font-size:12px}

/* Command palette globale */
.cmdk-open { overflow: hidden; }
/* hidden + display:flex sullo stesso elemento: senza questa regola l'overlay resta sempre visibile */
.cmdk-overlay[hidden] {
    display: none !important;
}
.cmdk-overlay {
    position: fixed;
    inset: 0;
    z-index: 1400;
    background: rgba(2, 6, 23, 0.65);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 9vh 1rem 1rem;
}
.cmdk-panel {
    width: min(880px, 100%);
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: linear-gradient(180deg, #0f172a 0%, #0b1223 100%);
    box-shadow: 0 30px 60px rgba(2, 6, 23, 0.55);
    overflow: hidden;
}
.cmdk-input-wrap {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
}
.cmdk-kbd {
    font-size: 0.75rem;
    color: #93c5fd;
    border: 1px solid rgba(147, 197, 253, 0.35);
    border-radius: 999px;
    padding: 0.2rem 0.5rem;
}
.cmdk-input-wrap input {
    background: transparent;
    border: none;
    color: #f8fafc;
    font-size: 1.05rem;
    outline: none;
}
.cmdk-input-wrap input::placeholder { color: #94a3b8; }
.cmdk-close {
    border: none;
    background: transparent;
    color: #cbd5e1;
    font-size: 1.3rem;
    cursor: pointer;
}
.cmdk-meta {
    color: #94a3b8;
    font-size: 0.82rem;
    padding: 0.7rem 1rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}
.cmdk-results {
    max-height: 56vh;
    overflow: auto;
    padding: 0.45rem;
}
.cmdk-item {
    width: 100%;
    border: 1px solid transparent;
    background: transparent;
    color: #e2e8f0;
    text-align: left;
    border-radius: 12px;
    padding: 0.7rem 0.75rem;
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 0.8rem;
    cursor: pointer;
}
.cmdk-item:hover,
.cmdk-item.active {
    border-color: rgba(56, 189, 248, 0.45);
    background: rgba(30, 41, 59, 0.7);
}
.cmdk-item-bucket {
    color: #7dd3fc;
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.cmdk-item-main { display: grid; gap: 0.22rem; }
.cmdk-item-main strong {
    color: #f8fafc;
    font-size: 0.95rem;
    font-weight: 650;
}
.cmdk-item-main em {
    color: #94a3b8;
    font-size: 0.8rem;
    font-style: normal;
}
.cmdk-empty {
    color: #94a3b8;
    text-align: center;
    padding: 1.2rem;
}

/* Timeline attività — vista amministrativa (palette blu / indaco / viola) */
.task-activity-admin-list {
    --taa-indigo: #6366f1;
    --taa-indigo-dark: #4f46e5;
    --taa-indigo-soft: #eef2ff;
    --taa-indigo-mid: #e0e7ff;
    --taa-purple: #7c3aed;
    --taa-purple-dark: #6d28d9;
    --taa-purple-soft: #f5f3ff;
    --taa-purple-mid: #ede9fe;
    --taa-purple-deep: #ddd6fe;
    --taa-purple-border: #c4b5fd;
    --taa-pink-soft: #fff9fc;
    --taa-pink-mid: #fef5fa;
    --taa-pink-deep: #fdeef6;
    --taa-pink-border: #f5dce8;
    --taa-pink-accent: #e8b4cc;
    --taa-pink-text: #9a8a96;
    --taa-pink-strong: #8b7a87;
    --taa-copper-soft: #fdf8f3;
    --taa-copper-mid: #f9efe4;
    --taa-copper-border: #e8d0b8;
    --taa-copper-text: #c45f1a;
    --taa-copper-strong: #a84f12;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    padding: 0.5rem;
}

.task-activity-admin-empty {
    padding: 2rem 1rem;
    text-align: center;
    color: #64748b;
    font-size: 0.875rem;
    background: #fafafa;
    border: 1px dashed #e2e8f0;
    border-radius: 12px;
}

.task-activity-admin-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05), 0 8px 24px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.task-activity-admin-card--timer {
    border-color: var(--taa-purple-border);
    box-shadow: 0 1px 3px rgba(99, 102, 241, 0.1), 0 8px 24px rgba(124, 58, 237, 0.08);
}

.task-activity-admin-card-header {
    padding: 1rem 1.125rem 0.875rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border-bottom: 1px solid #e8ecf1;
}

.task-activity-admin-header-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 1.25rem;
    align-items: center;
}

.task-activity-admin-operator-col {
    min-width: 0;
}

.task-activity-admin-operator {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.task-activity-admin-avatar {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(145deg, #6366f1 0%, #7c3aed 100%);
    color: #fff;
    font-weight: 700;
    font-size: 0.8125rem;
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: none;
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.32);
}

.task-activity-admin-operator-text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    padding-top: 0.05rem;
}

.task-activity-admin-operator-label {
    font-size: 0.625rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
}

.task-activity-admin-operator-name {
    font-size: 1.125rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.task-activity-admin-type-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.task-activity-admin-type {
    font-size: 0.75rem;
    color: #64748b;
}

.task-activity-admin-type--timer {
    color: var(--taa-indigo-dark);
    font-weight: 600;
}

.task-activity-admin-operator-meta {
    display: block;
    margin-top: 0.35rem;
}

.task-activity-admin-mat-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--taa-pink-text);
    background: linear-gradient(180deg, var(--taa-pink-soft) 0%, var(--taa-pink-mid) 100%);
    border: 1px solid var(--taa-pink-border);
    border-radius: 999px;
    padding: 0.2rem 0.55rem 0.2rem 0.45rem;
    box-shadow: none;
}

.task-activity-admin-mat-chip-icon {
    font-size: 0.75rem;
    line-height: 1;
}

.task-activity-admin-mat-chip strong {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--taa-pink-strong);
}

.task-activity-admin-metrics-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(7.5rem, auto));
    gap: 0;
    border-radius: 12px;
    overflow: hidden;
    flex-shrink: 0;
    border: 1px solid var(--taa-purple-border);
    box-shadow: 0 2px 10px rgba(99, 102, 241, 0.12);
}

.task-activity-admin-kpi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    padding: 0.625rem 0.875rem;
    min-width: 0;
    background: transparent;
}

.task-activity-admin-kpi + .task-activity-admin-kpi {
    border-left: 1px solid rgba(255, 255, 255, 0.65);
}

.task-activity-admin-kpi-label {
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
}

.task-activity-admin-kpi-value {
    font-size: 1rem;
    font-weight: 700;
    color: #1e293b;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    white-space: nowrap;
    letter-spacing: -0.02em;
}

.task-activity-admin-kpi--recorded {
    background: linear-gradient(165deg, var(--taa-indigo-soft) 0%, var(--taa-indigo-mid) 100%);
}

.task-activity-admin-kpi--recorded .task-activity-admin-kpi-label {
    color: var(--taa-indigo);
}

.task-activity-admin-kpi--recorded .task-activity-admin-kpi-value {
    color: var(--taa-indigo-dark);
}

.task-activity-admin-kpi--recorded .task-activity-admin-kpi-value::before {
    content: "⏱";
    margin-right: 0.25rem;
    font-size: 0.85em;
    opacity: 0.85;
}

.task-activity-admin-kpi--billable.task-activity-admin-kpi--featured {
    background: linear-gradient(165deg, var(--taa-purple-soft) 0%, var(--taa-purple-deep) 100%);
}

.task-activity-admin-kpi--billable .task-activity-admin-kpi-label {
    color: var(--taa-purple);
}

.task-activity-admin-kpi--billable.task-activity-admin-kpi--featured .task-activity-admin-kpi-value {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--taa-purple-dark);
}

.task-activity-admin-kpi--billable .task-activity-admin-kpi-value::before {
    content: "⏲";
    margin-right: 0.25rem;
    font-size: 0.85em;
    opacity: 0.9;
}

.task-activity-admin-kpi--muted {
    background: #f8fafc;
}

.task-activity-admin-kpi--muted .task-activity-admin-kpi-value {
    color: #cbd5e1;
    font-weight: 500;
    font-size: 0.9375rem;
}

.task-activity-admin-manual {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.85rem;
    padding: 0.65rem 1.125rem;
    font-size: 0.8125rem;
    color: #64748b;
    background: linear-gradient(90deg, #f5f3ff 0%, #faf5ff 55%, #fff 100%);
    border-bottom: 1px solid #ede9fe;
    border-left: 3px solid #8b5cf6;
}

.task-activity-admin-manual-part {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.72);
}

.task-activity-admin-manual-part strong {
    color: #0f172a;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    font-size: 0.875rem;
}

.task-activity-admin-manual-label {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #7c3aed;
}

.task-activity-admin-manual-sep {
    color: #a78bfa;
    font-size: 0.875rem;
    font-weight: 600;
    user-select: none;
}

.task-activity-admin-body {
    padding: 1rem 1.125rem 1.125rem;
    font-size: 0.9375rem;
    line-height: 1.65;
    color: #1e293b;
    background: #fff;
    border-left: 3px solid #e2e8f0;
    box-shadow: inset 0 2px 0 #f8fafc;
}

.task-activity-admin-body:last-child {
    border-bottom: none;
}

.task-activity-admin-file,
.task-activity-admin-attachment {
    display: inline-flex;
    align-items: center;
    margin: 0 1.125rem 0.875rem;
    padding: 0.45rem 0.7rem;
    border-radius: 8px;
    background: var(--taa-indigo-soft);
    border: 1px solid var(--taa-purple-border);
    color: var(--taa-indigo-dark);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.task-activity-admin-file:hover,
.task-activity-admin-attachment:hover {
    background: var(--taa-purple-mid);
    border-color: #a78bfa;
    color: var(--taa-purple-dark);
}

.task-activity-admin-materials {
    padding: 0.75rem 1.125rem 1rem;
    background: linear-gradient(180deg, var(--taa-pink-soft) 0%, #fff 55%);
    border-top: 1px solid var(--taa-pink-border);
}

.task-activity-admin-materials-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--taa-pink-text);
    margin-bottom: 0.55rem;
}

.task-activity-admin-materials-title::before {
    content: "📦";
    font-size: 0.8rem;
}

.task-activity-admin-materials-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--taa-pink-strong);
    background: var(--taa-pink-mid);
    border: 1px solid var(--taa-pink-border);
    box-shadow: none;
}

.task-activity-admin-mat-table-wrap {
    overflow-x: auto;
    border-radius: 10px;
    border: 1px solid #e8ecf1;
    background: #fff;
}

.task-activity-admin-mat-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

.task-activity-admin-mat-table th {
    text-align: left;
    padding: 0.45rem 0.6rem;
    background: var(--taa-pink-soft);
    color: var(--taa-pink-text);
    font-weight: 600;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
    border-bottom: 1px solid var(--taa-pink-border);
}

.task-activity-admin-mat-table td {
    padding: 0.5rem 0.6rem;
    border-top: 1px solid #f1f5f9;
    color: #334155;
    vertical-align: top;
}

.task-activity-admin-mat-table tbody tr:hover td {
    background: #fafbfc;
}

.task-activity-admin-mat-code {
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
}

.task-activity-admin-mat-qty,
.task-activity-admin-mat-price,
.task-activity-admin-mat-sub {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.task-activity-admin-mat-sub {
    font-weight: 600;
    color: #0f172a;
}

.task-activity-admin-mat-badge {
    display: inline-block;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.625rem;
    font-weight: 500;
    background: var(--taa-pink-soft);
    color: var(--taa-pink-text);
    border: 1px solid var(--taa-pink-border);
}

.task-activity-admin-mat-badge--mag {
    background: var(--taa-copper-soft);
    color: var(--taa-copper-text);
    border-color: var(--taa-copper-border);
}

.task-activity-admin-mat-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.55rem;
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    background: var(--taa-pink-soft);
    border: 1px solid var(--taa-pink-border);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--taa-pink-text);
}

.task-activity-admin-mat-total strong {
    font-size: 1rem;
    font-weight: 700;
    color: #475569;
    font-variant-numeric: tabular-nums;
}

[data-notes-conversation] .task-activity-admin-hint {
    padding: 0.5rem 0.75rem;
    font-size: 0.7rem;
    color: #64748b;
    background: #fafbfc;
    border-bottom: 1px solid #f1f5f9;
}

@media (max-width: 720px) {
    .task-activity-admin-header-main {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .task-activity-admin-metrics-panel {
        width: 100%;
        grid-template-columns: 1fr 1fr;
    }
}

/* Task personali (/todos) */
.itickets{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:20px;
    align-items:start;
}
/* Pannello categorie ridotto: lascia più spazio alla tabella (utile su monitor piccoli). */
.itickets.is-cats-collapsed{
    grid-template-columns:48px minmax(0,1fr);
}
.itickets-sidebar{
    position:sticky;
    top:20px;
    padding:0;
    overflow:hidden;
}
.itickets-sidebar__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:16px 16px 10px;
    border-bottom:1px solid var(--border);
}
.itickets-sidebar__toggle{
    flex:0 0 auto;
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:1px solid var(--border);
    border-radius:7px;
    background:#fff;
    color:#475569;
    font-size:16px;
    line-height:1;
    cursor:pointer;
    transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.itickets-sidebar__toggle:hover{
    background:#f1f5f9;
    color:#1d4ed8;
    border-color:#cbd5e1;
}
/* Stato ridotto: mostra solo il pulsante per riespandere. */
.itickets.is-cats-collapsed .itickets-sidebar__title,
.itickets.is-cats-collapsed .itickets-cats,
.itickets.is-cats-collapsed .itickets-sidebar__foot{
    display:none;
}
.itickets.is-cats-collapsed .itickets-sidebar__head{
    justify-content:center;
    padding:12px 6px;
    border-bottom:0;
}
.itickets.is-cats-collapsed .itickets-sidebar__toggle-icon{
    transform:rotate(180deg);
    display:inline-block;
}
.itickets-sidebar__title{
    margin:0;
    font-size:14px;
    font-weight:700;
    color:#334155;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.itickets-cats{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:10px;
    max-height:calc(100vh - 220px);
    overflow-y:auto;
}
.itickets-cat{
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px 12px;
    border-radius:8px;
    text-decoration:none;
    color:#334155;
    font-size:13px;
    font-weight:500;
    transition:background .15s ease,color .15s ease;
}
.itickets-cat:hover{background:#f1f5f9}
.itickets-cat.is-active{
    background:rgba(37,99,235,.1);
    color:#1d4ed8;
}
.itickets-cat__dot{
    width:10px;
    height:10px;
    border-radius:3px;
    flex-shrink:0;
}
.itickets-cat__label{
    flex:1;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itickets-cat__count{
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:999px;
    background:#e2e8f0;
    color:#475569;
    font-size:11px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.itickets-cat.is-active .itickets-cat__count{
    background:#2563eb;
    color:#fff;
}
.itickets-sidebar__foot{
    padding:12px;
    border-top:1px solid var(--border);
}
.itickets-sidebar__new-cat{width:100%}
.itickets-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.itickets-command-bar{
    padding:16px 18px 14px;
    display:flex;
    flex-direction:column;
    gap:0;
    background:linear-gradient(180deg,#fff 0%,#fafbfd 100%);
    border:1px solid #e2e8f0;
    border-radius:14px;
    box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.03);
}
.itickets-command-bar__main{
    display:flex;
    align-items:center;
    gap:14px;
    padding-bottom:12px;
}
.itickets-command-bar__brand{min-width:0}
.itickets-command-bar__eyebrow{
    margin:0 0 3px;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#94a3b8;
}
.itickets-command-bar__title-row{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 12px;
}
.itickets-command-bar__title{
    margin:0;
    font-size:24px;
    font-weight:800;
    color:#0f172a;
    letter-spacing:-.03em;
    line-height:1.05;
}
.itickets-command-bar__context{
    font-size:12px;
    font-weight:700;
    color:#1d4ed8;
    background:#eff6ff;
    border:1px solid #bfdbfe;
    padding:4px 11px;
    border-radius:999px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:260px;
}
.itickets-command-bar__nav{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 10px;
    min-width:0;
}
.itickets-command-bar__nav-divider{
    width:1px;
    height:22px;
    background:#e2e8f0;
    flex-shrink:0;
}
.itickets-command-bar__actions{
    display:flex;
    align-items:center;
    gap:8px;
    justify-self:end;
}
.itickets-command-bar__new{white-space:nowrap}
.itickets-command-bar__hints{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:10px 0 0;
    margin-top:10px;
    border-top:1px solid #eef2f7;
}
.itickets-filters{
    display:flex;
    flex-direction:column;
    gap:0;
    width:100%;
    padding-top:10px;
    margin-top:2px;
    border-top:1px solid #eef2f7;
}
.itickets-filters__line{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px 14px;
    flex-wrap:wrap;
    min-width:0;
    padding:6px 0;
}
.itickets-filters__line--bottom{
    padding-top:8px;
    margin-top:2px;
    border-top:1px solid #f1f5f9;
}
.itickets-filters__cluster{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    flex:1;
    min-width:0;
}
.itickets-filters__sep{
    width:1px;
    height:22px;
    background:#e2e8f0;
    flex-shrink:0;
}
.itickets-filters__scopes,
.itickets-filters__states{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:4px;
    min-width:0;
}
/* Board: tab stato solo riepilogo numerico (filtro attivo solo in lista). */
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip{
    pointer-events:none;
    cursor:default;
}
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip.is-active{
    background:transparent;
    border-color:transparent;
    box-shadow:none;
}
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--aperti.is-active,
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--aperti.is-active .itickets-filter-chip__label{color:#166534}
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--avviati.is-active,
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--avviati.is-active .itickets-filter-chip__label{color:#1d4ed8}
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--stand_by.is-active,
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--stand_by.is-active .itickets-filter-chip__label{color:#b45309}
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--chiusi.is-active,
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--chiusi.is-active .itickets-filter-chip__label{color:#475569}
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--archiviati.is-active,
.page--todos[data-todos-view-mode="board"] .itickets-filters__states .itickets-filter-chip--archiviati.is-active .itickets-filter-chip__label{color:#6d28d9}
.itickets-filters__pickers{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    min-width:0;
}
.itickets-filters__client{
    display:flex;
    align-items:center;
    gap:6px;
    flex-shrink:0;
    margin-left:auto;
}
.itickets-filters__client-search{
    position:relative;
    width:min(220px,38vw);
    min-width:140px;
    display:flex;
    align-items:center;
}
.itickets-filters__client-icon{
    position:absolute;
    left:9px;
    z-index:1;
    font-size:13px;
    color:#94a3b8;
    pointer-events:none;
    line-height:1;
}
.itickets-filters__client-input{
    min-height:32px;
    font-size:12px;
    padding-left:28px!important;
    border-color:#e2e8f0;
    background:#f8fafc;
    border-radius:999px;
}
.itickets-filters__client-input:focus{
    background:#fff;
    border-color:#93c5fd;
}
.itickets-filters__client-submit{
    min-height:32px;
    padding-inline:10px;
    font-size:12px;
}
.itickets-filters__client-clear{
    min-width:32px;
    min-height:32px;
    padding:0;
    font-size:17px;
    line-height:1;
}
.itickets-filters__actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
    margin-left:auto;
}
.itickets-filters__new{
    white-space:nowrap;
    min-height:34px;
    padding:0 14px;
    font-size:13px;
    font-weight:700;
    border-radius:999px;
    box-shadow:0 2px 8px rgba(37,99,235,.2);
}
.itickets-filter-chip{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:5px 10px;
    border-radius:999px;
    border:1px solid #e2e8f0;
    background:#fff;
    color:#475569;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    user-select:none;
    transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
    line-height:1.1;
}
.itickets-filter-chip:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
    color:#1e293b;
}
.itickets-filters__scopes .itickets-filter-chip.is-active,
.itickets-filters__scopes .itickets-filter-chip.is-active .itickets-filter-chip__label{
    background:#2563eb;
    border-color:#1d4ed8;
    color:#fff;
    box-shadow:0 1px 4px rgba(37,99,235,.22);
}
.itickets-filters__scopes .itickets-filter-chip.is-active .itickets-filter-chip__count{
    background:rgba(255,255,255,.22);
    color:#fff;
}
.itickets-filter-chip--picker{
    padding:5px 8px;
    border-style:dashed;
}
.itickets-filter-chip--picker.is-active{
    background:#2563eb;
    border-color:#1d4ed8;
    border-style:solid;
    color:#fff;
    box-shadow:0 1px 4px rgba(37,99,235,.22);
}
.itickets-filter-chip--picker.is-active .itickets-filter-chip__label{color:#fff}
.itickets-filter-chip--state{
    border-color:transparent;
    background:transparent;
    padding:5px 9px;
}
.itickets-filter-chip--state:hover{
    background:#f8fafc;
    border-color:#e2e8f0;
}
.itickets-filter-chip--state .itickets-filter-chip__dot{
    width:6px;
    height:6px;
    border-radius:50%;
    flex-shrink:0;
    background:#cbd5e1;
}
.itickets-filter-chip--state.itickets-filter-chip--aperti .itickets-filter-chip__dot{background:#22c55e}
.itickets-filter-chip--state.itickets-filter-chip--avviati .itickets-filter-chip__dot{background:#3b82f6}
.itickets-filter-chip--state.itickets-filter-chip--stand_by .itickets-filter-chip__dot{background:#f59e0b}
.itickets-filter-chip--state.itickets-filter-chip--chiusi .itickets-filter-chip__dot{background:#64748b}
.itickets-filter-chip--state.itickets-filter-chip--archiviati .itickets-filter-chip__dot{background:#8b5cf6}
.itickets-filter-chip--state.itickets-filter-chip--aperti:not(.is-active){color:#166534}
.itickets-filter-chip--state.itickets-filter-chip--avviati:not(.is-active){color:#1d4ed8}
.itickets-filter-chip--state.itickets-filter-chip--stand_by:not(.is-active){color:#b45309}
.itickets-filter-chip--state.itickets-filter-chip--chiusi:not(.is-active){color:#475569}
.itickets-filter-chip--state.itickets-filter-chip--archiviati:not(.is-active){color:#6d28d9}
.itickets-filter-chip--state.itickets-filter-chip--aperti.is-active{background:#ecfdf5;border-color:#86efac;color:#15803d;box-shadow:none}
.itickets-filter-chip--state.itickets-filter-chip--aperti.is-active .itickets-filter-chip__label{color:#15803d}
.itickets-filter-chip--state.itickets-filter-chip--avviati.is-active{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;box-shadow:none}
.itickets-filter-chip--state.itickets-filter-chip--avviati.is-active .itickets-filter-chip__label{color:#1d4ed8}
.itickets-filter-chip--state.itickets-filter-chip--stand_by.is-active{background:#fffbeb;border-color:#fcd34d;color:#b45309;box-shadow:none}
.itickets-filter-chip--state.itickets-filter-chip--stand_by.is-active .itickets-filter-chip__label{color:#b45309}
.itickets-filter-chip--state.itickets-filter-chip--chiusi.is-active{background:#f1f5f9;border-color:#cbd5e1;color:#334155;box-shadow:none}
.itickets-filter-chip--state.itickets-filter-chip--chiusi.is-active .itickets-filter-chip__label{color:#334155}
.itickets-filter-chip--state.itickets-filter-chip--archiviati.is-active{background:#f5f3ff;border-color:#c4b5fd;color:#6d28d9;box-shadow:none}
.itickets-filter-chip--state.itickets-filter-chip--archiviati.is-active .itickets-filter-chip__label{color:#6d28d9}
.itickets-filter-chip--favorite.is-active{background:#fffbeb;border-color:#fcd34d;color:#b45309;box-shadow:none}
.itickets-filter-chip--favorite.is-active .itickets-filter-chip__label{color:#b45309}
.itickets-filter-chip__input{
    position:absolute;
    opacity:0;
    pointer-events:none;
    width:0;
    height:0;
}
.itickets-filter-chip__count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 5px;
    border-radius:999px;
    background:rgba(15,23,42,.07);
    color:inherit;
    font-size:10px;
    font-weight:800;
    line-height:1;
}
.itickets-filters__scopes .itickets-filter-chip.is-active .itickets-filter-chip__count{background:rgba(255,255,255,.22)}
.itickets-filter-chip--state.is-active .itickets-filter-chip__count{background:rgba(15,23,42,.08)}
.itickets-filter-picker{
    display:inline-flex;
    align-items:center;
    gap:4px;
}
.itickets-filter-picker__select{
    min-height:30px;
    padding:4px 24px 4px 8px;
    border:1px solid #e2e8f0;
    border-radius:999px;
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2394a3b8' d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat calc(100% - 8px) 50%;
    color:#334155;
    font-size:11px;
    font-weight:600;
    max-width:150px;
    appearance:none;
    cursor:pointer;
    transition:border-color .15s,opacity .15s;
}
.itickets-filter-picker__select:focus{
    outline:none;
    border-color:#93c5fd;
    box-shadow:0 0 0 2px rgba(147,197,253,.22);
}
.itickets-filter-picker:not(.is-active) .itickets-filter-picker__select{
    opacity:.45;
    pointer-events:none;
}
.itickets-search--compact{
    max-width:300px;
    min-width:0;
    flex:1;
    margin-left:0;
}
.itickets-search--compact .itickets-search__input{
    min-width:0;
    padding:8px 10px;
    font-size:13px;
}
.itickets-header{padding:18px 20px}
.itickets-header__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}
.itickets-header__eyebrow{
    margin:0 0 4px;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#64748b;
}
.itickets-header__title{
    margin:0;
    font-size:24px;
    font-weight:700;
    color:#0f172a;
    letter-spacing:-.02em;
}
.itickets-header__subtitle{
    margin:6px 0 0;
    font-size:13px;
    color:#64748b;
    line-height:1.45;
}
.itickets-header__meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.itickets-stat{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:6px 12px;
    border-radius:999px;
    background:#f1f5f9;
    color:#475569;
    font-size:12px;
}
.itickets-stat strong{font-weight:800;color:#0f172a}
.itickets-stat--accent{background:#fef3c7;color:#92400e}
.itickets-stat--accent strong{color:#92400e}
.itickets-stat--danger{background:#fee2e2;color:#991b1b}
.itickets-stat--danger strong{color:#991b1b}
.itickets-stat--muted{background:#f8fafc;color:#64748b}
.itickets-create{padding:0;overflow:hidden}
.itickets-create__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 18px;
    border-bottom:1px solid var(--border);
    background:linear-gradient(135deg,#eff6ff 0%,#fff 60%);
}
.itickets-create__head h3{margin:0;font-size:15px;font-weight:700;color:#0f172a}
.itickets-form{padding:18px}
.itickets-form__grid{
    display:grid;
    gap:12px;
    margin-bottom:12px;
}
.itickets-form__grid--2{grid-template-columns:1fr 1fr}
.itickets-form__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.itickets-field{display:flex;flex-direction:column;gap:6px}
.itickets-field__label{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#64748b;
}
.itickets-input{
    width:100%;
    padding:10px 12px;
    border:1px solid #e2e8f0;
    border-radius:8px;
    font-size:14px;
    font-family:inherit;
    background:#fff;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.itickets-client-search{position:relative}
.itickets-client-search__results{
    position:absolute;
    top:calc(100% + 4px);
    left:0;
    right:0;
    z-index:40;
    max-height:260px;
    overflow-y:auto;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:8px;
    box-shadow:0 10px 24px rgba(15,23,42,.12);
}
.itickets-modal .itickets-client-search__results{z-index:120}
.itickets-client-search__item{
    display:block;
    width:100%;
    padding:10px 12px;
    border:none;
    border-bottom:1px solid #f1f5f9;
    background:#fff;
    text-align:left;
    cursor:pointer;
    font:inherit;
}
.itickets-client-search__item:last-child{border-bottom:none}
.itickets-client-search__item:hover,
.itickets-client-search__item.is-selected{background:#eff6ff}
.itickets-client-search__item--free{
    border-bottom:1px solid #e0e7ff;
    background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
}
.itickets-client-search__item--free .itickets-client-search__name{color:#4338ca}
.itickets-client-search__item--free .itickets-client-search__email{color:#6366f1;font-weight:600}
.itickets-client-search__item--free{
    border-bottom:1px solid #e0e7ff;
    background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
}
.itickets-client-search__item--free .itickets-client-search__name{color:#4338ca}
.itickets-client-search__item--free .itickets-client-search__email{color:#6366f1;font-weight:600}
.itickets-client-search__name{font-size:13px;font-weight:600;color:#0f172a}
.itickets-client-search__email{font-size:12px;color:#64748b;margin-top:2px}
.itickets-contact-phone{
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:6px;
    padding:6px 10px;
    border-radius:8px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    font-size:13px;
    color:#334155;
    font-weight:500;
}
.itickets-contact-phone::before{
    content:'📞';
    font-size:14px;
    line-height:1;
}
.itickets-client-search__empty{padding:10px 12px;font-size:13px;color:#64748b}
.itickets-planning{display:flex;flex-direction:column;gap:6px}
.itickets-planning__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.itickets-create-modal .itickets-planning__grid,
.itickets-edit-modal .itickets-planning__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.itickets-field--compact{gap:4px}
.itickets-field__sublabel{font-size:11px;font-weight:600;color:#64748b}
.itickets-duration-split{display:flex;gap:6px}
.itickets-duration-split > .itickets-input{flex:1 1 0;min-width:0}
.itickets-input:focus{
    outline:none;
    border-color:#93c5fd;
    box-shadow:0 0 0 3px rgba(147,197,253,.25);
}
.itickets-textarea{min-height:88px;resize:vertical;line-height:1.45}
.itickets-color-input{
    width:100%;
    height:42px;
    padding:4px;
    border:1px solid #e2e8f0;
    border-radius:8px;
    cursor:pointer;
}
.itickets-form__actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:4px;
}
.itickets-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 16px;
    flex-wrap:wrap;
}
.itickets-tabs{display:flex;flex-wrap:wrap;gap:5px}
.itickets-tabs__item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 11px;
    border-radius:8px;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    color:#64748b;
    background:#f8fafc;
    border:1px solid transparent;
    transition:all .15s ease;
}
.itickets-tabs__item:hover{background:#f1f5f9;color:#334155}
.itickets-tabs__item.is-active{
    background:#fff;
    color:#1d4ed8;
    border-color:#bfdbfe;
    box-shadow:0 1px 2px rgba(37,99,235,.08);
}
.itickets-tabs__count{
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:999px;
    background:#e2e8f0;
    font-size:11px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.itickets-tabs__item.is-active .itickets-tabs__count{background:#dbeafe;color:#1d4ed8}
.itickets-toolbar__tabs{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
.itickets-open-scopes{display:flex;flex-wrap:wrap;gap:5px;padding-left:0}
.itickets-open-scopes__item{
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 10px;border-radius:999px;
    font-size:12px;font-weight:600;text-decoration:none;
    color:#64748b;background:#f1f5f9;border:1px solid transparent;
    transition:all .15s ease;
}
.itickets-open-scopes__item:hover{background:#e2e8f0;color:#334155}
.itickets-open-scopes__item.is-active{
    color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;
}
.itickets-open-scopes__count{
    min-width:18px;height:18px;padding:0 5px;border-radius:999px;
    display:inline-flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:700;background:#e2e8f0;color:#475569;
}
.itickets-open-scopes__item.is-active .itickets-open-scopes__count{background:#dbeafe;color:#1d4ed8}
.itickets-assignee-badge{
    display:inline-flex;align-items:center;max-width:100%;
    margin-left:6px;padding:2px 8px;border-radius:999px;
    font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    vertical-align:middle;
}
.itickets-assignee-badge--incoming{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.itickets-assignee-badge--outgoing{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}
.itickets-field__hint{display:block;margin-top:4px;font-size:12px;color:#94a3b8;line-height:1.35}
.itickets-search{
    display:flex;
    align-items:center;
    gap:8px;
    flex:1;
    min-width:240px;
    max-width:420px;
    margin-left:auto;
}
.itickets-table-toolbar{
    display:flex;
    align-items:center;
    gap:8px 12px;
    flex-wrap:wrap;
    margin:0 0 8px;
}
.itickets-table-toolbar__hints{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    min-width:0;
}
.itickets-table-toolbar .tasks-columns-picker-wrap{position:relative;margin-left:auto}
.itickets-table-toolbar .tasks-columns-panel{left:auto;right:0}
.itickets-filters__actions--tools{flex-wrap:wrap;gap:8px 10px}
.itickets-filters__actions .tasks-columns-picker-wrap{position:relative}
.itickets-filters__actions .tasks-column-profiles-wrap{position:relative}
.itickets-filters__actions .tasks-columns-panel{left:auto;right:0}
.itickets-table-wrap{
    padding:0;
    overflow-x:auto;
    overflow-y:hidden;
    border:1px solid #e2e8f0;
    border-radius:14px;
    box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.03);
    background:#fff;
}
.itickets-table{
    width:100%;
    border-collapse:collapse;
    font-size:13px;
}
.itickets-table thead th{
    position:sticky;
    top:0;
    z-index:2;
    padding:11px 12px;
    text-align:left;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.07em;
    color:#64748b;
    background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);
    border-bottom:1px solid #e2e8f0;
    white-space:nowrap;
}
.itickets-table tbody td{
    padding:10px 12px;
    border-bottom:1px solid #f1f5f9;
    vertical-align:middle;
}
.itickets-table tbody tr:nth-child(even) td{background:#fbfcfe}
.itickets-row:hover td{background:#f0f7ff!important}
.itickets-row.is-overdue td{background:#fef2f2}
.itickets-row.is-focused td{background:linear-gradient(90deg,rgba(219,234,254,.55) 0%,#fff 32%)}
.itickets-row.is-closed-with-odl td{opacity:.72}
.itickets-status-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:88px;
    max-width:100%;
    padding:5px 12px;
    border-radius:999px;
    border:1px solid var(--status-bd,#e2e8f0);
    background:var(--status-bg,#f8fafc);
    color:var(--status-fg,#334155);
    font-size:11px;
    font-weight:700;
    font-family:inherit;
    white-space:nowrap;
    cursor:default;
    user-select:none;
}
.itickets-status-badge--aperto{--status-bg:#ecfdf5;--status-fg:#15803d;--status-bd:#bbf7d0}
.itickets-status-badge--chiuso{--status-bg:#f1f5f9;--status-fg:#475569;--status-bd:#cbd5e1}
.itickets-status-badge--archiviato{--status-bg:#f5f3ff;--status-fg:#6d28d9;--status-bd:#ddd6fe}
.itickets-status-form{margin:0}
.itickets-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:88px;
    padding:5px 10px;
    border-radius:999px;
    border:1px solid transparent;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.03em;
    cursor:pointer;
    font-family:inherit;
    transition:transform .12s ease,box-shadow .12s ease;
}
.itickets-status:hover{transform:translateY(-1px)}
.itickets-status--accent{background:#fef3c7;color:#92400e;border-color:#fcd34d}
.itickets-status--warn{background:#fff7ed;color:#c2410c;border-color:#fdba74}
.itickets-status--danger{background:#fee2e2;color:#991b1b;border-color:#fca5a5}
.itickets-status--muted,.itickets-status--closed{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}
.itickets-status--open{background:#ecfdf5;color:#15803d;border-color:#bbf7d0}
.itickets-status--archived{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.itickets-stat--archived{color:#6d28d9}
.itickets-row.is-archived{opacity:.92}
.itickets-status--readonly{cursor:default}
.itickets-status--readonly:hover{transform:none}
.itickets-status-select{
    display:inline-flex;
    min-width:118px;
    max-width:100%;
    padding:5px 28px 5px 10px;
    border-radius:999px;
    border:1px solid var(--status-bd,#e2e8f0);
    background:var(--status-bg,#f8fafc) var(--status-chevron,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2394a3b8' d='M1 1l4 4 4-4'/%3E%3C/svg%3E")) no-repeat calc(100% - 10px) 50%;
    color:var(--status-fg,#334155);
    font-size:11px;
    font-weight:700;
    font-family:inherit;
    cursor:pointer;
    appearance:none;
    transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.itickets-status-select:hover{border-color:color-mix(in srgb,var(--status-bd,#cbd5e1) 70%,#64748b)}
.itickets-status-select:focus{
    outline:none;
    border-color:#93c5fd;
    box-shadow:0 0 0 3px rgba(147,197,253,.25);
}
.itickets-status-select:disabled{opacity:.65;cursor:not-allowed}
.itickets-status-select--aperto{--status-bg:#ecfdf5;--status-fg:#15803d;--status-bd:#bbf7d0}
.itickets-status-select--chiuso{--status-bg:#f1f5f9;--status-fg:#475569;--status-bd:#cbd5e1}
.itickets-status-select--chiuso-pending{--status-bg:#fff7ed;--status-fg:#c2410c;--status-bd:#fdba74}
.itickets-status-select--archiviato{--status-bg:#f5f3ff;--status-fg:#6d28d9;--status-bd:#ddd6fe}
.itickets-table__col-kind{width:42px;text-align:center}
.itickets-table__col-priority{width:80px;white-space:nowrap}
.itickets-table__col-appointment{width:140px;white-space:normal}
.itickets-table__col-due{width:120px;white-space:normal}
.itickets-table__col-created{width:92px;white-space:nowrap;color:#94a3b8;font-size:11px;vertical-align:middle}
.itickets-table__col-desc{
    width:28%;
    max-width:260px;
    min-width:140px;
}
.itickets-table__col-client{width:12%;min-width:100px;max-width:150px}
.itickets-table__col-share-users,
.itickets-table__col-share-groups{width:140px;min-width:110px;max-width:180px;vertical-align:middle}
.itickets-share-pills{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.itickets-share-pill{
    display:inline-flex;align-items:center;gap:3px;max-width:100%;
    padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.3;
    border:1px solid #e2e8f0;background:#f8fafc;color:#334155;white-space:nowrap
}
.itickets-share-pill--user{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.itickets-share-pill--group{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.itickets-share-pill__icon{font-size:10px;line-height:1}
.itickets-share-pill__name{overflow:hidden;text-overflow:ellipsis;max-width:96px}
.itickets-view-toggle{
    display:inline-flex;margin-left:auto;border:1px solid #e2e8f0;border-radius:999px;overflow:hidden;background:#fff
}
.itickets-view-toggle__btn{
    border:0;background:transparent;padding:5px 12px;font-size:12px;font-weight:700;color:#64748b;cursor:pointer
}
.itickets-view-toggle__btn.is-active{background:#0f172a;color:#fff}
.itickets-kanban-host{padding:12px 14px 14px}
.itickets-kanban{
    display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:10px;align-items:start
}
.itickets-kanban__col{
    background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;min-height:220px;
    padding:8px;display:flex;flex-direction:column;gap:6px
}
.itickets-kanban__col-head{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:2px 4px 4px
}
.itickets-kanban__col-head strong{font-size:12px;font-weight:800;letter-spacing:.02em;color:#0f172a}
.itickets-kanban__count{
    font-size:10px;font-weight:800;background:#fff;color:#475569;border:1px solid #e2e8f0;
    border-radius:999px;padding:1px 7px;min-width:1.5rem;text-align:center
}
.itickets-kanban__col-body{display:flex;flex-direction:column;gap:6px;min-height:120px;flex:1}
.itickets-kanban__card{
    background:#fff;border:1px solid #e2e8f0;border-radius:10px;
    padding:8px 9px;cursor:grab;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
    transition:border-color .12s ease, box-shadow .12s ease
}
.itickets-kanban__card:hover{
    border-color:#cbd5e1;box-shadow:0 2px 8px rgba(15,23,42,.06)
}
.itickets-kanban__card.is-dragging{opacity:.4;box-shadow:none}
.itickets-kanban__card-top{
    display:flex;align-items:flex-start;gap:7px
}
.itickets-kanban__prio{
    flex:0 0 auto;width:8px;height:8px;margin-top:5px;border-radius:50%;
    background:#fbbf24;box-shadow:0 0 0 2px #fef3c7
}
.itickets-kanban__prio--high{background:#ef4444;box-shadow:0 0 0 2px #fee2e2}
.itickets-kanban__prio--medium{background:#f59e0b;box-shadow:0 0 0 2px #fef3c7}
.itickets-kanban__prio--low{background:#22c55e;box-shadow:0 0 0 2px #dcfce7}
.itickets-kanban__title{
    flex:1;min-width:0;font-weight:700;font-size:12.5px;color:#0f172a;line-height:1.35;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden
}
.itickets-kanban__foot{
    display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:7px
}
.itickets-kanban__chip{
    display:inline-flex;align-items:center;max-width:100%;
    padding:1px 7px;border-radius:999px;font-size:10px;font-weight:650;line-height:1.45;
    border:1px solid #e2e8f0;background:#f8fafc;color:#475569;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.itickets-kanban__chip--client{max-width:58%;color:#334155;background:#f1f5f9}
.itickets-kanban__chip--cat{
    border-color:color-mix(in srgb, var(--cat-color,#64748b) 28%, #e2e8f0);
    color:var(--cat-color,#64748b);
    background:color-mix(in srgb, var(--cat-color,#64748b) 10%, #fff)
}
.itickets-kanban__chip--due{color:#b45309;background:#fffbeb;border-color:#fde68a}
.itickets-kanban__chip--user{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;max-width:42%}
.itickets-kanban__chip--group{color:#15803d;background:#f0fdf4;border-color:#bbf7d0;max-width:42%}
.itickets-kanban__ghost{
    height:8px;border:1.5px dashed #93c5fd;border-radius:6px;margin:2px 0;background:#eff6ff
}
.itickets-kanban__hint{margin:10px 2px 0;font-size:11px;color:#64748b;line-height:1.4}
@media (max-width:1100px){
    .itickets-kanban{grid-template-columns:repeat(2,minmax(180px,1fr))}
}
@media (max-width:640px){
    .itickets-kanban{grid-template-columns:1fr}
}
.itickets-table__col-cat{width:120px;min-width:90px;max-width:150px}
.itickets-table__col-timer{width:88px;white-space:nowrap}
.itickets-table__col-status{width:152px;min-width:142px;white-space:normal}
.itickets-status-cell{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.itickets-status-cell .itickets-odl-btn,
.itickets-status-cell .itickets-odl-link{width:100%;box-sizing:border-box;justify-content:center}
.itickets-table__col-actions{width:152px;white-space:nowrap}
.itickets-table__col-status .itickets-status-form,
.itickets-table__col-status .itickets-work-status-form{width:100%}
.itickets-table__col-status .itickets-status-select,
.itickets-table__col-status .itickets-work-status-select{
    width:100%;
    min-width:118px;
    max-width:136px;
}
.itickets-work-status-form{margin:0}
.itickets-work-status-select{
    display:inline-flex;
    min-width:118px;
    max-width:100%;
    padding:5px 28px 5px 10px;
    border-radius:999px;
    border:1px solid var(--status-bd,#e2e8f0);
    background:var(--status-bg,#f8fafc) var(--status-chevron,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2394a3b8' d='M1 1l4 4 4-4'/%3E%3C/svg%3E")) no-repeat calc(100% - 10px) 50%;
    color:var(--status-fg,#334155);
    font-size:11px;
    font-weight:700;
    font-family:inherit;
    cursor:pointer;
    appearance:none;
}
.itickets-work-status-select[data-timer-locked="1"],
.itickets-work-status-select:disabled{cursor:not-allowed;opacity:.75}
.itickets-work-status-select--aperto{--status-bg:#ecfdf5;--status-fg:#15803d;--status-bd:#bbf7d0}
.itickets-work-status-select--avviato{--status-bg:#eff6ff;--status-fg:#1d4ed8;--status-bd:#bfdbfe}
.itickets-work-status-select--stand_by{--status-bg:#fef3c7;--status-fg:#92400e;--status-bd:#fde68a}
.itickets-work-status-select--chiuso{--status-bg:#f1f5f9;--status-fg:#475569;--status-bd:#cbd5e1}
.itickets-status-badge--avviato{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.itickets-status-badge--stand_by{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.itickets-kind-badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:28px;height:28px;border-radius:8px;
    font-size:11px;font-weight:800;letter-spacing:.02em;
    box-shadow:0 1px 2px rgba(15,23,42,.06);
}
.itickets-kind-badge--task{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}
.itickets-kind-badge--subtask{background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd}
.itickets-priority-pill{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:56px;padding:4px 9px;border-radius:6px;
    font-size:11px;font-weight:700;line-height:1.2;
    border:1px solid transparent;
}
.itickets-priority-pill--high{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.itickets-priority-pill--medium{background:#fffbeb;color:#b45309;border-color:#fde68a}
.itickets-priority-pill--low{background:#ecfdf5;color:#047857;border-color:#bbf7d0}
.itickets-priority-pill--draft{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.itickets-priority-pill--muted{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}
.itickets-priority-pill--none{
    background:#f8fafc;
    color:#64748b;
    border-color:#e2e8f0;
    font-weight:600;
    font-size:10px;
    letter-spacing:.03em;
}
.itickets-cell-empty{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:36px;
    padding:3px 8px;
    border-radius:6px;
    background:#f1f5f9;
    border:1px dashed #cbd5e1;
    color:#64748b;
    font-size:10px;
    font-weight:700;
    letter-spacing:.04em;
    line-height:1.2;
}
.itickets-due-cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.itickets-datecell{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:0;max-width:100%}
.itickets-datecell__row{display:flex;flex-direction:row;flex-wrap:wrap;gap:2px 6px;align-items:center;min-width:0;max-width:100%;line-height:1.25}
.itickets-datecell__label{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;line-height:1.25;flex:0 0 auto}
.itickets-datecell__value{display:inline-flex;flex-wrap:wrap;align-items:center;gap:3px 4px;min-width:0;max-width:100%}
.itickets-datecell__value .itickets-due{white-space:nowrap}
.itickets-datecell__row--created{margin-top:0}
.itickets-datecell__row--created .itickets-datecell__label{color:#cbd5e1}
.itickets-datecell__created{font-size:11px;color:#94a3b8;white-space:nowrap}
.itickets-datecell .itickets-due{padding:1px 6px;font-size:11px;line-height:1.3;border-radius:5px}
.itickets-datecell .itickets-plan-mode{padding:1px 5px;font-size:8px;line-height:1.3}
.itickets-datecell .itickets-plan-urgency{padding:1px 5px;font-size:9px;line-height:1.3}
.itickets-due--closed{color:#64748b}
.itickets-desc-cell{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}
.itickets-desc-cell__head{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%}
.itickets-desc-cell__title{
    font-size:13px;
    font-weight:700;
    color:#0f172a;
    line-height:1.3;
    min-width:0;
    flex:1;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itickets-desc-cell__text{
    margin:0;font-size:11px;color:#64748b;line-height:1.35;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itickets-desc-cell__meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:1px}
.itickets-cat-pill--inline{font-size:10px;padding:2px 7px}
.itickets-favorite-btn--inline{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    padding:0;
    border:1px solid #e2e8f0;
    border-radius:8px;
    background:#fff;
    color:#94a3b8;
    cursor:pointer;
    line-height:1;
    transition:color .15s,background .15s,border-color .15s,transform .12s;
}
.itickets-favorite-btn--inline:hover{
    color:#f59e0b;
    background:#fffbeb;
    border-color:#fcd34d;
}
.itickets-favorite-btn--inline.is-active{
    color:#f59e0b;
    background:#fffbeb;
    border-color:#fbbf24;
    box-shadow:0 0 0 1px rgba(251,191,36,.25);
}
.itickets-favorite-btn--inline .itickets-favorite-btn__icon{font-size:15px}
.itickets-row-actions--toolbar{
    display:flex;align-items:center;gap:4px;flex-wrap:nowrap;justify-content:flex-end;
    padding:3px;
    border-radius:10px;
    background:#f8fafc;
    border:1px solid #eef2f7;
}
.itickets-row-action{
    display:inline-flex;align-items:center;justify-content:center;
    width:30px;height:30px;padding:0;border-radius:8px;
    border:1px solid transparent;background:transparent;color:#334155;
    font-size:14px;line-height:1;cursor:pointer;
    transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;
}
.itickets-row-action:hover{
    background:#fff;border-color:#e2e8f0;
    transform:translateY(-1px);
    box-shadow:0 2px 6px rgba(15,23,42,.08);
}
.itickets-row-action--subtask{
    font-weight:800;color:#4338ca;
    border-color:#c7d2fe;background:#eef2ff;
}
.itickets-row-action--subtask:hover{background:#e0e7ff;border-color:#a5b4fc}
.itickets-row-action--manage{font-size:15px;color:#475569}
.itickets-row-action[data-todo-edit]{
    color:#1d4ed8;
    border-color:#bfdbfe;
    background:#eff6ff;
}
.itickets-row-action[data-todo-edit]:hover{background:#dbeafe;border-color:#93c5fd}
.itickets-row-action--status.is-static{opacity:.85;cursor:default}
.itickets-row-action--odl{
    width:auto;padding:0 10px;gap:5px;
    font-size:11px;font-weight:800;letter-spacing:.02em;
    color:#fff;border-color:transparent;
    background:linear-gradient(135deg,#4f46e5,#6366f1);
    box-shadow:0 2px 8px rgba(79,70,229,.28);
}
.itickets-row-action--odl:hover{
    background:linear-gradient(135deg,#4338ca,#4f46e5);
    border-color:transparent;color:#fff;
    box-shadow:0 4px 12px rgba(79,70,229,.36);
}
.itickets-row-action--odl .itickets-row-action__odl-icon{font-size:13px;line-height:1}
.itickets-row-action--odl .itickets-row-action__odl-text{white-space:nowrap}
.itickets-row-action--odl-preview{
    width:auto;padding:0 10px;gap:5px;
    font-size:11px;font-weight:800;letter-spacing:.02em;
    color:#c2410c;border-color:#fed7aa;background:#fff7ed;
}
.itickets-row-action--odl-preview:hover{
    background:#ffedd5;border-color:#fdba74;color:#9a3412;
}
.itickets-row-action--odl-preview .itickets-row-action__odl-icon{font-size:13px;line-height:1}
.itickets-row-action--odl-preview .itickets-row-action__odl-text{white-space:nowrap}
.itickets-row.is-favorite .itickets-desc-cell__title{color:#92400e}
.itickets-status-form--compact{margin:0;display:inline-flex}
.itickets-status-select--compact{
    width:auto;min-width:36px;max-width:52px;height:32px;
    padding:0 18px 0 6px;font-size:12px;border-radius:8px;
    box-shadow:0 1px 2px rgba(15,23,42,.06);
}
.itickets-detail-quick{
    display:flex;flex-wrap:wrap;gap:8px;align-items:center;
    padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #f1f5f9;
}
.itickets-detail-quick:empty{display:none}
.itickets-detail__footer{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    padding-top:14px;
    margin-top:6px;
    border-top:1px solid #f1f5f9;
}
.itickets-detail__footer-danger{color:#b91c1c}
.itickets-table__col-status{min-width:130px}
.todo-float-timer{
    position:fixed;
    bottom:24px;
    right:24px;
    z-index:1200;
    max-width:300px;
    font-family:inherit;
}
.todo-float-timer[hidden]{display:none}
.todo-float-timer.is-minimized .todo-float-timer__body{display:none}
.todo-float-timer.is-minimized .todo-float-timer__pill{display:inline-flex}
.todo-float-timer.is-minimized .todo-float-timer__minimize{display:none}
.todo-float-timer__inner{
    background:#fff;
    color:#0f172a;
    border:1px solid #e2e8f0;
    border-radius:16px;
    box-shadow:0 16px 40px rgba(15,23,42,.12);
    padding:14px 16px;
    display:flex;
    flex-direction:column;
    gap:10px;
}
.todo-float-timer.is-running .todo-float-timer__inner{
    border-color:rgba(99,102,241,.35);
    box-shadow:0 16px 40px rgba(99,102,241,.16);
}
.todo-float-timer__head{display:flex;align-items:center;gap:8px}
.todo-float-timer__dot{
    width:8px;height:8px;border-radius:50%;background:#6366f1;flex-shrink:0;
    animation:todo-float-pulse 2s ease-in-out infinite;
}
.todo-float-timer__label{
    font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#6366f1;flex:1;
}
.todo-float-timer__minimize{
    border:none;background:transparent;color:#94a3b8;font-size:18px;line-height:1;
    cursor:pointer;padding:0 2px;border-radius:6px;
}
.todo-float-timer__minimize:hover{color:#64748b;background:#f1f5f9}
.todo-float-timer__title{
    font-size:13px;font-weight:700;color:#0f172a;line-height:1.35;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.todo-float-timer__time{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.todo-float-timer__display{
    font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#0f172a;
}
.todo-float-timer__total{font-size:11px;font-weight:600;color:#64748b}
.todo-float-timer__actions{display:flex;gap:8px;flex-wrap:wrap}
.todo-float-timer__btn{
    flex:1 1 auto;min-width:0;border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700;
    cursor:pointer;font-family:inherit;border:1px solid transparent;transition:all .15s ease;
}
.todo-float-timer__btn--ghost{background:#f8fafc;border-color:#e2e8f0;color:#475569}
.todo-float-timer__btn--ghost:hover{background:#eef2ff;border-color:rgba(99,102,241,.25);color:#4338ca}
.todo-float-timer__btn--stop{background:#fef2f2;border-color:#fecaca;color:#dc2626}
.todo-float-timer__btn--stop:hover{background:#fee2e2;color:#b91c1c}
.todo-float-timer__btn:disabled{opacity:.6;cursor:not-allowed}
.todo-float-timer__pill{
    display:none;align-items:center;gap:8px;border:none;border-radius:999px;padding:8px 14px;
    background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff;font-size:13px;font-weight:800;
    cursor:pointer;font-family:inherit;box-shadow:0 8px 20px rgba(99,102,241,.35);
}
.todo-float-timer__pill-dot{
    width:7px;height:7px;border-radius:50%;background:#fff;
    animation:todo-float-pulse 2s ease-in-out infinite;
}
@keyframes todo-float-pulse{
    0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:.55;transform:scale(.85)}
}
@media (max-width:640px){
    .todo-float-timer{left:16px;right:16px;bottom:16px;max-width:none}
}
.itickets-done-btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 12px;
    border-radius:999px;
    border:1px solid #86efac;
    background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%);
    color:#166534;
    font-size:12px;
    font-weight:800;
    letter-spacing:.02em;
    cursor:pointer;
    font-family:inherit;
    transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;
    white-space:nowrap;
}
.itickets-done-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(22,101,52,.15)}
.itickets-done-btn:disabled,.itickets-done-btn.is-loading{opacity:.55;cursor:wait;transform:none;box-shadow:none}
.itickets-done-btn__icon{
    width:18px;
    height:18px;
    border-radius:999px;
    background:#16a34a;
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    line-height:1;
}
.itickets-closed-at{font-size:13px;font-weight:600;color:#334155;white-space:nowrap}
.itickets-odl-link{
    display:inline-flex;
    align-items:center;
    padding:4px 10px;
    border-radius:999px;
    background:#fff7ed;
    border:1px solid #fdba74;
    color:#c2410c;
    font-size:11px;
    font-weight:700;
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
    font-family:inherit;
}
.itickets-odl-link:hover{background:#ffedd5;color:#9a3412}
.itickets-odl-link--static{cursor:default}
.itickets-odl-link--static:hover{background:#fff7ed;color:#c2410c}
.itickets-closed-window{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    padding:12px 16px;
    margin-bottom:12px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:#f8fafc;
}
.itickets-closed-window__info{display:flex;flex-direction:column;gap:2px;min-width:200px}
.itickets-closed-window__label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.itickets-closed-window__hint{font-size:13px;color:#475569}
.itickets-closed-window__periods{display:inline-flex;flex-wrap:wrap;gap:6px}
.itickets-closed-window__period{
    display:inline-flex;
    align-items:center;
    padding:5px 12px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    color:#475569;
    background:#fff;
    border:1px solid #e2e8f0;
    text-decoration:none;
    white-space:nowrap;
}
.itickets-closed-window__period:hover{border-color:#cbd5e1;background:#f1f5f9;color:#0f172a}
.itickets-closed-window__period.is-active{
    color:#fff;
    background:#4f46e5;
    border-color:#4f46e5;
}
.itickets-modal__dialog--odl{
    width:min(660px,100%);
    overflow:hidden;
    border:none;
    box-shadow:0 24px 60px rgba(15,23,42,.22);
}
.itickets-odl-preview{padding:0}
.odl-preview{display:flex;flex-direction:column;min-height:220px}
.odl-preview__hero{
    position:relative;
    padding:28px 24px 24px;
    background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 48%,#fed7aa 100%);
    border-bottom:1px solid rgba(194,65,12,.12);
}
.odl-preview__hero--skeleton{
    min-height:148px;
    background:linear-gradient(90deg,#fff7ed 0%,#ffedd5 50%,#fff7ed 100%);
    background-size:200% 100%;
    animation:odlPreviewShimmer 1.2s ease-in-out infinite;
}
.odl-preview__close{
    position:absolute;
    top:14px;
    right:14px;
    width:34px;
    height:34px;
    border:none;
    border-radius:999px;
    background:rgba(255,255,255,.72);
    color:#9a3412;
    font-size:16px;
    line-height:1;
    cursor:pointer;
    transition:background .15s ease,transform .15s ease;
}
.odl-preview__close:hover{background:#fff;transform:scale(1.04)}
.odl-preview__hero-top{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:14px;
}
.odl-preview__id{
    display:inline-flex;
    align-items:center;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(194,65,12,.18);
    color:#c2410c;
    font-size:12px;
    font-weight:800;
    letter-spacing:.03em;
}
.odl-preview__status{
    display:inline-flex;
    align-items:center;
    padding:6px 12px;
    border-radius:999px;
    background:#166534;
    color:#fff;
    font-size:11px;
    font-weight:700;
    letter-spacing:.02em;
    box-shadow:0 4px 14px rgba(22,101,52,.18);
}
.odl-preview__title{
    margin:0 0 8px;
    font-size:24px;
    line-height:1.2;
    font-weight:800;
    color:#7c2d12;
    letter-spacing:-.02em;
}
.odl-preview__sent{
    margin:0;
    font-size:13px;
    font-weight:600;
    color:#9a3412;
    opacity:.88;
}
.odl-preview__body{
    padding:20px 24px 24px;
    background:#fff;
}
.odl-preview__meta{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-bottom:18px;
}
.odl-preview__meta-card{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    border-radius:14px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
}
.odl-preview__meta-icon{
    flex:0 0 auto;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#fff;
    border:1px solid #e2e8f0;
    font-size:16px;
}
.odl-preview__meta-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.odl-preview__meta-label{
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:#94a3b8;
}
.odl-preview__meta-value{
    font-size:13px;
    font-weight:700;
    color:#0f172a;
    line-height:1.35;
    word-break:break-word;
}
.odl-preview__content{
    border:1px solid #e2e8f0;
    border-radius:16px;
    overflow:hidden;
    background:#fcfdff;
    box-shadow:inset 4px 0 0 #fb923c;
}
.odl-preview__content-head{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:16px 18px 0;
}
.odl-preview__content-icon{
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#fff7ed;
    border:1px solid #fdba74;
    font-size:18px;
}
.odl-preview__content-title{
    margin:0 0 2px;
    font-size:14px;
    font-weight:800;
    color:#0f172a;
}
.odl-preview__content-sub{
    margin:0;
    font-size:12px;
    color:#64748b;
}
.odl-preview__content-body{
    padding:14px 18px 18px;
    font-size:15px;
    line-height:1.65;
    color:#334155;
    white-space:pre-wrap;
}
.odl-preview__footer{
    display:flex;
    justify-content:flex-end;
    margin-top:20px;
    padding-top:4px;
}
.odl-preview__btn-close{
    min-width:120px;
    border-radius:999px;
    box-shadow:0 8px 20px rgba(37,99,235,.18);
}
.odl-preview--loading .odl-preview__body{padding:24px}
.odl-preview__skeleton-line{
    height:14px;
    border-radius:999px;
    margin-bottom:12px;
    background:linear-gradient(90deg,#f1f5f9 0%,#e2e8f0 50%,#f1f5f9 100%);
    background-size:200% 100%;
    animation:odlPreviewShimmer 1.2s ease-in-out infinite;
}
.odl-preview__skeleton-line--short{width:58%}
.odl-preview__skeleton-block{
    height:96px;
    border-radius:16px;
    background:linear-gradient(90deg,#f8fafc 0%,#e2e8f0 50%,#f8fafc 100%);
    background-size:200% 100%;
    animation:odlPreviewShimmer 1.2s ease-in-out infinite;
}
.odl-preview--error{
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:40px 28px;
    background:#fff;
}
.odl-preview__error-icon{font-size:40px;margin-bottom:12px}
.odl-preview__error-title{
    margin:0 0 8px;
    font-size:18px;
    font-weight:800;
    color:#0f172a;
}
.odl-preview__error-text{
    margin:0 0 18px;
    font-size:14px;
    line-height:1.5;
    color:#64748b;
}
@keyframes odlPreviewShimmer{
    0%{background-position:200% 0}
    100%{background-position:-200% 0}
}
.itickets-odl-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 12px;
    border-radius:8px;
    border:1px solid #e2e8f0;
    background:#fff;
    color:#475569;
    font-size:11px;
    font-weight:700;
    letter-spacing:.01em;
    cursor:pointer;
    font-family:inherit;
    white-space:nowrap;
    text-decoration:none;
    transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease,color .12s ease;
}
.itickets-odl-btn:hover{
    transform:translateY(-1px);
    border-color:#cbd5e1;
    background:#f8fafc;
    color:#0f172a;
    box-shadow:0 2px 8px rgba(15,23,42,.06);
}
.itickets-odl-btn:disabled,.itickets-odl-btn.is-loading{opacity:.55;cursor:wait;transform:none;box-shadow:none}
.itickets-odl-btn--link{display:inline-flex}
.itickets-title-btn{
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    padding:0;
    border:none;
    background:transparent;
    text-align:left;
    cursor:pointer;
    font:inherit;
}
.itickets-title{
    font-size:14px;
    font-weight:600;
    color:#0f172a;
    line-height:1.35;
}
.itickets-row.is-closed-with-odl .itickets-title{
    text-decoration:line-through;
    color:#64748b;
}
.itickets-odl-done-badge{
    display:inline-flex;align-items:center;flex-shrink:0;
    padding:2px 8px;border-radius:999px;
    background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1;
    font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;
}
.itickets-comment-count{
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:999px;
    background:#dbeafe;
    color:#1d4ed8;
    font-size:11px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.itickets-cat-pill{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    padding:4px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:700;
    color:var(--cat-color,#64748b);
    background:color-mix(in srgb,var(--cat-color,#64748b) 14%,transparent);
    border:1px solid color-mix(in srgb,var(--cat-color,#64748b) 28%,transparent);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.itickets-intervention-pill{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    padding:4px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:700;
    color:#4338ca;
    background:#eef2ff;
    border:1px solid #c7d2fe;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.itickets-client{
    display:inline-flex;
    align-items:center;
    max-width:180px;
    padding:4px 9px;
    border-radius:6px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
    font-weight:600;
    color:#1e40af;
    background:#eff6ff;
    border:1px solid #bfdbfe;
}
.itickets-manager-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    max-width:100%;
    padding:3px 9px 3px 3px;
    border-radius:999px;
    background:#f1f5f9;
    border:1px solid #e2e8f0;
    overflow:hidden;
}
.itickets-manager-pill__avatar{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:50%;
    background:#6366f1;
    color:#fff;
    font-size:10px;
    font-weight:700;
    line-height:1;
}
.itickets-manager-pill__name{
    font-size:12px;
    font-weight:600;
    color:#334155;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itickets-due{
    display:inline-flex;
    padding:4px 8px;
    border-radius:6px;
    font-size:11px;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    line-height:1.3;
}
.itickets-due--accent{background:#fef3c7;color:#92400e}
.itickets-due--warn{background:#fff7ed;color:#c2410c}
.itickets-due--danger{background:#fee2e2;color:#991b1b}
.itickets-due--ok{background:#ecfdf5;color:#047857}
.itickets-due--draft{background:#fffbeb;color:#b45309}
.itickets-due--muted{background:#f1f5f9;color:#64748b}
.itickets-plan-cell{min-width:0;max-width:100%}
.itickets-plan-inline{
    display:flex;
    align-items:center;
    gap:4px;
    flex-wrap:nowrap;
    min-width:0;
    max-width:100%;
}
.itickets-plan-inline .itickets-plan-mode,
.itickets-plan-inline .itickets-plan-urgency{flex-shrink:0}
.itickets-plan-inline .itickets-due{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.itickets-plan-mode{
    display:inline-flex;
    padding:2px 6px;
    border-radius:4px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
    line-height:1.3;
}
.itickets-plan-mode--fixed{background:#dbeafe;color:#1d4ed8;border:1px solid rgba(37,99,235,.18)}
.itickets-plan-mode--draft{background:#fef3c7;color:#b45309;border:1px solid rgba(245,158,11,.22)}
.itickets-plan-urgency{
    display:inline-flex;
    padding:2px 6px;
    border-radius:4px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.03em;
    text-transform:uppercase;
}
.itickets-plan-urgency--accent{background:#fef3c7;color:#92400e}
.itickets-plan-urgency--danger{background:#fee2e2;color:#991b1b}
.itickets-field__optional{font-weight:500;color:#94a3b8;font-size:11px;text-transform:none;letter-spacing:0}
.itickets-textarea--compact{min-height:72px}
.itickets-textarea--note{min-height:140px}
.itickets-note-editor .tox-tinymce{border-radius:8px;border-color:#e2e8f0!important}
.itickets-detail__text--html{font-size:13px;line-height:1.55;color:#334155}
.itickets-detail__text--html p{margin:0 0 .5em}
.itickets-detail__text--html ul,.itickets-detail__text--html ol{margin:.25em 0 .5em 1.1em;padding:0}
.itickets-detail__text--html a{color:#4f46e5;text-decoration:underline}
.itickets-attachments-field{margin-top:4px}
.itickets-attachments-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.itickets-attachments-list--modal{margin-bottom:8px}
.itickets-attachments-list__empty{font-size:12px;color:#94a3b8;padding:4px 0}
.itickets-attachment{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    padding:6px 8px;border-radius:6px;border:1px solid #e2e8f0;background:#f8fafc
}
.itickets-attachment__link{font-size:12px;font-weight:600;color:#1e293b;text-decoration:none;min-width:0;word-break:break-word}
.itickets-attachment__link:hover{color:#4f46e5;text-decoration:underline}
.itickets-attachment__meta{font-size:11px;color:#94a3b8;white-space:nowrap}
.itickets-attachment__remove{
    margin-left:auto;border:none;background:transparent;color:#94a3b8;
    font-size:16px;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px
}
.itickets-attachment__remove:hover{background:#fee2e2;color:#dc2626}
.itickets-attachments-upload{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.itickets-attachments-upload--create{align-items:flex-start;flex-direction:column;gap:4px}
.itickets-attachments-upload--inline{margin-top:8px}
.itickets-attachments-upload__input{font-size:12px;max-width:100%}
.itickets-attachments-upload__hint{font-size:11px;color:#94a3b8;line-height:1.45;margin:6px 0 0}
.itickets-attachments-upload__hint strong{color:#475569;font-weight:700}
.itickets-attachments-upload__status{font-size:12px;margin:6px 0 0;line-height:1.4}
.itickets-attachments-upload__status--info{color:#64748b}
.itickets-attachments-upload__status--success{color:#15803d;font-weight:600}
.itickets-attachments-upload__status--error{color:#dc2626;font-weight:600}
.itickets-attachments-pending-list{
    list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;
}
.itickets-attachment-pending{
    display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;
    border:1px solid #e2e8f0;background:#f8fafc;
}
.itickets-attachment-pending__name{flex:1;min-width:0;font-size:12px;font-weight:600;color:#1e293b;word-break:break-word}
.itickets-attachment-pending__meta{font-size:11px;color:#94a3b8;white-space:nowrap}
.itickets-attachment-pending__remove{
    border:none;background:transparent;color:#94a3b8;font-size:16px;line-height:1;
    cursor:pointer;padding:0 4px;border-radius:4px;
}
.itickets-attachment-pending__remove:hover{background:#fee2e2;color:#dc2626}
.itickets-attachments-field--create-mode .itickets-attachments-upload__hint{margin-top:8px}
.itickets-attachments-dropzone--inline{
    padding:10px 12px;margin-top:0;
}
.itickets-attachments-upload--dropzone .itickets-attachments-upload__hint{margin-top:0}
.itickets-attachments-block{margin-top:0}

/* Materiali utilizzati (task padre) */
.itickets-materials-block{margin-top:0}
.itickets-materials-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px}
.itickets-materials-list__empty{font-size:12px;color:#94a3b8;padding:4px 0}
.itickets-material{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding:6px 8px;border-radius:6px;border:1px solid #e2e8f0;background:#f8fafc;font-size:12px;color:#1e293b
}
.itickets-material__main{display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.itickets-material__code{font-weight:700;color:#4338ca;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.itickets-material__name{font-weight:600;word-break:break-word}
.itickets-material__tag{font-size:11px}
.itickets-material__qty{font-weight:700;color:#0f172a;white-space:nowrap}
.itickets-material__price{color:#15803d;font-weight:600;white-space:nowrap}
.itickets-material__date{font-size:11px;color:#94a3b8;white-space:nowrap}
.itickets-material__remove{
    margin-left:auto;border:none;background:transparent;color:#94a3b8;
    font-size:16px;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px
}
.itickets-material__remove:hover{background:#fee2e2;color:#dc2626}
.itickets-materials-add{
    display:flex;flex-direction:column;gap:12px;padding:14px;
    border:1px solid #e2e8f0;border-radius:12px;
    background:linear-gradient(180deg,#fbfcfe 0%,#fff 60%)
}
.itickets-materials-add__search{position:relative;display:flex;align-items:center}
.itickets-materials-add__search-icon{
    position:absolute;left:10px;font-size:13px;color:#94a3b8;pointer-events:none
}
.itickets-materials-add__find{
    width:100%;padding:8px 10px 8px 30px;border-radius:8px;border:1px solid #cbd5e1;
    font-size:12.5px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease
}
.itickets-materials-add__find:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.itickets-materials-add__results{
    position:absolute;top:100%;left:0;right:0;z-index:30;margin-top:4px;background:#fff;
    border:1px solid #6366f1;border-radius:10px;box-shadow:0 10px 28px rgba(15,23,42,.16);
    min-width:min(420px,92vw);width:max(100%,min(420px,92vw));
    max-height:320px;overflow-y:auto
}
.itickets-materials-add__result{padding:11px 14px;font-size:13.5px;line-height:1.4;cursor:pointer;border-bottom:1px solid #eef2f7;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.itickets-materials-add__result:last-child{border-bottom:none}
.itickets-materials-add__result:hover{background:#eef2ff}
.itickets-materials-add__result--empty{color:#94a3b8;cursor:default;justify-content:center;padding:14px 16px;font-size:13px}
.itickets-materials-add__result-stock{margin-left:auto;font-size:12px;color:#64748b;white-space:nowrap}
.itickets-materials-add__grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,2.2fr) 64px 96px 146px;
    gap:10px 12px;
    align-items:end;
}
.itickets-materials-add__cell{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.itickets-materials-add__lbl{
    font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;padding-left:2px
}
.itickets-materials-add__field{
    width:100%;box-sizing:border-box;padding:7px 9px;border-radius:8px;border:1px solid #cbd5e1;
    font-size:12.5px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease
}
.itickets-materials-add__field:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.itickets-materials-add__footer{
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
    padding-top:10px;border-top:1px solid #eef2f7
}
.itickets-materials-add__mag{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#64748b;cursor:pointer}
.itickets-materials-add__mag em{font-style:normal;color:#94a3b8}
.itickets-materials-add__btn{
    margin-left:auto;border:1px solid #bbf7d0;background:#ecfdf5;color:#059669;
    border-radius:9px;padding:8px 16px;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .15s ease
}
.itickets-materials-add__btn:hover{background:#d1fae5;color:#047857;border-color:#86efac}
.itickets-materials-add__btn:disabled{opacity:.6;cursor:not-allowed}
.itickets-materials-add__status{font-size:12px;margin:0;line-height:1.4}
.itickets-materials-add__status--info{color:#64748b}
.itickets-materials-add__status--success{color:#15803d;font-weight:600}
.itickets-materials-add__status--error{color:#dc2626;font-weight:600}
@media (max-width:640px){
    .itickets-materials-add__grid{grid-template-columns:1fr 1fr;}
    .itickets-materials-add__cell--name{grid-column:1 / -1;}
    .itickets-materials-add__cell--date{grid-column:1 / -1;}
}
.itickets-subtasks-badge{
    display:inline-flex;
    align-items:center;
    padding:2px 7px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.02em;
    background:linear-gradient(135deg,#ede9fe,#e0e7ff);
    color:#6d28d9;
    border:1px solid rgba(124,58,237,.15);
    flex-shrink:0;
}
.itickets-subtasks-badge[hidden],
.itickets-subtasks-badge:empty{
    display:none!important;
}
.itickets-subtasks{
    padding:12px 14px;
    border-radius:12px;
    background:linear-gradient(180deg,#fafbff 0%,#f8fafc 100%);
    border:1px solid rgba(99,102,241,.12);
    margin-bottom:14px;
}
.itickets-subtasks__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.itickets-subtasks__title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#4338ca;text-transform:uppercase;letter-spacing:.04em}
.itickets-subtasks__icon{font-size:11px;opacity:.75}
.itickets-subtasks__hint{font-weight:600;color:#94a3b8;text-transform:none;letter-spacing:0;font-size:10px}
.itickets-subtasks__count{font-size:11px;font-weight:800;color:#6366f1;background:#eef2ff;padding:2px 8px;border-radius:999px}
.itickets-subtasks__progress{height:4px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:10px}
.itickets-subtasks__progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#7c3aed);transition:width .2s ease}
.itickets-subtasks__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.itickets-subtask{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:8px;
    padding:6px 8px;
    border-radius:8px;
    background:#fff;
    border:1px solid rgba(148,163,184,.18);
    transition:background .12s,border-color .12s,opacity .12s;
}
.itickets-subtask.has-assign{grid-template-columns:auto 1fr auto}
.itickets-subtask__controls{
    display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;min-width:0;
}
.itickets-subtask__assign{
    font-size:11px;padding:4px 6px;border-radius:6px;border:1px solid rgba(99,102,241,.25);
    background:#fff;color:#4338ca;max-width:150px;min-width:0;height:30px;box-sizing:border-box;
}
.itickets-subtask__assignee{
    display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#6d28d9;
    background:#f5f3ff;padding:1px 6px;border-radius:999px;
}
.itickets-subtasks__assign-hint{
    margin:0 0 8px;font-size:11px;line-height:1.4;color:#64748b;
}
.itickets-subtask-parent-badge{
    display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;
    color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;padding:2px 8px;border-radius:999px;
    max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;
}
.itickets-row.is-subtask-row .itickets-title{font-weight:800}
.itickets-row.is-subtask-row{background:#fff}
.itickets-row.is-subtask-row > td:first-child{box-shadow:inset 3px 0 0 0 #8b5cf6}
.itickets-row.is-subtask-row .itickets-table__col-desc{padding-left:14px}
.itickets-subtask-owner-badge{
    display:inline-flex;align-items:center;gap:4px;margin-left:8px;
    font-size:11px;font-weight:700;color:#6d28d9;
    background:#f5f3ff;border:1px solid #ddd6fe;padding:2px 8px;border-radius:999px;
    white-space:nowrap;vertical-align:middle;
}
.itickets-subtask__time{
    display:inline-flex;align-items:center;gap:4px;margin-left:8px;
    font-size:11px;font-weight:700;color:#0f766e;
    background:#f0fdfa;border:1px solid #99f6e4;padding:2px 8px;border-radius:999px;
    white-space:nowrap;vertical-align:middle;font-variant-numeric:tabular-nums;
}
.itickets-subtask__time.is-running{
    color:#b45309;background:#fffbeb;border-color:#fcd34d;
}
.itickets-subtask__controls .itickets-subtask__time,
.itickets-subtask__controls .itickets-subtask-owner-badge{margin-left:0}
.itickets-subtask__controls .itickets-subtask-owner-badge{max-width:160px;overflow:hidden;text-overflow:ellipsis}
.itickets-parent-context{
    margin-bottom:14px;padding:12px 14px;border-radius:10px;
    background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid rgba(148,163,184,.22);
}
.itickets-parent-context__head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.itickets-parent-context__label{font-size:11px;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.04em}
.itickets-parent-context__hint{font-size:10px;color:#94a3b8;font-weight:600}
.itickets-parent-context__title{font-size:14px;font-weight:800;color:#0f172a;margin-bottom:8px}
.itickets-parent-context__meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.itickets-parent-context__chip{
    font-size:11px;font-weight:600;color:#475569;background:#f1f5f9;padding:2px 8px;border-radius:999px;
}
.itickets-parent-context__chip--cat{color:#fff;background:var(--cat-color,#64748b)}
.itickets-parent-context__plan{font-size:12px;color:#64748b;margin-bottom:6px}
.itickets-parent-context__note{font-size:12px;line-height:1.45;color:#334155}
.itickets-subtasks--solo{margin-bottom:12px}
/* Card riepilogo del proprio sottotask (sola lettura) */
.itickets-subtask-card{
    padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.22);
    background:linear-gradient(180deg,#fbfcfe,#fff);
}
.itickets-subtask-card.is-done .itickets-subtask-card__title{text-decoration:line-through;color:#64748b}
.itickets-subtask-card__title{font-size:14px;font-weight:700;color:#0f172a;line-height:1.35;word-break:break-word}
.itickets-subtask-card__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.itickets-subtask-chip{
    display:inline-flex;align-items:center;gap:4px;
    font-size:11px;font-weight:700;line-height:1;
    padding:4px 9px;border-radius:999px;
    background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;white-space:nowrap;
}
.itickets-subtask-chip--status{
    background:var(--chip-bg,#f1f5f9);color:var(--chip-fg,#475569);border-color:var(--chip-bd,#e2e8f0);
}
.itickets-subtask-chip--done{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.itickets-subtask-chip--appt{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.itickets-subtask-chip--appt-draft{background:#fffbeb;color:#b45309;border-color:#fde68a}
.itickets-subtask-chip--cat{
    color:#fff;background:var(--cat-color,#64748b);border-color:transparent;
}
.itickets-toast{
    position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);
    z-index:12000;max-width:min(420px,calc(100vw - 32px));
    padding:12px 16px;border-radius:10px;font-size:13px;font-weight:600;
    color:#0f172a;background:#fff;border:1px solid #c7d2fe;
    box-shadow:0 10px 30px rgba(15,23,42,.15);
    opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;
}
.itickets-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.itickets-toast--ok{border-color:#bbf7d0;background:#f0fdf4;color:#14532d}
.itickets-toast--error{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.itickets-subtask:hover{border-color:rgba(99,102,241,.25);background:#fefefe}
.itickets-subtask.is-done{opacity:.72;background:#f8fafc}
.itickets-subtask.is-done .itickets-subtask__title{text-decoration:line-through;color:#64748b}
.itickets-subtask__check{margin:0;display:flex;align-items:center;cursor:pointer}
.itickets-subtask__check input{position:absolute;opacity:0;width:0;height:0}
.itickets-subtask__box{
    width:16px;height:16px;border-radius:5px;border:1.5px solid #cbd5e1;background:#fff;display:block;position:relative;transition:all .12s;
}
.itickets-subtask__check input:checked + .itickets-subtask__box{
    background:linear-gradient(135deg,#6366f1,#7c3aed);border-color:#6366f1;
}
.itickets-subtask__check input:checked + .itickets-subtask__box::after{
    content:'';position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);
}
.itickets-subtask__title{font-size:13px;line-height:1.35;color:#1e293b;min-width:0;word-break:break-word}
.itickets-subtask__remove{
    width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:#94a3b8;font-size:16px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s,background .12s,color .12s;
}
.itickets-subtask:hover .itickets-subtask__remove,.itickets-subtask:focus-within .itickets-subtask__remove{opacity:1}
.itickets-subtask__remove:hover{background:#fee2e2;color:#dc2626}
.itickets-subtask__remove.is-locked{font-size:12px;color:#cbd5e1;cursor:not-allowed}
.itickets-subtask__remove.is-locked:hover{background:transparent;color:#cbd5e1}
.itickets-subtask__delegated-note{display:flex;align-items:flex-start;gap:8px;margin:4px 0 2px;padding:9px 12px;font-size:12px;line-height:1.5;color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px}
.itickets-subtask__delegated-note-icon{flex:0 0 auto;font-size:13px;line-height:1.5}
.itickets-subtask__delegated-note strong{font-weight:700}
/* Layout moderno a card per il dettaglio del sottotask */
.itickets-subtask__detail-grid{display:flex;flex-direction:column;gap:10px}
.itickets-subtask__section{
    background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:12px;
    padding:12px 14px;box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.itickets-subtask__section .itickets-subtask__field-label{margin-bottom:8px}
.itickets-subtask__section .itickets-materials-block{margin-top:0}
.itickets-subtask__ro-empty{display:inline-block;font-size:13px;color:#94a3b8;font-style:italic}
.itickets-subtasks__add{
    display:flex;align-items:center;gap:8px;margin-top:10px;padding:6px 8px;border-radius:8px;border:1px dashed rgba(99,102,241,.28);background:rgba(255,255,255,.7);
}
.itickets-subtasks__add:focus-within{border-color:rgba(99,102,241,.45);background:#fff;box-shadow:0 0 0 3px rgba(99,102,241,.08)}
.itickets-subtasks__add-icon{color:#6366f1;font-weight:800;font-size:14px;line-height:1}
.itickets-subtasks__input{
    flex:1;min-width:0;border:none;background:transparent;font-size:13px;color:#0f172a;outline:none;padding:4px 0;
}
.itickets-subtasks__input::placeholder{color:#94a3b8}
.itickets-subtasks__empty{margin:0;font-size:12px;color:#94a3b8}
/* Meta sottotask: stato, categoria, scadenza, priorità — distribuzione ottimale su una riga */
.itickets-subtask__meta{
    grid-column:1 / -1;
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    margin-top:6px;padding-top:8px;border-top:1px dashed rgba(148,163,184,.22);
}
.itickets-subtask__meta > *{margin:0}
.itickets-subtask__cat,
.itickets-subtask__prio,
.itickets-subtask__due,
.itickets-subtask__planned{
    font-size:11px;padding:4px 8px;border-radius:7px;border:1px solid rgba(148,163,184,.32);
    background:#fff;color:#334155;min-width:0;box-sizing:border-box;height:30px;line-height:1.2;
}
.itickets-subtask__cat{color:#4338ca;border-color:rgba(99,102,241,.25);flex:1 1 150px;min-width:120px;max-width:none}
.itickets-subtask__prio{flex:1 1 130px;min-width:110px;max-width:none}
.itickets-subtask__due{flex:0 0 auto;width:148px;max-width:148px}
.itickets-subtask__planned{flex:0 0 auto;width:188px;max-width:188px;color:#7c3aed;border-color:rgba(124,58,237,.28)}
.itickets-subtask__planned::-webkit-calendar-picker-indicator{opacity:.6;cursor:pointer}
.itickets-subtask__planstatus{
    flex:0 0 auto;width:128px;max-width:128px;height:30px;box-sizing:border-box;
    font-size:11px;padding:4px 8px;border-radius:7px;border:1px solid rgba(124,58,237,.28);
    background:#fff;color:#7c3aed;min-width:0;cursor:pointer;
}
.itickets-subtask__meta .itickets-work-status-select{
    flex:0 0 auto;width:auto;min-width:118px;max-width:140px;
    font-size:11px;padding:4px 24px 4px 10px;height:30px;box-sizing:border-box;
}
.itickets-subtask-status-cell{display:inline-flex;align-items:center;gap:6px}
.itickets-subtask-status-cell .itickets-work-status-select{font-size:11px;padding:3px 20px 3px 8px}
@media (max-width:640px){
    .itickets-subtask__meta > *{flex:1 1 100%!important;width:100%!important;max-width:none!important}
}
.itickets-subtasks__add--rich{flex-direction:column;align-items:stretch;gap:8px}
.itickets-subtasks__add-main{display:flex;align-items:center;gap:8px;min-width:0}
.itickets-subtasks__add-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-left:22px}
.itickets-icon-btn--subtasks{font-size:13px;color:#6366f1}
.itickets-icon-btn--subtasks:hover{background:#eef2ff;border-color:rgba(99,102,241,.25);color:#4f46e5}

/* ── Sottotask: riga compatta cliccabile + pannello dettagli espandibile ── */
.itickets-subtask{display:block;padding:0;overflow:hidden}
.itickets-subtask.has-assign{grid-template-columns:none}
.itickets-subtask__row{
    display:flex;align-items:center;gap:8px;padding:8px 10px;min-width:0;cursor:pointer;
    transition:background .12s ease;
}
.itickets-subtask__row:hover{background:rgba(99,102,241,.06)}
.itickets-subtask.is-just-added{animation:itickets-subtask-flash 1.6s ease}
@keyframes itickets-subtask-flash{0%{background:#e0e7ff}100%{background:transparent}}
.itickets-subtask__head{
    flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;
    background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left;color:inherit;font:inherit;
}
.itickets-subtask__head .itickets-subtask__title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.itickets-subtask__chips{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.itickets-subtask__chip{
    display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;
    padding:1px 8px;border-radius:999px;border:1px solid rgba(148,163,184,.32);
    background:#f8fafc;color:#475569;white-space:nowrap;
}
.itickets-subtask__chip--prio{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.itickets-subtask__chip--mode{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}
.itickets-subtask__chip--appt{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.itickets-subtask__chip--appt-draft{background:#fffbeb;border-color:#fde68a;color:#b45309}
.itickets-subtask__chip--status{
    background:var(--chip-bg,#ecfdf5);border-color:var(--chip-bd,#bbf7d0);color:var(--chip-fg,#15803d);
}
.itickets-subtask__chip--cat{
    background:#fff;border-color:rgba(148,163,184,.4);color:#334155;padding-left:7px;
}
.itickets-subtask__chip--cat::before{
    content:"";width:8px;height:8px;border-radius:50%;background:var(--cat-color,#64748b);flex:0 0 auto;
}
.itickets-subtask__caret{flex:0 0 auto;color:#94a3b8;font-size:11px;transition:transform .15s ease}
.itickets-subtask.is-expanded .itickets-subtask__caret{transform:rotate(180deg)}
.itickets-subtask.is-expanded{border-color:rgba(99,102,241,.35);background:#fbfaff}
.itickets-subtask__details{
    padding:10px 10px 12px;border-top:1px dashed rgba(148,163,184,.28);
    display:flex;flex-direction:column;gap:12px;background:rgba(248,250,252,.6);
}
/* L'attributo hidden deve avere la precedenza sul display:flex sopra,
   così la voce resta chiusa finché non ci si clicca sopra. */
.itickets-subtask__details[hidden]{display:none!important}
.itickets-subtask__details .itickets-subtask__meta{grid-column:auto;margin-top:0;padding-top:0;border-top:0}
.itickets-subtask__details .itickets-subtask-owner-badge{margin-left:0;align-self:flex-start}
.itickets-subtask__field-label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:6px}
.itickets-intervention-modes.itickets-intervention-modes--compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:none}
.itickets-intervention-modes--compact .itickets-intervention-mode__card{padding:8px 6px;flex-direction:row;gap:6px;align-items:center;justify-content:flex-start;min-height:0}
.itickets-intervention-modes--compact .itickets-intervention-mode__icon{margin-bottom:0;font-size:15px}
.itickets-intervention-modes--compact .itickets-intervention-mode__label{font-size:12px}
.itickets-subtask__desc-field .itickets-textarea--note{width:100%}
.itickets-subtask__desc-actions{display:flex;align-items:center;gap:10px;margin-top:8px}
.itickets-subtask__desc-status{font-size:12px;color:#64748b}
.itickets-subtask__desc-status.is-ok{color:#15803d}
.itickets-subtask__desc-status.is-err{color:#dc2626}
.itickets-subtask__readonly-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.itickets-subtasks__add-row{margin-top:10px}
.itickets-subtasks__add-btn{display:inline-flex;align-items:center;gap:6px}
.itickets-timer{
    margin-bottom:14px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;
}
.itickets-timer__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.itickets-timer__label{font-size:11px;font-weight:800;color:#4338ca;text-transform:uppercase;letter-spacing:.04em}
.itickets-timer__hint{font-size:10px;font-weight:600;color:#94a3b8}
.itickets-timer__display{
    margin-left:auto;font-variant-numeric:tabular-nums;font-size:15px;font-weight:800;color:#0f172a;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
.itickets-timer__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.itickets-timer__btn{
    border:1px solid #e2e8f0;background:#f8fafc;color:#334155;border-radius:8px;padding:5px 12px;
    font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease;
}
.itickets-timer__btn:hover{background:#eef2ff;border-color:rgba(99,102,241,.3);color:#4338ca}
.itickets-timer__btn--start{color:#059669;border-color:#bbf7d0;background:#ecfdf5}
.itickets-timer__btn--start:hover{background:#d1fae5;color:#047857}
.itickets-timer__btn--stop{color:#dc2626;border-color:#fecaca;background:#fef2f2}
.itickets-timer__btn--stop:hover{background:#fee2e2;color:#b91c1c}
.itickets-timer__running{font-size:11px;font-weight:700;color:#6366f1}
.itickets-timer-badge{font-size:11px;opacity:.85}
.itickets-timer-hero{
    position:relative;
    overflow:hidden;
    margin:0 0 14px;
    padding:18px 20px;
    border-radius:16px;
    border:1px solid rgba(99,102,241,.22);
    background:
        radial-gradient(120% 140% at 0% 0%, rgba(99,102,241,.18) 0%, transparent 52%),
        radial-gradient(90% 120% at 100% 100%, rgba(124,58,237,.14) 0%, transparent 55%),
        linear-gradient(135deg,#0f172a 0%,#1e1b4b 48%,#312e81 100%);
    box-shadow:
        0 18px 40px rgba(30,27,75,.22),
        inset 0 1px 0 rgba(255,255,255,.08);
}
.itickets-timer-hero__aurora{
    position:absolute;
    inset:-40% -20%;
    background:
        radial-gradient(circle at 30% 40%, rgba(129,140,248,.35) 0%, transparent 42%),
        radial-gradient(circle at 70% 60%, rgba(167,139,250,.28) 0%, transparent 40%);
    opacity:.75;
    pointer-events:none;
    animation:itickets-timer-aurora 12s ease-in-out infinite alternate;
}
.itickets-timer-hero__inner{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:16px 20px;
}
.itickets-timer-hero__meta{min-width:0}
.itickets-timer-hero__meta-top{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:6px;
}
.itickets-timer-hero__badge{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:4px 10px 4px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.14);
    color:#e0e7ff;
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.itickets-timer-hero__badge-dot{
    width:7px;height:7px;border-radius:50%;
    background:linear-gradient(135deg,#a5b4fc,#818cf8);
    box-shadow:0 0 10px rgba(129,140,248,.8);
}
.itickets-timer-hero__live{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 10px;
    border-radius:999px;
    background:rgba(16,185,129,.16);
    border:1px solid rgba(52,211,153,.35);
    color:#bbf7d0;
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.itickets-timer-hero__live-dot{
    width:7px;height:7px;border-radius:50%;
    background:#34d399;
    box-shadow:0 0 0 0 rgba(52,211,153,.55);
    animation:itickets-timer-pulse 1.6s ease-out infinite;
}
.itickets-timer-hero__live--team{
    background:rgba(245,158,11,.16);
    border-color:rgba(251,191,36,.4);
    color:#fde68a;
}
.itickets-timer-hero__live--team .itickets-timer-hero__live-dot{
    background:#fbbf24;
    box-shadow:0 0 0 0 rgba(251,191,36,.55);
}
.itickets-timer__running--team{color:#d97706}
.itickets-timer-hero__hint{
    margin:0;
    font-size:12px;
    line-height:1.45;
    color:rgba(226,232,240,.72);
}
.itickets-timer-hero__clock{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:10px 18px;
    border-radius:14px;
    background:rgba(15,23,42,.42);
    border:1px solid rgba(255,255,255,.1);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.itickets-timer-hero__clock:has(.itickets-timer-hero__total){flex-direction:column;gap:6px}
.itickets-timer-hero__display{
    font-variant-numeric:tabular-nums;
    font-size:clamp(28px,4vw,36px);
    font-weight:800;
    letter-spacing:.04em;
    line-height:1;
    color:#f8fafc;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    text-shadow:0 0 24px rgba(165,180,252,.35);
}
.itickets-timer-hero__total{
    font-size:12px;font-weight:700;letter-spacing:.02em;color:#c7d2fe;
    font-variant-numeric:tabular-nums;white-space:nowrap;
}
.itickets-timer-hero__total strong{color:#e0e7ff;font-weight:800}
.itickets-timer__total{
    flex-basis:100%;text-align:right;margin-top:2px;
    font-size:12px;font-weight:700;color:#475569;font-variant-numeric:tabular-nums;
}
.itickets-timer-hero__actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}
.itickets-timer-hero__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-width:108px;
    padding:11px 16px;
    border-radius:12px;
    border:1px solid transparent;
    font-size:13px;
    font-weight:800;
    cursor:pointer;
    transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease;
}
.itickets-timer-hero__btn:hover{transform:translateY(-1px)}
.itickets-timer-hero__btn:active{transform:translateY(0)}
.itickets-timer-hero__btn-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;height:22px;
    border-radius:999px;
    font-size:11px;
    line-height:1;
}
.itickets-timer-hero__btn--start{
    color:#ecfdf5;
    background:linear-gradient(135deg,#059669,#10b981);
    border-color:rgba(110,231,183,.35);
    box-shadow:0 10px 24px rgba(16,185,129,.28);
}
.itickets-timer-hero__btn--start .itickets-timer-hero__btn-icon{
    background:rgba(255,255,255,.18);
}
.itickets-timer-hero__btn--start:hover{
    background:linear-gradient(135deg,#047857,#059669);
    box-shadow:0 14px 28px rgba(16,185,129,.34);
}
.itickets-timer-hero__btn--stop{
    color:#fff1f2;
    background:linear-gradient(135deg,#e11d48,#f43f5e);
    border-color:rgba(251,113,133,.35);
    box-shadow:0 10px 24px rgba(244,63,94,.28);
}
.itickets-timer-hero__btn--stop .itickets-timer-hero__btn-icon{
    background:rgba(255,255,255,.18);
}
.itickets-timer-hero__btn--stop:hover{
    background:linear-gradient(135deg,#be123c,#e11d48);
    box-shadow:0 14px 28px rgba(244,63,94,.34);
}
.itickets-timer-hero__empty{
    margin:0;
    font-size:12px;
    color:rgba(226,232,240,.65);
}
.itickets-timer-hero.is-running{
    border-color:rgba(52,211,153,.42);
    box-shadow:
        0 18px 40px rgba(6,78,59,.28),
        inset 0 1px 0 rgba(255,255,255,.1);
}
.itickets-timer-hero.is-running .itickets-timer-hero__clock{
    border-color:rgba(52,211,153,.35);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        0 0 0 1px rgba(16,185,129,.12),
        0 0 28px rgba(16,185,129,.18);
}
.itickets-timer-hero.is-running .itickets-timer-hero__display{
    color:#ecfdf5;
    text-shadow:0 0 28px rgba(52,211,153,.45);
}
.itickets-timer-hero.has-time:not(.is-running) .itickets-timer-hero__display{
    color:#e0e7ff;
}
.itickets-detail__inner > .itickets-timer-hero{
    margin-bottom:14px;
}
@keyframes itickets-timer-aurora{
    0%{transform:translate3d(-2%,0,0) scale(1)}
    100%{transform:translate3d(2%,-2%,0) scale(1.04)}
}
@keyframes itickets-timer-pulse{
    0%{box-shadow:0 0 0 0 rgba(52,211,153,.55)}
    70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}
    100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}
}
.itickets-odl-modal{
    width:min(660px,100%);
    padding:0;
    overflow:hidden;
    border-radius:18px;
    border:1px solid #e2e8f0;
    box-shadow:0 24px 48px rgba(15,23,42,.16);
    display:flex;
    flex-direction:column;
    max-height:calc(100dvh - 40px);
    background:#fff;
}
.itickets-odl-modal.itickets-odl-modal--wide{
    width:min(820px,96vw);
}
.itickets-odl-modal__hero{
    position:relative;
    padding:22px 22px 16px;
    background:#fff;
    border-bottom:1px solid #f1f5f9;
    flex-shrink:0;
}
.itickets-odl-modal__close{
    position:absolute;top:14px;right:14px;
    width:32px;height:32px;border:none;border-radius:10px;
    background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;
    cursor:pointer;transition:all .15s ease;
}
.itickets-odl-modal__close:hover{background:#fff;color:#0f172a;box-shadow:0 4px 12px rgba(15,23,42,.08)}
.itickets-odl-modal__badge{
    display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
    background:#ffedd5;color:#c2410c;font-size:10px;font-weight:800;letter-spacing:.08em;
    text-transform:uppercase;margin-bottom:10px;
}
.itickets-odl-modal__title{margin:0 0 6px;font-size:20px;font-weight:800;color:#0f172a;line-height:1.25}
.itickets-odl-modal__task{
    margin:0 0 8px;font-size:14px;font-weight:700;color:#334155;line-height:1.35;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.itickets-odl-modal__task[hidden]{display:none!important}
.itickets-odl-modal__intro{margin:0;font-size:13px;color:#64748b;line-height:1.5}
.itickets-odl-modal__form{
    display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;
}
.itickets-odl-modal__body{
    padding:18px 22px 16px;display:flex;flex-direction:column;gap:14px;
    overflow:auto;flex:1;min-height:0;background:#fff;
}
.itickets-odl-modal__grid{
    display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start;
}
.itickets-odl-modal__field{display:flex;flex-direction:column;gap:8px;min-width:0}
.itickets-odl-modal__label{
    font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#64748b;
}
.itickets-odl-modal__form .itickets-required{color:#dc2626}
.itickets-odl-modal__input-wrap{
    display:flex;align-items:center;gap:10px;
    padding:0 12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;
    min-height:48px;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.itickets-odl-modal__input-wrap:focus-within{
    border-color:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.22);
}
.itickets-odl-modal__input-icon{font-size:16px;line-height:1;opacity:.85;flex-shrink:0}
.itickets-odl-modal__input{
    flex:1;min-width:0;border:none;background:transparent;padding:11px 0;
    font-size:14px;font-weight:600;color:#0f172a;font-family:inherit;outline:none;
}
.itickets-odl-duration{
    display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
    padding:8px 12px;border:1px solid #d8def0;border-radius:11px;background:#fff;
    min-height:46px;box-sizing:border-box;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.itickets-odl-duration:focus-within{
    border-color:#a5b4fc;box-shadow:0 0 0 3px rgba(99,102,241,.16);
}
.itickets-odl-duration__box{
    flex:0 0 auto;display:inline-flex;align-items:baseline;justify-content:center;gap:6px;min-width:0;
    padding:0;border:0;background:transparent;
}
.itickets-odl-duration__box:focus-within{box-shadow:none}
.itickets-odl-duration__input{
    width:48px;max-width:48px;padding:0;border:none;background:transparent;
    font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;
    text-align:center;color:#0f172a;font-family:inherit;outline:none;
    box-sizing:border-box;-moz-appearance:textfield;
}
.itickets-odl-duration__input::-webkit-outer-spin-button,
.itickets-odl-duration__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.itickets-odl-duration__input::placeholder{color:#cbd5e1;font-weight:700}
.itickets-odl-duration__unit{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}
.itickets-odl-duration__sep{display:inline-block;font-size:18px;font-weight:800;color:#cbd5e1;line-height:1}
.itickets-odl-billable-card{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
    margin-top:14px;padding:14px 16px;border-radius:14px;
    background:linear-gradient(135deg,#eef2ff 0%,#f5f3ff 100%);
    border:1px solid rgba(99,102,241,.2);
}
.itickets-odl-billable-card__main{
    display:flex;align-items:center;gap:13px;min-width:0;flex:1 1 auto;
}
.itickets-odl-billable-card__icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:11px;background:#fff;font-size:17px;flex-shrink:0;
    box-shadow:0 4px 10px rgba(99,102,241,.12);
}
.itickets-odl-billable-card__copy{display:flex;flex-direction:column;gap:7px;min-width:0}
.itickets-odl-billable-card__label{font-size:11px;font-weight:800;color:#4f46e5;text-transform:uppercase;letter-spacing:.05em}
.itickets-odl-billable-card__hint{font-size:11px;color:#64748b;line-height:1.35}
.itickets-odl-billable-card.is-non-billable{
    background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);
    border-color:#e2e8f0;
}
.itickets-odl-billable-card.is-non-billable .itickets-odl-billable-card__label{color:#64748b}
.itickets-odl-billable-card.is-non-billable .itickets-odl-billable-card__icon{box-shadow:0 4px 10px rgba(100,116,139,.12)}
.itickets-odl-billable-toggle{
    display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;cursor:pointer;
}
.itickets-odl-billable-toggle input{position:absolute;opacity:0;width:0;height:0}
.itickets-odl-billable-toggle__track{
    width:42px;height:24px;border-radius:999px;background:#cbd5e1;position:relative;transition:background .15s ease;
}
.itickets-odl-billable-toggle__track::after{
    content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;
    box-shadow:0 1px 3px rgba(15,23,42,.18);transition:transform .15s ease;
}
.itickets-odl-billable-toggle input:checked + .itickets-odl-billable-toggle__track{background:#6366f1}
.itickets-odl-billable-toggle input:checked + .itickets-odl-billable-toggle__track::after{transform:translateX(18px)}
.itickets-odl-billable-toggle__text{font-size:10px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.itickets-odl-modal__footer{
    display:flex;gap:10px;justify-content:flex-end;align-items:center;
    padding:14px 22px 18px;border-top:1px solid #f1f5f9;background:#fff;flex-shrink:0;
}
.itickets-odl-modal__submit{min-width:148px}
@media (max-width:520px){
    .itickets-odl-modal__grid{grid-template-columns:1fr}
    .itickets-odl-billable-card{flex-direction:column;align-items:stretch}
    .itickets-odl-billable-toggle{align-self:flex-end;flex-direction:row;gap:10px}
}

/* ODL inline nella modale di modifica */
.itickets-create-band--odl{
    border:1px solid #c7d2fe;
    background:linear-gradient(180deg,#eef2ff 0%,#fbfaff 60%);
    box-shadow:0 0 0 2px #c7d2fe,0 14px 32px rgba(79,70,229,.14);
}
.itickets-create-band--odl .itickets-create-band__icon{background:#4f46e5;color:#fff;border-color:transparent}
.itickets-create-band--odl .itickets-create-band__title{color:#312e81}
.itickets-create-band--odl .itickets-create-band__body{display:flex;flex-direction:column;gap:0}
/* Distribuzione campi ODL: data su una riga, poi le due tempistiche affiancate */
.itickets-odl-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    align-items:start;
}
.itickets-odl-fields > .itickets-odl-field:first-child{grid-column:1 / -1}
@media (max-width:600px){.itickets-odl-fields{grid-template-columns:1fr}}
.itickets-odl-field{gap:8px}
.itickets-odl-field > .itickets-edit-field__label{text-align:center}
.itickets-odl-field input[type="date"]{text-align:center}
.itickets-odl-materials{margin-top:18px;padding-top:16px;border-top:1px dashed #e2e8f0}
.itickets-odl-materials .itickets-detail__block{margin:0}
.itickets-odl-inline__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;align-items:start;margin-bottom:0;
}
/* "Tempo fatturabile": stessa larghezza/stile degli altri, titolo centrato + toggle a destra */
.itickets-odl-billable-field__head{
    position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:18px;text-align:center;
}
.itickets-odl-billable-field__head .itickets-odl-billable-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.itickets-odl-billable-field .itickets-odl-billable-card__hint{margin-top:2px;text-align:center}
.itickets-odl-billable-field.is-non-billable .itickets-odl-billable-field__head,
.itickets-odl-billable-field.is-non-billable .itickets-odl-billable-card__hint{color:#94a3b8}
.itickets-odl-billable-toggle--inline{flex-direction:row;align-items:center;gap:7px}
.itickets-odl-billable-toggle--inline .itickets-odl-billable-toggle__track{width:34px;height:20px}
.itickets-odl-billable-toggle--inline .itickets-odl-billable-toggle__track::after{width:14px;height:14px;top:3px;left:3px}
.itickets-odl-billable-toggle--inline input:checked + .itickets-odl-billable-toggle__track::after{transform:translateX(14px)}
.itickets-odl-billable-toggle--inline .itickets-odl-billable-toggle__text{display:none}
.itickets-odl-esito-field{display:flex;flex-direction:column;gap:8px}
.itickets-odl-esito-field .itickets-odl-modal__label,.itickets-odl-esito-field .itickets-edit-field__label{display:block}
.itickets-odl-esito{display:flex;gap:10px;flex-wrap:wrap}
.itickets-odl-esito__opt{display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:130px;padding:11px 13px;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#334155;background:#fff;transition:border-color .15s,background .15s,color .15s}
.itickets-odl-esito__opt:hover{border-color:#cbd5e1}
.itickets-odl-esito__opt input{margin:0;width:16px;height:16px;cursor:pointer}
.itickets-odl-esito__opt:has(input:checked){border-color:#10b981;background:#ecfdf5;color:#047857}
.itickets-odl-reason{margin-top:14px}
.itickets-odl-reason[hidden]{display:none!important}
.itickets-odl-billable-field .itickets-odl-reason{margin-top:10px;text-align:left}
.itickets-odl-billable-field .itickets-odl-reason .itickets-edit-field__label{text-align:left;white-space:nowrap}
.itickets-odl-reason .itickets-required{white-space:nowrap}
/* Tempo fatturabile evidenziato con sfondo viola */
.itickets-odl-duration--billable{
    margin-top:0;
    background:linear-gradient(180deg,#f5f3ff,#ede9fe);
    border-color:#c4b5fd;
}
.itickets-odl-duration--billable .itickets-odl-duration__input{color:#4c1d95}
.itickets-odl-duration--billable .itickets-odl-duration__sep{color:#a78bfa}
.itickets-odl-duration--billable .itickets-odl-duration__unit{color:#8b5cf6}
.itickets-odl-billable-field.is-non-billable .itickets-odl-duration--billable{
    background:#f8fafc;border-color:#e2e8f0;
}
.itickets-odl-billable-field.is-non-billable .itickets-odl-duration--billable .itickets-odl-duration__input,
.itickets-odl-billable-field.is-non-billable .itickets-odl-duration--billable .itickets-odl-duration__sep,
.itickets-odl-billable-field.is-non-billable .itickets-odl-duration--billable .itickets-odl-duration__unit{color:#94a3b8}
.itickets-odl-duration__input:disabled{opacity:.45;cursor:not-allowed}

/* Flusso ODL nella modale di modifica: distinzione campi editabili vs generazione */
[data-odl-only]{display:none}
.is-odl-mode [data-odl-only]{display:flex}
.itickets-odl-editnote--always,
.itickets-odl-divider--always{display:flex}
.is-odl-mode .itickets-create-band--planning,
.is-odl-mode .itickets-create-band--sharing{display:none!important}
.is-odl-mode .itickets-create-bands--grid > .itickets-create-band--intervention{
    grid-column:1 / -1;
    border-right:none;
}
.is-odl-mode .itickets-create-band--intervention .itickets-intervention-modes{
    max-width:none;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.itickets-odl-editnote{
    align-items:flex-start;gap:10px;margin:0 0 4px;padding:11px 14px;
    background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;
    font-size:13px;color:#475569;line-height:1.45;
}
.itickets-odl-editnote__icon{flex:0 0 auto;font-size:14px;color:#94a3b8}
.itickets-odl-editnote strong{color:#334155}
.itickets-odl-divider{
    grid-column:1 / -1;
    align-items:center;justify-content:center;gap:14px;margin:18px 0 4px;
}
.itickets-odl-divider::before,
.itickets-odl-divider::after{content:"";flex:1;height:1px}
.itickets-odl-divider::before{background:linear-gradient(90deg,transparent,#c7d2fe)}
.itickets-odl-divider::after{background:linear-gradient(90deg,#c7d2fe,transparent)}
.itickets-odl-divider__badge{
    flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
    padding:6px 14px;border-radius:999px;background:#4f46e5;color:#fff;
    font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
    box-shadow:0 4px 12px rgba(79,70,229,.28);
}
.itickets-odl-divider__badge::before{content:"🧾"}
.itickets-odl-divider__hint{display:none}
.itickets-odl-required-badge{
    display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;
    background:#e0e7ff;color:#4338ca;font-size:10px;font-weight:800;letter-spacing:.05em;
    text-transform:uppercase;vertical-align:middle;
}
@media (max-width:600px){
    .itickets-odl-inline__grid{grid-template-columns:1fr}
}
.itickets-edit-modal__odl-submit{min-width:178px}
.itickets-edit-modal__odl-submit[hidden]{display:none!important}

/* Modifica task — modal */
.itickets-edit-modal{
    width:min(1080px,94vw);
    padding:0;
    overflow:hidden;
    border-radius:18px;
    border:1px solid #e2e8f0;
    box-shadow:0 24px 48px rgba(15,23,42,.16);
    display:flex;
    flex-direction:column;
    max-height:calc(100dvh - 40px);
    background:#fff;
}
.itickets-edit-modal__hero{
    position:relative;
    padding:20px 22px 16px;
    background:#fff;
    border-bottom:1px solid #f1f5f9;
    flex-shrink:0;
}
.itickets-edit-modal__close{
    position:absolute;top:14px;right:14px;
    width:32px;height:32px;border:none;border-radius:10px;
    background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;
    cursor:pointer;transition:all .15s ease;
}
.itickets-edit-modal__close:hover{background:#fff;color:#0f172a;box-shadow:0 4px 12px rgba(15,23,42,.08)}
.itickets-edit-modal__badge{
    display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
    background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:.08em;
    text-transform:uppercase;margin-bottom:8px;
}
.itickets-edit-modal__heading{margin:0 0 10px;font-size:22px;font-weight:800;color:#0f172a;line-height:1.25}
.itickets-edit-modal__status{
    display:inline-flex;align-items:center;gap:4px;
    padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;
    background:var(--status-bg,#f8fafc);color:var(--status-fg,#475569);border:1px solid var(--status-bd,#e2e8f0);
}
.itickets-edit-modal__form{
    display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;
    background:#fff;
}
.itickets-edit-modal__body{
    flex:1;min-height:0;overflow:auto;padding-bottom:4px;
    background:#fff;
}
.itickets-edit-modal__form .itickets-edit-section{
    padding:0 22px;
}
.itickets-edit-modal__form .itickets-edit-section:first-of-type{padding-top:18px}
.itickets-edit-section{margin-bottom:16px}
.itickets-edit-section--title{margin-bottom:14px}
.itickets-edit-section--subtasks{margin-bottom:12px}
.itickets-edit-section--note{margin-bottom:0;padding-bottom:8px!important}
.itickets-edit-section__title{
    margin:0 0 10px;font-size:11px;font-weight:800;text-transform:uppercase;
    letter-spacing:.06em;color:#94a3b8;
}
.itickets-edit-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.itickets-edit-field--title{margin-bottom:0}
.itickets-edit-field__label{
    font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;
}
.itickets-edit-field__input{
    width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;
    font-size:14px;font-family:inherit;background:#fff;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.itickets-edit-field__input--title{
    font-size:16px;font-weight:700;padding:12px 14px;border-radius:12px;
}
.itickets-edit-field__input:focus{
    outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.22);
}
.itickets-edit-grid{display:grid;gap:12px}
.itickets-edit-grid--context{
    grid-template-columns:1fr;
}
@media (min-width:520px){
    .itickets-edit-grid--context{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
.itickets-edit-field--span2{
    grid-column:1 / -1;
}
@media (min-width:520px){
    .itickets-edit-grid--context .itickets-edit-field--span2{
        grid-column:span 1;
    }
}
.itickets-edit-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.itickets-edit-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:640px){
    .itickets-edit-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.itickets-edit-plan-card{
    display:flex;align-items:flex-start;gap:14px;
    padding:14px 16px;border-radius:14px;
    background:linear-gradient(135deg,#f8fafc 0%,#fff 100%);
    border:1px solid #e2e8f0;
}
.itickets-edit-plan-card--empty{background:#fafafa;border-style:dashed}
.itickets-edit-plan-card__icon{
    flex-shrink:0;width:40px;height:40px;border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    background:#eff6ff;font-size:18px;
}
.itickets-edit-plan-card--empty .itickets-edit-plan-card__icon{background:#f1f5f9;opacity:.7}
.itickets-edit-plan-card__body{flex:1;min-width:0}
.itickets-edit-plan-card__when{
    display:block;font-size:14px;font-weight:700;color:#0f172a;line-height:1.35;
}
.itickets-edit-plan-card__when--muted{color:#64748b;font-weight:600}
.itickets-edit-plan-card__hint{margin:4px 0 0;font-size:12px;color:#94a3b8;line-height:1.4}
.itickets-edit-plan-card__meta{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;
}
.itickets-edit-plan-card__pill{
    display:inline-flex;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;
}
.itickets-edit-plan-card__pill--fixed{background:#ecfdf5;color:#15803d;border:1px solid #bbf7d0}
.itickets-edit-plan-card__pill--draft{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.itickets-edit-plan-card__duration{font-size:12px;font-weight:600;color:#64748b}
.itickets-edit-plan-card__actions{
    display:flex;flex-direction:column;gap:6px;flex-shrink:0;
}
.itickets-edit-plan-card__btn{
    border:1px solid #e2e8f0;background:#fff;color:#475569;
    border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700;
    cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .15s ease;
}
.itickets-edit-plan-card__btn:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.itickets-edit-plan-card__btn--danger{color:#dc2626;border-color:#fecaca;background:#fff}
.itickets-edit-plan-card__btn--danger:hover{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}
.itickets-edit-modal__footer{
    display:flex;justify-content:flex-end;align-items:center;gap:10px;
    padding:14px 22px 18px;margin-top:auto;
    border-top:1px solid #f1f5f9;background:#fff;flex-shrink:0;
}
.itickets-edit-modal--wide{width:min(1080px,94vw)}
.itickets-edit-modal__hero--compact{
    padding:16px 22px 14px!important;
}
.itickets-edit-modal__hero--compact .itickets-edit-modal__heading{
    margin-bottom:6px!important;
    font-size:20px!important;
}
.itickets-edit-modal--premium .itickets-edit-modal__hero--compact{
    padding:18px 24px 14px!important;
}

/* Modifica task — fasce premium (stesso layout del nuovo task) */
.itickets-edit-modal--premium .itickets-edit-modal__hero{
    background:linear-gradient(135deg,#0f172a 0%,#1e293b 48%,#312e81 100%);
    border-bottom:none;
    padding:24px 26px 20px;
}
.itickets-edit-modal--premium .itickets-edit-modal__close{
    background:rgba(255,255,255,.12);color:#e2e8f0;
}
.itickets-edit-modal--premium .itickets-edit-modal__close:hover{
    background:rgba(255,255,255,.2);color:#fff;box-shadow:none;
}
.itickets-edit-modal--premium .itickets-edit-modal__badge{
    background:rgba(255,255,255,.14);color:#e0e7ff;border:1px solid rgba(255,255,255,.18);
}
.itickets-edit-modal--premium .itickets-edit-modal__heading{color:#fff;margin-bottom:8px}
.itickets-edit-modal--premium .itickets-edit-modal__status{
    background:rgba(255,255,255,.12)!important;
    color:#f8fafc!important;border-color:rgba(255,255,255,.2)!important;
}
.itickets-edit-modal--premium .itickets-edit-modal__body{
    padding:0;background:#f8fafc;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}
.itickets-edit-modal--premium .itickets-planning__grid{
    grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
}

.itickets-note-editor--compact .itickets-field{margin-bottom:0}
.itickets-note-editor--compact .tox-tinymce{border-radius:12px!important}
.itickets-note-editor--compact .tox .tox-edit-area__iframe{min-height:96px!important}
.itickets-attachments-field--edit{margin-top:12px}
.itickets-attachments-upload--dropzone{
    flex-direction:column;align-items:stretch;gap:8px;margin-top:8px;
}
.itickets-attachments-dropzone{
    display:flex;align-items:center;justify-content:center;gap:10px;
    padding:14px 16px;border:1px dashed #cbd5e1;border-radius:12px;
    background:#f8fafc;cursor:pointer;transition:all .15s ease;position:relative;
}
.itickets-attachments-dropzone:hover{border-color:#93c5fd;background:#eff6ff}
.itickets-attachments-dropzone .itickets-attachments-upload__input{
    position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
}
.itickets-attachments-dropzone__icon{font-size:18px;opacity:.7;pointer-events:none}
.itickets-attachments-dropzone__text{font-size:13px;color:#64748b;pointer-events:none}
.itickets-attachments-dropzone__text strong{color:#1d4ed8;font-weight:700}
.itickets-attachments-upload__submit{align-self:flex-end}
@media (max-width:720px){
    .itickets-edit-grid--3,.itickets-edit-grid--4{grid-template-columns:1fr}
    .itickets-edit-plan-card{flex-direction:column}
    .itickets-edit-plan-card__actions{flex-direction:row;width:100%}
    .itickets-edit-plan-card__btn{flex:1}
}

/* Nuovo task — modal */
.itickets-create-modal{
    width:min(1080px,94vw);
    padding:0;
    overflow:hidden;
    border-radius:18px;
    border:1px solid #e2e8f0;
    box-shadow:0 24px 48px rgba(15,23,42,.16);
    display:flex;
    flex-direction:column;
    max-height:calc(100dvh - 40px);
    background:#fff;
}
.itickets-create-modal__hero{
    position:relative;
    padding:20px 22px 16px;
    background:#fff;
    border-bottom:1px solid #f1f5f9;
    flex-shrink:0;
}
.itickets-create-modal__close{
    position:absolute;top:14px;right:14px;
    width:32px;height:32px;border:none;border-radius:10px;
    background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;
    cursor:pointer;transition:all .15s ease;
}
.itickets-create-modal__close:hover{background:#e2e8f0;color:#0f172a}
.itickets-create-modal__badge{
    display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
    background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:.08em;
    text-transform:uppercase;margin-bottom:8px;
}
.itickets-create-modal__heading{margin:0 0 6px;font-size:22px;font-weight:800;color:#0f172a;line-height:1.25}
.itickets-create-modal__intro{margin:0;font-size:13px;color:#64748b;line-height:1.5}
.itickets-create-modal__form{
    display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:#fff;
}
.itickets-create-modal__body{
    flex:1;min-height:0;overflow:auto;padding-bottom:4px;background:#fff;
}
.itickets-create-modal__body .itickets-edit-section{padding:0 22px}
.itickets-create-modal__body .itickets-edit-section:first-of-type{padding-top:18px}
.itickets-create-modal__footer{
    display:flex;justify-content:flex-end;align-items:center;gap:10px;
    padding:14px 22px 18px;border-top:1px solid #f1f5f9;background:#fff;flex-shrink:0;
}
.itickets-create-modal__submit{min-width:120px}
.itickets-textarea--subtasks{
    min-height:64px;resize:vertical;font-size:13px;line-height:1.45;
}

/* Nuovo task — fasce premium */
.itickets-create-modal--premium .itickets-create-modal__hero{
    background:linear-gradient(135deg,#0f172a 0%,#1e293b 48%,#312e81 100%);
    border-bottom:none;
    padding:24px 26px 20px;
}
.itickets-create-modal--premium .itickets-create-modal__close{
    background:rgba(255,255,255,.12);color:#e2e8f0;
}
.itickets-create-modal--premium .itickets-create-modal__close:hover{
    background:rgba(255,255,255,.2);color:#fff;
}
.itickets-create-modal--premium .itickets-create-modal__badge{
    background:rgba(255,255,255,.14);color:#e0e7ff;border:1px solid rgba(255,255,255,.18);
}
.itickets-create-modal--premium .itickets-create-modal__heading{color:#fff}
.itickets-create-modal--premium .itickets-create-modal__intro{color:rgba(226,232,240,.82)}
.itickets-create-modal--premium .itickets-create-modal__body{
    padding:0;background:#f8fafc;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}
.itickets-create-modal--wide{width:min(1080px,94vw)}
.itickets-create-modal__hero--compact{
    padding:16px 22px 14px!important;
    border-bottom:1px solid #f1f5f9;
}
.itickets-create-modal--premium .itickets-create-modal__hero--compact{
    padding:18px 24px 14px!important;
    border-bottom:none;
}
.itickets-create-modal__hero--compact .itickets-create-modal__heading{
    margin-bottom:0!important;
    font-size:20px!important;
}
.itickets-create-bands.itickets-create-bands--grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
}
.itickets-create-bands--grid > .itickets-create-band{
    height:100%;
    border-right:1px solid #e8edf4;
}
.itickets-create-bands--grid > .itickets-create-band:nth-child(odd){
    border-right:none;
}
.itickets-create-bands--grid > .itickets-create-band--full{
    grid-column:1 / -1;
    border-right:none;
}
.itickets-create-band--full{border-bottom:none}
.itickets-create-band__planning-top{
    display:grid;
    grid-template-columns:minmax(150px,200px) minmax(0,1fr);
    gap:12px 16px;
    align-items:start;
    margin-bottom:12px;
}
.itickets-create-band__planning-top .itickets-edit-field--due-date{
    max-width:none;
    margin:0;
}
.itickets-priority-picker{margin:0;min-width:0}
.itickets-priority-picker__options{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
}
.itickets-priority-option{
    position:relative;
    display:block;
    margin:0;
    cursor:pointer;
}
.itickets-priority-option input{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
    pointer-events:none;
}
.itickets-priority-option__chip{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-height:52px;
    padding:6px 4px;
    border-radius:10px;
    border:1px solid #dbe3ee;
    background:#fff;
    transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .15s ease;
}
.itickets-priority-option__icon{font-size:13px;line-height:1}
.itickets-priority-option__label{
    font-size:10px;
    font-weight:800;
    letter-spacing:.02em;
    color:#64748b;
    text-align:center;
    line-height:1.2;
}
.itickets-priority-option:hover .itickets-priority-option__chip{
    border-color:#c7d2fe;
    background:#f8fafc;
}
.itickets-priority-option.is-active .itickets-priority-option__chip,
.itickets-priority-option input:checked + .itickets-priority-option__chip{
    border-color:#6366f1;
    background:linear-gradient(180deg,#eef2ff 0%,#fff 100%);
    box-shadow:0 0 0 3px rgba(99,102,241,.1);
    transform:translateY(-1px);
}
.itickets-priority-option--high.is-active .itickets-priority-option__chip,
.itickets-priority-option--high input:checked + .itickets-priority-option__chip{
    border-color:#fca5a5;background:linear-gradient(180deg,#fef2f2 0%,#fff 100%);box-shadow:0 0 0 3px rgba(239,68,68,.1)
}
.itickets-priority-option--medium.is-active .itickets-priority-option__chip,
.itickets-priority-option--medium input:checked + .itickets-priority-option__chip{
    border-color:#fcd34d;background:linear-gradient(180deg,#fffbeb 0%,#fff 100%);box-shadow:0 0 0 3px rgba(245,158,11,.1)
}
.itickets-priority-option--low.is-active .itickets-priority-option__chip,
.itickets-priority-option--low input:checked + .itickets-priority-option__chip{
    border-color:#86efac;background:linear-gradient(180deg,#ecfdf5 0%,#fff 100%);box-shadow:0 0 0 3px rgba(16,185,129,.1)
}
.itickets-priority-option--none.is-active .itickets-priority-option__chip,
.itickets-priority-option--none input:checked + .itickets-priority-option__chip{
    border-color:#cbd5e1;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);box-shadow:0 0 0 3px rgba(100,116,139,.08)
}
.itickets-priority-option.is-active .itickets-priority-option__label,
.itickets-priority-option input:checked + .itickets-priority-option__chip .itickets-priority-option__label{
    color:#0f172a;
}
.itickets-create-bands{
    display:flex;flex-direction:column;gap:0;
}
.itickets-create-band{
    position:relative;
    border-bottom:1px solid #e8edf4;
    background:#fff;
}
.itickets-create-band:last-child{border-bottom:none}
.itickets-create-band__head{
    display:flex;align-items:flex-start;gap:10px;
    padding:10px 18px 0;
}
.itickets-create-band__icon{
    flex-shrink:0;
    width:32px;height:32px;
    display:flex;align-items:center;justify-content:center;
    border-radius:12px;font-size:16px;line-height:1;
}
.itickets-create-band__head-text{min-width:0}
.itickets-create-band__title{
    margin:0 0 2px;font-size:13px;font-weight:800;letter-spacing:.04em;
    text-transform:uppercase;color:#0f172a;
}
.itickets-create-band__subtitle{
    margin:0;font-size:12px;color:#64748b;line-height:1.4;
}
.itickets-create-band__body{padding:8px 18px 12px}
.itickets-create-band__grid{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;
}
.itickets-create-band__grid .itickets-edit-field{margin:0}
.itickets-create-band__grid .itickets-edit-field--span2{grid-column:1/-1}

/* Identità — layout verticale coerente */
.itickets-create-band--identity .itickets-create-band__head{padding-bottom:2px}
.itickets-create-band--identity .itickets-create-band__body{padding:8px 18px 12px}
.itickets-create-band__identity-fields{
    display:flex;
    flex-direction:column;
    gap:10px;
}
/* Identità full-width → titolo su una riga, poi categoria/cliente/contatto */
.itickets-create-band--identity.itickets-create-band--full .itickets-create-band__identity-fields{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
    gap:12px 18px;
}
.itickets-create-band--identity.itickets-create-band--full .itickets-edit-field--title-block{
    grid-column:1 / -1;
}
/* Il wrapper "contesto" si dissolve nella griglia: cliente e contatto diventano colonne */
.itickets-create-band--identity.itickets-create-band--full .itickets-create-band__context,
.itickets-create-band--identity.itickets-create-band--full .itickets-create-band__context-grid{
    display:contents;
}
.itickets-create-band--identity.itickets-create-band--full .itickets-create-band__context-label{
    display:none;
}
@media (max-width:760px){
    .itickets-create-band--identity.itickets-create-band--full .itickets-create-band__identity-fields{
        grid-template-columns:1fr;
    }
    .itickets-create-band--identity.itickets-create-band--full .itickets-create-band__context,
    .itickets-create-band--identity.itickets-create-band--full .itickets-create-band__context-grid{
        display:contents;
    }
}

/* Condivisioni + Modalità intervento affiancate: divisore netto tra le due colonne */
.itickets-create-bands--grid > .itickets-create-band--sharing{border-right:1px solid #e8edf4}
.itickets-create-bands--grid > .itickets-create-band--intervention{border-right:none}
/* Divisori orizzontali sotto le fasce a tutta larghezza */
.itickets-create-bands--grid > .itickets-create-band--identity.itickets-create-band--full,
.itickets-create-bands--grid > .itickets-create-band--planning.itickets-create-band--full{
    border-bottom:1px solid #e8edf4;
}

/* Pianificazione full-width (modifica e creazione): due gruppi funzionali distinti.
   Gruppo 1 = Scadenza + Priorità (urgenza). Gruppo 2 = Pianificazione calendario (data/ora/fissaggio/durata). */
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-create-band__body,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-create-band__body{
    display:flex;
    flex-direction:column;
    gap:14px;
}
/* Gruppo 1: scadenza (stretta) + priorità (larga) sulla stessa riga */
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-create-band__planning-top,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-create-band__planning-top{
    display:grid;
    grid-template-columns:minmax(150px,220px) minmax(0,1fr);
    gap:12px 20px;
    align-items:end;
    margin:0;
}
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-edit-field--due-date,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-edit-field--due-date{
    max-width:none;margin:0;
}
/* Gruppo 2: pianificazione calendario in un riquadro dedicato */
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning{
    margin:0;
    padding:12px 14px;
    border:1px solid #e8edf4;
    border-radius:12px;
    background:#f8fafc;
    gap:8px;
}
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning__legend,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning__legend{
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:#64748b;
}
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning__grid,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning__grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px 14px;
}
.itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning .itickets-field,
.itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning .itickets-field{
    margin:0;
}
@media (max-width:760px){
    .itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-create-band__planning-top,
    .itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-create-band__planning-top{
        grid-template-columns:1fr;
    }
    .itickets-edit-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning__grid,
    .itickets-create-modal .itickets-create-band--planning.itickets-create-band--full .itickets-planning__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
.itickets-create-band__identity-fields > .itickets-edit-field{
    margin:0;
    width:100%;
    min-width:0;
}
.itickets-create-band__identity-fields .itickets-edit-field__input,
.itickets-create-band__identity-fields select.itickets-edit-field__input{
    width:100%;
    box-sizing:border-box;
}
.itickets-create-band__identity-fields .itickets-client-search{
    display:block;
    width:100%;
    min-width:0;
}
.itickets-create-band--identity .itickets-edit-field--title-block{
    gap:8px;
}
.itickets-create-band--identity .itickets-create-plan-hint{
    margin:4px 0 0;
    font-size:11.5px;
    line-height:1.4;
}
.itickets-create-band--identity .itickets-create-title-error{
    margin:4px 0 0;
}
.itickets-create-band__context{
    margin:2px 0 0;
    padding:10px 0 0;
    border-top:1px solid #eef2f7;
}
.itickets-create-band__context-label{
    margin:0 0 8px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#94a3b8;
}
.itickets-create-band__context-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 16px;
}
.itickets-create-band__context-grid .itickets-edit-field{
    margin:0;
    min-width:0;
}
.itickets-create-band__context-grid .itickets-edit-field__input{
    width:100%;
    box-sizing:border-box;
}
@media (max-width:560px){
    .itickets-create-band__context-grid{grid-template-columns:1fr}
}
.itickets-create-band__input{
    border-radius:12px;border-color:#dbe3ee;
    background:#fff;transition:border-color .15s ease,box-shadow .15s ease;
}
.itickets-create-band__input:focus{
    border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12);
}
.itickets-create-band--identity .itickets-create-band__icon{
    background:linear-gradient(135deg,#eef2ff,#e0e7ff);color:#4338ca;
}
.itickets-create-band--identity .itickets-create-band__title{color:#3730a3}
.itickets-create-band--sharing .itickets-create-band__icon{
    background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#047857;
}
.itickets-create-band--sharing .itickets-create-band__title{color:#065f46}
.itickets-create-band--sharing{background:linear-gradient(180deg,#f8fffb 0%,#fff 42%)}
.itickets-create-band--planning .itickets-create-band__icon{
    background:linear-gradient(135deg,#fff7ed,#ffedd5);color:#c2410c;
}
.itickets-create-band--planning .itickets-create-band__title{color:#9a3412}
.itickets-create-band--planning{background:linear-gradient(180deg,#fffbf7 0%,#fff 38%)}
.itickets-create-band--planning .itickets-create-band__body{
    display:flex;flex-direction:column;gap:10px;
}
.itickets-edit-field--due-date{max-width:none;margin:0}
.itickets-create-band--details .itickets-create-band__icon{
    background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#475569;
}
.itickets-create-band--details .itickets-create-band__title{color:#334155}
.itickets-create-band__note{margin-bottom:14px}
.itickets-create-details{display:flex;flex-direction:column;gap:16px}
.itickets-create-details__block{
    padding:14px 16px;border-radius:14px;
    background:#fff;border:1px solid #e8edf4;
}
.itickets-create-details__block .itickets-edit-field{margin:0}
.itickets-create-details__block--subtasks{
    background:#fafbfc;border-style:dashed;
}
.itickets-create-details__block .itickets-attachments-field{margin:0}
.itickets-create-details__block .itickets-attachments-dropzone--create{margin-top:0}
.itickets-share-layout__personal-hint{
    margin:0;
    font-size:12.5px;
    line-height:1.45;
    color:#64748b;
}
.itickets-share-panel[hidden]{
    display:none !important;
}
.itickets-share-layout__personal-hint[hidden]{
    display:none !important;
}
.itickets-share-modes{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
    margin-bottom:14px;
}
.itickets-share-mode{
    position:relative;cursor:pointer;margin:0;
}
.itickets-share-mode input{
    position:absolute;opacity:0;pointer-events:none;
}
.itickets-share-mode__card{
    display:flex;flex-direction:column;align-items:flex-start;gap:2px;
    padding:12px 14px;border-radius:14px;
    border:1.5px solid #e2e8f0;background:#fff;
    transition:all .18s ease;min-height:72px;
}
.itickets-share-mode__icon{font-size:18px;line-height:1;margin-bottom:4px}
.itickets-share-mode__label{font-size:13px;font-weight:800;color:#0f172a}
.itickets-share-mode__hint{font-size:11px;color:#64748b;line-height:1.35}
.itickets-share-mode:hover .itickets-share-mode__card{
    border-color:#cbd5e1;box-shadow:0 4px 14px rgba(15,23,42,.06);
}
.itickets-share-mode.is-active .itickets-share-mode__card{
    border-color:#10b981;background:linear-gradient(180deg,#ecfdf5 0%,#fff 100%);
    box-shadow:0 8px 20px rgba(16,185,129,.12);
}
.itickets-share-mode.is-active .itickets-share-mode__label{color:#065f46}
.itickets-share-mode:has(input:checked) .itickets-share-mode__card{
    border-color:#10b981;background:linear-gradient(180deg,#ecfdf5 0%,#fff 100%);
    box-shadow:0 8px 20px rgba(16,185,129,.12);
}
.itickets-share-mode:has(input:checked) .itickets-share-mode__label{color:#065f46}
.itickets-share-layout:has([data-share-mode-input][value="shared"]:checked) [data-share-panel]{
    display:block!important;
}
.itickets-share-layout:has([data-share-mode-input][value="shared"]:checked) [data-share-personal-hint]{
    display:none!important;
}
.itickets-share-panel{
    padding:12px 14px;border-radius:12px;
    background:#f8fafc;border:1px solid #e8edf4;
}
.itickets-share-modes:has(.itickets-share-mode:only-child){
    grid-template-columns:minmax(0,220px);
}
.itickets-share-modes:has(.itickets-share-mode:nth-child(2):last-child){
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.itickets-share-panel .itickets-edit-field{margin:0}
.itickets-share-panel__hint{
    margin:10px 0 0;
    font-size:11.5px;
    line-height:1.45;
    color:#64748b;
}
.itickets-share-layout__intro{
    margin:0 0 10px;
    font-size:12.5px;
    line-height:1.45;
    color:#64748b;
}
.itickets-share-layout__note{
    margin:10px 0 0;
    font-size:11.5px;
    line-height:1.4;
    color:#94a3b8;
}
.itickets-share-picker{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:12px 14px;
    border-radius:12px;
    background:#f8fafc;
    border:1px solid #e8edf4;
}
.itickets-share-picker__row{
    display:flex;
    flex-direction:column;
    gap:6px;
}
.itickets-share-picker__label{
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:#64748b;
}
.itickets-share-chips{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.itickets-share-chip{
    display:inline-flex;
    align-items:center;
    margin:0;
    cursor:pointer;
    user-select:none;
}
.itickets-share-chip__input{
    position:absolute;
    opacity:0;
    pointer-events:none;
    width:0;
    height:0;
}
.itickets-share-chip__text{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border-radius:999px;
    border:1px solid #e2e8f0;
    background:#fff;
    font-size:12.5px;
    font-weight:600;
    color:#475569;
    line-height:1.2;
    transition:all .15s ease;
}
.itickets-share-chip:hover .itickets-share-chip__text{
    border-color:#cbd5e1;
    background:#f8fafc;
}
.itickets-share-chip.is-active .itickets-share-chip__text,
.itickets-share-chip:has(.itickets-share-chip__input:checked) .itickets-share-chip__text{
    border-color:#6ee7b7;
    background:linear-gradient(180deg,#ecfdf5,#d1fae5);
    color:#065f46;
    box-shadow:0 1px 4px rgba(16,185,129,.12);
}
.itickets-share-chip--group.is-active .itickets-share-chip__text,
.itickets-share-chip--group:has(.itickets-share-chip__input:checked) .itickets-share-chip__text{
    border-color:#93c5fd;
    background:linear-gradient(180deg,#eff6ff,#dbeafe);
    color:#1e40af;
    box-shadow:0 1px 4px rgba(59,130,246,.1);
}
.itickets-share-panels{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.itickets-share-multiselect{
    min-height:148px;
    padding:8px 10px;
    line-height:1.35;
}
.itickets-share-multiselect option{
    padding:6px 4px;
    border-radius:6px;
}
.itickets-share-multiselect option:checked{
    background:linear-gradient(180deg,#d1fae5,#a7f3d0);
    color:#065f46;
}
.itickets-create-band--intervention .itickets-create-band__icon{
    background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1d4ed8;
}
.itickets-create-band--intervention .itickets-create-band__title{color:#1e40af}
.itickets-create-band--intervention{background:linear-gradient(180deg,#f8fbff 0%,#fff 42%)}
.itickets-intervention-modes{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:640px;
}
.itickets-intervention-mode{
    position:relative;cursor:pointer;margin:0;
}
.itickets-intervention-mode input{
    position:absolute;opacity:0;pointer-events:none;
}
.itickets-intervention-mode__card{
    display:flex;flex-direction:column;align-items:flex-start;gap:2px;
    padding:12px 14px;border-radius:14px;
    border:1.5px solid #e2e8f0;background:#fff;
    transition:all .18s ease;min-height:72px;
}
.itickets-intervention-mode__icon{font-size:18px;line-height:1;margin-bottom:4px}
.itickets-intervention-mode__label{font-size:13px;font-weight:800;color:#0f172a}
.itickets-intervention-mode__hint{font-size:11px;color:#64748b;line-height:1.35}
.itickets-intervention-mode:hover .itickets-intervention-mode__card{
    border-color:#cbd5e1;box-shadow:0 4px 14px rgba(15,23,42,.06);
}
.itickets-intervention-mode.is-active .itickets-intervention-mode__card{
    border-color:#3b82f6;background:linear-gradient(180deg,#eff6ff 0%,#fff 100%);
    box-shadow:0 8px 20px rgba(59,130,246,.12);
}
.itickets-intervention-mode.is-active .itickets-intervention-mode__label{color:#1e40af}
@media (max-width:720px){
    .itickets-intervention-modes{grid-template-columns:1fr}
    .itickets-create-band__grid{grid-template-columns:1fr}
    .itickets-create-bands.itickets-create-bands--grid{grid-template-columns:1fr}
    .itickets-create-bands--grid > .itickets-create-band{border-right:none}
    .itickets-create-band__planning-top{grid-template-columns:1fr}
    .itickets-priority-picker__options{grid-template-columns:repeat(2,minmax(0,1fr))}
    .itickets-share-modes{grid-template-columns:1fr}
    .itickets-share-panels{grid-template-columns:1fr}
}
.itickets-edit-section--create-context{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.itickets-edit-section--create-context .itickets-edit-field{
    margin:0;
}
.itickets-create-plan-hint{
    margin:8px 0 0;font-size:12px;color:#94a3b8;line-height:1.45;
}
.itickets-create-title-error{
    margin:8px 0 0;font-size:12px;color:#dc2626;line-height:1.45;font-weight:600;
}
.itickets-edit-section .itickets-create-plan-hint{margin:0 0 12px}
.itickets-edit-section--title .itickets-create-plan-hint{margin:6px 0 0}
.itickets-create-plan-hint--active{color:#64748b}
.itickets-create-plan-hint--active strong{color:#0f172a;font-weight:700}
.itickets-attachments-dropzone--create{
    margin-top:6px;width:100%;box-sizing:border-box;position:relative;
}
.itickets-attachments-dropzone--create .itickets-attachments-upload__input{
    position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
}
.itickets-edit-field__input.itickets-textarea--compact{
    min-height:88px;resize:vertical;line-height:1.45;padding:10px 12px;
}

.itickets-done-modal{
    width:min(580px,100%);
    padding:0;
    overflow:hidden;
    border-radius:18px;
    border:1px solid #e2e8f0;
    box-shadow:0 24px 48px rgba(15,23,42,.16);
    background:#fff;
}
.itickets-done-modal__hero{
    position:relative;
    padding:24px 22px 20px;
    text-align:center;
    background:#fff;
    border-bottom:1px solid #f1f5f9;
}
.itickets-done-modal__close{
    position:absolute;top:14px;right:14px;
    width:32px;height:32px;border:none;border-radius:10px;
    background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;
    cursor:pointer;transition:all .15s ease;
}
.itickets-done-modal__close:hover{background:#e2e8f0;color:#0f172a}
.itickets-done-modal__badge{
    display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
    background:#d1fae5;color:#047857;font-size:10px;font-weight:800;letter-spacing:.08em;
    text-transform:uppercase;margin-bottom:12px;
}
.itickets-done-modal__icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:56px;height:56px;border-radius:50%;background:#fff;color:#15803d;
    font-size:26px;font-weight:800;margin-bottom:12px;border:2px solid #bbf7d0;
    box-shadow:0 8px 20px rgba(21,128,61,.12);
}
.itickets-done-modal__title{margin:0 0 8px;font-size:20px;font-weight:800;color:#0f172a;line-height:1.25}
.itickets-done-modal__text{margin:0 auto;font-size:13px;color:#64748b;line-height:1.55;max-width:30em}
.itickets-done-modal__choices{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    padding:16px 18px 18px;background:#fff;
}
.itickets-done-modal__choice{
    display:flex;flex-direction:column;align-items:flex-start;gap:10px;
    padding:14px 14px 12px;border-radius:14px;border:1px solid #e2e8f0;
    background:#fff;color:#0f172a;text-align:left;cursor:pointer;
    font-family:inherit;transition:all .15s ease;
}
.itickets-done-modal__choice:hover{
    border-color:#cbd5e1;background:#f8fafc;transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(15,23,42,.06);
}
.itickets-done-modal__choice--primary{
    border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff 0%,#fff 100%);
}
.itickets-done-modal__choice--primary:hover{
    border-color:#93c5fd;background:linear-gradient(135deg,#dbeafe 0%,#fff 100%);
    box-shadow:0 8px 20px rgba(37,99,235,.12);
}
.itickets-done-modal__choice-icon{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:36px;height:28px;padding:0 8px;border-radius:8px;
    font-size:11px;font-weight:800;letter-spacing:.04em;
}
.itickets-done-modal__choice-icon--muted{background:#f1f5f9;color:#64748b}
.itickets-done-modal__choice-icon--odl{background:#ffedd5;color:#c2410c}
.itickets-done-modal__choice-copy{display:flex;flex-direction:column;gap:3px}
.itickets-done-modal__choice-copy strong{font-size:14px;font-weight:800;color:#0f172a;line-height:1.2}
.itickets-done-modal__choice-copy span{font-size:12px;color:#64748b;line-height:1.35}
@media (max-width:520px){
    .itickets-done-modal__choices{grid-template-columns:1fr}
}
.itickets-muted{color:#94a3b8}
.itickets-row-actions{display:flex;gap:4px;justify-content:flex-end;align-items:center}
.itickets-table__col-created,.itickets-table__col-timer{white-space:nowrap;font-size:12px;color:#475569}
.itickets-created-at{font-variant-numeric:tabular-nums}
.itickets-timer-inline{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-width:72px;
    justify-content:center;
    padding:5px 10px;
    border-radius:8px;
    border:1px solid #e2e8f0;
    background:#fff;
    font-size:12px;
    font-weight:700;
    color:#334155;
    cursor:pointer;
    transition:all .15s ease;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.itickets-timer-inline__time{font-variant-numeric:tabular-nums;min-width:2.5em;text-align:center}
.itickets-timer-inline__icon{
    font-size:11px;
    line-height:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;height:18px;
    border-radius:50%;
    background:#f1f5f9;
    color:#475569;
}
.itickets-timer-inline:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
}
.itickets-timer-inline.is-running{
    border-color:#4ade80;
    background:linear-gradient(180deg,#ecfdf5,#dcfce7);
    color:#166534;
    box-shadow:0 0 0 1px rgba(74,222,128,.35);
}
.itickets-timer-inline.is-running .itickets-timer-inline__icon{
    background:#22c55e;
    color:#fff;
}
.itickets-timer-inline:not(.is-running) .itickets-timer-inline__time:not(:empty){
    color:#475569;
}
.itickets-timer-inline.has-time:not(.is-running){
    border-color:#c7d2fe;
    background:#f5f3ff;
    color:#4338ca;
}
.itickets-favorite-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border:1px solid transparent;
    border-radius:8px;
    background:transparent;
    color:#cbd5e1;
    cursor:pointer;
    padding:0;
    transition:color .15s, background .15s, border-color .15s, transform .12s;
}
.itickets-favorite-btn:hover{
    color:#f59e0b;
    background:#fffbeb;
    border-color:rgba(245,158,11,.2);
}
.itickets-favorite-btn.is-active{
    color:#f59e0b;
}
.itickets-favorite-btn__icon{
    font-size:18px;
    line-height:1;
}
.itickets-favorite-btn.is-active .itickets-favorite-btn__icon{
    text-shadow:0 0 0 currentColor;
}
.itickets-row.is-favorite .itickets-title{font-weight:600}
.itickets-tabs__item--favorite .itickets-tabs__star{color:#f59e0b;margin-right:2px}
.itickets-tabs__item--favorite.is-active .itickets-tabs__star{color:inherit}
.itickets-inline-form{margin:0;display:inline}
.itickets-icon-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border:1px solid #e2e8f0;
    border-radius:8px;
    background:#fff;
    color:#64748b;
    cursor:pointer;
    transition:all .15s ease;
}
.itickets-icon-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#334155}
.itickets-icon-btn--danger:hover{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.itickets-icon-btn svg{width:15px;height:15px}
.itickets-detail td{
    padding:0;
    background:#fafbfc;
    border-bottom:1px solid #e2e8f0;
}
.itickets-detail__inner{padding:16px 20px 20px}
.itickets-detail-summary{
    margin-bottom:0;
    width:100%;
    box-sizing:border-box;
    padding:14px 16px;
    border-radius:14px;
    background:#fff;
    border:1px solid #e2e8f0;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.itickets-detail-summary__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}
.itickets-detail-summary__eyebrow{
    display:block;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:#0f172a;
}
.itickets-detail-summary__hint{
    margin:4px 0 0;
    font-size:12px;
    line-height:1.45;
    color:#94a3b8;
}
.itickets-detail-summary__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.itickets-detail-summary__band{
    padding:12px 14px;
    border-radius:12px;
    background:#f8fafc;
    border:1px solid #e8edf4;
    min-width:0;
}
.itickets-detail-summary__band-head{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
    font-size:12px;
    font-weight:800;
    color:#0f172a;
}
.itickets-detail-summary__dl{margin:0}
.itickets-detail-summary__row{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    gap:8px;
    padding:5px 0;
    border-top:1px solid #e8edf4;
}
.itickets-detail-summary__row:first-child{border-top:none;padding-top:0}
.itickets-detail-summary__row dt{
    margin:0;
    font-size:11px;
    font-weight:700;
    color:#64748b;
}
.itickets-detail-summary__row dd{
    margin:0;
    font-size:13px;
    line-height:1.45;
    color:#0f172a;
    font-weight:600;
}
.itickets-detail-summary__cat{
    display:inline-flex;
    align-items:center;
    padding:2px 8px;
    border-radius:999px;
    background:color-mix(in srgb, var(--cat-color) 14%, #fff);
    color:var(--cat-color);
    font-size:12px;
    font-weight:700;
}
.itickets-detail-summary__contact{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.itickets-detail-summary__contact-phone{
    font-size:12px;
    font-weight:500;
    color:#64748b;
}
.itickets-detail-summary__share{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.itickets-detail-summary__share-mode{
    font-size:13px;
    font-weight:800;
    color:#0f172a;
}
.itickets-detail-summary__share-note,
.itickets-detail-summary__empty{
    font-size:12px;
    color:#64748b;
}
.itickets-detail-summary__chips{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.itickets-detail-summary__chip{
    display:inline-flex;
    align-items:center;
    padding:4px 10px;
    border-radius:999px;
    background:#ecfdf5;
    border:1px solid #bbf7d0;
    color:#065f46;
    font-size:12px;
    font-weight:700;
}
.itickets-detail-summary__chip--group{
    background:#eff6ff;
    border-color:#bfdbfe;
    color:#1d4ed8;
}
.itickets-detail-summary__intervention-card{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:10px 12px;
    border-radius:12px;
    border:1.5px solid #dbeafe;
    background:linear-gradient(180deg,#eff6ff 0%,#fff 100%);
    width:100%;
    max-width:none;
    box-sizing:border-box;
}
.itickets-detail-summary__intervention-icon{font-size:18px;line-height:1}
.itickets-detail-summary__intervention-label{font-size:13px;font-weight:800;color:#1e40af}
.itickets-detail-summary__intervention-hint{font-size:11px;color:#64748b;line-height:1.35}
.itickets-detail__body{
    display:flex;
    flex-direction:column;
    gap:16px;
    width:100%;
    margin-top:14px;
}
.itickets-detail__section{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
}
.itickets-detail__section-title{
    margin:0;
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#334155;
}
/* Accento colorato a sinistra del titolo: rende immediatamente riconoscibile
   l'inizio di ogni area del dettaglio. */
.itickets-detail__section-title::before{
    content:"";
    width:4px;
    height:16px;
    border-radius:999px;
    background:linear-gradient(180deg,#6366f1,#7c3aed);
    flex:0 0 auto;
}
.itickets-detail__section-body{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-width:0;
}
.itickets-detail__note{
    padding:12px 14px;
    border-radius:12px;
    background:#fff;
    border:1px solid #e2e8f0;
}
.itickets-detail__note-label{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#64748b;
    margin-bottom:8px;
}
.itickets-detail__tools{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    align-items:stretch;
}
.itickets-detail__tools--solo{grid-template-columns:1fr}
/* Riga a due colonne sotto il riepilogo: descrizione (sx) + allegati/materiali (dx) */
.itickets-detail__cols{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:16px;
    align-items:stretch;
}
.itickets-detail__col{min-width:0}
.itickets-detail__col--desc{display:flex}
.itickets-detail__col--tools{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.itickets-detail__desc-block{
    padding:12px 14px;
    border-radius:12px;
    background:#fff;
    border:1px solid #e2e8f0;
}
/* La colonna descrizione si allunga fino all'altezza della colonna destra:
   il blocco e l'editor crescono per riempire lo spazio disponibile. */
.itickets-detail__col--desc .itickets-detail__desc-block{
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
}
.itickets-detail__desc-block .itickets-detail__label{margin-bottom:8px;flex:0 0 auto}
.itickets-detail__desc-block .itickets-textarea{width:100%}
.itickets-detail__desc-block .itickets-textarea--note{flex:1 1 auto;min-height:280px}
.itickets-detail__desc-block .tox-tinymce{flex:1 1 auto!important;height:auto!important;min-height:280px}
.itickets-detail__desc-block .itickets-detail__text{flex:1 1 auto}
.itickets-detail__desc-actions{flex:0 0 auto}
.itickets-detail__desc-actions{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:8px;
}
.itickets-detail__desc-status{font-size:12px;color:#64748b}
.itickets-detail__desc-status.is-ok{color:#16a34a}
.itickets-detail__desc-status.is-err{color:#dc2626}
.itickets-detail__text--empty{color:#94a3b8;font-style:italic}
@media (max-width:860px){
    .itickets-detail__cols{grid-template-columns:1fr}
}
.itickets-detail__section--work .itickets-subtasks,
.itickets-detail__section--work .itickets-timer,
.itickets-detail__section--work .itickets-attachments-block{
    margin-bottom:0;
}
.itickets-detail__section--work .itickets-subtasks{
    background:#fff;
    border:1px solid #e2e8f0;
    box-shadow:none;
}
.itickets-detail__section--work .itickets-timer{
    height:100%;
    display:flex;
    flex-direction:column;
    margin-bottom:0;
    box-sizing:border-box;
}
.itickets-detail__section--work .itickets-timer__actions{margin-top:auto}
.itickets-detail__section--work .itickets-attachments-block{
    height:100%;
    box-sizing:border-box;
    padding:12px 14px;
    border-radius:12px;
    background:#fff;
    border:1px solid #e2e8f0;
}
.itickets-comments-panel{
    padding:14px 16px;
    border-radius:12px;
    background:#fff;
    border:1px solid #e2e8f0;
    border-left:3px solid #f59e0b;
    margin-top:2px;
}
/* Sottotask come ultimo blocco del dettaglio: accento dedicato per renderlo
   distinguibile a colpo d'occhio dalle altre aree. */
.itickets-detail__body > .itickets-subtasks{
    border-left:3px solid #7c3aed;
    margin-bottom:0;
}
.itickets-comments-panel__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:12px;
}
.itickets-comments-panel__title{
    margin:0;
    font-size:12px;
    font-weight:800;
    color:#0f172a;
    letter-spacing:.02em;
}
.itickets-comments-panel__count{
    font-size:11px;
    font-weight:800;
    color:#64748b;
    background:#f1f5f9;
    padding:2px 8px;
    border-radius:999px;
}
.itickets-comments-panel__list{
    display:flex;
    flex-direction:column;
    gap:8px;
    max-height:min(320px,42vh);
    overflow-y:auto;
    margin-bottom:12px;
    padding-right:2px;
}
.itickets-comments-panel__empty{
    margin:0 0 12px;
    font-size:13px;
    color:#94a3b8;
    line-height:1.45;
}
.itickets-comments-panel__compose{
    padding-top:12px;
    border-top:1px solid #f1f5f9;
    margin-bottom:0;
}
.itickets-detail__label{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#64748b;
    margin-bottom:6px;
}
.itickets-detail__text{
    font-size:13px;
    line-height:1.55;
    color:#475569;
    margin-bottom:12px;
}
.itickets-detail__meta{margin-bottom:12px}
.itickets-detail__chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 10px;
    border-radius:999px;
    background:#f1f5f9;
    color:#475569;
    font-size:12px;
    font-weight:600;
}
.itickets-comments{display:flex;flex-direction:column;gap:8px}
.itickets-comment{
    padding:10px 12px;
    border-radius:8px;
    background:#fff;
    border:1px solid #e2e8f0;
}
.itickets-comment__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:6px;
    font-size:12px;
}
.itickets-comment__meta{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:10px;
    flex:1;
    min-width:0;
}
.itickets-comment__delete-form{margin:0;flex-shrink:0}
.itickets-comment__delete{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;height:28px;
    padding:0;
    border:1px solid transparent;
    border-radius:8px;
    background:transparent;
    color:#94a3b8;
    font-size:14px;
    line-height:1;
    cursor:pointer;
    transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.itickets-comment__delete:hover{
    background:#fef2f2;
    border-color:#fecaca;
    color:#dc2626;
}
.itickets-comment__head time{color:#94a3b8;font-weight:500}
.itickets-comment p{margin:0;font-size:13px;line-height:1.45;color:#475569}
.itickets-comment-form{
    display:flex;
    gap:8px;
    align-items:center;
    width:100%;
}
.itickets-comment-form .itickets-input{
    flex:1;
    min-width:0;
}
.itickets-empty{
    text-align:center;
    padding:56px 24px;
    color:#64748b;
}
.itickets-empty__icon{font-size:42px;margin-bottom:12px}
.itickets-empty h3{margin:0 0 8px;font-size:18px;color:#0f172a}
.itickets-empty p{margin:0 0 18px;font-size:14px;line-height:1.5}
.itickets-modal{
    position:fixed;
    inset:0;
    z-index:12000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    /* Scrim leggero: oscura la pagina sotto, senza blur né pannello pieno */
    background:rgba(15,23,42,.45);
    backdrop-filter:none;
}
.itickets-modal[hidden]{display:none!important}
.itickets-modal__dialog{
    width:min(840px,100%);
    max-height:calc(100dvh - 40px);
    overflow:auto;
    padding:0;
    background:transparent;
    box-shadow:none;
}
.itickets-modal__dialog--sm{width:min(540px,100%)}
.itickets-modal__dialog.itickets-create-modal,
.itickets-modal__dialog.itickets-edit-modal{width:min(1080px,94vw)}

/* Modale wizard sottotask */
.itickets-modal__dialog.itickets-subtask-modal{width:min(820px,96vw)}
.itickets-subtask-modal .itickets-subtask-modal__intervention{display:block}
.itickets-subtask-modal .itickets-subtask-modal__intervention .itickets-edit-field__label{display:block;margin-bottom:8px}
.itickets-subtask-modal .itickets-textarea--note{width:100%;min-height:240px}
.itickets-subtask-modal .itickets-subtask-modal__parent{
    display:block;
    margin-top:6px;
    font-size:12.5px;
    font-weight:600;
    color:rgba(255,255,255,.85);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.itickets-subtask-modal .itickets-subtask-modal__body{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:18px 22px 8px;
}
.itickets-subtask-modal .itickets-subtask-modal__field--full{width:100%}
.itickets-subtask-modal .itickets-subtask-modal__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 16px;
}
.itickets-subtask-modal .itickets-subtask-modal__grid .itickets-edit-field{margin:0}
@media (max-width:560px){
    .itickets-subtask-modal .itickets-subtask-modal__grid{grid-template-columns:1fr}
}
.itickets-category-modal{
    background:#fff;
    border-radius:16px;
    border:1px solid #e2e8f0;
    box-shadow:0 24px 48px rgba(15,23,42,.2);
    overflow:hidden;
}
.itickets-category-modal__form{
    padding:16px 18px 12px;
}
.itickets-category-modal__delete{
    padding:0 18px 14px;
    border-top:1px solid #f1f5f9;
}
.itickets-category-modal__delete-hint{
    margin:0;
    padding:0 18px 16px;
    font-size:12px;
    line-height:1.45;
    color:#b45309;
}
.itickets-category-modal .itickets-field{margin-bottom:12px}
.itickets-category-modal .itickets-form__actions{
    margin-top:4px;
    padding-top:12px;
    border-top:1px solid #f1f5f9;
}
.itickets-modal__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 18px;
    border-bottom:1px solid var(--border);
}
.itickets-modal__head h3{margin:0;font-size:16px;font-weight:700}
.itickets-alert{
    margin:0 0 14px;
    padding:10px 14px;
    border-radius:10px;
    font-size:13px;
    line-height:1.45;
}
.itickets-alert--warning{
    background:#fffbeb;
    border:1px solid #fde68a;
    color:#92400e;
}
body.itickets-modal-open{overflow:hidden}
@media (max-width:1100px){
    .itickets-command-bar__main{
        grid-template-columns:1fr;
        align-items:stretch;
    }
    .itickets-command-bar__actions{
        justify-self:stretch;
        flex-wrap:wrap;
    }
    .itickets-search--compact{max-width:none;flex:1 1 200px}
    .itickets-filters__line{
        flex-direction:column;
        align-items:stretch;
        gap:8px;
    }
    .itickets-filters__cluster{
        width:100%;
    }
    .itickets-filters__sep{display:none}
    .itickets-filters__client{
        margin-left:0;
        width:100%;
    }
    .itickets-filters__client-search{
        flex:1;
        width:auto;
        max-width:none;
    }
    .itickets-filters__pickers{
        width:100%;
    }
    .itickets-filters__actions{
        width:100%;
        justify-content:space-between;
    }
}
@media (max-width:960px){
    .itickets,.itickets.is-cats-collapsed{grid-template-columns:1fr}
    .itickets-sidebar{position:static}
    .itickets-form__grid--2,.itickets-form__grid--3,.itickets-planning__grid{grid-template-columns:1fr}
    .odl-preview__meta{grid-template-columns:1fr}
    .odl-preview__title{font-size:20px}
    .itickets-toolbar{flex-direction:column;align-items:stretch}
    .itickets-command-bar__nav{flex-direction:column;align-items:flex-start}
    .itickets-command-bar__nav-divider{display:none}
    .itickets-search{max-width:none;margin-left:0}
    .itickets-table-wrap{overflow-x:auto}
    .itickets-table{min-width:980px}
    .itickets-detail__inner{padding:14px 16px 16px}
    .itickets-detail-summary__grid{grid-template-columns:1fr}
    .itickets-timer-hero__inner{
        grid-template-columns:1fr;
        justify-items:stretch;
        text-align:center;
    }
    .itickets-timer-hero__meta-top{justify-content:center}
    .itickets-timer-hero__actions{justify-content:center}
    .itickets-detail__tools{grid-template-columns:1fr}
}
@media (min-width:1100px){
    .itickets-detail-summary__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* Task board — sidebar categorie */
.tasks-board-layout{
    display:grid;
    grid-template-columns:240px minmax(0,1fr);
    gap:16px;
    align-items:start;
}
.tasks-board-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.tasks-board-sidebar{padding:16px;position:sticky;top:12px}
.tasks-board-sidebar__title{margin:0;font-size:14px;font-weight:700;color:#0f172a}
.tasks-board-sidebar__head{margin-bottom:10px}
.tasks-board-sidebar__foot{margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}
.tasks-board-sidebar__new-cat{width:100%}
.tasks-board-cats__group-label{
    margin:10px 0 4px;
    padding:0 8px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#94a3b8;
}
.tasks-board-cat-row{
    display:flex;
    align-items:center;
    gap:2px;
    border-radius:10px;
}
.tasks-board-cat-row.is-active{background:#eff6ff}
.tasks-board-cat-row__link{flex:1;min-width:0}
.tasks-board-cat-row__edit{
    flex-shrink:0;
    border:none;
    background:transparent;
    cursor:pointer;
    padding:4px 6px;
    font-size:12px;
    opacity:.55;
    border-radius:6px;
}
.tasks-board-cat-row__edit:hover{opacity:1;background:#f1f5f9}
.settings-task-cat-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.settings-task-cat-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border:1px solid #f1f5f9;
    border-radius:10px;
    background:#fafbfc;
}
.settings-task-cat-item__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.settings-task-cat-item__name{flex:1;font-weight:600;color:#1e293b}
.settings-task-cat-item__actions{display:flex;gap:6px;flex-shrink:0}
.settings-billing-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:13px}
.settings-billing-table th,.settings-billing-table td{padding:10px 12px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:middle}
.settings-billing-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:700}
.settings-billing-table__actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.settings-grid-span-2{grid-column:1 / -1}
.settings-block--issuer{margin-bottom:0}

/* --- Settings v2: layout laterale, fatturazione, code panels --- */
.settings-shell--v2{padding:0;overflow:hidden}
.settings-layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:520px}
.settings-nav{
    padding:24px 18px 28px;
    border-right:1px solid rgba(148,163,184,.22);
    background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
    display:flex;flex-direction:column;gap:20px;
}
.settings-nav__title{margin:0;font-size:1.35rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}
.settings-nav__subtitle{margin:6px 0 0;font-size:12px;color:#64748b;line-height:1.45}
.settings-nav__list{display:flex;flex-direction:column;gap:6px}
.settings-nav__item{
    display:flex;align-items:center;gap:12px;width:100%;
    padding:12px 14px;border:1px solid transparent;border-radius:14px;
    background:transparent;color:#475569;cursor:pointer;text-align:left;
    transition:background .15s,border-color .15s,box-shadow .15s;
}
.settings-nav__item:hover{background:#fff;border-color:rgba(148,163,184,.28);box-shadow:0 4px 12px rgba(15,23,42,.05)}
.settings-nav__item.active{
    background:linear-gradient(135deg,#eff6ff,#fff);
    border-color:rgba(59,130,246,.35);
    box-shadow:0 8px 20px rgba(37,99,235,.12);
    color:#1e3a8a;
}
.settings-nav__icon{
    width:36px;height:36px;border-radius:10px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    background:#fff;border:1px solid rgba(148,163,184,.22);
    font-size:16px;
}
.settings-nav__item.active .settings-nav__icon{background:#2563eb;border-color:transparent;color:#fff}
.settings-nav__text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.settings-nav__text strong{font-size:13px;font-weight:700;color:inherit}
.settings-nav__text small{font-size:11px;color:#64748b;font-weight:500;line-height:1.3}
.settings-nav__item.active .settings-nav__text small{color:#3b82f6}
.settings-nav__badge{
    font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;
    background:#dbeafe;color:#1d4ed8;flex-shrink:0;
}
.settings-main{padding:24px 28px 32px;display:flex;flex-direction:column;gap:18px;min-width:0}
.settings-pane-head{margin:0 0 4px}
.settings-pane-head h3{margin:0 0 6px;font-size:1.25rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}
.settings-pane-head p{margin:0;font-size:13px;color:#64748b;line-height:1.5;max-width:640px}
.settings-pane-head p strong{color:#334155}
.settings-form__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px}
.settings-block h4{margin:0 0 4px;font-size:1rem;font-weight:700;color:#0f172a}
.settings-block--muted{background:#f8fafc;box-shadow:none}
.settings-cron{font-size:13px;line-height:1.55;color:#475569}
.settings-cron p{margin:0 0 10px}
.settings-code-block{
    display:block;margin:8px 0 12px;padding:12px 14px;border-radius:10px;
    background:#0f172a;color:#e5e7eb;font-size:12px;overflow:auto;
    font-family:"SFMono-Regular",Consolas,Menlo,monospace;
}
.settings-toast{
    display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;
    font-size:13px;font-weight:600;animation:settingsToastIn .25s ease;
}
.settings-toast.is-hiding{opacity:0;transform:translateY(-4px);transition:opacity .4s,transform .4s}
.settings-toast--ok{background:#ecfdf5;border:1px solid #86efac;color:#166534}
.settings-toast--error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}
.settings-toast__icon{
    width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:800;flex-shrink:0;
}
.settings-toast--ok .settings-toast__icon{background:#16a34a;color:#fff}
.settings-toast--error .settings-toast__icon{background:#dc2626;color:#fff}
@keyframes settingsToastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.settings-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:0}
.settings-kpi-row--compact{margin-bottom:0}
.settings-kpi{
    padding:14px 16px;border:1px solid rgba(148,163,184,.22);border-radius:14px;
    background:#fff;display:flex;flex-direction:column;gap:4px;
}
.settings-kpi__label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:700}
.settings-kpi__value{font-size:1.35rem;font-weight:800;color:#0f172a;line-height:1.2}
.settings-kpi__hint{font-size:11px;color:#64748b}
.settings-billing-intro{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
    padding:14px 16px;border-radius:14px;border:1px solid rgba(59,130,246,.2);
    background:linear-gradient(135deg,#eff6ff,#f8fafc);
}
.settings-billing-intro__link{font-size:13px;font-weight:700;color:#1d4ed8;text-decoration:none}
.settings-billing-intro__link:hover{text-decoration:underline}
.settings-filemaker-block{margin-bottom:0}
.settings-billing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.settings-code-panel{
    border:1px solid rgba(148,163,184,.24);border-radius:18px;background:#fff;
    box-shadow:0 10px 28px rgba(15,23,42,.06);padding:18px 20px;display:flex;flex-direction:column;gap:14px;
}
.settings-code-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.settings-code-panel__head h4{margin:0;font-size:1rem;font-weight:700;color:#0f172a}
.settings-code-panel__head .subtle{margin:4px 0 0;font-size:12px;max-width:360px}
.settings-code-panel__toolbar{display:flex;gap:8px}
.settings-code-search{
    width:100%;padding:9px 12px;border:1px solid #e2e8f0;border-radius:10px;
    font-size:13px;background:#f8fafc;
}
.settings-code-search:focus{outline:none;border-color:#93c5fd;background:#fff;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.settings-code-form-wrap{
    padding:14px 16px;border-radius:14px;border:2px solid rgba(59,130,246,.35);
    background:linear-gradient(180deg,#eff6ff,#fff);
}
.settings-code-form{display:flex;flex-direction:column;gap:14px}
.settings-code-form__title{font-size:13px;font-weight:800;color:#1d4ed8;text-transform:uppercase;letter-spacing:.04em}
.settings-code-form__actions{display:flex;justify-content:flex-end;gap:8px}
.settings-code-form__switch{display:flex;align-items:flex-end}
.settings-code-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto}
.settings-code-card{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;
    transition:border-color .15s,box-shadow .15s,background .15s;
}
.settings-code-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.settings-code-card.is-editing{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.settings-code-card.is-inactive{opacity:.72}
.settings-code-card__main{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.settings-code-card__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.settings-code-card__name{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-code-card__desc,.settings-code-card__rate{font-size:11px;color:#64748b}
.settings-code-card__rate{font-weight:700;color:#1d4ed8}
.settings-code-card__actions{display:flex;gap:6px;flex-shrink:0}
.settings-code-badge{
    display:inline-flex;align-items:center;justify-content:center;min-width:44px;
    padding:5px 10px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0;
    font-family:"SFMono-Regular",Consolas,Menlo,monospace;font-size:12px;font-weight:700;color:#334155;flex-shrink:0;
}
.settings-code-badge--vat{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.settings-code-status{
    font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
    padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;flex-shrink:0;
}
.settings-code-status.is-active{background:#dcfce7;color:#166534}
.settings-code-empty{
    padding:28px 16px;text-align:center;border:1px dashed #cbd5e1;border-radius:12px;
    background:#f8fafc;color:#64748b;font-size:13px;display:flex;flex-direction:column;gap:10px;align-items:center;
}
.settings-code-empty-search{margin:0;font-size:12px;text-align:center}
.settings-color-field{display:flex;align-items:center;gap:10px}
.settings-color-field input[type="color"]{width:48px;height:38px;padding:2px;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer}
.settings-color-preview{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #e2e8f0}
.settings-task-cat-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(148,163,184,.35)}
.settings-code-card--category .settings-code-card__main{gap:10px}
@media (max-width: 1100px){
    .settings-billing-grid{grid-template-columns:1fr}
}
@media (max-width: 900px){
    .settings-layout{grid-template-columns:1fr}
    .settings-nav{border-right:none;border-bottom:1px solid rgba(148,163,184,.22);padding:18px 16px}
    .settings-nav__list{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:4px}
    .settings-nav__item{min-width:200px;flex-shrink:0}
    .settings-main{padding:18px 16px 24px}
    .settings-code-list{max-height:none}
}
.inline-form{display:inline;margin:0}
@media (max-width:1100px){
    .tasks-board-layout{grid-template-columns:1fr}
    .tasks-board-sidebar{position:static}
}

/* ===== Pre-fatturazione (billing drafts) ===== */
.billing-page{
    width:100%;
    max-width:none;
    margin:0;
    margin-right:auto;
    color:#0f172a;
    box-sizing:border-box;
}
/* Editor Pro Forma / fatture / DDT — foglio A4 allineato al menu (no centratura) */
.billing-page--editor{
    max-width:var(--app-content-max-width);
    width:100%;
    margin:0;
    margin-right:auto;
}
.billing-page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.billing-page__head-actions{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
/* Hub documenti — header riprogettato */
.billing-hub{margin-bottom:10px}
.billing-hub--documenti{margin-bottom:12px}
.billing-hub--documenti .billing-hub__top{margin-bottom:6px}
.billing-hub--documenti .billing-page__title{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
.billing-hub--documenti .billing-hub__lede-short{color:#64748b;font-size:12px;font-weight:500}
.billing-page--documenti .billing-hub--documenti{margin-bottom:8px}
.billing-hub--documenti .doc-hub-strip .doc-tabs-bar.adm-tabs-bar{margin-bottom:10px}
.billing-hub__panel--documenti{
    margin-top:8px;padding:8px 12px;gap:10px 14px;
    background:linear-gradient(180deg,#fff 0%,#fafbfc 100%);
    border-color:#e8ecf1
}
.billing-hub__panel--documenti .billing-doc-commands__group .btn.small{
    height:30px;padding:0 12px;font-size:12px;font-weight:600;border-radius:8px
}
.billing-hub__top{margin-bottom:8px}
.billing-hub__intro{min-width:0}
.billing-hub__title-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap
}
/* Titolo + sottotitolo insieme (data-page-title): il JS della topbar li sposta come
   un unico blocco, così il sottotitolo resta sempre incollato sotto il titolo, sia
   qui in pagina che una volta trasferiti nella topbar fixed. */
.billing-hub__title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}
.billing-hub .billing-page__title{font-size:20px;line-height:1.2}
.billing-hub__lede{margin:3px 0 0;font-size:12px;line-height:1.4;color:#64748b;max-width:none}
.billing-hub__lede a{color:#2563eb;text-decoration:none;font-weight:600}
.billing-hub__lede a:hover{text-decoration:underline}
.billing-hub__title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.billing-doc-cycle-info{position:relative;display:inline-flex;align-items:center}
.billing-doc-cycle-info__btn{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;
  border-radius:50%;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:12px;font-weight:800;
  line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s
}
.billing-doc-cycle-info__btn:hover,.billing-doc-cycle-info__btn.is-open{
  border-color:#6366f1;background:#eef2ff;color:#4338ca;box-shadow:0 1px 3px rgba(99,102,241,.2)
}
.billing-doc-cycle-info__icon{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:700}

.billing-doc-commands{
  display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;
  margin:.75rem 0 1rem;padding:.65rem .85rem;
  background:var(--surface-2, #f8fafc);border:1px solid var(--border-subtle, #e2e8f0);border-radius:10px;
}
.billing-hub__panel--documenti .billing-doc-commands{
  flex-wrap:nowrap;align-items:center;gap:10px 12px;
  margin:0;padding:0;background:transparent;border:none;border-radius:0;
  width:100%;min-width:0
}
.billing-doc-commands__main{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;flex:0 0 auto;min-width:0;max-width:100%
}
.billing-hub__panel--documenti .billing-doc-commands__main{flex-wrap:nowrap;flex-shrink:0}
.billing-doc-commands__transforms{
  flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end
}
.billing-doc-commands__transforms:empty{display:none}
.billing-doc-commands__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #64748b)}
.billing-doc-commands__group{display:flex;flex-wrap:wrap;gap:.35rem}
.billing-hub__panel--documenti .billing-doc-commands__group{flex-wrap:nowrap}
.billing-doc-commands__hint{font-size:.8125rem;color:var(--text-muted, #64748b);flex:1 1 12rem;min-width:10rem}
.billing-hub__panel--documenti .billing-doc-commands__hint{
  flex:0 1 auto;min-width:0;max-width:200px;margin:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.billing-hub__panel--documenti.billing-doc-commands--transform-active .billing-doc-commands__hint{display:none}
.billing-doc-commands .btn:disabled{opacity:.45;cursor:not-allowed}
.billing-grid-row.is-doc-cmd-focus{outline:2px solid var(--accent, #2563eb);outline-offset:-2px}
.billing-doc-row-cmd{display:flex;flex-wrap:wrap;gap:.2rem .25rem;justify-content:flex-end}
.billing-doc-row-cmd .btn.tiny{padding:.2rem .45rem;font-size:.72rem}
.billing-doc-cycle--source{display:none!important}
.billing-doc-cycle{
  max-width:min(420px,calc(100vw - 24px));padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;
  background:#fff;font-size:12px;line-height:1.45;color:#475569;box-shadow:0 8px 24px rgba(15,23,42,.12)
}
.billing-doc-cycle--popover{
  position:fixed;z-index:10050;margin:0;box-sizing:border-box
}
.billing-doc-cycle__title{margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#334155}
.billing-doc-cycle__list{margin:0;padding-left:1.15rem;display:flex;flex-direction:column;gap:6px}
.billing-doc-cycle__list li{padding-left:2px}
.billing-doc-cycle__list strong{color:#0f172a;font-weight:700}
.billing-doc-cycle em{font-style:normal;color:#64748b;font-weight:600}
.billing-hub__back{flex-shrink:0;margin-left:auto}
/* Nella topbar il sottotitolo va compattato su una riga sola (spazio limitato). */
.topbar-app__title .billing-hub__title-wrap{gap:0}
.topbar-app__title .billing-hub__lede{
    margin:0;font-size:11px;line-height:1.2;color:#94a3b8;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px
}
.billing-hub--documenti .topbar-app__title .billing-hub__lede,
.topbar-app__title .billing-hub--documenti .billing-hub__lede{max-width:min(420px,55vw)}
.billing-hub__panel{
    display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;
    padding:8px 12px;border:1px solid #e2e8f0;border-radius:10px;
    background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04)
}
.billing-hub__create-block{min-width:0;flex:1 1 340px}
.billing-hub__create-label{
    flex-shrink:0;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b;
    padding:0 2px;white-space:nowrap
}
.billing-hub__create-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.billing-hub__client{flex:1 1 180px;max-width:280px;min-width:160px}
.billing-hub__create-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.billing-hub__create-actions form{margin:0}
.billing-hub__btn-ddt{border-color:#cbd5e1}
.billing-hub__flow{
    display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;
    padding:0;border:none;background:transparent;flex:1 1 240px;min-width:0
}
.billing-hub__flow-step{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#64748b;line-height:1.2;white-space:nowrap}
.billing-hub__flow-num{
    display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;
    background:#f1f5f9;border:1px solid #e2e8f0;font-size:9px;font-weight:800;color:#6366f1;flex-shrink:0
}
.billing-hub__flow-arrow{color:#cbd5e1;font-size:10px;font-weight:700}
.billing-hub__panel--compact .billing-hub__flow{display:none}
.billing-merge-toggle{
    display:flex;align-items:center;gap:10px;flex-wrap:nowrap;margin:0;padding:6px 12px;
    border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;
    align-self:center;min-height:0;box-sizing:border-box
}
.billing-merge-toggle.is-on{border-color:#c7d2fe;background:#eef2ff}
.billing-merge-toggle__badge{
    display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#4338ca;
    background:#e0e7ff;border-radius:999px;padding:3px 10px;white-space:nowrap;line-height:1.2
}
.billing-merge-toggle__legend{
    display:inline-flex;align-items:center;gap:6px;flex-shrink:0
}
.billing-merge-toggle__legend-item{
    display:inline-flex;align-items:center;font-size:10px;font-weight:800;letter-spacing:.04em;
    text-transform:uppercase;border-radius:6px;padding:2px 7px;line-height:1.2;border:1px solid transparent
}
.billing-merge-toggle__legend-item--cons{
    background:#ecfdf5;color:#047857;border-color:#a7f3d0
}
.billing-merge-toggle__legend-item--ddt{
    background:#fff7ed;color:#c2410c;border-color:#fed7aa
}
.billing-merge-toggle__hint{
    font-size:12px;color:#64748b;flex:1 1 auto;min-width:0;
    display:inline-flex;align-items:center;line-height:1.2;margin:0
}
.billing-merge-toggle__btn{
    display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#4338ca;
    background:#fff;border:1px solid #c7d2fe;border-radius:8px;padding:0 12px;height:30px;white-space:nowrap;
    text-decoration:none;flex-shrink:0;line-height:1;box-sizing:border-box;
    transition:background .15s ease,box-shadow .15s ease
}
.billing-merge-toggle__btn:hover{background:#eef2ff;box-shadow:0 1px 3px rgba(67,56,202,.15)}
.billing-merge-toggle__btn--off{color:#64748b;border-color:#e2e8f0}
.billing-merge-toggle__btn--off:hover{background:#f1f5f9}
.billing-hub__panel .doc-stats{
    margin:0;flex:1 1 420px;min-width:0;align-self:center;margin-left:0
}
.billing-table-toolbar__filters{
    flex:1 1 auto;min-width:0;max-width:100%;order:0
}
.billing-table-card--documenti{padding:12px 14px 14px;border-radius:14px;border-color:#e8ecf1}
.billing-table-card--documenti .billing-table-toolbar{
    gap:0;margin-bottom:8px
}
.billing-table-toolbar__filters-row{
    width:100%;margin-bottom:4px
}
.billing-table-toolbar__actions-row{
    display:flex;width:100%;align-items:center;gap:10px;flex-wrap:wrap;
    padding-top:8px;border-top:1px solid #eef2f6
}
.billing-table-toolbar__actions-row .billing-table-toolbar__row--documenti{
    flex:1 1 auto;min-width:0;margin:0;padding:0;border:none
}
.billing-table-toolbar__row--documenti{
    flex-wrap:wrap;align-items:center;gap:8px 10px
}
.billing-table-toolbar__row--documenti .doc-stats{
    margin:0;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none
}
.billing-table-toolbar__filters-row .doc-stats{
    margin:0;width:100%
}
.billing-table-toolbar__row--documenti .doc-saved-filters-wrap{
    position:relative;flex:0 0 auto
}
.doc-saved-filters-trigger .doc-saved-filters-trigger__icon{color:#eab308;font-size:12px;line-height:1}
.doc-saved-filters-trigger.is-active{
    border-color:#c7d2fe;background:#eef2ff;color:#3730a3
}
.doc-saved-filters-dropdown{
    position:absolute;top:calc(100% + 4px);right:0;z-index:1000;min-width:240px;max-width:320px;
    background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.12);
    overflow:hidden
}
.doc-saved-filters-dropdown[hidden]{display:none!important}
.doc-saved-filters-list{max-height:280px;overflow-y:auto;padding:4px}
.doc-saved-filters-empty{margin:8px 10px;font-size:12px;color:#64748b}
.doc-saved-filters-foot{padding:8px 10px;border-top:1px solid #e8edf3;background:#f8fafc}
.doc-saved-filter-item{
    display:block;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .12s ease
}
.doc-saved-filter-item:hover{background:#f1f5f9}
.doc-saved-filter-item.is-active{background:#eef2ff}
.doc-saved-filter-body{display:flex;align-items:flex-start;gap:8px}
.doc-saved-filter-check{
    flex:0 0 auto;width:18px;height:18px;border-radius:999px;border:1px solid #cbd5e1;
    display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:transparent
}
.doc-saved-filter-item.is-active .doc-saved-filter-check{
    background:#4f46e5;border-color:#4f46e5;color:#fff
}
.doc-saved-filter-info{flex:1 1 auto;min-width:0}
.doc-saved-filter-name{font-size:13px;font-weight:700;color:#0f172a;line-height:1.25}
.doc-saved-filter-date{font-size:11px;color:#94a3b8;margin-top:2px}
.doc-saved-filter-delete{
    flex:0 0 auto;border:none;background:transparent;color:#94a3b8;font-size:18px;line-height:1;
    cursor:pointer;padding:0 2px;border-radius:4px
}
.doc-saved-filter-delete:hover{color:#dc2626;background:#fef2f2}
/* Profili vista colonne (Viste) — accanto a Colonne su tutte le griglie */
.tasks-column-profiles-wrap{
    position:relative;
    flex:0 0 auto;
}
.tasks-column-profiles-wrap .tasks-columns-trigger.is-active{
    border-color:#c7d2fe;
    background:#eef2ff;
    color:#3730a3;
}
.tasks-column-profiles-dropdown{
    position:absolute;
    top:calc(100% + 4px);
    right:0;
    z-index:1000;
    min-width:240px;
    max-width:320px;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:10px;
    box-shadow:0 8px 24px rgba(15,23,42,.12);
    overflow:hidden;
}
.tasks-column-profiles-dropdown[hidden]{display:none!important}
.tasks-column-profiles-list{max-height:280px;overflow-y:auto;padding:4px}
.tasks-column-profiles-empty{margin:8px 10px;font-size:12px;color:#64748b;line-height:1.4}
.tasks-column-profiles-foot{
    padding:8px 10px;
    border-top:1px solid #e8edf3;
    background:#f8fafc;
}
.tasks-column-profile-item{
    display:flex;
    align-items:center;
    gap:4px;
    padding:2px;
    border-radius:8px;
}
.tasks-column-profile-item:hover{background:#f1f5f9}
.tasks-column-profile-item.is-active{background:#eef2ff}
.tasks-column-profile-body{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border:none;
    background:transparent;
    cursor:pointer;
    text-align:left;
    border-radius:8px;
}
.tasks-column-profile-check{
    flex:0 0 auto;
    width:18px;
    height:18px;
    border-radius:999px;
    border:1px solid #cbd5e1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    color:transparent;
}
.tasks-column-profile-item.is-active .tasks-column-profile-check{
    background:#4f46e5;
    border-color:#4f46e5;
    color:#fff;
}
.tasks-column-profile-info{flex:1 1 auto;min-width:0}
.tasks-column-profile-name{
    display:block;
    font-size:13px;
    font-weight:700;
    color:#0f172a;
    line-height:1.25;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.tasks-column-profile-delete{
    flex:0 0 auto;
    border:none;
    background:transparent;
    color:#94a3b8;
    font-size:18px;
    line-height:1;
    cursor:pointer;
    padding:4px 6px;
    border-radius:4px;
}
.tasks-column-profile-delete:hover{color:#dc2626;background:#fef2f2}
.billing-hub__panel .billing-merge-toggle{
    flex:0 1 auto;max-width:100%;margin-left:0;margin-right:0
}
.billing-hub__stats{
    display:flex;flex-direction:row;align-items:center;gap:10px 14px;flex-shrink:0;
    padding-left:12px;border-left:1px solid #e8edf3
}
.billing-hub__stat{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.billing-hub__stat-value{font-size:14px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;line-height:1}
.billing-hub__stat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}
.billing-hub__stat--muted .billing-hub__stat-value{color:#64748b}
.billing-merge-bar{
    display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:nowrap;
    margin-bottom:8px;padding:7px 10px;border-radius:8px;
    border:1px solid #bfdbfe;background:#eff6ff;
    box-shadow:none;animation:slideDown .2s ease-out
}
.billing-merge-bar[hidden]{display:none!important}
.billing-merge-bar--inline{
    margin-bottom:0;padding:5px 10px;border-radius:8px;
    animation:none;flex:1 1 auto;min-width:0;max-width:100%
}
.billing-merge-bar--inline:not([hidden]){
    display:flex
}
.billing-doc-commands__transforms .billing-merge-bar--inline .billing-merge-bar__text{
    flex-wrap:nowrap;overflow:hidden
}
.billing-doc-commands__transforms .billing-merge-bar--inline .billing-merge-bar__hint{
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0
}
@media (max-width:900px){
    .billing-hub__panel--documenti .billing-doc-commands{flex-wrap:wrap}
    .billing-doc-commands__transforms{flex:1 1 100%;justify-content:stretch}
}
.billing-merge-bar__info{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}
.billing-merge-bar__badge{
    display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;
    background:#2563eb;color:#fff;font-size:12px;font-weight:800;white-space:nowrap;flex-shrink:0
}
.billing-merge-bar__text{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:nowrap;overflow:hidden}
.billing-merge-bar__text strong{font-size:12px;font-weight:700;color:#0f172a;white-space:nowrap;flex-shrink:0}
.billing-merge-bar__hint{
    font-size:11px;font-weight:600;color:#64748b;line-height:1.3;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0
}
.billing-merge-bar__hint.is-ok{color:#059669}
.billing-merge-bar__hint.is-err{color:#dc2626}
.billing-merge-bar__form{display:flex;align-items:center;gap:6px;flex-shrink:0;margin:0}
.billing-merge-bar__form--multi{
  flex:0 0 auto;
  width:auto;
  flex-wrap:nowrap;
  justify-content:flex-end;
  gap:6px;
  margin-left:auto
}
.billing-merge-bar__form--multi .inline-form{display:inline-flex;margin:0}
.billing-merge-bar__form--multi .btn{
  white-space:nowrap;flex-shrink:0
}
.ordine-task-create-modal{
  position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;
  padding:12px;
  box-sizing:border-box;
}
.ordine-task-create-modal[hidden]{display:none!important}
.ordine-task-create-modal__backdrop{
  position:absolute;inset:0;background:rgba(15,23,42,.48);
}
.ordine-task-create-modal__dialog{
  position:relative;z-index:1;display:flex;flex-direction:column;
  width:min(1100px,calc(100vw - 24px));
  height:min(920px,calc(100vh - 24px));
  max-height:calc(100vh - 24px);
  background:#fff;border-radius:16px;border:1px solid #e2e8f0;
  box-shadow:0 24px 60px rgba(15,23,42,.28);overflow:hidden;
}
.ordine-task-create-modal__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:12px 14px;border-bottom:1px solid #e8edf3;background:#f8fafc;flex:0 0 auto;
}
.ordine-task-create-modal__head strong{font-size:14px;color:#0f172a}
.ordine-task-create-modal__sub{margin:2px 0 0;font-size:12px;color:#64748b}
.ordine-task-create-modal__close{
  width:32px;min-width:32px;height:32px;padding:0;border-radius:8px;font-size:18px;line-height:1;
}
.ordine-task-create-modal__frame{
  flex:1 1 auto;width:100%;border:0;background:#fff;min-height:0;
}
body.ordine-task-modal-open{overflow:hidden}
body.ordine-kind-modal-open{overflow:hidden}
.ordine-create-kind-modal{
  position:fixed;inset:0;z-index:12100;display:flex;align-items:center;justify-content:center;padding:16px;
}
.ordine-create-kind-modal[hidden]{display:none!important}
.ordine-create-kind-modal__backdrop{
  position:absolute;inset:0;background:rgba(15,23,42,.48);
}
.ordine-create-kind-modal__dialog{
  position:relative;z-index:1;width:min(520px,96vw);background:#fff;border-radius:16px;
  border:1px solid #e2e8f0;box-shadow:0 24px 60px rgba(15,23,42,.28);overflow:hidden;
}
.ordine-create-kind-modal__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:14px 16px;border-bottom:1px solid #e8edf3;background:#f8fafc;
}
.ordine-create-kind-modal__head strong{font-size:15px;color:#0f172a}
.ordine-create-kind-modal__sub{margin:4px 0 0;font-size:12px;color:#64748b;line-height:1.4}
.ordine-create-kind-modal__choices{
  display:grid;gap:10px;padding:14px 16px;
}
.ordine-create-kind-modal__choice{
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;
  text-align:left;padding:12px 14px;border-radius:12px;border:1px solid #dbe3ef;background:#fff;
  cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.ordine-create-kind-modal__choice:hover{
  border-color:#93c5fd;background:#f8fbff;box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.ordine-create-kind-modal__choice-icon{
  grid-row:1 / span 2;align-self:center;width:36px;height:36px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;background:#eff6ff;font-size:16px;
}
.ordine-create-kind-modal__choice-title{font-size:14px;font-weight:700;color:#0f172a}
.ordine-create-kind-modal__choice-desc{font-size:12px;color:#64748b;line-height:1.35}
.ordine-create-kind-modal__foot{
  display:flex;justify-content:flex-end;padding:0 16px 14px;
}
.embed-body .task-create-wrapper--from-ordine{padding:8px 10px 16px}
.embed-body .task-create-wrapper--from-ordine .task-create-card{box-shadow:none;border:0}
.embed-body .task-create-wrapper--from-ordine .task-create-header .btn{display:none}

/* Task da ordine in iframe: body scrollabile + footer sempre visibile */
html:has(.todo-create-from-ordine),
body.embed-body:has(.todo-create-from-ordine){
  height:100%;
  overflow:hidden;
  margin:0;
  background:#fff;
}
.todo-create-from-ordine{
  height:100%;
  max-height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  box-sizing:border-box;
}
.todo-create-from-ordine > .task-alert{
  flex:0 0 auto;
  margin:10px 12px 0!important;
}
.todo-create-from-ordine .itickets-create-modal--embed-page{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  max-height:none;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:0;box-shadow:none;border-radius:0;max-width:none;width:100%;margin:0;
}
.todo-create-from-ordine .itickets-create-modal__hero{
  flex:0 0 auto;padding:12px 16px;
}
.todo-create-from-ordine .itickets-create-modal__form{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  margin:0;
}
.todo-create-from-ordine .itickets-create-modal__body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:12px 16px 24px;
  -webkit-overflow-scrolling:touch;
}
.todo-create-from-ordine .itickets-create-modal__footer{
  position:static;
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top:1px solid #e8edf3;
  background:#fff;
  box-shadow:0 -6px 16px rgba(15,23,42,.06);
  z-index:2;
}

/* Richiesta da ordine in iframe: stesso schema anti-taglio */
html:has(.task-create-wrapper--from-ordine),
body.embed-body:has(.task-create-wrapper--from-ordine){
  height:100%;
  overflow:hidden;
  margin:0;
}
.embed-body .task-create-wrapper--from-ordine{
  height:100%;
  max-height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  padding:0;
  box-sizing:border-box;
}
.embed-body .task-create-wrapper--from-ordine > .task-alert{
  flex:0 0 auto;
  margin:10px 12px 0;
}
.embed-body .task-create-wrapper--from-ordine .task-create-card{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  margin:0;
  box-shadow:none;border:0;border-radius:0;
}
.embed-body .task-create-wrapper--from-ordine .task-create-header{
  flex:0 0 auto;
  padding:12px 14px;
}
.embed-body .task-create-wrapper--from-ordine .task-create-form{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.embed-body .task-create-wrapper--from-ordine .task-create-layout{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:0 12px 24px;
  -webkit-overflow-scrolling:touch;
}
.embed-body .task-create-wrapper--from-ordine .task-create-actions,
.embed-body .task-create-wrapper--from-ordine .task-form-actions{
  flex:0 0 auto;
  position:static;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top:1px solid #e8edf3;
  background:#fff;
  box-shadow:0 -6px 16px rgba(15,23,42,.06);
  z-index:2;
}

/* Dialog post-creazione documento (pre-fattura / fattura / create-empty) */
body.billing-after-create-open{overflow:hidden}
.billing-after-create{
    position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:20px 24px
}
.billing-after-create[hidden]{display:none!important}
.billing-after-create__backdrop{
    position:absolute;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(2px)
}
.billing-after-create__dialog{
    position:relative;z-index:1;width:min(440px,100%);
    background:#fff;border-radius:16px;border:1px solid #dbe3ee;
    box-shadow:0 28px 64px rgba(15,23,42,.22);padding:28px 28px 24px;
    display:flex;flex-direction:column;gap:20px
}
.billing-after-create__head{display:flex;align-items:flex-start;gap:14px}
.billing-after-create__icon{
    flex-shrink:0;width:40px;height:40px;border-radius:999px;
    display:inline-flex;align-items:center;justify-content:center;
    background:#ecfdf5;color:#059669;border:1px solid #a7f3d0;
    font-size:18px;font-weight:800;line-height:1
}
.billing-after-create__head-text{min-width:0;flex:1}
.billing-after-create__title{
    margin:0;font-size:18px;font-weight:800;color:#0f172a;letter-spacing:-.02em;line-height:1.25
}
.billing-after-create__message{
    margin:6px 0 0;font-size:13px;font-weight:500;color:#64748b;line-height:1.45
}
.billing-after-create__actions{
    display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end
}
.billing-after-create__actions .btn{min-width:0}
@media (max-width:520px){
    .billing-after-create{padding:16px}
    .billing-after-create__dialog{padding:22px 18px 18px}
    .billing-after-create__actions{flex-direction:column-reverse;align-items:stretch}
    .billing-after-create__actions .btn{width:100%;justify-content:center}
}

/* Scelta destinazione dopo elimina da scheda */
.billing-doc-delete-nav .billing-doc-delete-nav__dialog{
    width:min(420px,100%);
    gap:18px
}
.billing-doc-delete-nav__icon{
    background:#fef2f2;color:#b91c1c;border-color:#fecaca
}
.billing-doc-delete-nav__body{margin:0}
.billing-doc-delete-nav__legend{
    margin:0 0 10px;padding:0;
    font-size:12px;font-weight:700;color:#475569;letter-spacing:.02em;
    text-transform:uppercase
}
.billing-doc-delete-nav__choices{
    display:flex;flex-direction:column;gap:8px;margin:0;padding:0
}
.billing-doc-delete-nav__choice{
    display:flex;align-items:flex-start;gap:12px;
    margin:0;padding:12px 14px;
    border:1px solid #e2e8f0;border-radius:12px;background:#fff;
    cursor:pointer;box-sizing:border-box;
    transition:border-color .15s,background .15s,box-shadow .15s;
    justify-content:flex-start!important;
    width:100%;text-align:left
}
.billing-doc-delete-nav__choice:hover{
    border-color:#cbd5e1;background:#f8fafc
}
.billing-doc-delete-nav__choice.is-selected{
    border-color:#93c5fd;background:#eff6ff;
    box-shadow:0 0 0 1px #93c5fd
}
.billing-doc-delete-nav__choice.is-disabled{
    opacity:.55;cursor:not-allowed
}
.billing-doc-delete-nav__choice[hidden]{display:none!important}
.billing-doc-delete-nav__radio{
    flex:0 0 auto;margin:3px 0 0;width:16px;height:16px;
    accent-color:#2563eb;cursor:pointer
}
.billing-doc-delete-nav__choice-main{
    display:flex;flex-direction:column;align-items:stretch;gap:4px;
    min-width:0;flex:1 1 auto
}
.billing-doc-delete-nav__choice-title{
    display:block;font-size:13px;font-weight:700;color:#0f172a;line-height:1.3
}
.billing-doc-delete-nav__choice-desc{
    display:block;font-size:12px;font-weight:500;color:#64748b;line-height:1.35
}
.billing-doc-delete-nav__tab{
    display:block;width:auto;max-width:100%;min-width:160px;align-self:flex-start;
    height:34px;margin-top:6px;padding:0 10px;box-sizing:border-box;
    border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;
    font-size:13px;font-weight:600
}
.billing-doc-delete-nav__choice.is-selected .billing-doc-delete-nav__tab{
    border-color:#93c5fd;background:#fff
}
.billing-doc-delete-nav__tab:disabled{
    opacity:.45;cursor:not-allowed;background:#f1f5f9
}
.billing-doc-delete-nav .billing-after-create__actions{
    margin-top:2px;padding-top:14px;border-top:1px solid #eef2f7
}
.billing-doc-delete-nav .billing-after-create__actions .btn.primary{
    background:#dc2626;border-color:#dc2626
}
.billing-doc-delete-nav .billing-after-create__actions .btn.primary:hover{
    background:#b91c1c;border-color:#b91c1c
}

/* Composer fattura parziale */
body.billing-composer-open{overflow:hidden}
.billing-composer{
    position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px 24px
}
.billing-composer[hidden]{display:none!important}
.billing-composer__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(2px)}
.billing-composer__dialog{
    position:relative;z-index:1;width:min(1080px,100%);max-height:min(92vh,960px);display:flex;flex-direction:column;
    background:#fff;border-radius:16px;border:1px solid #dbe3ee;box-shadow:0 28px 64px rgba(15,23,42,.22)
}
.billing-composer__head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 14px;
    border-bottom:1px solid #e8edf3;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);border-radius:16px 16px 0 0
}
.billing-composer__head-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.billing-composer__head-text{min-width:0}
.billing-composer__title{margin:0;font-size:18px;font-weight:800;color:#0f172a;letter-spacing:-.02em}
.billing-composer__subtitle{margin:4px 0 0;font-size:13px;color:#64748b;line-height:1.45;max-width:62ch}
.billing-composer__search-wrap{max-width:360px;width:100%}
.billing-composer__search{
    width:100%;box-sizing:border-box;padding:9px 12px 9px 34px;border-radius:10px;border:1px solid #cbd5e1;
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2394a3b8' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 10px center no-repeat;
    font-size:13px;color:#0f172a
}
.billing-composer__search:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.2)}
.billing-composer__close{
    flex-shrink:0;width:36px;height:36px;border:0;border-radius:10px;background:#f1f5f9;color:#64748b;
    font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center
}
.billing-composer__close:hover{background:#e2e8f0;color:#0f172a}
.billing-composer__body{overflow:auto;padding:16px 22px 18px;flex:1 1 auto;background:#f8fafc}
.billing-composer__foot{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
    padding:14px 22px 18px;border-top:1px solid #e2e8f0;background:#fff;border-radius:0 0 16px 16px
}
.billing-composer__summary{
    display:flex;align-items:baseline;gap:14px;padding:10px 16px;border-radius:12px;
    background:#eff6ff;border:1px solid #bfdbfe;min-width:0
}
.billing-composer__summary-count{font-size:13px;font-weight:700;color:#1e40af;white-space:nowrap}
.billing-composer__summary-total{font-size:20px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap}
.billing-composer__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.billing-composer__actions .btn.primary{padding:10px 18px;font-size:13px;font-weight:700}
.billing-composer__qty-error{
    flex:1 1 100%;margin:0;padding:10px 14px;border-radius:10px;
    background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:13px;font-weight:600;line-height:1.4
}
.billing-composer-qty.is-invalid{
    border-color:#dc2626 !important;box-shadow:0 0 0 2px rgba(220,38,38,.15);background:#fff5f5
}
.billing-composer__doc{
    border:1px solid #dbe3ee;border-radius:12px;margin-bottom:14px;overflow:hidden;background:#fff;
    box-shadow:0 1px 3px rgba(15,23,42,.04)
}
.billing-composer__doc:last-child{margin-bottom:0}
.billing-composer__doc-head{
    display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;
    padding:11px 14px;background:#fff;border-bottom:1px solid #eef2f7
}
.billing-composer__doc-select{display:flex;align-items:center;cursor:pointer}
.billing-composer__doc-select input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.billing-composer__doc-check{
    width:18px;height:18px;border-radius:5px;border:2px solid #94a3b8;background:#fff;display:inline-block;position:relative
}
.billing-composer__doc-select input:checked + .billing-composer__doc-check{
    background:#2563eb;border-color:#2563eb
}
.billing-composer__doc-select input:checked + .billing-composer__doc-check::after{
    content:'';position:absolute;left:5px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)
}
.billing-composer__doc-select input:indeterminate + .billing-composer__doc-check{
    background:#2563eb;border-color:#2563eb
}
.billing-composer__doc-select input:indeterminate + .billing-composer__doc-check::after{
    content:'';position:absolute;left:3px;right:3px;top:7px;height:2px;background:#fff;border-radius:1px
}
.billing-composer__doc-info{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.billing-composer__doc-badge{
    display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;
    letter-spacing:.04em;text-transform:uppercase;white-space:nowrap
}
.billing-composer__doc-badge.is-pf{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}
.billing-composer__doc-badge.is-ddt{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.billing-composer__doc-badge.is-consuntivo{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.billing-composer__doc-title{font-weight:700;color:#0f172a;font-size:14px;white-space:nowrap}
.billing-composer__doc-meta{display:flex;align-items:center;gap:12px;white-space:nowrap}
.billing-composer__doc-sel{font-size:12px;font-weight:600;color:#64748b}
.billing-composer__doc-total{font-size:13px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}
.billing-src-lines{margin-bottom:0;border:1px solid #e2e8f0;background:#fff;border-radius:10px;overflow:hidden;border-top:3px solid #6366f1}
.billing-src-lines__root-summary{
    display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;cursor:pointer;list-style:none;
    font-size:13px;font-weight:700;color:#0f172a;user-select:none;background:#fafbff;border-bottom:1px solid transparent
}
.billing-src-lines[open]>.billing-src-lines__root-summary{border-bottom-color:#eef2f7}
.billing-src-lines__root-summary::-webkit-details-marker{display:none}
.billing-src-lines__root-leading{display:inline-flex;align-items:center;gap:8px;min-width:0}
.billing-src-lines__root-chevron{color:#64748b;font-size:11px;transition:transform .12s ease;flex:0 0 auto}
.billing-src-lines[open] .billing-src-lines__root-chevron{transform:rotate(90deg)}
.billing-src-lines__root-title{display:inline-flex;align-items:center;gap:6px;min-width:0}
.billing-src-lines__root-title .inv-ui__card-icon{width:22px;height:22px;font-size:11px}
.billing-src-lines__root-badge{flex-shrink:0}
.billing-src-lines__inner{border-top:none}
.billing-src-lines__toolbar{
    display:flex;flex-direction:column;gap:8px;
    padding:10px 14px 8px;border-bottom:1px solid #f1f5f9;background:#fcfdff
}
.billing-src-lines__toolbar-main{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:6px 12px}
.billing-src-lines__toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.billing-src-lines__hint{margin:0;font-size:12px;line-height:1.35;color:#64748b;flex:1 1 240px;min-width:0}
.billing-src-lines__hint-pending{color:#b45309;font-weight:700}
.billing-src-lines__hint-done{color:#047857;font-weight:600}
.billing-src-lines__legend{display:flex;flex-wrap:wrap;gap:8px 12px;flex-shrink:0}
.billing-src-lines__legend-item{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:#94a3b8;white-space:nowrap}
.billing-src-lines__legend-item::before{content:'';width:8px;height:8px;border-radius:2px;flex-shrink:0}
.billing-src-lines__legend-item.is-in-invoice::before{background:#3b82f6}
.billing-src-lines__legend-item.is-on-source::before{background:#cbd5e1}
.billing-src-lines__filters{display:inline-flex;gap:4px;padding:2px;background:#f1f5f9;border-radius:8px}
.billing-src-lines__filter{
    border:0;background:transparent;color:#64748b;font-size:11px;font-weight:700;line-height:1;
    padding:6px 10px;border-radius:6px;cursor:pointer;white-space:nowrap
}
.billing-src-lines__filter:hover{color:#334155;background:#e2e8f0}
.billing-src-lines__filter.is-active{background:#fff;color:#4338ca;box-shadow:0 1px 2px rgba(15,23,42,.08)}
.billing-src-lines__search-wrap{flex:1 1 180px;min-width:150px;max-width:260px}
.billing-src-lines__search{
    width:100%;padding:7px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;
    background:#fff;line-height:1.2;color:#334155
}
.billing-src-lines__search:focus{outline:none;border-color:#818cf8;box-shadow:0 0 0 3px rgba(129,140,248,.15)}
.billing-src-lines__body{padding:10px 12px 6px;display:flex;flex-direction:column;gap:8px}
.billing-src-lines__footnote{margin:0;padding:0 14px 10px;font-size:10px;line-height:1.35;color:#94a3b8}
.billing-src-lines.is-busy{opacity:.72;pointer-events:none}
.billing-src-lines__doc{border:1px solid #e8edf3;border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.03)}
.billing-src-lines__doc--is-pf{border-color:#dbeafe}
.billing-src-lines__doc--is-ddt{border-color:#fed7aa}
.billing-src-lines__doc--is-cons{border-color:#a7f3d0}
.billing-src-lines__doc--is-ordine{border-color:#a5f3fc}
.billing-src-lines__summary{
    display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;list-style:none;
    font-size:12px;line-height:1.2;background:#f8fafc;border-bottom:1px solid transparent
}
.billing-src-lines__doc[open]>.billing-src-lines__summary{border-bottom-color:#eef2f7}
.billing-src-lines__summary::-webkit-details-marker{display:none}
.billing-src-lines__summary-chevron{color:#94a3b8;font-size:10px;flex:0 0 auto;transition:transform .12s ease}
.billing-src-lines__doc[open] .billing-src-lines__summary-chevron{transform:rotate(90deg)}
.billing-src-lines__summary-main{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:6px}
.billing-src-lines__doc-badge{
    flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:28px;
    padding:2px 6px;border-radius:5px;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase
}
.billing-src-lines__doc--is-pf .billing-src-lines__doc-badge{background:#e0e7ff;color:#4338ca}
.billing-src-lines__doc--is-ddt .billing-src-lines__doc-badge{background:#ffedd5;color:#c2410c}
.billing-src-lines__doc--is-cons .billing-src-lines__doc-badge{background:#ecfdf5;color:#047857}
.billing-src-lines__doc--is-ordine .billing-src-lines__doc-badge{background:#ecfeff;color:#0e7490}
.billing-src-lines__summary-label{min-width:0;flex:0 1 auto;font-weight:700;color:#0f172a}
.billing-src-lines__doc-link{color:inherit;text-decoration:none;font-weight:700}
.billing-src-lines__doc-link:hover{text-decoration:underline;color:#4338ca}
.billing-src-lines__doc-progress{
    flex:1 1 48px;max-width:72px;height:4px;border-radius:999px;background:#e2e8f0;overflow:hidden
}
.billing-src-lines__doc-progress-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#3b82f6);transition:width .2s ease}
.billing-src-lines__doc--is-ddt .billing-src-lines__doc-progress-fill{background:linear-gradient(90deg,#f97316,#fb923c)}
.billing-src-lines__doc--is-cons .billing-src-lines__doc-progress-fill{background:linear-gradient(90deg,#10b981,#34d399)}
.billing-src-lines__summary-stats{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 8px;flex-shrink:0}
.billing-src-lines__stat{font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap;padding:2px 6px;border-radius:999px}
.billing-src-lines__stat--in{background:#dbeafe;color:#1d4ed8}
.billing-src-lines__stat--pending{background:#f1f5f9;color:#64748b}
.billing-src-lines__stat--total{background:#ecfdf5;color:#047857;font-variant-numeric:tabular-nums}
.billing-src-lines__list-head{
    display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:6px 8px;
    padding:4px 10px 2px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8
}
.billing-src-lines__list-head-col.is-amount{text-align:right}
.billing-src-lines__list{
    list-style:none;margin:0;padding:2px 6px 8px;
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px
}
.billing-src-lines__row{
    border-radius:6px;background:#f8fafc;border:1px solid #eef2f7;
    transition:background .12s ease,border-color .12s ease,box-shadow .12s ease
}
.billing-src-lines__row:hover{background:#f1f5f9;border-color:#dbeafe}
.billing-src-lines__row.is-in-invoice{background:#eff6ff;border-color:#bfdbfe}
.billing-src-lines__row.is-in-invoice:hover{background:#dbeafe;border-color:#93c5fd}
.billing-src-lines__row.is-on-source{border-left:3px solid #cbd5e1}
.billing-src-lines__row.is-in-invoice{border-left:3px solid #3b82f6}
.billing-src-lines__row-label{
    display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:6px 8px;align-items:center;
    padding:6px 8px;margin-bottom:0;cursor:pointer;min-height:38px;box-sizing:border-box
}
.billing-src-lines__toggle{width:14px;height:14px;margin:0;accent-color:#4f46e5;flex-shrink:0;align-self:start;margin-top:2px;cursor:pointer}
.billing-src-lines__row-main{min-width:0;display:flex;flex-direction:column;gap:2px;overflow:visible}
.billing-src-lines__row-desc{font-size:12px;line-height:1.25;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.billing-src-lines__row.is-in-invoice .billing-src-lines__row-desc{color:#1e3a8a;font-weight:600}
.billing-src-lines__row-meta{display:flex;align-items:center;gap:4px;min-width:0;font-size:10px;line-height:1.25;color:#94a3b8}
.billing-src-lines__row.is-in-invoice .billing-src-lines__row-meta{color:#60a5fa}
.billing-src-lines__row-kind{flex-shrink:0;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:0 4px;border-radius:3px;line-height:1.45}
.billing-src-lines__row-kind--product{color:#047857;background:#d1fae5}
.billing-src-lines__row-kind--service{color:#4338ca;background:#e0e7ff}
.billing-src-lines__row.is-in-invoice .billing-src-lines__row-kind--product{color:#065f46;background:#a7f3d0}
.billing-src-lines__row.is-in-invoice .billing-src-lines__row-kind--service{color:#3730a3;background:#c7d2fe}
.billing-src-lines__row-meta-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.billing-src-lines__row-side{display:flex;flex-direction:column;align-items:flex-end;gap:1px;align-self:center}
.billing-src-lines__qty-actions{
    display:flex;flex-wrap:wrap;align-items:center;gap:6px;
    padding:0 8px 8px 30px;margin-top:-2px
}
.billing-src-lines__qty-field{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:11px;color:#64748b}
.billing-src-lines__qty-label{white-space:nowrap;font-weight:600}
.billing-src-lines__qty-input{
    width:72px;height:28px;padding:2px 6px;border:1px solid #cbd5e1;border-radius:6px;
    font-size:12px;font-variant-numeric:tabular-nums;background:#fff;color:#0f172a
}
.billing-src-lines__qty-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.15)}
.billing-src-lines__qty-apply,.billing-src-lines__qty-add-remaining{height:28px;padding:0 10px;font-size:11px;line-height:1}
.billing-src-lines__row-status{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8;line-height:1.1}
.billing-src-lines__row.is-in-invoice .billing-src-lines__row-status{color:#3b82f6}
.billing-src-lines__row-amount{font-size:11px;font-weight:700;color:#475569;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.2}
.billing-src-lines__row.is-in-invoice .billing-src-lines__row-amount{color:#1d4ed8}
@media (max-width:900px){
    .billing-src-lines__list{grid-template-columns:1fr}
    .billing-src-lines__summary-stats{display:none}
    .billing-src-lines__doc-progress{max-width:56px}
}
@media (max-width:720px){
    .billing-src-lines__search-wrap{flex:1 1 100%;max-width:none}
    .billing-src-lines__toolbar-actions{flex-direction:column;align-items:stretch}
    .billing-src-lines__filters{justify-content:space-between}
    .billing-src-lines__filter{flex:1 1 auto;text-align:center}
    .billing-src-lines__root-badge{display:none}
}
.billing-composer__table-wrap{overflow-x:auto}
.billing-composer__table{width:100%;border-collapse:collapse;table-layout:fixed}
.billing-composer__table thead th{
    padding:7px 12px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
    color:#64748b;background:#f8fafc;border-bottom:1px solid #eef2f7;text-align:center
}
.billing-composer__table thead .billing-composer__col-desc{text-align:left}
.billing-composer__col-check{width:44px}
.billing-composer__col-desc{width:auto}
.billing-composer__col-qty{width:88px;text-align:right}
.billing-composer__col-price{width:100px;text-align:right}
.billing-composer__col-total{width:110px;text-align:right}
.billing-composer__line{cursor:pointer;transition:background .12s ease}
.billing-composer__line:hover{background:#f8fafc}
.billing-composer__line:has(input:checked){background:#eff6ff}
.billing-composer__line td{
    padding:8px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle;font-size:13px;color:#0f172a
}
.billing-composer__line:last-child td{border-bottom:none}
.billing-composer__line-check{display:flex;align-items:center;justify-content:center;cursor:pointer}
.billing-composer__line-check input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.billing-composer__line-check-ui{
    width:16px;height:16px;border-radius:4px;border:2px solid #cbd5e1;background:#fff;display:inline-block;position:relative
}
.billing-composer__line-check input:checked + .billing-composer__line-check-ui{
    background:#2563eb;border-color:#2563eb
}
.billing-composer__line-check input:checked + .billing-composer__line-check-ui::after{
    content:'';position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)
}
.billing-composer__line-desc{display:block;line-height:1.35;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.billing-composer__line-task{display:block;margin-top:2px;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.billing-composer__col-qty{text-align:right;font-variant-numeric:tabular-nums;color:#334155}
.billing-composer-qty{
    width:4.5rem;
    max-width:100%;
    padding:.25rem .35rem;
    border:1px solid #cbd5e1;
    border-radius:6px;
    text-align:right;
    font:inherit;
    font-variant-numeric:tabular-nums;
}
.billing-composer__col-qty .billing-composer__um{display:inline;margin-left:.15rem;font-size:.78em;color:#64748b}
.billing-composer__table .billing-composer__col-qty{width:9.5rem;white-space:nowrap}
.billing-composer__um{font-size:11px;color:#94a3b8;font-weight:600}
.billing-composer__col-price,.billing-composer__col-total{
    text-align:right;font-variant-numeric:tabular-nums;font-weight:600
}
.billing-composer__col-total{color:#0f172a;font-weight:700}
.billing-composer__empty,.billing-composer__doc-empty{padding:24px;font-size:13px;color:#64748b;text-align:center}
@media (max-width:760px){
    .billing-composer{padding:0;align-items:stretch}
    .billing-composer__dialog{width:100%;max-height:100vh;border-radius:0;border:0}
    .billing-composer__head{border-radius:0}
    .billing-composer__foot{border-radius:0}
    .billing-composer__doc-head{grid-template-columns:auto 1fr;grid-template-rows:auto auto}
    .billing-composer__doc-meta{grid-column:1/-1;justify-content:space-between}
    .billing-composer__col-price{display:none}
    .billing-composer__table thead .billing-composer__col-price{display:none}
}
/* Stati ciclo documentale — palette unificata (lista + editor) */
.billing-status-pill.is-state-negative,
.billing-doc-hub-state--non_evaso,
.billing-doc-hub-state--non_confermato,
.billing-doc-hub-state--no,
.billing-doc-hub-state--non_inviato,
.billing-doc-hub-state--non_firmato,
.billing-doc-hub-state--non_fatturato,
.billing-doc-hub-state--non_inviata,
.billing-doc-hub-state--trasformata_no,
.billing-doc-hub-state--non_pagata{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.billing-status-pill.is-state-positive,
.billing-status-pill.is-invoiced,
.billing-status-pill.is-ordine-linked,
.billing-doc-hub-state--evaso,
.billing-doc-hub-state--confermato,
.billing-doc-hub-state--si,
.billing-doc-hub-state--inviato,
.billing-doc-hub-state--firmato,
.billing-doc-hub-state--inviata,
.billing-doc-hub-state--trasformata_si,
.billing-doc-hub-state--pagata,
.billing-doc-hub-state--fatturato,
.billing-doc-hub-state--gestito{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.billing-status-pill.is-state-partial,
.billing-status-pill.is-partial,
.billing-doc-hub-state--parziale{background:#fffbeb;color:#b45309;border-color:#fde68a}
.billing-status-pill.is-merged{background:#e2e8f0;color:#475569;border:1px solid #cbd5e1}

@media (max-width:1100px){
    .billing-hub__panel{align-items:stretch}
    .billing-hub__stats{
        width:100%;padding-left:0;border-left:none;padding-top:6px;border-top:1px solid #e8edf3;justify-content:flex-start
    }
    .billing-hub__flow{width:100%;padding-top:2px}
}
@media (max-width:640px){
    .billing-hub__create-row{flex-direction:column;align-items:stretch}
    .billing-hub__client{max-width:none;width:100%}
    .billing-hub__create-actions{width:100%}
    .billing-hub__create-actions form,.billing-hub__create-actions .btn{flex:1 1 auto}
    .billing-hub__stats{flex-wrap:wrap;gap:8px 12px}
    .billing-merge-bar{flex-wrap:wrap}
    .billing-merge-bar__form--multi{flex:1 1 100%;width:100%;justify-content:flex-start;flex-wrap:wrap}
    .billing-merge-bar__form{width:auto}
    .billing-merge-bar__form .btn{width:auto;justify-content:center}
}
.billing-new-draft{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.billing-new-draft__client{position:relative;min-width:160px}
.billing-new-draft__search{
  width:100%;min-width:160px;border:1px solid #e2e8f0;border-radius:8px;padding:7px 30px 7px 10px;
  font-size:12px;background:#fff;box-sizing:border-box
}
.billing-hub .billing-new-draft__search{min-width:0}
.billing-new-draft__search:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.billing-new-draft__results{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;border:1px solid #e2e8f0;
  border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.12);max-height:220px;overflow:auto
}
.billing-new-draft__result{padding:10px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid #f1f5f9}
.billing-new-draft__result:last-child{border-bottom:none}
.billing-new-draft__result:hover{background:#eef2ff}
.billing-new-draft__result--empty{color:#94a3b8;cursor:default;text-align:center}
.billing-new-draft__result--empty:hover{background:transparent}
.billing-new-draft__result small{display:block;color:#94a3b8;font-size:11px;margin-top:2px}
.billing-new-draft__clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:#f1f5f9;color:#64748b;
  width:22px;height:22px;border-radius:999px;cursor:pointer;line-height:1;font-size:14px
}
.billing-new-draft__clear:hover{background:#fee2e2;color:#dc2626}
.billing-page__headtext{min-width:0}
.billing-doc-head{
  display:flex;flex-direction:row;align-items:center;justify-content:flex-start;
  gap:12px 16px;flex-wrap:wrap;
  padding:10px 14px;
  background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
  border:1px solid #e8edf3;border-radius:14px;
  box-shadow:0 1px 3px rgba(15,23,42,.04);
  flex:1 1 auto;min-width:0;
}
.billing-doc-head__title-wrap{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  flex:0 0 auto;min-width:0;
}
.billing-doc-head__title-wrap .billing-doc-flow-trigger{
  display:inline-flex;align-items:center;flex-shrink:0;
}
.billing-doc-head .billing-lineage-eye{
  width:24px;height:24px;margin-top:0;border-radius:7px;
}
.billing-lineage-eye.is-open,
.billing-doc-flow-trigger__btn.is-open{
  background:#eef2ff;border-color:#c7d2fe;color:#4338ca;
}
.billing-doc-flow-popover--source{display:none!important}
.billing-doc-flow-popover{
  position:fixed;z-index:10050;margin:0;box-sizing:border-box;
  max-width:min(480px,calc(100vw - 24px));padding:12px 14px;border-radius:10px;
  border:1px solid #e0e7ff;background:#fff;
  box-shadow:0 8px 24px rgba(99,102,241,.14);
  font-size:12px;line-height:1.45;color:#475569;
}
.billing-doc-flow-popover__title{
  margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#6366f1;
}
.billing-doc-flow-popover__body{overflow-x:auto;-webkit-overflow-scrolling:touch}
.billing-doc-flow-popover .billing-lineage-compact{display:block;max-width:none}
.billing-doc-flow-popover .billing-lineage__node{font-size:12px;padding:4px 8px 4px 4px}
.billing-doc-flow-popover .billing-lineage__badge{min-width:32px;height:18px;font-size:9px}
.billing-doc-head__title{
  margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em;color:#0f172a;
}
.billing-doc-head__chips{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  flex:0 1 auto;min-width:0;
}
.billing-page--editor .billing-page__head{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px 16px;flex-wrap:nowrap;
}
.billing-page--editor .billing-page__head-actions{
  flex:0 0 auto;align-self:center;
}
.billing-page--editor .billing-doc-head{
  flex:1 1 0%;min-width:0;
  flex-wrap:nowrap;align-items:center;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.billing-page--editor .billing-doc-head__title-wrap{
  flex:0 0 auto;
}
.billing-page--editor .billing-doc-head__chips{
  flex:1 1 auto;min-width:0;
  flex-wrap:nowrap;
}
.billing-page--editor .billing-doc-chip--number,
.billing-page--editor .billing-doc-chip--date,
.billing-page--editor .billing-doc-chip--type{
  flex:0 0 auto;
}
.billing-page--editor .billing-doc-chip--client{
  flex:1 1 auto;max-width:none;width:auto;min-width:120px;
}
.billing-doc-chip{
  display:inline-flex;align-items:center;gap:8px;
  height:40px;min-height:40px;box-sizing:border-box;padding:0 12px;
  background:#fff;border:1px solid #e2e8f0;border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
  transition:border-color .15s,box-shadow .15s;
}
.billing-doc-chip:focus-within{
  border-color:#a5b4fc;
  box-shadow:0 0 0 3px rgba(99,102,241,.1);
}
.billing-doc-chip__label{
  display:flex;align-items:center;align-self:center;
  margin:0;line-height:1;
  font-size:10px;font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;color:#94a3b8;flex-shrink:0;
}
.billing-doc-chip__sep{
  align-self:center;
  width:1px;height:14px;background:#e2e8f0;flex-shrink:0;
}
.billing-doc-chip__value,
.billing-doc-chip .billing-page__doc-mini-value{
  font-size:13px;font-weight:700;color:#0f172a;
}
.billing-doc-chip--number{min-width:0;flex:0 0 auto}
.billing-doc-chip--number .billing-doc-chip__input,
.billing-doc-chip--number .billing-doc-chip__value{
  width:8.5ch;min-width:2.5ch;max-width:8.5ch;flex:0 0 auto;
  font-variant-numeric:tabular-nums;
}
.billing-doc-chip--date{min-width:0}
.billing-doc-chip--client{
  min-width:0;max-width:min(320px,48vw);
  padding-right:6px;
}
.billing-doc-chip--client.is-empty{
  border-style:dashed;border-color:#cbd5e1;background:#f8fafc;
}
.billing-doc-chip--client .billing-page__doc-client-name{
  flex:1 1 auto;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  line-height:1.2;align-self:center;
}
.billing-doc-chip--client .billing-page__doc-client-name.is-empty{
  color:#94a3b8;font-weight:600;
}
.billing-doc-chip--client .doc-anagrafica-split-btn{
  flex:0 0 auto;align-self:center;margin-left:auto;
}
.billing-doc-chip__input.billing-page__doc-input{
  border:0;background:transparent;padding:0;margin:0;
  min-width:24px;width:auto;font-size:13px;font-weight:700;
  line-height:1.2;height:auto;align-self:center;
}
.billing-doc-chip--number .billing-doc-chip__input.billing-page__doc-input{
  width:8.5ch;min-width:2.5ch;max-width:8.5ch;flex:0 0 auto;
  font-variant-numeric:tabular-nums;
}
.billing-doc-chip__input.billing-page__doc-input--date{
  min-width:118px;font-weight:700;
  height:24px;line-height:24px;
}
.billing-doc-chip__input:focus{outline:none;box-shadow:none}

/* Pulsante Anagrafica (chip Cliente) */
.doc-anagrafica-split-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  height:28px;min-height:28px;max-height:28px;padding:0 9px;
  border:1px solid #dbe3ee;border-radius:8px;
  background:#f8fafc;color:#475569;
  font:inherit;font-size:11px;font-weight:700;line-height:1;
  cursor:pointer;white-space:nowrap;
  box-shadow:none;appearance:none;-webkit-appearance:none;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.doc-anagrafica-split-btn:hover{
  background:#eef2ff;border-color:#c7d2fe;color:#4338ca;
}
.doc-anagrafica-split-btn:focus-visible{
  outline:none;border-color:#818cf8;
  box-shadow:0 0 0 3px rgba(99,102,241,.18);
}
.doc-anagrafica-split-btn.is-active,
.doc-anagrafica-split-btn[aria-pressed="true"]{
  background:#e0e7ff;border-color:#a5b4fc;color:#3730a3;
}
.doc-anagrafica-split-btn__icon{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;line-height:1;opacity:.9;
}
.doc-anagrafica-split-btn__label{line-height:1}

/* Split documento / anagrafica */
:root{
  --doc-split-offset:120px;
  --doc-split-top-ratio:0.55;
  --doc-split-gutter:10px;
}
body.doc-anagrafica-split-active{
  overflow:hidden;
}
body.doc-anagrafica-split-dragging{
  cursor:row-resize;user-select:none;
}
body.doc-anagrafica-split-dragging iframe{
  pointer-events:none;
}
.doc-anagrafica-split{
  display:flex;flex-direction:column;min-width:0;width:100%;
}
.doc-anagrafica-split__top{
  min-width:0;min-height:0;
}
.doc-anagrafica-split__gutter{
  display:none;flex:0 0 var(--doc-split-gutter);
  position:relative;z-index:2;
  background:linear-gradient(180deg,#eef2ff 0%,#e2e8f0 100%);
  border-top:1px solid #c7d2fe;border-bottom:1px solid #c7d2fe;
  cursor:row-resize;touch-action:none;
}
.doc-anagrafica-split__gutter::before{
  content:"";position:absolute;left:50%;top:50%;
  width:36px;height:3px;margin:-1.5px 0 0 -18px;border-radius:999px;
  background:#94a3b8;
}
.doc-anagrafica-split__gutter:hover,
.doc-anagrafica-split__gutter:focus-visible{
  background:linear-gradient(180deg,#e0e7ff 0%,#dbeafe 100%);
  outline:none;
}
.doc-anagrafica-split__gutter:hover::before,
.doc-anagrafica-split__gutter:focus-visible::before{
  background:#6366f1;
}
.doc-anagrafica-split__gutter[hidden]{display:none!important}
.doc-anagrafica-split__bottom{
  display:none;flex-direction:column;min-width:0;min-height:0;
  background:#fff;border:1px solid #dbe3ee;border-radius:12px;
  overflow:hidden;box-shadow:0 -4px 24px rgba(15,23,42,.06);
}
.doc-anagrafica-split__bottom[hidden]{display:none!important}
.doc-anagrafica-split.is-open{
  height:calc(100vh - var(--doc-split-offset, 120px));
  max-height:calc(100vh - var(--doc-split-offset, 120px));
  overflow:hidden;
}
.doc-anagrafica-split.is-open .doc-anagrafica-split__top{
  flex:0 0 calc((100% - var(--doc-split-gutter)) * var(--doc-split-top-ratio, 0.55));
  overflow:auto;overscroll-behavior:contain;
  padding-bottom:8px;
}
.doc-anagrafica-split.is-open .doc-anagrafica-split__gutter{
  display:block;
}
.doc-anagrafica-split.is-open .doc-anagrafica-split__bottom{
  display:flex;
  flex:0 0 calc((100% - var(--doc-split-gutter)) * (1 - var(--doc-split-top-ratio, 0.55)));
}
.doc-anagrafica-split__bottom-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex:0 0 auto;padding:10px 14px;
  background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
  border-bottom:1px solid #e8edf3;
}
.doc-anagrafica-split__bottom-title{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:800;color:#0f172a;letter-spacing:-.01em;
}
.doc-anagrafica-split__bottom-icon{font-size:15px;line-height:1}
.doc-anagrafica-split__bottom-actions{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.doc-anagrafica-split__frame{
  flex:1 1 auto;min-height:0;width:100%;border:0;background:#fff;
}
main.container.main:has(.doc-anagrafica-split.is-open){
  max-width:none;padding-bottom:0;
}
@media (max-width:900px){
  .doc-anagrafica-split-btn__label{display:none}
  .doc-anagrafica-split-btn{padding:0 8px;min-width:28px}
  .billing-doc-chip--client{max-width:min(220px,58vw)}
}

/* Split elenco Documenti / anteprima */
:root{
  --doc-list-split-offset:120px;
  --doc-list-split-top-ratio:0.52;
  --doc-list-split-gutter:10px;
}
body.doc-list-split-active{overflow:hidden}
body.doc-list-split-dragging{cursor:row-resize;user-select:none}
.doc-list-split-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  height:28px;padding:0 10px;border:1px solid #dbe3ee;border-radius:8px;
  background:#f8fafc;color:#475569;
  font:inherit;font-size:12px;font-weight:700;line-height:1;
  cursor:pointer;white-space:nowrap;
}
.doc-list-split-btn:hover{
  background:#eef2ff;border-color:#c7d2fe;color:#4338ca;
}
.doc-list-split-btn.is-active,
.doc-list-split-btn[aria-pressed="true"]{
  background:#e0e7ff;border-color:#a5b4fc;color:#3730a3;
}
.doc-list-split-btn__icon{font-size:13px;line-height:1;opacity:.9}
.doc-list-split{
  display:flex;flex-direction:column;min-width:0;width:100%;
}
.doc-list-split__top{min-width:0;min-height:0}
.doc-list-split__gutter{
  display:none;flex:0 0 var(--doc-list-split-gutter);
  position:relative;z-index:2;
  background:linear-gradient(180deg,#eef2ff 0%,#e2e8f0 100%);
  border-top:1px solid #c7d2fe;border-bottom:1px solid #c7d2fe;
  cursor:row-resize;touch-action:none;
}
.doc-list-split__gutter::before{
  content:"";position:absolute;left:50%;top:50%;
  width:36px;height:3px;margin:-1.5px 0 0 -18px;border-radius:999px;
  background:#94a3b8;
}
.doc-list-split__gutter:hover{
  background:linear-gradient(180deg,#e0e7ff 0%,#dbeafe 100%);
}
.doc-list-split__gutter:hover::before{background:#6366f1}
.doc-list-split__gutter[hidden]{display:none!important}
.doc-list-split__bottom{
  display:none;flex-direction:column;min-width:0;min-height:0;
  background:#fff;border:1px solid #dbe3ee;border-radius:12px;
  overflow:hidden;box-shadow:0 -4px 24px rgba(15,23,42,.06);
}
.doc-list-split__bottom[hidden]{display:none!important}
.doc-list-split.is-open{
  height:calc(100vh - var(--doc-list-split-offset, 120px));
  max-height:calc(100vh - var(--doc-list-split-offset, 120px));
  overflow:hidden;
}
.doc-list-split.is-open .doc-list-split__top{
  flex:1 1 calc((100% - var(--doc-list-split-gutter)) * var(--doc-list-split-top-ratio, 0.52));
  min-height:0;
  display:flex;
  flex-direction:column;
  /* hidden: evita che la griglia “esca” sul gutter quando lo spazio sotto è stretto;
     il pannello Colonne in split è già position:fixed via JS. */
  overflow:hidden;
  overscroll-behavior:contain;
  position:relative;
  z-index:3;
}
.doc-list-split.is-open .doc-list-split__top > .billing-table-toolbar,
.doc-list-split.is-open .doc-list-split__top > .billing-grid-totals,
.doc-list-split.is-open .doc-list-split__top > .billing-merge-bar,
.doc-list-split.is-open .doc-list-split__top > .billing-transform-bars,
.doc-list-split.is-open .doc-list-split__top > .doc-cards{
  flex:0 0 auto;
  position:relative;
  z-index:6;
}
.doc-list-split.is-open .billing-grid-scroll{
  flex:1 1 auto;
  min-height:0;
  max-height:none!important;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  position:relative;
  z-index:1;
}
.doc-list-split.is-open .tasks-columns-picker-wrap,
.doc-list-split.is-open .tasks-column-profiles-wrap,
.doc-list-split.is-open .doc-saved-filters-wrap{
  position:relative;
  z-index:7;
}
.doc-list-split.is-open .tasks-columns-panel,
.doc-list-split.is-open .tasks-column-profiles-dropdown,
.doc-list-split.is-open .doc-saved-filters-dropdown{
  z-index:1400;
}
/* Link Numero/Data cliccabili anche con header sticky / overflow cella */
.doc-list-split.is-open .billing-grid__col-doc_number,
.doc-list-split.is-open .billing-grid__col-invoice_date{
  overflow:visible;
}
.doc-list-split.is-open .billing-grid__col-doc_number .billing-doc-table__link,
.doc-list-split.is-open .billing-grid__col-invoice_date .billing-doc-table__link{
  position:relative;
  z-index:1;
  display:inline-block;
  max-width:100%;
  padding:4px 2px;
  margin:-4px -2px;
}
.doc-list-split.is-open .doc-list-split__gutter{display:block;z-index:2}
.doc-list-split.is-open .doc-list-split__bottom{
  display:flex;
  flex:0 1 calc((100% - var(--doc-list-split-gutter)) * (1 - var(--doc-list-split-top-ratio, 0.52)));
  min-height:min(200px, 40%);
  position:relative;
  z-index:1;
  overflow:hidden;
}
.doc-list-split__bottom-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex:0 0 auto;padding:10px 14px;
  background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
  border-bottom:1px solid #e8edf3;
}
.doc-list-split__bottom-title{
  font-size:13px;font-weight:800;color:#0f172a;letter-spacing:-.01em;
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.doc-list-split__bottom-actions{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;flex:0 0 auto;
}
.doc-list-split.doc-list-split--lineage-eye-mode #doc-list-split-open,
.doc-list-split.doc-list-split--lineage-eye-mode #doc-list-split-print,
.doc-list-split.doc-list-split--lineage-eye-mode #doc-list-split-fullscreen,
.doc-list-split.doc-list-split--lineage-eye-mode #doc-list-split-doc-close{
  display:none !important;
}
.doc-list-split__doc-close{
  width:30px;min-width:30px;padding:0;font-size:20px;line-height:1;font-weight:700;
  color:#64748b;border-color:#e2e8f0;
}
.doc-list-split__doc-close:hover{
  color:#b91c1c;border-color:#fecaca;background:#fef2f2;
}
.doc-list-split__frame-wrap{
  position:relative;flex:1 1 auto;min-height:0;background:#fff;
}
.doc-list-split__frame{
  display:block;width:100%;height:100%;border:0;background:#fff;
}
.doc-list-split__frame[hidden]{display:none!important}
.doc-list-split.is-loading-frame .doc-list-split__frame-wrap::after{
  content:"Caricamento…";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(248,250,252,.72);color:#64748b;font-size:13px;font-weight:600;z-index:1;
  pointer-events:none;
}
.doc-list-split__empty{
  display:flex;align-items:center;justify-content:center;
  min-height:120px;height:100%;padding:24px;text-align:center;
  color:#64748b;font-size:13px;line-height:1.45;
}
.doc-list-split__empty[hidden]{display:none!important}
.doc-list-split__empty p{margin:0}
.billing-grid-row.is-split-selected td,
.billing-grid-row.is-split-selected.is-draft td,
.itickets-table tbody tr.billing-grid-row.is-split-selected td,
.itickets-table tbody tr.billing-grid-row.is-split-selected:nth-child(even) td{
  background:#eef2ff!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.billing-grid-row.is-split-selected{
  outline:none;
  box-shadow:none;
}
.doc-list-split.is-open .billing-grid-row:not(.billing-grid-row--empty){
  cursor:pointer;
}
.doc-list-split.is-open .billing-grid-row:not(.billing-grid-row--empty):not(.is-split-selected):hover td{
  background:#f8fafc;
}
body.doc-list-split-dragging iframe{
  pointer-events:none;
}
.doc-list-split__flow{
  display:block;height:100%;min-width:0;width:100%;
  overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  padding:14px 16px 20px;background:linear-gradient(180deg,#f8fafc 0%,#fff 40%);
  box-sizing:border-box;
  scrollbar-width:thin;
}
.doc-list-split__flow::-webkit-scrollbar{width:6px;height:6px}
.doc-list-split__flow::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}
.doc-list-split__flow::-webkit-scrollbar-track{background:transparent}
.doc-list-split__flow[hidden]{display:none!important}
/* Flusso a tutta larghezza: niente colonna vuota / gutter fantasma a destra */
.doc-list-split.is-flow-mode:not(.is-flow-doc-split) .doc-list-split__frame-wrap{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0;
}
.doc-list-split.is-flow-mode:not(.is-flow-doc-split) .doc-list-split__flow{
  flex:1 1 auto;
  width:100%;max-width:100%;
  min-height:0;
  height:auto;
}
.doc-list-split.is-flow-mode:not(.is-flow-doc-split) .doc-list-split__frame[hidden],
.doc-list-split.is-flow-mode:not(.is-flow-doc-split) .doc-list-split__v-gutter,
.doc-list-split.is-flow-mode:not(.is-flow-doc-split) .doc-list-split__v-gutter[hidden]{
  display:none!important;
  width:0!important;min-width:0!important;max-width:0!important;
  flex:0 0 0!important;border:0!important;padding:0!important;margin:0!important;
  overflow:hidden!important;
}
.doc-list-split.is-flow-mode .doc-list-split__frame-wrap{background:#f8fafc}

/* Flusso/mappa + documento affiancati (split verticale ridimensionabile) */
.doc-list-split{
  --doc-list-split-v-ratio: .46;
  --doc-list-split-v-gutter: 8px;
}
.doc-list-split.is-flow-doc-split .doc-list-split__frame-wrap{
  display:flex;flex-direction:row;align-items:stretch;gap:0;min-height:0;
}
/* Pipeline a tutta larghezza nel pannello flusso (niente vuoto a destra dei card) */
.doc-list-split.is-flow-mode .doc-list-split__flow .doc-flow-diagram{
  max-width:none;width:100%;
}
.doc-list-split.is-flow-mode .doc-list-split__flow .doc-flow-pipeline-wrap{
  overflow-x:auto;overflow-y:hidden;width:100%;
  scrollbar-width:thin;
}
.doc-list-split.is-flow-mode .doc-list-split__flow .doc-flow-pipeline-inner{
  display:flex;width:100%;min-width:max-content;box-sizing:border-box;
}
.doc-list-split.is-flow-mode .doc-list-split__flow .doc-flow-pipeline{
  width:100%;min-width:100%;flex:1 1 auto;
}
.doc-list-split.is-flow-mode .doc-list-split__flow .doc-flow-stage{
  flex:1 1 0;min-width:110px;max-width:none;
}
.doc-list-split.is-flow-doc-split .doc-list-split__flow{
  flex:0 0 calc((100% - var(--doc-list-split-v-gutter)) * var(--doc-list-split-v-ratio, .46));
  max-width:none;min-width:180px;height:auto;min-height:0;
  border-right:0;
  box-sizing:border-box;
}
.doc-list-split__v-gutter{
  display:none;flex:0 0 var(--doc-list-split-v-gutter);
  position:relative;z-index:2;align-self:stretch;
  background:linear-gradient(90deg,#eef2ff 0%,#e2e8f0 100%);
  border-left:1px solid #c7d2fe;border-right:1px solid #c7d2fe;
  cursor:col-resize;touch-action:none;
}
.doc-list-split__v-gutter::before{
  content:"";position:absolute;left:50%;top:50%;
  width:3px;height:36px;margin:-18px 0 0 -1.5px;border-radius:999px;
  background:#94a3b8;
}
.doc-list-split__v-gutter:hover,
body.doc-list-split-dragging-v .doc-list-split__v-gutter{
  background:linear-gradient(90deg,#e0e7ff 0%,#dbeafe 100%);
}
.doc-list-split__v-gutter:hover::before,
body.doc-list-split-dragging-v .doc-list-split__v-gutter::before{background:#6366f1}
.doc-list-split__v-gutter[hidden]{display:none!important}
.doc-list-split.is-flow-doc-split .doc-list-split__v-gutter{display:block}
.doc-list-split.is-flow-doc-split .doc-list-split__frame{
  flex:1 1 auto;min-width:180px;height:100%;
}
.doc-list-split.is-flow-doc-split.is-loading-frame .doc-list-split__frame-wrap::after{
  left:calc((100% - var(--doc-list-split-v-gutter)) * var(--doc-list-split-v-ratio, .46) + var(--doc-list-split-v-gutter));
}
.doc-flow-card.is-flow-selected{
  outline:2px solid #4f46e5;outline-offset:2px;
  box-shadow:0 0 0 4px rgba(79,70,229,.16);
}
@media (max-width:900px){
  .doc-list-split.is-flow-doc-split .doc-list-split__frame-wrap{flex-direction:column}
  .doc-list-split.is-flow-doc-split .doc-list-split__flow{
    flex:0 0 calc((100% - var(--doc-list-split-v-gutter)) * var(--doc-list-split-v-ratio, .46));
    max-width:none;min-width:0;
  }
  .doc-list-split.is-flow-doc-split .doc-list-split__v-gutter{
    flex:0 0 var(--doc-list-split-v-gutter);cursor:row-resize;width:100%;
    border-left:0;border-right:0;border-top:1px solid #c7d2fe;border-bottom:1px solid #c7d2fe;
  }
  .doc-list-split.is-flow-doc-split .doc-list-split__v-gutter::before{
    width:36px;height:3px;margin:-1.5px 0 0 -18px;
  }
  .doc-list-split.is-flow-doc-split.is-loading-frame .doc-list-split__frame-wrap::after{
    left:0;
    top:calc((100% - var(--doc-list-split-v-gutter)) * var(--doc-list-split-v-ratio, .46) + var(--doc-list-split-v-gutter));
  }
}

/* Occhio collegamenti */
.billing-lineage-cell{
  display:flex;align-items:flex-start;gap:6px;min-width:0;
}
.billing-lineage-cell--eye-only{
  align-items:center;justify-content:center;gap:0;width:100%;
}
.billing-lineage-cell .billing-lineage-eye{
  flex-shrink:0;margin-top:0;
}
.billing-lineage-cell__body{
  min-width:0;flex:1 1 auto;overflow:hidden;
}
.billing-lineage-eye{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;margin-top:1px;padding:0;
  border:1px solid #e2e8f0;border-radius:8px;
  background:#fff;color:#64748b;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.billing-lineage-eye:hover,
.billing-lineage-eye:focus-visible{
  background:#eef2ff;border-color:#c7d2fe;color:#4338ca;outline:none;
}
.billing-lineage-eye__icon{display:block}

/* Diagramma flusso — pipeline a stadi */
.doc-flow-diagram{max-width:none;width:100%;padding-bottom:8px}
.doc-flow-diagram__summary{margin:0 0 16px}
.doc-flow-diagram__summary-kicker{
  display:block;font-size:11px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#94a3b8;margin-bottom:2px;
}
.doc-flow-diagram__summary-title{
  display:block;font-size:16px;font-weight:800;color:#0f172a;letter-spacing:-.01em;
}
.doc-flow-diagram__lede{
  margin:6px 0 0;font-size:13px;line-height:1.45;color:#64748b;
}
.doc-flow-diagram__empty{
  padding:28px 12px;text-align:center;color:#64748b;font-size:13px;
}

.doc-flow-rail--odl{
  display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;
  margin:0 0 14px;padding:12px 14px;
  border:1px dashed #cbd5e1;border-radius:14px;background:#fff;
}
.doc-flow-rail__label{
  font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;
}
.doc-flow-rail__odl-wrap{display:flex;flex-wrap:wrap;gap:8px}
.doc-flow-rail__join{
  display:inline-flex;align-items:center;gap:8px;color:#94a3b8;font-size:11px;font-weight:700;
}
.doc-flow-rail__join-line{
  display:inline-block;width:28px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#cbd5e1,#94a3b8);
}
.doc-flow-rail__join-label{text-transform:uppercase;letter-spacing:.04em}

.doc-flow-pipeline-wrap{
  overflow-x:auto;overflow-y:hidden;padding:4px 2px 10px;
  scroll-snap-type:x proximity;
}
.doc-flow-pipeline-inner{
  position:relative;display:inline-flex;min-width:100%;vertical-align:top;
  width:max-content;box-sizing:border-box;
}
.doc-flow-edges{
  position:absolute;left:0;top:0;z-index:3;
  pointer-events:none;overflow:visible;
}
.doc-flow-edge-path{
  stroke:#059669;stroke-width:2;stroke-linecap:round;fill:none;
  opacity:.95;
}
.doc-flow-pipeline{
  position:relative;z-index:1;
  display:flex;align-items:stretch;gap:0;
  flex:1 1 auto;min-width:100%;
}
.doc-flow-stage{
  flex:1 1 140px;min-width:132px;max-width:180px;
  display:flex;flex-direction:column;gap:8px;
  padding:10px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;
  scroll-snap-align:start;
}
.doc-flow-stage.is-current-stage{
  border-color:#a5b4fc;background:linear-gradient(180deg,#eef2ff 0%,#fff 70%);
  box-shadow:0 8px 24px rgba(99,102,241,.12);
}
.doc-flow-stage.is-past-stage{opacity:.92}
.doc-flow-stage.is-future-stage{opacity:.72}
.doc-flow-stage.is-empty{background:#f8fafc}
.doc-flow-stage__head{display:flex;align-items:flex-start;gap:8px}
.doc-flow-stage__index{
  flex:0 0 auto;width:22px;height:22px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#64748b;background:#e2e8f0;
}
.doc-flow-stage.is-current-stage .doc-flow-stage__index{
  background:#6366f1;color:#fff;
}
.doc-flow-stage.is-past-stage.has-docs .doc-flow-stage__index{
  background:#10b981;color:#fff;
}
.doc-flow-stage__titles{min-width:0}
.doc-flow-stage__title{
  display:block;font-size:12px;font-weight:800;color:#0f172a;line-height:1.2;
}
.doc-flow-stage__hint{
  display:block;font-size:10px;color:#94a3b8;line-height:1.3;margin-top:1px;
}
.doc-flow-stage__body{display:flex;flex-direction:column;gap:6px;flex:1}
.doc-flow-stage__odls{
  display:flex;flex-direction:column;gap:5px;
  padding:6px;margin-bottom:2px;
  border-radius:10px;background:#f1f5f9;border:1px dashed #cbd5e1;
}
.doc-flow-stage__odls-label{
  font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b;
}
.doc-flow-stage__odls .doc-flow-card{background:#fff}
.doc-flow-card__assignee{
  display:block;margin-top:2px;font-size:10px;font-weight:700;color:#475569;line-height:1.25;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.doc-flow-connector{
  flex:0 0 18px;display:flex;align-items:center;justify-content:center;align-self:center;
}
.doc-flow-connector span{
  display:block;width:18px;height:2px;border-radius:2px;background:#e2e8f0;
}
.doc-flow-connector.is-traversed span{background:#34d399}
.doc-flow-connector.is-active span{
  background:linear-gradient(90deg,#6366f1,#a5b4fc);
}
.doc-flow-connector.is-soft span{
  opacity:.35;
}

.doc-flow-card{
  appearance:none;-webkit-appearance:none;font:inherit;text-align:left;cursor:pointer;
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  width:100%;padding:8px 9px;border-radius:10px;
  border:1px solid #e2e8f0;background:#fff;color:#0f172a;
  transition:border-color .15s,box-shadow .15s,transform .15s;
}
button.doc-flow-card:hover{
  border-color:#93c5fd;box-shadow:0 4px 12px rgba(15,23,42,.06);transform:translateY(-1px);
}
.doc-flow-card.is-current{
  border-color:#818cf8;background:#eef2ff;
  box-shadow:0 0 0 2px rgba(99,102,241,.2);
}
.doc-flow-card.is-done{border-color:#a7f3d0;background:#ecfdf5}
.doc-flow-card.is-ghost,
.doc-flow-card.is-pending{
  cursor:default;border-style:dashed;background:#f8fafc;color:#94a3b8;
  box-shadow:none;
}
.doc-flow-card.is-odl{border-color:#cbd5e1;background:#f8fafc}
.doc-flow-card__badge{
  font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  color:#64748b;
}
.doc-flow-card--prev .doc-flow-card__badge{color:#7e22ce}
.doc-flow-card--ord .doc-flow-card__badge{color:#1d4ed8}
.doc-flow-card--cons .doc-flow-card__badge{color:#047857}
.doc-flow-card--ddt .doc-flow-card__badge{color:#c2410c}
.doc-flow-card--pf .doc-flow-card__badge{color:#3730a3}
.doc-flow-card--fatt .doc-flow-card__badge{color:#b45309}
.doc-flow-card--odl .doc-flow-card__badge{color:#475569}
.doc-flow-card__title{font-size:13px;font-weight:800;line-height:1.2}
.doc-flow-card__meta{
  font-size:10px;color:#64748b;line-height:1.3;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.doc-flow-card__stats{
  display:block;margin-top:1px;
  font-size:11px;font-weight:600;line-height:1.3;color:#334155;
}
.doc-flow-card.is-current .doc-flow-card__stats{color:#312e81}
.doc-flow-card.is-ghost .doc-flow-card__meta{color:#94a3b8}
.doc-flow-stage__progress{
  margin-top:6px;padding:6px 8px;border-radius:8px;
  font-size:11px;font-weight:650;line-height:1.35;color:#1e293b;
  background:#f1f5f9;border:1px solid #e2e8f0;
}
.doc-flow-stage__progress.is-pending{
  background:#fff7ed;border-color:#fed7aa;color:#9a3412;
}
.doc-flow-stage__progress.is-ready{
  background:#ecfdf5;border-color:#a7f3d0;color:#047857;
}
.doc-flow-card__flag{
  margin-top:2px;font-size:9px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#4338ca;
}

.doc-flow-legend{
  display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:12px;
  font-size:11px;color:#64748b;
}
.doc-flow-legend__item{display:inline-flex;align-items:center;gap:6px}
.doc-flow-legend__swatch{
  width:12px;height:12px;border-radius:4px;border:1px solid #e2e8f0;background:#fff;
}
.doc-flow-legend__swatch.is-current{background:#eef2ff;border-color:#818cf8}
.doc-flow-legend__swatch.is-done{background:#ecfdf5;border-color:#34d399}
.doc-flow-legend__swatch.is-pending{background:#f8fafc;border-style:dashed}
.doc-flow-legend__swatch.is-odl{background:#f1f5f9;border-color:#94a3b8}
.doc-flow-legend__swatch.is-edge{
  background:transparent;border:none;border-radius:0;
  width:14px;height:2px;background:#059669;position:relative;
}
.doc-flow-legend__swatch.is-edge::after{
  content:"";position:absolute;right:-1px;top:-3px;
  border:4px solid transparent;border-left-color:#059669;border-right-width:0;
}

/* Megaschema */
.doc-mega{display:flex;flex-direction:column;gap:14px;min-height:100%}
.doc-mega-filters{
  display:flex;flex-direction:column;gap:14px;
  padding:14px 16px 16px;border:1px solid #e2e8f0;border-radius:14px;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(99,102,241,.06), transparent 55%),
    linear-gradient(180deg,#fff 0%,#f8fafc 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
}
.doc-mega-filters__head{display:flex;flex-direction:column;gap:4px;max-width:720px}
.doc-mega-filters__kicker{
  font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6366f1;
}
.doc-mega-filters__title{
  font-size:15px;font-weight:800;color:#0f172a;letter-spacing:-.01em;line-height:1.2;
}
.doc-mega-filters__hint{
  margin:0;font-size:12px;line-height:1.45;color:#64748b;
}
.doc-mega-filters__grid{
  display:grid;
  grid-template-columns:minmax(220px,1.4fr) minmax(220px,.9fr) auto;
  gap:12px 14px;align-items:end;
}
.doc-mega-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.doc-mega-field label,
.doc-mega-field__label{
  font-size:11px;font-weight:700;color:#64748b;letter-spacing:.02em;
}
.doc-mega-req{color:#dc2626}
.doc-mega-input{
  width:100%;min-height:38px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:10px;
  font:inherit;font-size:13px;background:#fff;color:#0f172a;
  transition:border-color .15s,box-shadow .15s;
}
.doc-mega-input:focus{
  outline:none;border-color:#818cf8;box-shadow:0 0 0 3px rgba(99,102,241,.15);
}
.doc-mega-client-wrap{position:relative}
.doc-mega-client-wrap .doc-mega-input{padding-left:34px;padding-right:34px}
.doc-mega-client-ico{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);
  color:#94a3b8;font-size:14px;pointer-events:none;line-height:1;
}
.doc-mega-client-wrap.is-picked .doc-mega-input{
  border-color:#a5b4fc;background:#eef2ff;
}
.doc-mega-clear{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:24px;height:24px;border:0;border-radius:999px;background:#e2e8f0;color:#475569;
  cursor:pointer;line-height:1;font-size:15px;
}
.doc-mega-clear:hover{background:#cbd5e1}
.doc-mega-results{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;
  max-height:240px;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;
  background:#fff;box-shadow:0 14px 30px rgba(15,23,42,.14);
}
.doc-mega-result{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
  padding:10px 12px;border:0;border-bottom:1px solid #f1f5f9;background:#fff;
  text-align:left;cursor:pointer;font:inherit;color:#0f172a;
}
.doc-mega-result:last-child{border-bottom:0}
.doc-mega-result:hover{background:#f8fafc}
.doc-mega-result strong{font-size:13px}
.doc-mega-result small{font-size:11px;color:#64748b}
.doc-mega-result.is-empty{cursor:default;color:#94a3b8}
.doc-mega-dates{
  display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;
}
.doc-mega-dates__sep{color:#94a3b8;font-weight:700;font-size:12px}
.doc-mega-field--actions{justify-content:flex-end}
.doc-mega-generate{
  min-height:38px;padding:0 16px;white-space:nowrap;
  box-shadow:0 6px 16px rgba(79,70,229,.18);
}
.doc-mega-filters__types{display:flex;flex-direction:column;gap:8px}
.doc-mega-filters__types-label{
  font-size:11px;font-weight:700;color:#64748b;letter-spacing:.02em;
}
.doc-mega-filters__chips{display:flex;flex-wrap:wrap;gap:8px}
.doc-mega-chip{
  position:relative;display:inline-flex;align-items:center;gap:7px;
  margin:0;padding:7px 10px 7px 8px;border-radius:999px;cursor:pointer;
  border:1px solid #e2e8f0;background:#fff;color:#475569;
  font-size:12px;font-weight:650;user-select:none;
  transition:border-color .15s,background .15s,color .15s,box-shadow .15s;
}
.doc-mega-chip input{
  position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;
}
.doc-mega-chip__badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;padding:2px 6px;border-radius:999px;
  font-size:10px;font-weight:800;letter-spacing:.03em;
  background:#f1f5f9;color:#64748b;
}
.doc-mega-chip:hover{border-color:#cbd5e1;background:#f8fafc}
.doc-mega-chip.is-on{
  border-color:#a5b4fc;background:#eef2ff;color:#312e81;
  box-shadow:0 0 0 1px rgba(99,102,241,.12);
}
.doc-mega-chip.is-on .doc-mega-chip__badge{
  background:#6366f1;color:#fff;
}
.doc-mega-msg{
  padding:11px 13px;border-radius:12px;border:1px solid #e2e8f0;
  background:#f8fafc;color:#475569;font-size:13px;line-height:1.4;
}
.doc-mega-msg.is-error{
  border-color:#fecaca;background:#fef2f2;color:#b91c1c;
}
.doc-mega-diagram{min-width:0}
.doc-flow-diagram.is-mega .doc-flow-stage.is-empty{opacity:.55}
.doc-flow-diagram.is-mega .doc-flow-stage.has-docs{opacity:1}
.doc-flow-diagram.is-mega .doc-flow-stage{
  max-width:none;
}

/* Mappa dei collegamenti — pagina dedicata (solo schema, niente elenco) */
.doc-list-split--mappa.is-open{
  height:calc(100vh - var(--doc-list-split-offset, 120px));
  max-height:calc(100vh - var(--doc-list-split-offset, 120px));
  overflow:hidden;
}
.doc-list-split--mappa .doc-list-split__top,
.doc-list-split--mappa .doc-list-split__gutter{
  display:none!important;
  flex:0 0 0!important;
  height:0!important;
  min-height:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.doc-list-split--mappa.is-open .doc-list-split__bottom{
  display:flex!important;
  flex:1 1 auto!important;
  height:100%;
  max-height:100%;
  border:0;box-shadow:none;border-radius:0;
}
.doc-list-split--mappa .doc-list-split__bottom-head{display:none!important}
.doc-list-split__bottom-actions .doc-list-split__doc-close{
  display:none!important;
}
/* Pagina mappa dedicata: × solo con documento affiancato */
.doc-list-split--mappa .doc-list-split__doc-close--mappa[hidden]{
  display:none!important;
}
.doc-list-split--mappa .doc-list-split__doc-close--mappa{
  position:absolute;top:12px;right:12px;z-index:8;
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;min-width:34px;height:34px;padding:0;
  border-radius:10px;background:#fff;border:1px solid #e2e8f0;color:#475569;
  box-shadow:0 6px 16px rgba(15,23,42,.12);
}
.doc-list-split--mappa:not(.is-flow-doc-split) .doc-list-split__doc-close--mappa{
  display:none!important;
}
.doc-list-split--mappa .doc-list-split__bottom{
  position:relative;
}
.billing-page--mappa .billing-table-card{
  border:0;box-shadow:none;background:transparent;padding:0;
}
.billing-page--mappa .billing-hub--mappa{
  margin-bottom:10px;
}
.billing-mappa-filters{
  margin:0 0 10px;
}
.billing-mappa-filters .doc-stats--mappa{
  margin:0;
}
.billing-mappa-filters .doc-stats--mappa .doc-stats__bar{
  flex-wrap:nowrap;
}
/* Pagina dedicata: barra tipi compatta, senza card “modal” e testo lungo */
.doc-mega--hub-driven{
  gap:12px;
}
.doc-mega--hub-driven .doc-mega-filters--compact{
  flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 14px;
  padding:10px 12px;border-radius:12px;border-color:#e8edf3;
  background:#fff;
  box-shadow:none;
}
.doc-mega--hub-driven .doc-mega-filters__head--inline{
  display:flex;flex-direction:column;gap:2px;max-width:none;margin:0;flex:0 1 180px;min-width:120px;
}
.doc-mega--hub-driven .doc-mega-filters__title{
  font-size:13px;font-weight:800;color:#0f172a;letter-spacing:-.01em;
}
.doc-mega--hub-driven .doc-mega-filters__hint{
  margin:0;font-size:11px;line-height:1.35;color:#94a3b8;max-width:none;
}
.doc-mega--hub-driven .doc-mega-filters__types--inline{
  flex:1 1 auto;min-width:0;gap:0;
}
.doc-mega--hub-driven .doc-mega-filters__chips{
  gap:6px;
}
.doc-mega--hub-driven .doc-mega-chip{
  padding:5px 9px 5px 6px;font-size:11px;
}
.doc-mega--hub-driven .doc-mega-chip__badge{
  min-width:30px;padding:1px 5px;font-size:9px;
}
.doc-mega--hub-driven .doc-mega-diagram{
  padding-top:2px;
}

/* Megaschema fullscreen */
.doc-list-split.is-mega-fullscreen{
  position:fixed;inset:0;z-index:10050;
  height:100vh!important;max-height:100vh!important;
  width:100vw;margin:0;padding:0;border-radius:0;
  background:#f1f5f9;
}
.doc-list-split.is-mega-fullscreen .doc-list-split__top,
.doc-list-split.is-mega-fullscreen .doc-list-split__gutter{
  display:none!important;
}
.doc-list-split.is-mega-fullscreen .doc-list-split__bottom{
  display:flex!important;
  flex:1 1 auto!important;
  height:100%;max-height:100%;
  border:0;border-radius:0;box-shadow:none;
}
.doc-list-split.is-mega-fullscreen .doc-list-split__bottom-head{
  padding:12px 18px;background:#fff;
}
.doc-list-split.is-mega-fullscreen .doc-list-split__flow{
  padding:16px 18px 24px;
}
#doc-list-split-fullscreen.is-active{
  border-color:#a5b4fc;background:#eef2ff;color:#312e81;
}
body.doc-mega-fullscreen{
  overflow:hidden;
}

@media (max-width:900px){
  .doc-mega-filters__grid{grid-template-columns:1fr}
  .doc-mega-field--actions{align-items:stretch}
  .doc-mega-generate{width:100%}
  .doc-flow-stage{min-width:120px}
}
main.container.main:has(.doc-list-split.is-open){
  max-width:none;padding-bottom:0;
}
@media (max-width:900px){
  .doc-list-split-btn__label{display:none}
  .doc-list-split-btn{padding:0 8px;min-width:28px}
}

/* Documento in iframe split — max-width, allineato a sinistra (come dettaglio scheda / editor) */
body.embed-body{
  margin:0;background:#f8fafc;min-height:100vh;
}
body.embed-body--document{
  background:#f8fafc;
}
body.embed-body--document .billing-page,
body.embed-body--document .billing-page--editor{
  max-width:min(var(--app-content-max-width, 370mm), 100%);
  width:100%;
  margin:0;
  margin-right:auto;
  padding:10px 12px 24px;
  box-sizing:border-box;
  background:#fff;
  min-height:100vh;
}
body.embed-body--document .billing-page__head-actions a[href*="/documenti"]{
  /* resta cliccabile: target=_parent impostato da embed.php */
}
body.embed-body--document .billing-doc-flow-trigger{
  display:none!important;
}

.billing-doc-head__row--foot{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px 16px;flex-wrap:wrap;
  margin-top:10px;padding-top:10px;
  border-top:1px solid #f1f5f9;
}
.billing-doc-head__hint{
  margin:0;font-size:12.5px;line-height:1.45;color:#64748b;
  flex:1;min-width:min(100%,220px);
}
.billing-page__title{margin:0;font-size:24px;font-weight:800;letter-spacing:-.01em}
.billing-page__title-row{display:flex;align-items:center;gap:14px 18px;flex-wrap:wrap;margin-bottom:4px}
.billing-page__title-row .billing-page__title{margin:0}
.billing-page__doc-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.billing-page__doc-inline-field{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0}
.billing-page__doc-input{border:0;background:transparent;font-size:13px;font-weight:800;color:#0f172a;padding:2px 0;min-width:2.5ch;width:8.5ch;max-width:8.5ch;font-variant-numeric:tabular-nums;font-family:inherit}
.billing-page__doc-input--date{width:auto;min-width:130px;font-weight:700}
.billing-page__doc-inline-field--client{max-width:min(320px,42vw)}
.billing-page__doc-client-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.billing-page__doc-client-name.is-empty{color:#94a3b8;font-weight:600}
.billing-page__doc-input:focus{outline:none;box-shadow:0 0 0 2px rgba(99,102,241,.22);border-radius:6px}
.billing-page__doc-mini{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.billing-page__doc-mini-item{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0}
.billing-page__doc-mini-label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.billing-page__doc-mini-value{font-size:12px;font-weight:800;color:#0f172a}
.billing-page__subtitle{margin:6px 0 0;font-size:13px;line-height:1.5;color:#64748b;max-width:680px}
.billing-status-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px 5px 10px;border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.02em;flex-shrink:0;
}
.billing-status-pill--inline{
  padding:3px 10px 3px 8px;font-size:10.5px;font-weight:700;
}
.billing-status-pill::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:currentColor;opacity:.75;flex-shrink:0;
}
.billing-status-pill.is-open{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}
.billing-status-pill.is-open::before{animation:billing-status-pulse 2.4s ease-in-out infinite}
@keyframes billing-status-pulse{
  0%,100%{opacity:.45;transform:scale(1)}
  50%{opacity:1;transform:scale(1.2)}
}
@media (max-width:760px){
  .billing-doc-head{padding:10px 12px;border-radius:12px;flex-wrap:wrap}
  .billing-doc-head__chips{margin-left:0;width:100%;flex-wrap:wrap}
  .billing-page--editor .billing-doc-head{flex-wrap:wrap}
  .billing-page--editor .billing-doc-head__chips{flex-wrap:wrap;width:100%}
  .billing-page--editor .billing-page__head{flex-wrap:wrap}
  .billing-page--editor .billing-page__head-actions{width:100%}
  .billing-doc-chip{flex:1 1 auto;min-width:0}
  .billing-doc-chip--number,.billing-doc-chip--date{flex:0 0 auto}
  .billing-doc-chip--client{max-width:none}
}

.billing-alert{padding:11px 14px;border-radius:10px;font-size:13px;font-weight:600;margin-bottom:16px}
.billing-alert--error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.billing-alert--ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.billing-alert--info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.billing-alert--warning{background:#fffbeb;color:#b45309;border:1px solid #fde68a}
.billing-edit-lock-banner{margin-top:0}
.billing-edit-lock-reclaim-form{margin:10px 0 0;display:flex;gap:8px;align-items:center}
.billing-edit-lock-lost{position:sticky;top:8px;z-index:20}
.billing-stat--warn{border-color:#fcd34d;background:#fffbeb}
.billing-gest-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800}
.billing-gest-pill.is-sent{background:#dcfce7;color:#15803d}
.billing-gest-pill.is-pending{background:#fef3c7;color:#b45309}
.billing-gestionale-card{padding:18px 20px;margin-bottom:18px}
.billing-gestionale-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.billing-gestionale-card__title{margin:0 0 4px;font-size:15px;font-weight:800}
.billing-gestionale-card__actions{display:flex;gap:10px;flex-wrap:wrap}
.billing-doc-card__link{display:block;text-decoration:none;color:inherit}
.billing-doc-card__send{padding:0 16px 14px}
.btn--block{width:100%;justify-content:center}

/* Steps */
.billing-steps{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:0}
.billing-steps li{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#475569;background:#fff;border:1px solid #e8edf3;border-radius:999px;padding:7px 14px 7px 8px}
.billing-steps__n{width:20px;height:20px;border-radius:50%;background:#6366f1;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}

/* Stat strip */
.billing-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.billing-stat{background:#fff;border:1px solid #e8edf3;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.billing-stat__value{font-size:24px;font-weight:800;line-height:1;letter-spacing:-.02em}
.billing-stat__label{font-size:12px;color:#94a3b8;font-weight:600}
@media (max-width:760px){.billing-stats{grid-template-columns:repeat(2,1fr)}}

/* Billing hub: tabs + documenti */
.billing-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;border-bottom:1px solid #e8edf3;padding-bottom:0}
.billing-tabs__item{
    display:inline-flex;align-items:center;gap:8px;padding:10px 16px 12px;
    font-size:13px;font-weight:700;color:#64748b;text-decoration:none;
    border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;
}
.billing-tabs__item:hover{color:#334155}
.billing-tabs__item.is-active{color:#4338ca;border-bottom-color:#6366f1}
.billing-tabs__badge{
    font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;
    background:#eef2ff;color:#4338ca;line-height:1.3;
}
.billing-tabs__badge--warn{background:#fef3c7;color:#b45309}

.billing-documents{background:#fff;border:1px solid #e8edf3;border-radius:16px;padding:16px 18px 18px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.billing-table-card{padding:10px 14px 12px;border-radius:12px;box-shadow:0 4px 14px rgba(15,23,42,.05)}
.billing-table-card .section-header.billing-table-toolbar{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:6px;
    margin-bottom:6px;
    padding:0;
    border:none
}
.billing-table-toolbar{display:flex;flex-direction:column;gap:6px;margin-bottom:6px;width:100%}
.billing-table-toolbar__row{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;width:100%}
.billing-table-toolbar__tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
.billing-grid-count{font-size:12px;font-weight:700;color:#64748b;white-space:nowrap}
.billing-table-card .section-header.billing-table-toolbar .tasks-date-filters-bar.billing-date-filters{
    flex-wrap:nowrap;
    width:100%;
    margin:0;
    padding:5px 10px;
    display:flex;
    align-items:center;
    gap:8px 12px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:6px;
    box-sizing:border-box;
    min-height:0
}
.billing-date-filter-group{
    display:flex;
    align-items:center;
    gap:6px;
    flex:1 1 auto;
    min-width:0;
    flex-wrap:nowrap
}
.billing-date-filter-group label{
    font-size:12px;
    font-weight:500;
    color:#64748b;
    white-space:nowrap;
    margin:0;
    flex-shrink:0
}
.billing-date-filter-group input[type=date]{
    padding:4px 8px;
    border:1px solid #e2e8f0;
    border-radius:4px;
    font-size:12px;
    background:#fff;
    width:130px;
    min-width:130px;
    max-width:130px;
    flex-shrink:0;
    height:30px;
    box-sizing:border-box
}
.billing-date-filter-group input[type=date]:focus{
    border-color:#3b82f6;
    outline:none;
    box-shadow:0 0 0 2px rgba(59,130,246,.12)
}
.billing-date-filters .tasks-date-filter-arrow{color:#94a3b8;font-size:11px;flex-shrink:0}
.billing-date-filters .tasks-date-presets{
    flex-shrink:0;
    margin-left:2px;
    padding-left:8px;
    border-left:1px solid #e2e8f0
}
.billing-date-filters .tasks-date-preset-select{
    min-width:118px;
    height:30px;
    padding:4px 24px 4px 8px;
    font-size:12px;
    font-weight:500;
    color:#475569;
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 6px center;
    border:1px solid #e2e8f0;
    border-radius:4px;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    box-sizing:border-box
}
.billing-date-filters .tasks-date-preset-select:hover{border-color:#93c5fd}
.billing-date-filters .tasks-date-preset-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px rgba(59,130,246,.15)}
.billing-date-filters .tasks-date-preset-select.has-value{color:#1d4ed8;border-color:#93c5fd;background-color:#eff6ff}
.billing-date-filters .tasks-date-filters-actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex-shrink:0;
    margin-left:auto
}
.billing-date-btn{
    background:#3b82f6;color:#fff;border:none;padding:4px 12px;font-size:12px;font-weight:600;
    border-radius:4px;cursor:pointer;white-space:nowrap;height:30px;line-height:1;box-sizing:border-box
}
.billing-date-btn:hover{background:#2563eb}
.billing-date-btn--muted{background:#94a3b8}
.billing-date-btn--muted:hover{background:#64748b}
@media (max-width:900px){
    .billing-date-filters{
        flex-wrap:wrap;
        gap:6px 8px;
        padding:6px 8px
    }
    .billing-date-filter-group{
        flex:1 1 100%;
        flex-wrap:wrap
    }
    .billing-date-filters .tasks-date-filters-actions{
        margin-left:0;
        width:100%;
        justify-content:flex-end
    }
}
.billing-grid-scroll{max-height:calc(100vh - 250px);overflow:auto;-webkit-overflow-scrolling:touch;position:relative}
.billing-grid-list-wrap{
  position:relative;
}
.billing-bulk{margin-bottom:16px}
.billing-grid__col-select{width:40px;text-align:center;vertical-align:middle}
.billing-grid__col-select input{margin:0}
.billing-grid__col-select input:disabled{cursor:not-allowed;opacity:.45}
.billing-grid-row--locked-client{opacity:.45;pointer-events:none}
.billing-grid-row--locked-client .billing-grid__col-client,
.billing-grid-row--locked-client .billing-grid__col-document{color:#94a3b8}
.billing-grid-row--locked-client input.billing-chk-row,
.billing-grid-row--locked-client input.billing-chk-prefattura-row{
    pointer-events:none;
    cursor:not-allowed;
}
/* La riga resta leggibile ma non cliccabile; i link documento restano usabili. */
.billing-grid-row--locked-client a.billing-doc-table__link{
    pointer-events:auto;
}
.billing-doc-type-pill.is-proforma{background:#ede9fe;color:#5b21b6}
.billing-doc-type-pill.is-prefattura{background:#eef2ff;color:#3730a3}
.billing-doc-type-pill.is-consuntivo{background:#ecfdf5;color:#047857}
.billing-status-pill.is-prefattura{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe}
.billing-doc-flow-target{display:inline-flex;align-items:center;gap:4px;margin-left:6px;vertical-align:middle;flex-wrap:wrap}
.billing-doc-flow-target__sep{color:#94a3b8;font-size:12px;font-weight:700}
.billing-grid-table{width:100%;min-width:1100px}
.billing-table-card .billing-grid-table.tasks-grid tbody td,
.billing-table-card .itickets-table.billing-grid-table tbody td,
.billing-table-card table.billing-grid-table tbody td{
    padding:4px 6px !important;
    line-height:1.2;
    font-size:12px;
    vertical-align:middle;
    height:34px;
    max-height:34px;
    overflow:hidden;
    white-space:nowrap;
}
.billing-table-card .billing-grid-table tbody tr.billing-grid-row{
    height:34px;
}
.billing-table-card .billing-grid-table tbody td.billing-grid__col-merge_sources{
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    max-width:280px;
}
.billing-table-card .billing-grid__col-merge_sources{
    width:220px;min-width:160px;max-width:280px;
    text-align:left!important;
    padding-left:6px!important;padding-right:8px!important;
}
.billing-table-card .billing-grid__col-merge_sources .billing-lineage-cell{
    flex-wrap:nowrap;min-width:max-content;align-items:center;
}
.billing-table-card .billing-grid__col-merge_sources .billing-lineage-cell__body{
    min-width:0;overflow:visible;
}
.billing-table-card .billing-grid__col-merge_sources .billing-lineage-compact__inline{
    flex-wrap:nowrap;
}
.billing-table-card .billing-grid__col-merge_sources .billing-lineage__node{
    font-size:11px;padding:2px 6px 2px 3px;
}
.billing-table-card .billing-grid__col-merge_sources .billing-lineage__badge{
    min-width:28px;height:16px;font-size:8px;
}
.billing-table-card .billing-grid__col-document{
    white-space:normal;
    overflow:hidden;
    max-width:220px;
}
.billing-table-card .billing-grid__col-document .billing-doc-flow-target{
    display:none;
}
.billing-table-card .billing-status-pill{
    padding:1px 6px 1px 5px;
    min-height:0;
    font-size:10px;
    line-height:1.2;
    gap:4px;
}
.billing-table-card .billing-status-pill::before{
    width:5px;height:5px;
}
.billing-table-card .billing-doc-type-pill{
    padding:1px 5px;
    font-size:9px;
    margin-right:4px;
    line-height:1.2;
}
.billing-table-card .billing-grid__actions{
    gap:3px;
    flex-wrap:nowrap;
}
.billing-table-card .billing-grid__actions .btn.tiny,
.billing-table-card .billing-grid__actions .btn.small{
    padding:2px 6px;
    font-size:10px;
    line-height:1.2;
    border-radius:5px;
    height:auto;
    min-height:0;
}
.billing-table-card .billing-lineage-eye{
    width:22px;height:22px;padding:0;
}
.billing-table-card .billing-lineage__node{
    padding:1px 5px 1px 2px;
    font-size:10px;
    line-height:1.15;
}
.billing-table-card .billing-lineage__badge{
    min-width:24px;height:14px;font-size:8px;
}
.billing-grid-table thead th.is-sorted-asc::after,
.billing-grid-table thead th.is-sorted-desc::after,
.billing-grid-table.tasks-grid thead th.is-sorted-asc::after,
.billing-grid-table.tasks-grid thead th.is-sorted-desc::after,
.billing-grid-table.itickets-table thead th.is-sorted-asc::after,
.billing-grid-table.itickets-table thead th.is-sorted-desc::after{
    content:''!important;
    display:inline-block;
    width:0;height:0;
    margin-left:5px;
    vertical-align:middle;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    font-size:0;
    line-height:0;
    color:transparent;
    position:static;
    right:auto;
    top:auto;
    transform:none;
    pointer-events:none
}
.billing-grid-table thead th.is-sorted-asc::after,
.billing-grid-table.tasks-grid thead th.is-sorted-asc::after,
.billing-grid-table.itickets-table thead th.is-sorted-asc::after{
    border-bottom:5px solid #6366f1;
    border-top:none
}
.billing-grid-table thead th.is-sorted-desc::after,
.billing-grid-table.tasks-grid thead th.is-sorted-desc::after,
.billing-grid-table.itickets-table thead th.is-sorted-desc::after{
    border-top:5px solid #6366f1;
    border-bottom:none
}
.billing-grid-table.itickets-table thead th[data-sort-key]::after,
.billing-grid-table.tasks-grid thead th[data-sort-key]:not(.is-sorted-asc):not(.is-sorted-desc)::after{
    content:''!important;
    display:none
}
.billing-grid__col-client{font-weight:600;color:#0f172a;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.billing-grid__col-payment{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.billing-grid__num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:800;color:#0f172a}
.billing-grid-table td.billing-grid__col-hub_state,
.billing-grid-table td.billing-grid__col-gestione,
.billing-grid-table td.billing-grid__col-evasione,
.billing-grid-table td.billing-grid__col-prev_trasmesso,
.billing-grid-table td.billing-grid__col-prev_confermato,
.billing-grid-table td.billing-grid__col-pf_invio_cortesia,
.billing-grid-table td.billing-grid__col-pf_trasformata,
.billing-grid-table td.billing-grid__col-fatt_invio_sdi,
.billing-grid-table td.billing-grid__col-fatt_pagamento,
.billing-grid-table td.billing-grid__col-ddt_invio,
.billing-grid-table td.billing-grid__col-ddt_firma,
.billing-grid-table td.billing-grid__col-ddt_fatturato{
    text-align:center!important;
    vertical-align:middle
}
.billing-grid-table th.billing-grid__col-hub_state .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-hub_state .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-gestione .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-gestione .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-evasione .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-evasione .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-prev_trasmesso .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-prev_trasmesso .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-prev_confermato .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-prev_confermato .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-pf_invio_cortesia .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-pf_invio_cortesia .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-pf_trasformata .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-pf_trasformata .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-fatt_invio_sdi .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-fatt_invio_sdi .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-fatt_pagamento .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-fatt_pagamento .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-ddt_invio .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-ddt_invio .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-ddt_firma .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-ddt_firma .tasks-grid-filter-input,
.billing-grid-table th.billing-grid__col-ddt_fatturato .tasks-grid-filter,
.billing-grid-table th.billing-grid__col-ddt_fatturato .tasks-grid-filter-input{
    text-align:center
}
.billing-grid-table td.billing-grid__col-hub_state .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-gestione .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-evasione .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-prev_trasmesso .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-prev_confermato .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-pf_invio_cortesia .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-pf_trasformata .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-fatt_invio_sdi .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-fatt_pagamento .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-ddt_invio .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-ddt_firma .billing-doc-hub-state,
.billing-grid-table td.billing-grid__col-ddt_fatturato .billing-doc-hub-state{
    display:inline-flex;align-items:center;justify-content:center;
    margin:0 auto;min-width:7.5rem;max-width:100%
}
.billing-doc-hub-state--readonly{cursor:default;user-select:none}
.billing-doc-hub-state--cortesia-action{
    cursor:pointer;appearance:none;-webkit-appearance:none;font:inherit;
    margin:0;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
    background-image:none
}
.billing-doc-hub-state--cortesia-action:hover{filter:brightness(.97);border-color:#94a3b8}
.billing-doc-hub-state--cortesia-action.is-saving{opacity:.55;cursor:wait}
.billing-doc-hub-state,
button.billing-doc-hub-state{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:22px;padding:4px 10px;border-radius:999px;box-sizing:border-box;
    font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;line-height:1.35;
    background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;white-space:nowrap
}
.billing-doc-hub-state--normal{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
/* Badge/span readonly: palette semantica (specificità > regola base grigia sopra) */
.billing-doc-hub-state.billing-doc-hub-state--non_evaso,
.billing-doc-hub-state.billing-doc-hub-state--non_confermato,
.billing-doc-hub-state.billing-doc-hub-state--no,
.billing-doc-hub-state.billing-doc-hub-state--non_inviato,
.billing-doc-hub-state.billing-doc-hub-state--non_firmato,
.billing-doc-hub-state.billing-doc-hub-state--non_fatturato,
.billing-doc-hub-state.billing-doc-hub-state--non_inviata,
.billing-doc-hub-state.billing-doc-hub-state--trasformata_no,
.billing-doc-hub-state.billing-doc-hub-state--non_pagata{
    background:#fef2f2;color:#b91c1c;border-color:#fecaca
}
.billing-doc-hub-state.billing-doc-hub-state--evaso,
.billing-doc-hub-state.billing-doc-hub-state--confermato,
.billing-doc-hub-state.billing-doc-hub-state--si,
.billing-doc-hub-state.billing-doc-hub-state--inviato,
.billing-doc-hub-state.billing-doc-hub-state--firmato,
.billing-doc-hub-state.billing-doc-hub-state--inviata,
.billing-doc-hub-state.billing-doc-hub-state--trasformata_si,
.billing-doc-hub-state.billing-doc-hub-state--pagata,
.billing-doc-hub-state.billing-doc-hub-state--fatturato,
.billing-doc-hub-state.billing-doc-hub-state--gestito{
    background:#ecfdf5;color:#047857;border-color:#a7f3d0
}
.billing-doc-hub-state.billing-doc-hub-state--parziale{
    background:#fffbeb;color:#b45309;border-color:#fde68a
}
.billing-grid-table td.billing-grid__col-hub_state .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-gestione .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-evasione .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-prev_trasmesso .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-prev_confermato .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-pf_invio_cortesia .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-pf_trasformata .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-fatt_invio_sdi .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-fatt_pagamento .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-ddt_invio .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-ddt_firma .billing-doc-hub-state-select,
.billing-grid-table td.billing-grid__col-ddt_fatturato .billing-doc-hub-state-select{
    display:block;width:100%;max-width:168px;margin:0 auto;
    box-sizing:border-box;text-align:center;text-align-last:center;
    height:auto;min-height:22px;line-height:1.35;padding:4px 22px 4px 10px
}
.billing-doc-hub-state-select{
    appearance:none;-webkit-appearance:none;cursor:pointer;
    border-radius:999px;line-height:1.35;min-height:22px;height:auto;
    font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
    background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2394a3b8' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 8px center
}
/* Select stati: palette semantica (sovrascrive il grigio di default sopra) */
.billing-doc-hub-state-select.billing-doc-hub-state--non_evaso,
.billing-doc-hub-state-select.billing-doc-hub-state--non_confermato,
.billing-doc-hub-state-select.billing-doc-hub-state--no,
.billing-doc-hub-state-select.billing-doc-hub-state--non_inviato,
.billing-doc-hub-state-select.billing-doc-hub-state--non_firmato,
.billing-doc-hub-state-select.billing-doc-hub-state--non_fatturato,
.billing-doc-hub-state-select.billing-doc-hub-state--non_inviata,
.billing-doc-hub-state-select.billing-doc-hub-state--trasformata_no,
.billing-doc-hub-state-select.billing-doc-hub-state--non_pagata{
    background-color:#fef2f2;color:#b91c1c;border-color:#fecaca
}
.billing-doc-hub-state-select.billing-doc-hub-state--evaso,
.billing-doc-hub-state-select.billing-doc-hub-state--confermato,
.billing-doc-hub-state-select.billing-doc-hub-state--si,
.billing-doc-hub-state-select.billing-doc-hub-state--inviato,
.billing-doc-hub-state-select.billing-doc-hub-state--firmato,
.billing-doc-hub-state-select.billing-doc-hub-state--inviata,
.billing-doc-hub-state-select.billing-doc-hub-state--trasformata_si,
.billing-doc-hub-state-select.billing-doc-hub-state--pagata,
.billing-doc-hub-state-select.billing-doc-hub-state--fatturato,
.billing-doc-hub-state-select.billing-doc-hub-state--gestito{
    background-color:#ecfdf5;color:#047857;border-color:#a7f3d0
}
.billing-doc-hub-state-select.billing-doc-hub-state--parziale{
    background-color:#fffbeb;color:#b45309;border-color:#fde68a
}
.billing-doc-hub-state-select.billing-doc-hub-state--stand_by,
.billing-doc-hub-state-select.billing-doc-hub-state--da_gestire{
    background-color:#fff7ed;color:#c2410c;border-color:#fed7aa
}
.billing-doc-hub-state-select.billing-doc-hub-state--in_gestione{
    background-color:#eff6ff;color:#1d4ed8;border-color:#bfdbfe
}
.billing-doc-hub-state-select.billing-doc-hub-state--archiviato,
.billing-doc-hub-state-select.billing-doc-hub-state--annullato,
.billing-doc-hub-state-select.billing-doc-hub-state--normal{
    background-color:#f1f5f9;color:#475569;border-color:#e2e8f0
}
.billing-doc-hub-state-select:hover{border-color:#cbd5e1}
.billing-doc-hub-state-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.2)}
.billing-doc-hub-state-select.is-saving{opacity:.55;cursor:wait}
.billing-doc-hub-state-select:disabled{cursor:wait}
.billing-doc-hub-state--stand_by{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.billing-doc-hub-state--archiviato,
.billing-doc-hub-state--annullato{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}
.billing-doc-hub-state--da_gestire{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.billing-doc-hub-state--in_gestione{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.billing-doc-list-text--wide{max-width:220px}
.billing-doc-list-text{
    width:100%;max-width:180px;box-sizing:border-box;
    height:28px;padding:2px 8px;border:1px solid #e2e8f0;border-radius:8px;
    font-size:12px;color:#0f172a;background:#fff
}
.billing-doc-list-text:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.2)}
.billing-doc-list-text.is-saving{opacity:.55}
.billing-grid-totals{
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;
    margin:0 0 8px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc
}
.billing-grid-totals.is-filtered{
    border-color:#c7d2fe;background:linear-gradient(180deg,#eef2ff 0%,#f8fafc 100%)
}
.billing-grid-totals__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;min-width:0}
.billing-grid-totals__title{
    font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#64748b
}
.billing-grid-totals__hint{font-size:11px;font-weight:600;color:#94a3b8}
.billing-grid-totals__metrics{
    display:flex;flex-wrap:wrap;align-items:stretch;gap:8px 14px;margin-left:auto
}
.billing-grid-totals__metric{
    display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:72px;padding:0 4px
}
.billing-grid-totals__metric--emph .billing-grid-totals__metric-value{color:#3730a3}
.billing-grid-totals__metric-value{
    font-size:15px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;line-height:1.1
}
.billing-grid-totals__metric-label{
    font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8
}
@media (max-width:720px){
    .billing-grid-totals__metrics{width:100%;margin-left:0;justify-content:space-between}
    .billing-grid-totals__metric{align-items:flex-start;min-width:0;flex:1 1 40%}
}
.billing-grid__actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;white-space:nowrap}
.billing-grid-row.is-draft td{background:linear-gradient(90deg,rgba(238,242,255,.35),transparent 120px)}
.billing-table-card .tasks-columns-panel{left:auto;right:0}
/* Con split aperto: position:fixed via JS (tasks-grid-columns.js) — evita clip di overflow:hidden e sovrapposizione sidebar */
.tasks-columns-panel.tasks-columns-panel--fixed{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-shadow:0 20px 48px rgba(15,23,42,.22),0 0 0 1px rgba(15,23,42,.06);
}
.tasks-columns-panel.tasks-columns-panel--fixed[hidden]{
  display:none!important;
}
.tasks-columns-panel.tasks-columns-panel--fixed .tasks-columns-panel__list{
  flex:1 1 auto;
  min-height:0;
}
.billing-table-card .billing-grid-table.tasks-grid thead th[data-col-key]{
    font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#64748b;
    background:#fff;border-bottom:1px solid #e2e8f0;white-space:nowrap
}
.billing-table-card .billing-grid-table .tasks-grid-filters-row th{background:#f8fafc}
.billing-grid-empty-cell{padding:28px 16px!important;text-align:center;border:none!important;background:transparent!important}
.billing-grid-empty__icon{font-size:28px;margin-bottom:8px}
.billing-grid-empty__title{font-size:15px;font-weight:800;color:#0f172a;margin-bottom:4px}
.billing-grid-empty__text{font-size:13px;color:#64748b;line-height:1.5}
.billing-grid-loading{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:72px;padding:20px 12px;font-size:13px;font-weight:600;color:#64748b;
}
.billing-grid-loading::before{
  content:"";width:16px;height:16px;border:2px solid #cbd5e1;border-top-color:#334155;
  border-radius:50%;animation:billing-grid-spin .7s linear infinite;
}
@keyframes billing-grid-spin{to{transform:rotate(360deg)}}
.billing-grid-skeleton-line{
  height:14px;margin:10px 8%;border-radius:6px;
  background:linear-gradient(90deg,#e2e8f0 0%,#f1f5f9 50%,#e2e8f0 100%);
  background-size:200% 100%;animation:billing-grid-shimmer 1.1s ease-in-out infinite;
}
@keyframes billing-grid-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
tr.billing-grid-row--skeleton td{padding:6px 0!important;border:none!important;background:transparent!important}
.billing-table-toolbar__row .tasks-columns-picker-wrap{flex:none}
.billing-table-toolbar__row .tasks-column-profiles-wrap{flex:none;position:relative}
.billing-documents__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.billing-doc-filters{display:inline-flex;flex-wrap:wrap;gap:4px;padding:3px;background:#f4f6fb;border:1px solid #e7eaf2;border-radius:10px}
.billing-doc-filters__btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border-radius:8px;
    border:1px solid transparent;background:transparent;color:#64748b;font-size:.8rem;font-weight:600;
    text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.billing-doc-filters__btn span{
    min-width:22px;text-align:center;padding:2px 8px;border-radius:999px;
    background:#e2e8f0;color:#475569;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;
}
.billing-doc-filters__btn:hover{background:#fff;color:#334155}
.billing-doc-filters__btn.is-active{background:#fff;color:#1e293b;border-color:#e2e8f0;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.billing-doc-filters__btn.is-active span{background:#e0e7ff;color:#4338ca}

.billing-doc-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.billing-doc-table{width:100%;border-collapse:collapse;font-size:13px;min-width:880px}
.billing-doc-table th{
    text-align:left;padding:10px 12px;font-size:11px;font-weight:800;text-transform:uppercase;
    letter-spacing:.05em;color:#94a3b8;border-bottom:1px solid #e8edf3;white-space:nowrap;
}
.billing-doc-table td{padding:12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.billing-doc-table__num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.billing-doc-table__total{font-weight:800;color:#0f172a}
.billing-doc-table__client{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#0f172a}
.billing-doc-table__link{font-weight:700;color:#4338ca;text-decoration:none}
.billing-doc-table__link:hover{text-decoration:underline}
.billing-doc-table__link--btn{
  display:inline;padding:0;border:0;background:transparent;font:inherit;font-weight:700;color:#4338ca;
  text-decoration:underline;text-underline-offset:2px;cursor:pointer
}
.billing-doc-table__link--btn:hover{color:#3730a3}
.billing-doc-table__muted{color:#94a3b8;font-size:12px}
.billing-doc-table__actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.billing-doc-row.is-draft{background:linear-gradient(90deg,#fffdf5 0%,#fff 12%)}
.billing-doc-row.is-invoiced{background:linear-gradient(90deg,#f0fdf4 0%,#fff 12%)}
.billing-doc-row:hover td{background:#f8fafc}

.billing-doc-cards{display:none;flex-direction:column;gap:10px}
.billing-doc-card{
    display:block;padding:14px 16px;border:1px solid #e8edf3;border-radius:14px;
    background:#fff;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(15,23,42,.04);
    transition:border-color .15s,box-shadow .15s;
}
.billing-doc-card:hover{border-color:#c7d2fe;box-shadow:0 6px 16px rgba(79,70,229,.1)}
.billing-doc-card.is-invoiced{border-left:4px solid #22c55e}
.billing-doc-card:not(.is-invoiced){border-left:4px solid #fbbf24}
.billing-doc-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.billing-doc-card__total{font-size:15px;color:#0f172a}
.billing-doc-card__client{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:4px}
.billing-doc-card__meta{font-size:12px;color:#94a3b8;font-weight:600}

.billing-queue-section{background:#fff;border:1px solid #e8edf3;border-radius:16px;padding:18px 20px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.billing-queue-section__head{margin-bottom:12px}
.billing-queue-section__title{margin:0 0 4px;font-size:16px;font-weight:800;color:#0f172a}
.billing-queue-section__sub{margin:0;font-size:13px;color:#64748b}
.billing-steps--compact{margin-bottom:16px}
.billing-queue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.billing-queue-grid .billing-client{margin-bottom:0}

@media (max-width:900px){
    .billing-grid-scroll{display:none}
    .billing-doc-cards{display:flex}
}

.billing-grid{display:grid;grid-template-columns:1fr;gap:20px;align-items:start;width:100%}
.billing-grid:has(.billing-side){grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);transition:grid-template-columns .2s ease}
.billing-grid.is-drafts-collapsed{grid-template-columns:minmax(0,1fr) 40px;gap:12px}
.billing-grid.is-drafts-collapsed .billing-side__body{display:none}
.billing-grid.is-drafts-collapsed .billing-side__head{
    flex-direction:column;
    align-items:center;
    gap:0;
    margin:0;
    padding:4px 0
}
.billing-grid.is-drafts-collapsed .billing-side__head .billing-col__title,
.billing-grid.is-drafts-collapsed .billing-side__head .billing-col__hint{display:none}
.billing-grid.is-drafts-collapsed .billing-side__toggle{width:32px;height:32px;border-radius:8px}
.billing-grid.is-drafts-collapsed .billing-side__toggle-icon{transform:rotate(180deg)}
.billing-main{min-width:0;width:100%}
.billing-table-card{width:100%;box-sizing:border-box}
@media (max-width:1024px){
    .billing-grid{grid-template-columns:1fr}
    .billing-grid.is-drafts-collapsed{grid-template-columns:1fr}
    .billing-grid.is-drafts-collapsed .billing-side{display:none}
    .billing-side{position:static}
    .billing-drafts-reopen{display:none}
    .billing-grid.is-drafts-collapsed .billing-drafts-reopen{display:inline-flex!important}
}
/* Schermi larghi (1920): più spazio alla coda e bozze laterali più strette */
@media (min-width:1500px){
    .billing-grid:has(.billing-side){grid-template-columns:minmax(0,2.4fr) minmax(360px,.85fr);gap:24px}
    .billing-grid.is-drafts-collapsed{grid-template-columns:minmax(0,1fr) 40px}
    /* Coda su due colonne di card per riempire la larghezza */
    .billing-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-content:start}
    .billing-col .billing-col__head,
    .billing-col .billing-empty-card{grid-column:1 / -1}
    .billing-client{margin-bottom:0}
}
@media (min-width:1850px){
    .billing-col{grid-template-columns:repeat(3,minmax(0,1fr))}
}

.billing-col,.billing-side{min-width:0}
.billing-side{position:sticky;top:16px;max-height:calc(100vh - 120px);overflow:auto;-webkit-overflow-scrolling:touch;align-self:stretch}
.billing-grid.is-drafts-collapsed .billing-side{
    overflow:visible;
    max-height:none;
    position:sticky;
    top:16px;
    align-self:start;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:10px;
    padding:6px 3px
}
.billing-side__toggle-icon{display:block;line-height:1;transition:transform .2s ease}
.billing-side .billing-draft-list{padding-bottom:4px}
.billing-col__head{display:flex;align-items:center;gap:10px;margin:0 2px 12px}
.billing-side__head{margin:0 0 10px;padding:0 2px}
.billing-col__title{margin:0;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#475569}
.billing-col__hint{font-size:12px;color:#94a3b8;margin-left:auto}
.billing-side__toggle{
    flex:0 0 auto;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;
    padding:0;border:1px solid #e2e8f0;border-radius:7px;background:#fff;color:#475569;
    font-size:16px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s
}
.billing-side__toggle:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}
.billing-drafts-reopen{display:inline-flex;align-items:center;gap:6px}
.billing-drafts-reopen__count{
    font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;
    background:#eef2ff;color:#4338ca;line-height:1.3
}

/* Empty states */
.billing-empty-card{background:#fff;border:1px dashed #d7dee8;border-radius:16px;padding:34px 20px;text-align:center}
.billing-empty-card--soft{border-style:solid;border-color:#e8edf3}
.billing-empty-card__icon{width:44px;height:44px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
.billing-empty-card__title{font-size:15px;font-weight:800;margin-bottom:4px}
.billing-empty-card__text{font-size:13px;color:#94a3b8;line-height:1.5}

/* Client card */
.billing-client{border:1px solid #e8edf3;border-radius:16px;background:#fff;margin-bottom:14px;box-shadow:0 1px 2px rgba(15,23,42,.04);overflow:hidden}
.billing-client__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid #eef1f5;background:#fbfcfe}
.billing-client__select{display:flex;align-items:center;gap:11px;cursor:pointer;min-width:0;flex:1}
.billing-client__id{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.billing-client__eyebrow{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#a3aec0;line-height:1}
.billing-client__name{font-size:15.5px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:1.25}
.billing-client__count{flex:none;font-size:11px;font-weight:800;color:#64748b;background:#eef2f7;border-radius:999px;padding:4px 11px;white-space:nowrap}
.billing-client.is-noclient .billing-client__name{color:#b45309}
.billing-client.is-noclient .billing-client__head{background:#fffbeb;border-bottom-color:#fde68a}
.billing-client__warn{font-size:12px;line-height:1.45;color:#92400e;background:#fffbeb;padding:9px 16px;border-bottom:1px solid #fef3c7}
.billing-client__locked{font-size:12px;font-weight:700;color:#b45309}

.billing-check-all{flex:none;width:18px;height:18px;margin:0;cursor:pointer;accent-color:#6366f1}
.billing-item__cb{flex:none;width:17px;height:17px;margin:0;cursor:pointer;accent-color:#6366f1}

.billing-items{list-style:none;margin:0;padding:6px 8px;display:flex;flex-direction:column;gap:2px}
.billing-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;transition:background .12s}
.billing-item:hover{background:#f6f8fb}
.billing-item__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;cursor:pointer}
.billing-item__title{font-size:13.5px;color:#1e293b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.billing-item__sub{display:flex;align-items:center;gap:5px;font-size:11px;color:#94a3b8}
.billing-item__id{font-weight:700;color:#64748b}
.billing-item__dot{opacity:.6}
.billing-tag{flex:none;font-size:10px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}

.billing-client__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid #eef1f5;background:#fbfcfe}
.billing-client__selected{font-size:12px;color:#94a3b8;font-weight:600}
.billing-client__foot .btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}

/* Drafts side */
.billing-draft-list{display:flex;flex-direction:column;gap:10px}
.billing-draft-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #e8edf3;border-radius:14px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .15s,box-shadow .15s,transform .15s}
.billing-draft-row:hover{border-color:#c7d2fe;box-shadow:0 6px 16px rgba(79,70,229,.12);transform:translateY(-1px)}
.billing-draft-row.is-invoiced{background:#fafbfc}
.billing-draft-row__main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.billing-draft-row__name{font-size:14px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.billing-draft-row__sub{font-size:11px;color:#94a3b8;font-weight:600}
.billing-draft-row__right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}
.billing-draft-row__total{font-size:14px;font-weight:800;color:#0f172a;white-space:nowrap}

/* Draft detail */
.billing-invoice-info{display:flex;align-items:center;gap:28px;padding:14px 18px;margin-bottom:16px;flex-wrap:wrap}
.billing-invoice-info__label{display:block;font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}
.billing-invoice-info form{margin-left:auto}

.billing-draft-editor{padding:18px;margin-bottom:18px}
.billing-table{width:100%;border-collapse:collapse}
.billing-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;padding:0 8px 8px;font-weight:700}
.billing-table td{padding:5px 8px;border-top:1px solid #f1f5f9;vertical-align:middle}
.billing-table__amount{text-align:right;width:160px}
.billing-table__ref{font-size:12px;color:#64748b;width:70px;white-space:nowrap}
.billing-table__action{width:40px;text-align:center}
.billing-table__total-label{text-align:right;font-weight:700;color:#475569;padding-top:12px}
.billing-table__total{font-size:16px;font-weight:800;color:#0f172a;padding-top:12px}
.billing-free-tag{font-size:10px;font-weight:700;color:#a16207;background:#fef9c3;padding:2px 6px;border-radius:6px}

.billing-input{width:100%;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:13px;color:#0f172a;background:#fff;box-sizing:border-box}
.billing-input--doc-number{width:8.5ch;max-width:100%;min-width:2.5ch;font-variant-numeric:tabular-nums;box-sizing:content-box}
.billing-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.billing-input--datetime{font-variant-numeric:tabular-nums;min-height:38px}
.inv-ui input[type="datetime-local"].billing-input{color-scheme:light}
.billing-input--amount{text-align:right;font-variant-numeric:tabular-nums}
.billing-input[readonly]{background:#f8fafc;color:#64748b}
textarea.billing-input{resize:vertical}

.billing-icon-btn{border:none;background:transparent;color:#cbd5e1;font-size:15px;cursor:pointer;padding:4px 6px;border-radius:6px;line-height:1}
.billing-icon-btn:hover{background:#fef2f2;color:#ef4444}
.billing-icon-btn--dup{color:#94a3b8}
.billing-icon-btn--dup:hover{background:#eef2ff;color:#6366f1}
.billing-icon-btn--dup.is-busy{opacity:.45;cursor:wait}
.billing-icon-btn--odl{color:#94a3b8}
.billing-icon-btn--odl:hover{color:#dc2626;background:#fef2f2}
.billing-odl-ref{font-weight:800;color:#4338ca;text-decoration:none;font-size:12px}
button.billing-odl-ref{
    display:inline-flex;align-items:center;justify-content:center;
    padding:2px 8px;border:1px solid #c7d2fe;border-radius:6px;
    background:#eef2ff;cursor:pointer;font:inherit;line-height:1.35
}
button.billing-odl-ref:hover{background:#e0e7ff;text-decoration:none}
.billing-odl-ref:hover{text-decoration:underline}
.billing-mag-ref{
  display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:11px;color:#c45f1a;
  background:#fdf8f3;border:1px solid #e8d0b8;border-radius:999px;padding:2px 8px;white-space:nowrap
}
.inv-ui__lines-add{
  padding:14px 18px 16px;border-top:1px solid #e8edf3;background:#f8fafc
}
.inv-ui__add-line-foot{background:#f8fafc}
.inv-ui__add-line-row td{
  border-top:2px solid #e2e8f0!important;
  background:#fafbff!important;
  vertical-align:middle!important;
}
.inv-ui__table--lines tbody .inv-ui__add-line-row:hover td{background:#f5f3ff!important}
.inv-ui__add-line-label{text-align:center;padding:6px 2px!important}
.inv-ui__add-line-plus{
  display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
  border-radius:8px;background:#ede9fe;color:#6d28d9;font-size:16px;font-weight:800;line-height:1
}
.inv-ui__add-line-status{margin:6px 0 0;font-size:11px;line-height:1.35;text-align:center;max-width:140px}
.inv-ui__add-line-status:not([hidden]){display:block}
.inv-ui__add-line-row .inv-ui__td-action{vertical-align:middle}
.inv-ui__add-line-row .inv-ui__desc-input{min-height:var(--inv-line-control-h,34px)!important}
.inv-ui__add-line-row .billing-input--amount{min-width:0}
.billing-add-line-submit{min-width:36px;padding:6px 10px!important;font-size:14px;font-weight:800;line-height:1}
.inv-ui__sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0
}
.billing-add-line-form[hidden]{display:none!important}
.billing-add-line-form--ghost{
  position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0);white-space:nowrap;border:0!important;
  box-shadow:none!important
}
.billing-add-line-form:not([hidden]):not(.billing-add-line-form--ghost){
  display:flex;flex-direction:column;margin:0;
  border:1px solid #e2e8f0;border-radius:12px;background:#fff;
  box-shadow:0 1px 3px rgba(15,23,42,.04);overflow:hidden
}
.billing-add-line-form.itickets-materials-add{
  padding:0;gap:0;border-radius:12px;
  background:#fff;border:1px solid #e2e8f0;
  box-shadow:0 1px 3px rgba(15,23,42,.04)
}
.billing-add-line-form__head{
  padding:12px 16px;border-bottom:1px solid #f1f5f9;background:#fff
}
.billing-add-line-form__title{
  margin:0;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  display:flex;align-items:center;gap:8px;color:#334155
}
.billing-add-line-form__body{
  padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px
}
.billing-add-line-form__fields.itickets-materials-add__grid{
  align-items:end;margin:0
}
.billing-add-line-form__actions{
  display:flex;justify-content:flex-end;padding-top:2px
}
.billing-add-line-form .itickets-materials-add__lbl{
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#64748b
}
.billing-add-line-form .itickets-materials-add__field{
  min-height:36px;padding:8px 10px;font-size:13px;border-radius:8px;border:1px solid #e2e8f0;background:#fff
}
.billing-add-line-form .itickets-materials-add__find{
  min-height:38px;font-size:13px;border-radius:8px;border:1px solid #e2e8f0
}
.billing-add-line-form__hint{margin:0;font-size:11px;line-height:1.45;color:#94a3b8}
.itickets-materials-add__field--desc{min-height:52px;resize:vertical;line-height:1.4}
.inv-line-magazzino{position:relative}
.inv-line-magazzino--add{width:100%}
.inv-line-magazzino .itickets-materials-add__results,
.inv-line-code-results{
  position:absolute;left:0;top:calc(100% + 4px);z-index:30;
  min-width:min(420px,92vw);width:max(100%,min(420px,92vw));right:auto;
  max-height:320px;overflow:auto;background:#fff;border:1px solid #c7d2fe;border-radius:12px;
  box-shadow:0 14px 36px rgba(15,23,42,.14)
}
.inv-line-code-results.is-floating{
  position:fixed;
  z-index:10050;
  min-width:0;
  width:auto;
}
.itickets-materials-add__result-cat{
  display:inline-block;margin-left:6px;font-size:11px;font-weight:700;text-transform:uppercase;
  color:#6366f1;background:#eef2ff;border-radius:999px;padding:2px 8px
}
.inv-ui__billing-add-grid.itickets-materials-add__grid .itickets-materials-add__cell--vat{grid-column:span 1}
@media (min-width:900px){
  .billing-add-line-form__fields.itickets-materials-add__grid,
  .inv-ui__billing-add-grid.itickets-materials-add__grid{
    grid-template-columns:minmax(96px,.85fr) minmax(140px,1.2fr) minmax(220px,2.4fr) minmax(64px,.65fr) minmax(96px,.85fr) minmax(148px,1.15fr)
  }
}
@media (max-width:899px){
  .billing-add-line-form__fields.itickets-materials-add__grid{grid-template-columns:1fr 1fr}
  .billing-add-line-form__fields .itickets-materials-add__cell--cat,
  .billing-add-line-form__fields .itickets-materials-add__cell--code,
  .billing-add-line-form__fields .itickets-materials-add__cell--name{grid-column:1 / -1}
  .billing-add-line-form__fields .itickets-materials-add__cell--vat{grid-column:1 / -1}
}
.inv-ui__addons{display:flex;flex-direction:column;gap:14px}
.inv-ui__addon-card{
  margin:0;padding:0;overflow:hidden;
  border:1px solid #e2e8f0;border-top:3px solid #8b5cf6;border-radius:12px;
  box-shadow:0 4px 16px rgba(15,23,42,.05);background:#fff
}
.inv-ui__addon-card--odl{border-top-color:#6366f1}
.inv-ui__addon-card--material{border-top-color:#f59e0b;overflow:visible}
.inv-ui__card-head--addon{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 14px 8px;border-bottom:1px solid #f8fafc;
}
.inv-ui__card-head--addon .inv-ui__card-title{margin:0}
.inv-ui__addon-lead{margin:0;font-size:11.5px;line-height:1.35;flex:1;min-width:160px;text-align:right}
.inv-ui__addon-status{margin:6px 0 0;font-size:12px}
.inv-ui__addon-fields--material{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.inv-ui__addon-fields--material-row1{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,3fr) minmax(0,2fr) minmax(0,4fr);
  gap:8px 10px;
  align-items:end;
  min-width:0;
}
.inv-ui__addon-fields--material-row2{
  display:flex;
  flex-wrap:nowrap;
  align-items:flex-end;
  gap:10px;
  min-width:0;
}
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--magdesc{
  flex:1 1 auto;
  min-width:0;
}
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--action{
  flex:0 0 auto;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
}
.inv-ui__addon-fields--material .inv-ui__addon-field .billing-input{max-width:none;width:100%}
.inv-ui__addon-field--search{position:relative;z-index:3}
.inv-ui__addon-field--action .btn{margin:0;white-space:nowrap}
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--giacenza,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--scorta,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--price{
  flex:0 0 80px;
  width:80px;
  min-width:80px;
  max-width:80px;
}
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--um,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--vat,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--qty{
  flex:0 0 60px;
  width:60px;
  min-width:60px;
  max-width:60px;
}
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--giacenza .inv-ui__label,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--scorta .inv-ui__label,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--um .inv-ui__label,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--price .inv-ui__label,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--vat .inv-ui__label,
.inv-ui__addon-fields--material-row2 .inv-ui__addon-field--qty .inv-ui__label{
  font-size:10px;
  letter-spacing:-0.02em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* Pannello “Aggiungi al magazzino”: campi compatti */
.inv-ui__addon-fields--material .inv-ui__addon-field--giacenza .billing-input,
.inv-ui__addon-fields--material .inv-ui__addon-field--scorta .billing-input,
.inv-ui__addon-fields--material .billing-input--amount{
  width:80px;min-width:80px;max-width:80px;flex-shrink:0;box-sizing:border-box;
  padding:6px 4px;font-size:12px;text-align:center;
}
.inv-ui__addon-fields--material .billing-input--vat,
.inv-ui__addon-fields--material .billing-input--qty,
.inv-ui__addon-fields--material .billing-input--um{
  width:60px;min-width:60px;max-width:60px;flex-shrink:0;box-sizing:border-box;
}
.inv-ui__addon-fields--material .billing-input--amount{
  text-align:right;
}
.inv-ui__addon-fields--material .billing-input--vat{
  padding:6px 18px 6px 6px;
  font-size:11.5px;
}
.inv-ui__addon-fields--material .billing-input--qty{
  padding:6px 4px;
  font-size:12px;
  text-align:center;
}
.inv-ui__addon-fields--material .billing-input--um{
  padding:6px 18px 6px 6px;
  font-size:11.5px;
  text-align:center;
}
.inv-ui__addon-field--search .inv-line-magazzino{width:100%}
.inv-ui__addon-field--search .itickets-materials-add__results{z-index:40}
.inv-ui__addon-card>.inv-ui__card-head{padding:14px 18px 10px!important;border-bottom:1px solid #f8fafc}
.inv-ui__addon-card--material>.inv-ui__card-head--addon{padding:10px 14px 8px!important}
.inv-ui__addon-body{padding:12px 18px 14px}
.inv-ui__addon-body--compact{padding:10px 14px 12px;overflow:visible}
.inv-ui__addon-foot{
  display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;
  padding:12px 18px;background:#f8fafc;border-top:1px solid #eef2f7
}
.inv-ui__addon-empty{margin:0;font-size:13px;line-height:1.5}
.inv-ui__addon-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:240px;overflow:auto}
.inv-ui__addon-list-item{border:1px solid #e8edf3;border-radius:10px;background:#f8fafc;transition:border-color .15s,background .15s}
.inv-ui__addon-list-item:hover{border-color:#c4b5fd;background:#faf5ff}
.inv-ui__addon-list-label{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;margin:0}
.inv-ui__addon-list-label input[type="checkbox"]{
  width:16px;height:16px;min-width:16px;padding:0;margin:0;flex-shrink:0;
  border-radius:4px;border:1px solid #cbd5e1;accent-color:#7c3aed;cursor:pointer;
  box-shadow:none;transition:border-color .15s,box-shadow .15s;
}
.inv-ui__addon-list-label input[type="checkbox"]:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.inv-ui__addon-list-body{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0;flex:1}
.inv-ui__addon-list-body span{display:block;font-size:inherit;color:inherit;margin:0!important}
.inv-ui__addon-list-title{font-size:13px;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.inv-ui__addon-list-meta{font-size:11px;color:#6366f1;font-weight:700;flex-shrink:0;background:#eef2ff;border-radius:6px;padding:2px 7px}
.inv-ui__addon-list-row{display:flex;align-items:center;gap:6px;padding:0}
.inv-ui__addon-list-row .inv-ui__addon-list-label{flex:1;min-width:0;padding:8px 10px}
.inv-ui__addon-preview-btn{
    flex:0 0 auto;margin:0 8px 0 0;padding:4px 10px;border-radius:7px;border:1px solid #c7d2fe;background:#fff;
    color:#4338ca;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s
}
.inv-ui__addon-preview-btn:hover{background:#eef2ff;border-color:#a5b4fc}
.inv-ui__addon-list--prefattura-sources{max-height:320px}
.inv-ui__addon-list-body--prefattura{
  flex-direction:column;align-items:flex-start;gap:2px;min-width:0;flex:1
}
.inv-ui__addon-list-head{
  display:flex;align-items:center;gap:8px;min-width:0;width:100%
}
.inv-ui__addon-list-headline{
  font-size:14px;font-weight:700;color:#0f172a;line-height:1.2;
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0
}
.inv-ui__addon-list-sub{
  display:block;width:100%;font-size:11px;line-height:1.35;color:#64748b;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px
}
.inv-ui__addon-list--prefattura-sources .inv-ui__addon-list-item{border-radius:8px}
.inv-ui__addon-list--prefattura-sources .inv-ui__addon-list-label{align-items:center;padding:9px 10px 9px 12px}
.inv-ui__addon-list--prefattura-sources .billing-doc-type-pill{
  flex-shrink:0;margin:0;font-size:9px;padding:2px 6px;letter-spacing:.04em;line-height:1.3
}
.billing-doc-type-pill.is-ordine{background:#ecfeff;color:#0e7490}
.inv-ui__addon-list--prefattura-sources .inv-ui__addon-preview-btn{
  margin:0 8px 0 0;padding:5px 11px;align-self:center;font-size:10px;border-radius:6px
}
.billing-odl-preview__lines{margin-top:4px}
.billing-odl-preview__lines-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.billing-odl-preview__lines-title{margin:0;font-size:13px;font-weight:700;color:#0f172a}
.billing-odl-preview__lines-total{font-size:12px;color:#64748b}
.billing-odl-preview__table-wrap{overflow:auto;border:1px solid #e8edf3;border-radius:10px;background:#fff}
.billing-odl-preview__table{width:100%;border-collapse:collapse;font-size:12px}
.billing-odl-preview__table th,.billing-odl-preview__table td{padding:7px 9px;border-bottom:1px solid #f1f5f9;text-align:left;vertical-align:top}
.billing-odl-preview__table th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;background:#f8fafc}
.billing-odl-preview__table th.num,.billing-odl-preview__table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.billing-odl-preview__table tr:last-child td{border-bottom:0}
.billing-odl-preview__descr{max-width:280px;line-height:1.35;color:#334155}
.billing-odl-preview__kind{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.billing-odl-preview__kind--servizio{background:#eef2ff;color:#4338ca}
.billing-odl-preview__kind--materiale{background:#ecfdf5;color:#047857}
.billing-odl-preview__kind--nota{background:#f1f5f9;color:#64748b}
.billing-odl-preview__empty{margin:0;font-size:13px;color:#94a3b8}
.billing-odl-preview__footer{justify-content:flex-end;gap:8px}
.inv-ui__addon-fields{
  display:grid;
  gap:10px 12px;align-items:end;
}
.inv-ui__addon-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.inv-ui__addon-field--wide{grid-column:1 / -1}
.inv-ui__addon-field .billing-input{width:100%;box-sizing:border-box}
@media (max-width:760px){
  .inv-ui__addon-fields{grid-template-columns:1fr}
  .inv-ui__addon-fields--material-row1{
    grid-template-columns:1fr 1fr;
  }
  .inv-ui__addon-fields--material-row1 .inv-ui__addon-field--search,
  .inv-ui__addon-fields--material-row1 .inv-ui__addon-field--nome{
    grid-column:1 / -1;
  }
  .inv-ui__addon-fields--material-row2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 10px;
  }
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--magdesc,
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--action{
    grid-column:1 / -1;
  }
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--giacenza,
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--scorta,
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--um,
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--price,
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--vat,
  .inv-ui__addon-fields--material-row2 .inv-ui__addon-field--qty{
    flex:none;
    width:auto;
    min-width:0;
    max-width:none;
  }
  .inv-ui__addon-field--wide{grid-column:1 / -1}
  .inv-ui__card-head--addon .inv-ui__addon-lead{text-align:left;flex-basis:100%}
}

.billing-field{display:block;margin-top:14px}
.billing-field__label{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:4px}
.billing-draft-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;margin-top:14px}
.billing-draft-meta .billing-field{margin-top:0}
.billing-draft-meta__hint{margin:8px 0 0;font-size:12px}
.billing-draft-footer{margin-top:16px;padding-top:16px;border-top:1px solid #e8edf3;display:flex;flex-direction:column;gap:8px}
.billing-draft-footer__payment{max-width:420px;margin:0}
.billing-draft-footer__hint{margin:0;font-size:12px}
.billing-table__vat{width:170px;min-width:150px}
.billing-input--vat{min-width:140px;font-size:12px}
.inv-ui__table--lines .billing-input--vat{min-width:0;max-width:100%;width:100%;font-size:11px;padding:6px 4px;box-sizing:border-box}
.inv-ui__add-line-foot .billing-input--vat{font-size:11px}
.billing-vat-readonly,.billing-payment-readonly{font-size:13px;font-weight:600;color:#334155}
.billing-subform__row--stack{flex-wrap:wrap}
.billing-draft-editor__foot{display:flex;gap:10px;align-items:center;margin-top:16px}

.billing-cols-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media (max-width:760px){.billing-cols-2{grid-template-columns:1fr}}
.billing-subform{padding:16px}
.billing-subform__title{margin:0 0 10px;font-size:14px;font-weight:800;color:#0f172a}
.billing-subform__row{display:flex;gap:8px;align-items:center}
.billing-subform__row .billing-input{flex:1}
.billing-doc-type-pill{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:6px;margin-right:6px;vertical-align:middle;background:#eef2ff;color:#4338ca}
.billing-doc-type-pill.is-ddt{background:#fff7ed;color:#c2410c}
.billing-doc-type-pill.is-invoice{background:#eef2ff;color:#4338ca}

/* Vista combinata Consuntivi + DDT: chip tipo + bordo riga (colore tab). */
.billing-doc-kind-chip{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:2.6em;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
    border-radius:5px;padding:2px 5px;margin-right:6px;vertical-align:middle;line-height:1.2;
    border:1px solid transparent;flex-shrink:0
}
.billing-doc-kind-chip.is-consuntivo{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.billing-doc-kind-chip.is-ddt{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.billing-grid__col-doc_number{
    white-space:nowrap
}
.billing-grid-table--combine-cross tbody tr.billing-grid-row.is-consuntivo{
    box-shadow:inset 3px 0 0 0 #10b981
}
.billing-grid-table--combine-cross tbody tr.billing-grid-row.is-ddt{
    box-shadow:inset 3px 0 0 0 #f97316
}
.billing-grid-table--combine-cross tbody tr.billing-grid-row.is-consuntivo td{
    background:linear-gradient(90deg,rgba(16,185,129,.06),transparent 72px)
}
.billing-grid-table--combine-cross tbody tr.billing-grid-row.is-ddt td{
    background:linear-gradient(90deg,rgba(249,115,22,.07),transparent 72px)
}
.billing-doc-card.is-consuntivo{border-left:3px solid #10b981}
.billing-doc-card.is-ddt{border-left:3px solid #f97316}
.billing-doc-filters--type{margin-right:8px}
.billing-new-draft--ddt{margin-left:0}
.settings-doc-numbering-table-wrap{overflow:auto;margin:0 0 12px}
.settings-doc-numbering-table{min-width:720px}
.settings-doc-numbering-table .settings-input{min-width:110px}
.settings-doc-numbering-table code{font-size:11px}
.settings-doc-numbering-preview{font-family:ui-monospace,Menlo,monospace;font-weight:600;color:#4338ca}
.billing-status-pill.is-ddt-issued{background:#fff7ed;color:#c2410c}
.billing-page--ddt .billing-page__doc-field--type{display:none!important}
.billing-draft-client{margin:0 0 12px}
.billing-draft-client__label{display:block;font-size:11px;font-weight:600;color:#64748b;margin:0 0 4px;text-transform:uppercase;letter-spacing:.04em}
.billing-draft-client__row{display:flex;gap:8px;align-items:flex-start}
.billing-draft-client__search-wrap{position:relative;flex:1;min-width:0}
.billing-draft-client__search{width:100%}
.billing-draft-client__results{
    position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;max-height:220px;overflow:auto;
    background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.12)
}
.billing-draft-client__result{padding:10px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid #f1f5f9}
.billing-draft-client__result:last-child{border-bottom:none}
.billing-draft-client__result:hover{background:#eef2ff}
.billing-draft-client__result--empty{color:#94a3b8;cursor:default;text-align:center}
.billing-draft-client__result--empty:hover{background:transparent}
.billing-draft-client__result small{display:block;color:#94a3b8;font-size:11px;margin-top:2px}
.billing-draft-client__clear{
    position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:0;border-radius:50%;
    background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;cursor:pointer
}
.billing-draft-client__clear:hover{background:#fee2e2;color:#dc2626}
.billing-draft-client__hint{margin:6px 0 0;font-size:12px}
.billing-draft-ship{margin:0 0 12px}
.billing-draft-ship__label{display:block;font-size:11px;font-weight:600;color:#64748b;margin:0 0 4px;text-transform:uppercase;letter-spacing:.04em}
.billing-draft-ship__row{display:flex;gap:8px;align-items:flex-start}
.billing-draft-ship__search-wrap{position:relative;flex:1;min-width:0;max-width:100%}
.billing-draft-ship__search{width:100%;box-sizing:border-box}
.billing-draft-ship__clear{
    position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:0;border-radius:50%;
    background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;cursor:pointer
}
.billing-draft-ship__clear:hover{background:#fee2e2;color:#dc2626}
.billing-draft-ship__results{
    position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;max-height:280px;overflow:auto;
    background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.12);
    padding:4px;box-sizing:border-box
}
.billing-draft-ship__results.is-floating{z-index:10050}
.billing-draft-ship__result{
    display:block;width:100%;box-sizing:border-box;padding:8px 10px;border-radius:8px;
    font-size:13px;color:#0f172a;text-align:left;cursor:pointer;border-bottom:1px solid #f1f5f9
}
.billing-draft-ship__result:last-child{border-bottom:none}
.billing-draft-ship__result:hover{background:#eef2ff}
.billing-draft-ship__result strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:700;font-size:13px;color:#0f172a}
.billing-draft-ship__result small{display:block;color:#94a3b8;font-size:11px;margin-top:2px;line-height:1.4}
.billing-draft-ship__result--empty{color:#94a3b8;cursor:default;text-align:center}
.billing-draft-ship__result--empty:hover{background:transparent}
.billing-draft-ship__result-tag{
    display:inline-flex;align-items:center;flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;
    letter-spacing:.03em;padding:2px 6px;border-radius:5px;background:#eef2ff;color:#4338ca
}
.billing-draft-ship__result-tag--billing{background:#fef3c7;color:#b45309}
.billing-draft-ship__result-code{color:#64748b;font-weight:600}
.billing-carrier-picker .billing-draft-client__search-wrap{margin-bottom:6px;position:relative}
.billing-carrier-picker__name{margin-top:0}
.billing-carrier-picker__search{
  width:100%;box-sizing:border-box;padding-right:56px
}
.billing-carrier-picker__toggle{
  position:absolute;right:30px;top:50%;transform:translateY(-50%);
  width:24px;height:24px;padding:0;border:0;border-radius:6px;
  background:transparent;color:#64748b;font-size:12px;line-height:1;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center
}
.billing-carrier-picker__toggle:hover,
.billing-carrier-picker__toggle[aria-expanded="true"]{
  background:#eef2ff;color:#4338ca
}
.billing-carrier-picker .billing-draft-client__clear,
.billing-carrier-picker__clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border:0;border-radius:50%;
  background:#f1f5f9;color:#64748b;font-size:16px;line-height:1;cursor:pointer;z-index:1
}
.billing-carrier-picker .billing-draft-client__clear:hover,
.billing-carrier-picker__clear:hover{background:#fee2e2;color:#dc2626}
.billing-carrier-picker .billing-draft-client__results,
.billing-draft-client__results.is-floating{
  display:flex;flex-direction:column;gap:0;padding:4px;
  background:#fff;border:1px solid #e2e8f0;border-radius:10px;
  box-shadow:0 12px 32px rgba(15,23,42,.14);overflow:auto
}
.billing-draft-client__results.is-floating{z-index:10050}
.billing-carrier-picker__result{
  display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;
  margin:0;padding:10px 12px;border:0;border-radius:8px;
  background:transparent;color:#0f172a;text-align:left;
  font:inherit;font-size:13px;font-weight:600;line-height:1.2;
  cursor:pointer;appearance:none;-webkit-appearance:none
}
.billing-carrier-picker__result + .billing-carrier-picker__result{margin-top:2px}
.billing-carrier-picker__result:hover,
.billing-carrier-picker__result:focus-visible{
  outline:none;background:#eef2ff;color:#312e81
}
.billing-carrier-picker__result--linked{background:#f8fafc}
.billing-carrier-picker__result--default{background:#eef2ff;color:#312e81}
.billing-carrier-picker__result--linked:hover,
.billing-carrier-picker__result--linked:focus-visible{background:#eef2ff}
.billing-carrier-picker__result-body{
  display:flex;align-items:center;gap:7px;min-width:0;flex:1;white-space:nowrap
}
.billing-carrier-picker__result-code{
  display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;
  background:#eef2ff;border:1px solid #c7d2fe;color:#4338ca;
  flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.02em;line-height:1.3;white-space:nowrap
}
.billing-carrier-picker__result-name{
  min-width:0;overflow:hidden;text-overflow:ellipsis;color:#0f172a;
  font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap
}
.billing-carrier-picker__result-sep{flex:0 0 auto;color:#94a3b8;font-weight:700}
.billing-carrier-picker__default-mark{
  flex:0 0 auto;color:#7c3aed;font-size:16px;font-weight:900;line-height:1
}
.billing-carrier-picker__empty{
  padding:12px 10px;text-align:center;color:#94a3b8;font-size:12px;font-weight:600
}
.inv-ui__card[data-inv-card="transport"] .billing-carrier-picker{
  margin:0
}
.inv-ui__card[data-inv-card="transport"] .billing-carrier-picker .billing-draft-client__results{
  min-width:min(360px,92vw)
}
.inv-ui__card-head--bill .inv-ui__bill-head-edit{width:100%;margin-bottom:10px}
.inv-ui__bill-head-right.is-empty{opacity:.55}

.billing-danger{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin-top:8px}
.billing-danger__hint{margin:0;max-width:420px;text-align:right;font-size:12px;line-height:1.35;color:#b45309}
.btn.danger{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.btn.danger:hover{background:#fecaca}

/* ====== Anteprima fattura (layout gestionale) ====== */
.billing-invoice-preview{padding:16px 18px 20px;margin-bottom:18px}
.billing-invoice-preview__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.billing-invoice-preview__title{margin:0;font-size:16px;font-weight:800;color:#0f172a}
.billing-invoice-preview__sub{margin:4px 0 0;font-size:12px}
.billing-invoice-preview__actions{display:flex;gap:8px}

/* Modal anteprima fattura collegata */
.itickets-modal__dialog--invoice-preview{
  width:min(340mm,96vw);
  max-height:min(92vh,1200px);
  overflow:hidden;
  border:none;
  box-shadow:0 24px 60px rgba(15,23,42,.24);
  display:flex;
  flex-direction:column;
}
.billing-invoice-modal{display:flex;flex-direction:column;min-height:220px;max-height:min(92vh,1200px);background:#fff}
.billing-invoice-modal__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:16px 18px 14px;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
  flex-shrink:0;
}
.billing-invoice-modal__head-text{min-width:0}
.billing-invoice-modal__eyebrow{
  display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:4px
}
.billing-invoice-modal__title{margin:0;font-size:17px;font-weight:800;color:#0f172a;line-height:1.25}
.billing-invoice-modal__close{
  flex-shrink:0;width:34px;height:34px;border:none;border-radius:999px;background:#f1f5f9;color:#64748b;
  font-size:16px;line-height:1;cursor:pointer;transition:background .15s ease,transform .15s ease
}
.billing-invoice-modal__close:hover{background:#e2e8f0;transform:scale(1.04)}
.billing-invoice-modal__scroll{
  flex:1 1 auto;overflow:auto;padding:16px 18px 20px;background:#f1f5f9;-webkit-overflow-scrolling:touch
}
.billing-invoice-modal__scroll .inv-doc-wrap--print{padding:0}
.billing-invoice-modal__scroll .inv-doc{
  margin:0;max-width:100%;min-width:0;width:100%;box-shadow:0 2px 12px rgba(0,0,0,.1)
}
.billing-invoice-modal__foot{
  display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;
  padding:12px 18px;border-top:1px solid #e2e8f0;background:#fff;flex-shrink:0
}
.billing-invoice-modal__error-text{margin:0 0 16px;font-size:13px;color:#64748b;line-height:1.5}
.billing-invoice-modal__loading{padding:24px 18px}
.billing-invoice-modal__skeleton{
  height:280px;border-radius:12px;background:linear-gradient(90deg,#f1f5f9 0%,#e2e8f0 50%,#f1f5f9 100%);
  background-size:200% 100%;animation:odlPreviewShimmer 1.2s ease-in-out infinite
}
.billing-invoice-modal--error .billing-invoice-modal__body{padding:0 18px 18px}
.billing-editor-panel{margin-bottom:18px}
.billing-editor-panel__summary{cursor:pointer;padding:14px 18px;font-weight:800;font-size:14px;color:#0f172a;list-style:none}
.billing-editor-panel__summary::-webkit-details-marker{display:none}
.billing-editor-panel__body{padding:0 18px 18px}
.billing-editor-panel .billing-invoice-info,
.billing-editor-panel .billing-gestionale-card{margin-bottom:14px}

.inv-doc-wrap{overflow-x:auto;padding:4px 0}
.inv-doc-wrap--print .inv-doc{box-shadow:none;margin:0;max-width:none;width:100%;min-width:0}
.inv-doc{
  /* Quasi neri, tratto sottile (non grigio chiaro, non “bold”) */
  --inv-border:#333;
  --inv-border-strong:#222;
  --inv-font:Arial,Helvetica,sans-serif;
  width:100%;
  max-width:var(--app-content-max-width);
  min-width:min(680px,100%);
  margin:0;
  background:#fff;
  color:#111;
  font-family:var(--inv-font);
  font-size:10px;
  line-height:1.3;
  border:1px solid var(--inv-border);
  box-shadow:0 2px 12px rgba(0,0,0,.12);
}
.inv-doc table{width:100%;border-collapse:collapse;table-layout:fixed}
.inv-doc th,.inv-doc td{border:1px solid var(--inv-border);padding:3px 5px;vertical-align:top}
.inv-doc th{font-size:9px;font-weight:700;text-align:center;background:#fff;text-transform:none}
.inv-doc__head{
  display:flex;flex-direction:column;gap:0;
  padding:0;border-bottom:1px solid var(--inv-border);
  box-sizing:border-box;
}
/* Layout tabellare (1° allegato): logo + azienda in colonna, titolo a destra, poi Cessionario|Destinazione */
.inv-doc__head--stacked{
  border-bottom:none;
}
.inv-doc__head-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px 16px;
  padding:6px 8px 8px;
  border-bottom:1px solid var(--inv-border,#333);
  box-sizing:border-box;
}
.inv-doc__head-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  min-width:0;
  flex:1 1 auto;
}
.inv-doc__head--stacked .inv-doc__header-logos{
  margin-bottom:2px;
}
.inv-doc__head--stacked .inv-doc__header-logo{
  max-height:52px;
  max-width:240px;
}
.inv-doc__head--stacked .inv-doc__issuer{
  font-size:9px;
  line-height:1.35;
}
.inv-doc__head--stacked .inv-doc__issuer-name{
  font-weight:700;
  font-size:11px;
  margin-bottom:1px;
}
.inv-doc__head--stacked .inv-doc__contacts{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:2px 16px;
  margin-top:2px;
  font-size:9px;
  line-height:1.3;
}
.inv-doc__head--stacked .inv-doc__contacts span{
  font-weight:700;
  text-transform:uppercase;
  margin-right:3px;
}
.inv-doc__head--stacked .inv-doc__titlebox{
  flex:0 0 auto;
  align-self:flex-start;
  padding-top:0;
  margin-top:0;
}
.inv-doc__head--stacked .inv-doc__addresses{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--inv-border,#333);
  overflow:visible;
}
.inv-doc__head--stacked .inv-doc__address-col{
  border-right:1px solid var(--inv-border,#333);
  overflow:visible;
  min-width:0;
}
.inv-doc__head--stacked .inv-doc__address-col:last-child{border-right:none}
.inv-doc__head--stacked .inv-doc__section-label{
  border-bottom:1px solid var(--inv-border,#333);
}
.inv-doc__head--stacked .inv-doc__address-box{
  min-height:56px;
}
.inv-doc__head-main{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:10px 14px;align-items:start;
}
.inv-doc__head-main--quad{
  display:grid;
  grid-template-columns:minmax(88px,.75fr) minmax(120px,1fr) minmax(150px,1.2fr) minmax(150px,1.2fr);
  gap:0;align-items:stretch;
  border-bottom:1px solid var(--inv-border);
}
.inv-doc__head-main--quad.inv-doc__head-main--no-logo{
  grid-template-columns:minmax(140px,1.1fr) minmax(150px,1.2fr) minmax(150px,1.2fr);
}
.inv-doc__head-box{
  min-width:0;padding:6px 8px;border-right:1px solid var(--inv-border);
  box-sizing:border-box;overflow:visible;
}
.inv-doc__head-box:last-child{border-right:none}
.inv-doc__head-box--logo{
  display:flex;align-items:center;justify-content:center;padding:8px 6px;
}
.inv-doc__head-box--issuer{padding:8px}
.inv-doc__head-box--cessionario,
.inv-doc__head-box--dest{padding:0}
.inv-doc__head-box--cessionario .inv-doc__section-label,
.inv-doc__head-box--dest .inv-doc__section-label{
  border-bottom:1px solid var(--inv-border);
}
.inv-doc__head-box--cessionario .inv-doc__address-box,
.inv-doc__head-box--dest .inv-doc__address-box{
  min-height:64px;padding:6px 8px;
}
.inv-doc__head-left{
  display:flex;flex-direction:column;gap:4px;min-width:0;
}
.inv-doc__head-bar{
  display:flex;align-items:center;justify-content:flex-end;gap:12px;
  padding:5px 8px;min-width:0;
}
.inv-doc__issuer{font-size:9px;line-height:1.3}
.inv-doc__issuer-name{font-weight:700;font-size:11px;margin-bottom:1px}
.inv-doc__titlebox{
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
  gap:4px;flex:0 0 auto;min-width:min(100%,280px);
}
.inv-doc__currency{display:flex;align-items:center;gap:5px;border:1px solid var(--inv-border);padding:3px 6px;min-width:72px}
.inv-doc__currency-symbol{font-size:16px;font-weight:700;line-height:1}
.inv-doc__currency-label{font-size:8px;line-height:1.15;text-align:left}
.inv-doc__doctype{
  margin:0;width:100%;box-sizing:border-box;
  font-size:42px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  line-height:.9;white-space:nowrap;text-align:right;color:#111;
}
.inv-doc__doc-ids{
  display:grid;
  grid-template-columns:auto auto auto;
  width:100%;
  border:1px solid var(--inv-border,#333);
  background:#fff;
  max-width:100%;
  box-sizing:border-box;
}
.inv-doc__doc-ids-cell{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:4px 8px;
  min-width:0;
  border-right:1px solid var(--inv-border,#333);
  box-sizing:border-box;
}
.inv-doc__doc-ids-cell:last-child{border-right:none}
.inv-doc__doc-ids-cell span{
  font-size:8px;
  font-weight:700;
  text-transform:uppercase;
  line-height:1.2;
  color:#111;
}
.inv-doc__doc-ids-cell strong{
  font-size:11px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
}
.inv-doc__contacts{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;
  font-size:9px;line-height:1.25;min-width:0;flex:1 1 auto;
}
.inv-doc__contacts span{font-weight:700;text-transform:uppercase;margin-right:3px}
.inv-doc__addresses{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--inv-border);overflow:visible}
.inv-doc__address-col{border-right:1px solid var(--inv-border);overflow:visible;min-width:0}
.inv-doc__address-col:last-child{border-right:none}
.inv-doc__section-label{
  display:block;font-weight:700;font-size:9px;line-height:1.4;
  padding:6px 6px 5px;margin:0;
  border-bottom:1px solid var(--inv-border);background:#fff;
  box-sizing:border-box;overflow:visible;
  position:relative;z-index:1;
}
.inv-doc__address-box{padding:6px 8px;min-height:72px;font-size:10px;line-height:1.35;overflow:visible}
.inv-doc__addr-title,.inv-doc__addr-name{font-weight:700;text-transform:uppercase}
/* Solo schermo stretto: in stampa l’anteprima è spesso <720px e altrimenti
   «PREVENTIVO» finisce sotto il logo invece che in alto a destra. */
@media screen and (max-width:720px){
  .inv-doc__head-top{flex-direction:column;align-items:stretch}
  .inv-doc__head--stacked .inv-doc__titlebox{align-self:flex-end}
  .inv-doc__head-main--quad{grid-template-columns:1fr 1fr}
  .inv-doc__head-box--logo,
  .inv-doc__head-box--issuer,
  .inv-doc__head-box--cessionario{border-bottom:1px solid var(--inv-border)}
  .inv-doc__head-box--issuer,
  .inv-doc__head-box--dest{border-right:none}
  .inv-doc__head-bar{flex-wrap:wrap}
}
.inv-doc__meta-grid{border-bottom:1px solid var(--inv-border)}
.inv-doc__meta-row{display:grid;border-bottom:1px solid var(--inv-border)}
.inv-doc__meta-row:last-child{border-bottom:none}
.inv-doc__meta-row--half{grid-template-columns:1fr 1fr}
/* Riga contatti: CF stretto, PEC larga (email su una riga) */
.inv-doc__meta-row--quints{
  grid-template-columns:minmax(0,.72fr) minmax(0,.58fr) minmax(0,.48fr) minmax(0,1.22fr) minmax(0,2.2fr);
}
/* Riga pagamento: Cod. pagamento ~ larghezza label, Condizioni e IBAN più ampi */
.inv-doc__meta-row--thirds{
  grid-template-columns:minmax(0,.52fr) minmax(0,1.55fr) minmax(0,1.35fr);
}
/* Riga esenzione: SI/NO stretto, gli altri si ripartiscono lo spazio */
.inv-doc__meta-row--quads{
  grid-template-columns:minmax(0,.38fr) minmax(0,1.15fr) minmax(0,1.2fr) minmax(0,1.15fr);
}
.inv-doc__meta-cell{padding:3px 6px;border-right:1px solid var(--inv-border);min-height:30px;min-width:0}
.inv-doc__meta-cell:last-child{border-right:none}
.inv-doc__meta-cell--full{grid-column:1/-1}
.inv-doc__meta-cell span{display:block;font-size:7px;font-weight:700;text-transform:uppercase;color:#111;letter-spacing:.02em}
.inv-doc__meta-cell strong{display:block;font-size:10px;font-weight:600;margin-top:1px;word-break:break-word;line-height:1.25}
.inv-doc__meta-row--quints .inv-doc__meta-cell:nth-child(2) strong{
  white-space:nowrap;
}
.inv-doc__meta-row--quints .inv-doc__meta-cell:nth-child(4) strong,
.inv-doc__meta-row--quints .inv-doc__meta-cell:nth-child(5) strong{
  word-break:normal;
  overflow-wrap:anywhere;
  font-size:9px;
  line-height:1.2;
}
.inv-doc__meta-row--quints .inv-doc__meta-cell:nth-child(5) strong{
  overflow-wrap:normal;
  word-break:keep-all;
  white-space:nowrap;
  font-size:8.5px;
}
.inv-doc__meta-row--thirds .inv-doc__meta-cell:first-child strong,
.inv-doc__meta-row--quads .inv-doc__meta-cell:first-child strong{
  white-space:nowrap;
}
.inv-doc__invoice-no{font-size:12px;font-weight:700}
.inv-doc__lines th:nth-child(1){width:56px}
.inv-doc__lines th:nth-child(2){width:36px}
.inv-doc__lines th:nth-child(3){width:48px}
.inv-doc__lines th:nth-child(5){width:64px}
.inv-doc__lines th:nth-child(6){width:40px}
.inv-doc__lines th:nth-child(7){width:48px}
.inv-doc__lines th:nth-child(8){width:72px}
.inv-doc__lines th,.inv-doc__lines td{font-size:9px}
.inv-doc__lines th:nth-child(1),
.inv-doc__lines th:nth-child(2),
.inv-doc__lines th:nth-child(3),
.inv-doc__lines th:nth-child(6),
.inv-doc__lines th:nth-child(7){text-align:center}
.inv-doc__lines .inv-doc__desc{white-space:pre-wrap}
.inv-doc__num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.inv-doc__center{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.inv-doc__mono{font-family:ui-monospace,Consolas,monospace;font-size:9px}
.inv-doc__empty{text-align:center;color:#666;padding:10px;font-size:9px}
/* Niente border-top: la tabella righe ha già il bordo inferiore (evita tratto doppio). */
.inv-doc__lower{border-top:none}
.inv-doc__summary-row{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  /* Cornice esterna unica: laterali + sotto (sopra lo dà la tabella righe). */
  border:none;
  border-left:1px solid var(--inv-border);
  border-right:1px solid var(--inv-border);
  border-bottom:1px solid var(--inv-border);
  align-items:stretch;
  box-sizing:border-box;
}
.inv-doc__vat-table{
  border:none;
  border-collapse:collapse;
  table-layout:fixed;
  width:100%;
  height:100%;
}
.inv-doc__vat-table th,.inv-doc__vat-table td{font-size:8px;padding:2px 3px}
.inv-doc__vat-table th:nth-child(1),.inv-doc__vat-table td:nth-child(1){width:34px;white-space:nowrap}
.inv-doc__vat-table th:nth-child(2),.inv-doc__vat-table td:nth-child(2){width:auto;min-width:0}
.inv-doc__vat-table th:nth-child(3),.inv-doc__vat-table td:nth-child(3){width:52px;white-space:nowrap}
.inv-doc__vat-table th:nth-child(4),.inv-doc__vat-table td:nth-child(4){width:48px;white-space:nowrap}
.inv-doc__vat-table th:nth-child(5),.inv-doc__vat-table td:nth-child(5){width:52px;white-space:nowrap}
/* Evita doppi con la cornice di .inv-doc__summary-row e col separatore totali. */
.inv-doc__vat-table th:first-child,
.inv-doc__vat-table td:first-child{border-left:none}
.inv-doc__vat-table th:last-child,
.inv-doc__vat-table td:last-child{border-right:none}
.inv-doc__vat-table thead th{border-top:none}
.inv-doc__vat-table tbody tr:last-child td{border-bottom:none}
.inv-doc__totals-panel{
  border:none;
  border-left:1px solid var(--inv-border);
  padding:0;
  display:flex;
  flex-direction:column;
  justify-content:stretch;
  min-width:0;
}
.inv-doc__totals{width:100%;height:100%;border-collapse:collapse;table-layout:fixed;border:none}
.inv-doc__totals td{
  border:1px solid var(--inv-border,#333);
  padding:3px 5px;
  font-size:8px;
  vertical-align:middle;
  background:#fff;
}
.inv-doc__totals td:first-child,
.inv-doc__totals tr.inv-doc__totals-grand td:first-child{border-left:none}
.inv-doc__totals td:last-child,
.inv-doc__totals tr.inv-doc__totals-grand td:last-child{border-right:none}
.inv-doc__totals tr:first-child td{border-top:none}
.inv-doc__totals tr:last-child td{border-bottom:none}
.inv-doc__totals td:nth-child(1),
.inv-doc__totals td:nth-child(3){
  font-weight:700;
  width:26%;
  text-align:left;
}
.inv-doc__totals td:nth-child(2),
.inv-doc__totals td:nth-child(4){
  text-align:right;
  width:24%;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.inv-doc__totals-highlight td{
  font-weight:800;
  background:#fff;
}
.inv-doc__totals-grand td{
  font-weight:800;
  background:#fff;
  border-color:var(--inv-border,#333);
}
.inv-doc__totals-grand td:nth-child(1){
  width:50%;
  text-align:left;
  border-left:none;
}
.inv-doc__totals-grand td:nth-child(2){
  width:50%;
  text-align:right;
  border-right:none;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.inv-doc__num--lg{font-size:10px;font-weight:800}
.inv-doc__page{font-size:8px;font-weight:700;text-align:right;margin-top:4px}
.inv-doc__transport{padding:0;border-bottom:none}
.inv-doc__transport-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;font-size:8px}
.inv-doc__transport-grid--2{grid-template-columns:repeat(5,1fr)}
.inv-doc__transport-grid span,.inv-doc__notes>span{display:block;font-size:7px;font-weight:700;text-transform:uppercase;margin-bottom:2px}
.inv-doc__transport-grid strong{font-size:9px;font-weight:600}
.inv-doc__transport-table{
  width:100%;border-collapse:collapse;table-layout:fixed;margin:0;
}
.inv-doc__transport-table td{
  border:1px solid var(--inv-border,#333);
  padding:3px 5px;vertical-align:top;
  font-size:8px;background:#fff;
}
.inv-doc__transport-table td span{
  display:block;font-size:7px;font-weight:700;text-transform:uppercase;
  margin-bottom:2px;line-height:1.15;
}
.inv-doc__transport-table td strong{
  display:block;font-size:9px;font-weight:600;line-height:1.25;
  min-height:1.1em;
}
.inv-doc__transport-table__notes{
  min-height:32px;
}
.inv-doc__transport-table__notes div{
  font-size:9px;font-weight:400;line-height:1.3;min-height:18px;
}
.inv-doc__notes{border:1px solid var(--inv-border);padding:4px 6px;min-height:40px;font-size:9px}
.inv-doc__signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:0;border-bottom:none}
.inv-doc__signatures span{font-size:7px;font-weight:700;text-transform:uppercase}
.inv-doc__signatures-table{
  width:100%;border-collapse:collapse;table-layout:fixed;margin:0;
}
.inv-doc__signatures-table td{
  border:1px solid var(--inv-border,#333);
  border-top:none;
  padding:4px 6px 8px;vertical-align:top;
  width:33.33%;
}
.inv-doc__signatures-table span{
  display:block;font-size:7px;font-weight:700;text-transform:uppercase;
}
.inv-doc__sign-line{margin-top:14px;border-bottom:1px solid var(--inv-border,#333)}
.inv-doc__footer{padding:6px 0 0;font-size:9px;margin-top:auto;width:100%;box-sizing:border-box}
.inv-doc__footer-seo{padding:2px 8px;font-size:9px}
.inv-doc__footer-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px;padding:0 10px 8px}
.inv-doc__footer-signs span{font-size:7px;font-weight:700;text-transform:uppercase}
.inv-doc__footer-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) 132px;
  align-items:stretch;
  width:100%;
  box-sizing:border-box;
}
.inv-doc__footer-main .inv-doc__transport{min-width:0}
.inv-doc__footer-main .inv-doc__transport-table{height:100%}
.inv-doc__sign-box{
  display:flex;
  flex-direction:column;
  border:1px solid var(--inv-border,#333);
  border-left:none;
  background:#fff;
  min-height:100%;
  box-sizing:border-box;
}
.inv-doc__sign-box__row{
  flex:1 1 0;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:3px 5px 6px;
  border-bottom:1px solid var(--inv-border,#333);
  min-height:0;
}
.inv-doc__sign-box__row:last-child{border-bottom:none}
.inv-doc__sign-box__row span{
  display:block;font-size:7px;font-weight:700;text-transform:uppercase;line-height:1.15;
}
.inv-doc__sign-box__row .inv-doc__sign-line{margin-top:auto;padding-top:10px}

/* WYSIWYG edit — campi dentro le celle, stile documento */
.inv-doc-wrap--edit .inv-doc__cell-input{
  width:100%;border:none;border-bottom:1px dashed #999;background:transparent;
  font:inherit;font-size:9px;color:#111;padding:1px 0;margin:0;box-sizing:border-box;resize:vertical;outline:none;border-radius:0;
}
.inv-doc-wrap--edit .inv-doc__cell-input:focus{background:#fff;border-bottom-color:#111;box-shadow:none}
.inv-doc-wrap--edit .inv-doc__cell-select{cursor:pointer;appearance:auto;font-size:9px}
.inv-doc-wrap--edit .inv-doc__cell-textarea{min-height:28px;line-height:1.3}
.inv-doc-wrap--edit .inv-doc__cell-nota{margin-top:2px;font-size:8px;color:#333}
.inv-doc-wrap--edit .inv-doc__cell-amount{text-align:right;font-variant-numeric:tabular-nums}
.inv-doc-wrap--edit .inv-doc__notes-input{min-height:36px;font-size:9px}
.inv-doc-wrap--edit .inv-doc__meta-cell .inv-doc__cell-select{font-weight:600;font-size:9px}
.inv-doc__col-action{width:22px;text-align:center;padding:1px!important;border-left:1px solid var(--inv-border)}
.inv-doc__remove{background:transparent;border:1px solid #ccc;color:#666;width:18px;height:18px;border-radius:2px;cursor:pointer;font-size:10px;line-height:1;padding:0}
.inv-doc__remove:hover{background:#fee2e2;border-color:#f87171;color:#b91c1c}
.inv-doc__odl-link{font-size:9px;color:#111;text-decoration:underline}

.billing-page--editor .billing-page__head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.billing-pdf-icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;min-width:40px;box-sizing:border-box;
  border-radius:10px;color:#0f172a;
}
.billing-pdf-icon-btn:hover{
  background:#f1f5f9;border-color:#cbd5e1;color:#1d4ed8;
}
.billing-pdf-icon-btn__svg{display:block;flex:0 0 auto}
.billing-page__head-main{min-width:0;flex:1}
.billing-page__doc-fields{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:12px;align-items:flex-end}
.billing-page__doc-field{min-width:160px;flex:1 1 180px;max-width:280px}
.billing-page__doc-field--type{flex:1 1 220px;max-width:320px}
.billing-page__doc-label{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:5px}
.billing-page__doc-field .billing-input{width:100%;box-sizing:border-box}
.billing-page__doc-field .billing-input--doctype{font-weight:700}
.billing-editor-body{display:flex;flex-direction:column;gap:14px;margin-bottom:16px;background:#f1f5f9;border-radius:14px;padding:0}
.billing-editor-hint{margin:0 0 4px;font-size:12px}
.billing-editor-foot{
  display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;
  position:sticky;bottom:12px;z-index:60;
  padding:10px 12px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);
  border:1px solid #e2e8f0;
  border-radius:12px;
  box-shadow:0 6px 20px rgba(15,23,42,.14);
}
.billing-editor-foot--fixed{
  position:fixed;
  left:12px;
  right:76px; /* spazio chat widget */
  bottom:12px;
  z-index:60; /* sopra #chat-widget (z-index:50) */
  margin:0;
  max-width:calc(100vw - 88px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(calc(100% + 20px));
  transition:opacity .2s ease,transform .22s ease,visibility .2s;
}
.billing-editor-foot--fixed.is-revealed{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.billing-editor-foot-spacer{
  height:0;
  pointer-events:none;
  transition:height .2s ease;
}
.billing-editor-foot-spacer.is-revealed{height:72px}
.billing-editor-foot--bar{
  align-items:center;justify-content:space-between;
  gap:12px 16px;flex-wrap:nowrap;
  padding:8px 12px;
  min-height:56px;
  box-sizing:border-box;
}
.billing-editor-foot--bar .billing-doc-head__chips{
  flex:1 1 auto;min-width:0;flex-wrap:nowrap;
  align-items:center;
}
.billing-editor-foot--bar .billing-doc-chip--client{
  flex:1 1 auto;max-width:none;min-width:120px;
}
.billing-editor-foot__actions{
  flex:0 1 auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;
}
.billing-doc-actions{
  display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-end;
  flex:0 1 auto;min-width:0;
}
.billing-doc-actions .inline-form{
  display:inline-flex;align-items:center;margin:0;vertical-align:middle;
}
.billing-doc-actions__group{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap}
.billing-doc-actions__sep{
  width:1px;height:22px;background:#e2e8f0;flex-shrink:0;margin:0 2px;align-self:center;
}
.billing-doc-actions__icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;margin:0;box-sizing:border-box;
  border:1px solid #e2e8f0;border-radius:10px;
  background:#fff;color:#334155;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.billing-doc-actions__icon-btn:hover:not(:disabled){
  background:#f8fafc;border-color:#cbd5e1;color:#0f172a;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
}
.billing-doc-actions__icon-btn:disabled{opacity:.4;cursor:not-allowed}
.billing-doc-actions__icon-btn--danger{color:#b91c1c;border-color:#fecaca;background:#fff5f5}
.billing-doc-actions__icon-btn--danger:hover:not(:disabled){
  background:#fef2f2;border-color:#fca5a5;color:#991b1b;
}
.billing-doc-actions__chip-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  height:40px;padding:0 14px;margin:0;box-sizing:border-box;
  border:1px solid #e2e8f0;border-radius:10px;
  background:#fff;color:#334155;font-size:12px;font-weight:700;
  letter-spacing:.01em;cursor:pointer;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s;
}
.billing-doc-actions__chip-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}
.billing-doc-actions__chip-btn:disabled{opacity:.45;cursor:not-allowed}
.billing-doc-actions__chip-btn--accent{
  background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;
}
.billing-doc-actions__chip-btn--accent:hover:not(:disabled){
  background:#dbeafe;border-color:#93c5fd;color:#1e40af;
}
.billing-doc-actions__lock{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;box-sizing:border-box;border-radius:10px;color:#64748b;
  background:#f8fafc;border:1px solid #e2e8f0;user-select:none;
}
.billing-doc-actions__lock.is-closed{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.billing-doc-actions__lock.is-open{color:#059669;border-color:#a7f3d0;background:#ecfdf5}
.billing-doc-actions__save{height:40px;padding:0 14px;border-radius:10px;font-size:13px;box-sizing:border-box;font-weight:700}
.billing-page--editor .billing-page__head-actions{
  flex:0 1 auto;min-width:0;align-items:center;
}
.billing-page--editor .billing-page__head-actions .billing-doc-actions{
  justify-content:flex-end;align-items:center;
}
.billing-editor-foot--bar .billing-doc-actions{
  flex:0 1 auto;align-items:center;
}
.billing-editor-foot--bar .billing-pdf-icon-btn,
.billing-page__head-actions .billing-pdf-icon-btn{
  width:40px;height:40px;min-width:40px;border-radius:10px;
}
.billing-foot-dialog{
  border:none;border-radius:14px;padding:0;max-width:min(420px,calc(100vw - 32px));
  box-shadow:0 24px 60px rgba(15,23,42,.28);
}
.billing-foot-dialog[data-foot-dialog="trasforma-ordine"]{
  max-width:min(440px,calc(100vw - 32px));
}
.billing-foot-dialog::backdrop{background:rgba(15,23,42,.45)}
.billing-foot-dialog__panel{margin:0;padding:18px 18px 16px}
.billing-foot-dialog__title{margin:0 0 6px;font-size:16px;font-weight:800;color:#0f172a}
.billing-foot-dialog__text{margin:0 0 14px;font-size:13px;color:#64748b;line-height:1.45}
.billing-foot-dialog__actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  align-items:stretch;
}
.billing-foot-dialog__actions .btn{
  width:100%;
  min-height:42px;
  height:42px;
  margin:0;
  padding:0 12px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  font-size:13px;
  line-height:1;
}
.billing-foot-dialog__actions .btn[value="cancel"]{
  grid-column:1 / -1;
}
.billing-foot-dialog[data-foot-dialog="nuovo-ft-nc"] .billing-foot-dialog__actions{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.billing-foot-dialog[data-foot-dialog="nuovo-ft-nc"] .billing-foot-dialog__actions .btn[value="cancel"]{
  grid-column:auto;
}
@media (max-width:900px){
  .billing-editor-foot--fixed{left:8px;right:8px;bottom:68px;max-width:none}
  .billing-editor-foot--bar{flex-wrap:wrap}
  .billing-editor-foot--bar .billing-doc-head__chips{width:100%;flex-wrap:wrap}
  .billing-editor-foot__actions{width:100%;justify-content:flex-end}
}
.billing-editor-tools{display:flex;flex-direction:column;gap:12px}
.billing-generate-form{border:2px solid #c7d2fe;background:linear-gradient(180deg,#eef2ff,#fff)}

/* Editor fattura — layout moderno con colori */
.inv-ui{
  --inv-blue:#2563eb;--inv-indigo:#4f46e5;--inv-violet:#7c3aed;
  --inv-teal:#0ea5e9;--inv-amber:#d97706;--inv-green:#6366f1;
  display:flex;flex-direction:column;gap:16px;
}
.inv-ui--head-mini{gap:12px;margin:-6px 0 18px}
.inv-ui--head-mini .inv-ui__grid-3--head{margin-bottom:0}
.inv-ui--head-mini .inv-ui__grid-3{gap:10px}
.inv-ui--head-mini .inv-ui__card-head--stack{padding:12px 14px 12px!important;gap:8px}
.inv-ui--head-mini .inv-ui__card-title{font-size:11px;letter-spacing:.06em}
.inv-ui--head-mini .inv-ui__head-field{max-width:240px}
.inv-ui--head-mini .inv-ui__label{font-size:10px}
.inv-ui--head-mini .billing-input,.inv-ui--head-mini .inv-ui__value{font-size:13px}
.inv-ui--head-mini .inv-ui__address--right{font-size:12px}
.inv-ui--head-mini .inv-ui__client-code-label{font-size:10px}
.inv-ui--head-mini .inv-ui__client-code-value{font-size:12px}
.inv-ui .card{border-color:#e2e8f0;box-shadow:0 4px 16px rgba(15,23,42,.05)}
.inv-ui__hero{
  padding:0;overflow:hidden;
  background:#fff;
  border:1px solid #e2e8f0;
  border-top:3px solid #6366f1;
  color:#0f172a;
}
.inv-ui__hero .inv-ui__issuer-name{color:#0f172a}
.inv-ui__hero .inv-ui__issuer-name--muted{color:#94a3b8;font-weight:600}
.inv-ui__hero .inv-ui__issuer-line{color:#64748b}
.inv-ui__hero-main{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:16px 20px 14px}
.inv-ui__issuer{min-width:0;flex:1}
.inv-ui__issuer-name{font-size:15px;font-weight:700;margin-bottom:3px}
.inv-ui__issuer-line{font-size:13px;line-height:1.45}
.inv-ui__doctype-block{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.inv-ui__currency-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0}
.inv-ui__currency-symbol{font-size:15px;font-weight:700;color:#4338ca;line-height:1}
.inv-ui__currency-text{font-size:11px;font-weight:600;color:#64748b}
.inv-ui__doctype{margin:0;font-size:17px;font-weight:800;color:#1e293b;letter-spacing:.02em}
.inv-ui__doc-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.inv-ui__doc-badge{font-size:11px;font-weight:700;color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;padding:3px 9px;border-radius:6px;box-shadow:none}
.inv-ui__doc-date{font-size:12px;font-weight:600;color:#64748b}
.inv-ui__contacts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 20px 14px;background:#f8fafc;border-top:1px solid #eef2f7}
.inv-ui__contact{font-size:13px;color:#334155}
.inv-ui__contact span{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin-bottom:2px}
.inv-ui__grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.inv-ui__grid-2--summary{grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr)}
@media (max-width:1100px){.inv-ui__grid-2--summary{grid-template-columns:1fr}}
.inv-ui__grid-2--meta-parties{grid-template-columns:1fr 1fr;align-items:start}
@media (max-width:1100px){.inv-ui__grid-2--meta-parties{grid-template-columns:1fr}}
.inv-ui__meta-parties-right{
  min-width:0;
  /* stesso “respiro” delle inv-ui__fields */
  padding:6px 18px 12px;
}
.inv-ui__party-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px;align-items:start}
.inv-ui__party-col{min-width:0;padding-right:2px}
.inv-ui__party-grid .inv-ui__party-head{margin-bottom:8px;padding-right:20px}
.inv-ui__party-grid .inv-ui__party-body{margin:0}
@media (max-width:1100px){.inv-ui__party-grid{grid-template-columns:1fr}}
.inv-ui__party-grid .inv-ui__party-title{color:#475569}
/* allinea a destra Cessionario/Destinazione */
.inv-ui__party-grid .inv-ui__client-code--party{justify-content:flex-end;margin:-2px 0 6px}
.inv-ui__party-grid .inv-ui__address--party{text-align:right;align-items:flex-end}
.inv-ui__party-grid .inv-ui__party-body{padding-top:0}
.inv-ui__party-grid .inv-ui__party-col + .inv-ui__party-col{border-left:1px solid #eef2f7;padding-left:14px}
@media (max-width:1100px){.inv-ui__party-grid .inv-ui__party-col + .inv-ui__party-col{border-left:none;padding-left:0}}
/* Editor cliente/destinazione: visibile solo quando attivato via click sul Cod. cliente */
[data-draft-client-editor],[data-draft-ship-editor]{display:none;margin-bottom:8px}
[data-draft-client-editor].is-active,[data-draft-ship-editor].is-active{display:block}
[data-draft-client-panel].is-editing-client .inv-ui__address--party,
[data-draft-ship-panel].is-editing-ship .inv-ui__address--party{opacity:.55}
.inv-ui__grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.inv-ui__grid-3--head{align-items:stretch;margin-bottom:14px}
/* IVA + Totali + Note/Trasporto affiancati */
/* Ordine colonne: Trasporto · Riepilogo IVA · Totali (trasporto ridotto di 1/4 a favore dei Totali) */
.inv-ui__grid-3--lower{grid-template-columns:minmax(0,1fr) minmax(280px,1.28fr) minmax(240px,1.12fr);align-items:start}
@media (max-width:1100px){.inv-ui__grid-3--lower{grid-template-columns:1fr}}
.inv-ui__grid-3--lower > .inv-ui__card{min-width:0}
.inv-ui__card[data-inv-card="transport"]{min-width:0;overflow:hidden}
/* Riepilogo IVA + Totali + Trasporto: card unica, colonne alte uguali, senza accordion */
.inv-ui__grid-3--merged{
  align-items:stretch;
  gap:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:0 12px 28px rgba(0,0,0,.06);
  overflow:hidden;
}
.inv-ui__grid-3--merged > .inv-ui__card{
  border-radius:0;
  box-shadow:none;
  height:100%;
  display:flex;
  flex-direction:column;
  border-right:1px solid #eef1f6;
}
.inv-ui__grid-3--merged > .inv-ui__card:last-child{border-right:none}
.inv-ui__grid-3--merged > .inv-ui__card > .inv-ui__summary-head{padding:14px 16px 0!important}
.inv-ui__grid-3--merged > .inv-ui__card > .inv-ui__summary-head .inv-ui__card-title{margin-bottom:12px}
.inv-ui__grid-3--merged > .inv-ui__card > .inv-ui__card-body{flex:1 1 auto}
.inv-ui__grid-3--merged .inv-ui__card--vat,
.inv-ui__grid-3--merged .inv-ui__totals-card{border-top:none!important}
@media (max-width:1100px){
  .inv-ui__grid-3--merged > .inv-ui__card{
    border-right:none;
    border-bottom:1px solid #eef1f6;
    height:auto;
  }
  .inv-ui__grid-3--merged > .inv-ui__card:last-child{border-bottom:none}
}
.inv-ui__card-head--stack{
  display:flex;flex-direction:column;align-items:flex-end;text-align:right;
  padding:16px 18px 14px!important;gap:10px
}
.inv-ui__card-head--align-right .inv-ui__card-title{align-self:flex-end;margin-bottom:0}
.inv-ui__head-fields--right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;width:100%}
.inv-ui__head-field{display:flex;flex-direction:column;align-items:flex-end;gap:4px;width:100%;max-width:300px}
.inv-ui__head-field--doc-number{max-width:11rem;flex:0 0 auto}
.inv-ui__head-field--doc-number .billing-input,
.inv-ui__head-field--doc-number .inv-ui__value{width:8.5ch;max-width:100%;font-variant-numeric:tabular-nums}
.inv-ui__head-field .inv-ui__label{margin:0}
.inv-ui__head-field .billing-input:not(.billing-input--doc-number),
.inv-ui__head-field .inv-ui__value{width:100%;text-align:right}
.inv-ui__head-field--doc-number > .inv-ui__value{width:8.5ch;max-width:100%;text-align:right}
.inv-ui__head-field select.billing-input{text-align-last:right}
.inv-ui__bill-head-right--stack{margin-left:0;width:100%;align-items:flex-end}
.inv-ui__bill-head-edit--right{width:100%;max-width:300px;margin-left:auto}
.inv-ui__bill-head-edit--right .billing-draft-client{align-items:flex-end;text-align:right}
.inv-ui__bill-head-edit--right .billing-draft-client__row{justify-content:flex-end}
.inv-ui__bill-head-edit--right .billing-draft-client__search-wrap{width:100%}
.inv-ui__address--right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;width:100%;padding:0!important}
.inv-ui__address--right .inv-ui__addr-title,.inv-ui__address--right .inv-ui__addr-name{align-self:flex-end}
.inv-ui__card--ship-flat .inv-ui__card-head{padding-bottom:14px!important}
@media (max-width:1100px){.inv-ui__grid-3--head{grid-template-columns:1fr}}
@media (max-width:900px){.inv-ui__grid-2{grid-template-columns:1fr}.inv-ui__grid-3{grid-template-columns:1fr}.inv-ui__doctype-block{align-items:flex-start;text-align:left}}
.inv-ui__card{padding:0;overflow:hidden}
.inv-ui__card>.inv-ui__card-title,.inv-ui__card>.inv-ui__card-head,.inv-ui__card>.inv-ui__fields,.inv-ui__card>.inv-ui__address,.inv-ui__card>.inv-ui__table-wrap,.inv-ui__card>.inv-ui__totals,.inv-ui__card>.inv-ui__field{padding-left:18px;padding-right:18px}
.inv-ui__card>.inv-ui__card-title{padding-top:16px;padding-bottom:0}
.inv-ui__card>.inv-ui__fields,.inv-ui__card>.inv-ui__address,.inv-ui__card>.inv-ui__table-wrap,.inv-ui__card>.inv-ui__totals,.inv-ui__card>.inv-ui__field{padding-bottom:16px}
.inv-ui__card>.inv-ui__card-head{padding-top:0;padding-bottom:0}
.inv-ui__card>.inv-ui__card-head.inv-ui__card-head--accordion{padding:12px 16px!important}
.inv-ui__card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:0}
.inv-ui__card-head--accordion{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid transparent;
  transition:border-color .2s ease,background .2s ease
}
.inv-ui__card[data-inv-open="true"] .inv-ui__card-head--accordion{border-bottom-color:#eef2f7;background:#fafbff}
.inv-ui__card[data-inv-open="false"] .inv-ui__card-head--accordion:hover{background:#f8fafc}
.inv-ui__card[data-inv-open="false"] .inv-ui__card-head--accordion{border-bottom-color:transparent}
.inv-ui__card-head--accordion > .inv-ui__card-title{margin:0;flex:1;min-width:0}
.inv-ui__card-title{
  margin:0 0 14px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  display:flex;align-items:center;gap:8px;color:#334155;
}
.inv-ui__card-head .inv-ui__card-title{margin-bottom:0}
.inv-ui__card-head--parties{padding:14px 18px 0}
.inv-ui__card--parties{border-top:3px solid #3b82f6}
.inv-ui__parties{
  padding:14px 18px 16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px 14px;
  align-items:start
}
.inv-ui__party-block{min-width:0}
.inv-ui__party-body{min-width:0}
.inv-ui__party-head{margin-bottom:8px}
.inv-ui__party-picker{min-width:0;max-width:none}
@media (max-width:1100px){
  .inv-ui__parties{grid-template-columns:1fr}
}
.inv-ui__party-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.inv-ui__party-title{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.inv-ui__party-picker{max-width:320px;flex:0 0 auto}
@media (max-width:1100px){.inv-ui__party-picker{min-width:0;max-width:none;width:100%}.inv-ui__party-head{flex-direction:column;align-items:stretch}}
.inv-ui__readonly-input{
  display:flex;align-items:center;justify-content:space-between;
  min-height:40px;padding:10px 12px;border-radius:10px;
  background:#f8fafc;border:1px solid #e2e8f0;
  color:#0f172a;font-size:14px;font-weight:700;
  width:100%;box-sizing:border-box
}
.inv-ui__client-code--party{display:flex;align-items:baseline;gap:6px;justify-content:flex-end;margin-bottom:6px}
.inv-ui__address--party{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.inv-ui__party-sep{display:none}
.inv-ui__card-icon{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:6px;font-size:11px;font-weight:800;line-height:1;flex-shrink:0;
}
.inv-ui__card-icon--blue{background:#dbeafe;color:#1d4ed8}
.inv-ui__card-icon--teal{background:#dbeafe;color:#1d4ed8}
.inv-ui__card-icon--indigo{background:#e0e7ff;color:#4338ca}
.inv-ui__card-icon--violet{background:#ede9fe;color:#6d28d9}
.inv-ui__card-icon--amber{background:#eef2ff;color:#4f46e5}
.inv-ui__card-icon--slate{background:#f1f5f9;color:#475569}
.inv-ui__card--bill{border-top:3px solid #3b82f6}
.inv-ui__card-head--bill{align-items:flex-start;padding:16px 18px 14px}
.inv-ui__card-head--bill-inline{align-items:flex-start;gap:16px}
.inv-ui__card-head--bill-inline>.inv-ui__card-title{margin:0;flex:0 0 auto;align-self:center;padding-top:0}
.inv-ui__bill-head-right{
  margin-left:auto;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;
  align-items:flex-end;gap:6px;text-align:right
}
.inv-ui__address--head{
  padding:0!important;font-size:12px;line-height:1.45;color:#334155;max-width:min(100%,420px)
}
.inv-ui__address--head .inv-ui__addr-title,.inv-ui__address--head .inv-ui__addr-name{font-size:11px}
@media (max-width:760px){
  .inv-ui__card-head--bill-inline{flex-direction:column;align-items:stretch}
  .inv-ui__bill-head-right{align-items:flex-start;text-align:left;margin-left:0}
  .inv-ui__address--head{max-width:none}
}
.inv-ui__client-code{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;text-align:right}
.inv-ui__client-code-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#64748b;line-height:1.2}
.inv-ui__client-code-value{font-size:12px;font-weight:700;font-family:ui-monospace,Consolas,monospace;color:#0f172a;line-height:1.3}
.inv-ui__client-code-value:not(.inv-ui__client-code-value--button){
  display:inline-flex;align-items:center;gap:5px;
}
.inv-ui__edit-lock{font-size:11px;opacity:.75;line-height:1}
.inv-ui__card--ship{border-top:3px solid #14b8a6}
.inv-ui__card--meta{border-top:3px solid #6366f1}
/* Meta section (Dati documento) — box flat per campo */
.inv-ui__card[data-inv-card="meta"] .inv-ui__accordion-trigger{padding:12px 16px!important;min-height:44px}
.inv-ui__card[data-inv-card="meta"] .inv-ui__accordion-trigger--icon{padding:0!important;min-height:0}
.inv-ui__card[data-inv-card="meta"] .inv-ui__accordion-chevron{width:26px;height:26px;border-radius:9px}
.inv-ui__card[data-inv-card="meta"] .inv-ui__card-body{
  padding-top:8px;
  background:#fff;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__grid-2--meta-parties{
  grid-template-columns:minmax(0,1.42fr) minmax(0,.72fr);
  gap:0 20px;
  align-items:stretch;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__grid-2--meta-parties > div:first-child{
  padding:0 16px 14px;
  border-right:1px solid #eef2f7;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields{
  gap:12px 14px;
  padding:0!important;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row1,
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row2{
  /* Griglia condivisa: col. 4 = SDI / Coordinate bancarie */
  grid-template-columns:minmax(11.5ch,.48fr) minmax(16.5ch,.72fr) minmax(0,1fr) minmax(0,1.55fr);
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3{
  /* Valuta/Esenzione compatte · IVA riempie lo spazio · Lettera intento = col. Coordinate bancarie */
  grid-template-columns:max-content max-content minmax(0,1fr) minmax(0,1.55fr);
  width:100%;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row1{padding-bottom:0!important}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3{padding-top:0!important}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row2{
  margin-top:12px;
  margin-bottom:12px;
  padding-top:0!important;
  padding-bottom:0!important;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row2 .inv-ui__field--payment{grid-column:1 / 4}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row2 .inv-ui__field--iban{grid-column:4}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row1 .inv-ui__value,
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row1 .inv-ui__doc-input{
  font-size:11.5px;
  line-height:1.35;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3{
  align-items:stretch;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3 .inv-ui__field{
  display:flex;
  flex-direction:column;
  min-height:0;
  min-width:0;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--valuta .inv-ui__doc-select,
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--esenzione .inv-ui__doc-select{
  text-align:center;
  padding-left:4px;
  padding-right:4px;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--valuta,
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--esenzione{
  max-width:max-content;
  justify-self:start;
  align-self:stretch;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--iva-esenzione{
  grid-column:3;
  grid-row:1;
  min-width:0;
  width:100%;
  align-self:stretch;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--iva-esenzione .inv-ui__value{
  width:100%;
  box-sizing:border-box;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3:has(.inv-ui__field--lettera-intento.is-empty) .inv-ui__field--iva-esenzione{
  grid-column:3 / -1;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3:has(.inv-ui__field--lettera-intento.is-empty) .inv-ui__field--lettera-intento{
  display:none;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--lettera-intento{
  grid-column:4;
  grid-row:1;
  align-self:stretch;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--valuta .inv-ui__value,
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--esenzione .inv-ui__value{
  text-align:center;
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--valuta .inv-ui__doc-select{
  flex:1 1 auto;
  width:100%;
  min-height:32px;
  margin-top:auto;
  margin-bottom:auto;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--iva-esenzione .inv-ui__value,
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--lettera-intento .inv-ui__value{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  min-height:0;
  line-height:1.35;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--doc-readonly{
  background:#f1f5f9;
  border-color:#e2e8f0;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--doc-readonly:hover{
  background:#f1f5f9;
  border-color:#e2e8f0;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field{
  padding:9px 11px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid #e8edf3;
  box-shadow:none;
  transition:border-color .12s ease;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field:hover{
  border-color:#dde3ea;
  background:#f8fafc;
  box-shadow:none;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--payment{
  background:#fafaf9;
  border-color:#e7e5e4;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--payment:hover{
  background:#fafaf9;
  border-color:#d6d3d1;
  box-shadow:none;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field .billing-input,
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--payment .billing-input{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:8px;
  padding:7px 9px;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__doc-input{
  width:100%;
  min-width:0;
  font-size:13px;
  font-weight:600;
  color:#0f172a;
}
/* Evita che il testo lungo del select (es. IVA vendite) allarghi la colonna:
   la larghezza è governata dalla griglia, il testo viene troncato. */
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row2 .inv-ui__field,
.inv-ui__card[data-inv-card="meta"] .inv-ui__fields--doc-row3 .inv-ui__field{min-width:0}
.inv-ui__card[data-inv-card="meta"] .inv-ui__doc-select{
  min-width:0;
  max-width:100%;
  text-overflow:ellipsis;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__doc-input::placeholder{
  color:#475569;
  font-weight:600;
  opacity:1;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__doc-input.inv-ui__value--mono{
  font-family:ui-monospace,Consolas,monospace;
  font-size:12px;
  font-weight:500;
  color:#475569;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__field--payment .inv-ui__label{color:#64748b}
.inv-ui__card[data-inv-card="meta"] .inv-ui__label{
  margin-bottom:4px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  color:#94a3b8;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__value{
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  color:#0f172a;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__value--mono{
  font-size:12px;
  font-weight:500;
  color:#475569;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__meta-parties-right{
  padding:0 16px 14px 0;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-grid{gap:10px;align-items:stretch;align-content:stretch}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-col{
  background:#f8fafc;
  border:1px solid #e8edf3;
  border-radius:10px;
  /* Padding simmetrico: senza il destro gli input a larghezza piena (es. picker
     destinazione merce) finiscono a filo con il bordo arrotondato e sembrano
     "uscire" dal box. */
  padding:10px 12px 12px;
  box-sizing:border-box;
  overflow:hidden;
  box-shadow:none;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-grid .inv-ui__party-col + .inv-ui__party-col{
  padding-left:12px;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-head{
  display:flex;
  align-items:center;
  padding:0 0 6px;
  margin-bottom:6px;
  border-bottom:1px solid #eef2f7;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-title{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#64748b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-icon{
  font-size:13px;
  line-height:1;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__client-code--party{
  margin:0 0 2px;
  padding-right:18px;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-body{
  margin-top:2px;
  padding-top:6px;
  border-top:none;
}
.inv-ui__card[data-inv-card="meta"] .inv-ui__party-body.is-empty{opacity:.5}
.inv-ui__card[data-inv-card="meta"] .inv-ui__address--party{
  font-size:12.5px;
  line-height:1.5;
  color:#334155;
  margin-top:14px;
}
@media (max-width:1100px){
  .inv-ui__card[data-inv-card="meta"] .inv-ui__grid-2--meta-parties{grid-template-columns:1fr;gap:0}
  .inv-ui__card[data-inv-card="meta"] .inv-ui__grid-2--meta-parties > div:first-child{
    border-right:none;
    border-bottom:1px solid #eef2f7;
    padding-bottom:14px;
    margin-bottom:4px;
  }
  .inv-ui__card[data-inv-card="meta"] .inv-ui__meta-parties-right{padding:0 16px 14px}
  .inv-ui__card[data-inv-card="meta"] .inv-ui__party-grid .inv-ui__party-col + .inv-ui__party-col{
    border-left:none;
    padding-left:0;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #eef2f7;
  }
}
.inv-ui__card--doc-head{border-top:3px solid #4338ca;padding:16px 18px}
.inv-ui__fields--doc-head{
  display:grid;grid-template-columns:minmax(220px,1fr);
  gap:12px 16px;padding:0!important;align-items:end
}
.inv-ui__field--doctype .billing-input--doctype,.inv-ui__value--doctype{font-weight:700}
@media (max-width:900px){.inv-ui__fields--doc-head{grid-template-columns:1fr}}
.inv-ui__card--lines{border-top:3px solid #8b5cf6}
.inv-ui__card--vat{background:linear-gradient(180deg,#fffbeb,#fff);border-top:3px solid #f59e0b}
.inv-ui__card--vat .inv-ui__card-title{color:#b45309}
.inv-ui__card--notes{border-top:3px solid #64748b}
.inv-ui__card-badge{font-size:11px;font-weight:800;color:#6d28d9;background:#ede9fe;border:1px solid #c4b5fd;padding:4px 10px;border-radius:999px}
.inv-ui__accordion-trigger{
  display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  background:transparent;border:none;cursor:pointer;margin:0;padding:14px 18px;text-align:left;
  font:inherit;color:inherit;border-radius:0;box-sizing:border-box;min-height:48px
}
.inv-ui__accordion-trigger--solo{width:100%}
.inv-ui__accordion-trigger--icon{
  width:auto;min-width:0;min-height:0;padding:0;flex:0 0 auto;justify-content:center;
  border-radius:999px;
}
.inv-ui__card-head-tools{
  display:inline-flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto
}
.inv-ui__card-head:not(.inv-ui__card-head--accordion) .inv-ui__accordion-trigger{
  flex:1;min-width:0;padding:16px 0;min-height:0
}
.inv-ui__card-head:not(.inv-ui__card-head--accordion) .inv-ui__accordion-trigger--icon{
  flex:0 0 auto;padding:0;min-height:0
}
.inv-ui__card-head--accordion .inv-ui__accordion-trigger,
.inv-ui__card>.inv-ui__accordion-trigger.inv-ui__accordion-trigger--solo{
  width:100%;padding:14px 18px!important;min-height:48px
}
.inv-ui__card-head--accordion .inv-ui__accordion-trigger--icon{
  width:auto;padding:0!important;min-height:0
}
.inv-ui__accordion-trigger .inv-ui__card-title{margin:0;flex:1;min-width:0;align-self:center}
.inv-ui__accordion-chevron{
  flex-shrink:0;align-self:center;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:10px;background:#f1f5f9;color:#334155;font-size:14px;font-weight:900;line-height:1;
  transition:transform .2s ease,background .2s ease,color .2s ease
}
.inv-ui__accordion-trigger:hover .inv-ui__accordion-chevron,
.inv-ui__accordion-trigger--icon:hover .inv-ui__accordion-chevron{background:#c7d2fe;color:#3730a3}
.inv-ui__card[data-inv-open="false"] .inv-ui__accordion-chevron{transform:rotate(-90deg)}
.inv-ui__card[data-inv-open="false"] .inv-ui__card-body{display:none}
.inv-ui__card-body > .inv-ui__fields:first-child,
.inv-ui__card-body > .inv-ui__fields--doc-row1{padding-top:0!important}
.inv-ui__address{font-size:13px;line-height:1.55;color:#334155;padding:0 18px 16px!important}
.inv-ui__addr-title,.inv-ui__addr-name{font-weight:700;color:#0f172a;text-transform:uppercase;font-size:12px}
.inv-ui__fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 14px;padding:0 18px 16px!important}
.inv-ui__fields--doc-meta{grid-template-columns:repeat(3,1fr);padding-bottom:10px!important}
.inv-ui__fields--doc-row1,
.inv-ui__fields--doc-row2{
  /* Griglia condivisa: col. 4 = SDI / Coordinate bancarie */
  grid-template-columns:minmax(11.5ch,.48fr) minmax(16.5ch,.72fr) minmax(0,1fr) minmax(0,1.55fr);
}
.inv-ui__fields--doc-row3{
  grid-template-columns:max-content max-content minmax(0,1fr) minmax(0,1.55fr);
  width:100%;
}
.inv-ui__fields--doc-row1{padding-top:0!important;padding-bottom:10px!important}
.inv-ui__fields--doc-row2{padding-top:0!important;padding-bottom:10px!important}
.inv-ui__fields--doc-row2 .inv-ui__field--payment{grid-column:1 / 4}
.inv-ui__fields--doc-row2 .inv-ui__field--iban{grid-column:4}
.inv-ui__fields--doc-row3{padding-top:0!important}
.inv-ui__fields--doc-row3 .inv-ui__field--iva-esenzione{grid-column:3;grid-row:1;min-width:0;width:100%}
.inv-ui__fields--doc-row3 .inv-ui__field--iva-esenzione .inv-ui__value{width:100%;box-sizing:border-box}
.inv-ui__fields--doc-row3 .inv-ui__field--lettera-intento{grid-column:4;grid-row:1}
.inv-ui__fields--doc-row3:has(.inv-ui__field--lettera-intento.is-empty) .inv-ui__field--iva-esenzione{grid-column:3 / -1}
.inv-ui__fields--doc-row3:has(.inv-ui__field--lettera-intento.is-empty) .inv-ui__field--lettera-intento{display:none}
.inv-ui__fields--transport{grid-template-columns:repeat(2,1fr)}
/* Note e trasporto: distribuzione più efficiente */
.inv-ui__fields--transport-row1{grid-template-columns:1.15fr .95fr 1.55fr .45fr}
.inv-ui__fields--transport-row2{grid-template-columns:.85fr 1.2fr .55fr .55fr 1.35fr;margin-top:0}
.inv-ui__field--compact{min-width:0}
.inv-ui__radio-row{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:2px}
.inv-ui__radio-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#334155;cursor:pointer}
.inv-ui__radio-pill input{margin:0;accent-color:#6366f1}
.inv-ui__radio-pill span{line-height:1.2}
@media (max-width:1100px){
  .inv-ui__fields--transport-row1{grid-template-columns:repeat(2,1fr)}
  .inv-ui__fields--transport-row2{grid-template-columns:repeat(3,1fr)}
}
.inv-ui__field{
  min-width:0;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:9px 11px;
  box-shadow:0 1px 0 rgba(15,23,42,.02)
}
.inv-ui__field:hover{border-color:#cbd5e1}
.inv-ui__field--wide{grid-column:span 2}
.inv-ui__field--payment{background:linear-gradient(180deg,#fff7ed,#fff);border-color:#fdba74}
.inv-ui__field--payment .inv-ui__label{color:#9a3412}

/* Variante più “flat” (senza bordature) per Trasporto/Note */
.inv-ui__card[data-inv-card="notes"] .inv-ui__field,
.inv-ui__card[data-inv-card="transport"] .inv-ui__field{
  border:0;
  background:transparent;
  box-shadow:none;
}
.inv-ui__card[data-inv-card="notes"] .inv-ui__field:hover,
.inv-ui__card[data-inv-card="transport"] .inv-ui__field:hover{
  box-shadow:none;
}
.inv-ui__card[data-inv-card="notes"] .billing-input,
.inv-ui__card[data-inv-card="transport"] .billing-input{
  border:0;
  background:#f1f5f9;
}

/* Trasporto: compatto */
.inv-ui__card[data-inv-card="transport"] .inv-ui__accordion-trigger{
  padding:8px 12px!important;
  min-height:36px;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__accordion-chevron{
  width:24px;
  height:24px;
  border-radius:8px;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__card-body{
  padding-top:2px;
  padding-bottom:0;
  min-width:0;
  overflow-x:hidden;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__fields{gap:3px 8px;padding:0 10px 6px!important}
.inv-ui__card[data-inv-card="transport"] .inv-ui__label{
  font-size:9px;
  margin-bottom:1px;
  line-height:1.2;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__value{font-size:11.5px;line-height:1.25}
.inv-ui__card[data-inv-card="transport"] .billing-input{
  padding:8px 10px;
  border-radius:7px;
  font-size:12px;
  line-height:1.2;
  max-width:100%;
  box-sizing:border-box;
}
.inv-ui__card[data-inv-card="transport"] .billing-input--datetime{
  padding:7px 10px;
  min-height:0;
}

/* Trasporto: layout a righe */
.inv-ui__fields--transport-rows{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:0 10px 6px!important;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.inv-ui__transport-row{
  display:grid;
  gap:4px 8px;
  align-items:start;
  min-width:0;
  max-width:100%;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__transport-row--1{
  grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);
  align-items:start;
  gap:6px 14px;
}
.inv-ui__transport-row--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.inv-ui__transport-row--3{
  /* Allinea fine "Peso Kg." con fine "Porto" (metà riga). */
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr)
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__field{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
/* Trasporto a cura del: label in alto (come Causale), opzioni tutte visibili sotto */
.inv-ui__card[data-inv-card="transport"] .inv-ui__field--radios{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  background:transparent;
  border:none;
  border-radius:0;
  padding:0;
}
.inv-ui__field.inv-ui__field--radios{
  position:relative;
  top:8px;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__field--radios .inv-ui__label{
  flex:0 0 auto;
  white-space:nowrap;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__field--radios .inv-ui__radio-row{
  flex:1 1 auto;
  width:100%;
  flex-wrap:nowrap;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__field--radios .inv-ui__radio-pill span{
  white-space:nowrap;
}
.inv-ui__transport-carrier-row{
  min-width:0;
  max-width:100%;
}
.inv-ui__transport-carrier-row.is-carrier-hidden{display:none}
.inv-ui__transport-carrier-row .inv-ui__field{
  margin:0;
  background:#f8fafc;
  border:1px solid #e8edf3;
  border-radius:7px;
  padding:4px 6px;
}
@media (max-width:1100px){
  .inv-ui__transport-row--2,
  .inv-ui__transport-row--3{grid-template-columns:1fr}
}
@media (max-width:760px){
  .inv-ui__card[data-inv-card="transport"] .inv-ui__transport-row--1,
  .inv-ui__transport-row--2,
  .inv-ui__transport-row--3{grid-template-columns:1fr}
}

/* Trasporto: radio su un'unica riga, distribuiti nel box */
.inv-ui__card[data-inv-card="transport"] .inv-ui__radio-row--stack,
.inv-ui__card[data-inv-card="transport"] .inv-ui__radio-row{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:space-between;
  gap:0;
  margin-top:0;
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:34px;
  padding:4px 10px;
  background:#f8fafc;
  border:1px solid #e8edf3;
  border-radius:7px;
  box-sizing:border-box;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__radio-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:auto;
  max-width:100%;
  min-width:0;
  flex:0 0 auto;
  min-height:16px;
  padding:0;
  font-size:11px;
  font-weight:600;
  line-height:1.15;
  box-sizing:border-box;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__radio-pill input{
  margin:0;
  flex-shrink:0;
  width:13px;
  height:13px;
}
.inv-ui__card[data-inv-card="transport"] .inv-ui__radio-pill span{
  flex:0 0 auto;
  min-width:0;
  line-height:1.3;
  white-space:nowrap;
}

/* Trasporto: campi “mini” più stretti e allineati */
.inv-ui__card[data-inv-card="transport"] .inv-ui__field--compact .billing-input{min-width:0}
.inv-ui__card[data-inv-card="transport"] .billing-draft-client__search-wrap{width:100%}
.inv-ui__card[data-inv-card="transport"] .billing-draft-client{margin:0}

/* Vettore: evita doppio campo impilato (disordinato) */
.inv-ui__card[data-inv-card="transport"] .billing-carrier-picker__name{display:none}
.inv-ui__card[data-inv-card="transport"] .billing-carrier-picker .billing-draft-client__search-wrap{margin-bottom:0}
.inv-ui__card[data-inv-card="transport"] .billing-draft-client__search{width:100%}
@media (max-width:1100px){.inv-ui__fields,.inv-ui__fields--doc-meta,.inv-ui__fields--doc-row1,.inv-ui__fields--doc-row3{grid-template-columns:repeat(2,1fr)}.inv-ui__fields--doc-row2{grid-template-columns:1fr 1fr}.inv-ui__field--wide{grid-column:span 2}}
@media (max-width:600px){.inv-ui__fields,.inv-ui__fields--transport,.inv-ui__fields--transport-row1,.inv-ui__fields--transport-row2,.inv-ui__fields--doc-meta,.inv-ui__fields--doc-row1,.inv-ui__fields--doc-row2,.inv-ui__fields--doc-row3{grid-template-columns:1fr}.inv-ui__field--wide{grid-column:span 1}}
.inv-ui__label{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:4px}
.inv-ui__value{font-size:13px;font-weight:650;color:#0f172a;word-break:break-word;line-height:1.35}
.inv-ui__value--mono{font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:500;color:#475569}
.inv-ui__value--block{white-space:pre-wrap}
.inv-ui .billing-input{border-color:#e2e8f0;background:#fff;font-size:13px;padding:8px 10px;border-radius:8px}
.inv-ui .billing-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15)}
.inv-ui__field--payment .billing-input{background:#fff;border-color:#fcd34d}
.inv-ui__card--lines > .inv-ui__card-head{
  padding-top:14px!important;padding-bottom:14px!important;
}
.inv-ui__card--lines .inv-ui__card-body,
.inv-ui__card--lines .inv-ui__card-head,
.inv-ui__card--lines .inv-ui__table-wrap{overflow:visible}
.inv-ui__card--lines .inv-ui__table-wrap{
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
}
.inv-ui__table-wrap{overflow-x:auto;padding:0 18px 16px!important;margin:0;-webkit-overflow-scrolling:touch}
.inv-ui__table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;table-layout:fixed;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}
.inv-ui__table--lines{min-width:1300px;overflow:visible;--inv-line-control-h:34px}
/* Larghezze colonne via col + th/td — stessa box model, niente overflow intestazioni */
.inv-ui__table--lines col.inv-ui__col-drag{width:52px}
.inv-ui__table--lines col.inv-ui__col-qty{width:52px}
.inv-ui__table--lines col.inv-ui__col-qty-conf{width:56px}
.inv-ui__table--lines col.inv-ui__col-um{width:64px}
.inv-ui__table--lines col.inv-ui__col-rif{width:120px}
.inv-ui__table--lines col.inv-ui__col-cat{width:100px}
.inv-ui__table--lines col.inv-ui__col-code{width:112px}
.inv-ui__table--lines col.inv-ui__col-desc{width:auto}
.inv-ui__table--lines col.inv-ui__col-price{width:100px}
.inv-ui__table--lines col.inv-ui__col-discount{width:64px}
.inv-ui__table--lines col.inv-ui__col-vat{width:64px}
.inv-ui__table--lines col.inv-ui__col-amount{width:108px}
.inv-ui__table--lines col.inv-ui__col-actions{width:52px}
.inv-ui__table--lines .inv-ui__col-drag,.inv-ui__table--lines .inv-ui__td-drag{width:52px;min-width:52px;max-width:52px;padding:0 2px;text-align:center;box-sizing:border-box}
.inv-line-lead{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:var(--inv-line-control-h,34px);
}
.inv-line-select,.inv-lines-select-all{
  width:15px;height:15px;margin:0;accent-color:#6366f1;cursor:pointer;flex-shrink:0;
}
.inv-line-select--add{opacity:.35;cursor:default}
.inv-line-select-placeholder{display:block;width:15px;height:15px;flex-shrink:0}
.inv-ui__line-row.is-line-selected td{background:#f5f3ff!important}
.inv-ui__table--lines th .inv-lines-select-all{display:block;margin:0 auto}
.inv-ui__col-drag-label{display:inline-flex;align-items:center;justify-content:center;opacity:.65}
.inv-ui__table--lines .inv-ui__col-qty,.inv-ui__table--lines .inv-ui__td-qty{width:52px;min-width:52px;max-width:52px;padding:6px 4px;box-sizing:border-box;text-align:center}
.inv-ui__table--lines .inv-ui__col-qty-conf,.inv-ui__table--lines .inv-ui__td-qty-conf{width:56px;min-width:56px;max-width:56px;padding:6px 4px;box-sizing:border-box;text-align:center}
/* Ordine: mai mostrare Qt. conf. (anche se una riga legacy la renderizza). */
.billing-page--ordine .inv-ui__col-qty-conf,
.billing-page--ordine .inv-ui__td-qty-conf,
.billing-page--ordine .inv-line-qty-conf{display:none!important}
.inv-ui__table--lines .inv-ui__col-um,.inv-ui__table--lines .inv-ui__td-um{width:64px;min-width:64px;max-width:64px;padding:6px 4px;box-sizing:border-box;text-align:center}
.inv-ui__table--lines .inv-ui__col-rif,.inv-ui__table--lines .inv-ui__td-rif{width:120px;min-width:120px;max-width:120px;padding:6px 6px;box-sizing:border-box;text-align:center}
.inv-ui__table--lines .inv-ui__col-cat,.inv-ui__table--lines .inv-ui__td-cat{width:100px;min-width:100px;max-width:100px;padding:6px 6px;box-sizing:border-box}
.inv-ui__table--lines .inv-ui__col-code,.inv-ui__table--lines .inv-ui__td-code{width:112px;min-width:112px;max-width:112px;padding:6px 6px;box-sizing:border-box}
.inv-ui__table--lines .inv-ui__col-desc,.inv-ui__table--lines .inv-ui__td-desc{width:auto;min-width:180px;box-sizing:border-box}
.inv-ui__table--lines .inv-ui__col-desc{white-space:normal;line-height:1.25}
.inv-ui__table--lines .inv-ui__col-price,.inv-ui__table--lines .inv-ui__td-price{width:100px;min-width:100px;max-width:100px;padding:6px 6px;box-sizing:border-box}
.inv-ui__table--lines .inv-ui__col-discount,.inv-ui__table--lines .inv-ui__td-discount{width:64px;min-width:64px;max-width:64px;padding:6px 4px;box-sizing:border-box}
.inv-ui__table--lines .inv-ui__col-vat,.inv-ui__table--lines .inv-ui__td-vat{width:64px;min-width:64px;max-width:64px;padding:6px 4px;box-sizing:border-box;text-align:center}
.inv-ui__table--lines .billing-input--vat.is-vat-compact{text-align:center;font-weight:700;padding-left:4px;padding-right:4px}
.inv-ui__table--lines .inv-ui__col-amount,.inv-ui__table--lines .inv-ui__td-amount{width:108px;min-width:108px;max-width:108px;padding:6px 6px;box-sizing:border-box}
.inv-ui__table--lines .inv-ui__col-actions,.inv-ui__table--lines .inv-ui__td-action{width:52px;min-width:52px;max-width:52px;padding:6px 4px;box-sizing:border-box}
.inv-line-drag-handle{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:22px;border:none;background:transparent;color:#94a3b8;
  cursor:grab;padding:0;touch-action:none;user-select:none;border-radius:8px;
  transition:color .15s ease,background .15s ease,transform .12s ease
}
.inv-line-drag-handle__icon{display:block;opacity:.5;transition:opacity .15s ease}
.inv-ui__line-row:hover .inv-line-drag-handle{color:#6366f1;background:#eef2ff}
.inv-ui__line-row:hover .inv-line-drag-handle__icon{opacity:1}
.inv-line-drag-handle:hover{color:#4f46e5;background:#e0e7ff}
.inv-line-drag-handle:hover .inv-line-drag-handle__icon{opacity:1}
.inv-line-drag-handle:active{cursor:grabbing;transform:scale(.94)}
.inv-ui__line-placeholder td{padding:3px 6px!important;border-top:none!important;background:transparent!important}
.inv-ui__line-placeholder-inner{
  border:2px dashed #a5b4fc;border-radius:10px;background:rgba(99,102,241,.07);
  transition:min-height .18s ease,background .18s ease,border-color .18s ease
}
.inv-lines-tbody--dragging .inv-ui__line-row td{transition:background .15s ease}
.inv-lines-tbody--dragging .inv-ui__line-row:hover td{background:#fff!important}
.inv-line-drag-ghost{
  position:fixed;top:0;left:0;z-index:10050;pointer-events:none;will-change:transform;
  display:flex;align-items:center;gap:10px;max-width:min(380px,calc(100vw - 32px));
  padding:10px 14px;border-radius:12px;background:#fff;border:1px solid #e2e8f0;
  box-shadow:0 16px 40px rgba(15,23,42,.14),0 0 0 1px rgba(99,102,241,.08);
  transition:opacity .12s ease,transform .12s ease
}
.inv-line-drag-ghost.is-entering{opacity:0;transform:translate3d(0,0,0) scale(.96)!important}
.inv-line-drag-ghost.is-leaving{opacity:0;transform:translate3d(0,0,0) scale(.98)!important}
.inv-line-drag-ghost__grip{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:28px;height:28px;border-radius:8px;background:#eef2ff;color:#6366f1
}
.inv-line-drag-ghost__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.inv-line-drag-ghost__label{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-line-drag-ghost__meta{font-size:11px;font-weight:600;color:#64748b}
body.inv-lines-is-dragging{cursor:grabbing;user-select:none}
body.inv-lines-is-dragging .inv-line-drag-handle{cursor:grabbing}
.inv-ui__table--lines tbody tr{position:relative}
.inv-ui__table--lines tbody tr.inv-ui__add-line-row,
.inv-ui__table--lines tbody tr.inv-ui__line-row{overflow:visible}
.inv-ui__table--lines td{overflow:hidden;position:relative}
.inv-ui__table--lines td.inv-ui__td-vat,
.inv-ui__table--lines td.inv-ui__td-code{overflow:visible}
.inv-ui__table--lines td.inv-ui__td-desc{overflow:hidden}
.inv-ui__table--lines td.inv-ui__td-qty,
.inv-ui__table--lines td.inv-ui__td-um,
.inv-ui__table--lines td.inv-ui__td-rif,
.inv-ui__table--lines td.inv-ui__td-cat{overflow:hidden}
.inv-ui__table--lines .inv-line-code-results,
.inv-ui__table--lines .itickets-materials-add__results{
  z-index:80;
  position:absolute;
  left:0;
  top:calc(100% + 4px);
}
.inv-ui__table th{
  text-align:left;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  color:#fff;padding:10px 10px;white-space:nowrap;background:linear-gradient(180deg,#6366f1,#4f46e5);
}
.inv-ui__table--lines th:last-child{background:linear-gradient(180deg,#6366f1,#4f46e5)}
.inv-ui__table td{padding:10px;border-top:1px solid #f1f5f9;vertical-align:middle;background:#fff}
.inv-ui__table--lines tbody tr.inv-ui__line-row td,
.inv-ui__table--lines tbody tr.inv-ui__add-line-row td{vertical-align:middle}
.inv-ui__table--lines .billing-input:not(textarea.billing-input),
.inv-ui__table--lines select.billing-input{
  height:var(--inv-line-control-h);
  min-height:var(--inv-line-control-h);
  line-height:1.15;
  box-sizing:border-box;
}
.inv-ui__table--lines .inv-ui__money-field{
  display:flex;align-items:stretch;height:var(--inv-line-control-h);
  min-height:var(--inv-line-control-h);
}
.inv-ui__table--lines .inv-ui__money-field .billing-input--amount{
  height:100%;min-height:0;
}
.inv-ui__table--lines .inv-ui__money-field__sym{
  display:inline-flex;align-items:center;padding-left:4px;
}
.inv-ui__table--lines td{padding:6px 4px;vertical-align:middle}
.inv-ui__line-row--invoiced td{background:#f8fafc}
.inv-ui__line-row--invoiced .inv-ui__td-muted{color:#64748b}
/* Valori statici allineati alla prima riga dei campi input (34px) sotto */
.inv-ui__line-row--invoiced td.inv-ui__td-drag,
.inv-ui__line-row--invoiced td.inv-ui__td-qty,
.inv-ui__line-row--invoiced td.inv-ui__td-qty-conf,
.inv-ui__line-row--invoiced td.inv-ui__td-um,
.inv-ui__line-row--invoiced td.inv-ui__td-rif,
.inv-ui__line-row--invoiced td.inv-ui__td-cat,
.inv-ui__line-row--invoiced td.inv-ui__td-code,
.inv-ui__line-row--invoiced td.inv-ui__td-price,
.inv-ui__line-row--invoiced td.inv-ui__td-discount,
.inv-ui__line-row--invoiced td.inv-ui__td-vat,
.inv-ui__line-row--invoiced td.inv-ui__td-amount{vertical-align:top}
.inv-ui__line-row--invoiced .inv-line-readonly-value,
.inv-ui__line-row--invoiced .inv-ui__td-muted,
.inv-ui__line-row--invoiced .inv-ui__value--mono,
.inv-ui__line-row--invoiced .inv-line-taxable,
.inv-ui__line-row--invoiced .inv-line-rif-stack{
  display:inline-flex;align-items:center;min-height:var(--inv-line-control-h,34px);
  box-sizing:border-box;max-width:100%
}
.inv-ui__line-row--invoiced td.inv-ui__td-qty .inv-ui__td-muted,
.inv-ui__line-row--invoiced td.inv-ui__td-um .inv-ui__td-muted,
.inv-ui__line-row--invoiced td.inv-ui__td-cat .inv-ui__td-muted,
.inv-ui__line-row--invoiced td.inv-ui__td-vat .inv-line-readonly-value{justify-content:center;width:100%}
.inv-ui__line-row--invoiced .inv-ui__td-num .inv-line-readonly-value,
.inv-ui__line-row--invoiced .inv-ui__td-num .inv-line-taxable,
.inv-ui__line-row--invoiced .inv-ui__td-num .inv-ui__td-muted{justify-content:flex-end;width:100%}
.inv-ui__line-row--invoiced td.inv-ui__td-code .inv-ui__value--mono{justify-content:flex-start;width:100%}
.inv-line-invoiced-badge{
  display:inline-flex;align-items:center;gap:6px;margin:0;padding:2px 8px;border-radius:999px;
  font-size:11px;font-weight:700;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;flex-shrink:0
}
.inv-line-invoiced-badge a{color:#c2410c;text-decoration:underline;text-underline-offset:2px}
.inv-line-invoiced-badge__btn{
  display:inline;padding:0;border:0;background:transparent;font:inherit;font-weight:inherit;color:#c2410c;
  text-decoration:underline;text-underline-offset:2px;cursor:pointer
}
.inv-line-invoiced-badge__btn:hover{color:#9a3412}
.inv-ui__desc-inline{
  display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;min-width:0;width:100%
}
.inv-ui__desc-inline .inv-ui__desc-ref-badge,
.inv-ui__desc-inline .inv-line-prev-transfer,
.inv-ui__desc-inline .inv-line-invoiced-badge{flex-shrink:0;max-width:100%}
.inv-ui__desc-inline .inv-ui__desc-wrap,
.inv-ui__desc-inline__text{flex:1 1 140px;min-width:0}
.inv-ui__desc-inline__text{line-height:1.35}
.inv-line-prev-transfer{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0;max-width:100%
}
.inv-line-prev-transfer__ord{
  display:inline-flex;align-items:center;max-width:100%;padding:2px 8px;border-radius:999px;
  font-size:11px;font-weight:700;line-height:1.3;text-decoration:none;white-space:nowrap;
  background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc
}
.inv-line-prev-transfer__ord:hover{text-decoration:underline;color:#155e75}
.inv-line-prev-transfer__free{
  display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;
  font-size:11px;font-weight:700;line-height:1.3;white-space:nowrap;
  background:#ecfdf5;color:#047857;border:1px solid #a7f3d0
}
.inv-ui__table--lines tbody tr.inv-ui__line-row--prev-partial td{background:#fffbeb}
.inv-ui__table--lines tbody tr.inv-ui__line-row--prev-in-ordine td{background:#f8fafc}
.inv-ui__table--lines tbody tr.inv-ui__line-row--prev-free td{background:#f0fdf4}
.inv-ui__table--lines tbody tr.inv-ui__line-row--prev-partial:hover td,
.inv-ui__table--lines tbody tr.inv-ui__line-row--prev-in-ordine:hover td,
.inv-ui__table--lines tbody tr.inv-ui__line-row--prev-free:hover td{filter:brightness(0.985)}
.inv-line-invoiced-lock{font-size:12px;opacity:.65}
.inv-ui__card-badge-sub{font-weight:600;color:#c2410c}
.inv-line-rif-stack{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.inv-line-source-doc{
  display:inline-block;max-width:100%;padding:2px 7px;border-radius:999px;
  font-size:10px;font-weight:800;text-decoration:none;white-space:nowrap;overflow:visible;text-overflow:clip
}
.inv-line-source-doc.is-pf{background:#f3e8ff;color:#7e22ce;border:1px solid #e9d5ff}
.inv-line-source-doc.is-ddt{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.inv-line-source-doc.is-cons{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.inv-line-source-doc.is-ordine{background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc}
.inv-line-source-doc:hover{text-decoration:underline}
.billing-odl-ref--stacked{font-size:11px}
.inv-ui__table--lines thead th{
  padding:8px 4px;
  overflow:hidden;
  text-overflow:ellipsis;
  box-sizing:border-box;
  vertical-align:middle;
  text-align:center;
}
.inv-ui__table--lines thead th.inv-ui__col-desc{
  text-align:left;
}
.inv-ui__table--lines thead th.inv-ui__col-qty,
.inv-ui__table--lines thead th.inv-ui__col-qty-conf,
.inv-ui__table--lines thead th.inv-ui__col-um,
.inv-ui__table--lines thead th.inv-ui__col-rif,
.inv-ui__table--lines thead th.inv-ui__col-vat{
  letter-spacing:.02em;
}
.inv-ui__table--lines thead th.inv-ui__col-amount{
  background:linear-gradient(180deg,#38bdf8,#2563eb);
}
.inv-ui__table--lines tbody tr:nth-child(even) td{background:#fafbff}
.inv-ui__table--lines tbody tr:hover td{background:#f5f3ff}
.inv-ui__table--vat{table-layout:fixed;min-width:0;width:100%;--inv-vat-money-col:6.5rem}
/* 5 colonne: IVA stretta | Descrizione | Imponibile | Imposta | Tot. */
.inv-ui__table--vat th:nth-child(1),.inv-ui__table--vat td:nth-child(1){width:38px;max-width:38px;padding-left:6px;padding-right:4px;text-align:center;white-space:nowrap}
.inv-ui__table--vat th:nth-child(2),.inv-ui__table--vat td:nth-child(2){width:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.inv-ui__table--vat th:nth-child(3),.inv-ui__table--vat td:nth-child(3),
.inv-ui__table--vat th:nth-child(4),.inv-ui__table--vat td:nth-child(4),
.inv-ui__table--vat th:nth-child(5),.inv-ui__table--vat td:nth-child(5){
  width:var(--inv-vat-money-col);min-width:var(--inv-vat-money-col);max-width:none;
  padding-left:6px;padding-right:8px;white-space:nowrap;
}
.inv-ui__table--vat thead th:nth-child(2){text-align:left}
.inv-ui__table--vat thead th:nth-child(3),
.inv-ui__table--vat thead th:nth-child(4),
.inv-ui__table--vat thead th:nth-child(5){text-align:center}
.inv-ui__table--vat td:nth-child(3),
.inv-ui__table--vat td:nth-child(4),
.inv-ui__table--vat td:nth-child(5){text-align:right}
.inv-ui__table--vat th{
  background:#eef2ff!important;color:#4338ca;
  font-size:10px;padding:9px 8px;white-space:nowrap;line-height:1.2;vertical-align:middle;
  border-bottom:1px solid #c7d2fe;font-weight:800;
}
.inv-ui__table--vat td{padding:9px 8px;font-size:12px;vertical-align:middle;background:#fff}
.inv-ui__table--vat tbody tr:nth-child(even) td{background:#f8fafc}
.inv-ui__table--vat td:nth-child(2){word-break:break-word;white-space:normal;line-height:1.35;color:#334155}
.inv-ui__table--vat td:nth-child(1){font-weight:700;color:#64748b;font-size:11.5px}
.inv-ui__table--vat .inv-ui__td-num{font-weight:700;color:#0f172a;white-space:nowrap}
.inv-ui__table--vat td:last-child{background:#eef2ff;font-weight:800;color:#4338ca;white-space:nowrap}
.inv-ui__card--vat .inv-ui__table-wrap{overflow-x:auto;padding-bottom:18px!important}
.inv-ui__card--vat .inv-ui__table--vat{min-width:22.5rem}
.inv-ui__table--compact th{background:linear-gradient(180deg,#f59e0b,#d97706);color:#fff}
.inv-ui__table--compact td{padding:8px 10px;font-size:12px}
.inv-ui__th-num,.inv-ui__td-num{text-align:right;font-variant-numeric:tabular-nums}
.inv-ui__td-muted{color:#94a3b8;font-size:12px;font-weight:600}
.inv-ui__td-desc{min-width:180px;width:auto;overflow:hidden;vertical-align:middle}
.billing-input--cat{
  font-size:11px;padding:6px 22px 6px 6px;
  width:100%;min-width:0;max-width:100%;box-sizing:border-box
}
.inv-ui__table--lines .billing-input--cat{font-size:11px}
.inv-ui__table--lines .inv-line-codice{font-size:11px;padding:6px 8px;font-family:ui-monospace,Consolas,monospace;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.inv-ui__table--lines .inv-line-codice-select{
  min-width:0;max-width:100%;width:100%;padding:6px 22px 6px 6px;font-size:11px;box-sizing:border-box
}
.inv-line-magazzino{width:100%;min-width:0;max-width:100%}
.inv-line-magazzino.is-servizi-mode .inv-line-codice{display:none!important}
.inv-line-magazzino.is-prodotti-mode [data-material-codice-select]{display:none!important}
.inv-line-magazzino [data-material-codice-select][hidden]{display:none!important}
.inv-ui__desc-input{
  width:100%;
  min-height:38px;
  line-height:1.4;
  resize:none;
  overflow:hidden;
  background:#fff;
  max-width:100%;
  box-sizing:border-box;
  white-space:pre-wrap;
  word-break:normal;
  field-sizing:content;
}
.inv-ui__desc-wrap{position:relative;min-width:0}
.inv-ui__desc-wrap .inv-ui__desc-input{padding-right:34px}
.inv-ui__desc-actions{
  position:absolute;right:6px;top:8px;
  display:inline-flex;align-items:center;
}
.inv-ui__desc-dictate{
  width:22px;height:22px;border-radius:999px;
  border:1px solid #e2e8f0;background:#fff;color:#64748b;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;padding:0;flex-shrink:0;
}
.inv-ui__desc-dictate:hover{background:#f8fafc;color:#334155;border-color:#cbd5e1}
.inv-ui__desc-dictate.is-dictating{
  background:#eef2ff;color:#4338ca;border-color:#a5b4fc;
  box-shadow:0 0 0 2px rgba(99,102,241,.15);
}
.inv-ui__desc-dictate-icon{display:block}
.inv-ui__table--lines textarea.billing-input.inv-ui__desc-input{resize:none;min-height:var(--inv-line-control-h,34px);line-height:1.25;padding-top:7px;padding-bottom:7px;box-sizing:border-box}
.inv-ui__table--lines .billing-input--amount{min-width:0;max-width:100%;width:100%;padding:6px 8px;font-size:12px;box-sizing:border-box}
.inv-ui__table--lines .billing-input--qty{min-width:0;width:100%;max-width:100%;padding:6px 4px;font-size:12px;box-sizing:border-box;text-align:center}
.inv-ui__money-field{display:flex;align-items:center;gap:3px;justify-content:flex-end;min-width:0;width:100%}
.inv-ui__money-field__sym{font-size:12px;font-weight:700;color:#64748b;flex-shrink:0;line-height:1;white-space:nowrap}
.inv-ui__money-field .billing-input--amount{flex:1 1 auto;width:auto;min-width:0;max-width:100%}
.inv-ui__table--lines td.inv-ui__td-price{overflow:visible}
.inv-ui__table--lines .inv-ui__money-field{width:100%}

.inv-line-discount-wrap{display:flex;align-items:center;gap:2px;justify-content:flex-end;min-width:0}
.inv-ui__table--lines .billing-input--discount{min-width:0;max-width:100%;width:100%;padding:6px 4px;font-size:12px;box-sizing:border-box;text-align:right}
.inv-line-discount-suffix{font-size:12px;font-weight:700;color:#64748b;flex-shrink:0}
.inv-ui__td-discount{min-width:68px}
.inv-ui__table--lines .billing-input--um{min-width:0;max-width:100%;width:100%;padding:6px 20px 6px 4px;font-size:11px;box-sizing:border-box;text-align:center}
.inv-ui a.billing-odl-ref,.inv-ui__ref{
  display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:100%;box-sizing:border-box;
  padding:2px 4px;border-radius:6px;font-size:10px;font-weight:800;color:#4338ca;
  background:#eef2ff;border:1px solid #c7d2fe;text-decoration:none;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis
}
.inv-ui a.billing-odl-ref:hover{text-decoration:underline}
.inv-ui__td-qty,.inv-ui__td-um,.inv-ui__td-rif,.inv-ui__td-cat,.inv-ui__td-code{white-space:nowrap}
.inv-ui__td-um select,.inv-ui__td-cat select,.inv-ui__td-code select,.inv-ui__td-code input{display:block}
/* Imponibile: allineato al tema blu dell’header (niente verde) */
.inv-ui__td-amount{
  background:linear-gradient(180deg,#eff6ff,#dbeafe)!important;
  font-weight:800;
  color:#1d4ed8;
  white-space:nowrap;
  border-left:1px solid rgba(37,99,235,.14);
}
.inv-ui__table--lines tbody tr:nth-child(even) .inv-ui__td-amount{
  background:linear-gradient(180deg,#dbeafe,#bfdbfe)!important;
  color:#1e40af;
}
.inv-ui__table--lines tbody tr:hover .inv-ui__td-amount{
  background:linear-gradient(180deg,#dbeafe,#93c5fd)!important;
  color:#1e3a8a;
}
.inv-ui__td-action{width:64px;text-align:center;white-space:nowrap}
.inv-ui__td-action .billing-icon-btn{vertical-align:middle}
.inv-ui__empty{text-align:center;color:#94a3b8;padding:24px 10px;font-size:13px}
.inv-ui__totals-card{background:linear-gradient(180deg,#f8fafc,#fff);border-top:3px solid #4f46e5!important}
.inv-ui__totals-card .inv-ui__card-title{color:#3730a3}
.inv-ui__totals-card .inv-ui__card-body{padding-bottom:0}
.inv-ui__totals{margin:0;display:flex;flex-direction:column;gap:0;padding:0 18px 12px!important}
.inv-ui__totals-card .inv-ui__totals{flex:none}
.inv-ui__total-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid #f1f5f9}
/* Allinea i numeri (dd) di tutte le righe sullo stesso bordo destro. */
.inv-ui__totals>.inv-ui__total-row{padding-right:12px}
.inv-ui__total-row:last-child{border-bottom:none}
.inv-ui__total-row dt{margin:0;font-size:13.5px;font-weight:650;color:#64748b}
.inv-ui__total-row dt label{cursor:pointer}
.inv-ui__total-row dd{margin:0;font-size:14px;font-weight:750;color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}
.inv-ui__total-row--discount{align-items:center}
.inv-ui__total-row--discount dt{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex:1 1 auto;min-width:0}
.inv-ui__total-row--discount dt label{margin-bottom:0;cursor:pointer;flex:0 0 auto}
.inv-ui__total-row--discount dd{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  flex:0 0 auto;
  min-width:5.5rem;
  color:#0f172a;
  white-space:nowrap
}
.inv-ui__discount-pct{font-size:13px;font-weight:750;color:#0f172a}
.inv-ui__discount-input{display:inline-flex;align-items:center;gap:3px;margin-left:0}
.inv-ui__discount-field.billing-input{
  width:64px;text-align:right;padding:3px 6px;font-size:12px;font-weight:700;
  font-variant-numeric:tabular-nums;border-radius:7px;
}
.inv-ui__discount-suffix{font-size:12px;font-weight:750;color:#0f172a}
.inv-ui__total-row--highlight{
  padding:14px 12px;margin:6px 0;border-radius:10px;
  background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:none;
}
.inv-ui__total-block--document{
  padding:10px 12px;margin:4px 0;border-radius:10px;
  background:linear-gradient(135deg,#eef2ff,#e0e7ff);
}
.inv-ui__total-block--document .inv-ui__total-row{
  padding:6px 0;border-bottom:1px solid rgba(99,102,241,.18);
}
.inv-ui__total-block--document .inv-ui__total-row:last-child{border-bottom:none;padding-bottom:0}
.inv-ui__total-block--document .inv-ui__total-row:first-child{padding-top:0}
.inv-ui__total-block--document dt{font-size:13px;font-weight:800;color:#3730a3}
.inv-ui__total-block--document dd{font-size:16px;font-weight:800;color:#4338ca}
.inv-ui__total-block--document .inv-ui__total-row:first-child dd{font-size:18px}
.inv-ui__total-row--highlight dt{font-size:13px;font-weight:800;color:#3730a3}
.inv-ui__total-row--highlight dd{font-size:18px;font-weight:800;color:#4338ca}
.inv-ui__total-row--grand{
  padding:10px 12px;margin-top:2px;margin-bottom:0;border-radius:10px;
  background:linear-gradient(135deg,#4f46e5,#2563eb);border:none;
}
.inv-ui__total-row--grand dt{font-size:13px;font-weight:800;color:rgba(255,255,255,.85)}
.inv-ui__total-row--grand dd{font-size:20px;font-weight:800;color:#fff}
.inv-ui__notes-block{margin-top:0;background:transparent;border:none;padding:0 18px 16px!important}

/* Anteprima / stampa PDF — A4, header/footer fissi ripetuti */
.inv-print-page{margin:0;background:#e2e8f0;color:#0f172a;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.inv-print-toolbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 20px;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 2px 8px rgba(15,23,42,.06);
}
.inv-print-toolbar__info{display:flex;align-items:center;gap:10px;font-size:14px;color:#64748b;flex-wrap:wrap}
.inv-print-toolbar__info strong{color:#0f172a}
.inv-print-toolbar__hint{
  display:inline-block;font-size:12px;color:#94a3b8;font-weight:500;
  padding:3px 8px;border-radius:6px;background:#f1f5f9;
}
.inv-print-toolbar__actions{display:flex;gap:8px;flex-wrap:wrap}
.inv-print-body{
  --inv-print-page-w:210mm;
  --inv-print-page-h:297mm;
  --inv-print-safe-margin-y:4mm;
  --inv-print-safe-margin-x:6mm;
  --inv-print-header-h:36mm;
  --inv-print-footer-h:108mm;
  width:100%;margin:0;padding:16px 12px 28px;box-sizing:border-box;
  display:flex;justify-content:center;align-items:flex-start;
}
.inv-print-body .inv-doc-wrap--print{
  position:relative;
  display:flex;
  flex-direction:column;
  width:var(--inv-print-page-w);
  max-width:100%;
  min-height:var(--inv-print-page-h);
  padding:var(--inv-print-safe-margin-y) var(--inv-print-safe-margin-x);
  margin:0 auto;
  flex:0 1 var(--inv-print-page-w);
  background:#fff;
  box-shadow:0 8px 28px rgba(15,23,42,.18);
  box-sizing:border-box;
  border:1px solid var(--inv-border,#333);
}
.inv-print-page-header{
  flex:0 0 auto;
  width:100%;
  background:#fff;
  box-sizing:border-box;
  border-bottom:1px solid #333;
  padding:6px 8px 5px;
  overflow:visible;
}
/* Evita doppia riga sotto Cessionario/Destinazione (bordo header + bordo addresses). */
.inv-print-page-header.inv-doc__head--stacked{
  border-bottom:none;
  padding:0;
}
.inv-print-body .inv-doc-wrap--print .inv-doc{
  display:block;
  /* Non espandere: altrimenti il vuoto sotto i totali «stacca» trasporto/firme */
  flex:0 0 auto;
  width:100%;
  max-width:none;
  min-width:0;
  min-height:0;
  margin:0;
  box-shadow:none;
  background:#fff;
  box-sizing:border-box;
  border:none;
}
.inv-print-page-footer{
  /* Intero blocco (trasporto + firme + band) ancorato in basso pagina */
  flex:0 0 auto;
  display:block;
  width:100%;
  max-width:100%;
  margin:0;
  margin-top:auto;
  padding:0;
  background:#fff;
  box-sizing:border-box;
  border-top:1px solid var(--inv-border,#333);
}
.inv-print-page-footer .inv-doc__footer-main{
  border-top:none;
}
.inv-print-page-footer .inv-doc__transport{padding:0}
.inv-print-page-footer .inv-doc__transport-table td{padding:2px 4px}
.inv-print-page-footer .inv-doc__transport-table__notes{min-height:24px}
.inv-print-page-footer .inv-doc__signatures{padding:0}
.inv-print-page-footer .inv-doc__signatures-table td{padding:3px 5px 6px}
.inv-print-page-footer .inv-doc__footer{padding:4px 0 0;margin-top:0}
.inv-print-page-footer .inv-doc__footer-signs{padding:0 8px 6px;margin-top:4px}
.inv-print-page-footer .inv-doc__sign-box__row{padding:2px 4px 5px}
.inv-print-page-footer .inv-doc__sign-box__row .inv-doc__sign-line{padding-top:8px;margin-top:auto}
.inv-print-page-footer .inv-doc__footer-seo{
  padding:2px 6px;
  border-top:1px solid var(--inv-border,#333);
  margin-top:0;
}
.inv-print-page-footer__band{
  display:block;width:100%;margin:0;padding:0;line-height:0;
  background:transparent;
  margin-top:0;
}
.inv-print-page-footer__img{
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-width:100%!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  object-fit:fill;
  box-sizing:border-box;
  background:transparent!important;
  /* Sfondo grigio dell’immagine → trasparente su carta bianca */
  mix-blend-mode:multiply;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}

@media print{
  @page{
    size:A4 portrait;
    /* Margine 0: il rientro sicuro è sul documento (padding), così logo/footer
       non «galleggiano» al centro per doppio margine browser+@page. */
    margin:0;
  }
  .no-print{display:none!important}
  html,body.inv-print-page{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    width:100%!important;
    height:auto!important;
  }
  .inv-print-page{background:#fff;margin:0!important;padding:0!important}
  .inv-print-body{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    padding:0!important;
    margin:0!important;
    --inv-print-safe-margin-y:4mm;
    --inv-print-safe-margin-x:6mm;
  }
  .inv-doc-wrap--print{
    position:static!important;
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:none!important;
    /* Riempie l’A4: trasporto subito sotto i totali, band in basso */
    min-height:297mm!important;
    height:auto!important;
    padding:var(--inv-print-safe-margin-y,4mm) var(--inv-print-safe-margin-x,6mm)!important;
    margin:0!important;
    box-shadow:none!important;
    background:#fff!important;
    border:none!important;
    box-sizing:border-box!important;
  }
  .inv-print-page-header{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    flex:0 0 auto;
    width:100%!important;
    margin:0!important;
    z-index:1;
    background:#fff!important;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  /* Forza titolo documento in alto a destra (allineato al logo), anche se
     il riquadro anteprima stampa è stretto. */
  .inv-doc__head-top{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
  }
  .inv-doc__head--stacked .inv-doc__titlebox,
  .inv-doc__titlebox{
    align-self:flex-start!important;
    margin-top:0!important;
    padding-top:0!important;
  }
  .inv-doc__doctype{
    margin:0!important;
    padding:0!important;
    line-height:1!important;
  }
  .inv-print-page-footer{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    flex:0 0 auto!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    margin-top:auto!important;
    padding:0!important;
    z-index:1;
    background:#fff!important;
    border-top:1px solid #333;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  .inv-print-page-footer .inv-doc__footer-seo,
  .inv-print-page-footer__band{
    margin-top:0!important;
  }
  .inv-print-page-footer__band,
  .inv-print-page-footer__img{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:100%!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
  }
  .inv-print-page-footer__img{
    height:auto!important;
    mix-blend-mode:multiply;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  .inv-doc-wrap--print .inv-doc{
    display:block!important;
    flex:0 0 auto!important;
    box-shadow:none!important;
    margin:0!important;
    min-width:0;
    min-height:0;
    max-width:none;
    width:100%!important;
    border:none!important;
    padding-top:0!important;
    padding-bottom:0!important;
    break-inside:auto;
    page-break-inside:auto;
  }
  .inv-doc,.inv-doc th,.inv-doc td,.inv-doc__totals-highlight td,.inv-doc__totals-grand td{
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  /* Tratto sottile in stampa (evita bordi “bold” da rasterizzazione / doppi). */
  .inv-doc th,
  .inv-doc td,
  .inv-doc__meta-cell,
  .inv-doc__totals td,
  .inv-doc__totals-panel,
  .inv-doc__summary-row,
  .inv-doc__transport-table td,
  .inv-doc__sign-box,
  .inv-doc__sign-box__row,
  .inv-doc__doc-ids,
  .inv-doc__doc-ids-cell{
    border-width:0.5pt!important;
  }
  .inv-doc__summary-row{
    border-style:solid!important;
    border-top:none!important;
    border-left-color:var(--inv-border,#333)!important;
    border-right-color:var(--inv-border,#333)!important;
    border-bottom-color:var(--inv-border,#333)!important;
  }
  .inv-doc__vat-table th:first-child,
  .inv-doc__vat-table td:first-child{border-left:none!important}
  .inv-doc__vat-table th:last-child,
  .inv-doc__vat-table td:last-child{border-right:none!important}
  .inv-doc__totals td:first-child,
  .inv-doc__totals tr.inv-doc__totals-grand td:first-child{border-left:none!important}
  .inv-doc__totals td:last-child,
  .inv-doc__totals tr.inv-doc__totals-grand td:last-child{border-right:none!important}
  .inv-doc__vat-table thead th,
  .inv-doc__totals tr:first-child td{border-top:none!important}
  .inv-doc__vat-table tbody tr:last-child td,
  .inv-doc__totals tr:last-child td{border-bottom:none!important}
  .inv-doc__lower{border-top:none!important}
  body.inv-print-page{background:#fff;margin:0}
  a{color:inherit;text-decoration:none}
}

.inv-print-body--batch{
  display:flex;flex-direction:column;align-items:center;gap:20px;
  width:100%;padding:16px 12px 28px;box-sizing:border-box;
}
.inv-print-body--batch .inv-print-batch-sheet{
  width:var(--inv-print-page-w, 210mm);
  max-width:100%;
}
.inv-print-body--batch .inv-doc-wrap--print{
  margin:0 auto;
}
@media print{
  .inv-print-batch .inv-print-body--batch{
    display:block!important;padding:0!important;margin:0!important;gap:0!important;
  }
  .inv-print-batch .inv-print-batch-sheet{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    page-break-after:always!important;
    break-after:page!important;
  }
  .inv-print-batch .inv-print-batch-sheet:last-child{
    page-break-after:auto!important;
    break-after:auto!important;
  }
  .inv-print-batch .inv-print-batch-sheet + .inv-print-batch-sheet{
    page-break-before:always!important;
    break-before:page!important;
  }
  .inv-print-batch .inv-doc-wrap--print{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    min-height:297mm!important;
    height:auto!important;
    padding:4mm 6mm!important;
    margin:0!important;
    box-sizing:border-box!important;
    page-break-after:auto!important;
    break-after:auto!important;
  }
  .inv-print-batch .inv-print-page-footer{
    flex:0 0 auto!important;
    display:block!important;
    margin:0!important;
    margin-top:auto!important;
  }
  .inv-print-batch .inv-print-page-footer .inv-doc__footer-seo,
  .inv-print-batch .inv-print-page-footer__band{margin-top:0!important}
}

/* ====== Vista amministrativa consolidata (accordion ticket amministrativi) ====== */
/* Nella board admin il dettaglio occupa tutta la larghezza (niente colonna vuota) */
.tasks-grid[data-board-origin="admin"] .task-detail-layout{display:block}
.tasks-grid[data-board-origin="admin"] .task-detail-primary{grid-column:auto;width:100%}
.adm-detail{display:flex;flex-direction:column;gap:10px;width:100%}
.adm-card{background:#fff;border:1px solid #e8edf3;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.adm-card__head{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid #eef2f7;background:#f8fafc}
.adm-card__head h4{margin:0;font-size:.78rem;font-weight:700;color:#0f172a;text-transform:uppercase;letter-spacing:.05em}
.adm-card__icon{font-size:1rem;line-height:1}
.adm-card__body{padding:14px 16px}
.adm-summary{display:flex;flex-direction:column;gap:0;padding:12px 16px}
.adm-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid #eef2f7}
.adm-hero__main{min-width:0}
.adm-hero__title{font-size:1.02rem;font-weight:700;color:#0f172a;line-height:1.3}
.adm-hero__client{margin-top:2px;font-size:.82rem;color:#64748b;font-weight:500}
.adm-hero__client{display:flex;align-items:center;gap:6px}
.adm-hero__client-icon{flex:none}
.adm-client-picker{position:relative;flex:1;min-width:0;max-width:300px}
.adm-client-picker__input{width:100%;padding:6px 26px 6px 10px;border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;font-size:12px;font-weight:600;font-family:inherit;box-sizing:border-box}
.adm-client-picker__input::placeholder{color:#93a3b8;font-weight:500}
.adm-client-picker__input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 2px rgba(96,165,250,.25);background:#fff}
.adm-client-picker__clear{position:absolute;top:50%;right:6px;transform:translateY(-50%);border:none;background:transparent;color:#64748b;font-size:16px;line-height:1;cursor:pointer;padding:0 3px}
.adm-client-picker__clear:hover{color:#dc2626}
.adm-client-picker__results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 12px 28px rgba(15,23,42,.14);max-height:260px;overflow:auto}
.adm-client-picker__results.is-floating{position:fixed;right:auto;z-index:10050;max-height:min(260px,calc(100vh - 16px))}
.adm-client-picker__result{padding:8px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:2px}
.adm-client-picker__result:last-child{border-bottom:none}
.adm-client-picker__result:hover{background:#eff6ff}
.adm-client-picker__result strong{font-weight:600;color:#0f172a}
.adm-client-picker__result small{color:#64748b}
.adm-client-picker__result--empty{color:#94a3b8;cursor:default;text-align:center}
.adm-client-picker__result--empty:hover{background:transparent}
.adm-client-picker.is-saving .adm-client-picker__input{opacity:.7}
.adm-client-picker.is-saved .adm-client-picker__input{box-shadow:0 0 0 2px rgba(34,197,94,.35)}
.adm-badges{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
/* Griglia info densa (label/valore) */
.adm-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 28px;padding:4px 0 2px}
.adm-info__item{display:flex;flex-direction:column;gap:1px;padding:7px 0;border-bottom:1px solid #f4f6fa;min-width:0}
.adm-info__item--wide{grid-column:1/-1}
.adm-info__label{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}
.adm-info__value{font-size:.85rem;font-weight:600;color:#0f172a;line-height:1.35;word-break:break-word}
.adm-info__value--desc{font-weight:500;color:#334155;white-space:pre-wrap;line-height:1.5}
.adm-info__value.is-overdue{color:#dc2626}
.adm-info__value.is-urgent{color:#d97706}
/* Striscia tempo compatta */
.adm-time{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:12px;padding:9px 13px;background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fed7aa;border-radius:10px}
.adm-time__stat{display:flex;align-items:baseline;gap:7px}
.adm-time__label{font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#9a3412}
.adm-time__value{font-size:1.15rem;font-weight:800;color:#9a3412;font-variant-numeric:tabular-nums;line-height:1}
.adm-time__stat--soft .adm-time__label{color:#b45309}
.adm-time__stat--soft .adm-time__value{color:#b45309;font-size:1rem;font-weight:700}
.adm-time__users{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1 1 220px;min-width:0;margin-left:auto}
.adm-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:.74rem;font-weight:700;border:1px solid transparent;white-space:nowrap}
.adm-badge--status{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}
.adm-badge--billing{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.adm-hero__desc{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding-top:14px;border-top:1px solid #eef2f7}
/* Gruppi logici di informazioni */
.adm-groups{display:flex;flex-direction:column;gap:16px}
.adm-group{display:flex;flex-direction:column;gap:9px}
.adm-group__title{display:flex;align-items:center;gap:10px;font-size:.66rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-group__title::after{content:'';flex:1;height:1px;background:#eef2f7}
.adm-fields{display:flex;flex-wrap:wrap;gap:10px}
.adm-cell{flex:1 1 180px;min-width:150px;background:#f8fafc;border:1px solid #eef2f7;border-radius:11px;padding:11px 13px;display:flex;flex-direction:column;gap:6px;min-height:60px;transition:border-color .15s ease,background .15s ease}
.adm-cell:hover{background:#fff;border-color:#dbe3ee}
.adm-cell--sm{flex:0 1 160px;min-width:140px}
.adm-cell--grow{flex:3 1 280px}
.adm-cell--full{flex:1 1 100%}
.adm-cell__label{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}
.adm-cell__value{font-size:.9rem;font-weight:600;color:#0f172a;line-height:1.4;word-break:break-word}
.adm-cell__value.is-overdue{color:#dc2626}
.adm-cell__value.is-urgent{color:#d97706}
.adm-cell__sub{font-size:.78rem;font-weight:500;color:#94a3b8}
.adm-desc{font-size:.9rem;color:#334155;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.adm-desc--empty{color:#94a3b8;font-style:italic}
.adm-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.adm-field{display:flex;flex-direction:column;gap:7px}
.adm-field__label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#64748b;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.adm-field__value{font-size:.9rem;font-weight:600;color:#0f172a}
.adm-flow-hint{margin:14px 0 0;padding-top:12px;border-top:1px dashed #e2e8f0;font-size:.78rem;color:#64748b;line-height:1.5}
.adm-flow-hint strong{color:#4338ca}
.adm-time-users__list{display:flex;flex-wrap:wrap;gap:6px}
/* Tempistiche splittate (Lavorato → Fatturabile → Rettifica → Fatturato) — palette coerente al tema (indigo + slate) */
.adm-time--split{display:flex;align-items:stretch;flex-wrap:wrap;gap:0;padding:6px;background:linear-gradient(180deg,#fff,#fcfcff);border:1px solid #e7eaf2;border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.adm-time--split .adm-time__stat{position:relative;display:flex;flex-direction:row;align-items:center;gap:11px;padding:11px 16px;border:0;border-radius:11px;transition:background .15s ease}
.adm-time--split .adm-time__ico{flex:0 0 auto;width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;background:#f1f3f9;color:#64748b;box-shadow:inset 0 0 0 1px rgba(15,23,42,.04)}
.adm-time--split .adm-time__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.adm-time--split .adm-time__label{display:inline-flex;align-items:center;gap:5px;font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-time--split .adm-time__value{font-size:1.2rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:-.01em}
/* Connettori di flusso */
.adm-time--split .adm-time__arrow{align-self:center;color:#cbd5e1;font-size:1rem;font-weight:700;padding:0 2px;user-select:none}
.adm-time--split .adm-time__arrow[hidden]{display:none}
/* Lavorato: dato neutro */
.adm-time--split .adm-time__stat--worked .adm-time__value{color:#1e293b}
/* Fatturabile: valore chiave, evidenziato col primary del tema */
.adm-time--split .adm-time__stat--bill{background:#f5f5ff}
.adm-time--split .adm-time__stat--bill .adm-time__ico{background:#e0e7ff;color:#4f46e5;box-shadow:inset 0 0 0 1px rgba(79,70,229,.12)}
.adm-time--split .adm-time__stat--bill .adm-time__label{color:#4f46e5}
.adm-time--split .adm-time__stat--bill .adm-time__value{color:#4338ca}
.adm-time--split .adm-time__stat--bill.is-adjusted .adm-time__ico{background:#fef3c7;color:#b45309;box-shadow:inset 0 0 0 1px rgba(180,83,9,.15)}
/* Rettifica */
.adm-time--split .adm-time__stat--adj{background:#fffaf0}
.adm-time--split .adm-time__stat--adj .adm-time__ico{background:#fef3c7;color:#b45309;box-shadow:inset 0 0 0 1px rgba(180,83,9,.12)}
.adm-time--split .adm-time__stat--adj .adm-time__label{color:#b45309}
/* Fatturato: stato pre-fatturazione */
.adm-time--split .adm-time__stat--billed{margin-left:auto}
.adm-time--split .adm-time__stat--billed .adm-time__ico{background:#ecfdf5;color:#059669;box-shadow:inset 0 0 0 1px rgba(5,150,105,.12)}
.adm-bill-state-pill{display:inline-flex;align-items:center;gap:5px;width:fit-content;padding:3px 11px;border-radius:999px;font-size:.78rem;font-weight:700;line-height:1.3}
a.adm-bill-state-pill{text-decoration:none}
a.adm-bill-state-pill:hover{filter:brightness(.95)}
.adm-bill-state-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}
.adm-bill-state-pill.is-todo{background:#f1f5f9;color:#64748b}
.adm-bill-state-pill.is-draft{background:#dbeafe;color:#1d4ed8}
.adm-bill-state-pill.is-done{background:#d1fae5;color:#059669}
/* Per operatore */
.adm-time--split .adm-time__users{display:flex;flex:0 1 auto;flex-direction:column;align-items:flex-start;gap:6px;padding:11px 16px;margin-left:0;border-left:1px dashed #eef1f7;border-radius:11px;background:transparent}
.adm-time--split .adm-time__users .adm-info__label{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-time-users__list{display:flex;flex-wrap:wrap;gap:6px}
.adm-time-users__list .time-contributor{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:#eef1f8;border:1px solid #e2e7f1;font-size:.74rem;font-weight:600;color:#475569}
.adm-time-users__list .time-contributor.subtle{background:transparent;border-color:transparent;color:#94a3b8;font-style:italic}
/* Editor fatturabile */
.adm-bill-edit{display:inline-flex;align-items:center;gap:5px;margin-top:1px}
.adm-bill-input{width:46px;padding:5px 4px;border:1px solid #c7d2fe;border-radius:8px;background:#fff;font-size:1.05rem;font-weight:800;color:#4338ca;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;transition:border-color .15s ease,box-shadow .15s ease}
.adm-bill-input::-webkit-outer-spin-button,.adm-bill-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.adm-bill-input:hover{border-color:#a5b4fc}
.adm-bill-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.18)}
.adm-bill-unit{font-size:.78rem;font-weight:700;color:#6366f1}
.adm-bill-status{font-size:.7rem;font-weight:600;margin-left:2px;min-width:16px}
.adm-bill-status.is-ok{color:#059669}
.adm-bill-status.is-err{color:#dc2626}
.adm-bill-status.is-pending{color:#94a3b8}
.adm-rettifica{color:#b45309}
.adm-rettifica.is-neg{color:#e11d48}
.adm-rettifica.is-pos{color:#d97706}
.adm-bill-reset{margin-left:2px;border:1px solid #f0d9a8;background:#fff;color:#b45309;width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}
.adm-bill-reset:hover{background:#fffaf0;border-color:#e0b96a}
@media (max-width:760px){
  .adm-time--split{flex-direction:column;align-items:stretch}
  .adm-time--split .adm-time__stat,.adm-time--split .adm-time__users{width:100%}
  .adm-time--split .adm-time__stat--billed{margin-left:0}
  .adm-time--split .adm-time__arrow{display:none}
  .adm-time--split .adm-time__users{border-left:0;border-top:1px dashed #eef1f7;border-radius:0}
}

/* === Tempistiche v2: ODL (sola lettura) + fatturabile editabile (amministrazione) === */
.adm-bill2{display:flex;flex-wrap:wrap;align-items:stretch;gap:14px}
.adm-bill2__odl{flex:1 1 280px;min-width:240px;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid #e7eaf2;border-radius:14px;background:linear-gradient(180deg,#fff,#fcfcff)}
.adm-bill2__odl-title{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-bill2__odl-stats{display:flex;gap:22px;flex-wrap:wrap}
.adm-bill2__stat{display:flex;align-items:center;gap:11px}
.adm-bill2__stat-ico{flex:0 0 auto;width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;background:#f1f3f9;color:#64748b;box-shadow:inset 0 0 0 1px rgba(15,23,42,.04)}
.adm-bill2__stat-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.adm-bill2__stat-label{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-bill2__stat-value{font-size:1.2rem;font-weight:800;color:#1e293b;font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:-.01em}
/* Blocco editabile */
.adm-bill2__edit{flex:1 1 300px;min-width:260px;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid #c7d2fe;border-radius:14px;background:#f5f5ff}
.adm-bill2__edit.is-adjusted{border-color:#f0d9a8;background:#fffaf0}
.adm-bill2__edit-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.adm-bill2__edit-title{font-size:.82rem;font-weight:700;color:#4338ca}
.adm-bill2__edit.is-adjusted .adm-bill2__edit-title{color:#b45309}
.adm-bill2__edit-sub{font-size:.66rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#a5b0c7}
.adm-bill2__rett{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:700}
.adm-bill2__rett[hidden]{display:none}
.adm-bill2__rett-label{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#b45309}
.adm-bill-select{width:auto;min-width:54px;padding-right:6px;cursor:pointer;-moz-appearance:auto;appearance:auto}
@media (max-width:760px){
  .adm-bill2{flex-direction:column}
  .adm-bill2__odl,.adm-bill2__edit{flex:1 1 auto}
}

/* === Tab stato lavorazione ODL (amministrazione) === */
.adm-tabs-bar{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #eef1f6}
.adm-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:5px;background:#f4f6fb;border:1px solid #e7eaf2;border-radius:14px}
.adm-tab{flex:1 1 auto;justify-content:center;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:10px;font-size:.84rem;font-weight:600;color:#64748b;text-decoration:none;border:1px solid transparent;transition:all .15s ease;white-space:nowrap}
.adm-tab:hover{background:#fff;color:#334155}
.adm-tab.is-active{background:#fff;color:#1e293b;border-color:#e2e8f0;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.adm-tab__icon{font-size:1rem;line-height:1}
.adm-tab__count{min-width:22px;text-align:center;padding:2px 8px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}
/* Accento colore per il tab attivo, coerente con gli stati */
.adm-tab--da_gestire.is-active{box-shadow:inset 0 0 0 1px #cbd5e1,0 1px 3px rgba(15,23,42,.08)}
.adm-tab--fatturato.is-active{color:#059669}
.adm-tab--fatturato.is-active .adm-tab__count{background:#d1fae5;color:#059669}
.adm-tab--non_fatturato.is-active{color:#dc2626}
.adm-tab--non_fatturato.is-active .adm-tab__count{background:#fee2e2;color:#dc2626}
.odl-number-cell{text-align:center;vertical-align:middle;white-space:nowrap;padding:8px 6px}
.odl-number-link{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:700;text-decoration:none;border:1px solid #e2e8f0}
.odl-number-link:hover{background:#e2e8f0;color:#0f172a;border-color:#cbd5e1}
.adm-tab--pending.is-active{color:#b45309}
.adm-tab--pending.is-active .adm-tab__count{background:#fef3c7;color:#b45309}
@media (max-width:760px){ .adm-tab{flex:1 1 40%} }
@media (max-width:480px){ .adm-tab__label{display:none} .adm-tab{flex:1 1 auto} }

/* === Process rail ciclo documentale (Documenti) ===
   Override mirati su .adm-tabs / .adm-tab solo dentro .doc-hub-strip,
   così le tab amministrazione ODL restano invariate. */
.doc-hub-strip--full{width:100%}
.doc-hub-strip--full .doc-tabs-bar,
.doc-hub-strip--full .doc-tabs{width:100%}
.doc-hub-strip--sticky{
    position:sticky;
    top:var(--doc-hub-sticky-top, 68px);
    z-index:90;
    margin:0 0 12px;
    padding:8px 0 6px;
    background:linear-gradient(180deg, rgba(247,248,251,.97) 0%, rgba(247,248,251,.92) 70%, rgba(247,248,251,.78) 100%);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.doc-hub-strip--sticky .doc-tabs-bar.adm-tabs-bar{margin-bottom:0}
.doc-hub-strip--sticky .doc-tabs.adm-tabs{
    box-shadow:0 4px 18px rgba(15,23,42,.06), inset 0 1px 0 rgba(255,255,255,.8)
}
.doc-hub-strip .doc-tabs-bar.adm-tabs-bar{
    margin:0 0 14px;padding:0;border-bottom:none
}
.doc-hub-strip .doc-tabs.adm-tabs{
    display:flex;flex-wrap:wrap;align-items:stretch;
    gap:8px;padding:6px;
    background:#fafbfc;
    border:1px solid #e8ecf1;
    border-radius:14px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8)
}
.doc-tab-item{
    --doc-tab-accent:#64748b;
    --doc-tab-soft:#f1f5f9;
    --doc-tab-active-bg:#f8fafc;
    --doc-tab-active-border:#cbd5e1;
    --doc-tab-count-bg:#eef2f6;
    display:flex;align-items:stretch;flex:1 1 0;min-width:0;
    border-radius:12px;
    background:#fff;
    border:1px solid #e8ecf1;
    box-shadow:0 1px 0 rgba(15,23,42,.03);
    overflow:hidden;
    transition:border-color .15s ease,box-shadow .15s ease
}
.doc-tab-item:hover{
    border-color:#d5dbe6;
    box-shadow:0 2px 6px rgba(15,23,42,.05)
}
.doc-tab-item.is-active{
    border-color:var(--doc-tab-active-border);
    background:var(--doc-tab-active-bg);
    box-shadow:0 2px 8px rgba(15,23,42,.06)
}
.doc-hub-strip .doc-tab-item .adm-tab,
.doc-hub-strip .doc-tab{
    position:relative;
    flex:1 1 auto;min-width:0;
    justify-content:flex-start;
    gap:7px;
    padding:10px 10px 11px 12px;
    border:none;border-radius:0;
    background:transparent;
    color:#64748b;
    font-size:.8rem;font-weight:600;letter-spacing:.01em;
    box-shadow:none;
    transition:color .15s ease,background .15s ease
}
.doc-hub-strip .doc-tab-item .adm-tab:hover,
.doc-hub-strip .doc-tab:hover{
    background:transparent;color:#334155
}
.doc-hub-strip .doc-tab-item.is-active .adm-tab,
.doc-hub-strip .doc-tab-item.is-active .doc-tab,
.doc-hub-strip .doc-tab.is-active{
    background:transparent;color:#0f172a;
    border:none;box-shadow:none;font-weight:700
}
.doc-hub-strip .doc-tab-item.is-active .doc-tab::after{
    content:'';
    position:absolute;left:10px;right:10px;bottom:0;height:2px;
    border-radius:2px 2px 0 0;
    background:var(--doc-tab-accent)
}
.doc-tab__icon.adm-tab__icon,
.doc-hub-strip .doc-tab__icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:22px;height:22px;flex:0 0 auto;
    border-radius:7px;
    background:var(--doc-tab-soft);
    color:var(--doc-tab-accent);
    font-size:0;line-height:0
}
.doc-tab__glyph{display:block;width:14px;height:14px}
.doc-tab__label{overflow:hidden;text-overflow:ellipsis;min-width:0}
.doc-tab__label-short{display:none}
.doc-hub-strip .doc-tab__count.adm-tab__count,
.doc-hub-strip .doc-tab__count{
    margin-left:auto;
    min-width:2.2rem;padding:1px 7px;
    border-radius:6px;
    background:var(--doc-tab-count-bg);color:#64748b;
    font-size:.68rem;font-weight:700;font-variant-numeric:tabular-nums;
    line-height:1.5;white-space:nowrap
}
.doc-tab-item.is-active .doc-tab__count{
    background:var(--doc-tab-soft);
    color:var(--doc-tab-accent)
}
.doc-tab__add{
    flex-shrink:0;margin:0;width:30px;padding:0;
    display:inline-flex;align-items:center;justify-content:center;
    border:none;border-left:1px solid #eef1f5;
    border-radius:0;
    background:transparent;
    color:#94a3b8;font-size:15px;font-weight:700;line-height:1;
    cursor:pointer;
    transition:background .15s ease,color .15s ease
}
.doc-tab__add:hover:not(:disabled){
    background:var(--doc-tab-soft);
    color:var(--doc-tab-accent)
}
.doc-tab-item.is-active .doc-tab__add{
    border-left-color:var(--doc-tab-active-border);
    color:var(--doc-tab-accent);
    background:var(--doc-tab-soft)
}
.doc-tab__add--disabled{opacity:.35;cursor:not-allowed}
.doc-tab__add--disabled:hover{background:transparent;color:#94a3b8}

/* Accenti per tipo */
.doc-tab-item--preventivi{
    --doc-tab-accent:#475569;--doc-tab-soft:#f1f5f9;
    --doc-tab-active-bg:#f8fafc;--doc-tab-active-border:#cbd5e1;--doc-tab-count-bg:#eef2f6
}
.doc-tab-item--ordini{
    --doc-tab-accent:#0284c7;--doc-tab-soft:#e0f2fe;
    --doc-tab-active-bg:#f0f9ff;--doc-tab-active-border:#7dd3fc;--doc-tab-count-bg:#e0f2fe
}
.doc-tab-item--consuntivi{
    --doc-tab-accent:#0f766e;--doc-tab-soft:#ccfbf1;
    --doc-tab-active-bg:#f0fdfa;--doc-tab-active-border:#5eead4;--doc-tab-count-bg:#ccfbf1
}
.doc-tab-item--ddt{
    --doc-tab-accent:#b45309;--doc-tab-soft:#ffedd5;
    --doc-tab-active-bg:#fffbeb;--doc-tab-active-border:#fcd34d;--doc-tab-count-bg:#ffedd5
}
.doc-tab-item--pre_fatture{
    --doc-tab-accent:#4f46e5;--doc-tab-soft:#e0e7ff;
    --doc-tab-active-bg:#eef2ff;--doc-tab-active-border:#a5b4fc;--doc-tab-count-bg:#e0e7ff
}
.doc-tab-item--fatture{
    --doc-tab-accent:#059669;--doc-tab-soft:#d1fae5;
    --doc-tab-active-bg:#ecfdf5;--doc-tab-active-border:#6ee7b7;--doc-tab-count-bg:#d1fae5
}

/* Vista combinata Consuntivi + DDT: alone teal/amber, marker CSS al posto di 🔗 */
.doc-tab-item.is-combined{
    border-color:#5eead4;
    background:linear-gradient(180deg,#f0fdfa 0%,#fff 72%)
}
.doc-tab-item--ddt.is-combined{
    border-color:#fcd34d;
    background:linear-gradient(180deg,#fffbeb 0%,#fff 72%)
}
.doc-tab-item.is-combined:not(.is-active) .doc-tab{color:#0f766e}
.doc-tab-item--ddt.is-combined:not(.is-active) .doc-tab{color:#b45309}
.doc-tab-item.is-combined .doc-tab__count{
    background:var(--doc-tab-soft);
    color:var(--doc-tab-accent)
}
.doc-tab-item.is-combined .doc-tab__label-full::after,
.doc-tab-item.is-combined .doc-tab__label-short::after{
    content:'';
    display:inline-block;
    width:6px;height:6px;margin-left:6px;vertical-align:middle;
    border-radius:50%;
    background:var(--doc-tab-accent);
    box-shadow:0 0 0 3px var(--doc-tab-soft)
}
.doc-tab-item.is-combined .doc-tab__add{
    border-left-color:var(--doc-tab-active-border);
    color:var(--doc-tab-accent)
}

@media (max-width:1100px){
    .doc-tab__label-full{display:none}
    .doc-tab__label-short{display:inline}
}
@media (max-width:900px){
    .doc-hub-strip .doc-tabs.adm-tabs{gap:6px}
    .doc-tab-item{flex:1 1 calc(50% - 6px)}
}
@media (max-width:640px){
    .doc-tab-item{flex:1 1 calc(50% - 6px)}
    .doc-hub-strip .doc-tab-item .adm-tab,
    .doc-hub-strip .doc-tab{
        flex-direction:column;align-items:center;justify-content:center;
        gap:4px;padding:8px 6px 10px;text-align:center
    }
    .doc-tab__label{display:none}
    .doc-hub-strip .doc-tab__count{margin-left:0}
    .doc-tab__add{width:26px}
    .doc-hub-strip .doc-tab-item.is-active .doc-tab::after{left:8px;right:8px}
    /* Marker combined: sul mobile senza label, punto sull'icona */
    .doc-tab-item.is-combined .doc-tab__icon{position:relative}
    .doc-tab-item.is-combined .doc-tab__icon::after{
        content:'';
        position:absolute;top:-2px;right:-2px;
        width:7px;height:7px;border-radius:50%;
        background:var(--doc-tab-accent);
        border:1.5px solid #fff
    }
}
@media (max-width:420px){
    .doc-tab-item{flex:1 1 100%}
    .doc-hub-strip .doc-tab-item .adm-tab,
    .doc-hub-strip .doc-tab{
        flex-direction:row;justify-content:flex-start;text-align:left;
        padding:10px 10px 11px 12px
    }
    .doc-tab__label{display:inline;min-width:0}
    .doc-tab__label-full{display:none}
    .doc-tab__label-short{display:inline}
    .doc-hub-strip .doc-tab__count{margin-left:auto}
    .doc-tab-item.is-combined .doc-tab__icon::after{display:none}
}

/* === Controllo stato lavorazione (dettaglio ODL) === */
.adm-tempi-row{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.adm-tempi-row>.adm-card{margin:0;display:flex;flex-direction:column}
.adm-tempi-row__tempi{flex:3 1 480px;min-width:300px}
.adm-tempi-row__stato{flex:1 1 230px;min-width:210px}
.adm-tempi-row__tempi .adm-card__body{flex:1 1 auto;display:flex}
.adm-tempi-row__tempi .adm-bill2{flex:1 1 auto;align-content:stretch;min-height:150px}
.adm-tempi-row__tempi .adm-bill2__odl,
.adm-tempi-row__tempi .adm-bill2__edit{justify-content:center}
.adm-tempi-row__stato .adm-card__body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto}
.adm-tempi-row__stato .adm-state-control{flex:1 1 auto;align-items:stretch}
.adm-tempi-row__stato .adm-state-control__btns{flex:1 1 auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:stretch}
.adm-tempi-row__stato .adm-state-btn{justify-content:center;text-align:center}
.adm-state-reopen{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start;padding-top:12px;border-top:1px dashed #e2e8f0}
.adm-state-reopen__title{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-state-reopen .btn{align-self:flex-start}
.adm-state-reopen__hint{font-size:.7rem;line-height:1.4}
.adm-state-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.adm-state-control__label{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-state-control__btns{display:flex;flex-wrap:wrap;gap:6px}
.adm-state-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s ease}
.adm-state-btn:hover:not(:disabled){border-color:#cbd5e1;background:#f8fafc}
.adm-state-btn:disabled{opacity:.55;cursor:default}
.adm-state-btn.is-active{cursor:default}
.adm-state-btn--da_gestire.is-active{background:#f1f5f9;border-color:#cbd5e1;color:#334155}
.adm-state-btn--pending.is-active{background:#fef3c7;border-color:#fcd34d;color:#b45309}
.adm-state-btn--fatturato.is-active{background:#d1fae5;border-color:#6ee7b7;color:#059669}
.adm-state-btn--non_fatturato.is-active{background:#fee2e2;border-color:#fca5a5;color:#dc2626}
.adm-state-control__status{font-size:.74rem;font-weight:600}
.adm-state-control__status.is-pending{color:#94a3b8}
.adm-state-control__status.is-ok{color:#059669}
.adm-state-control__status.is-err{color:#dc2626}

/* === Allegati + materiali (amministrazione) === */
.adm-attmat{display:flex;flex-wrap:wrap;gap:18px}
.adm-attmat__col{flex:1 1 280px;min-width:240px;display:flex;flex-direction:column;gap:8px}
/* Materiali a sinistra e più larga, Allegati a destra e più stretta */
.adm-attmat__col--mat{order:1;flex:2 1 480px}
.adm-attmat__col--att{order:2;flex:1 1 240px;max-width:360px}
.adm-attmat__title{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}
.adm-materiale-form{flex-wrap:wrap}

/* === Admin accordion compatto (board ODL) — full bleed area contenuto === */
.tasks-table-card--admin-board{overflow:visible}
.tasks-table-card--admin-board .table-scroll.tasks-legacy-table{overflow-x:auto;overflow-y:auto}
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--open > .task-detail-cell{
  position:sticky;
  left:0;
  z-index:12;
  padding:0;
  background:transparent!important;
  border-top:0;
  border-left:0!important;
  box-shadow:none;
  overflow:visible;
}
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--draft-group > .task-detail-cell,
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--invoice-group > .task-detail-cell{
  background:transparent!important;
  border-left:0!important;
}
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--open > .task-detail-cell::before{display:none}
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--open .task-detail-shell{
  margin-left:var(--task-detail-bleed-margin,0);
  width:var(--task-detail-bleed-width,100%);
  max-width:var(--task-detail-bleed-width,100%);
  box-sizing:border-box;
  padding:10px var(--task-detail-bleed-pad-x,16px) 12px;
  background:#f8fafc;
  border-top:1px solid #dbeafe;
  box-shadow:inset 3px 0 0 #2563eb;
  overflow:hidden;
}
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--draft-group .task-detail-shell{
  background:#fffdf5;
  border-top-color:#fde68a;
  box-shadow:inset 4px 0 0 #fbbf24;
}
.tasks-grid[data-board-origin="admin"] tbody tr.task-details--invoice-group .task-detail-shell{
  background:#f0fdf4;
  border-top-color:#bbf7d0;
  box-shadow:inset 4px 0 0 #34d399;
}
.tasks-grid[data-board-origin="admin"] .task-detail-shell{gap:6px}
.tasks-grid[data-board-origin="admin"] .task-detail-layout,
.tasks-grid[data-board-origin="admin"] .task-detail-primary,
.tasks-grid[data-board-origin="admin"] .adm-detail{
  gap:6px;
  min-width:0;
  max-width:100%;
}
.tasks-grid[data-board-origin="admin"] .adm-detail{gap:6px}
.tasks-grid[data-board-origin="admin"] .adm-hero-bar{
  padding:6px 10px;
  background:#fff;
  border:1px solid #e8edf3;
  border-radius:8px;
  min-width:0;
  max-width:100%;
}
.tasks-grid[data-board-origin="admin"] .adm-card{border-radius:8px;box-shadow:none}
.tasks-grid[data-board-origin="admin"] .adm-card--compact .adm-card__head{padding:5px 10px}
.tasks-grid[data-board-origin="admin"] .adm-card--compact .adm-card__head h4{font-size:.68rem}
.tasks-grid[data-board-origin="admin"] .adm-card--compact .adm-card__icon{font-size:.85rem}
.tasks-grid[data-board-origin="admin"] .adm-card--compact .adm-card__body{padding:7px 10px}
.tasks-grid[data-board-origin="admin"] .adm-hero{padding-bottom:0;border-bottom:0;gap:8px;align-items:center}
.tasks-grid[data-board-origin="admin"] .adm-hero__title{font-size:.88rem;line-height:1.25}
.tasks-grid[data-board-origin="admin"] .adm-hero__client{font-size:.74rem;margin-top:1px}
.tasks-grid[data-board-origin="admin"] .adm-client-picker{max-width:220px}
.tasks-grid[data-board-origin="admin"] .adm-client-picker__input{padding:4px 22px 4px 8px;font-size:11px}
.tasks-grid[data-board-origin="admin"] .adm-badge{padding:2px 8px;font-size:.66rem}
.tasks-grid[data-board-origin="admin"] .adm-bill-state-pill{font-size:.7rem;padding:2px 8px}
.tasks-grid[data-board-origin="admin"] .adm-tempi-row{gap:6px;min-width:0}
.tasks-grid[data-board-origin="admin"] .adm-tempi-row__tempi{flex:4 1 360px;min-width:0}
.tasks-grid[data-board-origin="admin"] .adm-tempi-row__stato{flex:1 1 160px;min-width:0;max-width:100%}
.tasks-grid[data-board-origin="admin"] .adm-card{min-width:0;max-width:100%}
.tasks-grid[data-board-origin="admin"] .adm-tempi-row__tempi .adm-bill2{gap:8px;min-height:0!important;align-items:center}
.tasks-grid[data-board-origin="admin"] .adm-bill2--compact{
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
}
.tasks-grid[data-board-origin="admin"] .adm-bill2__stats{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 12px;
  flex:0 1 auto;
}
.tasks-grid[data-board-origin="admin"] .adm-bill2__stat{
  gap:6px;
  padding:4px 8px;
  border:1px solid #e7eaf2;
  border-radius:7px;
  background:#fff;
}
.tasks-grid[data-board-origin="admin"] .adm-bill2__stat-ico{width:22px;height:22px;font-size:.78rem;border-radius:6px}
.tasks-grid[data-board-origin="admin"] .adm-bill2__stat-value{font-size:.88rem}
.tasks-grid[data-board-origin="admin"] .adm-bill2__stat-label{font-size:.56rem}
.tasks-grid[data-board-origin="admin"] .adm-bill2__edit{
  flex:1 1 200px;
  min-width:0;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 6px;
  padding:5px 8px;
  border-radius:7px;
  margin-left:0;
}
.tasks-grid[data-board-origin="admin"] .adm-bill2__edit-head{
  flex:0 0 auto;
  gap:3px;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.1;
}
.tasks-grid[data-board-origin="admin"] .adm-bill2__edit-title{font-size:.68rem}
.tasks-grid[data-board-origin="admin"] .adm-bill2__edit-sub{font-size:.58rem}
.tasks-grid[data-board-origin="admin"] .adm-bill-edit{margin-top:0;gap:3px}
.tasks-grid[data-board-origin="admin"] .adm-bill-input{width:34px;padding:2px 2px;font-size:.82rem;border-radius:5px}
.tasks-grid[data-board-origin="admin"] .adm-bill-select{min-width:46px}
.tasks-grid[data-board-origin="admin"] .adm-bill-unit{font-size:.66rem}
.tasks-grid[data-board-origin="admin"] .adm-bill-reset{width:24px;height:24px;font-size:.82rem;border-radius:5px}
.tasks-grid[data-board-origin="admin"] .adm-bill2__rett{font-size:.72rem;gap:4px}
.tasks-grid[data-board-origin="admin"] .adm-state-btn{padding:4px 7px;font-size:.68rem;gap:3px}
.tasks-grid[data-board-origin="admin"] .adm-tempi-row__stato .adm-card__body{gap:6px}
.tasks-grid[data-board-origin="admin"] .adm-tempi-row__stato .adm-state-control__btns{gap:4px}
.tasks-grid[data-board-origin="admin"] .adm-state-reopen{padding-top:6px;gap:.25rem}
.tasks-grid[data-board-origin="admin"] .adm-state-reopen__hint{font-size:.65rem;line-height:1.35}
.tasks-grid[data-board-origin="admin"] .task-card-description .task-card-header{
  padding:5px 10px;
  min-height:0;
  background:#f8fafc;
  border-bottom:1px solid #eef2f7;
}
.tasks-grid[data-board-origin="admin"] .task-card-description .task-card-title{font-size:.78rem}
.tasks-grid[data-board-origin="admin"] .task-card-description .task-card-icon{font-size:.85rem}
.tasks-grid[data-board-origin="admin"] .adm-desc-body{
  background:#fff;
  padding:.45rem .65rem!important;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.tasks-grid[data-board-origin="admin"] [data-description-editor-container]{
  min-width:0;
  max-width:100%;
  overflow-x:auto;
}
.tasks-grid[data-board-origin="admin"] .tox-tinymce,
.tasks-grid[data-board-origin="admin"] .tox-editor-container{
  max-width:100%!important;
  box-sizing:border-box;
}
.tasks-grid[data-board-origin="admin"] .adm-desc-textarea{
  width:100%;
  min-height:72px;
  max-height:140px;
  border-radius:6px;
  border:1px solid #cbd5e1;
  padding:6px 8px;
  font-size:.8rem;
  font-family:inherit;
  resize:vertical;
  box-sizing:border-box;
}
.tasks-grid[data-board-origin="admin"] .adm-attmat{gap:8px}
.tasks-grid[data-board-origin="admin"] .adm-attmat__col{gap:3px;min-width:160px}
.tasks-grid[data-board-origin="admin"] .adm-attmat__col--mat{flex:2 1 360px}
.tasks-grid[data-board-origin="admin"] .adm-attmat__col--att{flex:1 1 200px;max-width:300px}
.tasks-grid[data-board-origin="admin"] .itickets-materials-add{padding:8px;gap:6px}
.tasks-grid[data-board-origin="admin"] .itickets-materials-add__grid{gap:6px}
@media (max-width:900px){
  .tasks-grid[data-board-origin="admin"] .adm-bill2__edit{margin-left:0;width:100%}
  .tasks-grid[data-board-origin="admin"] .adm-bill2__stats{width:100%}
}

/* Settings — Azienda owner */
.settings-owner-logos{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px}
.settings-owner-logo-card{border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#f8fafc;padding:10px;max-width:200px;display:flex;flex-direction:column;gap:8px}
.settings-owner-logo-card__img{display:flex;align-items:center;justify-content:center;min-height:64px;background:#fff;border-radius:8px;border:1px solid rgba(148,163,184,.2);padding:8px}
.settings-owner-logo-card__img img{max-width:100%;max-height:72px;object-fit:contain}
.settings-owner-logo-card__meta{display:flex;flex-direction:column;gap:6px;font-size:.85rem}
.settings-owner-logo-card__actions{margin:0}
.settings-owner-empty{margin:0 0 12px}
.settings-owner-upload{border-top:1px dashed rgba(148,163,184,.35);padding-top:14px;margin-top:4px}
.settings-owner-add-box{border:1px dashed rgba(148,163,184,.35);border-radius:12px;padding:16px;margin-top:12px;background:#f8fafc}
.settings-owner-add-box h4{margin:0 0 12px;font-size:.95rem}
.settings-owner-bank-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.settings-owner-bank-card{border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#fff;padding:14px 16px}
.settings-owner-bank-card.is-default{border-color:#86efac;background:#f0fdf4}
.settings-owner-bank-card__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.settings-owner-bank-card__code{margin-left:6px;font-size:.8rem;color:#64748b}
.settings-owner-bank-card__actions{display:flex;gap:6px;flex-wrap:wrap}
.settings-owner-bank-form{margin:0}
.settings-owner-default-badge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.settings-owner-bank-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;white-space:nowrap}
.settings-inline-form{display:inline;margin:0}
.settings-owner-mono{font-family:ui-monospace,Consolas,monospace;font-size:.85rem}
.settings-owner-mono-input{font-family:ui-monospace,Consolas,monospace}
.settings-owner-preview{margin-top:8px;padding:8px 10px;border-radius:8px;background:#eef2ff;font-size:.85rem;line-height:1.45}
.settings-owner-default-switch{margin-top:4px}
.settings-owner-danger{color:#b91c1c}
.settings-table-wrap{overflow-x:auto;margin-bottom:8px}

/* Invoice — loghi owner */
.inv-doc__header-logos{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin:0;padding:0;border:none;
}
.inv-doc__header-logo{
  display:block;max-height:46px;max-width:210px;width:auto;height:auto;
  object-fit:contain;object-position:left center;
}
.inv-doc__footer-logos{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--inv-border)}
.inv-doc__footer-logo{max-height:36px;max-width:140px;object-fit:contain}

/* Hub Documenti — barra filtri su una riga */
.doc-stats{
    margin:0;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;
    background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);box-shadow:0 1px 3px rgba(15,23,42,.04);
    box-sizing:border-box
}
.doc-stats--compact{
    padding:5px 8px;border-radius:10px;background:#fff;box-shadow:none
}
.doc-stats__bar{
    display:flex;flex-wrap:nowrap;align-items:center;gap:6px 8px;min-width:0;min-height:30px;
    overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch
}
.doc-stats__bar::-webkit-scrollbar{height:4px}
.doc-stats__bar-label{
    font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;
    flex:0 0 auto;line-height:1
}
.doc-stats__years--inline{
    display:inline-flex;flex:0 0 auto;flex-wrap:nowrap;gap:4px;min-width:0;
    max-width:min(220px,28vw);overflow-x:auto;scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;padding:1px 0
}
.doc-stats__years--inline::-webkit-scrollbar{height:3px}
.doc-stats__bar-tools{
    display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:auto
}
.doc-stats__extra{
    margin-top:6px;padding:6px 8px;border-radius:10px;border:1px dashed #e2e8f0;background:#fafbfc;
    display:flex;flex-wrap:nowrap;align-items:center;gap:8px 12px;min-width:0;
    overflow-x:auto;scrollbar-width:thin
}
.doc-stats__extra[hidden]{display:none!important}
.doc-stats__extra-row{
    display:flex;flex-wrap:nowrap;align-items:center;gap:6px 8px;min-width:0
}
.doc-stats__extra-title{
    font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;
    flex:0 0 auto
}
.doc-stats__period-detail{
    display:inline-flex;flex-wrap:nowrap;align-items:center;gap:4px 6px;min-width:0;flex:0 0 auto
}
.doc-stats__field--period-pick{width:70px;min-width:60px;padding:0 6px}
.doc-stats__extra-toggle{
    height:28px;padding:0 10px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:2px
}
.doc-stats__extra-toggle.has-active{border-color:#c7d2fe;color:#3730a3}
.doc-stats__extra-toggle.is-open{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}
.doc-stats__extra-badge{
    display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;
    padding:0 4px;border-radius:999px;background:#4f46e5;color:#fff;font-size:10px;font-weight:800;line-height:1
}
.doc-stats__extra-badge[hidden]{display:none!important}
.doc-stats__grid{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.2fr);
    gap:10px 14px;align-items:start;min-width:0
}
.doc-stats__block{
    display:flex;flex-direction:column;gap:8px;min-width:0;
    padding:8px 10px;border-radius:10px;border:1px solid #eef2f6;background:#fff
}
.doc-stats__block--period{grid-column:1/-1;padding:10px 12px}
.doc-stats__block-head{
    display:flex;align-items:center;justify-content:space-between;gap:10px
}
.doc-stats__block-body{min-width:0}
.doc-stats__period-line{
    display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px
}
.doc-stats__period-detail[hidden]{display:none!important}
.doc-stats__filters-line,.doc-stats__compare-line{
    display:flex;flex-wrap:nowrap;align-items:center;gap:8px;min-width:0
}
.doc-stats__brand{
    font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;
    line-height:1.2
}
.doc-stats__period-tools{
    display:inline-flex;align-items:center;gap:6px;flex:0 0 auto
}
.doc-stats__compare-block,.doc-stats__block--compare{
    border-style:dashed;background:#fafbfc
}
.doc-stats.is-compare-on .doc-stats__block--compare{
    border-color:#c7d2fe;background:#f5f7ff;border-style:solid
}
.doc-stats__compare-switch{
    display:inline-flex;align-items:center;gap:5px;margin:0;padding:0 8px;height:28px;
    border-radius:999px;border:1px solid #e2e8f0;background:#fff;
    font-size:11px;font-weight:700;color:#475569;
    cursor:pointer;user-select:none;white-space:nowrap;flex:0 0 auto
}
.doc-stats__compare-switch:has(input:checked){
    border-color:#c7d2fe;background:#eef2ff;color:#3730a3
}
.doc-stats__compare-switch input{accent-color:#4f46e5;width:14px;height:14px;margin:0}
.doc-stats__compare-panel{
    display:inline-flex;flex-wrap:nowrap;align-items:center;gap:8px;flex:0 1 auto;min-width:0
}
.doc-stats__compare-panel[hidden]{display:none!important}
.doc-stats__compare-custom{
    display:inline-flex;flex-wrap:nowrap;align-items:center;gap:8px;flex:0 1 auto;min-width:0
}
.doc-stats__compare-custom[hidden]{display:none!important}
.doc-stats__field--compare-mode{min-width:150px;width:180px;flex:0 0 auto}
.doc-stats__field--compare-year{min-width:72px;width:80px;flex:0 0 auto}
.doc-stats__field--client{flex:0 0 auto;width:168px;min-width:140px;max-width:220px}
.doc-stats__client-picker{
    position:relative;flex:0 0 auto;width:168px;min-width:140px;max-width:220px
}
.doc-stats__client-picker .doc-stats__field--client{
    width:100%;max-width:none;padding-right:26px;box-sizing:border-box
}
.doc-stats__client-picker.is-picked .doc-stats__field--client{
    border-color:#93c5fd;background:#eff6ff;color:#1e40af;font-weight:600
}
.doc-stats__client-clear{
    position:absolute;top:50%;right:4px;transform:translateY(-50%);
    border:none;background:transparent;color:#64748b;font-size:15px;line-height:1;
    cursor:pointer;padding:0 4px;z-index:2
}
.doc-stats__client-clear:hover{color:#dc2626}
.doc-stats__client-results{
    position:absolute;top:calc(100% + 4px);left:0;min-width:100%;width:max(100%,260px);
    z-index:80;background:#fff;border:1px solid #e2e8f0;border-radius:10px;
    box-shadow:0 12px 28px rgba(15,23,42,.14);max-height:260px;overflow:auto
}
.doc-stats__client-results.is-floating{
    position:fixed;right:auto;z-index:5000
}
.doc-stats__client-results[hidden]{display:none!important}
.doc-stats__client-result{
    display:block;width:100%;text-align:left;padding:8px 12px;border:none;border-bottom:1px solid #f1f5f9;
    background:#fff;cursor:pointer;font:inherit
}
.doc-stats__client-result:last-child{border-bottom:none}
.doc-stats__client-result:hover{background:#eff6ff}
.doc-stats__client-result strong{display:block;font-size:12px;font-weight:600;color:#0f172a}
.doc-stats__client-result small{display:block;font-size:11px;color:#64748b;margin-top:2px}
.doc-stats__client-result.is-empty{color:#94a3b8;cursor:default;text-align:center;font-size:12px}
.doc-stats__client-result.is-empty:hover{background:#fff}
.doc-stats__field--nation{flex:0 0 auto;width:118px;min-width:100px;max-width:140px}
.doc-stats__field--product{flex:0 0 auto;width:108px;min-width:90px;max-width:140px}
.doc-stats__table th.is-compare-col{color:#6d28d9;background:#faf5ff}
.doc-stats__bar-row.is-compare .doc-stats__bar-label{color:#6d28d9;font-weight:800}
.doc-stats__bar-fill--compare{background:linear-gradient(90deg,#c4b5fd,#7c3aed)!important}
.doc-stats__kpi--compare{border-color:#ddd6fe;background:#faf5ff}
.doc-stats__kpi--delta.is-up .doc-stats__kpi-value{color:#059669}
.doc-stats__kpi--delta.is-down .doc-stats__kpi-value{color:#dc2626}
.doc-stats__more{
    position:relative;flex:0 0 auto;border:none;margin:0;padding:0
}
.doc-stats__more-summary{
    list-style:none;display:inline-flex;align-items:center;gap:4px;
    height:28px;padding:0 10px;border-radius:999px;border:1px solid #e2e8f0;
    background:#fff;color:#475569;font-size:11px;font-weight:700;cursor:pointer;
    white-space:nowrap;user-select:none
}
.doc-stats__more.is-advanced-active .doc-stats__more-summary{
    border-color:#c7d2fe;background:#eef2ff;color:#3730a3
}
.doc-stats__more-summary::-webkit-details-marker{display:none}
.doc-stats__more-summary::after{
    content:'▾';font-size:10px;color:#94a3b8;margin-left:2px;transition:transform .15s ease
}
.doc-stats__more[open] .doc-stats__more-summary{
    border-color:#cbd5e1;background:#f8fafc;color:#334155
}
.doc-stats__more[open] .doc-stats__more-summary::after{transform:rotate(180deg)}
.doc-stats__more-body{
    position:absolute;top:calc(100% + 6px);left:0;z-index:30;
    padding:8px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;
    box-shadow:0 10px 28px rgba(15,23,42,.12)
}
.doc-stats__seg--period{background:#eef2ff;border-color:#c7d2fe}
.doc-stats__seg--period .doc-stats__seg-item span{padding:4px 7px}
.doc-stats__years{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.doc-stats__seg{
    display:inline-flex;flex-wrap:nowrap;align-items:center;gap:0;padding:2px;border-radius:999px;
    background:#eef2ff;border:1px solid #c7d2fe;flex:0 0 auto
}
.doc-stats__seg-item{
    display:inline-flex;align-items:center;margin:0;cursor:pointer;user-select:none
}
.doc-stats__seg-item input{
    position:absolute;opacity:0;width:0;height:0;pointer-events:none
}
.doc-stats__seg-item span{
    display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;
    font-size:11px;font-weight:700;color:#64748b;line-height:1.2;white-space:nowrap
}
.doc-stats__seg-item input:checked + span{
    background:#fff;color:#3730a3;box-shadow:0 1px 2px rgba(15,23,42,.08)
}
.doc-stats__slot{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}
.doc-stats__slot[hidden],
.doc-stats [hidden]{display:none!important}
.doc-stats > .doc-stats__body{display:none!important}
.doc-stats.is-details-open > .doc-stats__body{display:block!important}
.doc-stats__slot--range{gap:4px}
.doc-stats__dash{color:#94a3b8;font-weight:700}
.doc-stats__field{
    height:28px;min-width:0;padding:0 8px;border:1px solid #dbe3ee;border-radius:8px;
    background:#fff;color:#0f172a;font:inherit;font-size:12px;font-weight:600;flex:0 0 auto
}
.doc-stats__field:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.18)}
.doc-stats__field--date{width:118px;padding:0 6px}
.doc-stats__years:empty{display:none}
.doc-stats__years-empty{font-size:11px;color:#94a3b8;font-weight:600}
.doc-stats__year-chip{
    display:inline-flex;align-items:center;gap:5px;margin:0;padding:3px 8px;border-radius:999px;
    background:#f1f5f9;border:1px solid #e2e8f0;font-size:11px;font-weight:700;color:#334155;cursor:pointer;
    white-space:nowrap;flex:0 0 auto
}
.doc-stats__year-chip input{margin:0;accent-color:#4f46e5}
.doc-stats__year-chip:has(input:checked){background:#eef2ff;border-color:#c7d2fe;color:#3730a3}
.doc-stats__divider{width:1px;height:22px;background:#e2e8f0;flex:0 0 auto}
.doc-stats__btn{
    height:30px;padding:0 11px;border-radius:8px;border:1px solid #dbe3ee;background:#fff;
    color:#334155;font:inherit;font-size:12px;font-weight:700;cursor:pointer;flex:0 0 auto;white-space:nowrap
}
.doc-stats__btn--icon{width:30px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.doc-stats__btn:hover{background:#f8fafc;border-color:#cbd5e1}
.doc-stats__btn--primary{background:#4f46e5;border-color:#4f46e5;color:#fff}
.doc-stats__btn--primary:hover{background:#4338ca;border-color:#4338ca}
.doc-stats__btn:disabled{opacity:.55;cursor:not-allowed}
.doc-stats__toggle{
    width:30px;height:30px;padding:0;border-radius:8px;border:1px solid #dbe3ee;background:#fff;
    color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
    flex:0 0 auto
}
.doc-stats__toggle:hover{background:#f8fafc}
.doc-stats__toggle-icon{
    width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;
    border-top:6px solid currentColor;transition:transform .15s ease
}
.doc-stats__toggle.is-open .doc-stats__toggle-icon,
.doc-stats.is-details-open .doc-stats__toggle-icon{transform:rotate(180deg)}
.doc-stats__status{margin:6px 0 0;font-size:12px;font-weight:600;color:#64748b;min-height:0}
.doc-stats__status:empty{display:none;margin:0}
.doc-stats__status.is-err{color:#dc2626}
.doc-stats__body{margin-top:12px;padding-top:12px;border-top:1px solid #eef2f7}
.doc-stats__kpis{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.doc-stats__kpi{
    flex:1 1 120px;min-width:110px;padding:10px 12px;border-radius:10px;background:#fff;
    border:1px solid #e8edf3
}
.doc-stats__kpi-value{display:block;font-size:18px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;line-height:1.1}
.doc-stats__kpi-label{display:block;margin-top:4px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.doc-stats__viz{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start}
.doc-stats__table-wrap{overflow:auto;border:1px solid #e8edf3;border-radius:10px;background:#fff}
.doc-stats__table{width:100%;border-collapse:collapse;font-size:12px}
.doc-stats__table th,.doc-stats__table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;text-align:left}
.doc-stats__table th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;background:#f8fafc}
.doc-stats__chart{min-height:120px}
.doc-stats__bars{display:flex;flex-direction:column;gap:8px}
.doc-stats__bar-row{display:grid;grid-template-columns:48px 1fr auto;gap:8px;align-items:center}
.doc-stats__bar-label{font-size:12px;font-weight:700;color:#334155}
.doc-stats__bar-track{height:8px;border-radius:999px;background:#eef2ff;overflow:hidden}
.doc-stats__bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#818cf8,#4f46e5)}
.doc-stats__bar-value{font-size:11px;font-weight:700;color:#64748b;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:960px){
    .doc-stats__bar{gap:6px}
    .doc-stats__bar-tools{margin-left:auto}
    .doc-stats__years--inline{max-width:140px}
    .doc-stats__field--client,
    .doc-stats__client-picker{width:140px;min-width:120px;max-width:180px}
    .doc-stats__field--nation{width:110px}
    .doc-stats__field--product{width:100px}
    .doc-stats__grid{grid-template-columns:1fr 1fr;gap:10px}
    .doc-stats__block--period{grid-column:1/-1}
    .doc-stats__block--filters{grid-column:1/-1}
    .doc-stats__viz{grid-template-columns:1fr}
    .billing-table-toolbar__actions-row{flex-direction:column;align-items:stretch}
    .billing-table-toolbar__actions-row .billing-table-toolbar__tools{margin-left:0;justify-content:space-between;width:100%}
}
@media (max-width:640px){
    .doc-stats__grid{grid-template-columns:1fr}
}

.billing-lineage-compact--editor .billing-lineage-compact__inline{flex-wrap:wrap;gap:6px}

/* Editor documento — barra flusso */
.inv-ui__card--flow{
    margin-bottom:12px;
    border:1px solid #e0e7ff;
    background:linear-gradient(180deg,#fafbff 0%,#fff 100%);
    box-shadow:0 1px 2px rgba(99,102,241,.06);
}
.inv-ui__flow-head{
    display:flex;align-items:center;gap:8px;padding:10px 14px 0;
}
.inv-ui__flow-title{
    margin:0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#6366f1;
}
.inv-ui__flow-body{
    padding:8px 14px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.inv-ui__card--flow .billing-lineage-compact{display:block;max-width:none}
.inv-ui__card--flow .billing-lineage__node{font-size:12px;padding:4px 8px 4px 4px}
.inv-ui__card--flow .billing-lineage__badge{min-width:32px;height:18px;font-size:9px}

/* Hub Documenti — tracciabilità ciclo (colonna Collegamenti) */
.billing-lineage-compact{
    position:relative;display:inline-flex;align-items:center;max-width:100%;
    vertical-align:middle
}
.billing-lineage-compact__inline{
    display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:100%
}
.billing-lineage-compact__sep{
    color:#94a3b8;font-size:11px;font-weight:700;line-height:1;padding:0 1px
}
.billing-lineage-compact__chip{
    display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;
    font-size:10px;font-weight:800;letter-spacing:.02em;white-space:nowrap;
    border:1px solid transparent
}
.billing-lineage-compact__chip--odl{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.billing-lineage-compact__chip--pf{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}
.billing-lineage-compact__chip--ddt{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.billing-lineage-empty{color:#94a3b8;font-weight:600}
.billing-lineage__node{
    display:inline-flex;align-items:center;gap:4px;padding:2px 7px 2px 3px;border-radius:999px;
    text-decoration:none;border:1px solid #e2e8f0;background:#fff;color:#0f172a;
    font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;max-width:100%
}
.billing-lineage__node:hover{border-color:#93c5fd;background:#f8fbff;color:#1d4ed8}
.billing-lineage__node--compact{padding:2px 6px 2px 2px}
.billing-lineage__node--current{
    border-color:#6366f1;background:#eef2ff;color:#312e81;box-shadow:0 0 0 1px rgba(99,102,241,.18)
}
.billing-lineage__node--current:hover{border-color:#6366f1;background:#eef2ff;color:#312e81}
.billing-lineage__badge{
    display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:16px;
    padding:0 4px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.04em;
    text-transform:uppercase;background:#f1f5f9;color:#64748b
}
.billing-lineage__text{font-variant-numeric:tabular-nums}
.billing-lineage__node--prev .billing-lineage__badge{background:#faf5ff;color:#7e22ce}
.billing-lineage__node--ord .billing-lineage__badge{background:#eff6ff;color:#1d4ed8}
.billing-lineage__node--cons .billing-lineage__badge{background:#ecfdf5;color:#047857}
.billing-lineage__node--ddt .billing-lineage__badge{background:#fff7ed;color:#c2410c}
.billing-lineage__node--pf .billing-lineage__badge{background:#eef2ff;color:#3730a3}
.billing-lineage__node--fatt .billing-lineage__badge{background:#fef3c7;color:#b45309}
.billing-lineage__node--odl .billing-lineage__badge{background:#f1f5f9;color:#475569}
.billing-lineage__node--prev{border-color:#e9d5ff}
.billing-lineage__node--ord{border-color:#bfdbfe}
.billing-lineage__node--cons{border-color:#a7f3d0}
.billing-lineage__node--ddt{border-color:#fed7aa}
.billing-lineage__node--pf{border-color:#c7d2fe}
.billing-lineage__node--fatt{border-color:#fde68a}
.billing-grid__col-merge_sources{min-width:160px;max-width:280px;width:220px}
.billing-lineage-compact__popover{
    display:none;position:absolute;z-index:40;left:0;top:calc(100% + 6px);min-width:240px;max-width:360px;
    padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;
    box-shadow:0 12px 28px rgba(15,23,42,.12)
}
.billing-lineage-compact:hover .billing-lineage-compact__popover,
.billing-lineage-compact:focus-within .billing-lineage-compact__popover{display:block}
.billing-lineage-compact__popover-title{
    font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#94a3b8;margin-bottom:8px
}
.billing-lineage__chain{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.billing-lineage__chain:last-child{margin-bottom:0}
.billing-lineage__odls{display:inline-flex;gap:4px;flex-wrap:wrap}
.billing-lineage__arrow{color:#94a3b8;font-size:12px}
.billing-lineage__arrow span::before{content:'→'}

/* Righe Rif ODL / gruppo — evidenziazione viola */
.inv-ui__line-row--group-header td{
    background:#f5f3ff;
    border-top:1px solid #ddd6fe;
    border-bottom:1px solid #ddd6fe
}
/* Header viola «Rif Preventivo / Rif Ordine»: nascosti — resta la riga descrittiva con badge. */
.inv-ui__line-row--group-header[data-line-source-kind="preventivo"],
.inv-ui__line-row--group-header[data-group-key^="preventivo:"],
.inv-ui__line-row--group-header[data-line-source-kind="ordine"],
.inv-ui__line-row--group-header[data-group-key^="ordine:"]{
    display:none!important
}
.inv-ui__line-row--group-header + .inv-ui__line-row td{border-top-color:#ede9fe}
.inv-ui__td-group-rif{padding:8px 10px!important}
.inv-ui__group-rif{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0
}
.inv-ui__group-rif__source{flex-shrink:0}
.inv-ui__group-rif__label,
.inv-ui__desc-input--group-header{
    flex:1;min-width:0;
    background:transparent!important;
    border:none!important;
    box-shadow:none!important;
    color:#6d28d9!important;
    font-weight:800;
    font-size:13px;
    line-height:1.45;
    padding:6px 2px!important;
    resize:none
}
.inv-ui__desc-wrap--group-header{flex:1;min-width:0}
.inv-ui__line-row--group-header .inv-line-source-doc,
.inv-ui__line-row--group-header .billing-odl-ref{
    border-color:#c4b5fd;
    background:#ede9fe;
    color:#5b21b6
}

/* Righe solo descrittive — descrizione nella colonna DESCRIZIONE */
.inv-ui__line-row--description-only td.inv-ui__td-desc--description-only,
.inv-ui__add-line-row--description-only td.inv-ui__td-desc--description-only{
    padding-top:8px;
    padding-bottom:8px
}
.inv-ui__line-row--description-only .inv-ui__td-rif .inv-ui__desc-ref-badge,
.inv-ui__line-row--description-only .inv-ui__td-rif .inv-line-source-doc{
    display:inline-flex;
    max-width:100%;
    white-space:nowrap
}
.inv-ui__line-row--description-only .inv-ui__td-rif .inv-line-source-doc.is-ordine{
    border-color:#a5f3fc;
    background:#ecfeff;
    color:#0e7490
}
.inv-ui__line-row--description-only .inv-ui__td-commercial,
.inv-ui__add-line-row--description-only .inv-ui__td-commercial{
    padding-top:8px;
    padding-bottom:8px
}
.inv-ui__line-row--description-only .inv-ui__td-commercial .billing-input,
.inv-ui__line-row--description-only .inv-ui__td-commercial select,
.inv-ui__add-line-row--description-only .inv-ui__td-commercial .billing-input,
.inv-ui__add-line-row--description-only .inv-ui__td-commercial select{
    visibility:hidden;
    pointer-events:none;
    height:0;
    min-height:0;
    padding:0;
    margin:0;
    border:none
}
.inv-ui__line-row--description-only .inv-ui__td-commercial .inv-ui__money-field__sym,
.inv-ui__line-row--description-only .inv-ui__td-commercial [data-currency-prefix],
.inv-ui__line-row--description-only .inv-ui__td-commercial [data-currency-label],
.inv-ui__add-line-row--description-only .inv-ui__td-commercial .inv-ui__money-field__sym,
.inv-ui__add-line-row--description-only .inv-ui__td-commercial [data-currency-prefix],
.inv-ui__add-line-row--description-only .inv-ui__td-commercial [data-currency-label]{
    visibility:hidden;
    pointer-events:none
}
.inv-ui__line-row--description-only .inv-ui__desc-input,
.inv-ui__add-line-row--description-only .inv-ui__desc-input{
    min-height:38px
}
.inv-ui__line-row--description-only .inv-line-actions,
.inv-ui__add-line-row--description-only .inv-ui__td-action{
    white-space:nowrap
}
