/* Living Business Interface — opt-in layer over the existing canonical Portal V2. */
:root.portal-living{--li-ink:#142239;--li-subtle:#536580;--li-line:#dce6ef;--li-blue:#2359d7;--li-teal:#007b75;--li-surface:#fff;--li-radius:20px;--li-focus:#175ac9;--li-ease:cubic-bezier(.2,.8,.2,1);color-scheme:light}
.portal-living .pvmodule,.portal-living .v2visual{position:relative;min-width:0;border:1px solid var(--li-line);border-radius:var(--li-radius);background:var(--li-surface);box-shadow:0 12px 36px rgba(15,37,68,.055),0 1px 1px rgba(15,37,68,.035)}
.portal-living .v2visual{padding:clamp(14px,1.8vw,22px);isolation:isolate;overflow:visible;max-height:none!important}
.portal-living .v2visual::before{content:"";position:absolute;inset:0 auto auto 22px;width:min(84px,25%);height:3px;border-radius:0 0 6px 6px;background:linear-gradient(90deg,#2359d7,#00a99a);pointer-events:none}
.portal-living .v2visual figcaption{font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.3;font-weight:800;letter-spacing:-.025em;color:var(--li-ink);margin-bottom:12px}
.portal-living .v2visual svg{overflow:visible}
.portal-living .v2visual .v2-data-point,.portal-living .v2visual .v2-data-bar,.portal-living .v2visual .v2-data-segment{cursor:pointer;transition:filter .18s var(--li-ease),stroke-width .18s var(--li-ease)}
.portal-living .v2visual :is(.v2-data-point,.v2-data-bar,.v2-data-segment):focus-visible{outline:3px solid var(--li-focus)!important;outline-offset:3px;filter:drop-shadow(0 2px 4px rgba(35,89,215,.24))}
.portal-living .bg-li-chart-readout{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap;margin-top:.65rem;padding:.65rem .85rem;background:#f0f7fc;border:1px solid #dceaf4;border-radius:12px;color:var(--li-ink);font-size:.9rem;line-height:1.45}
.portal-living .bg-li-chart-readout strong{color:#095e67;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.portal-living .bg-li-dataset{margin-top:12px;border-top:1px solid var(--li-line);color:var(--li-ink)}
.portal-living .bg-li-dataset summary{display:flex;align-items:center;gap:.5rem;width:fit-content;min-height:44px;cursor:pointer;padding:10px 2px;font-weight:750;font-size:.9rem;list-style:none;color:var(--li-blue)}
.portal-living .bg-li-dataset summary::before{content:"+";width:21px;height:21px;display:inline-grid;place-items:center;border:1px solid currentColor;border-radius:6px;font-size:1rem;line-height:1}
.portal-living .bg-li-dataset[open] summary::before{content:"−"}
.portal-living .bg-li-dataset summary::-webkit-details-marker{display:none}
.portal-living .bg-li-table-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain;border:1px solid var(--li-line);border-radius:12px;margin-bottom:5px}
.portal-living .bg-li-table-scroll table{width:100%;min-width:min(100%,420px);font-variant-numeric:tabular-nums}
.portal-living .bg-li-table-scroll caption{padding:10px 12px;text-align:left;font-size:.75rem;color:var(--li-subtle)}
.portal-living .bg-li-table-scroll th,.portal-living .bg-li-table-scroll td{padding:11px 13px;text-align:left;font-size:.85rem;line-height:1.4;border-bottom:1px solid #e7edf3}
.portal-living .bg-li-table-scroll thead{background:#edf4f9;color:#1c3b63}
.portal-living .bg-li-table-scroll tbody tr:last-child th,.portal-living .bg-li-table-scroll tbody tr:last-child td{border-bottom:0}
.portal-living .bg-li-table-scroll tbody tr:nth-child(even){background:#f7fafc}
.portal-living .v2field{display:grid;align-content:start;gap:8px;min-width:0;border:1px solid var(--li-line);border-radius:16px;padding:14px 16px;background:linear-gradient(180deg,#fff,#fbfdff);transition:border-color .16s var(--li-ease),box-shadow .16s var(--li-ease)}
.portal-living .v2field:focus-within{border-color:#5d84d7;box-shadow:0 0 0 4px rgba(35,89,215,.09)}
.portal-living .v2fieldlabel{font-weight:750;color:var(--li-ink);font-size:.92rem;line-height:1.4}
.portal-living .v2field :is(input,select,textarea){width:100%;max-width:100%;min-height:44px;padding:10px 12px;border:1px solid #cad7e6;border-radius:10px;background:#fff;color:var(--li-ink);font-size:1rem;line-height:1.5}
.portal-living .v2field :is(input,select,textarea)[aria-invalid="true"]{border-color:#bd3343;box-shadow:0 0 0 3px rgba(189,51,67,.08)}
.portal-living .v2field small{color:var(--li-subtle);font-size:.8rem;line-height:1.5}
.portal-living .v2fielderror:not([hidden]){color:#a82035;font-size:.85rem;font-weight:650}
.portal-living :is(.bg-li-dataset summary,.bg-li-table-scroll,[data-field-id]):focus-visible{outline:3px solid var(--li-focus)!important;outline-offset:3px;box-shadow:none!important}
@media(hover:hover) and (pointer:fine){.portal-living .pvmodule:hover,.portal-living .v2visual:hover{border-color:#c6d7e9;box-shadow:0 18px 40px rgba(15,37,68,.09)}.portal-living .bg-li-table-scroll tbody tr:hover{background:#eaf5fa}}
@media(max-width:480px){.portal-living .v2visual{padding:13px;border-radius:15px}.portal-living .v2field{padding:12px;border-radius:13px}.portal-living .bg-li-table-scroll th,.portal-living .bg-li-table-scroll td{padding:9px 10px;font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.portal-living .v2visual *,.portal-living .pvmodule,.portal-living .v2field{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
