/* PN Cultura – Progetti e FNLC. Palette e tipografia coerenti con Bootstrap Italia / ItaliaWP2. */
.pnc {
	--pnc-primary: #0066cc;
	--pnc-primary-dark: #004d99;
	--pnc-primary-darker: #003366;
	--pnc-primary-tint: #e5f0fa;
	--pnc-text: #191919;
	--pnc-muted: #5c6f82;
	--pnc-border: #c5c7c9;
	--pnc-line: #e6e9f2;
	--pnc-bg-soft: #f2f7fc;
	--pnc-good: #008055;
	--pnc-good-tint: #e1f3ec;
	--pnc-warning: #a66300;
	--pnc-warning-tint: #fff4e0;
	--pnc-critical: #cc334d;
	--pnc-critical-tint: #fbe9ec;
	--pnc-info: #0066cc;
	--pnc-info-tint: #e5f0fa;
	--pnc-neutral-tint: #eef0f3;
	color: var(--pnc-text);
	font-size: 1rem;
	line-height: 1.5;
}
.pnc *, .pnc *::before, .pnc *::after { box-sizing: border-box; }
.pnc a { color: var(--pnc-primary); }
.pnc a:hover { color: var(--pnc-primary-dark); }
.pnc-h2 { font-size: 1.6rem; font-weight: 700; margin: 2rem 0 .8rem; color: var(--pnc-text); }
.pnc-h3 { font-size: 1.25rem; font-weight: 700; margin: 1.6rem 0 .6rem; }
.pnc-lead { font-size: 1.1rem; color: var(--pnc-muted); }
.pnc-muted { color: var(--pnc-muted); }
.pnc-small { font-size: .875rem; }
.pnc-right { text-align: right; }
.pnc-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pnc-mb { margin-bottom: 1rem; }
.pnc .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Controlli */
.pnc input[type=text], .pnc input[type=search], .pnc input[type=email], .pnc input[type=number], .pnc input[type=date], .pnc input[type=password], .pnc select, .pnc textarea {
	width: 100%; padding: .5rem .6rem; border: 1px solid var(--pnc-border); border-radius: 4px; font: inherit; background: #fff; color: var(--pnc-text);
}
.pnc input:focus, .pnc select:focus, .pnc textarea:focus, .pnc a:focus-visible, .pnc button:focus-visible, .pnc summary:focus-visible {
	outline: 2px solid #ff9900; outline-offset: 2px; box-shadow: none;
}
.pnc-label { display: block; font-size: .875rem; font-weight: 600; margin: 0 0 .25rem; color: var(--pnc-text); }
.pnc-check { display: flex; gap: .45rem; align-items: baseline; font-size: .9rem; padding: .15rem 0; cursor: pointer; }
.pnc-check input { width: auto; flex: none; }
.pnc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	background: var(--pnc-primary); color: #fff !important; border: 2px solid var(--pnc-primary); border-radius: 4px;
	padding: .55rem 1.1rem; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.2;
}
.pnc-btn:hover { background: var(--pnc-primary-dark); border-color: var(--pnc-primary-dark); }
.pnc-btn--ghost { background: transparent; color: var(--pnc-primary) !important; }
.pnc-btn--ghost:hover { background: var(--pnc-primary-tint); }
.pnc-btn--danger { background: var(--pnc-critical); border-color: var(--pnc-critical); }
.pnc-btn--danger:hover { background: #a3283d; border-color: #a3283d; }
.pnc-btn--sm { padding: .3rem .7rem; font-size: .875rem; }
.pnc-btn--block { width: 100%; margin-top: 1rem; }
.pnc-btnrow { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.pnc-link-danger { background: none; border: 0; color: var(--pnc-critical); cursor: pointer; font: inherit; font-size: .875rem; text-decoration: underline; padding: 0; }
.pnc-inline { display: inline-flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.pnc-inline input, .pnc-inline select { width: auto; }

/* Avvisi */
.pnc-notice { padding: .8rem 1rem; border-left: 4px solid var(--pnc-info); background: var(--pnc-info-tint); margin: 1rem 0; border-radius: 0 4px 4px 0; }
.pnc-notice--success { border-color: var(--pnc-good); background: var(--pnc-good-tint); }
.pnc-notice--warning { border-color: var(--pnc-warning); background: var(--pnc-warning-tint); }
.pnc-notice--error { border-color: var(--pnc-critical); background: var(--pnc-critical-tint); }
.pnc-empty { padding: 2rem; text-align: center; background: var(--pnc-bg-soft); border-radius: 4px; color: var(--pnc-muted); }

/* Badge */
.pnc-badge { display: inline-block; padding: .1rem .5rem; border-radius: 3px; font-size: .78rem; font-weight: 600; line-height: 1.5; white-space: nowrap; border: 1px solid transparent; vertical-align: middle; }
.pnc-badge--good { background: var(--pnc-good-tint); color: #00573a; border-color: #9fd6c0; }
.pnc-badge--warning { background: var(--pnc-warning-tint); color: #7a4800; border-color: #f0c98a; }
.pnc-badge--critical { background: var(--pnc-critical-tint); color: #99263a; border-color: #f0b3be; }
.pnc-badge--info { background: var(--pnc-info-tint); color: #004d99; border-color: #a8cbee; }
.pnc-badge--neutral { background: var(--pnc-neutral-tint); color: #434d57; border-color: #d5d9de; }

/* Ricerca */
.pnc-search__layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 2rem; align-items: start; }
@media (max-width: 960px) { .pnc-search__layout { grid-template-columns: 1fr; } }
.pnc-filters { background: var(--pnc-bg-soft); padding: 1.1rem; border-radius: 4px; position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow: auto; }
@media (max-width: 960px) { .pnc-filters { position: static; max-height: none; } }
.pnc-filters__head { display: flex; justify-content: space-between; align-items: baseline; }
.pnc-filters__head .pnc-h3 { margin-top: 0; }
.pnc-field { margin-bottom: .9rem; }
.pnc-fgroup { border-top: 1px solid var(--pnc-border); padding: .55rem 0; }
.pnc-fgroup summary { cursor: pointer; font-weight: 600; font-size: .95rem; list-style: none; display: flex; justify-content: space-between; gap: .5rem; }
.pnc-fgroup summary::-webkit-details-marker { display: none; }
.pnc-fgroup summary::after { content: "+"; color: var(--pnc-primary); font-weight: 700; }
.pnc-fgroup[open] summary::after { content: "–"; }
.pnc-fgroup > *:not(summary) { margin-top: .5rem; }
.pnc-checklist { max-height: 220px; overflow: auto; padding-right: .3rem; }
.pnc-range { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }

.pnc-totals { display: flex; flex-wrap: wrap; border: 1px solid var(--pnc-line); border-radius: 4px; overflow: hidden; margin: 0 0 1rem; background: #fff; }
.pnc-total { flex: 1 1 190px; background: #fff; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .15rem; border-right: 1px solid var(--pnc-line); border-bottom: 1px solid var(--pnc-line); margin: 0 -1px -1px 0; }
.pnc-total--main { background: var(--pnc-primary); color: #fff; }
.pnc-total__value { font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; }
.pnc-total__label { font-size: .82rem; color: var(--pnc-muted); }
.pnc-total--main .pnc-total__label { color: #dbe9f7; }

.pnc-chips { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.pnc-chip { display: inline-block; padding: .2rem .65rem; border-radius: 16px; background: var(--pnc-primary-tint); color: var(--pnc-primary-dark) !important; text-decoration: none; font-size: .85rem; border: 1px solid #a8cbee; }
.pnc-chip:hover { background: #cfe2f6; }
.pnc-tools { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; }

/* Tabelle */
.pnc-table-wrap { overflow-x: auto; margin-bottom: 1rem; }
.pnc-table { width: 100%; border-collapse: collapse; font-size: .92rem; background: #fff; }
.pnc-table th, .pnc-table td { padding: .6rem .7rem; border-bottom: 1px solid var(--pnc-line); text-align: left; vertical-align: top; }
.pnc-table thead th { background: var(--pnc-bg-soft); font-size: .82rem; text-transform: uppercase; letter-spacing: .02em; color: #33475b; border-bottom: 2px solid var(--pnc-primary); white-space: nowrap; }
.pnc-table thead th a { color: inherit; text-decoration: none; }
.pnc-table thead th a:hover { color: var(--pnc-primary); }
.pnc-table tbody tr:hover { background: #fafcff; }
.pnc-table tfoot th, .pnc-table tfoot td { background: var(--pnc-bg-soft); border-top: 2px solid var(--pnc-border); font-weight: 600; }
.pnc-table th.pnc-num, .pnc-table td.pnc-num { text-align: right; }
.pnc-bar { display: block; height: 4px; background: var(--pnc-line); margin-top: .35rem; border-radius: 2px; max-width: 260px; }
.pnc-bar span { display: block; height: 100%; background: var(--pnc-primary); border-radius: 2px; }
.pnc-tablefilter { max-width: 340px; margin-bottom: .6rem; }
.pnc-pager { display: flex; gap: .3rem; flex-wrap: wrap; margin: 1rem 0; align-items: center; }
.pnc-page { min-width: 2.2rem; text-align: center; padding: .3rem .5rem; border-radius: 4px; text-decoration: none; border: 1px solid var(--pnc-border); }
.pnc-page.is-current { background: var(--pnc-primary); color: #fff; border-color: var(--pnc-primary); font-weight: 700; }

/* KPI */
.pnc-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 1rem; margin: 1rem 0 1.5rem; }
.pnc-kpi__item { background: #fff; border: 1px solid var(--pnc-line); border-top: 4px solid var(--pnc-primary); padding: 1rem 1.1rem; border-radius: 4px; display: flex; flex-direction: column; gap: .2rem; box-shadow: 0 2px 6px rgba(0, 43, 85, .06); }
.pnc-kpi__item--good { border-top-color: var(--pnc-good); }
.pnc-kpi__item--critical { border-top-color: var(--pnc-critical); }
.pnc-kpi__label { font-size: .85rem; color: var(--pnc-muted); font-weight: 600; }
.pnc-kpi__value { font-size: 1.6rem; font-weight: 700; color: var(--pnc-primary-darker); font-variant-numeric: tabular-nums; line-height: 1.2; }
.pnc-kpi__sub { font-size: .8rem; color: var(--pnc-muted); }

/* Cruscotto */
.pnc-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--pnc-line); margin: 0 0 1.2rem; flex-wrap: wrap; }
.pnc-tab { padding: .6rem 1.1rem; text-decoration: none; font-weight: 600; color: var(--pnc-muted) !important; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.pnc-tab:hover { color: var(--pnc-primary) !important; }
.pnc-tab.is-active { color: var(--pnc-primary) !important; border-bottom-color: var(--pnc-primary); }
.pnc-strip { display: flex; gap: 2px; height: 56px; border-radius: 4px; overflow: hidden; }
.pnc-strip__seg { flex-basis: 0; min-width: 34px; display: flex; flex-direction: column; justify-content: center; align-items: center; font-size: .75rem; line-height: 1.15; color: #fff; }
.pnc-strip__code { font-weight: 700; }
.pnc-tone--good { background: var(--pnc-good); }
.pnc-tone--info { background: var(--pnc-info); }
.pnc-tone--warning { background: #e08a00; }
.pnc-tone--critical { background: var(--pnc-critical); }
.pnc-tone--neutral { background: #8a99a8; }
.pnc-legend { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; font-size: .82rem; color: var(--pnc-muted); }
.pnc-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 2px; margin-right: .35rem; vertical-align: -1px; }
.pnc-progress { height: 8px; background: var(--pnc-line); border-radius: 4px; overflow: hidden; margin: .2rem 0 .3rem; max-width: 220px; }
.pnc-progress span { display: block; height: 100%; background: var(--pnc-primary); }
.pnc-results-table td:first-child { min-width: 280px; }
.pnc-alerts { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.pnc-alert { padding: .55rem .8rem; border-left: 4px solid; border-radius: 0 4px 4px 0; font-size: .92rem; }
.pnc-alert--critical { border-color: var(--pnc-critical); background: var(--pnc-critical-tint); }
.pnc-alert--warning { border-color: #e08a00; background: var(--pnc-warning-tint); }
.pnc-alert--info { border-color: var(--pnc-info); background: var(--pnc-info-tint); }
.pnc-alert-text { color: var(--pnc-critical); }
.pnc-matrix td, .pnc-matrix th { white-space: nowrap; }
.pnc-matrix td:first-child { white-space: normal; min-width: 220px; }
.pnc-cell { font-size: .82rem; }
.pnc-cell--ok { color: #00573a; background: var(--pnc-good-tint); font-weight: 600; }
.pnc-cell--pending { color: #004d99; background: var(--pnc-info-tint); }
.pnc-cell--plan { color: var(--pnc-muted); }
.pnc-cell--late { color: var(--pnc-critical); font-weight: 600; }
.pnc-cell--none { color: #b0b7bf; }
.pnc-matrix tr.is-excluded td { opacity: .6; }

/* Passi del singolo intervento */
.pnc-steps { list-style: none; padding: 0; margin: 1rem 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; counter-reset: s; }
@media (max-width: 820px) { .pnc-steps { grid-template-columns: 1fr 1fr; gap: .5rem; } }
.pnc-step { position: relative; padding: 2.2rem .5rem .5rem; border-top: 4px solid var(--pnc-line); }
.pnc-step::before { counter-increment: s; content: counter(s); position: absolute; top: -.85rem; left: .5rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: #fff; border: 2px solid var(--pnc-border); text-align: center; font-size: .75rem; font-weight: 700; line-height: 1.3rem; color: var(--pnc-muted); }
.pnc-step__name { display: block; font-weight: 700; font-size: .92rem; }
.pnc-step__date { display: block; font-size: .8rem; color: var(--pnc-muted); }
.pnc-step.is-done { border-top-color: var(--pnc-good); }
.pnc-step.is-done::before { content: "✓"; background: var(--pnc-good); border-color: var(--pnc-good); color: #fff; }
.pnc-step.is-pending { border-top-color: var(--pnc-info); }
.pnc-step.is-pending::before { border-color: var(--pnc-info); color: var(--pnc-info); }
.pnc-step.is-late { border-top-color: var(--pnc-critical); }
.pnc-step.is-late::before { border-color: var(--pnc-critical); color: var(--pnc-critical); }
.pnc-step.is-late .pnc-step__date { color: var(--pnc-critical); font-weight: 600; }

/* Schede e moduli */
.pnc-card { background: #fff; border: 1px solid var(--pnc-line); border-radius: 4px; padding: 1.1rem 1.2rem; box-shadow: 0 2px 6px rgba(0, 43, 85, .05); }
.pnc-card h4 { margin: 0 0 .7rem; font-size: 1rem; }
.pnc-card .pnc-btn { margin-top: .7rem; }
.pnc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
@media (max-width: 720px) { .pnc-grid-2 { grid-template-columns: 1fr; } }
.pnc-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 1.2rem; margin-bottom: .8rem; }
.pnc-field--wide { grid-column: 1 / -1; }
.pnc-readonly { padding: .5rem .6rem; background: var(--pnc-bg-soft); border-radius: 4px; min-height: 2.4rem; color: #33475b; }
.pnc-fieldset { border: 1px solid var(--pnc-line); border-radius: 4px; padding: .7rem 1rem; margin: 0 0 1rem; }
.pnc-fieldset legend { font-weight: 600; font-size: .9rem; padding: 0 .3rem; }
.pnc-queue { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 1rem; }
.pnc-evidence__head { display: flex; justify-content: space-between; gap: .6rem; align-items: start; margin-bottom: .5rem; }
.pnc-checks { list-style: none; padding: 0; margin: .3rem 0 .6rem; font-size: .85rem; }
.pnc-checks li { padding-left: 1.3rem; position: relative; }
.pnc-checks li::before { position: absolute; left: 0; }
.pnc-checks .is-ok::before { content: "✓"; color: var(--pnc-good); font-weight: 700; }
.pnc-checks .is-missing { color: var(--pnc-critical); }
.pnc-checks .is-missing::before { content: "✕"; }
.pnc-validate { border-top: 1px solid var(--pnc-line); padding-top: .6rem; margin-top: .6rem; }
.pnc-validate textarea { margin-bottom: .5rem; }
.pnc-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .8rem 1.5rem; margin: 0 0 1.5rem; }
.pnc-dl dt { font-size: .8rem; color: var(--pnc-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }
.pnc-dl dd { margin: .1rem 0 0; }
.pnc-dl--compact { grid-template-columns: 1fr 1fr; gap: .4rem 1rem; margin-bottom: .6rem; font-size: .9rem; }
.pnc-meta-row { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; padding: .8rem 0 1rem; border-bottom: 1px solid var(--pnc-line); margin-bottom: 1rem; }
.pnc-contrib { padding-left: 1.1rem; }
.pnc-contrib li { margin-bottom: .3rem; }

/* Area riservata */
.pnc-userbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1rem 1.2rem; background: var(--pnc-bg-soft); border-radius: 4px; margin-bottom: 1rem; }
.pnc-login { max-width: 460px; }
.pnc-login form p { margin: 0 0 .8rem; }
.pnc-login label { display: block; font-weight: 600; font-size: .875rem; }
.pnc-login input[type=submit] { background: var(--pnc-primary); color: #fff; border: 0; border-radius: 4px; padding: .6rem 1.4rem; font-weight: 600; cursor: pointer; font: inherit; }
.pnc-crumbs { margin: .8rem 0; font-size: .95rem; }
.pnc-ico { display: inline-block; width: 1.1rem; height: .9rem; margin-right: .45rem; vertical-align: -1px; border-radius: 2px; }
.pnc-ico--folder { background: #f2b33d; position: relative; }
.pnc-ico--folder::before { content: ""; position: absolute; top: -3px; left: 0; width: 45%; height: 4px; background: #f2b33d; border-radius: 2px 2px 0 0; }
.pnc-ico--file { width: .8rem; height: 1rem; border: 2px solid var(--pnc-muted); background: #fff; }
.pnc-inline details { display: inline-block; }
details.pnc-inline summary { cursor: pointer; color: var(--pnc-primary); font-size: .875rem; display: inline; }

/* Amministrazione */
.wp-admin .pnc-queue { margin-top: 1rem; }
.pnc-sintesi { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 1.4rem; }
@media (max-width: 520px) { .pnc-sintesi { grid-template-columns: 1fr; } }
.pnc-sintesi .pnc-h3 { margin-top: 0; }
