@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,650&display=swap');

.bi2 { --ink:#17352e; --deep:#0a503e; --green:#0e8065; --lime:#d7eb81; --sand:#f3f1e9; --line:#dbe4d9; --muted:#5a726a; --paper:#fffefa; color:var(--ink); font-family:'DM Sans',sans-serif; background:var(--sand); padding:clamp(20px,3vw,48px); min-height:70vh; }
.bi2 *, .bi2 *::before, .bi2 *::after { box-sizing:border-box; }
.bi2 h1,.bi2 h2,.bi2 h3,.bi2 h4,.bi2 p { margin-top:0; }
.bi2 h1,.bi2 h2 { font-family:'Fraunces',Georgia,serif; letter-spacing:-.035em; }
.bi2 button,.bi2 input,.bi2 select,.bi2 textarea { font:inherit; }
.bi2 button { cursor:pointer; }
.bi2 a { color:inherit; text-decoration:none; }
.bi2-eyebrow { color:#537d68; font-size:.76rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.bi2-hero { position:relative; overflow:hidden; display:flex; align-items:end; justify-content:space-between; gap:24px; background:linear-gradient(120deg,#0a3d32,#08775b); color:#fff; border-radius:30px; padding:clamp(26px,4vw,54px); margin-bottom:24px; }
.bi2-hero::after { content:''; position:absolute; right:-110px; bottom:-190px; width:560px; aspect-ratio:1; border:1px solid #ffffff45; border-radius:50%; box-shadow:0 0 0 70px #ffffff0c,0 0 0 140px #ffffff0a; pointer-events:none; }
.bi2-hero > * { position:relative; z-index:1; }
.bi2-hero .bi2-eyebrow { color:#d7eb81; }
.bi2-hero h1 { font-size:clamp(2.2rem,5vw,4.1rem); margin-bottom:12px; line-height:1.08; }
.bi2-hero p:not(.bi2-eyebrow) { max-width:690px; color:#e0f2e9; font-size:1.05rem; line-height:1.55; margin-bottom:0; }
.bi2-hero__actions { display:flex; flex-direction:column; align-items:flex-end; gap:10px; min-width:210px; }
.bi2-hero__actions a { font-size:.91rem; color:#fff; text-decoration:underline; text-underline-offset:4px; }
.bi2-demo-label { display:inline-flex; color:#15372c; background:var(--lime); padding:9px 14px; border-radius:100px; font-size:.78rem; font-weight:800; white-space:nowrap; }
.bi2-admin-layout { display:grid; grid-template-columns:minmax(220px,280px) minmax(0,1fr); gap:24px; align-items:start; }
.bi2-rail { position:sticky; top:18px; background:#e7eee7; padding:22px; border-radius:24px; }
.bi2-rail__head { display:flex; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px solid #c9d9ce; font-size:.9rem; letter-spacing:.08em; text-transform:uppercase; }
.bi2-rail__head span { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; color:#fff; background:var(--deep); }
.bi2-rail nav { display:grid; gap:6px; padding:13px 0; }
.bi2-rail nav a { display:flex; justify-content:space-between; align-items:center; gap:7px; padding:14px; border-radius:13px; font-weight:800; font-size:.82rem; letter-spacing:.035em; }
.bi2-rail nav a:hover,.bi2-rail nav a.is-active { color:#fff; background:var(--deep); }
.bi2-rail nav a span:last-child { opacity:.65; }
.bi2-rail__add { width:100%; text-align:left; border:1px dashed #9bb8a4; color:var(--deep); background:#f6faf5; padding:14px; border-radius:13px; font-weight:800; }
.bi2-rail__note { color:#61776c; font-size:.83rem; line-height:1.5; margin-top:20px; }
.bi2-workspace { min-width:0; }
.bi2-workspace__title { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:12px 4px 23px; }
.bi2-workspace__title h2 { font-size:clamp(2rem,4vw,3.4rem); margin-bottom:4px; text-transform:uppercase; }
.bi2-workspace__title p:last-child { color:var(--muted); margin-bottom:0; }
.bi2-outline,.bi2-primary { border:0; border-radius:12px; padding:12px 18px; font-weight:800; white-space:nowrap; }
.bi2-outline { border:1px solid var(--deep); color:var(--deep); background:transparent; }
.bi2-outline:hover { background:#e6f1e9; }
.bi2-primary { background:var(--deep); color:#fff; }
.bi2-primary:hover { background:#087154; }
.bi2-primary:disabled { opacity:.6; cursor:wait; }
.bi2-month-panel { background:var(--paper); padding:clamp(20px,3vw,30px); border:1px solid var(--line); border-radius:22px; box-shadow:0 14px 35px #183b2610; }
.bi2-month-panel__top { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.bi2-month-panel h3 { font-family:'Fraunces',Georgia,serif; font-size:clamp(1.9rem,3vw,2.7rem); margin:0; }
.bi2-month-panel h3 span { color:#799188; }
.bi2-month-panel__top label { display:grid; gap:5px; color:var(--muted); font-size:.78rem; font-weight:800; }
.bi2 select,.bi2 input:not([type=checkbox]),.bi2 textarea { border:1px solid #bfd1c5; border-radius:11px; background:#fff; color:var(--ink); padding:11px 13px; min-width:0; outline:none; }
.bi2 select:focus,.bi2 input:focus,.bi2 textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px #0e806527; }
.bi2-months { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:7px; margin:20px 0 12px; }
.bi2-months button { border:1px solid #c8d9ce; background:#f2f7f1; color:#375b49; border-radius:9px; padding:10px 2px; font-size:.8rem; font-weight:800; }
.bi2-months button:hover,.bi2-months button.is-active { background:var(--deep); border-color:var(--deep); color:#fff; }
.bi2-month-panel > p { margin-bottom:0; color:var(--muted); font-size:.88rem; }
.bi2-totals { display:flex; flex-wrap:wrap; align-items:stretch; gap:12px; margin:18px 0 36px; }
.bi2-totals > div { padding:20px; border-radius:18px; min-width:180px; }
.bi2-totals__lead { flex:1; background:#dcece3; }
.bi2-totals__lead span,.bi2-totals__number span { display:block; font-size:.67rem; font-weight:800; letter-spacing:.11em; margin-bottom:10px; }
.bi2-totals__lead strong,.bi2-totals__number strong { display:block; font-family:'Fraunces',Georgia,serif; font-size:2.5rem; line-height:1; }
.bi2-totals__lead small,.bi2-totals__number small { display:block; margin-top:7px; }
.bi2-totals__number { background:var(--deep); color:#fff; }
.bi2-totals__number span { color:#c4e1d3; }
.bi2-totals__rule { flex:1.2; background:#fff; color:#4f6a5b; line-height:1.6; font-size:.85rem; }
.bi2-section-head { display:flex; justify-content:space-between; align-items:end; gap:15px; margin:0 0 16px; }
.bi2-section-head h3 { font-family:'Fraunces',Georgia,serif; font-size:2rem; margin-bottom:0; }
.bi2-section-head > span { color:var(--muted); font-size:.85rem; }
.bi2-section-head--rates { margin-top:40px; }
.bi2-service-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:14px; }
.bi2-service,.bi2-rate { background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:22px; box-shadow:0 8px 20px #1539270a; min-width:0; }
.bi2-service__head { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.bi2-tag { display:inline-flex; align-items:center; border-radius:30px; padding:5px 9px; font-size:.65rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.bi2-tag--sum { color:#12573c; background:#ddf2e4; }.bi2-tag--separate { color:#8a552e; background:#fff0da; }.bi2-tag--demo { color:#614072; background:#f2e7f4; }
.bi2-service h4,.bi2-rate h4 { font-size:1.14rem; line-height:1.28; text-transform:uppercase; margin-bottom:7px; }
.bi2-service > p { color:var(--muted); font-size:.83rem; line-height:1.48; min-height:38px; margin-bottom:17px; }
.bi2-service__form { display:flex; align-items:end; gap:8px; padding:13px; background:#f0f5ee; border-radius:13px; }
.bi2-service__form label { display:grid; gap:5px; flex:1; min-width:0; color:#436451; font-size:.74rem; font-weight:800; }
.bi2-service__form input { width:100%; font-size:1.45rem !important; font-weight:800 !important; }
.bi2-service__form button { height:46px; }
.bi2-service__foot { display:flex; justify-content:space-between; gap:10px; margin-top:18px; font-size:.8rem; color:var(--muted); }
.bi2-service__foot button,.bi2-text-button { border:0; background:none; color:var(--deep); font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.bi2-service__distribution { display:block; color:#728a7b; margin-top:8px; }
.bi2-rate-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:14px; }
.bi2-rate h4 { margin:15px 0; }.bi2-rate__result { display:block; font-family:'Fraunces',Georgia,serif; font-size:2.2rem; color:var(--deep); margin-bottom:12px; }
.bi2-rate form { display:grid; gap:9px; }.bi2-rate label { display:grid; gap:4px; color:var(--muted); font-size:.78rem; font-weight:700; }.bi2-rate form > span { font-size:1.2rem; color:var(--green); }
.bi2-explain { color:var(--muted); line-height:1.5; margin-bottom:17px; }
.bi2-empty { border:1px dashed #92baa4; background:#f9fbf5; border-radius:22px; padding:clamp(25px,5vw,55px); }.bi2-empty h2 { font-size:2.6rem; }.bi2-empty--small { padding:24px; }.bi2-empty--small h3 { font-size:1.25rem; }
.bi2-dialog { width:min(500px,calc(100vw - 28px)); max-height:calc(100vh - 32px); overflow:auto; border:0; border-radius:23px; padding:28px; color:var(--ink); box-shadow:0 25px 100px #092b2769; font-family:'DM Sans',sans-serif; }
.bi2-dialog::backdrop { background:#071e20a8; backdrop-filter:blur(5px); }.bi2-dialog h2 { font-family:'Fraunces',Georgia,serif; font-size:2rem; margin-bottom:12px; }.bi2-dialog > form:not([data-bi2-form]) { position:absolute; top:15px; right:15px; }.bi2-dialog__close { background:#eaf0e9; border:0; border-radius:50%; width:37px; height:37px; font-size:1.4rem; }
.bi2-dialog form[data-bi2-form] { display:grid; gap:14px; }.bi2-dialog form[data-bi2-form] > label { display:grid; gap:6px; font-size:.83rem; font-weight:800; }.bi2-dialog [data-bi2-count-fields],.bi2-dialog [data-bi2-ratio-fields] { display:grid; gap:12px; }.bi2-dialog [hidden] { display:none !important; }.bi2-dialog [data-bi2-count-fields] label,.bi2-dialog [data-bi2-ratio-fields] label { display:grid; gap:6px; font-size:.83rem; font-weight:800; }.bi2-checkbox { display:flex !important; align-items:center; gap:9px; }.bi2-dialog small,.bi2-dialog__hint { color:var(--muted); line-height:1.45; }
.bi2-allocation-row { display:flex !important; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); }.bi2-allocation-row > span { display:grid; gap:2px; }.bi2-allocation-row input { width:100px; }.bi2-text-button { padding:12px 0; }
.bi2-toast { position:fixed; right:20px; bottom:20px; z-index:10000; max-width:min(420px,calc(100vw - 40px)); padding:15px 20px; background:var(--deep); color:#fff; border-radius:12px; box-shadow:0 12px 50px #0004; font-weight:800; }.bi2-toast.is-error { background:#a23831; }.bi2-toast[hidden] { display:none; }
@media(max-width:900px){ .bi2-admin-layout{grid-template-columns:1fr}.bi2-rail{position:static}.bi2-rail nav{display:flex;overflow-x:auto}.bi2-rail nav a{min-width:170px}.bi2-months{grid-template-columns:repeat(6,1fr)}.bi2-hero{align-items:start;flex-direction:column}.bi2-hero__actions{align-items:start}}
@media(max-width:560px){ .bi2{padding:15px}.bi2-hero{border-radius:20px}.bi2-months{grid-template-columns:repeat(4,1fr)}.bi2-workspace__title{align-items:start;flex-direction:column}.bi2-totals>div{width:100%}.bi2-service-grid,.bi2-rate-grid{grid-template-columns:1fr}.bi2-service__form{align-items:stretch;flex-direction:column}.bi2-service__form button{width:100%} }

.bi2--public { max-width:1500px; margin:auto; padding-bottom:70px; }
.bi2-hero--public { min-height:285px; }
.bi2-hero--public h1 { max-width:830px; }
.bi2-hero__stat { min-width:180px; display:grid; gap:5px; text-align:right; }
.bi2-hero__stat span { font-size:.7rem; font-weight:800; letter-spacing:.12em; color:#cae4d3; }
.bi2-hero__stat strong { font-family:'Fraunces',Georgia,serif; font-size:4.2rem; line-height:1; }
.bi2-hero__stat small { color:#d6ece2; }
.bi2-public-notice { display:flex; align-items:start; gap:14px; background:#fff5e2; border:1px solid #e9d3a5; color:#745734; padding:14px 18px; border-radius:15px; margin-bottom:22px; }
.bi2-public-notice__mark { display:grid; place-items:center; width:25px; height:25px; flex:none; border-radius:50%; background:#e1aa58; color:#fff; font-weight:900; }
.bi2-public-notice p { margin:0; font-size:.87rem; line-height:1.5; }
.bi2-sector-tabs { display:flex; gap:10px; overflow-x:auto; padding-bottom:10px; margin-bottom:26px; }
.bi2-sector-tabs a { display:grid; grid-template-columns:1fr auto; gap:8px; min-width:210px; flex:1; padding:18px 20px; background:#fefefb; border:1px solid var(--line); border-radius:16px; transition:transform .2s, background .2s; }
.bi2-sector-tabs a:hover { transform:translateY(-3px); }
.bi2-sector-tabs a.is-active { background:var(--deep); color:#fff; }
.bi2-sector-tabs a > span { grid-column:1/-1; font-size:.66rem; font-weight:800; letter-spacing:.13em; opacity:.65; }
.bi2-sector-tabs a strong { font-size:.92rem; line-height:1.25; }.bi2-sector-tabs a b { opacity:.6; }
.bi2-public-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:30px 0 20px; }
.bi2-public-head h2 { font-size:clamp(2.4rem,5vw,4rem); margin-bottom:5px; }
.bi2-public-head p:last-child { margin:0; color:var(--muted); }
.bi2-public-head__pulse { white-space:nowrap; color:#2d8063; background:#e4f3e8; padding:10px 14px; border-radius:25px; font-size:.73rem; font-weight:800; }
.bi2-filter { background:var(--paper); border:1px solid var(--line); border-radius:22px; padding:clamp(20px,3vw,30px); margin-bottom:18px; }
.bi2-filter__title { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; margin-bottom:16px; }
.bi2-filter__title span { color:var(--green); font-size:.74rem; font-weight:800; letter-spacing:.12em; }.bi2-filter__title strong { font-family:'Fraunces',Georgia,serif; font-size:1.6rem; }
.bi2-filter__grid { display:flex; align-items:center; gap:14px; }.bi2-filter__pair { flex:1; display:flex; align-items:center; gap:8px; padding:9px 14px; background:#f0f6ef; border-radius:14px; }.bi2-filter__pair > span { margin-right:auto; font-weight:800; color:var(--deep); }.bi2-filter__pair select { flex:1; border:0; background:#fff; font-weight:800; }.bi2-filter__arrow { color:var(--green); font-size:1.4rem; }
.bi2-filter__quick { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:16px; }.bi2-filter__quick span { margin-right:4px; color:var(--muted); font-size:.8rem; font-weight:800; }.bi2-filter__quick button,.bi2-chart-switch button { border:1px solid #bed5c4; border-radius:25px; background:#fff; color:var(--deep); padding:8px 13px; font-size:.79rem; font-weight:800; }.bi2-filter__quick button:hover,.bi2-filter__quick button.is-active,.bi2-chart-switch button:hover,.bi2-chart-switch button.is-active { background:var(--deep); border-color:var(--deep); color:#fff; }
.bi2-filter__error { color:#ad3f35; margin:10px 0 0; font-weight:800; }.bi2-filter__error[hidden] { display:none; }
.bi2-summary { display:grid; grid-template-columns:minmax(260px,1.6fr) repeat(2,minmax(170px,1fr)); gap:12px; margin:20px 0 42px; }.bi2-summary > div { border-radius:20px; padding:25px; min-width:0; }.bi2-summary span { display:block; font-size:.7rem; font-weight:800; letter-spacing:.12em; }.bi2-summary strong { display:block; font-family:'Fraunces',Georgia,serif; font-size:clamp(2.2rem,4vw,3.6rem); line-height:1; margin:12px 0 4px; }.bi2-summary small { font-weight:700; }.bi2-summary__main { background:#0b5843; color:#fff; }.bi2-summary__main span { color:#cde9db; }.bi2-summary__main p { max-width:420px; color:#d7ece1; font-size:.81rem; line-height:1.5; margin:15px 0 0; }.bi2-summary__support { background:#e5ece2; }.bi2-summary__support span { color:#527361; }.bi2-summary__support small { color:#648173; }
.bi2-visual,.bi2-prof-section,.bi2-other { background:var(--paper); border:1px solid var(--line); border-radius:26px; padding:clamp(20px,3vw,34px); margin-bottom:24px; }.bi2-visual__heading { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:18px; }.bi2-visual h3,.bi2-prof-section h3,.bi2-other h3 { font-family:'Fraunces',Georgia,serif; font-size:clamp(1.8rem,3vw,2.8rem); margin:0 0 5px; }.bi2-visual__heading p:last-child { color:var(--muted); margin-bottom:0; }.bi2-chart-switch { display:flex; flex-wrap:wrap; gap:5px; }.bi2-visual__filters { display:flex; flex-wrap:wrap; gap:8px; padding:20px 0; }.bi2-service-choice { display:flex; align-items:center; gap:7px; padding:9px 12px; border:1px solid var(--line); border-radius:12px; background:#f3f8f1; font-size:.77rem; font-weight:800; cursor:pointer; }.bi2-service-choice input { accent-color:var(--green); }.bi2-service-choice small { color:#8a552e; }.bi2-chart { width:100%; height:420px; }.bi2-chart-note { color:var(--muted); font-size:.83rem; line-height:1.5; margin:4px 0 0; }
.bi2-prof-section .bi2-section-head,.bi2-other .bi2-section-head { margin-bottom:10px; }.bi2-prof-section__layout { display:grid; grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr); gap:28px; }.bi2-prof-section__selector { background:#f1f7f1; border-radius:16px; padding:18px; }.bi2-prof-section__selector label { display:grid; gap:7px; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.bi2-prof-row { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #d7e4d7; font-size:.84rem; }.bi2-prof-row strong { color:var(--deep); }.bi2-chart--prof { height:330px; }
.bi2-other__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }.bi2-other-card { border-radius:17px; background:#eef3e9; padding:22px; }.bi2-other-card span { color:#4b775d; font-size:.65rem; font-weight:800; letter-spacing:.12em; }.bi2-other-card h4 { font-size:.98rem; text-transform:uppercase; margin:12px 0; }.bi2-other-card strong { display:block; font-family:'Fraunces',Georgia,serif; font-size:2.1rem; color:var(--deep); }.bi2-other-card p { color:var(--muted); font-size:.82rem; line-height:1.5; margin:10px 0 0; }.bi2-footer-note { color:var(--muted); font-size:.82rem; line-height:1.6; border-top:1px solid #c9d9ce; padding-top:18px; }
@media(max-width:900px){.bi2-summary{grid-template-columns:1fr 1fr}.bi2-summary__main{grid-column:1/-1}.bi2-prof-section__layout{grid-template-columns:1fr}.bi2-hero__stat{display:none}}
@media(max-width:620px){.bi2-public-head{align-items:start;flex-direction:column}.bi2-filter__grid{flex-direction:column;align-items:stretch}.bi2-filter__arrow{display:none}.bi2-filter__pair{flex-wrap:wrap}.bi2-filter__pair select{min-width:80px}.bi2-summary{grid-template-columns:1fr}.bi2-summary__main{grid-column:auto}.bi2-chart{height:340px}}

.bi2-archived-allocation { color:#8a552e; background:#fff0da; border-radius:10px; padding:9px 12px; font-size:.8rem; }
.bi2-prof-search { display:grid; gap:6px; margin:14px 0; font-size:.8rem; font-weight:800; }.bi2-allocation-row[hidden] { display:none !important; }
.bi2-manage { margin-top:36px; border:1px solid var(--line); border-radius:21px; background:var(--paper); overflow:hidden; }
.bi2-manage > summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:22px 26px; cursor:pointer; list-style:none; }
.bi2-manage > summary::-webkit-details-marker { display:none; }
.bi2-manage > summary span { display:grid; gap:4px; }.bi2-manage > summary strong { font-family:'Fraunces',Georgia,serif; font-size:1.5rem; }.bi2-manage > summary small { color:var(--muted); font-size:.82rem; }.bi2-manage > summary b { color:var(--green); font-size:1.5rem; }.bi2-manage[open] > summary b { transform:rotate(45deg); }
.bi2-manage__section { padding:24px 26px; border-top:1px solid var(--line); }.bi2-manage__section h4 { margin:0 0 16px; font-size:1rem; text-transform:uppercase; }.bi2-manage__section-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.bi2-manage__row { display:flex; align-items:end; gap:10px; padding:14px 0; border-top:1px solid #e8eee5; }.bi2-manage__form { flex:1; display:flex; flex-wrap:wrap; align-items:end; gap:8px; }.bi2-manage__form label { display:grid; gap:5px; color:var(--muted); font-size:.72rem; font-weight:800; min-width:130px; flex:1; }.bi2-manage__form label:first-of-type { min-width:180px; }.bi2-manage__form .bi2-checkbox { flex:0 1 180px; font-size:.76rem; }.bi2-manage__form input:not([type=checkbox]) { width:100%; }.bi2-manage__row .bi2-text-button { padding:10px; color:#a15d4d; }
.bi2-manage__archived { background:#f3f7f1; border-radius:12px; padding:14px; margin-top:15px; }.bi2-manage__archived summary { cursor:pointer; font-weight:800; }.bi2-manage__archived form { display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--line); padding:10px 0; }
.bi2-archived-row { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--line); }
.bi2-archived-row form { flex:1; min-width:0; border-top:0; }
.bi2-archived-row strong { overflow-wrap:anywhere; }
.bi2-text-button--danger { color:#a43532; cursor:pointer; text-align:left; }
@media(max-width:560px){.bi2-archived-row{align-items:stretch;flex-direction:column;gap:0}.bi2-archived-row .bi2-text-button{padding:0 0 12px}}
@media(max-width:680px){.bi2-manage__row{flex-direction:column;align-items:stretch}.bi2-manage__form{display:grid;grid-template-columns:1fr}.bi2-manage__form label{min-width:0 !important}.bi2-manage__section{padding:18px}.bi2-manage__section-head{align-items:start;flex-direction:column}}

/* Public BI period and comparison controls */
.bi2--public .bi2-filter { background:linear-gradient(145deg,#fff 0%,#f4f8f2 100%); box-shadow:0 18px 48px rgba(21,67,47,.07); }
.bi2--public .bi2-filter__grid { display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr); gap:14px; }
.bi2--public .bi2-filter__arrow { text-align:center; font-size:1.7rem; }
.bi2-period-card { width:100%; min-height:124px; display:grid; align-content:center; justify-items:start; gap:5px; padding:18px 22px; text-align:left; border:1px solid #c9ddd1; border-radius:17px; background:#fff; color:var(--deep); cursor:pointer; transition:border-color .18s,box-shadow .18s,transform .18s; }
.bi2-period-card:hover { border-color:var(--green); box-shadow:0 8px 23px rgba(19,90,67,.12); transform:translateY(-2px); }
.bi2-period-card__eyebrow,.bi2-filter__compare-kicker { color:#537a67; font-size:.69rem; letter-spacing:.12em; font-weight:900; }
.bi2-period-card strong { font-family:'Fraunces',Georgia,serif; font-size:clamp(1.45rem,2.3vw,2rem); line-height:1.15; }
.bi2-period-card small { color:var(--green); font-size:.78rem; font-weight:800; }
.bi2-filter__quick { border-bottom:1px solid #dbe8dd; padding-bottom:18px; }
.bi2-filter__compare { display:flex; justify-content:space-between; align-items:center; gap:18px; padding-top:22px; }
.bi2-filter__compare > div:first-child { max-width:330px; }
.bi2-filter__compare strong { display:block; margin-top:5px; color:var(--deep); font-size:1.08rem; }
.bi2-filter__compare p { margin:5px 0 0; color:var(--muted); font-size:.78rem; line-height:1.45; }
.bi2-compare-switch { display:flex; flex-wrap:wrap; gap:4px; padding:5px; border:1px solid #d7e7d9; border-radius:15px; background:#eaf2ea; }
.bi2-compare-switch button { padding:10px 13px; border:0; border-radius:10px; background:transparent; color:#426453; font-size:.76rem; font-weight:800; cursor:pointer; }
.bi2-compare-switch button:hover { background:#d8e7d8; }
.bi2-compare-switch button.is-active { background:var(--deep); color:#fff; box-shadow:0 3px 10px rgba(17,75,55,.16); }
.bi2-filter__range-caption { display:flex; gap:8px; margin:19px 0 0; padding:12px 15px; border-radius:11px; background:#e6f0e6; color:#315f48; font-size:.8rem; line-height:1.5; font-weight:700; }
.bi2-filter__range-caption::before { content:'✓'; font-weight:900; }
.bi2-comparison { margin:-20px 0 42px; padding:24px 28px; border:1px solid var(--line); border-radius:22px; background:#fff; }
.bi2-comparison[hidden] { display:none; }
.bi2-summary__support[hidden] { display:none; }
.bi2-summary:has(.bi2-summary__support[hidden]) { grid-template-columns:minmax(260px,1.6fr) minmax(170px,1fr); }
.bi2-comparison__heading { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:20px; }
.bi2-comparison__heading h3 { margin:3px 0 0; font-family:'Fraunces',Georgia,serif; font-size:1.5rem; }
.bi2-comparison__heading > p { max-width:360px; margin:0; color:var(--muted); font-size:.78rem; line-height:1.5; }
.bi2-comparison__rows { display:grid; gap:16px; }
.bi2-comparison__row { display:grid; grid-template-columns:minmax(175px,.85fr) minmax(0,2fr) minmax(70px,.4fr); align-items:center; gap:18px; }
.bi2-comparison__row > div:first-child { display:grid; gap:3px; }
.bi2-comparison__row span { color:#57806d; font-size:.64rem; font-weight:900; letter-spacing:.1em; }
.bi2-comparison__row strong { font-size:.87rem; color:var(--deep); }
.bi2-comparison__row b { color:var(--deep); font-family:'Fraunces',Georgia,serif; font-size:1.35rem; text-align:right; }
.bi2-comparison__track { height:20px; overflow:hidden; border-radius:20px; background:#edf3eb; }
.bi2-comparison__track i { display:block; width:0; height:100%; border-radius:20px; background:linear-gradient(90deg,#0e7558,#87ba74); transition:width .45s ease; }
.bi2-comparison__row--previous .bi2-comparison__track i { background:linear-gradient(90deg,#8a9f90,#b9cbab); }
.bi2-month-dialog { width:min(460px,calc(100vw - 28px)); max-height:min(650px,calc(100vh - 28px)); padding:26px; border:1px solid #d6e5d8; border-radius:24px; background:#fffefa; color:var(--deep); box-shadow:0 22px 80px rgba(9,50,35,.25); }
.bi2-month-dialog::backdrop { background:rgba(12,38,29,.65); backdrop-filter:blur(3px); }
.bi2-month-dialog__head { display:flex; justify-content:space-between; gap:18px; }
.bi2-month-dialog__head span { color:var(--green); font-size:.7rem; font-weight:900; letter-spacing:.12em; }
.bi2-month-dialog__head h3 { margin:4px 0 0; font-family:'Fraunces',Georgia,serif; font-size:1.7rem; }
.bi2-month-dialog__head > button { align-self:start; width:34px; height:34px; border:0; border-radius:50%; background:#e8f1e9; font-size:1.35rem; cursor:pointer; }
.bi2-month-dialog__year { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:25px 0 20px; padding:8px; border-radius:14px; background:#ebf3eb; }
.bi2-month-dialog__year strong { font-family:'Fraunces',Georgia,serif; font-size:1.35rem; }
.bi2-month-dialog__year button { width:37px; height:37px; border:0; border-radius:10px; background:#fff; color:var(--deep); cursor:pointer; }
.bi2-month-dialog__months { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.bi2-month-dialog__months button { min-height:50px; border:1px solid #d8e6d8; border-radius:11px; background:#fff; color:var(--deep); font-weight:800; cursor:pointer; }
.bi2-month-dialog__months button:hover:not(:disabled),.bi2-month-dialog__months button.is-selected { background:var(--deep); border-color:var(--deep); color:#fff; }
.bi2-month-dialog button:disabled { opacity:.32; cursor:not-allowed; }
.bi2-month-dialog > p { margin:20px 0 0; color:var(--muted); font-size:.8rem; line-height:1.45; }
.bi2--public button:focus-visible,.bi2-month-dialog button:focus-visible { outline:3px solid #e6a241; outline-offset:2px; }
@media(max-width:850px){.bi2-filter__compare{align-items:stretch;flex-direction:column}.bi2-filter__compare > div:first-child{max-width:none}.bi2-compare-switch button{flex:1}}
@media(max-width:620px){.bi2--public .bi2-filter__grid{grid-template-columns:1fr;gap:7px}.bi2--public .bi2-filter__arrow{display:block;line-height:1;text-align:center;transform:rotate(90deg)}.bi2-period-card{min-height:100px}.bi2-compare-switch{display:grid;grid-template-columns:1fr}.bi2-comparison{margin-top:-18px;padding:20px}.bi2-comparison__heading{align-items:start;flex-direction:column}.bi2-comparison__row{grid-template-columns:1fr auto;gap:8px}.bi2-comparison__row .bi2-comparison__track{grid-column:1/-1;grid-row:2}.bi2-comparison__row b{grid-column:2;grid-row:1}.bi2-month-dialog{padding:20px}}
@media(max-width:620px){.bi2-summary:has(.bi2-summary__support[hidden]){grid-template-columns:1fr}}

.bi2-service__foot { align-items:start; }
.bi2-service__foot > div { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:5px 12px; }
.bi2-service__foot button { font-size:.77rem; }
.bi2-service__locked { display:block; margin-top:7px; color:#527361; font-weight:700; }
.bi2-service__form input[readonly] { background:#e8eee8; color:#527361; }
.bi2-dialog--breakdown { width:min(580px,calc(100vw - 28px)); }
.bi2-breakdown__existing { padding:12px 14px; border-radius:11px; background:#fff0da; color:#785d32; font-size:.83rem; }
.bi2-breakdown__rows { display:grid; gap:8px; max-height:42vh; overflow:auto; padding-right:4px; }
.bi2-breakdown__row { display:grid; grid-template-columns:minmax(0,1fr) 125px; align-items:center; gap:10px; }
.bi2-breakdown__row > span { font-size:.83rem; font-weight:800; }
.bi2-breakdown__row input { width:100%; }
.bi2-breakdown__total { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:16px; border-radius:12px; background:#e5f1e7; color:var(--deep); font-weight:800; }
.bi2-breakdown__total strong { font-family:'Fraunces',Georgia,serif; font-size:1.8rem; }
.bi2-other-card__chart { width:100%; height:185px; margin-top:16px; }
.bi2-mini-switch { display:flex; flex-wrap:wrap; gap:6px; margin-top:17px; }
.bi2-mini-switch button { border:1px solid #bfd6c5; border-radius:20px; padding:7px 11px; background:#fff; color:var(--deep); font:700 .74rem 'DM Sans',sans-serif; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.bi2-mini-switch button:hover,.bi2-mini-switch button.is-active { border-color:var(--deep); background:var(--deep); color:#fff; }
.bi2-chart-caution { display:block; margin-top:7px; color:var(--muted); font-size:.72rem; line-height:1.45; }
.bi2-breakdown-section { background:var(--paper); border:1px solid var(--line); border-radius:26px; padding:clamp(20px,3vw,34px); margin-bottom:24px; }
.bi2-breakdown-section[hidden] { display:none; }
.bi2-breakdown-section h3 { font-family:'Fraunces',Georgia,serif; font-size:clamp(1.8rem,3vw,2.8rem); margin:0; }
.bi2-breakdown-section__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.bi2-breakdown-card { min-width:0; padding:22px; border:1px solid #d2e1d4; border-radius:19px; background:#f5f9f4; }
.bi2-breakdown-card h4 { margin:0 0 5px; color:var(--deep); font-size:1.05rem; }
.bi2-breakdown-card > p { margin:0 0 18px; color:var(--muted); font-size:.83rem; }
.bi2-breakdown-card__chart { width:100%; margin:12px 0 16px; }
.bi2-breakdown-card__list { display:grid; gap:0; max-height:260px; overflow:auto; padding:3px 12px; border:1px solid #dbe9dd; border-radius:12px; background:#fff; }
.bi2-breakdown-card__row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 12px; padding:10px 0; border-bottom:1px solid #e6eee5; font-size:.82rem; }
.bi2-breakdown-card__row:last-child { border-bottom:0; }
.bi2-breakdown-card__row span { overflow-wrap:anywhere; }
.bi2-breakdown-card__row strong { color:var(--deep); }
.bi2-footer-note a { color:var(--deep); font-weight:800; text-decoration:underline; }
@media(max-width:560px){.bi2-breakdown__row{grid-template-columns:minmax(0,1fr) 95px}.bi2-service__foot{flex-direction:column}.bi2-service__foot > div{justify-content:flex-start}}
