:root{--wp-admin-bg:#f0f0f1;--wp-sidebar:#1d2327;--wp-sidebar-hover:#2c3338;--wp-sidebar-active:#2271b1;--wp-text:#1d2327;--wp-border:#dcdcde;--wp-card:#fff;--wp-muted:#646970;--wp-topbar:#fff;--wp-button:#2271b1;--wp-button-hover:#135e96;--danger:#b32d2e;--danger-hover:#8f2424;--shadow:0 1px 1px rgba(0,0,0,.04)}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;color:var(--wp-text);background:var(--wp-admin-bg)}
a{text-decoration:none;color:var(--wp-button)}
small,.muted{color:var(--wp-muted)}
pre{white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.abs-admin-body{min-height:100vh}
.abs-shell{display:flex;min-height:100vh}
.abs-sidebar{width:260px;background:var(--wp-sidebar);color:#fff;position:sticky;top:0;height:100vh;flex:0 0 260px}
.abs-brand{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.06)}
.abs-brand.has-logo{display:block}
.abs-brand:not(.has-logo){display:flex;align-items:center;gap:12px}
.brand-mark{width:44px;height:44px;border-radius:8px;background:#2271b1;color:#fff;display:grid;place-items:center;font-weight:700;flex:0 0 44px}
.brand-visual{display:flex;align-items:center;justify-content:center}
.brand-visual-logo{width:100%;min-height:84px;padding:10px 12px;border-radius:8px;background:#fff;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(0,0,0,.03);margin-bottom:12px}
.brand-logo{max-width:100%;max-height:60px;display:block;object-fit:contain}
.brand-copy strong{display:block;font-size:15px;line-height:1.3;color:#fff}
.abs-brand small{display:block;color:#8c8f94;margin-top:3px}
.login-logo-wrap{display:flex;justify-content:center;margin-bottom:16px}
.login-logo{max-width:min(100%,320px);max-height:120px;object-fit:contain;display:block}
.branding-preview{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--wp-border);border-radius:4px;background:#f6f7f7}
.branding-preview-image{max-width:280px;max-height:110px;object-fit:contain;background:#fff;border:1px solid var(--wp-border);padding:10px;border-radius:4px}
.abs-nav{display:flex;flex-direction:column;padding:12px 0}
.abs-nav a{display:block;color:#c3c4c7;padding:11px 16px;border-left:4px solid transparent;font-size:14px}
.abs-nav a:hover{background:var(--wp-sidebar-hover);color:#fff}
.abs-nav a.active{background:#111;color:#fff;border-left-color:var(--wp-sidebar-active)}
.abs-main{flex:1;min-width:0;display:flex;flex-direction:column}
.abs-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;background:var(--wp-topbar);border-bottom:1px solid var(--wp-border);position:sticky;top:0;z-index:10}
.abs-topbar h1{margin:0;font-size:23px;font-weight:500}
.abs-userbox{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.abs-content.wide{padding:24px;max-width:none;width:100%}
.abs-footer{padding:14px 24px;color:var(--wp-muted);font-size:13px}
.card{background:var(--wp-card);border:1px solid var(--wp-border);box-shadow:var(--shadow);padding:18px;margin-bottom:20px;border-radius:4px}
.card.compact-actions{display:flex;justify-content:flex-end}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.section-head h2{margin:0;font-size:20px;font-weight:500}
.grid{display:grid;gap:20px}
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.two-columns{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.stat-card h3{margin:0 0 10px;font-size:14px;color:var(--wp-muted);font-weight:600}
.stat-value{font-size:34px;font-weight:600}
.toolbar .filters-row,.filters-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filters-row input[type=text],.filters-row input[type=email],.filters-row select{min-width:180px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--wp-border);background:#f6f7f7;color:var(--wp-text);padding:7px 12px;border-radius:3px;cursor:pointer;font-size:13px;min-height:32px}
.button:hover{background:#f0f0f1}
.button.button-primary{background:var(--wp-button);border-color:var(--wp-button);color:#fff}
.button.button-primary:hover{background:var(--wp-button-hover)}
.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.button.danger:hover{background:var(--danger-hover)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.actions form{display:inline-flex;margin:0}
.bulk-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.table-wrap{width:100%}
.abs-table{width:100%;border-collapse:collapse}
.abs-table th,.abs-table td{padding:12px 10px;border-bottom:1px solid var(--wp-border);text-align:left;vertical-align:top;font-size:14px}
.abs-table th{font-weight:600;background:#f6f7f7}
.abs-form-grid{display:grid;gap:16px}
.abs-form-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.abs-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.abs-form-grid input[type=text],.abs-form-grid input[type=email],.abs-form-grid input[type=password],.abs-form-grid input[type=date],.abs-form-grid input[type=number],.abs-form-grid input[type=file],.abs-form-grid select,.abs-form-grid textarea{width:100%;padding:9px 10px;border:1px solid #8c8f94;border-radius:4px;background:#fff;font-size:14px;min-height:40px}
.abs-form-grid textarea{min-height:110px;resize:vertical}
.full-row{grid-column:1/-1}
.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:10px}
.detail-card h2{margin:0}
.detail-filter-box{margin:18px 0 14px;padding:14px 16px;background:#f6f7f7;border-style:dashed}
.compact-head{margin-bottom:10px}
.compact-head h3{margin:0;font-size:16px;font-weight:600}
.detail-filters-row{margin-bottom:8px}
.detail-filter-feedback{margin:0}
.client-detail-grid .stack-row strong + small{margin-top:6px}
.stack-list{display:flex;flex-direction:column;gap:12px}
.stack-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--wp-border);flex-wrap:wrap}
.stack-row:last-child{border-bottom:none}
.stack-row small{display:block;margin-top:4px}
.notes-box{padding:14px;background:#f6f7f7;border:1px solid var(--wp-border);border-radius:4px}
.mini-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.mini-list li{padding-bottom:10px;border-bottom:1px solid var(--wp-border)}
.mini-list li:last-child{border-bottom:none;padding-bottom:0}
.mini-list small{display:block;margin-top:4px}
.notice{padding:12px 14px;border-left:4px solid var(--wp-button);background:#fff;border:1px solid var(--wp-border);margin-bottom:16px}
.notice.error{border-left-color:var(--danger)}
.notice.success{border-left-color:#00a32a}
.abs-login-body{background:#f0f0f1;min-height:100vh;display:grid;place-items:center;padding:24px}
.abs-login-wrap{width:min(100%,460px)}
.abs-login-wrap .wide-card{width:min(100%,880px)}
.abs-install-wrap{width:min(100%,920px)}
.abs-login-card{background:#fff;border:1px solid var(--wp-border);padding:26px;border-radius:6px;box-shadow:var(--shadow)}
.abs-login-card h1{margin-top:0;text-align:center}
.abs-login-card .muted{text-align:center}
.card-section{padding:0 0 4px}
.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.checkbox{display:flex;align-items:center;gap:8px;font-weight:400}
.checkbox input{width:auto;min-height:auto}
.ai-box{background:#f8fafc;border-style:dashed}
.ai-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.policy-form textarea{min-height:260px}
.abs-menu-toggle{display:none}
.responsive-table td[data-label]::before{display:none;content:attr(data-label);font-weight:600;color:var(--wp-muted);margin-right:8px}
.inline-post-form{display:inline-flex}
.hidden{display:none!important}
@media (max-width:1100px){.abs-sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s ease;z-index:30}.abs-sidebar.open{transform:translateX(0)}.abs-menu-toggle{display:inline-flex}.abs-content.wide{padding:18px}.abs-topbar{padding:12px 18px}.abs-form-grid.two-cols,.two-columns{grid-template-columns:1fr}.abs-userbox span{display:none}}
@media (max-width:760px){.abs-sidebar{width:284px;flex-basis:284px}.brand-visual-logo{min-height:72px;padding:8px 10px}.brand-logo{max-height:52px}.branding-preview{flex-direction:column;align-items:flex-start}.branding-preview-image{max-width:100%}.abs-content.wide{padding:14px}.abs-topbar h1{font-size:20px}.section-head{align-items:flex-start}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tr{border:1px solid var(--wp-border);border-radius:4px;background:#fff;margin-bottom:12px;padding:10px}.responsive-table td{border:none;padding:6px 0}.responsive-table td[data-label]::before{display:inline-block;min-width:110px}.meta-grid{grid-template-columns:1fr}.stack-row,.filters-row,.bulk-bar,.ai-inline{flex-direction:column;align-items:stretch}.actions{width:100%}.actions .button,.actions form,.actions form .button{width:100%}.filters-row input,.filters-row select,.button{width:100%}}
.stats-grid.compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.stat-label{display:block;font-size:12px;font-weight:600;color:var(--wp-muted);margin-bottom:6px}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--wp-border);background:#f6f7f7;color:var(--wp-text)}
.badge.success{background:#edfaef;border-color:#00a32a;color:#006b21}
.badge.warning{background:#fff8e5;border-color:#dba617;color:#8a5800}
.badge.error{background:#fcf0f1;border-color:var(--danger);color:#8f2424}
.badge.info{background:#eff8ff;border-color:#b2ddff;color:#175cd3}
.button.button-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.button.button-danger:hover{background:var(--danger-hover)}
.key-values{display:flex;flex-direction:column;gap:10px}
.kv-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--wp-border)}
.kv-row:last-child{border-bottom:none}
.abs-grid.two-col-wide{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:20px}
@media (max-width:1100px){.abs-grid.two-col-wide{grid-template-columns:1fr}}
.topbar-search{display:flex;gap:8px;align-items:center;flex:1;max-width:560px}
.topbar-search input{width:100%;padding:9px 10px;border:1px solid #8c8f94;border-radius:4px;background:#fff;font-size:14px;min-height:40px}
.topbar-title-wrap{min-width:0}
.guide-box{background:#f8fbff;border-left:4px solid var(--wp-button)}
.guide-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.notice-stack{display:flex;flex-direction:column;gap:12px}.notice-link{display:block;color:inherit}.notice-link:hover{background:#f6f7f7}
.timeline-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.timeline-list li{padding:12px;border:1px solid var(--wp-border);border-radius:4px;background:#fff}.timeline-list small{display:block;margin-top:4px}
.split-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.text-danger{color:var(--danger)}
@media (max-width:1100px){.topbar-search{order:3;max-width:none;width:100%}}

.advanced-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}.advanced-filters-grid label{display:flex;flex-direction:column;gap:6px}.advanced-filters-grid label span{font-size:12px;color:#50575e;font-weight:600}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.badge.success{background:#ecfdf3;color:#027a48;border-color:#abefc6}.badge.warning{background:#fffaeb;color:#b54708;border-color:#fedf89}.badge.error{background:#fef3f2;color:#b42318;border-color:#fecdca}@media (max-width:782px){.advanced-filters-grid{grid-template-columns:1fr}.inline-actions{justify-content:stretch}.inline-actions .button{flex:1}}

.portfolio-card{margin-top:20px}
.portfolio-stats .stat-card{min-height:120px}
.portfolio-coverage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0 18px}
.coverage-chip{padding:12px;border:1px solid var(--wp-border);border-radius:6px;background:#fff;display:flex;flex-direction:column;gap:6px}
.coverage-chip small{display:block;color:var(--wp-muted)}
.portfolio-finding{align-items:flex-start}
.portfolio-finding .actions{min-width:180px;justify-content:flex-end}
@media (max-width:760px){.portfolio-finding .actions{min-width:0;justify-content:stretch}}

.stacked-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.stacked-actions form{display:flex;flex-direction:column;gap:6px}
.stacked-actions select{min-width:170px}


/* ═══════════════════════════════════════════════════════════
   BLOCCO 2 — Coverage Score, GAP Map, Renewal Pipeline, Dossier
   ══════════════════════════════════════════════════════════= */

/* Coverage Score */
.coverage-score-grid { display:flex; flex-direction:column; gap:10px; }
.coverage-score-row { display:grid; grid-template-columns:180px 1fr; gap:8px; align-items:center; }
.coverage-score-label { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.coverage-score-bar-wrap { display:flex; align-items:center; gap:8px; height:20px; }
.coverage-score-bar { height:12px; border-radius:6px; transition:width .4s; min-width:4px; }
.bar-success { background: var(--color-background-success); }
.bar-warning { background: var(--color-background-warning); }
.bar-danger  { background: var(--color-background-danger); }
.bar-info    { background: var(--color-background-info); }
.coverage-score-pct { font-size:12px; font-weight:500; min-width:28px; }
.coverage-score-note { grid-column:1/-1; padding-left:188px; }

/* GAP Map */
.gap-map-list { display:flex; flex-direction:column; gap:12px; }
.gap-map-row { border:1px solid var(--color-border-tertiary); border-radius:var(--border-radius-md); padding:12px 14px; }
.gap-map-header { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.gap-map-body { display:flex; flex-direction:column; gap:4px; }
.gap-map-figures { display:flex; gap:20px; flex-wrap:wrap; }
.gap-map-figures span { font-size:13px; }
.gap-action { color: var(--color-text-info) !important; font-style:italic; }

/* Renewal Pipeline */
.renewal-row .text-danger { color: var(--color-text-danger); }
.renewal-row .text-warning { color: var(--color-text-warning); }

/* Finding critical highlight */
.finding-critical { border-left:3px solid var(--color-border-danger); }

/* Dossier versione cliente — Tab switcher */
.abs-tab-bar { display:flex; border-bottom:1px solid var(--color-border-tertiary); }
.abs-tab { background:none; border:none; padding:10px 18px; cursor:pointer; font-size:14px; color:var(--color-text-secondary); border-bottom:2px solid transparent; margin-bottom:-1px; }
.abs-tab.active { color:var(--color-text-primary); border-bottom-color:var(--color-text-primary); font-weight:500; }
.abs-tab-panel.hidden { display:none; }

/* Coverage highlights (versione cliente dossier) */
.coverage-highlights-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:10px; }
.coverage-highlight-card { display:flex; gap:10px; align-items:flex-start; padding:12px; border-radius:var(--border-radius-md); border:1px solid var(--color-border-tertiary); }
.highlight-ok      { border-left:3px solid var(--color-border-success); }
.highlight-partial { border-left:3px solid var(--color-border-warning); }
.highlight-warn    { border-left:3px solid var(--color-border-warning); }
.highlight-missing { border-left:3px solid var(--color-border-tertiary); }
.highlight-icon { font-size:20px; line-height:1; padding-top:2px; }
.highlight-label { display:block; font-size:11px; font-weight:500; margin-top:2px; color:var(--color-text-secondary); }
.highlight-body { display:flex; flex-direction:column; gap:3px; }
.dossier-client-intro { background:var(--color-background-info); border-left:3px solid var(--color-border-info); }
.dossier-client-next  { background:var(--color-background-secondary); }

/* ═══════════════════════════════════════════════════════════
   BLOCCO 3 — Churn Risk Monitor, Email Composer
   ══════════════════════════════════════════════════════════= */

/* Churn Risk Monitor */
.churn-risk-list { display:flex; flex-direction:column; gap:10px; }
.churn-risk-row { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--color-border-tertiary); }
.churn-risk-row:last-child { border-bottom:none; }
.churn-risk-info { flex:1; display:flex; flex-direction:column; gap:4px; }
.churn-risk-bar-wrap { display:flex; align-items:center; gap:8px; height:20px; }

/* Email Composer */
.email-draft-result { display:flex; flex-direction:column; gap:16px; }
.email-draft-section { display:flex; flex-direction:column; gap:6px; }
.email-draft-label { font-size:12px; font-weight:500; color:var(--color-text-secondary); text-transform:uppercase; letter-spacing:.04em; }
.email-draft-field { position:relative; background:var(--color-background-secondary); border:1px solid var(--color-border-tertiary); border-radius:var(--border-radius-md); padding:10px 12px; padding-right:80px; }
.email-draft-field.multiline { padding-right:12px; }
.email-draft-field.multiline .copy-btn { position:absolute; top:8px; right:8px; }
.email-draft-field .copy-btn { position:absolute; top:50%; right:8px; transform:translateY(-50%); }


/* ═══════════════════════════════════════════════════════════
   BLOCCO 4 — Claim Simulator + Daily Briefing
   ══════════════════════════════════════════════════════════= */

/* ── Claim Simulator (scheda interna broker) ── */
.claim-scenario { margin-bottom: 16px; }
.claim-scenario.scenario-ok       { border-left: 4px solid var(--color-border-success); }
.claim-scenario.scenario-edge     { border-left: 4px solid var(--color-border-warning); }
.claim-scenario.scenario-excluded { border-left: 4px solid var(--color-border-danger);  }
.claim-narrative { background: var(--color-background-secondary); border-radius: var(--border-radius-md); padding: 14px 16px; margin: 12px 0; font-size: 15px; line-height: 1.7; }
.claim-detail-card { background: var(--color-background-secondary); border-radius: var(--border-radius-md); padding: 12px 14px; }
.claim-detail-label { font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: var(--color-text-secondary); margin-bottom: 6px; }
.claim-amount { font-size: 20px; font-weight: 500; color: var(--color-text-primary); }
.claim-timeline { font-size: 13px; color: var(--color-text-secondary); margin-top: 4px; }
.claim-conditions { margin: 12px 0; }
.claim-conditions-list { list-style: none; padding: 0; }
.claim-conditions-list li { padding: 3px 0 3px 14px; font-size: 13px; color: var(--color-text-secondary); position: relative; }
.claim-conditions-list li::before { content: '›'; position: absolute; left: 0; }
.claim-takeaway { padding: 8px 12px; background: var(--color-background-info); border-radius: var(--border-radius-md); font-size: 13px; margin-top: 10px; }
.claim-broker-note { padding: 6px 10px; background: var(--color-background-warning); border-radius: 4px; font-size: 12px; color: var(--color-text-secondary); margin-top: 8px; border-left: 2px solid var(--color-border-warning); }

/* ── Daily Briefing ── */
.daily-briefing-card { border-left: 3px solid var(--color-border-info); }
.briefing-greeting { font-size: 15px; line-height: 1.7; color: var(--color-text-primary); padding: 10px 0 14px; border-bottom: 1px solid var(--color-border-tertiary); margin-bottom: 14px; }
.briefing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 14px; }
@media (max-width: 768px) { .briefing-grid { grid-template-columns: 1fr; } }
.briefing-column {}
.briefing-section-label { font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: var(--color-text-secondary); margin-bottom: 8px; }
.briefing-action-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.briefing-action-item { display: flex; gap: 10px; align-items: flex-start; }
.briefing-action-body { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.briefing-action-text { font-size: 14px; font-weight: 500; color: var(--color-text-primary); }
.briefing-action-context { font-size: 12px; }
.briefing-action-entity { font-size: 12px; }
.briefing-action-entity a { color: var(--color-text-info); text-decoration: none; }
.briefing-action-entity a:hover { text-decoration: underline; }
.briefing-pulse { font-size: 13px; color: var(--color-text-secondary); padding: 10px 0; border-top: 1px solid var(--color-border-tertiary); border-bottom: 1px solid var(--color-border-tertiary); margin: 10px 0; }
.briefing-alerts { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.compact-notice { padding: 6px 10px !important; font-size: 13px !important; }
.briefing-closing { font-size: 13px; font-style: italic; color: var(--color-text-secondary); text-align: center; padding-top: 10px; border-top: 1px solid var(--color-border-tertiary); }


/* ═══════════════════════════════════════════════════════════
   BLOCCO 5 — Life Protection Index, Policy Benchmark, Voice Memory
   ══════════════════════════════════════════════════════════= */

/* ── Life Protection Index ── */
.lpi-score-header { display:flex; align-items:flex-start; gap:20px; padding:14px 0; flex-wrap:wrap; }
.lpi-score-circle { width:88px; height:88px; border-radius:50%; background:conic-gradient(var(--color-background-success) 0% var(--lpi-pct,0%), var(--color-background-secondary) var(--lpi-pct,0%)); display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0; border:3px solid var(--color-border-tertiary); }
.lpi-score-number { font-size:24px; font-weight:700; line-height:1; }
.lpi-score-label  { font-size:10px; color:var(--color-text-secondary); }
.lpi-score-info   { flex:1; display:flex; flex-direction:column; gap:8px; justify-content:center; }
.lpi-radar-card   { text-align:center; }
.lpi-radar-wrap   { overflow-x:auto; padding:8px 0; }
.lpi-legend       { display:flex; gap:16px; justify-content:center; font-size:12px; color:var(--color-text-secondary); margin-top:8px; flex-wrap:wrap; }
.lpi-dot          { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:4px; vertical-align:middle; }
.lpi-axis-card    { transition:box-shadow .2s; }
.lpi-axis-card.lpi-axis-highlighted { box-shadow:0 0 0 2px var(--color-border-info); }
.lpi-axis-header  { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.lpi-axis-score   { font-size:22px; font-weight:700; }
.lpi-axis-score small { font-size:12px; font-weight:400; color:var(--color-text-secondary); }
.lpi-bar-wrap     { height:8px; background:var(--color-background-secondary); border-radius:4px; overflow:hidden; margin-bottom:8px; }
.lpi-bar          { height:100%; border-radius:4px; transition:width .5s; }
.lpi-note         { font-size:13px; color:var(--color-text-secondary); margin:4px 0; }
.lpi-gap          { font-size:13px; padding:6px 10px; background:var(--color-background-warning); border-radius:4px; margin:6px 0; }
.lpi-trigger      { margin:4px 0; }
.lpi-recommendation { font-size:13px; margin:6px 0; }
.lpi-policies     { margin-top:4px; }
.stack-list       { display:flex; flex-direction:column; gap:10px; }
.stack-row        { padding:10px 0; border-bottom:1px solid var(--color-border-tertiary); }
.stack-row:last-child { border-bottom:none; }
.gap-action       { display:block; font-size:12px; margin-top:3px; }

/* ── Policy Benchmark badge ── */
.compact-card { padding:10px 14px !important; }

/* ── Voice Recorder ── */
.voice-recorder-card {}
.voice-recorder-body {}
.voice-state {}
.voice-recording-indicator { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.voice-dot { width:12px; height:12px; border-radius:50%; background:var(--color-background-danger); animation:pulse-dot 1s infinite; flex-shrink:0; }
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.3)} }
.voice-transcript-live { min-height:60px; padding:10px 12px; background:var(--color-background-secondary); border-radius:var(--border-radius-md); font-size:13px; color:var(--color-text-secondary); margin-bottom:12px; }
.voice-btn-record { background:var(--color-background-success) !important; }
.voice-btn-stop   { background:var(--color-background-danger) !important; }
.voice-result-card { padding:2px 0; }


/* ═══════════════════════════════════════════════════════════
   BLOCCO 6 — Meeting Brief + Claim Assistant
   ══════════════════════════════════════════════════════════= */

/* ── Meeting Brief ── */
.brief-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:768px) { .brief-grid { grid-template-columns:1fr; } }
.brief-card {}
.brief-section-label { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--color-text-secondary); margin-bottom:8px; }
.brief-status-text { font-size:14px; line-height:1.6; }
.brief-agenda-list { list-style:none; padding:0; display:flex; flex-direction:column; gap:10px; }
.brief-agenda-item { display:flex; gap:12px; align-items:flex-start; padding:8px 10px; background:var(--color-background-secondary); border-radius:var(--border-radius-md); }
.brief-agenda-num { width:24px; height:24px; border-radius:50%; background:var(--color-text-primary); color:var(--color-background); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0; }
.brief-agenda-body { flex:1; display:flex; flex-direction:column; gap:3px; }
.brief-list { padding-left:18px; display:flex; flex-direction:column; gap:4px; }
.brief-list li { font-size:13px; }
.brief-risks { border-left:3px solid var(--color-border-warning); }
.brief-sensitive { border-left:3px solid var(--color-border-danger); }
.brief-sensitive-list li { color:var(--color-text-warning); }

/* ── Claim Assistant ── */
.claim-summary-card {}
.claim-meta-label { display:block; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--color-text-secondary); margin-bottom:2px; }
.three-columns { grid-template-columns:1fr 1fr 1fr !important; }
@media (max-width:900px) { .three-columns { grid-template-columns:1fr !important; } }
.claim-doc-card {}
.claim-doc-header { margin-bottom:10px; }
.claim-doc-header h3 { font-size:14px; margin:0; }
.claim-letter-pre { white-space:pre-wrap; font-family:inherit; font-size:12px; line-height:1.6; background:var(--color-background-secondary); padding:12px; border-radius:var(--border-radius-md); max-height:400px; overflow-y:auto; }
.claim-checklist { list-style:none; padding:0; display:flex; flex-direction:column; gap:8px; max-height:380px; overflow-y:auto; }
.claim-checklist-item { display:flex; flex-direction:column; gap:2px; }
.claim-check-label { display:flex; align-items:flex-start; gap:8px; cursor:pointer; font-size:13px; }
.claim-check-label input { margin-top:2px; flex-shrink:0; }
.claim-checklist-note { padding-left:22px; }
.checklist-progress { height:6px; background:var(--color-background-secondary); border-radius:3px; margin-top:10px; overflow:hidden; }
.checklist-bar { height:100%; background:var(--color-background-success); border-radius:3px; transition:width .3s; }
.claim-reminder-body {}


/* ═══════════════════════════════════════════════════════════
   BLOCCO 7 — Document Analysis + Portfolio Analytics
   ══════════════════════════════════════════════════════════= */

/* ── Document Analysis ── */
.doc-analysis-section { border-radius: var(--border-radius-lg); }
.oblig-section   { border-left: 3px solid var(--color-border-warning); }
.gap-section     { border-left: 3px solid var(--color-border-danger); }
.doc-analysis-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.doc-analysis-item { display: flex; flex-direction: column; gap: 3px; padding: 8px 0; border-bottom: 1px solid var(--color-border-tertiary); }
.doc-analysis-item:last-child { border-bottom: none; }
.doc-analysis-summary { padding: 12px 14px; background: var(--color-background-secondary); border-radius: var(--border-radius-md); margin-top: 8px; font-size: 14px; line-height: 1.6; }
.doc-actions-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.doc-action-card { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; background: var(--color-background-secondary); border-radius: var(--border-radius-md); }
.doc-action-num { width: 22px; height: 22px; border-radius: 50%; background: var(--color-text-secondary); color: var(--color-background); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.doc-action-body { flex: 1; display: flex; flex-direction: column; gap: 3px; }

/* ── Portfolio Analytics ── */
.analytics-kpi-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important; }
.analytics-stat-card { text-align: center; }
.analytics-summary-card { border-left: 3px solid var(--color-border-info); }
.analytics-summary-text { font-size: 14px; line-height: 1.7; }
.analytics-insights { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.analytics-insight { padding: 8px 12px; border-radius: var(--border-radius-md); font-size: 13px; }
.success-insight { background: var(--color-background-success); }
.danger-insight  { background: var(--color-background-warning); }
.warning-insight { background: var(--color-background-warning); }
.info-insight    { background: var(--color-background-info); }
.analytics-bar-chart { display: flex; flex-direction: column; gap: 8px; }
.analytics-bar-row { display: grid; grid-template-columns: 120px 1fr; gap: 8px; align-items: center; }
.analytics-bar-label { font-size: 12px; text-align: right; color: var(--color-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.analytics-bar-wrap { position: relative; display: flex; align-items: center; gap: 8px; height: 22px; }
.analytics-bar { height: 14px; border-radius: 4px; background: var(--color-background-success); min-width: 4px; transition: width .4s; }
.analytics-bar-val { font-size: 11px; color: var(--color-text-secondary); white-space: nowrap; }
.analytics-table { width: 100%; font-size: 13px; }
.analytics-table th { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
