/* ============================================================
   CaseHub — design system
   Identità: navy / carta / arancio / lime · DM Sans + Space Grotesk
   ============================================================ */

/* ---- 1. Token ---- */
:root{
    /* colori: ruoli */
    --ink:#132642;--ink-soft:#536277;--paper:#f7f4ee;--white:#fffdfa;--line:#ded8ce;
    --orange:#e4563c;--orange-deep:#c9442e;--mint:#ddf1e8;--lime:#b8e56a;--blue:#dbe9f6;
    --critical:#b8242f;--high:#d85a29;--medium:#8a6410;--low:#278a65;
    --focus:#e4563c;
    /* spaziature */
    --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
    /* raggi */
    --r-s:6px;--r-m:10px;--r-l:14px;
    /* ombre */
    --shadow-1:0 1px 2px #1326420f;
    --shadow-2:0 10px 30px #13264214;
    --shadow-3:0 18px 50px #13264226;
    /* layout */
    --topbar-h:56px;
    --font-body:"DM Sans",sans-serif;--font-display:"Space Grotesk",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5}

/* accessibilità */
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---- 2. Shell ---- */
.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--ink);color:#f9f6f1;display:flex;flex-direction:column;padding:28px 18px 18px;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none;margin:0 8px 36px;font-family:var(--font-display);font-size:19px;letter-spacing:.08em}
.brand strong{color:var(--lime)}
.brand small{font:500 10px var(--font-body);display:block;letter-spacing:.09em;color:#aebaca;margin-top:2px;text-transform:uppercase}
.brand-mark{height:30px;width:30px;background:var(--orange);display:grid;place-items:center;color:white;font-weight:700;border-radius:7px;transform:skew(-8deg);flex:0 0 auto}
.nav-divider{border:0;border-top:1px solid #2b4260;margin:10px 12px}
.primary-nav{display:grid;gap:4px}
.primary-nav a{display:flex;align-items:center;gap:13px;color:#b9c4d1;padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;border-left:3px solid transparent}
.primary-nav a svg{width:18px;fill:currentColor;flex:0 0 auto}
.primary-nav a:hover{background:#213651;color:white}
.primary-nav a.active{background:#29425e;color:#fff;border-left-color:var(--lime)}
.sidebar-spacer{flex:1}
.workspace-card{margin:20px 4px 16px;padding:13px 14px;background:#1d334e;border:1px solid #2c4867;border-radius:var(--r-m)}
.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:700;text-transform:uppercase;color:var(--ink-soft);margin:0 0 5px}
.sidebar .eyebrow{color:#a9bad0}
.workspace-card strong{display:block;font-size:13px}
.workspace-card p{font-size:11px;color:#b9c4d1;margin:4px 0 8px}
.online-dot{color:#c9f27d;font-size:11px;font-weight:700}
.online-dot:before{content:"";display:inline-block;width:6px;height:6px;background:#c9f27d;border-radius:50%;margin-right:5px}
.user-card{display:flex;align-items:center;gap:9px;border-top:1px solid #2b4260;padding:16px 5px 0}
.avatar{display:grid;place-items:center;background:#f0c969;color:#21324e;width:29px;height:29px;border-radius:50%;font-size:11px;font-weight:700}
.user-card strong,.user-card small{display:block;font-size:11px}
.user-card small{color:#9cacc0}
.user-card button{margin-left:auto;background:transparent;border:0;color:#aab8c8;font-weight:700;letter-spacing:1px;cursor:pointer}
.user-card form{margin-left:auto}

/* ---- 3. Top bar (sticky) ---- */
.topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:var(--topbar-h);margin:0 -58px;padding:8px 58px;background:#f7f4eee6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #e5ded3}
.topbar-context{min-width:0}
.topbar-context .eyebrow{margin:0 0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-context strong{display:block;font:600 15px/1.2 var(--font-display);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-menu{position:relative;flex:0 0 auto}
.user-menu summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:5px 10px 5px 5px;box-shadow:var(--shadow-1)}
.user-menu summary::-webkit-details-marker{display:none}
.user-menu[open] summary{border-color:#b9c0c9}
.topbar-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#285784;font:700 11px var(--font-display);overflow:hidden;flex:0 0 auto}
.topbar-avatar img{width:100%;height:100%;object-fit:cover}
.user-menu-name{font-size:12px;font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:245px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:12px;box-shadow:var(--shadow-3);display:grid;gap:10px}
.user-menu-panel a,.user-menu-panel button{width:100%;min-height:38px;border:0;border-radius:7px;background:#f6f4ef;color:var(--ink);display:flex;align-items:center;justify-content:flex-start;padding:0 11px;font:700 12px var(--font-body);text-decoration:none;cursor:pointer}
.user-menu-panel a:hover,.user-menu-panel button:hover{background:#efebe2}
.user-menu-panel label{font-size:11px}
.user-menu-panel select{width:100%;height:38px;margin-top:5px}

.main-content{padding:0 58px 50px;max-width:1600px;width:100%;margin:0 auto}
.main-content>.topbar~*{--content-started:1}
.page-intro,.case-header-grid{display:flex;gap:24px;justify-content:space-between;align-items:flex-start}
.page-intro{margin:34px 0 32px}
.page-intro.compact{margin-bottom:26px}
.page-intro h1,.case-header h1{font:600 clamp(28px,2.6vw,40px)/1.06 var(--font-display);letter-spacing:-.045em;margin:0;color:#10233c}
.lede{margin:10px 0 0;color:var(--ink-soft);font-size:15px;max-width:590px}

/* ---- 4. Bottoni ---- */
.button{border:0;border-radius:7px;min-height:42px;padding:0 16px;font:700 13px var(--font-body);display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;cursor:pointer;transition:.2s ease;white-space:nowrap}
.button-primary{background:var(--orange);color:white;box-shadow:0 4px 0 var(--orange-deep)}
.button-primary:hover{background:#ef654a;transform:translateY(-1px);box-shadow:0 5px 0 var(--orange-deep)}
.button-primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--orange-deep)}
.button:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}
.button-primary span{font-size:19px;line-height:0}
.button-quiet{background:var(--white);color:var(--ink);border:1px solid var(--line)}
.button-quiet:hover{border-color:#9dabba;background:#fff}
.button-danger{background:#fff0ec;color:#913822;border:1px solid #f4c7bc}
.button-danger:hover{background:#ffe5dd;border-color:#e7a998}

/* ---- 5. Dashboard ---- */
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}
.metric-card{border-radius:var(--r-m);padding:19px;min-height:132px;position:relative;overflow:hidden;border:1px solid transparent;display:block;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease}
a.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.metric-card.navy{background:var(--ink);color:white}
.metric-card.orange{background:var(--orange);color:white}
.metric-card.paper{background:var(--white);border-color:var(--line)}
.metric-label{font-size:12px;font-weight:700;color:inherit;opacity:.78;display:block}
.metric-card strong{display:block;font:600 40px/1 var(--font-display);letter-spacing:-.06em;margin:12px 0 5px}
.metric-card small{font-size:11px;color:inherit;opacity:.72}
.metric-icon{position:absolute;right:16px;bottom:10px;font:600 45px/1 var(--font-display);opacity:.13;font-style:normal}
.metric-arrow{position:absolute;right:14px;top:14px;font-size:16px;opacity:0;transform:translateX(-4px);transition:.18s ease}
a.metric-card:hover .metric-arrow{opacity:.85;transform:none}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:18px}
.panel,.attention-panel,.table-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m)}
.panel-heading,.attention-heading{display:flex;justify-content:space-between;align-items:center;padding:21px 22px 16px}
.panel h2,.attention-panel h2,.detail-heading h2{font:600 21px/1.15 var(--font-display);letter-spacing:-.035em;margin:0}
.text-link{color:var(--orange-deep);font-size:12px;font-weight:700;text-decoration:none}
.text-link:hover{text-decoration:underline}
.text-link span{font-size:17px;margin-left:3px}
.case-list{padding:0 11px 10px}
.case-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto 8px;gap:13px;align-items:center;padding:14px 10px;border-top:1px solid #eee9e0;text-decoration:none;color:inherit;transition:.15s;border-radius:7px}
.case-row:hover{background:#faf7f1}
.case-main{min-width:0}
.case-main strong,.table-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.case-main small,.case-row small,td small{display:block;color:var(--ink-soft);font-size:11px;margin-top:2px}
.case-type{font-size:11px;letter-spacing:.04em;font-weight:700;border-radius:4px;padding:3px 6px;background:#dcecfb;color:#285784;white-space:nowrap}
.case-type.ncr{background:#fde8db;color:#ab4a27}
.case-type.market_information{background:#dcecfb;color:#285784}
.case-type.signaling{background:#e7f4d5;color:#4e7423}
.severity{font-size:11px;font-weight:700;white-space:nowrap}
.severity:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:currentColor;vertical-align:1px}
.severity.critical{color:var(--critical)}
.severity.high{color:var(--high)}
.severity.medium{color:var(--medium)}
.severity.low{color:var(--low)}
.status-dot{height:8px;width:8px;border-radius:50%;background:#aab6c2}
.status-dot.hq_analysis,.status-dot.submitted{background:var(--orange);box-shadow:0 0 0 4px #fbe2da}
.status-dot.waiting_italy,.status-dot.verification{background:#e4b942}
.status-dot.action_plan{background:#4a9a79}
.attention-panel{padding:21px;background:#eef4ef;border-color:#d7e2d6}
.attention-heading{padding:0 0 15px;justify-content:flex-start}
.signal-ring{width:30px;height:30px;border-radius:50%;border:8px solid #b8e56a;display:block;margin-right:10px;box-shadow:0 0 0 5px #d9efcc;flex:0 0 auto}
.attention-item{display:block;text-decoration:none;color:inherit;padding:13px 0;border-top:1px solid #d4e0d3}
.attention-item strong{display:block;font-size:13px;margin-top:3px}
.attention-item p{font-size:11px;color:#536b61;margin:2px 0}
.attention-item small{font-size:11px;font-weight:700;color:#376b54}
.due-badge{display:inline-flex;align-items:center;margin-top:6px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#e3eee8;color:#327256}
.due-badge.overdue{background:#fbe0e2;color:var(--critical)}
.due-badge.soon{background:#fff2cf;color:#87670f}
.process-strip{margin-top:18px;padding:18px 22px;background:var(--blue);border-radius:var(--r-m);display:flex;justify-content:space-between;align-items:center;gap:20px}
.process-strip h2{font:600 18px/1.2 var(--font-display);letter-spacing:-.035em;margin:0;max-width:390px}
.process-strip ol{list-style:none;display:flex;padding:0;margin:0;gap:22px}
.process-strip li{font-weight:700;font-size:12px;display:grid;gap:3px}
.process-strip li span{font:600 18px/1 var(--font-display);color:#55799c}

/* ---- 6. Filtri e chip ---- */
.filter-bar{background:var(--white);border:1px solid var(--line);padding:12px;display:grid;grid-template-columns:minmax(210px,1fr) repeat(auto-fit,minmax(145px,auto));gap:9px;border-radius:var(--r-m);margin-bottom:10px}
.search-field{display:flex;align-items:center;border:1px solid #cfd6dc;border-radius:var(--r-s);padding:0 10px;background:#fff}
.search-field svg{width:17px;fill:none;stroke:var(--ink-soft);stroke-width:2;flex:0 0 auto}
.search-field input{border:0;padding-left:8px;box-shadow:none}
.search-field input:focus{box-shadow:none;border:0}
.search-field:focus-within{border-color:#6e90af;box-shadow:0 0 0 3px var(--blue)}
.filter-bar select,.filter-bar input{width:100%;height:40px;background:white;font:13px var(--font-body);outline:none}
.filter-bar select{border:1px solid #cfd6dc;border-radius:var(--r-s);padding:0 10px}
.filter-bar input[type=date]{height:40px}
.filter-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 2px 14px}
.filter-chips-label{font-size:11px;font-weight:700;color:var(--ink-soft);letter-spacing:.05em;text-transform:uppercase}
.filter-chip{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#fff;border-radius:999px;padding:5px 6px 5px 11px;font-size:12px;font-weight:600}
.filter-chip a{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#31517a;color:#d7e2f0;text-decoration:none;font-size:12px;line-height:1}
.filter-chip a:hover{background:var(--orange);color:#fff}
.filter-clear{font-size:12px;font-weight:700;color:var(--orange-deep);text-decoration:none;margin-left:2px}
.filter-clear:hover{text-decoration:underline}

/* ---- 7. Tabella registro ---- */
.table-panel{overflow:hidden}
.table-meta{display:flex;justify-content:space-between;padding:14px 20px;background:#fbf9f5;border-bottom:1px solid var(--line);font-size:11px;color:var(--ink-soft)}
.export-toolbar{align-items:center;gap:16px}
.export-toolbar-actions{display:flex;align-items:center;gap:12px}
.export-toolbar-actions .button{min-height:34px;padding:0 13px;font-size:11px}
.selection-column{width:42px;padding-left:14px;padding-right:4px;text-align:center}
.selection-column input{width:17px;height:17px;accent-color:var(--orange);cursor:pointer}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:12px 16px;color:var(--ink-soft);font-size:11px;letter-spacing:.07em;text-transform:uppercase;background:var(--white)}
.responsive-table th{position:sticky;top:var(--topbar-h);z-index:5;box-shadow:inset 0 -1px 0 var(--line)}
td{border-top:1px solid #eee9e0;padding:15px 16px;vertical-align:middle;font-size:12px}
td .case-type{display:inline-block;margin-bottom:7px}
.table-title{color:var(--ink);text-decoration:none;max-width:330px;font-weight:600}
.table-title:hover{color:var(--orange-deep)}
td strong{font-size:12px}
tbody tr[data-href]{cursor:pointer;transition:background .12s ease}
tbody tr[data-href]:hover{background:#faf7f1}
.sort-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.sort-link:hover{color:var(--orange-deep)}
.sort-link.is-active{color:var(--ink)}
.sort-link .sort-arrow{font-size:12px;color:var(--orange-deep)}
.status-label{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#edf0f2;color:#536273;font-size:11px;font-weight:700;white-space:nowrap}
.status-label:before{content:"";width:6px;height:6px;border-radius:50%;background:#8896a5}
.status-label.hq_analysis,.status-label.submitted{background:#fce5db;color:#af4a29}
.status-label.hq_analysis:before,.status-label.submitted:before{background:var(--orange)}
.status-label.waiting_italy,.status-label.verification{background:#fff2cf;color:#87670f}
.status-label.waiting_italy:before,.status-label.verification:before{background:#e4b942}
.status-label.action_plan{background:#def0e7;color:#317657}
.status-label.action_plan:before{background:#4a9a79}
.arrow-link{font-size:19px;color:var(--orange-deep);text-decoration:none}
.empty-state{padding:42px;text-align:center;color:var(--ink-soft)}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid var(--line);background:#fbf9f5}
.pager-info{font-size:11px;color:var(--ink-soft)}
.pager-links{display:flex;gap:6px;align-items:center}
.pager-links a,.pager-links span.current,.pager-links span.gap{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;font-size:12px;font-weight:700;text-decoration:none;padding:0 8px}
.pager-links a{color:var(--ink);border:1px solid var(--line);background:var(--white)}
.pager-links a:hover{border-color:#9dabba}
.pager-links span.current{background:var(--ink);color:#fff}
.pager-links span.gap{color:var(--ink-soft)}
.pager-links a.disabled{opacity:.4;pointer-events:none}

/* ---- 8. Form ---- */
.case-form{max-width:930px}
.form-section{background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);margin-bottom:13px;padding:24px}
.form-intro{background:#e9f1f8;border-color:#d3e1ed}
.form-section-heading{display:flex;gap:13px;margin-bottom:20px}
.form-section-heading>span{width:27px;height:27px;display:grid;place-items:center;background:var(--ink);color:var(--lime);border-radius:50%;font:600 11px var(--font-display);flex:0 0 auto}
.form-section-heading h2{font:600 19px/1.1 var(--font-display);letter-spacing:-.03em;margin:1px 0 3px}
.form-section-heading p{color:var(--ink-soft);font-size:12px;margin:0}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.span-full{grid-column:1/-1}
label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#293d56}
input,select,textarea{border:1px solid #cfd6dc;border-radius:var(--r-s);background:white;color:var(--ink);font:14px var(--font-body);padding:10px;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:#6e90af;box-shadow:0 0 0 3px var(--blue)}
input[readonly]{background:#f1f3f5;color:#6b7888;cursor:not-allowed}
textarea{resize:vertical}
.checkbox-row{display:flex;align-items:center;gap:9px;min-height:42px}
.checkbox-row input{width:18px;height:18px;padding:0;accent-color:var(--orange)}
.form-footer,.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.form-footer p{font-size:11px;color:var(--ink-soft);margin:0}
.form-footer p span{color:#44a87d}
.form-errors{margin-top:12px;background:#fff0ec;border:1px solid #f4c7bc;color:#913822;padding:14px;border-radius:8px;font-size:12px}
.form-errors ul{margin:6px 0 0;padding-left:18px}
.ncr-only{display:none}
html[data-case-type="ncr"] .ncr-only{display:grid}
html[data-case-type="ncr"] .vehicle-section .field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-case-type="ncr"] .vehicle-section .span-full{grid-column:1/-1}

/* ---- 9. Dettaglio caso: header e badge ---- */
.breadcrumb{font-size:11px;color:var(--ink-soft);margin-bottom:15px}
.breadcrumb a{color:var(--orange-deep);text-decoration:none;font-weight:700}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb span{margin:0 6px}
.case-header{margin-bottom:20px}
.case-kickers{display:flex;gap:7px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.case-subtitle{margin:10px 0 0;color:var(--ink-soft);font-size:13px}
.priority-pill,.hq-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}
.priority-pill.open{background:#edf0f2;color:#536273}
.priority-pill.urgent{background:#fff0d4;color:#8a5d00}
.priority-pill.closed{background:#e3eee8;color:#327256}
.hq-pill.internal{background:#f0eee9;color:#6c6256}
.hq-pill.visible{background:#def0e7;color:#317657}
.next-action-card{display:block;min-width:230px;max-width:330px;padding:13px 16px;background:#f0f5ec;border-left:4px solid var(--lime);border-radius:0 7px 7px 0;color:inherit;text-decoration:none;transition:filter .15s ease}
a.next-action-card:hover{filter:brightness(.97)}
.next-action-card.urgent{background:#fff2e9;border-left-color:var(--orange)}
.next-action-card.urgent small{color:#8a4a2e}
.next-action-card.closed{background:#eef7f1;border-left-color:#4a9a79}
.next-action-card strong,.next-action-card small{display:block}
.next-action-card strong{font-size:13px}
.next-action-card small{font-size:11px;color:#597060;margin-top:4px}
.case-header-actions{display:grid;gap:10px;justify-items:end}
.case-manage-actions{display:flex;gap:8px}
.case-manage-actions form{margin:0}
.case-narrative{background:var(--white);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.detail-section{padding:25px;border-bottom:1px solid var(--line)}
.detail-section:last-child{border-bottom:0}
.detail-section.emphasis{background:#eef5f1}
.body-copy{max-width:770px;font-size:14px;line-height:1.7;color:#33465c;margin:13px 0 0;white-space:pre-line}
.evidence-box{margin-top:15px;border:1px solid #d9e3db;background:#fff;padding:13px;border-radius:7px}
.evidence-box strong{font-size:12px}
.evidence-box p{white-space:pre-wrap;margin:6px 0 0;color:#536277;font-size:12px;overflow-wrap:anywhere}

/* timeline (storico) */
.timeline{margin-top:22px}
.timeline-item{display:grid;grid-template-columns:19px minmax(0,1fr);gap:10px;position:relative;padding-bottom:15px}
.timeline-item:before{content:"";position:absolute;left:7px;top:15px;bottom:-2px;width:1px;background:#d6dce0}
.timeline-item:last-child:before{display:none}
.timeline-dot{width:15px;height:15px;border:4px solid #7a9dbe;background:white;border-radius:50%;z-index:1;margin-top:10px}
.timeline-item.hq .timeline-dot{border-color:var(--orange)}
.message-card{border:1px solid #e4e6e7;border-radius:7px;padding:13px;background:#fff}
.timeline-item.hq .message-card{background:#fffaf7;border-color:#f1d6ca}
.message-meta{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;font-size:12px}
.message-meta span,.message-meta time{color:var(--ink-soft);font-size:11px}
.message-meta time{margin-left:auto}
.message-card p{font-size:13px;line-height:1.55;margin:9px 0;white-space:pre-line}
.visibility{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#68798a;font-weight:700}
.message-composer{margin-top:18px;padding:15px;background:#f6f4ef;border-radius:7px}
.inline-label{display:flex;align-items:center;gap:7px;font-size:11px}
.inline-label select{padding:6px;font-size:11px}

/* ---- 10. Sidebar caso ---- */
.entity-row,.action-row{display:flex;gap:9px;padding:10px 0;border-top:1px solid #eeeae3}
.entity-icon{width:24px;height:24px;border-radius:5px;display:grid;place-items:center;background:#e3edf6;color:#35658c;font:700 11px var(--font-display);flex:0 0 auto}
.entity-row strong,.entity-row small,.action-row strong,.action-row small{display:block;font-size:11px}
.entity-row small,.action-row small{color:var(--ink-soft);margin-top:2px}
.entity-row strong{overflow-wrap:anywhere}
.action-state{width:8px;height:8px;border-radius:50%;background:#9aa8b5;margin-top:5px;flex:0 0 auto}
.action-state.in_progress{background:var(--orange)}
.action-state.open{background:#e4b942}
.action-state.done{background:#6fae7f}
.action-state.pending{background:var(--orange)}
.empty-copy{color:var(--ink-soft);font-size:12px}

/* ---- 11. Workflow caso ---- */
/* ---- Fascicolo: infografica avanzamento ---- */
.workflow-band-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.workflow-band-head h2{font:600 22px/1.12 var(--font-display);letter-spacing:-.03em;margin:0}
.workflow-kpis{display:flex;flex-wrap:wrap;gap:7px}
.kpi-chip{display:inline-flex;align-items:center;gap:6px;background:#f6f4ef;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:700;color:#51607a}
.kpi-chip strong{font:700 14px var(--font-display);color:var(--ink)}
.progress-line{height:6px;border-radius:3px;background:#efeae1;margin-top:16px;overflow:hidden}
.progress-line span{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#357e63,#6fae7f);transition:width .4s ease}
.stage-track{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:16px 0 0;padding:0}
.stage-track li{position:relative;padding:36px 16px 0 0;display:grid;gap:3px;align-content:start}
.stage-track li::before{content:'';position:absolute;top:11px;left:0;right:16px;height:3px;border-radius:2px;background:#e7e1d6}
.stage-track li:last-child{padding-right:0}
.stage-track li:last-child::before{right:0}
.stage-track li.done::before{background:#4a9a79}
.stage-track li.current::before{background:#f0c3b2}
.stage-dot{position:absolute;top:0;left:0;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font:700 11px var(--font-display);background:#edf0f2;color:#536273;box-shadow:0 0 0 3px var(--white)}
.stage-track li.done .stage-dot{background:#4a9a79;color:#fff}
.stage-track li.done .stage-dot i{display:none}
.stage-track li.done .stage-dot::before{content:"\2713"}
.stage-track li.current .stage-dot{background:var(--orange);color:#fff;box-shadow:0 0 0 3px var(--white),0 0 0 6px #f8d9cd}
.stage-dot i{font-style:normal}
.stage-track strong{font-size:12px}
.stage-track small{font-size:11px;color:var(--ink-soft)}
.stage-track .button{min-height:34px;width:max-content;margin-top:7px}

/* ---- Fascicolo: pannello decisione proposta ---- */
.decision-panel{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) 290px;border:1px solid #ecd9a8;border-left:4px solid var(--orange);border-radius:10px;background:#fffbf0;overflow:hidden}
.decision-main{padding:18px;display:grid;gap:10px;justify-items:start;align-content:start}
.decision-main h3{font:600 19px/1.15 var(--font-display);letter-spacing:-.02em;margin:0}
.decision-when{font-size:11px;color:var(--ink-soft)}
.decision-main .body-copy{margin:0;font-size:13px}
.decision-main .proposal-details{margin-top:0}
.decision-actions{padding:18px;background:#fff6e2;border-left:1px dashed #ecd9a8;display:grid;gap:11px;align-content:start}
.decision-hint{margin:0;font-size:11px;line-height:1.5;color:#8a6410;font-weight:600}
.decision-actions form{display:grid;gap:9px}
.decision-actions .button{width:100%}
.decision-reject summary{cursor:pointer;font:700 12px var(--font-body);color:#913822;padding:2px 0}
.decision-reject summary:hover{text-decoration:underline}
.decision-reject form{margin-top:9px}
.decision-reject label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#51607a}
.resolution-form,.italy-request-form,.case-reopen-form{margin-top:16px;padding:16px;background:#f6f4ef;border-radius:8px;display:grid;gap:14px}
.resolution-form .button,.italy-request-form .button,.case-reopen-form .button{width:max-content;justify-self:start}
.italy-request-form label,.case-reopen-form label,.proposal-reject-form label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#51607a}
.case-reopen-form{background:#fff7f5;border:1px solid #f0ccc6}

/* ---- Fascicolo: storico proposte ---- */
.proposal-history{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}
.proposal-history .detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.proposal-scroll{margin-top:14px;max-height:440px;overflow-y:auto;display:grid;gap:12px;padding-right:6px;scrollbar-width:thin;scrollbar-color:#cdc5b8 transparent}
.proposal-card{border:1px solid var(--line);border-radius:10px;padding:15px 16px;background:#fffdfa;display:grid;gap:10px}
.proposal-card.pending{border-color:#ecd9a8;background:#fffbf0}
.proposal-card.approved{border-color:#cfe4d9;background:#f6fbf8}
.proposal-card.rejected{border-color:#f0ccc6;background:#fff7f5}
.proposal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.proposal-meta strong{font-size:12px}
.proposal-meta small{font-size:11px;color:var(--ink-soft)}
.proposal-status{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:2px 9px;font:700 10px var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.proposal-status.pending{background:#fdf3d9;color:#8a6410}
.proposal-status.approved{background:#e7f5ee;color:#1e7a57}
.proposal-status.rejected{background:#fdeaea;color:#b8242f}
.proposal-card .body-copy{margin:0;font-size:13px}
.proposal-details{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.proposal-card .proposal-details{margin-top:0}
.proposal-details span{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;background:#eef3f7;color:#43576e;padding:3px 10px;font-size:11px;font-weight:700}
.proposal-preventive{margin:0;font-size:12px;color:#33465c;background:#f6f4ef;border-radius:7px;padding:9px 11px}
.proposal-review small{font-size:11px;color:var(--ink-soft)}
.proposal-rejection{margin:6px 0 0;font-size:12px;color:#913822;background:#fff0ec;border-radius:7px;padding:9px 11px}
.proposal-actions{display:grid;gap:12px;border-top:1px dashed #e3ddd2;padding-top:12px}
.proposal-actions .button{width:max-content}
.proposal-reject-form{display:grid;gap:9px}

/* ---- 12. Flash e animazioni ---- */
.flash-message{position:fixed;z-index:25;right:24px;top:calc(var(--topbar-h) + 12px);display:flex;gap:8px;align-items:center;background:#234d3e;color:white;padding:12px 15px;border-radius:8px;font-size:12px;box-shadow:0 8px 25px #142d2433;animation:slide-in .35s ease}
.flash-message span{color:#c9f27d;font-weight:700}
.reveal{animation:reveal .45s both}
.delay-1{animation-delay:.06s}
.delay-2{animation-delay:.12s}
.delay-3{animation-delay:.18s}
.delay-4{animation-delay:.24s}
@keyframes reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes slide-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* ---- 13. Wizard ---- */
.wizard-form.case-form{max-width:1180px}
.wizard-errors{max-width:1180px;margin:-12px 0 18px}
.wizard-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.wizard-rail{position:sticky;top:calc(var(--topbar-h) + 16px);background:linear-gradient(180deg,#fffdfa,#f7f4ee);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow-2)}
.wizard-progress{height:5px;background:#e6e0d6;border-radius:999px;overflow:hidden;margin:2px 2px 14px}
.wizard-progress span{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--orange),#f0c969);border-radius:inherit;transition:width .28s ease}
.wizard-tab{width:100%;border:0;background:transparent;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-areas:"num title" "num meta";gap:2px 10px;text-align:left;color:var(--ink);padding:12px;border-radius:9px;cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease;position:relative}
.wizard-tab:hover{background:#f3efe7}
.wizard-tab.is-active{background:#132642;color:#fff;box-shadow:0 10px 24px #13264224;transform:translateX(2px)}
.wizard-tab.is-complete{background:#eef5f1}
.wizard-tab.is-active.is-complete{background:#132642}
.wizard-tab span{grid-area:num;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#e8edf1;color:#536273;font:700 11px var(--font-display)}
.wizard-tab.is-active span{background:var(--lime);color:#132642}
.wizard-tab.is-complete span{background:#4a9a79;color:#fff}
.wizard-tab strong{grid-area:title;font-size:13px;line-height:1.15;min-width:0}
.wizard-tab small{grid-area:meta;font-size:11px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wizard-tab.is-active small{color:#cdd8e3}
.wizard-tab .tab-errors{position:absolute;top:8px;right:8px;grid-area:auto;width:20px;height:20px;border-radius:50%;background:var(--critical);color:#fff;font:700 11px var(--font-body);display:grid;place-items:center}
.wizard-stage{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-2)}
.wizard-panel{padding:28px;animation:wizard-panel-in .24s ease both}
.wizard-panel[hidden]{display:none}
.wizard-panel-head{border-bottom:1px solid #eee9e0;margin:-2px 0 22px;padding-bottom:18px}
.wizard-panel-head h2{font:600 26px/1.08 var(--font-display);letter-spacing:-.035em;margin:0}
.wizard-panel-head p:not(.eyebrow){color:var(--ink-soft);font-size:13px;margin:8px 0 0;max-width:660px}
.wizard-stage input,.wizard-stage select,.wizard-stage textarea{min-height:43px}
.wizard-stage textarea{min-height:96px}
.wizard-actions{border-top:1px solid var(--line);background:#fbf9f5;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:16px 18px}
.wizard-actions p{font-size:11px;color:var(--ink-soft);margin:0}
.wizard-actions p span{color:#44a87d;font-weight:700}
.wizard-actions button[hidden]{display:none}
.wizard-actions button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
@keyframes wizard-panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---- 14. Login ---- */
.auth-body{min-height:100vh;background:radial-gradient(circle at 12% 14%,rgba(236,112,44,.2),transparent 26%),linear-gradient(145deg,#071625 0%,#102b45 56%,#e9edf0 56%);display:grid;place-items:center;padding:clamp(18px,4vw,56px)}
.auth-shell{width:min(1080px,100%);min-height:min(720px,calc(100vh - 64px));display:grid;grid-template-columns:minmax(340px,.9fr) minmax(420px,1.1fr);overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:24px;box-shadow:0 28px 80px rgba(4,17,29,.3)}
.auth-context{position:relative;display:flex;flex-direction:column;padding:clamp(30px,5vw,58px);color:#fff;background:linear-gradient(155deg,rgba(8,29,48,.98),rgba(21,57,83,.94));overflow:hidden}
.auth-context::after{content:"";position:absolute;width:300px;height:300px;right:-150px;bottom:-120px;border:70px solid rgba(255,255,255,.045);border-radius:50%}
.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,6vw,72px);background:rgba(255,255,255,.98)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:34px;font-family:var(--font-display);font-size:20px;letter-spacing:.06em}
.auth-brand strong{color:var(--orange)}
.auth-brand small{display:block;font:700 11px var(--font-body);letter-spacing:.08em;color:inherit;opacity:.68;text-transform:uppercase}
.auth-context-copy{position:relative;z-index:1;margin:auto 0}
.auth-context-copy .eyebrow{color:#f3a171}
.auth-context-copy h2{max-width:520px;margin:10px 0 18px;font:600 clamp(36px,5vw,58px)/1.02 var(--font-display);letter-spacing:-.052em}
.auth-context-copy>p:not(.eyebrow){max-width:460px;color:#c4d3df;font-size:16px;line-height:1.65}
.auth-security-note{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.auth-security-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.24);border-radius:12px;color:#f3a171}
.auth-security-note strong,.auth-security-note span{display:block}.auth-security-note strong{font-size:13px}.auth-security-note div>span{margin-top:2px;color:#9fb4c4;font-size:12px}
.auth-mobile-brand{display:none}
.auth-heading h1{font:600 40px/1.04 var(--font-display);letter-spacing:-.045em;margin:0}
.auth-heading p:not(.eyebrow){color:var(--ink-soft);max-width:460px}
.auth-form{display:grid;gap:14px;margin-top:26px}
.auth-form .button{width:100%;margin-top:4px}
.auth-disclaimer{margin-top:28px;padding:16px 18px;border:1px solid #dce3e8;border-radius:12px;background:#f5f7f8;color:#4c5e6d}
.auth-disclaimer strong{display:block;color:#1d3448;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.auth-disclaimer p{margin:7px 0 0;font-size:11px;line-height:1.55}

/* ---- 15. Config (base condivisa; pattern righe in config.css) ---- */
.config-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:18px}
.config-panel{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.config-panel .panel-heading{border-bottom:1px solid var(--line);background:#fbf9f5}
.config-count,.role-chip,.privilege-meter{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font:700 11px var(--font-body)}
.config-count{min-width:28px;height:24px;background:#e9eef2;color:#536273}
.config-form{padding:18px 20px;border-bottom:1px solid var(--line);display:grid;gap:15px}
.config-form .button{width:max-content}
.config-list{display:grid}
.config-list.compact .config-row{padding:14px 18px}
.config-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px 20px;border-top:1px solid #eee9e0}
.config-row:first-child{border-top:0}
.config-row strong,.config-row small{display:block}
.config-row strong{font-size:13px}
.config-row small{font-size:11px;color:var(--ink-soft);margin-top:2px}
.role-chip{padding:5px 8px;background:#e7f4d5;color:#4e7423;white-space:nowrap}
.privilege-meter{width:34px;height:28px;background:#132642;color:#fff}
.config-side{display:grid;gap:18px;align-content:start}
.config-stack{display:grid;gap:18px}
.config-errors{max-width:1180px;margin:-10px 0 18px}
.config-table{display:grid}
.config-empty{padding:18px 20px}
.compact-check{min-height:43px}

/* ---- 16. Workspace caso ---- */
/* ---- Fascicolo: nav sezioni ---- */
.case-nav{position:sticky;top:calc(var(--topbar-h) + 10px);z-index:12;display:flex;gap:5px;width:max-content;max-width:100%;overflow-x:auto;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:5px;margin:0 0 16px;box-shadow:var(--shadow-1)}
.case-nav a{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;font:700 12px var(--font-body);color:var(--ink-soft);text-decoration:none;white-space:nowrap;transition:background .15s ease,color .15s ease}
.case-nav a:hover{color:var(--ink);background:#f3efe7}
.case-nav a.is-active{background:var(--ink);color:#fff}
.case-nav a span{font:700 10px var(--font-display);background:#e9eef2;color:#43576e;border-radius:999px;padding:2px 7px}
.case-nav a.is-active span{background:#2b4260;color:#cfe0f2}

/* ---- Fascicolo: griglia modulare ---- */
.case-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin-bottom:18px}
.module{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;min-height:0;overflow:hidden;height:280px}
.module-tall{height:auto;max-height:420px}
.m-span-3{grid-column:span 3}
.m-span-4{grid-column:span 4}
.m-span-6{grid-column:span 6}
.m-span-12{grid-column:span 12}
.module-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid #efeae1;background:#fbf9f5}
.module-head .eyebrow{margin:0 0 2px}
.module-head h2{font:600 15px/1.2 var(--font-display);letter-spacing:-.02em;margin:0}
.module-hero .module-head h2{font-size:19px}
.module-count{flex:0 0 auto;font:700 11px var(--font-display);background:#e9eef2;color:#43576e;border-radius:999px;padding:3px 9px}
.module-body{flex:1;min-height:0;overflow-y:auto;padding:13px 16px;scrollbar-width:thin;scrollbar-color:#cdc5b8 transparent}
.module-body::-webkit-scrollbar{width:8px}
.module-body::-webkit-scrollbar-thumb{background:#cdc5b8;border-radius:4px;border:2px solid var(--white)}
.module-body .body-copy{margin:0;font-size:13px;max-width:none}
.module-hero .module-body .body-copy{font-size:14px;margin-top:12px}
.module-body .case-signal-strip{display:flex;flex-wrap:wrap;gap:7px}
.module-body .entity-row:first-child,.module-body .action-row:first-child{border-top:0;padding-top:0}
.module-body dl{margin:0}
.module-body dl>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #f0ece4}
.module-body dl>div:first-child{padding-top:0}
.module-body dl>div:last-child{border-bottom:0}
.module-body dt{font-size:11px;color:var(--ink-soft)}
.module-body dd{font-size:11px;font-weight:700;text-align:right;margin:0}
.module-body .evidence-box{margin-top:12px}
.module-foot{flex:0 0 auto;display:grid;gap:9px;border-top:1px solid #efeae1;background:#fbf9f5;padding:12px 16px;margin:0}
.module-foot label{display:grid;gap:5px;font-size:11px;font-weight:600;color:#51607a}
.module-foot .button{width:100%;min-height:36px}
.module-foot.call-status-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:0;padding:12px 16px;border-top:1px solid #efeae1}
.module-foot.call-status-form .button{grid-column:1/-1}
.alert-emails-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.alert-emails-list li{font-size:12px;font-weight:600;background:#f6f4ef;border-radius:7px;padding:7px 10px;overflow-wrap:anywhere;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.alert-email-address{flex:1;min-width:0}
.alert-email-row-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.alert-email-row-actions form{display:inline-flex}
.alert-email-row-actions .button{min-height:26px;padding:0 10px;font-size:11px}
.alert-email-edit{position:relative}
.alert-email-edit summary{cursor:pointer;font-size:11px;font-weight:700;color:var(--ink-soft);list-style:none}
.alert-email-edit summary::-webkit-details-marker{display:none}
.alert-email-edit[open] summary{color:var(--ink)}
.alert-email-edit form{position:absolute;right:0;top:100%;z-index:5;margin-top:6px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;box-shadow:var(--shadow-2);display:flex;gap:6px;width:max-content}
.alert-email-edit input[type="email"]{font-size:12px;padding:6px 8px}

/* ---- Fascicolo: macro-aree ---- */
.workflow-band{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-2);padding:22px 24px;margin-bottom:18px}
.case-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin-bottom:18px}
.case-main{display:grid;gap:14px;min-width:0;align-content:start}
.case-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.case-side{display:grid;gap:14px;min-width:0;align-content:start}
.case-side .module{height:182px}
.call-pill{flex:0 0 auto;display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font:700 10px var(--font-body);letter-spacing:.05em;text-transform:uppercase}
.call-pill.requested{background:#fdf3d9;color:#8a6410}
.call-pill.scheduled{background:#dbe9f6;color:#285784}
.call-pill.done{background:#e7f5ee;color:#1e7a57}
.call-pill.declined{background:#eceae5;color:#5d6470}
.call-schedule{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;background:#f0f5ec;border-left:4px solid var(--lime);border-radius:0 7px 7px 0;padding:10px 13px}
.call-schedule strong{font:600 17px var(--font-display);letter-spacing:-.02em}
.call-schedule span{font-size:12px;color:#597060;font-weight:700}
.call-notes{margin:10px 0 0;font-size:12px;color:#33465c;background:#f6f4ef;border-radius:7px;padding:9px 11px}
.case-communication-hub,.case-photo-hub{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-2)}
.section-title-row,.hub-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.section-title-row h2,.hub-heading h2,.panel-mini-heading h3{font:600 24px/1.08 var(--font-display);letter-spacing:-.035em;margin:0}
.case-signal-strip{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.case-signal-strip span,.hub-count{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:#eef3f7;color:#43576e;padding:5px 10px;font-size:11px;font-weight:700}
.case-communication-hub,.case-photo-hub{margin-top:18px}
.hub-heading{padding:22px 24px;border-bottom:1px solid var(--line);background:#fbf9f5}
.communication-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);grid-template-rows:minmax(0,1fr);height:580px}
.communication-stream{min-height:0;overflow-y:auto;padding:20px 22px;background:#f8faf9;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#cdc5b8 transparent}
.communication-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;margin-bottom:14px}
.communication-item:last-child{margin-bottom:0}
.communication-avatar{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:var(--blue);color:#285784;font:700 11px var(--font-display);position:sticky;top:8px}
.communication-item.hq .communication-avatar{background:#fde8db;color:#ab4a27}
.communication-composer{display:flex;flex-direction:column;min-height:0;overflow-y:auto;gap:16px;padding:22px;background:#fffdfa}
.communication-composer>label[for="message-body"]{flex:1;display:flex;flex-direction:column;gap:6px;min-height:0}
.communication-composer>label[for="message-body"] textarea{flex:1;min-height:150px;resize:vertical;line-height:1.55}
.communication-composer .composer-footer{margin-top:0}
.photo-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:minmax(0,1fr);gap:0;height:620px}
.photo-gallery{min-height:0;overflow-y:auto;align-content:start;padding:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;background:#f8faf9;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#cdc5b8 transparent}
.photo-gallery:has(>.photo-empty){align-content:stretch}
.photo-card{background:#fff;border:1px solid #e4e6e7;border-radius:8px;overflow:hidden;display:grid;grid-template-rows:auto minmax(112px,auto)}
.photo-card a{display:block;background:#edf1f4;aspect-ratio:4/3;overflow:hidden}
.photo-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.photo-card a:hover img{transform:scale(1.03)}
.photo-card div{padding:12px}
.photo-card strong{display:block;font-size:13px;line-height:1.25}
.photo-card p{font-size:12px;color:#45596f;margin:7px 0 8px}
.photo-card small{font-size:11px;color:var(--ink-soft)}
.photo-card-delete{margin-top:8px}
.photo-card-delete .button{min-height:26px;padding:0 10px;font-size:11px;width:max-content}
.photo-empty{grid-column:1/-1;min-height:220px;border:1px dashed #cfd6dc;border-radius:10px;display:grid;place-items:center;text-align:center;padding:26px;background:#fff}
.photo-empty strong{font:600 22px/1.1 var(--font-display);letter-spacing:-.03em}
.photo-empty p{max-width:520px;color:var(--ink-soft);font-size:13px;margin:8px 0 0}
.photo-upload-panel{min-height:0;overflow-y:auto;padding:20px;background:#fffdfa;display:grid;gap:14px;align-content:start;scrollbar-width:thin;scrollbar-color:#cdc5b8 transparent}
.panel-mini-heading h3{font-size:21px}
.photo-upload-rows{display:grid;gap:12px}
.photo-upload-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;border:1px solid #e4e6e7;background:#fbf9f5;border-radius:8px;padding:12px}
.photo-upload-row input,.photo-upload-row textarea{background:#fff}
.photo-actions{display:flex;justify-content:space-between;gap:10px}
.photo-actions .button{width:max-content}
.video-frame{background:#000;aspect-ratio:4/3;overflow:hidden}
.video-frame video{display:block;width:100%;height:100%;object-fit:cover}
.document-list{min-height:0;overflow-y:auto;padding:22px;display:grid;gap:4px;align-content:start;background:#f8faf9;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#cdc5b8 transparent}
.document-list:has(>.photo-empty){align-content:stretch}
.document-row{display:flex;gap:10px;padding:12px 4px;border-top:1px solid #eeeae3}
.document-row:first-child{border-top:0}
.document-row strong{display:block;font-size:13px;line-height:1.25}
.document-row p{font-size:12px;color:#45596f;margin:5px 0}
.document-row small{font-size:11px;color:var(--ink-soft)}
.vin-attachment-list{margin-top:8px}
.vin-attachment-list strong{display:block;font-size:11px;color:var(--ink-soft);margin-bottom:4px}
.vin-attachment-list ul{list-style:none;padding:0;margin:0;display:grid;gap:3px}
.vin-attachment-list li{font-size:12px}
.stage-track form.rd-acknowledge-form{display:grid;gap:6px;margin-top:7px}
.stage-track form.rd-acknowledge-form select{font-size:12px;padding:4px 6px}
.approve-resolution-form{gap:9px}

/* ---- 17. Responsive ---- */
@media(max-width:1240px){
    .m-span-6{grid-column:span 12}
    .module-tall.m-span-6{grid-column:span 6}
    .m-span-3,.m-span-4{grid-column:span 6}
    .m-span-4:last-child,.m-span-3:last-child:nth-child(odd){grid-column:span 12}
    .case-workspace{grid-template-columns:1fr}
    .case-side{grid-template-columns:repeat(3,minmax(0,1fr))}
    .case-side .module{height:230px}
}
@media(max-width:900px){
    .stage-track{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}
    .stage-track li:nth-child(even){padding-right:0}
    .stage-track li:nth-child(even)::before{right:0}
    .decision-panel{grid-template-columns:1fr}
    .decision-actions{border-left:0;border-top:1px dashed #ecd9a8}
}
@media(max-width:1180px){
    .communication-layout,.photo-layout{grid-template-columns:1fr;height:auto}
    .communication-stream,.photo-gallery,.document-list{border-right:0;border-bottom:1px solid var(--line)}
    .communication-stream{max-height:520px}
    .photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-height:560px}
    .document-list{max-height:560px}
    .photo-upload-panel{overflow-y:visible;max-height:none}
    .communication-composer>label[for="message-body"] textarea{min-height:200px}
}
@media(max-width:1050px){
    .main-content{padding:0 32px 38px}
    .topbar{margin:0 -32px;padding:8px 32px}
    .page-intro{margin-top:26px}
    .metric-grid{grid-template-columns:repeat(2,1fr)}
    .app-shell{grid-template-columns:220px minmax(0,1fr)}
    .wizard-shell{grid-template-columns:1fr}
    .wizard-rail{position:relative;top:auto;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;overflow:auto}
    .wizard-progress{grid-column:1/-1;margin-bottom:4px}
    .wizard-tab{min-width:150px}
}
@media(max-width:920px){
    .auth-shell,.config-grid{grid-template-columns:1fr}
    .auth-shell{min-height:0;overflow:visible}
    .auth-context{display:none}
    .auth-mobile-brand{display:flex}
    .auth-body{background:linear-gradient(155deg,#0b2136 0 190px,var(--paper) 190px)}
    .auth-form .button,.config-form .button{width:100%}
}
@media(max-width:760px){
    .app-shell{display:block}
    .sidebar{position:relative;height:auto;padding:16px;display:block;overflow:visible}
    .brand{margin:0 0 15px}
    .nav-divider{display:none}
    .primary-nav{display:flex;overflow:auto;gap:3px}
    .primary-nav a{flex:0 0 auto;padding:8px 10px;font-size:12px;border-left:0}
    .primary-nav a svg{width:15px}
    .workspace-card,.user-card{display:none}
    .main-content{padding:0 18px 28px}
    .topbar{margin:0 -18px;padding:8px 18px}
    .page-intro{margin-top:20px}
    .page-intro,.case-header-grid,.process-strip{display:block}
    .page-intro .button{margin-top:18px}
    .metric-grid{grid-template-columns:repeat(2,1fr);gap:9px}
    .metric-card{min-height:112px;padding:15px}
    .metric-card strong{font-size:32px}
    .dashboard-grid{grid-template-columns:1fr}
    .attention-panel{display:none}
    .process-strip ol{margin-top:18px;gap:13px;justify-content:space-between}
    .process-strip li{font-size:11px}
    .filter-bar{grid-template-columns:1fr}
    .responsive-table{overflow:auto}
    .responsive-table table{min-width:740px}
    .responsive-table th{top:0}
    .table-meta{padding:12px;font-size:11px}
    .export-toolbar{align-items:stretch;flex-direction:column}
    .export-toolbar-actions{justify-content:space-between}
    .field-grid,.field-grid.two,.field-grid.three,html[data-case-type="ncr"] .vehicle-section .field-grid{grid-template-columns:1fr}
    .span-full{grid-column:auto}
    html[data-case-type="ncr"] .vehicle-section .span-full{grid-column:auto}
    .form-section{padding:18px}
    .form-footer,.composer-footer{align-items:stretch;flex-direction:column}
    .form-footer .button,.composer-footer .button{width:100%}
    .case-header h1{font-size:29px}
    .next-action-card{margin-top:17px}
    .case-header-actions{justify-items:stretch}
    .case-manage-actions{display:grid}
    .case-manage-actions .button{width:100%}
    .message-meta time{margin-left:0}
    .case-row{grid-template-columns:auto minmax(0,1fr) auto}
    .case-row .severity{display:none}
    .case-row .status-dot{display:none}
    .user-menu-name{display:none}
    .user-menu-panel{right:-4px;width:min(245px,calc(100vw - 36px))}
    .pager{flex-direction:column;align-items:stretch;text-align:center}
    .pager-links{justify-content:center;flex-wrap:wrap}
    .wizard-form.case-form{max-width:none}
    .wizard-shell{gap:12px}
    .wizard-rail{margin:0 -2px;padding:10px;grid-template-columns:repeat(4,142px);scroll-snap-type:x mandatory}
    .wizard-tab{scroll-snap-align:start;grid-template-columns:28px minmax(0,1fr);padding:10px;min-width:142px}
    .wizard-tab span{width:26px;height:26px}
    .wizard-tab strong{font-size:12px}
    .wizard-tab small{font-size:11px}
    .wizard-panel{padding:20px}
    .wizard-panel-head h2{font-size:22px}
    .wizard-actions{grid-template-columns:1fr 1fr}
    .wizard-actions p{grid-column:1/-1;order:-1}
    .wizard-actions .button{width:100%}
    .wizard-actions [data-wizard-submit]{grid-column:1/-1}
    .case-bento{gap:10px}
    .case-bento .module,.case-bento .module-tall{grid-column:span 12;height:auto}
    .case-workspace,.case-pair,.case-side{grid-template-columns:1fr;gap:10px}
    .case-workspace{margin-bottom:10px}
    .case-main{gap:10px}
    .case-main .module,.case-side .module{height:auto}
    .module-body{max-height:280px}
    .workflow-band{padding:18px}
    .workflow-kpis{gap:5px}
    .kpi-chip{padding:5px 10px}
    .stage-track{grid-template-columns:1fr;gap:14px;margin-top:14px}
    .stage-track li{padding:0 0 0 38px}
    .stage-track li::before{top:3px;left:11px;right:auto;bottom:-14px;width:3px;height:auto}
    .stage-track li:last-child::before{display:none}
    .stage-track li:nth-child(even)::before{right:auto}
    .proposal-scroll{max-height:380px}
    .hub-heading,.communication-stream,.communication-composer,.photo-gallery,.photo-upload-panel,.document-list{padding:18px}
    .section-title-row,.hub-heading{display:grid}
    .case-signal-strip{justify-content:flex-start}
    .photo-gallery,.photo-upload-row{grid-template-columns:1fr}
    .communication-item{grid-template-columns:34px minmax(0,1fr);gap:9px}
    .communication-avatar{width:30px;height:30px;border-radius:7px;font-size:11px}
    .communication-stream{max-height:520px}
    .communication-composer textarea{min-height:200px}
    .photo-actions{display:grid}
    .photo-actions .button{width:100%}
    .resolution-form .button,.stage-track .button{width:100%}
}
@media(max-width:560px){
    .auth-panel{padding:24px;border-radius:18px}
    .auth-heading h1{font-size:32px}
    .auth-disclaimer{padding:14px}
    .config-row{display:grid}
    .role-chip,.privilege-meter{width:max-content}
}
@media(max-width:430px){
    .wizard-rail{grid-template-columns:repeat(4,132px)}
    .wizard-tab{min-width:132px}
    .wizard-panel{padding:16px}
    .wizard-panel-head{margin-bottom:16px}
    .wizard-actions{padding:13px;gap:9px}
    .wizard-actions .button{padding:0 10px}
    .hub-heading,.communication-stream,.communication-composer,.photo-gallery,.photo-upload-panel,.document-list{padding:14px}
    .module-head,.module-body,.module-foot{padding-left:13px;padding-right:13px}
    .workflow-band{padding:14px}
    .decision-main,.decision-actions{padding:14px}
    .section-title-row h2,.hub-heading h2{font-size:21px}
    .case-signal-strip span,.hub-count{width:max-content;max-width:100%;white-space:normal}
    .message-card{padding:11px}
    .photo-empty{min-height:180px}
}
@media(max-width:410px){
    .metric-grid{grid-template-columns:1fr 1fr}
    .metric-label{font-size:11px}
    .case-main strong{font-size:12px}
    .page-intro h1{font-size:30px}
}
.call-status-form{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(15,35,66,.08)}
.call-status-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:#51607a}
.call-status-form select,.call-status-form input{font:inherit;padding:8px 10px;border:1px solid rgba(15,35,66,.16);border-radius:9px;background:#fff}
.call-status-form .button{align-self:flex-start}

/* ---- Widget Google Translate (traduzione integrale della pagina) ---- */
.goog-te-banner-frame,.goog-te-balloon-frame,#goog-gt-tt{display:none!important}
body{top:0!important}
font[style*="background-color"],font[style*="box-shadow"]{background:transparent!important;box-shadow:none!important}

/* ---- Sezione analytics dashboard ---- */
.analytics-section{margin-top:26px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-m);padding:22px 24px}
.analytics-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}
.analytics-heading h2{margin:0;font-size:20px}
.analytics-heading select{border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font:700 13px var(--font-body);padding:7px 12px;cursor:pointer}
.analytics-heading .inline-label{display:grid;gap:5px;font:700 11px var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.analytics-kpi{background:#f6f4ef;border-radius:10px;padding:14px 16px;display:grid;gap:4px}
.analytics-kpi span{font-size:12px;color:var(--ink-soft);font-weight:700}
.analytics-kpi strong{font-size:26px;letter-spacing:-.01em;color:var(--ink)}
.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.chart-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.chart-card{background:#fffdfa;border:1px solid var(--line);border-radius:12px;padding:16px 18px;min-width:0}
.chart-card-wide{grid-column:1/-1}
.chart-card h3{margin:0 0 10px;font-size:14px;color:var(--ink)}
.chart-canvas{position:relative;height:260px}
@media (max-width:1100px){
    .chart-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
    .chart-grid.cols-3 .chart-card:last-child{grid-column:1/-1}
}
@media (max-width:900px){
    .analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
    .chart-canvas{height:220px}
    .chart-grid,.chart-grid.cols-3{grid-template-columns:minmax(0,1fr)}
}
