/* Stili delle pagine custom (pianificazione, consuntivo, report).
   Usa le variabili colore di Filament: funzionano in tema chiaro e scuro. */

.pg-muted { color: var(--gray-500); font-size: .8125rem; }
.pg-link { color: var(--primary-600); text-decoration: underline; }
.dark .pg-link { color: var(--primary-400); }
.pg-pre { white-space: pre-line; }
.pg-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pg-hint { color: var(--gray-500); font-size: .8125rem; margin-top: -.5rem; }
.pg-hint kbd { font: inherit; font-size: .75rem; padding: 0 .3rem; border: 1px solid var(--gray-300); border-radius: .25rem; }
.pg-empty { padding: 2rem; text-align: center; color: var(--gray-500); }

.pg-pill { display: inline-block; padding: 0 .4rem; border-radius: 999px; font-size: .7rem; font-weight: 600; line-height: 1.25rem;
    background: var(--gray-100); color: var(--gray-700); }
.pg-pill--success { background: color-mix(in oklab, var(--success-500) 18%, transparent); color: var(--success-700); }
.pg-pill--warning { background: color-mix(in oklab, var(--warning-500) 22%, transparent); color: var(--warning-700); }
.pg-pill--danger { background: color-mix(in oklab, var(--danger-500) 18%, transparent); color: var(--danger-700); }
.pg-pill--gray { background: var(--gray-100); color: var(--gray-600); }
.dark .pg-pill { background: var(--gray-800); color: var(--gray-300); }
.dark .pg-pill--success { color: var(--success-400); background: color-mix(in oklab, var(--success-500) 20%, transparent); }
.dark .pg-pill--warning { color: var(--warning-400); background: color-mix(in oklab, var(--warning-500) 20%, transparent); }
.dark .pg-pill--danger { color: var(--danger-400); background: color-mix(in oklab, var(--danger-500) 20%, transparent); }

.pg-input { border: 1px solid var(--gray-300); border-radius: .5rem; padding: .375rem .625rem; font-size: .875rem;
    background: white; color: var(--gray-950); min-width: 0; }
.dark .pg-input { background: var(--gray-900); border-color: var(--gray-700); color: white; color-scheme: dark; }
.pg-check { display: inline-flex; gap: .4rem; align-items: center; font-size: .875rem; }

.pg-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; align-items: center; }
.pg-toolbar__group { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pg-toolbar__title { font-weight: 600; font-size: 1rem; margin-left: .25rem; }

/* ---- Pianificazione ---- */
.pg-layout { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: 1rem; align-items: start; }
@media (max-width: 1100px) { .pg-layout { grid-template-columns: 1fr; } }

.pg-grid-wrap { overflow-x: auto; border: 1px solid var(--gray-200); border-radius: .75rem; background: white; }
.dark .pg-grid-wrap { border-color: var(--gray-800); background: var(--gray-900); }
.pg-grid { display: grid; grid-template-columns: 9rem repeat(var(--pg-days), minmax(0, 1fr)); min-width: calc(9rem + var(--pg-days) * 7.5rem); }
.pg-grid > * { min-width: 0; }
.pg-grid > * { border-right: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); }
.dark .pg-grid > * { border-color: var(--gray-800); }
.pg-grid__corner, .pg-grid__day { position: sticky; top: 0; z-index: 2; background: var(--gray-50); }
.dark .pg-grid__corner, .dark .pg-grid__day { background: var(--gray-950); }
.pg-grid__day { padding: .5rem .625rem; font-size: .8125rem; display: flex; gap: .4rem; align-items: baseline; }
.pg-grid__dayname { font-weight: 600; text-transform: capitalize; }
.pg-grid__day.is-today { color: var(--primary-600); }
.pg-grid__day.is-weekend { color: var(--gray-400); }
.pg-grid__person { padding: .625rem; display: flex; gap: .5rem; align-items: flex-start; position: sticky; left: 0; z-index: 1; background: white; }
.dark .pg-grid__person { background: var(--gray-900); }
.pg-grid__personinfo { display: flex; flex-direction: column; gap: .15rem; font-size: .875rem; min-width: 0; }
.pg-avatar { flex: none; width: 2rem; height: 2rem; border-radius: 999px; display: grid; place-items: center; font-size: .75rem; font-weight: 600;
    background: var(--primary-100); color: var(--primary-700); overflow: hidden; }
.pg-avatar img { width: 100%; height: 100%; object-fit: cover; }
.pg-avatar--lg { width: 3rem; height: 3rem; font-size: 1rem; }
.pg-person { display: flex; align-items: center; gap: .75rem; }
.pg-person__info { display: flex; flex-direction: column; line-height: 1.3; }

.pg-cell { padding: .375rem; min-height: 6rem; display: flex; flex-direction: column; gap: .3rem; transition: background-color .1s; }
.pg-cell.is-today { background: color-mix(in oklab, var(--primary-500) 5%, transparent); }
.pg-cell.is-off { background: repeating-linear-gradient(-45deg, transparent 0 6px, color-mix(in oklab, var(--gray-400) 10%, transparent) 6px 12px); }
.pg-cell.is-over { background: color-mix(in oklab, var(--primary-500) 14%, transparent); outline: 2px dashed var(--primary-500); outline-offset: -3px; }
.pg-cell__footer { margin-top: auto; display: flex; justify-content: space-between; align-items: center; font-size: .75rem; color: var(--gray-500); }
.pg-cell__load.is-over { color: var(--danger-600); font-weight: 600; }
.pg-cell__add { width: 1.5rem; height: 1.5rem; border-radius: .375rem; color: var(--gray-400); font-size: 1rem; line-height: 1; opacity: 0; }
.pg-cell:hover .pg-cell__add, .pg-cell__add:focus-visible { opacity: 1; }
.pg-cell__add:hover { background: var(--gray-100); color: var(--primary-600); }
.dark .pg-cell__add:hover { background: var(--gray-800); }

.pg-chip, .pg-task { border: 1px solid var(--gray-200); border-left: 3px solid var(--primary-400); border-radius: .5rem;
    padding: .3rem .45rem; background: white; cursor: grab; font-size: .75rem; line-height: 1.25; user-select: none; }
.dark .pg-chip, .dark .pg-task { background: var(--gray-800); border-color: var(--gray-700); border-left-color: var(--primary-400); }
.pg-chip:hover, .pg-task:hover { box-shadow: 0 1px 4px rgb(0 0 0 / .12); }
.pg-chip:active, .pg-task:active { cursor: grabbing; }
.pg-chip--ok { border-left-color: var(--success-500) !important; }
.pg-chip--ko { border-left-color: var(--danger-500) !important; }
.pg-chip--block { border-left-color: var(--warning-500) !important; }
.pg-chip.is-done { opacity: .6; }
.pg-chip.is-done .pg-chip__title { text-decoration: line-through; }
.pg-chip__client { font-weight: 600; color: var(--gray-700); display: flex; justify-content: space-between; gap: .25rem; }
.dark .pg-chip__client { color: var(--gray-200); }
.pg-chip__title { color: var(--gray-600); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dark .pg-chip__title { color: var(--gray-400); }
.pg-chip__meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .15rem; color: var(--gray-500); }
.pg-chip__actual { color: var(--success-600); }
.pg-chip__status { font-weight: 600; }
.pg-chip__remove { margin-left: auto; color: var(--gray-400); padding: 0 .2rem; font-size: .9rem; line-height: 1; opacity: 0; }
.pg-chip:hover .pg-chip__remove { opacity: 1; }
.pg-chip__remove:hover { color: var(--danger-600); }

.pg-backlog { position: sticky; top: 4.5rem; display: flex; flex-direction: column; gap: .5rem; padding: .75rem;
    border: 1px solid var(--gray-200); border-radius: .75rem; background: white; max-height: calc(100vh - 6rem); }
.dark .pg-backlog { background: var(--gray-900); border-color: var(--gray-800); }
.pg-backlog__head { display: flex; justify-content: space-between; align-items: baseline; }
.pg-backlog__list { overflow-y: auto; display: flex; flex-direction: column; gap: .4rem; padding-right: .125rem; }
.pg-task--critica { border-left-color: var(--danger-500) !important; }
.pg-task--alta { border-left-color: var(--warning-500) !important; }
.pg-task--bassa { border-left-color: var(--gray-300) !important; }

/* ---- Tabelle e riepiloghi ---- */
.pg-stats { display: grid; gap: .5rem; }
.pg-stats > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.pg-stats dt { color: var(--gray-500); }
.pg-stats dd { font-weight: 600; font-variant-numeric: tabular-nums; }

.pg-card { border: 1px solid var(--gray-200); border-radius: .75rem; background: white; padding: 1rem; }
.dark .pg-card { background: var(--gray-900); border-color: var(--gray-800); }
.pg-card__title { font-weight: 600; margin-bottom: .75rem; display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; flex-wrap: wrap; }

.pg-table-wrap { overflow-x: auto; }
.pg-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.pg-table th { text-align: left; font-weight: 600; color: var(--gray-500); font-size: .75rem; text-transform: uppercase; letter-spacing: .02em;
    padding: .5rem .625rem; border-bottom: 1px solid var(--gray-200); white-space: nowrap; }
.pg-table td { padding: .5rem .625rem; border-bottom: 1px solid var(--gray-100); vertical-align: top; }
.dark .pg-table th { border-color: var(--gray-700); }
.dark .pg-table td { border-color: var(--gray-800); }
.pg-table tfoot td { font-weight: 600; border-top: 1px solid var(--gray-300); border-bottom: 0; }
.pg-table tr.is-muted td { color: var(--gray-400); }
.pg-table input.pg-input, .pg-table select.pg-input { width: 100%; }
.pg-table .pg-col-hours { width: 6.5rem; }
.pg-table .pg-col-status { width: 7.5rem; }

.pg-bar { height: .5rem; border-radius: 999px; background: var(--gray-100); overflow: hidden; min-width: 6rem; }
.dark .pg-bar { background: var(--gray-800); }
.pg-bar > span { display: block; height: 100%; background: var(--success-500); }
.pg-bar.is-warning > span { background: var(--warning-500); }
.pg-bar.is-danger > span { background: var(--danger-500); }

.pg-filters { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; }
.pg-filters label { display: flex; flex-direction: column; gap: .25rem; font-size: .75rem; color: var(--gray-500); }
.pg-two { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); }

/* ---- Persone e team nella pianificazione ---- */
.pg-people { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pg-people__panel { padding: .5rem .75rem; max-height: 26rem; overflow-y: auto; display: flex; flex-direction: column; gap: .5rem; }
.pg-people__actions { display: flex; gap: 1rem; padding-bottom: .25rem; border-bottom: 1px solid var(--gray-200); }
.dark .pg-people__actions { border-color: var(--gray-700); }
.pg-people__team { display: flex; flex-direction: column; gap: .2rem; }
.pg-people__member { padding-left: 1.4rem; }

.pg-teamchip { --pg-team: #6b7280; }
.pg-teamchip--blue { --pg-team: #2563eb; }
.pg-teamchip--pink { --pg-team: #db2777; }
.pg-teamchip--amber { --pg-team: #d97706; }
.pg-teamchip--green { --pg-team: #16a34a; }
.pg-teamchip--violet { --pg-team: #7c3aed; }
.pg-teamchip--teal { --pg-team: #0d9488; }
.pg-teamchip--red { --pg-team: #dc2626; }
.pg-teamchip--gray { --pg-team: #6b7280; }

button.pg-teamchip { display: inline-flex; gap: .35rem; align-items: center; padding: .2rem .65rem; border-radius: 999px; font-size: .8125rem;
    border: 1px solid color-mix(in oklab, var(--pg-team) 45%, transparent); color: var(--pg-team);
    background: color-mix(in oklab, var(--pg-team) 8%, transparent); }
button.pg-teamchip span { font-size: .7rem; opacity: .75; }
button.pg-teamchip.is-active { background: var(--pg-team); color: white; }
button.pg-teamchip.is-partial { border-style: dashed; }
button.pg-teamchip.is-off { opacity: .45; }

.pg-grid__team { grid-column: 1 / -1; display: flex; flex-direction: row; align-items: baseline; gap: .6rem; text-align: left;
    padding: .45rem .625rem; position: sticky; left: 0; z-index: 1; font-size: .8125rem;
    background: color-mix(in oklab, var(--pg-team) 9%, white); border-left: 3px solid var(--pg-team) !important; }
.dark .pg-grid__team { background: color-mix(in oklab, var(--pg-team) 18%, var(--gray-900)); }
.pg-grid__teamname { font-weight: 700; color: var(--pg-team); }
.pg-grid__teamcaret { color: var(--gray-400); width: .75rem; }
.pg-table tr.pg-teamrow td { background: color-mix(in oklab, var(--pg-team) 8%, transparent); border-top: 2px solid var(--pg-team); }
.pg-table tr.pg-teamrow td:first-child strong { color: var(--pg-team); }

/* ---- Masterplan (come il foglio Excel) ---- */
.pg-mp { border-collapse: separate; border-spacing: 0; font-size: .8125rem; min-width: 100%; }
.pg-mp th, .pg-mp td { border-right: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); padding: .3rem .45rem; white-space: nowrap; }
.dark .pg-mp th, .dark .pg-mp td { border-color: var(--gray-800); }
.pg-mp thead th { position: sticky; z-index: 2; font-weight: 600; text-align: center; }
.pg-mp thead tr:nth-child(1) th { top: 0; }
.pg-mp thead tr:nth-child(2) th { top: 1.85rem; }
.pg-mp thead tr:nth-child(3) th { top: 3.7rem; }
.pg-mp__week { text-align: left !important; background: white; font-size: .9rem; }
.dark .pg-mp__week, .dark .pg-mp__hint { background: var(--gray-900); }
.pg-mp__hint { text-align: left !important; font-weight: 400 !important; color: var(--gray-500); background: white; }
.pg-mp__person { background: #6d9eeb; color: white; }
.pg-mp__person a { color: inherit; }
.pg-mp__totprev { background: #ffe599 !important; color: #3d3200; }
.pg-mp__toteff { background: #93c47d !important; color: #173208; }
.pg-mp__cols th { background: #ff9900; color: white; }
.pg-mp__cols th.pg-mp__sum { background: #c9daf8; color: var(--gray-900); }
.pg-mp__cols th.pg-mp__sum.is-over { background: color-mix(in oklab, var(--danger-500) 35%, white); }
.pg-mp tbody tr:hover td { background: color-mix(in oklab, var(--primary-500) 5%, transparent); }
.pg-mp tbody tr.is-closed td { color: var(--gray-400); }
.pg-mp tbody tr.is-outside td.pg-mp__project { font-style: italic; }
.pg-mp__client, .pg-mp__project { max-width: 16rem; overflow: hidden; text-overflow: ellipsis; }
.pg-mp__client { position: sticky; left: 0; z-index: 1; background: white; font-weight: 600; }
.dark .pg-mp__client { background: var(--gray-900); }
.pg-mp__num { text-align: right; font-variant-numeric: tabular-nums; min-width: 2.75rem; }
.pg-mp__hit { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; cursor: pointer; width: 100%; text-align: inherit; }
.pg-mp__hit:hover, .pg-mp__hit:focus-visible { color: var(--primary-600); text-decoration: underline; outline: none; }
.pg-detail { width: 100%; border-collapse: collapse; font-size: .875rem; }
.pg-detail td, .pg-detail th { padding: .35rem .5rem; border-bottom: 1px solid var(--gray-200); vertical-align: top; text-align: left; }
.dark .pg-detail td, .dark .pg-detail th { border-color: var(--gray-700); }
.pg-detail tr.pg-detail__task td { background: var(--gray-50); font-weight: 600; }
.dark .pg-detail tr.pg-detail__task td { background: var(--gray-800); }
.pg-detail tfoot td { font-weight: 700; border-bottom: 0; }
.pg-detail .pg-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pg-mp__eff { background: color-mix(in oklab, #c9daf8 55%, transparent); }
.dark .pg-mp__eff { background: color-mix(in oklab, #6d9eeb 18%, transparent); }
.pg-mp td.pg-mp__totprev { background: color-mix(in oklab, #ffe599 70%, white) !important; }
.pg-mp td.pg-mp__toteff { background: color-mix(in oklab, #93c47d 45%, white) !important; }
.pg-mp__input { border: 0; background: transparent; font: inherit; color: inherit; padding: 0; cursor: pointer; }
.pg-mp__input:focus { outline: 2px solid var(--primary-500); outline-offset: 1px; border-radius: .25rem; }
.pg-mp__date { width: 7.5rem; color-scheme: light dark; }
.pg-mp__status { font-weight: 600; }
.pg-mp__status--running { color: var(--success-600); }
.pg-mp__status--paused { color: var(--warning-600); }
.pg-mp__status--uat { color: var(--info-600); }
.pg-mp__status--closed, .pg-mp__status--to_start { color: var(--gray-500); }
.pg-mp__date[value=""] { color: var(--gray-400); }

/* ---- Saldi assistenza ---- */
.pg-sb__num { width: 4.5rem; text-align: right; }
.pg-sb__cycle { width: 7.5rem; }
.pg-sb__neg { color: var(--danger-600); font-weight: 700; background: color-mix(in oklab, var(--danger-500) 10%, transparent); }
.pg-sb__pos { color: var(--success-700); font-weight: 600; }
.dark .pg-sb__pos { color: var(--success-400); }
.pg-sb .pg-mp__cols:first-child th { top: 0; }
.pg-sb .pg-mp__cols:nth-child(2) th { top: 1.85rem; }
.pg-mp__cols th.pg-mp__totprev { color: #3d3200; }
.pg-mp__cols th.pg-mp__toteff { color: #173208; }
.pg-mp tbody tr.pg-mp__support td { background: color-mix(in oklab, var(--warning-500) 8%, transparent); }
.pg-mp tbody tr.pg-mp__support td.pg-mp__client { background: color-mix(in oklab, var(--warning-500) 8%, white); }
.dark .pg-mp tbody tr.pg-mp__support td.pg-mp__client { background: color-mix(in oklab, var(--warning-500) 12%, var(--gray-900)); }
.pg-mp tbody tr.pg-mp__support { cursor: pointer; }
.pg-mp__caret { display: inline-block; width: 1em; color: var(--warning-600); }
.pg-mp tbody tr.pg-mp__child td { background: color-mix(in oklab, var(--warning-500) 3%, transparent); }
.pg-mp tbody tr.pg-mp__child td.pg-mp__client { background: color-mix(in oklab, var(--warning-500) 3%, white); padding-left: 1.75rem; font-weight: 500; }
.dark .pg-mp tbody tr.pg-mp__child td.pg-mp__client { background: color-mix(in oklab, var(--warning-500) 5%, var(--gray-900)); }
