/* =====================================================
   DASHBOARD USER DETAILS PROJECT
   Layout plain dedicato alla pagina /user_details_project.
===================================================== */

:root {
    --page-bg:#f4f7fb;
    --panel:#ffffff;
    --panel-soft:#f8fafc;
    --text:#172033;
    --muted:#657084;
    --line:#dce3ec;
    --blue:#2f80ed;
    --aqua:#45c7df;
    --orange:#f2994a;
    --green:#2eaf68;
    --yellow:#d99a16;
    --red:#d94b42;
}

body.theme-interno {
    --theme-color:var(--orange);
    --theme-soft:#fff1e3;
    --theme-line:#ffd0a6;
    --theme-text:#8a440f;
    --theme-button-text:#ffffff;
}

body.theme-esterno {
    --theme-color:var(--aqua);
    --theme-soft:#e7f9fc;
    --theme-line:#a9e8f1;
    --theme-text:#0b7182;
    --theme-button-text:#07343d;
}

body.theme-default {
    --theme-color:var(--blue);
    --theme-soft:#eaf2ff;
    --theme-line:#bcd5ff;
    --theme-text:#174f9a;
    --theme-button-text:#ffffff;
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    padding:28px;
    min-height:100vh;
    background:var(--page-bg);
    color:var(--text);
    font-family:"Manrope", -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}

a {
    color:var(--blue);
    font-weight:850;
    text-decoration:none;
}

a:hover {
    text-decoration:underline;
}

.glass-card {
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:none;
}

.dashboard-header {
    display:block;
    width:100%;
    margin-bottom:0;
}

.detail-dashboard-card {
    position:relative;
    margin-bottom:0;
}

.unified-dashboard-card {
    display:grid;
    grid-template-columns:minmax(200px, .70fr) minmax(350px, .1fr) minmax(200px, 1.2fr);
    gap:28px;
    align-items:start;
    padding:28px;
}

.detail-identity-block {
    display:grid;
    grid-template-columns:68px minmax(0, 1fr);
    gap:16px;
    align-items:start;
    min-width:0;
}

.detail-kpi-block {
    min-height:100%;
    padding-left:28px;
    border-left:1px solid var(--line);
}

.detail-status-block {
    min-height:100%;
    padding-left:28px;
    border-left:1px solid var(--line);
}

.brand-icon {
    width:68px;
    height:68px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    object-fit:contain;
    object-position:center;
    display:block;
}

.person-name h1 {
    margin:0;
    color:var(--text);
    font-size:28px;
    line-height:1.08;
    font-weight:900;
    letter-spacing:0;
}

.detail-project-description {
    display:-webkit-box;
    overflow:hidden;
    margin-top:10px;
    color:var(--muted);
    font-size:12px;
    font-weight:800;
    line-height:1.35;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
}

.kpi-block,
.kpi-item {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    padding:0;
}

.main-counter-label {
    margin:0 0 10px;
    color:var(--muted);
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.main-counter-number {
    color:var(--theme-color);
    font-size:64px;
    line-height:.88;
    font-weight:900;
    letter-spacing:0;
}

.main-counter-subtitle {
    margin-top:8px;
    color:var(--muted);
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.dashboard-right h2 {
    margin:0 0 14px;
    color:var(--text);
    font-size:18px;
    line-height:1.2;
    font-weight:900;
}

.detail-status-block .separator {
    display:none;
}

.detail-status-block.has-filter .separator {
    display:block;
}

.detail-status-block .task-filter-header {
    margin:0 0 10px;
    color:var(--text);
    font-size:18px;
    line-height:1.2;
    font-weight:900;
}

#taskTotalLabel {
    font-weight:900;
}

#taskTotalValue {
    font-weight:900;
    margin-left:8px;
}

#taskTotalValue[hidden] {
    display:none;
}

.separator {
    height:1px;
    margin:14px 0;
    background:var(--line);
    border:0;
}

.status-summary {
    display:flex !important;
    flex-direction:column !important;
    gap:4px;
    width:100%;
}

/* Modalità "le tue task": resta fuori solo il riepilogo delle altre task. */
.my-tasks-mode .altre-task-toolbar {
    display:none;
}

.metric-row {
    display:grid;
    grid-template-columns:minmax(0, 170px) minmax(0, 1fr) minmax(42px, max-content);
    gap:5px;
    align-items:center;
    min-height:34px;
    margin:2px 0;
    cursor:pointer;
    min-width:0;
}
.metric-row.inactive-status {
    opacity:.35;
}

.metric-row-multi {
    display:grid;
    grid-template-columns:minmax(0, 170px) minmax(0, 1fr) minmax(42px, max-content);
    gap:12px;
    align-items:center;
    min-height:34px;
    margin:8px 0;
    cursor:pointer;
    min-width:0;
}

.metric-row-multi.inactive-status {
    opacity:.35;
}

.metric-progress-row {
    display:flex;
    gap:8px;
    min-width:0;
}

.metric-row-inner {
    flex:1 1 0;
    min-width:0;
    display:grid;
    grid-template-columns:1fr minmax(80px, 1fr) 84px;
    gap:8px;
    align-items:center;
    margin:0;
    cursor:pointer;
}

.metric-row-inner .metric-label {
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.metric-row-inner .metric-value {
    text-align:right;
    white-space:nowrap;
}

.metric-row-inner.inactive-status {
    opacity:.35;
}

.bar-cs {
    background:var(--aqua);
}

.bar-consorzio {
    background:#7c3aed;
}

.metric-label,
.metric-value {
    color:var(--text);
    font-size:13px;
    font-weight:850;
}

.metric-label {
    line-height:1.08;
    text-transform:uppercase;
    white-space:normal;
    overflow:hidden;
    text-overflow:ellipsis;
    min-width:0;
}

.metric-value {
    color:var(--muted);
    text-align:right;
    white-space:nowrap;
    min-width:0;
}

.progress {
    width:100%;
    height:8px;
    overflow:hidden;
    background:#e8edf4;
    border-radius:999px;
}

.progress-fill {
    width:var(--final-width);
    height:100%;
    border-radius:999px;
}

.metric-progress-stack {
    display:grid;
    gap:6px;
    min-width:0;
}

.task-consorzio-segments {
    display:flex;
    gap:5px;
    width:100%;
    height:8px;
    min-width:0;
}

.task-consorzio-segment {
    flex:0 1 max(var(--segment-width), 8%);
    min-width:12px;
    min-height:8px;
    border:0;
    border-radius:999px;
    cursor:pointer;
    display:block;
    padding:0;
    transition:transform .18s ease, opacity .18s ease, filter .18s ease;
}

.task-consorzio-segment:hover {
    filter:brightness(1.06);
    transform:translateY(-1px);
}

.task-consorzio-segment.inactive-status {
    opacity:.35;
}

.task-consorzio-segment-to-send {
    background:#dc2626;
}

.task-consorzio-segment-sent {
    background:#7c3aed;
}

.task-consorzio-segment-other {
    background:#374151;
}

.bar-interno {
    background:var(--orange);
}

.bar-esterno {
    background:var(--aqua);
}

/* ===== DONUT GRAPHIC ALL ===== */
.donut-block {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(20,50,74,.08);
    width: 100%;
}

.donut-block-title {
    margin: 0 0 12px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted, rgba(20,50,74,.58));
}

.donut-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.donut-chart {
    position: relative;
    width: 190px;
    height: 190px;
    flex-shrink: 0;
}

.donut-chart svg {
    width: 100%;
    height: 100%;
    display: block;
}

.donut-segment-link {
    cursor: pointer;
    transition: opacity .18s ease, transform .18s ease;
    display: inline-block;
}

.donut-segment-link:hover {
    opacity: 0.75;
    transform: scale(1.06);
}

.donut-segment {
    pointer-events: auto;
    transition: opacity .18s ease;
    stroke-linejoin: round;
}

.donut-segment:hover {
    opacity: 0.82;
}

.donut-center {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    text-align: center;
}

.donut-center .count {
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
    color: var(--theme-color, #14324a);
}

.donut-center .label {
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted, rgba(20,50,74,.58));
    margin-top: 2px;
}

.donut-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
    max-width: 100%;
}

.donut-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
    padding: 3px 8px;
    border-radius: 6px;
    transition: background .18s ease, opacity .18s ease;
    color: var(--theme-color, #14324a);
}

.donut-legend-item:hover {
    opacity: 0.75;
}

.donut-legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    flex-shrink: 0;
    box-shadow: 0 1px 2px rgba(0,0,0,.15);
}

.donut-no-data .count {
    font-size: 20px;
    color: var(--muted, rgba(20,50,74,.58));
}

.donut-segment-count {
    font-size: 9px;
    font-weight: 900;
    fill: #fff;
    paint-order:stroke;
    stroke:rgba(20,50,74,.62);
    stroke-width:2.4px;
    text-shadow:0 1px 2px rgba(0,0,0,.45);
}

.donut-legend-count {
    font-weight: 800;
    color: var(--theme-color, #14324a);
}

.donut-center .project-name {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--muted, rgba(20,50,74,.58));
    margin-top: 0;
    line-height: 1;
}

.altre-task-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:18px;
    padding-top:0;
    border-top:0;
}

.altre-task-toolbar.has-reset-action {
    padding-top:0;
    border-top:0;
}

.altre-task-label,
.altre-tasks-alert {
    color:var(--muted);
    font-size:13px;
    font-weight:850;
}

.filter-reset-btn {
    display:none;
    min-height:34px;
    padding:8px 14px;
    border:1px solid var(--theme-color);
    border-radius:999px;
    background:var(--theme-color);
    color:var(--theme-button-text);
    font-family:inherit;
    font-size:12px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
    cursor:pointer;
}

.filter-reset-btn.is-visible {
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

.task-filter-message {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid var(--line);
    color:var(--muted);
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.task-filter-message:empty {
    display:none;
}

.task-filter-line {
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-width:0;
    color:#233142;
    font-weight:950;
}

.task-filter-count {
    color:inherit;
    font-size:15px;
    font-weight:950;
}

.my-tasks-inline-reset {
    flex:0 0 auto;
}

.my-tasks-block {
    width:100%;
    margin-top:14px;
}

.my-tasks-separator {
    display:block;
    width:100%;
    height:1px;
    margin:0 0 12px;
    background:var(--line);
}

.my-tasks-row {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
}

.my-tasks-btn {
    min-height:34px;
    padding:8px 14px;
    border:1px solid var(--theme-color);
    border-radius:999px;
    background:var(--theme-color);
    color:var(--theme-button-text);
    font-family:inherit;
    font-size:12px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
    cursor:pointer;
}

.my-tasks-btn.is-active {
    color:var(--theme-button-text);
    background:var(--theme-color);
    border-color:var(--theme-color);
}

.dashboard-back-row {
    display:flex;
    justify-content:flex-start;
    margin-top:10px;
}

.dashboard-back-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:8px 14px;
    border:1px solid var(--theme-line);
    border-radius:999px;
    background:var(--theme-soft);
    color:var(--theme-text);
    font-family:inherit;
    font-size:12px;
    font-weight:900;
    letter-spacing:.04em;
    cursor:pointer;
    text-decoration:none;
    text-transform:uppercase;
}

.dashboard-back-btn:hover {
    text-decoration:none;
}

.project-card-interno,
.article-card-interno,
.task-card-interno {
    --theme-color:#f2994a;
    --theme-soft:#fff1e3;
    --theme-line:#ffd0a6;
    --theme-text:#8a440f;
    border-color:#ffd0a6;
    background:#fff8f0;
}

.project-card-esterno,
.article-card-esterno,
.task-card-esterno {
    --theme-color:#45c7df;
    --theme-soft:#e7f9fc;
    --theme-line:#a9e8f1;
    --theme-text:#0b7182;
    border-color:#a9e8f1;
    background:#f0fbfd;
}

.article-card-completed,
.task-card-completed {
    --theme-color:#14a870;
    --theme-soft:#d9f7e8;
    --theme-line:#14a870;
    --theme-text:#123026;
    --theme-button-text:#ffffff;
    border-color:#14a870;
    background:#d9f7e8;
    color:#123026;
}

.article-card-completed .article-name,
.task-card-completed .task-title,
.task-card-completed .task-title a,
.task-card-completed .task-info,
.task-card-completed .task-info b {
    color:#123026;
}

.article-card-completed .article-count {
    color:#0f5132;
}

.article-summary-card.is-completed,
.project-card-interno.is-completed,
.project-card-esterno.is-completed,
.project-card-default.is-completed,
.article-card-interno.is-completed,
.article-card-esterno.is-completed,
.article-card-default.is-completed,
.task-card.is-completed,
.task-card-interno.is-completed,
.task-card-esterno.is-completed,
.task-card-hybrido.is-completed {
    --theme-color:#14a870;
    --theme-soft:#d9f7e8;
    --theme-line:#14a870;
    --theme-text:#123026;
    border-color:#14a870 !important;
    background:#d9f7e8 !important;
    color:#123026 !important;
}

.article-summary-card.is-completed .article-name,
.project-card-interno.is-completed,
.project-card-esterno.is-completed,
.project-card-default.is-completed,
.task-card.is-completed .task-title,
.task-card.is-completed .task-title a,
.task-card.is-completed .task-info,
.task-card.is-completed .task-info b,
.task-card-interno.is-completed .task-title,
.task-card-interno.is-completed .task-title a,
.task-card-interno.is-completed .task-info,
.task-card-interno.is-completed .task-info b,
.task-card-esterno.is-completed .task-title,
.task-card-esterno.is-completed .task-title a,
.task-card-esterno.is-completed .task-info,
.task-card-esterno.is-completed .task-info b,
.task-card-hybrido.is-completed .task-title,
.task-card-hybrido.is-completed .task-title a,
.task-card-hybrido.is-completed .task-info,
.task-card-hybrido.is-completed .task-info b {
    color:#123026 !important;
}

.article-summary-card.is-completed .article-count {
    color:#0f5132 !important;
}

.task-card-hybrido {
    --theme-color:#7c3aed;
    --theme-soft:#f7f0ff;
    --theme-line:#c4a7ff;
    --theme-text:#4c1d95;
    border-color:#c4a7ff;
    background:#f7f0ff;
}

.project-card-default,
.article-card-default,
.task-card {
    border-color:var(--line);
    background:var(--panel);
}

.details-header-gap {
    display:block;
    width:100%;
    height:42px;
    min-height:42px;
    pointer-events:none;
}

.upload-context-message {
    width:min(100%, 980px);
    margin:0 auto 18px;
    padding:14px 18px;
    border:1px solid var(--aqua);
    border-radius:12px;
    background:#e7f9fc;
    color:var(--aqua);
    font-size:20px;
    font-weight:950;
    line-height:1.2;
    letter-spacing:.08em;
    text-align:center;
    text-transform:uppercase;
    box-shadow:0 8px 22px rgba(69, 199, 223, .16);
}

.articles-container {
    display:grid !important;
    grid-template-columns:repeat(3, minmax(230px, 1fr));
    gap:16px;
    padding:18px;
    margin-top:0;
    margin-bottom:28px;
}

.task-results-container {
    display:grid;
    grid-template-columns:1fr !important;
    gap:16px;
    padding:18px;
    margin-top:0;
    margin-bottom:28px;
}

.task-results-container > .task-result-card {
    width:100%;
    grid-column:1 / -1;
}

.user-task-project-group,
.user-task-article-group {
    display:block;
    width:100%;
    margin:0 0 10px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:18px;
    background:#ffffff;
}

/* I filtri JS usano hidden sui livelli PJ/ART: il display esplicito sopra non deve riaccenderli. */
.user-task-project-group[hidden],
.user-task-article-group[hidden] {
    display:none !important;
}

.task-results-container .user-task-project-group,
.task-results-container .user-task-article-group {
    border-radius:12px;
}

.user-task-project-group.project-theme-interno,
.user-task-article-group.project-theme-interno {
    --project-color:#f97316;
    --project-dark:#7c2d12;
    --project-soft:#fff2e4;
    --project-line:#fdba74;
    --project-shadow:rgba(249, 115, 22, .22);
}

.user-task-project-group.project-theme-esterno,
.user-task-article-group.project-theme-esterno {
    --project-color:#08a9c8;
    --project-dark:#075c6b;
    --project-soft:#e5faff;
    --project-line:#7dddea;
    --project-shadow:rgba(8, 169, 200, .22);
}

.user-task-project-group.project-theme-hybrido,
.user-task-article-group.project-theme-hybrido {
    --project-color:#7c3aed;
    --project-dark:#4c1d95;
    --project-soft:#f3e8ff;
    --project-line:#c4a7ff;
    --project-shadow:rgba(124, 58, 237, .22);
}

.user-task-project-group.project-theme-default,
.user-task-article-group.project-theme-default {
    --project-color:#2563eb;
    --project-dark:#1e3a8a;
    --project-soft:#edf4ff;
    --project-line:#a9c8ff;
    --project-shadow:rgba(37, 99, 235, .18);
}

.user-task-project-group {
    border:none;
    box-shadow:0 12px 26px var(--project-shadow, rgba(23,32,51,.08));
    background:var(--project-color, var(--theme-color));
}

.user-task-article-group {
    border:1px solid var(--project-line, var(--line));
    box-shadow:none;
}

.user-task-project-group > summary,
.user-task-article-group > summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:0;
    padding:12px 14px;
    color:var(--text);
    font-size:14px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
    cursor:pointer;
    list-style:none;
}

.user-task-project-group > summary::-webkit-details-marker,
.user-task-article-group > summary::-webkit-details-marker {
    display:none;
}

.user-task-project-group > summary {
    padding:0;
    overflow:hidden;
    color:#ffffff;
}

.user-task-article-group > summary {
    background:var(--project-soft, #f8fafc);
    color:var(--project-dark, var(--text));
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0 8px;
}

/* Badge articolo allineato nella prima riga del summary. */
.user-task-article-group > summary > .user-task-project-meta {
    margin-left:auto;
    align-self:stretch;
    display:flex;
    align-items:center;
    gap:0;
}

.user-task-project-group > summary {
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:8px;
}

.user-task-project-group > summary > .user-task-project-meta {
    margin-left:auto;
    margin-right:0;
}

/* Mantiene le metriche assegnazione sotto titolo e badge articolo. */
.user-task-assignment-row {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    flex:0 0 100%;
    width:100%;
    margin-top:0;
    box-sizing:border-box;
}

.user-task-assignment-grid {
    display:flex;
    flex-wrap:nowrap;
    gap:12px;
    align-items:baseline;
    width:100%;
    box-sizing:border-box;
}

.user-task-assignment-cell {
    display:flex;
    align-items:baseline;
    gap:4px;
    white-space:nowrap;
}

.user-task-assignment-meta {
    white-space:nowrap;
    font-size:12px;
    font-weight:600;
    color:rgba(13, 69, 84, .72);
}

.user-task-assignment-meta .user-task-assignment-value {
    font-weight:900;
    color:#000000 !important;
}

@media (hover:hover) {
    .user-task-project-group,
    .user-task-article-group {
        transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
    }

    .user-task-project-group:hover,
    .user-task-article-group:hover {
        border-color:var(--project-color, var(--theme-color));
        box-shadow:0 10px 24px rgba(23,32,51,.10), 0 0 0 3px var(--project-soft, var(--theme-soft));
        transform:translateY(-1px);
    }
}

.user-task-project-group small {
    display:block;
    margin-top:4px;
    color:rgba(255,255,255,.82);
    font-size:11px;
    font-weight:850;
}

.user-task-project-title {
    min-width:0;
    padding:14px 16px;
}

.user-task-project-meta {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    align-self:stretch;
    gap:0;
    flex:0 0 auto;
}

.user-task-project-meta > b {
    display:inline-flex;
    align-items:center;
    align-self:stretch;
    padding:0 14px;
    color:#ffffff;
    gap:4px;
}

.group-count-visible {
    font-variant-numeric:tabular-nums;
}

.group-count-visible {
    color:inherit;
}

.project-status-strip {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    align-self:stretch;
    min-width:168px;
    padding:0 14px;
    border-radius:0;
    color:#ffffff;
    font-size:11px;
    font-style:normal;
    font-weight:950;
    letter-spacing:.08em;
    text-align:center;
    box-shadow:none;
    border-left:none;
}

.project-status-red {
    background:#dc2626;
}

.project-status-yellow {
    background:#f2b705;
    color:#3f2d00;
}

.project-status-green {
    background:#14a870;
}

.project-status-default {
    background:#64748b;
}

.pj-consorzio-dark {
    background:#000000;
}

.pj-consorzio-dark .user-task-project-title {
    color:#ffffff;
}

.pj-consorzio-dark .user-task-project-title small {
    color:#ffffff;
}

.pj-consorzio-dark .task-info,
.pj-consorzio-dark .task-title,
.pj-consorzio-dark .task-description {
    color:#172033;
}

.pj-consorzio-dark b {
    color:#172033;
}

.pj-consorzio-dark .user-task-project-meta b {
    color:#ffffff;
}

.pj-consorzio-dark .user-task-project-meta b.group-count-visible {
    color:#ffffff;
}

.pj-consorzio-dark .task-asana-details {
    color:#172033;
}

.pj-consorzio-dark .task-asana-details summary,
.pj-consorzio-dark .task-documents-details summary,
.pj-consorzio-dark .user-task-action-details summary {
    color:#172033;
}

.pj-consorzio-dark .user-task-action-content {
    background:var(--panel-soft);
    color:#172033;
}

.pj-consorzio-dark .task-card {
    border:0;
}

.pj-consorzio-dark .task-accordion-item > summary {
    border:0;
}

.user-task-article-group b {
    display:inline-flex;
    align-items:center;
    gap:4px;
    font-variant-numeric:tabular-nums;
}

.user-task-project-body,
.user-task-article-body {
    display:grid;
    gap:10px;
    padding:10px;
}

.user-task-article-body {
    grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
}

/* Vista TUTTE LE TASK: una sola colonna, così ogni card prende tutta la larghezza. */
.task-results-container .user-task-article-body,
.task-results-container .user-task-action-content {
    grid-template-columns:1fr;
}

.download-all-footer-action {
    display:flex;
    justify-content:flex-end;
    margin:8px 0 28px;
}

.article-summary-card,
.task-card,
.task-card-interno,
.task-card-esterno,
.task-card-completed,
.article-card-completed,
.task-card-hybrido {
    min-width:0;
    padding:18px;
    border:1px solid var(--line);
    border-radius:14px;
    color:var(--text);
}

@media (hover:hover) {
    .article-summary-card,
    .task-card,
    .task-card-interno,
    .task-card-esterno,
    .task-card-completed,
    .article-card-completed,
    .task-card-hybrido {
        transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
    }

    .article-summary-card:hover,
    .task-card:hover,
    .task-card-interno:hover,
    .task-card-esterno:hover,
    .task-card-completed:hover,
    .article-card-completed:hover,
    .task-card-hybrido:hover {
        border-color:var(--theme-color);
        box-shadow:0 12px 28px rgba(23,32,51,.10), 0 0 0 3px var(--theme-soft);
        transform:translateY(-2px);
    }
}

.task-results-container .article-summary-card,
.task-results-container .task-card,
.task-results-container .task-card-interno,
.task-results-container .task-card-esterno,
.task-results-container .task-card-completed,
.task-results-container .article-card-completed,
.task-results-container .task-card-hybrido {
    border-radius:10px;
}

.article-summary-card {
    cursor:pointer;
}

.article-name {
    overflow:hidden;
    color:var(--text);
    font-size:16px;
    font-weight:900;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.article-count {
    margin-top:12px;
    color:var(--theme-text);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
}

.task-title {
    overflow:hidden;
    margin-bottom:12px;
    color:var(--text);
    font-size:15px;
    font-weight:900;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.apex-indicator {
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    flex:0 0 132px;
    width:132px;
    min-width:132px;
    height:34px;
    padding:3px 8px;
    border-radius:4px;
    color:#ffffff;
    font-size:10px;
    font-weight:900;
    text-align:center;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.task-consorzio-article-group .apex-indicator {
    align-self:stretch;
    flex:0 0 auto;
    width:auto;
    height:auto;
    min-width:132px;
    padding:0 14px;
    border-radius:0;
}

.task-consorzio-article-group .user-task-project-meta .apex-indicator:last-child {
    border-radius:0 12px 0 0;
}

.task-print-article-group .apex-indicator {
    align-self:stretch;
    flex:0 0 auto;
    width:auto;
    height:auto;
    min-width:132px;
    padding:0 14px;
    border-radius:0;
}

.task-print-article-group .user-task-project-meta .apex-indicator:last-child {
    border-radius:0 12px 0 0;
}

.pj-consorzio-article-group .apex-indicator {
    align-self:stretch;
    flex:0 0 auto;
    width:auto;
    height:auto;
    min-width:132px;
    padding:0 14px;
    border-radius:0;
}

.pj-consorzio-article-group .user-task-project-meta .apex-indicator:last-child {
    border-radius:0 12px 0 0;
}

.task-grafica-article-group .apex-indicator {
    align-self:stretch;
    flex:0 0 auto;
    width:auto;
    min-width:132px;
    height:auto;
    min-height:34px;
    padding:0 14px;
    border-radius:0;
}

.task-grafica-article-group .user-task-project-meta .apex-indicator:last-child {
    border-radius:0 12px 0 0;
}

.task-grafica-article-group .task-grafica-article-status {
    min-width:132px;
    border-radius:0;
}

.task-team-article-group .apex-indicator {
    align-self:stretch;
    flex:0 0 auto;
    width:auto;
    min-width:132px;
    height:auto;
    min-height:34px;
    padding:0 14px;
    border-radius:0 12px 0 0;
}

.task-print-article-group .task-print-article-status,
.task-consorzio-article-group .task-consorzio-article-status,
.pj-consorzio-article-group .pj-consorzio-article-status {
    border-radius:0;
}

.apex-indicator .apex-label {
    display:block;
    font-size:9px;
    line-height:1;
}

.apex-indicator b {
    display:block;
    margin-top:3px;
    font-size:14px;
    line-height:1;
}

.apex-green { background:rgba(46,204,113,0.85); }
.apex-orange { background:rgba(243,156,43,0.85); }
.apex-red { background:rgba(231,76,60,0.85); }
.apex-nd { background:rgba(158,158,158,0.85); }

/* Text color variants for APEX index */
.apex-green-text { color:rgba(46,204,113,1); }
.apex-orange-text { color:rgba(243,156,43,1); }
.apex-red-text { color:rgba(231,76,60,1); }
.apex-nd-text { color:rgba(158,158,158,1); }

.apex-avg-block {
    border-radius: 16px;
    margin: 12px 0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

.apex-avg-block.apex-green,
.apex-avg-block.apex-orange,
.apex-avg-block.apex-red,
.apex-avg-block.apex-nd {
    color: #fff;
}

.user-task-article-summary-row {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:0;
}


.task-title .asana-task-code-link {
    color:inherit;
    font-weight:900;
    text-decoration:none;
}

.task-title .asana-task-code-link:hover {
    text-decoration:underline;
}

.task-info {
    margin-top:8px;
    color:var(--muted);
    font-size:12px;
    font-weight:800;
    line-height:1.35;
}

.task-summary-card {
    min-width:0;
    padding:12px 18px;
    background:var(--panel);
    color:var(--text);
    cursor:pointer;
    transition:background .16s ease;
}

.task-summary-card:hover {
    background:var(--panel-soft);
}

.task-summary-title {
    font-size:14px;
    font-weight:900;
    letter-spacing:.02em;
    line-height:1.3;
}

.task-accordion-item {
    border:1px solid var(--line);
    border-radius:8px;
    background:var(--panel);
    overflow:hidden;
    transition:border-color .16s ease, box-shadow .16s ease;
}

.task-accordion-item > summary {
    display:flex;
    align-items:center;
    padding:10px 14px;
    cursor:pointer;
    list-style:none;
    background:var(--panel-soft);
    border-radius:6px;
}

.task-accordion-item > summary::-webkit-details-marker {
    display:none;
}

.task-accordion-item > summary::after {
    content:"+";
    margin-left:auto;
    font-size:16px;
    font-weight:900;
    color:var(--muted);
}

.task-accordion-item[open] > summary::after {
    content:"-";
}

.task-accordion-item:hover {
    border-color:var(--theme-color);
    box-shadow:0 8px 20px rgba(23,32,51,.08), 0 0 0 2px var(--theme-soft);
}

.task-accordion-detail-content {
    display:none;
    padding:0 10px 10px;
}

.task-accordion-item[open] > .task-accordion-detail-content {
    display:block;
}

.task-results-container .task-accordion-detail-content {
    display:none;
}

.task-results-container .task-accordion-item[open] > .task-accordion-detail-content {
    display:block;
}

.task-results-container .pj-consorzio-dark .task-accordion-item {
    border-radius:6px;
}

.task-results-container .pj-consorzio-dark .task-accordion-item > summary {
    border-radius:4px;
}

.task-info b {
    color:var(--text);
}

.graphic-pj-consorzio-code b,
.graphic-pj-consorzio-code .asana-task-code-link {
    font-size:15px;
    font-weight:950;
    line-height:1.2;
}

.task-memberships {
    margin-top:10px;
}

.task-asana-details {
    border:1px solid var(--theme-line);
    border-radius:12px;
    background:var(--theme-soft);
    overflow:hidden;
}

.task-asana-details summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:34px;
    padding:8px 10px;
    color:var(--theme-text);
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
    list-style:none;
}

.task-asana-details summary::-webkit-details-marker {
    display:none;
}

.task-asana-details summary::after {
    content:"+";
    font-size:15px;
    line-height:1;
}

.task-asana-details[open] summary::after {
    content:"-";
}

.task-subtask-table {
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
}

.task-subtask-table .task-subtask-col-name {
    width:70%;
    padding:8px 10px;
    vertical-align:top;
    font-size:12px;
    word-break:break-word;
}

.task-subtask-table .task-subtask-col-link {
    width:30%;
    padding:8px 10px;
    vertical-align:top;
    text-align:right;
    font-size:11px;
}

.task-subtask-assigned {
    color:var(--theme-muted,#888);
    font-size:10px;
}

.graphic-task-team-actions-row {
    display:flex;
    gap:8px;
    align-items:stretch;
}

.graphic-task-team-actions-row > * {
    flex:1 1 50%;
    min-width:0;
}

.graphic-task-team-actions-row .user-task-action-btn {
    width:100%;
    min-height:44px;
}

.graphic-task-team-actions-row > form {
    align-self:stretch;
    display:flex;
    flex-direction:column;
}

.user-task-action-orange {
    background:var(--theme-accent-orange,#ff6b00);
    color:#fff;
}

.user-task-action-complete,
.user-task-action-primary-action {
    background:var(--theme-accent-green,#2e7d32);
    color:#fff;
}

.task-documents {
    margin-top:10px;
}

.task-documents .task-asana-details + .task-asana-details {
    margin-top:8px;
}

.task-documents-list {
    display:grid;
    gap:8px;
    padding:10px;
    border-top:1px solid var(--theme-line);
    border-radius:0 0 12px 12px;
    background:var(--theme-soft);
}

.task-document-row {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:10px;
    align-items:center;
    padding:8px;
    border:1px solid var(--theme-line);
    border-radius:10px;
    background:rgba(255,255,255,.66);
}

.task-document-row.is-extra-document {
    border-color:#ef4444;
    background:#fff1f2;
}

.task-document-row.is-extra-document .task-document-name,
.task-document-row.is-extra-document .task-document-warning {
    color:#b91c1c;
}

.task-document-warning {
    margin-bottom:3px;
    font-size:10px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.task-documents-show-all {
    width:100%;
    padding:9px 12px;
    border:1px solid #111827;
    border-radius:999px;
    background:#111827;
    color:#ffffff;
    cursor:pointer;
    font-size:11px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.task-documents-show-all:hover {
    background:#020617;
}

.task-document-info {
    min-width:0;
}

.task-document-name {
    overflow:hidden;
    color:var(--text);
    font-size:12px;
    font-weight:900;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.task-document-meta {
    overflow:hidden;
    margin-top:3px;
    color:var(--muted);
    font-size:11px;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.task-document-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
}

.task-document-view,
.task-document-download,
.task-document-delete,
.task-documents-download-all {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:7px 10px;
    border-radius:999px;
    border:1px solid var(--theme-color);
    background:var(--theme-color);
    color:var(--theme-button-text);
    font-size:10px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    text-decoration:none;
    cursor:pointer;
}

.task-document-view {
    background:var(--theme-soft);
    color:var(--theme-text);
}

.task-document-delete {
    background:#ffd6e0;
    color:#b00020;
    border-color:#f3a6b8;
}

.task-document-delete:hover {
    background:#ffc1d0;
    border-color:#b00020;
}

.task-document-view.is-disabled {
    opacity:.45;
    pointer-events:none;
}

.document-viewer-overlay {
    position:fixed;
    inset:0;
    z-index:12000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
    background:rgba(15,23,42,.62);
}

.document-viewer-overlay[hidden] {
    display:none;
}

.document-viewer-modal {
    position:relative;
    display:flex;
    flex-direction:column;
    width:min(1180px, 94vw);
    height:min(820px, 90vh);
    padding:54px 18px 18px;
    overflow:hidden;
    border:1px solid var(--theme-line);
    border-radius:20px;
    background:var(--panel);
}

.document-viewer-title {
    position:absolute;
    top:18px;
    left:22px;
    right:72px;
    overflow:hidden;
    color:var(--text);
    font-size:13px;
    font-weight:900;
    letter-spacing:.06em;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
}

.document-viewer-close {
    position:absolute;
    top:12px;
    right:14px;
    width:36px;
    height:36px;
    border:1px solid var(--theme-color);
    border-radius:999px;
    background:var(--theme-color);
    color:var(--theme-button-text);
    font-size:24px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
}

.document-viewer-frame {
    flex:1 1 auto;
    min-height:0;
    width:100%;
    height:auto;
    border:1px solid var(--line);
    border-radius:14px;
    background:#ffffff;
}

.quality-pdf-editor-overlay {
    position:fixed;
    inset:0;
    z-index:10000;
    display:grid;
    background:rgba(7, 10, 18, .92);
}

.quality-pdf-editor-overlay[hidden] {
    display:none;
}

.quality-pdf-editor-shell {
    display:grid;
    grid-template-rows:auto auto auto auto minmax(0, 1fr);
    min-height:100vh;
    padding:18px;
    gap:12px;
}

.quality-pdf-editor-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:14px;
    background:rgba(255,255,255,.08);
}

.quality-pdf-editor-title {
    max-width:min(760px, 58vw);
    overflow:hidden;
    color:#ffffff;
    font-size:14px;
    font-weight:900;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
}

.quality-pdf-editor-actions {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:10px;
}

.quality-pdf-zoom-controls {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    background:rgba(255,255,255,.08);
}

.quality-pdf-zoom-label {
    min-width:44px;
    color:#ffffff;
    font-size:11px;
    font-weight:900;
    text-align:center;
}

.quality-pdf-zoom-btn {
    min-height:30px;
    padding:7px 8px;
}

.quality-pdf-tool-btn {
    min-height:34px;
    padding:8px 10px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:10px;
    background:rgba(255,255,255,.1);
    color:#ffffff;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    cursor:pointer;
}

.quality-pdf-tool-btn.is-active {
    border-color:#ff5c68;
    background:#e51f32;
    color:#ffffff;
}

.quality-pdf-editor-help {
    color:rgba(255,255,255,.78);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
}

.quality-pdf-editor-pages {
    overflow:auto;
    display:grid;
    justify-items:center;
    gap:18px;
    min-height:0;
    padding:8px 0 24px;
}

.quality-pdf-editor-page {
    position:relative;
    max-width:none;
    background:#ffffff;
    box-shadow:0 18px 54px rgba(0,0,0,.32);
}

.quality-pdf-editor-page canvas {
    display:block;
}

.quality-pdf-annotation-layer,
.quality-pdf-shape {
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
}

.quality-pdf-line-marker {
    position:absolute;
    z-index:3;
    width:14px;
    height:14px;
    border:3px solid #e51f32;
    border-radius:999px;
    background:#ffffff;
    transform:translate(-50%, -50%);
    pointer-events:none;
}

.quality-pdf-note {
    position:absolute;
    z-index:2;
    display:grid;
    gap:4px;
    width:190px;
    min-height:92px;
    padding:24px 8px 8px;
    border:1px solid #7c650c;
    border-radius:8px;
    background:#fff38c;
    box-shadow:0 10px 24px rgba(0,0,0,.2);
    pointer-events:auto;
}

.quality-pdf-note::before {
    content:"";
    position:absolute;
    top:7px;
    left:8px;
    right:34px;
    height:10px;
    border-radius:999px;
    background:rgba(42,34,6,.24);
    cursor:grab;
}

.quality-pdf-note:active::before {
    cursor:grabbing;
}

.quality-pdf-note.is-collapsed {
    place-items:center;
    width:30px;
    min-height:38px;
    height:30px;
    padding:0;
    border-radius:999px;
    cursor:pointer;
}

.quality-pdf-note.is-collapsed::before {
    display:none;
}

.quality-pdf-note-badge {
    display:none;
    color:#2a2206;
    font-size:12px;
    font-weight:900;
    line-height:1;
}

.quality-pdf-note.is-collapsed .quality-pdf-note-badge {
    display:block;
}

.quality-pdf-note.is-collapsed textarea,
.quality-pdf-note.is-collapsed button {
    display:none;
}

.quality-pdf-callout-note {
    width:210px;
    border:2px solid #e51f32;
    background:#ffe1e5;
}

.quality-pdf-line-note,
.quality-pdf-x-note {
    width:210px;
    border:2px solid #e51f32;
    background:#ffffff;
}

.quality-pdf-x-handle {
    position:absolute;
    z-index:2;
    border:1px dashed rgba(229,31,50,.58);
    background:rgba(229,31,50,.05);
    cursor:move;
    pointer-events:auto;
    touch-action:none;
}

.quality-pdf-resize-handle {
    position:absolute;
    right:-10px;
    bottom:-10px;
    width:24px;
    height:24px;
    border:2px solid #ffffff;
    border-radius:999px;
    background:#e51f32;
    box-shadow:0 2px 10px rgba(0,0,0,.34);
    cursor:nwse-resize;
}

.quality-pdf-point-handle {
    position:absolute;
    z-index:3;
    width:18px;
    height:18px;
    border:3px solid #ffffff;
    border-radius:999px;
    background:#e51f32;
    box-shadow:0 2px 10px rgba(0,0,0,.28);
    cursor:move;
    pointer-events:auto;
    touch-action:none;
    transform:translate(-50%, -50%);
}

.quality-pdf-line-end {
    background:#8a0610;
}

.quality-pdf-line-move {
    width:22px;
    height:22px;
    border-color:#e51f32;
    background:#ffffff;
}

.quality-pdf-callout-anchor {
    width:20px;
    height:20px;
}

.quality-pdf-callout-note .quality-pdf-note-badge {
    color:#8a0610;
}

.quality-pdf-line-note .quality-pdf-note-badge,
.quality-pdf-x-note .quality-pdf-note-badge {
    color:#8a0610;
}

.quality-pdf-note button {
    position:absolute;
    top:4px;
    right:4px;
    width:20px;
    height:20px;
    border:0;
    border-radius:999px;
    background:#2a2206;
    color:#ffffff;
    font-size:12px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
}

.quality-pdf-note textarea {
    resize:vertical;
    min-height:58px;
    border:0;
    background:transparent;
    color:#1d1601;
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    line-height:1.35;
    outline:0;
}

.task-documents-download-all {
    margin:0 10px 10px;
    background:var(--theme-color);
    color:var(--theme-button-text);
}

.task-documents-download-all.is-disabled {
    cursor:not-allowed;
    opacity:.55;
    pointer-events:none;
}

.task-documents-loading,
.task-documents-empty {
    padding:10px;
    color:var(--muted);
    font-size:12px;
    font-weight:800;
}

.task-membership-list {
    display:grid;
    gap:6px;
    padding:8px 10px 10px;
    border-top:1px solid var(--theme-line);
    background:var(--theme-soft);
}

.task-membership-row {
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
    gap:8px;
    align-items:center;
    padding:6px 8px;
    border:1px solid var(--theme-line);
    border-radius:10px;
    background:rgba(255,255,255,.66);
}

.task-membership-row-section-only {
    grid-template-columns:1fr;
}

.task-membership-row b,
.task-membership-row span {
    overflow:hidden;
    color:var(--text);
    text-overflow:ellipsis;
    white-space:nowrap;
}

.task-membership-row span {
    color:var(--muted);
}

.task-membership-row.task-membership-row-columns {
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) minmax(0, auto);
    gap:8px;
}

.task-membership-row.task-membership-row-section-only.task-membership-row-columns {
    grid-template-columns:minmax(0, 1fr) minmax(0, auto);
}

.task-membership-col {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--text);
}

.task-membership-col.task-membership-project {
    font-weight:700;
}

.task-membership-col.task-membership-section {
    color:var(--muted);
    text-transform:uppercase;
}

.task-membership-col.task-membership-asana-link {
    display:inline-flex;
    justify-content:flex-end;
}

.user-task-asana-link {
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 10px;
    border-radius:8px;
    background:#3b82f6;
    color:#fff;
    text-decoration:none;
    font-size:12px;
    white-space:nowrap;
}

.user-task-asana-link:hover {
    background:#2563eb;
}

.user-task-action-details {
    border-color:#f1b8b5;
    background:#ffeded;
}

.user-task-action-details summary {
    color:#8b2721;
}

.user-task-actions {
    display:block;
    margin-top:10px;
}

.user-task-action-details {
    width:100%;
}

.user-task-action-content {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    padding:12px;
    border-top:1px solid rgba(255,255,255,.14);
    background:#f8fafc;
    border-radius:0 0 12px 12px;
}

.user-task-action-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:8px 12px;
    border:0;
    border-radius:999px;
    color:#ffffff;
    font-family:inherit;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
}

.user-task-action-btn:disabled {
    cursor:not-allowed;
    opacity:.45;
    filter:grayscale(.25);
}

.user-task-action-btn[hidden],
.user-task-upload-form[hidden] {
    display:none !important;
}

.user-task-upload-form {
    display:grid;
    gap:10px;
    width:100%;
    margin:0;
}

.user-task-primary-action-row {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
    width:100%;
}

.user-task-primary-action-row .user-task-upload-form {
    min-width:0;
}

.quality-check-action-row {
    grid-column:1 / -1;
}

.quality-fast-method-btn {
    background:#d64545;
}

.quality-standard-method-btn {
    background:#18202f;
}

.quality-method-disclaimer {
    color:#6f7787;
    font-size:12px;
    font-weight:500;
    line-height:1.35;
    text-transform:none;
}

.quality-method-disclaimer p {
    margin:0 0 4px;
}

.quality-method-disclaimer p:last-child {
    margin-bottom:0;
}

.quality-method-fast {
    color:#d64545;
    font-weight:600;
}

.quality-method-standard {
    color:#18202f;
    font-weight:600;
}

.user-task-primary-action-row:has(.upload-entry-panel:not([hidden])) {
    grid-template-columns:minmax(0, 1fr);
}

.user-task-approval-form {
    display:grid;
    gap:10px;
    width:100%;
    margin:0;
}

.user-task-print-request-form {
    display:grid;
    grid-column:1 / -1;
    gap:12px;
    width:100%;
    margin:0;
}

.user-task-info-action-form {
    display:grid;
    grid-column:1 / -1;
    gap:12px;
    width:100%;
    margin:0;
}

.user-task-action-note {
    padding:12px;
    border-radius:14px;
    background:#ffffff;
    color:#18202f;
    font-size:12px;
    font-weight:800;
    line-height:1.45;
    text-transform:uppercase;
}

.user-task-action-note-strong {
    background:#18202f;
    color:#ffffff;
}

.user-task-select-label {
    display:grid;
    gap:8px;
    width:100%;
    color:#18202f;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.user-task-select-input {
    width:100%;
    min-height:42px;
    padding:10px 12px;
    border:1px solid #d5dce8;
    border-radius:14px;
    background:#ffffff;
    color:#18202f;
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
}

.user-task-radio-group {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
    width:100%;
}

.user-task-radio-option {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:48px;
    padding:12px 14px;
    border:1px solid var(--theme-line);
    border-radius:16px;
    background:#ffffff;
    color:#18202f;
    cursor:pointer;
}

.user-task-radio-option input {
    width:18px;
    height:18px;
    margin:0;
    accent-color:var(--theme-color);
    flex:0 0 auto;
}

.user-task-radio-option span {
    font-size:11px;
    font-weight:900;
    letter-spacing:.04em;
    line-height:1.25;
    text-transform:uppercase;
}

.user-task-radio-option:has(input:checked) {
    border-color:var(--theme-color);
    background:var(--theme-soft);
    color:var(--theme-text);
}

.user-task-approval-form .user-task-action-btn {
    width:100%;
}

.user-task-approval-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    width:100%;
}

.upload-entry-panel {
    display:grid;
    gap:10px;
}

.upload-entry-panel[hidden] {
    display:none;
}

.link-entry-panel {
    display:grid;
    gap:16px;
}

.link-entry-panel[hidden] {
    display:none;
}

.pending-upload-file-list {
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-top:8px;
}

.pending-upload-file-item {
    font-size:0.85em;
    color:#555;
    padding:4px 8px;
    background:#f8f9fa;
    border-radius:4px;
    word-break:break-all;
}

.user-task-primary-action {
    width:100%;
}

.user-task-link-form {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:8px;
    grid-column:1 / -1;
    width:100%;
    margin:2px 0 0;
}

.user-task-link-form[hidden] {
    display:none;
}

.user-task-note-label {
    display:grid;
    gap:6px;
    width:100%;
    color:#ffffff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.user-task-note-label span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    min-height:30px;
    padding:7px 10px;
    border-radius:999px;
    background:#18202f;
    color:#ffffff;
}

.user-task-note-input {
    width:100%;
    min-height:76px;
    resize:vertical;
    padding:9px 10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#ffffff;
    color:var(--text);
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    line-height:1.35;
}

.user-task-link-note {
    grid-column:1 / -1;
    color:#18202f;
}

.user-task-link-label {
    display:grid;
    gap:6px;
    color:#18202f;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.user-task-link-input {
    width:100%;
    min-height:36px;
    padding:8px 10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#ffffff;
    color:var(--text);
    font-family:inherit;
    font-size:12px;
    font-weight:800;
}

.user-task-link-btn {
    align-self:end;
    min-height:36px;
    padding:8px 12px;
    border:0;
    border-radius:999px;
    background:#18202f;
    color:#ffffff;
    font-family:inherit;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
}

.user-task-upload-input {
    display:none;
}

.user-task-action-upload {
    background:#22a6c8;
}

.user-task-select-file {
    width:max-content;
}

.user-task-action-share {
    background:#18202f;
}

.user-task-action-btn.is-back-action {
    background:#d64545;
}

.user-task-action-approve {
    background:#2f9e44;
}

.user-task-action-reject {
    background:#d64545;
}

.user-task-action-placeholder {
    width:100%;
    background:#8b95a5;
    cursor:not-allowed;
    opacity:.85;
}

.user-task-action-download-latest {
    width:100%;
    background:#18202f;
    color:#ffffff;
    text-decoration:none;
}

.user-task-action-download-latest:hover {
    text-decoration:none;
}

.user-task-decision-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    width:100%;
}

.user-task-decision-form {
    display:block;
    width:100%;
    margin:0;
}

.user-task-decision-form .user-task-action-btn {
    width:100%;
}

.user-task-action-consorzio {
    width:100%;
    background:#f97316;
}

.user-task-action-client {
    width:100%;
    background:#08a9c8;
}

/* Testo d'aiuto della fase STAMPA CODICE (PJ CONSORZIO).
   Centrato e con la stessa scala tipografica delle altre strip di stato
   del dashboard (letter-spacing .05em, maiuscoletto, colore chiaro). */
.pj-consorzio-supplier-hint {
    width:100%;
    margin:0 0 8px;
    color:#c9d6ea;
    font-size:12px;
    font-weight:900;
    letter-spacing:.05em;
    line-height:1.35;
    text-align:center;
    text-transform:uppercase;
}

.latest-download-file {
    overflow:hidden;
    color:#ffffff;
    font-size:13px;
    font-weight:900;
    letter-spacing:.04em;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap;
}

.latest-download-meta {
    overflow:hidden;
    margin-top:-4px;
    color:rgba(255,255,255,.68);
    font-size:11px;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.latest-download-complete-form {
    display:grid;
    gap:10px;
    margin-top:2px;
}

.upload-complete-message {
    margin-top:12px;
    padding:12px;
    border-radius:14px;
    background:#18202f;
    color:#7ee2a8;
    font-size:12px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.upload-complete-message.upload-complete-approved {
    background:#e8f7ef;
    color:#176339;
    border:1px solid #b9e6cd;
}

.upload-complete-message.upload-complete-rejected {
    background:#ffeded;
    color:#8b2721;
    border:1px solid #f1b8b5;
}

.pending-upload-viewer {
    display:grid;
    gap:12px;
    width:100%;
    margin-top:12px;
    padding:16px;
    border-radius:16px;
    background:#18202f;
    color:#ffffff;
}

.pending-link-viewer {
    display:grid;
    grid-column:1 / -1;
    gap:8px;
    width:100%;
    margin-top:6px;
    padding:12px;
    border-radius:14px;
    background:#18202f;
    color:#ffffff;
}

.pending-link-viewer[hidden] {
    display:none;
}

.pending-upload-viewer[hidden] {
    display:none;
}

.sticker-ready-viewer-actions {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:center;
    justify-content:stretch;
    gap:12px;
    width:100%;
    margin-top:4px;
}

.user-task-cs-sticker-actions {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
}

.user-task-cs-sticker-actions > .user-task-approval-form {
    grid-column:1;
    grid-row:2;
    margin:0;
    display:contents;
}

.user-task-cs-sticker-actions > .user-task-approval-form button,
.user-task-cs-sticker-actions .sticker-ready-trigger {
    min-height:34px;
    height:34px;
    box-sizing:border-box;
    align-self:start;
}

.user-task-cs-sticker-actions > .user-task-approval-form button {
    grid-column:1;
    grid-row:2;
}

.user-task-cs-sticker-actions > .user-task-approval-form .user-task-disclaimer {
    grid-column:1;
    grid-row:3;
    margin:0;
}

.user-task-cs-sticker-actions > .user-task-download-confirm {
    display:contents;
}

.user-task-cs-sticker-actions .latest-download-viewer {
    grid-column:1 / -1;
    grid-row:1;
    width:100%;
    margin:0;
}

.user-task-cs-sticker-actions .sticker-ready-trigger {
    display:inline-flex;
    grid-column:2;
    grid-row:2;
    width:100%;
    margin:0;
}

.user-task-cs-sticker-actions .sticker-download-disclaimer {
    grid-column:2;
    grid-row:3;
    margin:0;
}

.user-task-cs-sticker-actions .sticker-ready-viewer-actions {
    display:none;
}

.user-task-cs-sticker-actions .sticker-ready-viewer-actions.is-download-complete {
    display:block;
    grid-column:1 / -1;
    margin-top:4px;
}

.user-task-cs-sticker-actions .sticker-ready-viewer-actions.is-download-complete > .upload-confirm-btn {
    display:none;
}

.user-task-cs-sticker-actions .sticker-ready-viewer-actions.is-download-complete .latest-download-complete-form {
    display:block;
    width:100%;
}

.sticker-ready-viewer-actions > .upload-confirm-btn,
.sticker-ready-viewer-actions > .latest-download-complete-form,
.sticker-ready-viewer-actions .latest-download-complete-form button {
    width:100%;
    min-width:0;
}

.user-task-cs-sticker-actions .user-task-disclaimer {
    display:grid;
    gap:3px;
    margin-top:4px;
    font-size:11px;
    line-height:1.25;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}


.sticker-ready-viewer-actions .latest-download-complete-form {
    margin:0;
}

.pending-upload-preview {
    overflow:auto;
    border-radius:12px;
    background:rgba(255,255,255,.08);
    min-height:560px;
}

.pending-upload-preview img,
.pending-upload-preview iframe {
    display:block;
    width:100%;
    max-height:680px;
    border:0;
    object-fit:contain;
}

.pending-upload-preview iframe {
    height:680px;
    min-height:680px;
}

.pending-upload-note {
    padding:14px;
    color:rgba(255,255,255,.72);
    font-size:12px;
    font-weight:800;
}

.upload-viewer-status {
    color:#7ee2a8;
    font-size:12px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.upload-viewer-file {
    overflow:hidden;
    color:#ffffff;
    font-size:13px;
    font-weight:900;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.upload-viewer-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:8px 10px;
    border-radius:10px;
    background:rgba(255,255,255,.12);
    color:#ffffff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    text-decoration:none;
}

.upload-viewer-link-disabled {
    color:rgba(255,255,255,.72);
}

.upload-confirm-btn {
    min-height:34px;
    border:0;
    border-radius:999px;
    background:#7ee2a8;
    color:#102018;
    font-family:inherit;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
}

.upload-cancel-btn {
    min-height:34px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:#ffffff;
    font-family:inherit;
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
}

.task-description {
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    white-space:normal;
}

.task-result-card.task-muted {
    opacity:.14;
    pointer-events:none;
}

.task-result-card.task-highlight {
    opacity:1;
}

.upload-focus-card {
    outline:3px solid var(--theme-line);
    outline-offset:4px;
}

.upload-focus-card.is-completed {
    outline-color:#7ee2a8;
}

.article-overlay {
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:28px;
    background:rgba(15,23,42,.38);
}

.article-overlay.active {
    display:flex;
}

.article-modal {
    width:min(980px, 94vw);
    max-height:88vh;
    overflow:auto;
    padding:28px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:18px;
    color:var(--text);
}

.article-modal h2 {
    margin:0;
    color:var(--text);
    font-size:22px;
    font-weight:900;
}

.close-modal {
    float:right;
    width:36px;
    height:36px;
    border:1px solid var(--theme-color);
    border-radius:999px;
    background:var(--theme-color);
    color:var(--theme-button-text);
    font-size:22px;
    font-weight:900;
    cursor:pointer;
}

.modal-task-container {
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    margin-top:18px;
}

.modal-task-container > .task-card,
.modal-task-container > .task-card-interno,
.modal-task-container > .task-card-esterno,
.modal-task-container > .task-card-completed,
.modal-task-container > .task-card-hybrido {
    width:100%;
    grid-column:1 / -1;
}

.sviluppo-grafico,
.status-glass {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:104px;
    min-height:28px;
    padding:5px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
    white-space:nowrap;
}

.sviluppo-grafico.interno {
    color:#ffffff;
    background:var(--orange);
    border:1px solid var(--orange);
}

.sviluppo-grafico.esterno {
    color:#07343d;
    background:var(--aqua);
    border:1px solid var(--aqua);
}

.sviluppo-grafico.dettagli {
    color:var(--theme-button-text);
    background:var(--theme-color);
    border:1px solid var(--theme-color);
}

.filter-reset-btn.project-card-interno,
.filter-reset-btn.project-card-esterno,
.filter-reset-btn.project-card-default,
.download-all-footer-action .sviluppo-grafico.dettagli {
    color:var(--theme-button-text);
    background:var(--theme-color);
    border-color:var(--theme-color);
}

.download-all-disabled {
    cursor:not-allowed;
    opacity:.58;
    pointer-events:none;
}

.mp-heart-cascade {
    position:fixed;
    z-index:9999;
    width:1px;
    height:1px;
    pointer-events:none;
}

.mp-heart {
    position:absolute;
    left:0;
    top:0;
    color:#ff5a8a;
    font-size:var(--heart-size);
    font-weight:900;
    text-shadow:0 10px 22px rgba(255,90,138,.34);
    animation:mp-heart-fall 1s ease-out forwards;
    animation-delay:var(--heart-delay);
}

@keyframes mp-heart-fall {
    0% {
        opacity:0;
        transform:translate(-50%, -10px) scale(.72) rotate(0deg);
    }

    18% {
        opacity:1;
    }

    100% {
        opacity:0;
        transform:translate(calc(-50% + var(--heart-x)), 220px) scale(1.1) rotate(22deg);
    }
}

@media(max-width:760px) {
    body {
        padding:14px;
    }

    .unified-dashboard-card,
    .articles-container,
    .modal-task-container {
        grid-template-columns:1fr;
    }

    .detail-kpi-block,
    .detail-status-block {
        padding-left:0;
        padding-top:18px;
        border-left:0;
        border-top:1px solid var(--line);
    }

    .unified-dashboard-card {
        padding:18px;
    }

    .brand-icon {
        width:60px;
        height:60px;
    }

    .metric-row {
        grid-template-columns:1fr;
    }

    .metric-value {
        text-align:left;
    }
}
