:root{--ink:#172b2b;--muted:#6e7c7c;--paper:#f4f6f4;--line:#dde5df;--green:#176452;--lime:#c6e8a4;--red:#ae4a36}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--paper);font-size:16px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);padding:10px 15px;border-radius:7px;transition:.15s}button:hover{border-color:var(--green);background:#f1f7f2}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#124e40;color:white}input,select,textarea{width:100%;border:1px solid #cfd9d1;padding:11px;border-radius:6px;background:white;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #b4d9c0;outline-offset:1px}label{display:block;font-size:15px;font-weight:600;margin-bottom:15px}label input,label select,label textarea{display:block;margin-top:7px}small,.muted{color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-weight:650;font-size:28px;letter-spacing:-.8px}h2{font-size:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted)}.login{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr;max-width:1400px;margin:auto;align-items:center;padding:70px;gap:100px}.login-intro .brand-mark{font-size:60px;font-weight:800;color:var(--green);display:block;margin-bottom:65px}.login-intro h1{font-size:44px;line-height:1.5;font-weight:500}.login-intro p{line-height:1.9;color:var(--muted)}.login-intro small{display:block;margin-top:80px}.login-card{padding:40px;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 60px #183a2610}.login-card h2{margin:16px 0 30px}.login-card .primary{width:100%;margin:25px 0 5px}.login-card small{font-size:11px;line-height:1.8}details{margin-bottom:15px}summary{cursor:pointer;color:var(--muted);font-size:16px}details label{margin-top:15px}.status-dot{width:6px;height:6px;background:#b9e398;border-radius:50%;display:inline-block;margin-right:6px}.main{margin-left:var(--program-rail);padding:36px 45px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}header h1{margin:10px 0 0}.project-switch{display:flex;align-items:center;gap:12px}.project-switch label{margin:0;white-space:nowrap;color:var(--muted)}.project-switch select{min-width:180px}.project-switch button{white-space:nowrap}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.toolbar p{color:var(--muted);font-size:12px;margin:0}.toolbar div{display:flex;gap:8px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{border:1px solid var(--line);border-radius:10px;background:white;padding:22px}.stat small{font-size:15px}.stat strong{display:block;font-size:27px;font-weight:600;margin:15px 0 8px;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.stat span{font-size:10px;color:var(--muted)}.stat.highlight{background:var(--green);color:white;border-color:var(--green)}.stat.highlight small,.stat.highlight span{color:#c6dfd3}.panel{background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:22px;overflow:hidden}.panel-head{padding:21px 23px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:14px}.panel-head h2{font-size:20px;margin:0}.panel-head small{font-size:11px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:16px;white-space:nowrap}th{font-size:16px;text-align:left;font-weight:600;color:var(--muted);padding:14px 20px;background:#fafbf9}td{padding:17px 20px;border-top:1px solid #edf1ed}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td button{font-size:15px;padding:6px 10px}.negative,.error{color:var(--red)}.tag{display:inline-block;padding:4px 7px;border-radius:4px;font-size:14px;background:#edf4ee;color:#39745a}.tag.warn{background:#fbf0dc;color:#926b22}.tag.danger{background:#faeae5;color:#a75139}.empty{text-align:center;padding:60px 20px;color:var(--muted)}.empty h3{font-size:19px;color:var(--ink);font-weight:500}.empty p{font-size:14px;line-height:1.9}.chart{padding:24px;display:flex;align-items:flex-end;gap:22px;min-height:220px;overflow-x:auto}.bar-item{min-width:55px;flex:1;text-align:center}.bar{width:55%;margin:8px auto;background:#81b59b;border-radius:5px 5px 0 0;min-height:2px}.bar-item small{font-size:10px}.chart-legend{padding:0 24px 20px;color:var(--muted);font-size:15px}.badge-info{padding:14px 18px;background:#eaf1eb;border:1px solid #d3e2d6;border-radius:6px;font-size:15px;line-height:1.8;margin-bottom:20px}#notice{padding:13px 17px;background:#e1eedf;color:#275a39;border-radius:6px;margin-bottom:20px}#notice.error{background:#faeae5;color:var(--red)}footer{color:#8b9791;font-size:10px;margin-top:30px}dialog{width:620px;max-width:94vw;border:1px solid var(--line);border-radius:12px;padding:26px;color:var(--ink);max-height:90vh}dialog::backdrop{background:#122f2855;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.dialog-head h2{margin:0}.dialog-head button{border:0;font-size:24px;padding:0 6px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.check{display:flex;align-items:center;gap:10px}.check input{width:auto;margin:0}.permission-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.permission-list label{margin:0}.share-row{display:grid;grid-template-columns:1fr 100px 100px;gap:8px;align-items:center;margin:8px 0}.share-row input{padding:8px}.detail-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 14px}.detail-title h3{font-size:18px;margin:0}.code{font-family:monospace;overflow-wrap:anywhere;background:#edf2ed;padding:16px;border-radius:6px;line-height:1.8}.stack{display:grid;gap:14px}.stack p{margin:0}.subrow td{background:#f5f8f4}.inline-month{width:170px}.nowrap{white-space:nowrap}
[hidden]{display:none!important}

@media(min-width:1500px){.main{padding:40px 60px}.stat strong{font-size:33px}}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.main{padding:25px}header{align-items:flex-start;flex-direction:column}.login{gap:40px;padding:35px}.login-intro h1{font-size:32px}}@media(max-width:720px){.main{margin:0;padding:20px 14px}.project-switch{width:100%;gap:7px}.project-switch label{display:none}.project-switch select{min-width:0}.cards{gap:9px}.stat{padding:16px}.stat strong{font-size:22px}.toolbar{align-items:flex-start;flex-direction:column}.login{display:block;padding:25px}.login-intro .brand-mark{margin-bottom:15px;font-size:35px}.login-intro h1{font-size:25px}.login-intro small,.login-intro .eyebrow{display:none}.login-card{padding:25px;margin-top:25px}.grid2{grid-template-columns:1fr}.share-row{grid-template-columns:1fr 80px 80px}.panel-head{padding:16px}.permission-list{grid-template-columns:1fr}h1{font-size:24px}}

#current-project-context{margin:0 32px 18px;padding:16px 20px;border-left:6px solid #b97c36;border-radius:8px;background:#183f35;color:white;font-size:20px;font-weight:700}
.project-summary{border:2px solid #537668;padding-bottom:20px}
.project-summary .cards{margin:0 20px}
@media(max-width:720px){#current-project-context{margin:0 16px 16px;font-size:17px}.project-summary .cards{margin:0 12px}}

[data-child-project]:hover td,[data-child-project]:focus-within td{background:#e1eee4;transition:background .12s}
[data-child-project] .child-name{font-size:17px;line-height:1.5}
.child-project-panel thead th{font-size:16px;font-weight:700;padding-top:16px;padding-bottom:16px}
.child-project-panel thead th:nth-child(6),[data-child-project] .payment-divider{border-left:2px solid #9eb5a6}
button.danger{color:#a53232;border-color:#c97c7c}

fieldset{border:1px solid #b7c9bd;border-radius:10px;padding:16px;margin:18px 0;min-width:0}
legend{font-weight:700;padding:0 9px;color:#183f35}
.inline-tax{display:inline-flex;align-items:center;gap:3px;font-size:14px;font-weight:400}
.inline-tax input{width:17px;height:17px;margin:0}
.document-list thead th,.installment-panel thead th{font-size:16px;white-space:nowrap;padding:15px 12px}
.document-list tbody tr:hover td,.installment-panel tbody tr:hover td{background:#edf4ee}
.document-name{cursor:pointer}
button.has-record{background:#dcebdd;color:#183f35;border:2px solid #62856c;font-weight:700}
.installment-panel .period-editing td{background:#fff1d2!important;border-top:2px solid #bd9348;border-bottom:2px solid #bd9348;vertical-align:top}
.period-editing input:not([type=checkbox]){min-width:90px;width:100%;box-sizing:border-box}
.period-editing input[name=name]{min-width:150px}
.period-editing button{margin:2px}
.installment-panel .table-wrap{overflow-x:auto}
.installment-panel th:first-child,.installment-panel td:first-child{position:sticky;left:0;z-index:1;background:#fff;min-width:74px}
.installment-panel th:first-child{background:#f1f5f1;z-index:2}
.installment-panel .period-editing td:first-child{background:#fff1d2}
#modal-fields table input,#modal-fields table select{min-width:95px}
#modal-fields textarea{width:100%;box-sizing:border-box;min-height:100px}

.installment-panel table,.document-list table{font-size:16px}
.installment-panel td{padding:14px 12px}
.period-editing input:not([type=checkbox]),.period-editing select{display:block;min-width:110px;margin-bottom:6px}
.period-editing input[name=number]{min-width:70px}
.inline-invoice-editor{padding:14px;border:1px solid #b7c9bd;border-radius:8px;background:#f5f8f4;margin-top:12px}

.cashflow-legend,.cashflow-chart,.vendor-payment-chart{--payment-due:#315e90;--payment-paid:#187460}
.cashflow-legend{display:flex;flex-wrap:wrap;gap:.55rem 1.5rem;padding:.6rem 1.25rem;color:#3f5165;font-size:.9rem}
.cashflow-legend span::before{content:"";display:inline-block;width:.72rem;height:.72rem;border-radius:2px;margin-right:.4rem;background:currentColor}
.cashflow-legend .due,.cashflow-value.due,.vendor-payment-bar.due{color:var(--payment-due)}
.cashflow-legend .paid,.cashflow-value.paid,.vendor-payment-bar.paid{color:var(--payment-paid)}
.cashflow-chart{display:flex;gap:1px;padding:.5rem 1.25rem 1rem;overflow-x:auto;align-items:end}
.cashflow-month{flex:1 0 auto;text-align:center;padding:.65rem .7rem;background:#f6f8fb}
.cashflow-pair{display:grid;grid-template-columns:repeat(2,minmax(5.5rem,1fr));gap:.55rem;border-bottom:1px solid #a8b7c8;margin-bottom:.5rem}
.cashflow-value{display:grid;justify-items:center;align-content:end;gap:.4rem;font-size:.88rem;font-variant-numeric:tabular-nums}
.cashflow-bar{display:block;width:56px;height:164px;fill:currentColor}
.vendor-payment-chart{padding:0 1.25rem 1rem}
.vendor-payment-chart .overview-report-basis{padding-inline:0}
.vendor-payment-total{margin:.6rem 0;padding:.75rem;background:#eef4fa;border-radius:.4rem;color:#203451}
.vendor-payment-chart ul{list-style:none;padding:0;margin:0}
.vendor-payment-chart li{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,3fr);gap:1rem;padding:.8rem 0;border-bottom:1px solid #e2e8ef}
.vendor-payment-name{display:grid;align-content:center;gap:.2rem;overflow-wrap:anywhere}
.vendor-payment-name span,.vendor-payment-name small{font-size:.83rem;color:#526278}
.vendor-payment-bar{display:grid;grid-template-columns:2.5rem minmax(0,1fr) minmax(6.75rem,auto);gap:.55rem;align-items:center;font-size:.88rem}
.vendor-payment-bar + .vendor-payment-bar{margin-top:.35rem}
.vendor-payment-bar svg{display:block;width:100%;height:.65rem;background:#eaf0f6;border-radius:.2rem;fill:currentColor}
.vendor-payment-bar strong{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:640px){.vendor-payment-chart li{grid-template-columns:minmax(0,1fr);gap:.5rem}}
.sort-heading{font-weight:700;font-size:inherit;border:0;background:transparent;padding:0;color:inherit;white-space:nowrap}
.sort-heading:hover{background:transparent;text-decoration:underline}

.budget-movements .table-wrap{max-height:360px;overflow:auto}
.budget-movements th{position:sticky;top:0;z-index:1;font-size:16px}
.payment-filters{display:flex;flex-wrap:wrap;gap:12px 18px;padding:0 22px}
.payment-filters>label{min-width:150px;flex:1}
.payment-filters>.check{align-self:center;min-width:210px}
.payment-register th{font-size:16px}
.compact-payment-status{max-width:220px;white-space:normal}
.compact-payment-status .tag{white-space:normal;font-size:14px;line-height:1.6}
.payment-policy-help{max-width:400px;white-space:normal;margin:0}
.payment-policy-help p{padding:12px;background:#f1f5f1;line-height:1.7}
.project-switch{flex-wrap:wrap}
.overview-section-actions{display:flex;gap:8px;flex-wrap:wrap}
.overview-panel-body[hidden]{display:none}
#content>.panel>.panel-head{flex-wrap:wrap;gap:12px}
.overview-toggle{margin-left:auto;flex-shrink:0;font-size:15px}
.overview-section-actions{align-items:center}
.overview-report-basis,.overview-loading{padding:0 22px;color:var(--muted)}
.overview-report-options{padding:0 22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.overview-report-options label{min-width:160px}
.overview-report-options p{flex:1;min-width:220px;color:var(--muted);font-size:13px}
.vendor-overview th,.asset-overview th{font-size:16px}
.matrix-total{font-weight:700;background:#eff5f2}
.matrix-pending{margin:18px 22px;line-height:1.7}
.matrix-pending summary{cursor:pointer;color:#945a20}
.asset-overview tbody th{font-weight:600}
.document-list-head { align-items:end }
.document-filters { display:flex; flex-wrap:wrap; align-items:end; gap:8px 12px; margin:0 }
.document-filters label { margin:0; min-width:95px; max-width:200px }
.document-filters label :is(input,select) { margin-top:4px }
.conversion-line { margin:12px 22px }
.stat .committed-net { display:block; font-size:15px; margin-bottom:5px }
.project-summary ~ .panel td.num, .child-project-panel td.num { text-align:center }
#current-project-context { display:flex; align-items:center; justify-content:space-between; gap:12px }
#current-project-context[hidden] { display:none }
#current-project-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
#project-select { flex:0 0 auto; width:clamp(7rem,36%,18rem); padding:8px }
.subject-asset-panel th, .subject-asset-panel td, .subject-asset-panel td.num { text-align:center }
.asset-scope-options { max-height:11rem; overflow:auto }
.platform-page { max-width:1450px; margin:auto; padding:clamp(16px,4vw,48px) }
.platform-page .panel-head { flex-wrap:wrap }
.platform-form { max-width:36rem; padding:24px; margin:0 auto }
#platform-editor fieldset { min-width:0 }
#platform-dialog-message { min-height:1.5em }
.budget-movements tbody tr:hover, .budget-movements tbody tr:focus,
.allocation-pick-row:hover { background:#edf5f0 }
.allocation-pick-row { cursor:pointer }
.asset-reconciliation { padding:18px 22px }
.asset-net-total { text-align:center; padding:6px 0 16px }
.asset-net-total strong, .asset-net-card strong { display:block; margin:4px 0 9px; font-size:1.35rem }
.asset-net-split { display:grid; grid-template-columns:2fr 1fr; gap:12px }
.asset-net-card { border:1px solid var(--line); border-radius:8px; padding:14px; background:#f6faf7 }
.asset-net-card progress { width:100%; accent-color:#39745a }
.asset-allocation-breakdown { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; font-size:15px}
.asset-allocation-breakdown b { display:block; margin-top:4px }
@media(max-width:560px) { .asset-net-split { grid-template-columns:1fr } }

:root { --program-rail:72px }
.program-sidebar {
  position:fixed; inset:5px auto 5px 5px; width:calc(var(--program-rail) - 10px); z-index:20;
}
.category-nav, .category-browser { height:100% }
.category-browser { position:relative }
.category-browser > summary {
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; writing-mode:vertical-rl; letter-spacing:.16em;
  border-radius:6px; list-style:none; cursor:pointer;
  background:#163b32; color:white; font-weight:650;
}
.category-browser > summary::-webkit-details-marker { display:none }
.category-browser > summary:hover, .category-browser[open] > summary { background:#176452 }
.category-browser :is(summary,button,a):focus-visible { outline:2px solid #34836c; outline-offset:-2px }
.program-menu-panel {
  position:absolute; left:100%; top:0;
  display:flex; flex-direction:column; width:min(630px,calc(100vw - var(--program-rail) - 6px)); height:100%;
  padding:20px 24px; color:var(--ink); background:#f4f7f4f7; backdrop-filter:blur(12px);
  border:1px solid #fff; border-radius:8px; box-shadow:0 12px 36px #142b2440;
}
.program-menu-header {
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; padding-right:40px; min-height:44px;
  margin-bottom:20px;
}
.program-menu-header .brand {
  display:flex; align-items:center; gap:8px; color:var(--green); text-decoration:none; font-size:24px; font-weight:750;
}
.program-menu-header .brand span { font-size:18px }
.program-menu-header .brand small { display:block; font-size:8px; letter-spacing:.08em }
.company-label { color:var(--muted); overflow-wrap:anywhere }
.program-menu-close { position:absolute; top:14px; right:16px; padding:3px 9px; font-size:22px }
.program-menu-columns { display:grid; grid-template-columns:minmax(125px, 1fr) minmax(0, 2fr); gap:18px; min-height:0; flex:1 }
.program-menu-categories, .program-menu-functions { min-height:0; overflow:auto; scrollbar-width:thin }
.program-menu-functions { padding-left:18px; border-left:1px solid var(--line) }
.program-menu-columns h2 { font-size:16px; margin:0 0 10px; color:var(--muted) }
.program-menu-columns button {
  display:flex; align-items:center; gap:8px; width:100%; min-height:44px; margin-bottom:6px;
  text-align:left; overflow-wrap:anywhere;
}
.program-menu-columns [hidden] { display:none }
.program-menu-categories svg {
  width:18px; height:18px; flex:none; fill:none; stroke:currentColor;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
}
.program-menu-categories button[aria-pressed="true"] { background:var(--green); border-color:var(--green); color:white }
.program-menu-functions button.active { background:#e0efdf; border-color:#a9c6a8; font-weight:650 }
.sidebar-bottom {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px;
  padding-top:12px; margin-top:12px; border-top:1px solid var(--line); font-size:14px;
}
.sidebar-bottom p { margin:0 }
.password-required .program-sidebar { display:none }
.password-required .main { margin-left:0 }
@media(max-width:720px) {
  .program-sidebar { position:relative; inset:auto; width:auto; margin:6px 8px 0 }
  .category-nav, .category-browser { height:auto }
  .category-browser > summary { height:44px; writing-mode:horizontal-tb }
  .program-menu-panel {
    left:0; top:100%; width:100%; height:min(540px,calc(100dvh - 62px)); padding:14px 12px;
  }
  .program-menu-columns { grid-template-columns:minmax(106px, 1fr) minmax(0, 1.65fr); gap:8px }
  .program-menu-functions { padding-left:8px }
  .program-menu-columns button { padding:7px 6px; gap:5px }
  .program-menu-categories svg { width:16px; height:16px }
}

.child-project-panel .panel-head > div:first-child { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 12px }
.child-project-panel .overview-section-actions { margin-left:auto }
.child-project-panel button.child-name {
  padding:3px 0; border:0; background:transparent; color:var(--green); font-weight:700; text-align:left;
}
.child-project-panel button.child-name:hover { text-decoration:underline }
.child-project-panel .overview-toggle { margin-left:0 }

.budget-dashboard {
  --budget-plan:#b9c9e4;
  --budget-used:#41928f;
  --budget-over:#c75848;
}
.budget-dashboard-body { padding:1rem; background:#f2f5f8; }
.budget-kpis, .budget-dashboard-grid { display:grid; gap:.85rem; }
.budget-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:.85rem; }
.budget-dashboard-grid { grid-template-columns:minmax(0, 2.35fr) minmax(0, 1fr); }
.budget-kpi, .budget-card, #budget-project-details {
  min-width:0; background:#fff; border:1px solid #e0e7ef; border-radius:.7rem; padding:1rem;
}
.budget-kpi { display:grid; align-content:start; gap:.32rem; }
.budget-kpi span, .budget-kpi small, .budget-card small, .budget-empty { color:#526278; }
.budget-kpi strong, .budget-payment-chart strong {
  color:#203451; font-size:clamp(1.25rem,2.1vw,2rem); font-variant-numeric:tabular-nums; line-height:1.2;
  overflow-wrap:anywhere;
}
.budget-dashboard .negative { color:#a33228; }
.budget-card h3 { margin:0 0 .75rem; font-size:1rem; color:#203451; }
.budget-card-head { display:flex; gap:.5rem; justify-content:space-between; flex-wrap:wrap; }
.budget-legend { display:flex; flex-wrap:wrap; gap:.7rem; color:#526278; font-size:.82rem; }
.budget-legend span::before, .budget-payment :is(.payment-paid,.payment-unpaid)::before {
  content:""; display:inline-block; width:.62em; height:.62em; margin-inline-end:.35em; border-radius:2px;
  background:var(--budget-plan);
}
.budget-legend span:nth-child(2)::before, .budget-payment .payment-paid::before { background:var(--budget-used); }
.budget-legend span:nth-child(3)::before { background:var(--budget-over); }
.budget-chart-row {
  display:grid; grid-template-columns:minmax(5.5rem,1fr) minmax(0,3fr) minmax(5rem,auto);
  gap:.6rem; align-items:center; padding:.45rem 0;
}
.budget-project-link {
  color:#234768; background:none; border:0; padding:0; text-align:left; overflow-wrap:anywhere;
}
.budget-project-link:hover { text-decoration:underline; color:#15314a; background:none; }
.budget-track { display:block; width:100%; height:1.2rem; background:#eef2f7; border-radius:.3rem; overflow:hidden; }
.budget-track-plan { fill:var(--budget-plan); }
.budget-track-used { fill:var(--budget-used); }
.budget-track-over { fill:var(--budget-over); }
.budget-chart-values { display:grid; text-align:right; color:#526278; font-size:.83rem; font-variant-numeric:tabular-nums; }
.budget-chart-values strong { color:#246762; }
.budget-payment-chart { display:grid; justify-items:center; gap:.5rem; margin:.5rem auto 1rem; }
.budget-payment-chart svg { display:block; width:min(8.5rem,100%); aspect-ratio:1; }
.budget-pie-unpaid { fill:var(--budget-plan); }
.budget-pie-paid { fill:none; stroke:var(--budget-used); stroke-width:50; }
.budget-payment-chart > div { display:grid; text-align:center; }
.budget-payment dl { display:flex; justify-content:center; gap:.65rem 1.2rem; flex-wrap:wrap; margin:0; text-align:center; }
.budget-payment dt { color:#526278; font-size:.85rem; }
.budget-payment dd { margin:.15rem 0 0; color:#203451; font-variant-numeric:tabular-nums; }
.budget-risks table { font-size:.9rem; }
.budget-risk-tag { display:inline-block; border-radius:.3rem; padding:.18rem .42rem; color:#405367; background:#ecf1f6; }
.budget-risk-tag.budget-severity-1 { color:#795000; background:#fff1d7; }
.budget-risk-tag:is(.budget-severity-2,.budget-severity-3) { color:#9d3028; background:#fceae6; }
.budget-attention ul { list-style:none; margin:0; padding:0; }
.budget-attention li { display:grid; gap:.16rem; padding:.55rem 0 .55rem .85rem; position:relative; }
.budget-attention li + li { border-top:1px solid #e7edf3; }
.budget-attention li::before { content:""; width:.38rem; height:.38rem; border-radius:50%; background:#60889e; position:absolute; top:1rem; left:0; }
.budget-attention li.budget-severity-1::before { background:#ae7616; }
.budget-attention li:is(.budget-severity-2,.budget-severity-3)::before { background:var(--budget-over); }
.budget-attention li span { color:#526278; font-size:.87rem; }
#budget-project-details { margin-top:.85rem; }
#budget-project-details summary { cursor:pointer; font-weight:600; color:#234768; }
#budget-project-details[open] summary { margin-bottom:.65rem; }
#budget-project-details .budget-detail-selected td { background:#e6f0fa; }
@media (max-width:1050px) {
  .budget-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .budget-dashboard-grid { grid-template-columns:minmax(0,1.75fr) minmax(0,1fr); }
}
@media (max-width:720px) {
  .budget-dashboard-grid { grid-template-columns:minmax(0,1fr); }
  .budget-dashboard-body { padding:.65rem; }
  .budget-kpi, .budget-card, #budget-project-details { padding:.7rem; }
}
