/* style.css: ritocchi sopra Bootstrap 5 e theme.css del tema demo di October (static/demo), come la pagina
   project-status di Recupero NG. Nessun framework proprio: solo classi .ps-* e qualche stato. */

/* Testata: marchio testuale, altezza ridotta, decorazioni che non intercettano i clic */
.layout-project-status #layout-header .navbar { min-height: 0; }
.layout-project-status #layout-header .header-extra { padding-top: 6px; padding-bottom: 34px; }
.layout-project-status #layout-header .header-extra h1 { font-size: 38px; margin-bottom: 6px; }
.layout-project-status #layout-header .header-extra p.lead { font-size: 16px; max-width: 900px; }
.ps-brand { font-weight: 700; font-size: 24px; letter-spacing: .3px; }
.ps-brand .bi { margin-right: 4px; }
.ps-brand .ps-sottotitolo { font-weight: 400; font-size: 14px; opacity: .8; margin-left: 6px; }
.ps-utente { white-space: nowrap; }
#layout-nav .ps-utente { color: rgba(255, 255, 255, .9); }
@media (min-width: 992px) { #layout-nav .navbar-nav > li.nav-item > a.btn { margin-top: 0; } }
#layout-nav-decorations, #layout-nav-decorations * { pointer-events: none; }
@media (max-width: 575px) { .layout-project-status #layout-header .header-extra h1 { font-size: 28px; } }

/* Contenuto e piede */
.layout-project-status #layout-content { padding-top: 0; padding-bottom: 60px; min-height: 60vh; }
.layout-project-status #layout-content > .ps-fluid { padding-top: 1.75rem; }
.ps-fluid { padding-left: 24px; padding-right: 24px; }
@media (min-width: 1200px) { .ps-fluid { padding-left: 48px; padding-right: 48px; } }
.ps-footer { color: #fff; padding: 28px 0; font-size: 14px; }
.ps-footer a { color: #fff; }

/* Barra delle sezioni (nav-line-pills del demo), fissa in alto */
.ps-indice { background: #fff; border-bottom: 1px solid var(--bs-gray-300); box-shadow: 0 6px 12px -10px rgba(0,0,0,.15); }
.ps-indice .nav-line-pills { border-bottom: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.ps-indice .nav-line-pills::-webkit-scrollbar { display: none; }
.ps-indice .nav-line-pills .nav-item { margin-right: 1.75rem; }
.ps-indice .nav-line-pills .nav-link { padding: 14px 0; font-size: 15px; white-space: nowrap; }
.ps-indice .nav-link .bi { margin-right: 4px; }
.ps-indice .nav-link:hover { text-decoration: none; }
.ps-indice .badge { font-size: .7em; vertical-align: top; }

/* Sezioni, card, indicatori */
.ps-sezione { margin-bottom: 2.5rem; scroll-margin-top: 70px; }
.ps-sezione > h2, .ps h2.ps-titolo { color: #2C3E4F; padding-bottom: 8px; border-bottom: 1px solid #EBEBEB; margin-bottom: 1.25rem; font-size: 22px; }
.ps .card { box-shadow: 0 0 22px rgba(0,0,0,.05); }
.ps .card-body { padding: 1.25rem; }
.ps-card-header { background: #F8FAFB; font-weight: 600; color: #2C3E4F; padding: .75rem 1.25rem; border-bottom: 1px solid #EBEBEB; }
.ps-card-header .bi { margin-right: 6px; color: var(--bs-brand-primary); }
.ps-etichetta { font-weight: 600; color: #2C3E4F; font-size: 14px; }
.ps-etichetta .bi { color: var(--bs-brand-primary); margin-right: 4px; }
.ps-numero { font-size: 40px; font-weight: 700; line-height: 1.1; color: #2C3E4F; margin: 6px 0 8px; }
.ps-numero-tot { font-size: 18px; font-weight: 400; color: var(--bs-gray-600); }
.ps .progress { height: 12px; font-size: 10px; }
.ps .ps-progress-sottile { height: 8px; }
.ps-card-link { color: inherit; text-decoration: none; display: block; }
.ps-card-link:hover { text-decoration: none; color: inherit; }
.ps-card-link:hover .card { box-shadow: 0 6px 24px rgba(0,0,0,.10); }
.ps-nav-bread { font-size: 14px; margin-bottom: .75rem; }

/* Stati */
.stato-fatto { background: var(--bs-brand-success) !important; } .stato-parziale { background: #e0912f !important; }
.stato-in_arrivo { background: var(--bs-gray-500) !important; } .stato-da_rivedere { background: var(--bs-brand-danger) !important; }
.badge-gravita-alta, .badge-priorita-alta { background: var(--bs-brand-danger); }
.badge-gravita-media, .badge-priorita-media { background: #e0912f; }
.badge-gravita-bassa, .badge-priorita-bassa { background: var(--bs-gray-500); }
.ps .badge { font-weight: 600; }

/* Voci delle aree */
.voce { border-left: 4px solid #dee2e6; padding: .55rem .8rem; margin-bottom: .5rem; background: #fff; border-radius: 6px; box-shadow: 0 0 12px rgba(0,0,0,.04); }
.voce.stato-voce-fatta { border-left-color: var(--bs-brand-success); opacity: .75; }
.voce.stato-voce-in_lavoro { border-left-color: var(--bs-brand-primary); }
.voce.stato-voce-scartata { border-left-color: #adb5bd; opacity: .5; text-decoration: line-through; }
.voce .titolo { font-weight: 600; color: #2C3E4F; }
.voce .file, .mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8em; color: var(--bs-gray-600); word-break: break-all; }

/* Decisioni */
.decisione { background: #fff; border-radius: 13px; border: 1px solid #EBEBEB; padding: 1.25rem; margin-bottom: 1rem; box-shadow: 0 0 22px rgba(0,0,0,.05); }
.decisione h5 { color: #2C3E4F; }
.decisione .contesto { color: #444; }
.decisione .raccomandazione { background: #FFF8E1; border-left: 4px solid var(--bs-brand-warning); padding: .5rem .75rem; border-radius: 4px; }
.decisione .decisione-presa { background: #E8F5E9; border-left: 4px solid var(--bs-brand-success); padding: .5rem .75rem; border-radius: 4px; }
details.gruppo > summary { cursor: pointer; font-weight: 600; padding: .6rem .9rem; background: #F2F8FC; color: #2C3E4F; border-radius: 6px; margin-bottom: .75rem; list-style: none; }
details.gruppo > summary::before { content: "▸ "; } details.gruppo[open] > summary::before { content: "▾ "; }

/* Markdown */
.md { overflow-wrap: anywhere; }
.md p:last-child { margin-bottom: 0; }
.md table { border-collapse: collapse; margin: .5rem 0; font-size: 14px; }
.md th { background: #F8FAFB; color: #2C3E4F; font-weight: 600; }
.md th, .md td { border: 1px solid #E3E7EA; padding: 4px 8px; vertical-align: top; }
.md pre { background: #F4F6F7; padding: 10px; border-radius: 6px; font-size: 13px; }
.md ul, .md ol { padding-left: 1.4rem; }

/* Tabelle */
.tabella-compatta { font-size: 14px; }
.tabella-compatta td, .tabella-compatta th { padding: .4rem .6rem; vertical-align: middle; }
.tabella-compatta thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--bs-gray-600); background: #F8FAFB; white-space: nowrap; }

/* Segnalazioni: allegati */
.anteprima-allegati img { max-height: 90px; border: 1px solid #dee2e6; border-radius: 6px; margin: .2rem; }
.galleria img { max-width: 100%; max-height: 420px; border: 1px solid #dee2e6; border-radius: 6px; }
.drop { border: 2px dashed #adb5bd; border-radius: 8px; padding: 1rem; text-align: center; color: var(--bs-gray-600); background: #fff; cursor: pointer; }
.drop.attiva { border-color: var(--bs-brand-primary); background: #eef5fb; }
.commento { background: #fff; border-radius: 6px; padding: .6rem .8rem; margin-bottom: .5rem; border: 1px solid #e9ecef; }
.attivita li { font-size: .85rem; }
.sezione-titolo { font-size: 1.05rem; font-weight: 600; margin: 1.25rem 0 .5rem; color: #2C3E4F; }
.kpi .valore { font-size: 2rem; font-weight: 700; line-height: 1; color: #2C3E4F; }
.kpi .etichetta { font-size: .78rem; color: var(--bs-gray-600); text-transform: uppercase; letter-spacing: .03em; }
.ps-sintesi { font-size: 15px; line-height: 1.65; }
.ps-sintesi p { margin-bottom: .75rem; }
.ps-sintesi ul { margin-bottom: .75rem; }
.ps-sintesi li { margin-bottom: .2rem; }
.ps-sintesi strong { color: #2C3E4F; }
