@import url('https://fonts.googleapis.com/css2?family=Sarabun:wght@400;500;600;700&display=swap');

/* v2.4 — Accessible tabbed report detail tables with persistent URL/filter state. */
/* v2.3.4-r1 — User restoration, current development summary, and allocation-count badge removal. */
/* v2.3.3-r1 — User username sorting, administrator soft delete, full-width 4K content, and Schema 2.1.11 budget-reset contract. */
:root{--ui-fs-base:16px;--ui-fs-px-16:16px;--ui-fs-px-18:18px;--ui-fs-px-13:13px;--ui-fs-px-12:12px;--ui-fs-px-30:30px;--ui-fs-px-11:11px;--ui-fs-px-14:14px;--ui-fs-px-28:28px;--ui-fs-px-15:15px;--ui-fs-px-22:22px;--ui-fs-rem-1_12:1.12rem;--ui-fs-rem-1_05:1.05rem;--ui-fs-rem-1:1rem;--ui-fs-rem-0_97:.97rem;--ui-fs-rem-0_94:.94rem;--ui-fs-rem-0_92:.92rem;--ui-fs-rem-1_08:1.08rem;--ui-fs-px-23:23px;--ui-fs-rem-0_75:.75rem;--ui-fs-rem-0_72:.72rem;--ui-fs-px-20:20px;--ui-fs-px-24:24px;--ui-fs-px-21:21px;--ui-fs-rem-0_76:.76rem;--ui-fs-rem-0_78:.78rem;--ui-fs-rem-1_1:1.1rem;--ui-fs-px-10:10px;--ui-fs-rem-1_35:1.35rem;--ui-fs-rem-0_9:.9rem;--ui-fs-rem-1_45:1.45rem;--ui-fs-rem-1_02:1.02rem;--ui-fs-rem-0_74:.74rem}
html.app-display-page[data-ui-font-scale="80"]{--ui-fs-base:12.8px;--ui-fs-px-16:12.8px;--ui-fs-px-18:14.4px;--ui-fs-px-13:10.4px;--ui-fs-px-12:9.6px;--ui-fs-px-30:24px;--ui-fs-px-11:8.8px;--ui-fs-px-14:11.2px;--ui-fs-px-28:22.4px;--ui-fs-px-15:12px;--ui-fs-px-22:17.6px;--ui-fs-rem-1_12:.896rem;--ui-fs-rem-1_05:.84rem;--ui-fs-rem-1:.8rem;--ui-fs-rem-0_97:.776rem;--ui-fs-rem-0_94:.752rem;--ui-fs-rem-0_92:.736rem;--ui-fs-rem-1_08:.864rem;--ui-fs-px-23:18.4px;--ui-fs-rem-0_75:.6rem;--ui-fs-rem-0_72:.576rem;--ui-fs-px-20:16px;--ui-fs-px-24:19.2px;--ui-fs-px-21:16.8px;--ui-fs-rem-0_76:.608rem;--ui-fs-rem-0_78:.624rem;--ui-fs-rem-1_1:.88rem;--ui-fs-px-10:8px;--ui-fs-rem-1_35:1.08rem;--ui-fs-rem-0_9:.72rem;--ui-fs-rem-1_45:1.16rem;--ui-fs-rem-1_02:.816rem;--ui-fs-rem-0_74:.592rem}
html.app-display-page[data-ui-font-scale="85"]{--ui-fs-base:13.6px;--ui-fs-px-16:13.6px;--ui-fs-px-18:15.3px;--ui-fs-px-13:11.05px;--ui-fs-px-12:10.2px;--ui-fs-px-30:25.5px;--ui-fs-px-11:9.35px;--ui-fs-px-14:11.9px;--ui-fs-px-28:23.8px;--ui-fs-px-15:12.75px;--ui-fs-px-22:18.7px;--ui-fs-rem-1_12:.952rem;--ui-fs-rem-1_05:.8925rem;--ui-fs-rem-1:.85rem;--ui-fs-rem-0_97:.8245rem;--ui-fs-rem-0_94:.799rem;--ui-fs-rem-0_92:.782rem;--ui-fs-rem-1_08:.918rem;--ui-fs-px-23:19.55px;--ui-fs-rem-0_75:.6375rem;--ui-fs-rem-0_72:.612rem;--ui-fs-px-20:17px;--ui-fs-px-24:20.4px;--ui-fs-px-21:17.85px;--ui-fs-rem-0_76:.646rem;--ui-fs-rem-0_78:.663rem;--ui-fs-rem-1_1:.935rem;--ui-fs-px-10:8.5px;--ui-fs-rem-1_35:1.1475rem;--ui-fs-rem-0_9:.765rem;--ui-fs-rem-1_45:1.2325rem;--ui-fs-rem-1_02:.867rem;--ui-fs-rem-0_74:.629rem}
html.app-display-page[data-ui-font-scale="90"]{--ui-fs-base:14.4px;--ui-fs-px-16:14.4px;--ui-fs-px-18:16.2px;--ui-fs-px-13:11.7px;--ui-fs-px-12:10.8px;--ui-fs-px-30:27px;--ui-fs-px-11:9.9px;--ui-fs-px-14:12.6px;--ui-fs-px-28:25.2px;--ui-fs-px-15:13.5px;--ui-fs-px-22:19.8px;--ui-fs-rem-1_12:1.008rem;--ui-fs-rem-1_05:.945rem;--ui-fs-rem-1:.9rem;--ui-fs-rem-0_97:.873rem;--ui-fs-rem-0_94:.846rem;--ui-fs-rem-0_92:.828rem;--ui-fs-rem-1_08:.972rem;--ui-fs-px-23:20.7px;--ui-fs-rem-0_75:.675rem;--ui-fs-rem-0_72:.648rem;--ui-fs-px-20:18px;--ui-fs-px-24:21.6px;--ui-fs-px-21:18.9px;--ui-fs-rem-0_76:.684rem;--ui-fs-rem-0_78:.702rem;--ui-fs-rem-1_1:.99rem;--ui-fs-px-10:9px;--ui-fs-rem-1_35:1.215rem;--ui-fs-rem-0_9:.81rem;--ui-fs-rem-1_45:1.305rem;--ui-fs-rem-1_02:.918rem;--ui-fs-rem-0_74:.666rem}
html.app-display-page[data-ui-font-scale="100"]{--ui-fs-base:16px;--ui-fs-px-16:16px;--ui-fs-px-18:18px;--ui-fs-px-13:13px;--ui-fs-px-12:12px;--ui-fs-px-30:30px;--ui-fs-px-11:11px;--ui-fs-px-14:14px;--ui-fs-px-28:28px;--ui-fs-px-15:15px;--ui-fs-px-22:22px;--ui-fs-rem-1_12:1.12rem;--ui-fs-rem-1_05:1.05rem;--ui-fs-rem-1:1rem;--ui-fs-rem-0_97:.97rem;--ui-fs-rem-0_94:.94rem;--ui-fs-rem-0_92:.92rem;--ui-fs-rem-1_08:1.08rem;--ui-fs-px-23:23px;--ui-fs-rem-0_75:.75rem;--ui-fs-rem-0_72:.72rem;--ui-fs-px-20:20px;--ui-fs-px-24:24px;--ui-fs-px-21:21px;--ui-fs-rem-0_76:.76rem;--ui-fs-rem-0_78:.78rem;--ui-fs-rem-1_1:1.1rem;--ui-fs-px-10:10px;--ui-fs-rem-1_35:1.35rem;--ui-fs-rem-0_9:.9rem;--ui-fs-rem-1_45:1.45rem;--ui-fs-rem-1_02:1.02rem;--ui-fs-rem-0_74:.74rem}
html.app-display-page[data-ui-font-scale="110"]{--ui-fs-base:17.6px;--ui-fs-px-16:17.6px;--ui-fs-px-18:19.8px;--ui-fs-px-13:14.3px;--ui-fs-px-12:13.2px;--ui-fs-px-30:33px;--ui-fs-px-11:12.1px;--ui-fs-px-14:15.4px;--ui-fs-px-28:30.8px;--ui-fs-px-15:16.5px;--ui-fs-px-22:24.2px;--ui-fs-rem-1_12:1.232rem;--ui-fs-rem-1_05:1.155rem;--ui-fs-rem-1:1.1rem;--ui-fs-rem-0_97:1.067rem;--ui-fs-rem-0_94:1.034rem;--ui-fs-rem-0_92:1.012rem;--ui-fs-rem-1_08:1.188rem;--ui-fs-px-23:25.3px;--ui-fs-rem-0_75:.825rem;--ui-fs-rem-0_72:.792rem;--ui-fs-px-20:22px;--ui-fs-px-24:26.4px;--ui-fs-px-21:23.1px;--ui-fs-rem-0_76:.836rem;--ui-fs-rem-0_78:.858rem;--ui-fs-rem-1_1:1.21rem;--ui-fs-px-10:11px;--ui-fs-rem-1_35:1.485rem;--ui-fs-rem-0_9:.99rem;--ui-fs-rem-1_45:1.595rem;--ui-fs-rem-1_02:1.122rem;--ui-fs-rem-0_74:.814rem}
html.app-display-page[data-ui-font-scale="120"]{--ui-fs-base:19.2px;--ui-fs-px-16:19.2px;--ui-fs-px-18:21.6px;--ui-fs-px-13:15.6px;--ui-fs-px-12:14.4px;--ui-fs-px-30:36px;--ui-fs-px-11:13.2px;--ui-fs-px-14:16.8px;--ui-fs-px-28:33.6px;--ui-fs-px-15:18px;--ui-fs-px-22:26.4px;--ui-fs-rem-1_12:1.344rem;--ui-fs-rem-1_05:1.26rem;--ui-fs-rem-1:1.2rem;--ui-fs-rem-0_97:1.164rem;--ui-fs-rem-0_94:1.128rem;--ui-fs-rem-0_92:1.104rem;--ui-fs-rem-1_08:1.296rem;--ui-fs-px-23:27.6px;--ui-fs-rem-0_75:.9rem;--ui-fs-rem-0_72:.864rem;--ui-fs-px-20:24px;--ui-fs-px-24:28.8px;--ui-fs-px-21:25.2px;--ui-fs-rem-0_76:.912rem;--ui-fs-rem-0_78:.936rem;--ui-fs-rem-1_1:1.32rem;--ui-fs-px-10:12px;--ui-fs-rem-1_35:1.62rem;--ui-fs-rem-0_9:1.08rem;--ui-fs-rem-1_45:1.74rem;--ui-fs-rem-1_02:1.224rem;--ui-fs-rem-0_74:.888rem}
html.app-display-page[data-ui-font-scale="130"]{--ui-fs-base:20.8px;--ui-fs-px-16:20.8px;--ui-fs-px-18:23.4px;--ui-fs-px-13:16.9px;--ui-fs-px-12:15.6px;--ui-fs-px-30:39px;--ui-fs-px-11:14.3px;--ui-fs-px-14:18.2px;--ui-fs-px-28:36.4px;--ui-fs-px-15:19.5px;--ui-fs-px-22:28.6px;--ui-fs-rem-1_12:1.456rem;--ui-fs-rem-1_05:1.365rem;--ui-fs-rem-1:1.3rem;--ui-fs-rem-0_97:1.261rem;--ui-fs-rem-0_94:1.222rem;--ui-fs-rem-0_92:1.196rem;--ui-fs-rem-1_08:1.404rem;--ui-fs-px-23:29.9px;--ui-fs-rem-0_75:.975rem;--ui-fs-rem-0_72:.936rem;--ui-fs-px-20:26px;--ui-fs-px-24:31.2px;--ui-fs-px-21:27.3px;--ui-fs-rem-0_76:.988rem;--ui-fs-rem-0_78:1.014rem;--ui-fs-rem-1_1:1.43rem;--ui-fs-px-10:13px;--ui-fs-rem-1_35:1.755rem;--ui-fs-rem-0_9:1.17rem;--ui-fs-rem-1_45:1.885rem;--ui-fs-rem-1_02:1.326rem;--ui-fs-rem-0_74:.962rem}
html.app-display-page.ui-font-export-baseline{--ui-fs-base:16px;--ui-fs-px-16:16px;--ui-fs-px-18:18px;--ui-fs-px-13:13px;--ui-fs-px-12:12px;--ui-fs-px-30:30px;--ui-fs-px-11:11px;--ui-fs-px-14:14px;--ui-fs-px-28:28px;--ui-fs-px-15:15px;--ui-fs-px-22:22px;--ui-fs-rem-1_12:1.12rem;--ui-fs-rem-1_05:1.05rem;--ui-fs-rem-1:1rem;--ui-fs-rem-0_97:.97rem;--ui-fs-rem-0_94:.94rem;--ui-fs-rem-0_92:.92rem;--ui-fs-rem-1_08:1.08rem;--ui-fs-px-23:23px;--ui-fs-rem-0_75:.75rem;--ui-fs-rem-0_72:.72rem;--ui-fs-px-20:20px;--ui-fs-px-24:24px;--ui-fs-px-21:21px;--ui-fs-rem-0_76:.76rem;--ui-fs-rem-0_78:.78rem;--ui-fs-rem-1_1:1.1rem;--ui-fs-px-10:10px;--ui-fs-rem-1_35:1.35rem;--ui-fs-rem-0_9:.9rem;--ui-fs-rem-1_45:1.45rem;--ui-fs-rem-1_02:1.02rem;--ui-fs-rem-0_74:.74rem}
.font-size-controls{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}
.font-size-control-button{width:38px;height:38px;display:inline-grid;place-items:center;padding:0;border:1px solid #cbd6e0;border-radius:8px;background:#f7fafc;color:#294e68;cursor:pointer}
.font-size-control-button:hover,.font-size-control-button:focus-visible{background:#e8f2f8;color:#176b9c;outline:3px solid rgba(23,107,156,.13);outline-offset:1px}
.font-size-control-button:disabled{opacity:.42;cursor:not-allowed;background:#f2f5f7;color:#71808d;outline:none}
.font-size-control-icon{width:20px;height:20px;pointer-events:none}
@media(max-width:620px){.font-size-control-button{width:36px;height:36px}.font-size-control-icon{width:19px;height:19px}}
@media(max-width:420px){.user-profile-link{max-width:calc(100% - 132px)}}
@media print{html.app-display-page{--ui-fs-base:16px;--ui-fs-px-16:16px;--ui-fs-px-18:18px;--ui-fs-px-13:13px;--ui-fs-px-12:12px;--ui-fs-px-30:30px;--ui-fs-px-11:11px;--ui-fs-px-14:14px;--ui-fs-px-28:28px;--ui-fs-px-15:15px;--ui-fs-px-22:22px;--ui-fs-rem-1_12:1.12rem;--ui-fs-rem-1_05:1.05rem;--ui-fs-rem-1:1rem;--ui-fs-rem-0_97:.97rem;--ui-fs-rem-0_94:.94rem;--ui-fs-rem-0_92:.92rem;--ui-fs-rem-1_08:1.08rem;--ui-fs-px-23:23px;--ui-fs-rem-0_75:.75rem;--ui-fs-rem-0_72:.72rem;--ui-fs-px-20:20px;--ui-fs-px-24:24px;--ui-fs-px-21:21px;--ui-fs-rem-0_76:.76rem;--ui-fs-rem-0_78:.78rem;--ui-fs-rem-1_1:1.1rem;--ui-fs-px-10:10px;--ui-fs-rem-1_35:1.35rem;--ui-fs-rem-0_9:.9rem;--ui-fs-rem-1_45:1.45rem;--ui-fs-rem-1_02:1.02rem;--ui-fs-rem-0_74:.74rem}}


*{box-sizing:border-box}
body{margin:0;font-size:var(--ui-fs-base);font-family:Sarabun,Arial,sans-serif;background:#f4f7fb;color:#243246}
a{color:#1d5f91;text-decoration:none}
h1,h2,h3{margin-top:0}
p{line-height:1.65}

.app-shell{display:flex;min-height:100vh}
.sidebar{width:210px;background:#2f5f7f;color:white;padding:24px 18px;flex:0 0 auto}
.brand{display:grid;gap:2px;margin-bottom:28px;line-height:1.35}
.brand-title{font-weight:700;font-size:var(--ui-fs-px-18)}
.brand-version{font-size:var(--ui-fs-px-13);font-weight:500;color:#d4e2eb;letter-spacing:.02em}
.sidebar nav{display:grid;gap:6px}
.sidebar a{color:#f3f8fb;padding:10px 12px;border-radius:8px}
.sidebar a:hover,.sidebar a.active{background:#447b9d;color:#fff}
.nav-label{font-size:var(--ui-fs-px-12);text-transform:uppercase;letter-spacing:.06em;color:#9eb8cc;margin:18px 10px 4px}
.main{flex:1;min-width:0}
.topbar{min-height:68px;background:white;border-bottom:1px solid #dde5ed;display:flex;align-items:center;justify-content:space-between;padding:12px 28px}
.user-chip{display:flex;gap:16px;align-items:center}
.content{padding:28px}

.panel,.metric,.auth-card{background:white;border:1px solid #dfe7ef;border-radius:12px;box-shadow:0 3px 14px rgba(25,50,75,.06);padding:24px;margin-bottom:20px}
.narrow{max-width:720px}
.wide{max-width:1000px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-bottom:20px}
.metric span{display:block;color:#617285}
.metric strong{font-size:var(--ui-fs-px-30)}
.metric a{display:block;color:inherit}
.metric a:hover strong{color:#176b9c}

.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.page-header h1{margin-bottom:5px}
.page-header .actions{display:flex;gap:10px;flex-wrap:wrap}
.section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.section-header h2,.section-header h3{margin:0}
.grid-1{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.form-grid .full{grid-column:1/-1}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}
.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-form{display:inline-flex;margin:0}

.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e8f2f8,#f7fbfd)}
.auth-shell{width:min(92vw,620px)}
.auth-card{--auth-card-inline-padding:24px;--auth-brand-shift:calc(64.5px - 2.5%);--auth-login-field-width:var(--auth-control-width,80%);position:relative;text-align:center}
.auth-card form{text-align:left}
.auth-card footer{margin-top:28px;color:#6b7885}
.auth-brand{display:grid;grid-template-columns:35% minmax(0,1fr);align-items:center;gap:0;width:100%;margin-bottom:14px;text-align:left;transform:translateX(var(--auth-brand-shift))}
.auth-brand h1{min-width:0;margin:0;font-size:calc(2em - 2pt);line-height:1.35;text-align:left;justify-self:start}
.auth-logo{display:block;width:min(105px,48vw);height:auto;max-width:100%;justify-self:center;transform:translateX(calc(var(--auth-card-inline-padding) / -2));filter:drop-shadow(0 8px 14px rgba(35,50,70,.12))}
/* v2.3.0-r4: align the system-name edge with the username input and protect the narrow-desktop logo gap. */
@media(min-width:675px){
  .auth-brand{position:relative}
  .auth-brand h1{
    position:absolute;
    top:50%;
    right:calc(var(--auth-brand-shift) + ((100% - var(--auth-login-field-width)) / 2));
    transform:translateY(-50%);
    text-align:right;
    white-space:nowrap;
  }
}
@media(min-width:675px) and (max-width:700px){
  .auth-logo{transform:translateX(calc((var(--auth-card-inline-padding) / -2) - 18px))}
}
.auth-card-version{position:absolute;right:14px;bottom:10px;font-size:var(--ui-fs-px-11);font-weight:500;line-height:1;color:#7a8793;letter-spacing:.02em}
.login-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}

label{display:grid;gap:7px;font-weight:600;margin-bottom:16px}
label.inline-check{display:flex;align-items:center;gap:9px;font-weight:500;margin:0}
label.inline-check input{width:auto}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd6e0;border-radius:8px;font:inherit;background:#fff;color:#243246}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(23,107,156,.14);border-color:#4384ac}
input[readonly],select:disabled{background:#f2f5f7;color:#667684}
textarea{min-height:90px;resize:vertical}
fieldset{border:1px solid #dfe7ef;border-radius:10px;padding:18px;margin:0 0 18px}
legend{padding:0 8px;font-weight:700}

.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:8px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;line-height:1.2}
.btn.small{padding:7px 10px;font-size:var(--ui-fs-px-13)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.primary{background:#176b9c;color:white}
.primary:hover{background:#105b87;color:white}
.secondary{background:#e7eef4;color:#234b68}
.secondary:hover{background:#d8e4ed;color:#193e59}
.danger-button{background:#fbe5e5;color:#8c2424}
.success-button{background:#e0f3e6;color:#1d6737}
.link-button{border:0;background:none;color:#a42d2d;cursor:pointer;font:inherit}

.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;line-height:1.55}
.alert-danger{background:#fde9e9;color:#8c2424}
.alert-success{background:#e4f5e9;color:#22653a}
.alert-warning{background:#fff3d7;color:#755400}
.alert-info{background:#e7f2fa;color:#245a7b}
.muted{color:#6e7c89}
.help-text{font-size:var(--ui-fs-px-13);color:#6e7c89;margin-top:-8px;margin-bottom:14px}
.pending-box{background:#fff6dc;border-left:4px solid #dba625;padding:18px;margin:18px 0}
.empty-state{padding:28px;text-align:center;color:#6e7c89;background:#f8fafc;border:1px dashed #cdd8e2;border-radius:10px}
.warning-box{background:#fff8e6;border-left:4px solid #d9a21d;padding:16px;margin:14px 0}

.detail-grid{display:grid;grid-template-columns:190px 1fr;gap:10px 18px}
.detail-grid dt{font-weight:700}
.detail-grid dd{margin:0}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.filters label{margin:0}
.filters input,.filters select{width:auto;min-width:190px}

.table-wrap{overflow:auto;margin-top:18px;border-radius:8px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e3e9ef;vertical-align:top}
th{background:#f1f5f8;white-space:nowrap}
tbody tr:hover{background:#fafcfd}
td.numeric,th.numeric{text-align:right;font-variant-numeric:tabular-nums}
td.center,th.center{text-align:center}
.table-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;white-space:nowrap}
.tree-name{display:flex;align-items:flex-start;gap:8px}
.tree-indent{display:inline-block;flex:0 0 auto}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f2f5f7;padding:2px 6px;border-radius:5px;font-size:var(--ui-fs-px-13)}

.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:var(--ui-fs-px-12);font-weight:600;white-space:nowrap}
.badge.warning{background:#fff0c7;color:#795b00}
.badge.success{background:#dff3e5;color:#1f6335}
.badge.danger{background:#fde3e3;color:#8a2525}
.badge.muted{background:#e9edf1;color:#596772}
.badge.info{background:#dfeef8;color:#245d81}

.tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #dfe7ef;margin-bottom:18px}
.tabs a{padding:10px 14px;border-bottom:3px solid transparent;color:#516879}
.tabs a.active{border-bottom-color:#176b9c;color:#176b9c;font-weight:700}
.category-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:10px}
.category-option{border:1px solid #dfe7ef;border-radius:8px;padding:10px;background:#fafcfd}
.category-option.hidden{display:none}
.category-option label{margin:0;display:flex;align-items:flex-start;gap:9px;font-weight:500}
.category-option input{width:auto;margin-top:4px}

small{color:#72808d}

@media(max-width:1000px){
    .grid-3{grid-template-columns:1fr 1fr}
}
@media(max-width:800px){
    .sidebar{width:210px}
    .content{padding:18px}
    .login-actions,.grid-2,.grid-3,.form-grid{grid-template-columns:1fr}
    .form-grid .full{grid-column:auto}
    .detail-grid{grid-template-columns:1fr}
    .topbar{padding:12px 14px}
    .page-header{flex-direction:column}
}
@media(max-width:620px){
    .app-shell{display:block}
    .sidebar{width:100%;padding:14px}
    .sidebar nav{display:flex;overflow:auto;align-items:center}
    .nav-label{display:none}
    .sidebar a{white-space:nowrap}
    .topbar{height:auto;align-items:flex-start}
    .user-chip{flex-direction:column;align-items:flex-end}
    .content{padding:12px}
    .filters input,.filters select{width:100%;min-width:0}
}

/* Global table pagination: displayed automatically when a table has more than 10 rows. */
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:12px 0 4px;padding-top:12px;border-top:1px solid #e3e9ef}
.pagination-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pagination-page-size{display:inline-flex;align-items:center;gap:7px;color:#43576a;font-size:var(--ui-fs-px-14);white-space:nowrap}
.pagination-page-size-select{min-width:72px;height:36px;padding:4px 28px 4px 10px;border:1px solid #cbd6e0;border-radius:7px;background:#fff;color:#234b68;font:inherit}
.pagination-page-size-select:focus{outline:2px solid rgba(23,107,156,.25);outline-offset:1px;border-color:#176b9c}
.pagination-summary{color:#617285;font-size:var(--ui-fs-px-14)}
.pagination-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.pagination-controls[hidden]{display:none!important}
.pagination-button{min-width:36px;height:36px;padding:0 10px;border:1px solid #cbd6e0;border-radius:7px;background:#fff;color:#234b68;font:inherit;cursor:pointer}
.pagination-button:hover:not(:disabled){background:#e7eef4;border-color:#9eb5c7}
.pagination-button.active{background:#176b9c;border-color:#176b9c;color:#fff;font-weight:700}
.pagination-button:disabled{opacity:.45;cursor:not-allowed}
.pagination-ellipsis{display:inline-grid;place-items:center;min-width:28px;height:36px;color:#6e7c89}
tr[hidden]{display:none!important}

@media(max-width:620px){
    .table-pagination{align-items:flex-start}
    .pagination-meta{width:100%;align-items:flex-start;flex-direction:column;gap:8px}
    .pagination-page-size{width:100%}
    .pagination-summary{width:100%}
    .pagination-controls{width:100%;overflow-x:auto;padding-bottom:4px;flex-wrap:nowrap}
    .pagination-button{flex:0 0 auto}
}

/* Budget receipt and bureau allocation modules v1.6.0 */
.budget-tree{display:grid;gap:12px}
.tree-panel{border:1px solid #dfe7ef;border-radius:10px;background:#fbfdff;padding:0 14px}
.tree-panel>summary{cursor:pointer;font-weight:700;padding:13px 0;color:#234b68}
.tree-panel.nested{margin:0 0 12px 18px;background:#fff}
.tree-activity{border-top:1px solid #e5ebf1;padding:14px 0}
.tree-activity h3{font-size:var(--ui-fs-px-16);margin-bottom:8px}
.transaction-line{border:1px solid #dfe7ef;border-radius:10px;background:#fafcfd;padding:15px;margin-bottom:12px}
.transaction-line-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:0 12px;align-items:end}
.transaction-line-grid .wide-field{grid-column:1/-2}
.transaction-line-action{display:flex;justify-content:flex-end;padding-bottom:16px}
.allocation-total-box{display:flex;align-items:baseline;gap:10px;padding:15px 18px;border-radius:10px;background:#e7f2fa;color:#245a7b;margin-bottom:14px}
.allocation-total-box strong{font-size:var(--ui-fs-px-28);font-variant-numeric:tabular-nums}
.allocation-input-cell input{text-align:right;min-width:150px}
.allocation-over-limit .allocation-total-box{background:#fde9e9;color:#8c2424}
tfoot th{background:#f7f9fb;border-top:2px solid #d8e1e9}
@media(max-width:1050px){.transaction-line-grid{grid-template-columns:1fr 1fr}.transaction-line-grid .wide-field{grid-column:1/-1}}
@media(max-width:700px){.transaction-line-grid{grid-template-columns:1fr}.transaction-line-grid .wide-field{grid-column:auto}.tree-panel.nested{margin-left:0}}


.compact-money-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .3rem;
    min-width: 17rem;
}
.compact-money-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px dashed var(--border);
    padding-bottom: .2rem;
}
.compact-money-list li:last-child { border-bottom: 0; }
.compact-money-list strong { white-space: nowrap; }

/* Reusable Thai Buddhist date picker v1.6.1. The submitted field remains
   ISO Y-m-d; every visible value and calendar heading uses Buddhist Era. */
.thai-date-picker{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.thai-date-trigger,.thai-date-clear{display:none;border:1px solid #cbd6e0;border-radius:8px;background:#fff;color:#243246;font:inherit;cursor:pointer}
.thai-date-trigger{width:100%;min-height:44px;padding:10px 12px;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.thai-date-calendar-icon{font-size:var(--ui-fs-px-18);line-height:1}
.thai-date-clear{padding:9px 12px;color:#7c3131;background:#fff7f7}
.thai-date-picker.is-enhanced .thai-date-native{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px!important;min-width:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none}
.thai-date-picker.is-enhanced .thai-date-trigger{display:flex}
.thai-date-picker.is-enhanced .thai-date-clear{display:inline-flex;align-items:center;justify-content:center}
.thai-date-picker.is-enhanced:not(.has-value) .thai-date-trigger{color:#667684}
.thai-date-picker.is-enhanced .thai-date-trigger:hover{border-color:#9db2c3;background:#fbfdff}
.thai-date-picker.is-enhanced .thai-date-trigger:focus,.thai-date-picker.is-enhanced .thai-date-clear:focus{outline:3px solid rgba(23,107,156,.14);border-color:#4384ac}
.thai-date-picker.is-invalid .thai-date-trigger{border-color:#b93a3a;background:#fff7f7;outline:3px solid rgba(185,58,58,.12)}
.thai-date-picker.is-enhanced:not(.has-value) .thai-date-clear{visibility:hidden}
.thai-calendar-popover{position:absolute;z-index:1200;top:calc(100% + 7px);left:0;width:min(330px,calc(100vw - 40px));padding:12px;border:1px solid #cbd6e0;border-radius:10px;background:#fff;box-shadow:0 14px 36px rgba(32,52,70,.2);font-weight:400}
.thai-calendar-popover[hidden]{display:none!important}
.thai-calendar-header{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin-bottom:10px}
.thai-calendar-header strong{text-align:center;color:#234b68;font-size:var(--ui-fs-px-15)}
.thai-calendar-nav{height:36px;border:1px solid #d6e0e8;border-radius:8px;background:#f7fafc;color:#234b68;font:inherit;font-size:var(--ui-fs-px-22);line-height:1;cursor:pointer}
.thai-calendar-nav:hover,.thai-calendar-nav:focus{background:#e7f2fa;border-color:#9db2c3;outline:none}
.thai-calendar-weekdays,.thai-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.thai-calendar-weekdays{margin-bottom:5px;color:#6e7c89;font-size:var(--ui-fs-px-12);text-align:center}
.thai-calendar-weekdays span{padding:4px 0}
.thai-calendar-day,.thai-calendar-empty{aspect-ratio:1;min-height:34px}
.thai-calendar-day{border:1px solid transparent;border-radius:8px;background:#fff;color:#243246;font:inherit;font-size:var(--ui-fs-px-13);cursor:pointer}
.thai-calendar-day:hover,.thai-calendar-day:focus{border-color:#9db2c3;background:#eef6fb;outline:none}
.thai-calendar-day.is-today{border-color:#4384ac;font-weight:700}
.thai-calendar-day.is-selected{background:#176b9c;border-color:#176b9c;color:#fff;font-weight:700}
.thai-calendar-day.is-selected:hover,.thai-calendar-day.is-selected:focus{background:#105b87;border-color:#105b87}
.thai-calendar-footer{display:flex;justify-content:space-between;gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid #e3e9ef}
@media(max-width:620px){
    .thai-date-picker{grid-template-columns:minmax(0,1fr) auto}
    .thai-date-clear{padding-inline:10px}
    .thai-calendar-popover{position:fixed;top:50%;left:50%;width:min(340px,calc(100vw - 24px));transform:translate(-50%,-50%);max-height:calc(100vh - 24px);overflow:auto}
}

/* Two-level organization master v1.7.1. */
.sr-only {
    position: absolute!important;
    width: 1px!important;
    height: 1px!important;
    padding: 0!important;
    margin: -1px!important;
    overflow: hidden!important;
    clip: rect(0,0,0,0)!important;
    white-space: nowrap!important;
    border: 0!important;
}
.org-structure {
    display: grid;
    gap: 18px;
}
.org-unit-section {
    padding: 0;
    overflow: hidden;
    border-width: 1px 1px 1px 5px;
    border-left-color: #176b9c;
}
.org-unit-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 18px;
    background: #f7fafc;
}
.org-unit-toggle {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 0;
    background: transparent;
    color: #234b68;
    font: inherit;
    cursor: pointer;
    text-align: left;
    padding: 4px 0;
}
.org-unit-toggle:hover .org-unit-heading,
.org-unit-toggle:focus .org-unit-heading {
    color: #176b9c;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.org-unit-toggle:focus-visible {
    outline: 3px solid rgba(23,107,156,.18);
    outline-offset: 4px;
    border-radius: 5px;
}
.org-unit-heading {
    font-size: var(--ui-fs-px-18);
    font-weight: 700;
    line-height: 1.35;
}
.org-toggle-icon {
    width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    transition: transform .18s ease;
}
.org-toggle-icon svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}
.org-unit-toggle[aria-expanded="false"] .org-toggle-icon {
    transform: rotate(-90deg);
}
.org-unit-header-tools,
.org-group-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: nowrap;
}
.org-group-list {
    border-top: 1px solid #e1e8ef;
    padding: 4px 18px 14px;
    background: #fff;
}
.org-group-list[hidden] {
    display: none!important;
}
.org-group-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 54px;
    padding: 9px 4px;
    border-bottom: 1px solid #edf1f5;
}
.org-group-row:last-child {
    border-bottom: 0;
}
.org-group-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
    color: #2a3f53;
}
.org-group-empty {
    margin: 10px 0 0;
    padding: 16px;
    border: 1px dashed #cdd8e2;
    border-radius: 8px;
    background: #fafcfd;
    color: #6e7c89;
    text-align: center;
}
.org-icon-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    flex-wrap: nowrap;
}
.org-icon-actions form {
    display: inline-flex;
    margin: 0;
}
.org-icon-button {
    width: 34px;
    height: 34px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border: 1px solid #cbd6e0;
    border-radius: 7px;
    background: #fff;
    color: #315a75;
    cursor: pointer;
    flex: 0 0 auto;
}
.org-icon-button:hover:not(:disabled),
.org-icon-button:focus-visible {
    background: #e7f2fa;
    border-color: #8eb1c8;
    color: #176b9c;
    outline: none;
}
.org-icon-button.edit {
    color: #1c668f;
}
.org-icon-button.danger {
    color: #9a3030;
    border-color: #e7c5c5;
    background: #fffafa;
}
.org-icon-button.danger:hover:not(:disabled),
.org-icon-button.danger:focus-visible {
    background: #fde9e9;
    border-color: #d99696;
    color: #821f1f;
}
.org-icon-button:disabled {
    opacity: .38;
    cursor: not-allowed;
}
.org-icon-button svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}
.legacy-structure-panel {
    border-left-color: #d39b1d;
}
.row-focus {
    outline: 2px solid rgba(37,99,235,.35);
    outline-offset: -2px;
}

@media(max-width:800px) {
    .org-unit-section-header,
    .org-group-row {
        align-items: flex-start;
        flex-direction: column;
    }
    .org-unit-header-tools,
    .org-group-tools {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    .org-group-name {
        width: 100%;
    }
}

/* Multi-bureau budget transaction summaries (v1.8.0). */
.summary-with-amount {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
}
.summary-with-amount > strong:last-child {
    white-space: nowrap;
}
.bureau-summary-panel {
    border-inline-start: 0.3rem solid var(--primary, #1f5f99);
}
.bureau-filter-note {
    margin-top: 0.5rem;
}
@media (max-width: 720px) {
    .summary-with-amount {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }
}

/* Treasury receipt hierarchy overview v1.8.0-r4.
   All hierarchy rows and detail rows share one fixed money column so every
   amount terminates on the same right edge. Only the label column is indented. */
.receipt-overview-tree {
    gap: 18px;
}
.receipt-overview-bureau {
    padding: 0;
    overflow: hidden;
}
.receipt-overview-node {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.receipt-overview-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 13rem;
    align-items: center;
    gap: 1rem;
    width: 100%;
    min-width: 0;
    padding: 12px;
    border-bottom: 1px solid #e3e9ef;
    cursor: pointer;
    list-style: none;
}
.receipt-overview-row::-webkit-details-marker {
    display: none;
}
.receipt-overview-row::marker {
    content: '';
}
.receipt-overview-row:hover {
    background: #f4f8fb;
}
.receipt-overview-row:focus-visible {
    outline: 3px solid rgba(23, 107, 156, .2);
    outline-offset: -3px;
}
.receipt-overview-label {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
}
.receipt-overview-label > :last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}
.receipt-overview-toggle-icon {
    position: relative;
    display: inline-grid;
    place-items: center;
    flex: 0 0 1.15rem;
    width: 1.15rem;
    height: 1.15rem;
    color: currentColor;
}
.receipt-overview-toggle-icon::before {
    content: '';
    width: .48rem;
    height: .48rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform .16s ease;
}
.receipt-overview-node[open] > summary .receipt-overview-toggle-icon::before {
    transform: rotate(45deg);
}
.receipt-overview-amount,
.receipt-overview-line-amount {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.receipt-overview-row--bureau {
    background: #eaf3f9;
    color: #153f5e;
    font-size: var(--ui-fs-rem-1_12);
}
.receipt-overview-row--plan {
    background: #f2f7fb;
    color: #1d5f91;
    font-size: var(--ui-fs-rem-1_05);
}
.receipt-overview-row--program {
    background: #f8fbfd;
    color: #315f7f;
    font-size: var(--ui-fs-rem-1);
}
.receipt-overview-row--activity {
    background: #fff;
    color: #4a667a;
    font-size: var(--ui-fs-rem-0_97);
}
.receipt-overview-label--plan {
    padding-inline-start: 1.25rem;
}
.receipt-overview-label--program {
    padding-inline-start: 2.75rem;
}
.receipt-overview-label--activity {
    padding-inline-start: 4.25rem;
}
.receipt-overview-line-wrap {
    margin-top: 0;
    border-radius: 0;
}
.receipt-overview-line-table {
    table-layout: fixed;
}
.receipt-overview-money-column {
    width: 13rem;
}
.receipt-overview-line-table td {
    padding-block: 10px;
}
.receipt-overview-line-name {
    padding-inline-start: 7rem;
}
.receipt-overview-budget-line {
    display: inline-block;
    color: #243246;
    font-size: var(--ui-fs-rem-0_94);
    font-weight: 600;
    white-space: nowrap;
}
.receipt-overview-line-table tbody tr:last-child td {
    border-bottom: 1px solid #e3e9ef;
}
@media (max-width: 720px) {
    .receipt-overview-row {
        grid-template-columns: minmax(0, 1fr) 10rem;
        gap: .55rem;
        padding-inline: 9px;
    }
    .receipt-overview-money-column {
        width: 10rem;
    }
    .receipt-overview-label--plan {
        padding-inline-start: .45rem;
    }
    .receipt-overview-label--program {
        padding-inline-start: 1.35rem;
    }
    .receipt-overview-label--activity {
        padding-inline-start: 2.25rem;
    }
    .receipt-overview-line-name {
        padding-inline-start: 3.65rem;
    }
}
@media (max-width: 480px) {
    .receipt-overview-row {
        grid-template-columns: minmax(0, 1fr) 8.75rem;
        font-size: var(--ui-fs-rem-0_92);
    }
    .receipt-overview-money-column {
        width: 8.75rem;
    }
    .receipt-overview-line-name {
        padding-inline-start: 2.65rem;
    }
}

/* Transaction row actions reuse the accessible organization icon controls. */
.transaction-icon-actions {
    justify-content: flex-end;
    flex-wrap: nowrap;
}
.transaction-detail-icon-actions {
    justify-content: flex-start;
    gap: .6rem;
}
.org-icon-button.view {
    color: #334155;
    background: #f8fafc;
}
.org-icon-button.success {
    color: #166534;
    border-color: #86efac;
    background: #f0fdf4;
}
.org-icon-button.success:hover:not(:disabled),
.org-icon-button.success:focus-visible {
    color: #14532d;
    border-color: #4ade80;
    background: #dcfce7;
}



/* Allocation reporting and bureau-aware defaults v1.8.3. */
.allocation-unit-tree {
    display: grid;
    gap: 18px;
}
.allocation-unit-panel {
    padding: 0;
    overflow: hidden;
    border-inline-start: .3rem solid var(--primary, #1f5f99);
}
.allocation-unit-node {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.allocation-unit-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 14px 16px;
    background: #eaf3f9;
    color: #153f5e;
    cursor: pointer;
    list-style: none;
}
.allocation-unit-summary::-webkit-details-marker { display: none; }
.allocation-unit-summary::marker { content: ''; }
.allocation-unit-summary:hover { background: #dfedf6; }
.allocation-unit-summary:focus-visible {
    outline: 3px solid rgba(23, 107, 156, .2);
    outline-offset: -3px;
}
.allocation-unit-label {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    font-size: var(--ui-fs-rem-1_08);
}
.allocation-unit-node[open] > summary .receipt-overview-toggle-icon::before {
    transform: rotate(45deg);
}
.allocation-unit-total {
    white-space: nowrap;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.allocation-unit-lines {
    margin: 0;
    border-radius: 0;
}
@media (max-width: 720px) {
    .receipt-overview-budget-line { white-space: normal; }
    .allocation-unit-summary {
        grid-template-columns: 1fr;
        gap: .35rem;
    }
    .allocation-unit-total { padding-inline-start: 1.8rem; text-align: left; }
}


/* Reference-data icon actions and application brand v1.8.3-r2. */
.reference-icon-actions {
    min-width: 112px;
}

/* Responsive icon sidebar and compact topbar v1.8.3-r3. */
body{overflow-x:hidden}
.sidebar{
    position:sticky;
    top:0;
    height:100vh;
    overflow-y:auto;
    overflow-x:hidden;
    padding:18px 14px;
}
.sidebar nav{display:grid;gap:6px}
/* v2.3.0-r4 — compact expanded Sidebar links: top/right/bottom/left = 4/5/4/11px. */
.sidebar-link,
.sidebar a.sidebar-link{
    min-height:32px;
    display:flex;
    align-items:center;
    gap:11px;
    padding:4px 5px 4px 11px;
    border-radius:8px;
    color:#f3f8fb;
    white-space:nowrap;
    text-decoration:none;
}
.sidebar a.sidebar-link:hover,
.sidebar a.sidebar-link.active{background:#285879;color:#fff}
.nav-icon{
    width:21px;
    height:21px;
    flex:0 0 21px;
    color:currentColor;
}
.nav-text{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sidebar-link-disabled{color:#d0e0ea;cursor:not-allowed;opacity:.7;pointer-events:none;user-select:none}
.sidebar-link-disabled .nav-icon{opacity:.85}
.sidebar-toggle{
    display:none;
    width:42px;
    height:42px;
    margin:0 auto 12px;
    padding:0;
    place-items:center;
    border:1px solid rgba(255,255,255,.2);
    border-radius:9px;
    background:rgba(255,255,255,.08);
    color:#fff;
    cursor:pointer;
}
.sidebar-toggle:hover,.sidebar-toggle:focus-visible{background:#285879;outline:3px solid rgba(255,255,255,.18);outline-offset:2px}
.sidebar-toggle-icon{width:22px;height:22px}
.sidebar-toggle-close{display:none}
.sidebar.is-expanded .sidebar-toggle-open{display:none}
.sidebar.is-expanded .sidebar-toggle-close{display:block}
.topbar-system-title{display:flex;align-items:baseline;gap:10px;min-width:0}
.topbar-system-name{font-size:var(--ui-fs-px-23);font-weight:700;line-height:1.25;color:#183d5b}
.topbar-system-version{font-size:var(--ui-fs-px-12);font-weight:600;color:#72808d;white-space:nowrap}
.user-chip form{display:inline-flex;margin:0}
.user-profile-link{display:inline-flex;align-items:center;gap:8px;min-width:0;color:#294e68;font-weight:600;padding:7px 9px;border-radius:8px}
.user-profile-link:hover,.user-profile-link:focus-visible{background:#eef5fa;color:#176b9c;outline:none}
.user-profile-copy{display:grid;gap:2px;min-width:0;line-height:1.2}
.user-profile-name{min-width:0;font-size:var(--ui-fs-rem-1);font-weight:600;color:inherit}
.user-profile-role{min-width:0;font-size:var(--ui-fs-rem-0_75);font-weight:400;line-height:1.25;color:#6e7c89}
.user-profile-link:hover .user-profile-role,.user-profile-link:focus-visible .user-profile-role{color:#4f7188}
.user-chip-icon{width:20px;height:20px;flex:0 0 auto}
.logout-icon-button{width:38px;height:38px;display:inline-grid;place-items:center;padding:0;border-radius:8px;color:#a42d2d}
.logout-icon-button:hover,.logout-icon-button:focus-visible{background:#fdeaea;color:#851f1f;outline:3px solid rgba(164,45,45,.12)}
.logout-icon{width:21px;height:21px}

@media(max-width:620px){
    .app-shell{display:block;min-height:100vh}
    .sidebar{
        position:fixed;
        z-index:1000;
        inset:0 auto 0 0;
        width:68px;
        height:100vh;
        padding:10px 8px;
        transition:width .2s ease,box-shadow .2s ease;
        background:#153a5b;
    }
    .sidebar.is-expanded{
        width:min(210px,calc(100vw - 44px));
        box-shadow:12px 0 28px rgba(15,34,50,.28);
    }
    .sidebar-toggle{display:grid}
    .sidebar nav{display:grid;overflow:visible;align-items:stretch}
    .sidebar .sidebar-link{justify-content:flex-start;min-height:32px;padding:4px 5px 4px 11px}
    .sidebar:not(.is-expanded) .sidebar-link{justify-content:center;padding-inline:0}
    .sidebar:not(.is-expanded) .nav-text{display:none}
    .sidebar:not(.is-expanded) .nav-label{height:1px;margin:10px 5px;background:rgba(255,255,255,.16);font-size:0;padding:0}
    .sidebar:not(.is-expanded) .nav-label-text{display:none}
    .sidebar.is-expanded .nav-label{font-size:var(--ui-fs-px-12);margin:18px 10px 4px;background:transparent;height:auto}
    .main{width:calc(100% - 68px);margin-left:68px;min-width:0}
    .topbar{min-height:68px;height:auto;align-items:center;gap:12px;padding:10px 12px;flex-wrap:wrap}
    .topbar-system-title{gap:7px;flex:1 1 200px}
    .topbar-system-name{font-size:var(--ui-fs-px-18)}
    .topbar-system-version{font-size:var(--ui-fs-px-11)}
    .user-chip{flex-direction:row;align-items:center;gap:7px;min-width:0;margin-left:auto}
    .user-profile-link{max-width:230px;padding:6px}
    .user-profile-copy{max-width:100%}
    .user-profile-name,.user-profile-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .user-profile-role{font-size:var(--ui-fs-rem-0_72)}
    .content{padding:12px}
}

@media(max-width:420px){
    .topbar-system-title{flex-basis:100%}
    .user-chip{width:100%;justify-content:flex-end}
    .user-profile-link{max-width:calc(100% - 46px)}
}


/* Subactivity parent selection and pagination v1.8.3-r8. */
.subactivity-batch-parent{display:block;max-width:980px;margin-bottom:18px}
.subactivity-batch-lines{display:grid;gap:14px}
.subactivity-line{border:1px solid #dfe7ef;border-radius:12px;background:#fafcfd;padding:16px}
.subactivity-line-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.subactivity-line-grid{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.6fr) minmax(120px,.55fr);gap:0 12px;align-items:start}
@media(max-width:900px){.subactivity-line-grid{grid-template-columns:1fr 1fr}.subactivity-line-grid label:nth-child(2){grid-column:1/-1}}
@media(max-width:700px){.subactivity-line{padding:13px}.subactivity-line-heading{align-items:flex-start}.subactivity-line-grid{grid-template-columns:1fr}.subactivity-line-grid label:nth-child(2){grid-column:auto}}

/* Budget control module v1.9.0-r5. */
.budget-control-filters{align-items:end}
.budget-control-filters .filter-grow{min-width:min(340px,100%);flex:1 1 280px}
.budget-control-structure-cell{min-width:260px;line-height:1.5}
.budget-control-context-help{margin-top:16px}
.budget-control-dimension-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}
.budget-control-position{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin:18px 0}
.budget-control-position>div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:3px 8px;padding:14px;border:1px solid #dce6ee;border-radius:12px;background:#f8fbfd}
.budget-control-position span{grid-column:1/-1;color:#5f7080;font-size:var(--ui-fs-px-13)}
.budget-control-position strong{font-size:var(--ui-fs-px-22);color:#234b68;text-align:right}
.budget-control-position small{color:#637583}
.budget-control-position .emphasis{border-color:#9fc9df;background:#edf8fd}
.budget-control-position .emphasis strong{color:#096b98}
.small-text{font-size:var(--ui-fs-px-12);margin-top:4px}
.field-help{display:block;margin-top:5px;color:#60717f;font-size:var(--ui-fs-px-12)}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:18px}
.detail-grid>div{display:flex;flex-direction:column;gap:5px}
.detail-grid>div>span{font-size:var(--ui-fs-px-13);color:#647583}
.detail-grid>div>strong{font-weight:600;line-height:1.55}
.detail-grid .full{grid-column:1/-1}
.danger-zone{border-color:#efc1c1}
.danger-zone h2{color:#9d2929}
@media(max-width:980px){.budget-control-position{grid-template-columns:repeat(2,minmax(150px,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:700px){.budget-control-dimension-grid,.budget-control-position,.detail-grid{grid-template-columns:1fr}.detail-grid .full{grid-column:auto}.budget-control-position strong{font-size:var(--ui-fs-px-20)}}


/* Compact expanded Sidebar width v2.2.0: sized for the longest menu label “แผนงบประมาณ”. */
/* Click-only bottom-edge sidebar toggle v2.1.2-r2. */
.app-shell{--sidebar-expanded-width:210px;--sidebar-collapsed-width:76px}
.sidebar{width:var(--sidebar-expanded-width);transition:width .2s ease,box-shadow .2s ease}
.sidebar.is-collapsed{width:var(--sidebar-collapsed-width)}
.sidebar.is-collapsed .sidebar-link{justify-content:center;padding-inline:0}
.sidebar.is-collapsed .nav-text{display:none}
.sidebar.is-collapsed .nav-label{height:1px;margin:10px 5px;background:rgba(255,255,255,.16);font-size:0;padding:0}
.sidebar.is-collapsed .nav-label-text{display:none}
.sidebar-toggle{
    display:grid;
    position:fixed;
    z-index:1100;
    left:calc(var(--sidebar-expanded-width) - 19px);
    bottom:max(22px,env(safe-area-inset-bottom));
    width:38px;
    height:38px;
    margin:0;
    padding:0;
    place-items:center;
    border:2px solid #f4f7fb;
    border-radius:999px;
    background:#153a5b;
    color:#fff;
    box-shadow:0 7px 20px rgba(15,34,50,.34);
    cursor:pointer;
    transition:left .2s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.sidebar-toggle:hover{background:#285879;box-shadow:0 9px 24px rgba(15,34,50,.4);transform:translateY(-1px)}
.sidebar-toggle:focus-visible{background:#285879;outline:3px solid rgba(23,107,156,.28);outline-offset:3px}
.sidebar-toggle-icon{width:20px;height:20px}
.sidebar-toggle-open{display:none}
.sidebar-toggle-close{display:block}
.sidebar.is-collapsed + .sidebar-toggle{left:calc(var(--sidebar-collapsed-width) - 19px)}
.sidebar.is-collapsed + .sidebar-toggle .sidebar-toggle-open{display:block}
.sidebar.is-collapsed + .sidebar-toggle .sidebar-toggle-close{display:none}
.budget-control-confirm-dialog{width:min(560px,calc(100vw - 32px));padding:0;border:0;border-radius:16px;box-shadow:0 24px 70px rgba(11,31,48,.34);color:#223b4d}
.budget-control-confirm-dialog::backdrop{background:rgba(11,31,48,.56)}
.budget-control-confirm-content{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:24px}
.budget-control-confirm-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fff3cd;color:#8a6100;font-size:var(--ui-fs-px-24);font-weight:800}
.budget-control-confirm-content h2{margin:0 0 6px;font-size:var(--ui-fs-px-22)}
.budget-control-confirm-content p{margin:0;color:#5f7080}
.budget-control-confirm-summary{grid-column:1/-1;display:grid;gap:0;margin:4px 0 0;border:1px solid #dce6ee;border-radius:12px;overflow:hidden}
.budget-control-confirm-summary>div{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);gap:12px;padding:11px 14px;background:#f8fbfd}
.budget-control-confirm-summary>div+div{border-top:1px solid #dce6ee}
.budget-control-confirm-summary dt{color:#607282}
.budget-control-confirm-summary dd{margin:0;text-align:right;overflow-wrap:anywhere}
.budget-control-confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
@media(max-width:620px){
    .sidebar{width:min(var(--sidebar-expanded-width),calc(100vw - 44px))}
    .sidebar.is-expanded{width:min(var(--sidebar-expanded-width),calc(100vw - 44px));box-shadow:12px 0 28px rgba(15,34,50,.28)}
    .sidebar.is-collapsed{width:var(--sidebar-collapsed-width);box-shadow:none}
    .main{width:calc(100% - var(--sidebar-collapsed-width));margin-left:var(--sidebar-collapsed-width)}
    .sidebar.is-expanded .sidebar-link{justify-content:flex-start;padding:4px 5px 4px 11px}
    .sidebar.is-expanded .nav-text{display:inline}
    .sidebar.is-expanded .nav-label{font-size:var(--ui-fs-px-12);margin:18px 10px 4px;background:transparent;height:auto}
    .sidebar.is-expanded .nav-label-text{display:inline}
    .sidebar-toggle{left:calc(min(var(--sidebar-expanded-width),calc(100vw - 44px)) - 19px)}
    .sidebar.is-collapsed + .sidebar-toggle{left:calc(var(--sidebar-collapsed-width) - 19px)}
}
@media(max-width:520px){
    .budget-control-confirm-content{grid-template-columns:40px 1fr;padding:18px;gap:10px}
    .budget-control-confirm-icon{width:38px;height:38px;font-size:var(--ui-fs-px-21)}
    .budget-control-confirm-summary>div{grid-template-columns:1fr;gap:3px}
    .budget-control-confirm-summary dd{text-align:left}
    .budget-control-confirm-actions{display:grid;grid-template-columns:1fr 1fr}
}


/* Optional and retrospective budget-control subactivity metadata v1.9.1-r2. */
[data-control-subactivity-update-form] .detail-grid strong { overflow-wrap: anywhere; }
[data-control-subactivity-update-form] select[data-inactive="1"] { color: var(--text-muted); }
.budget-control-confirm-icon { font-weight: 800; }

/* Budget disbursement module v2.0.0. */
.budget-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr));
    gap:12px;
    margin:0 0 18px;
}
.summary-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:baseline;
    gap:4px 8px;
    padding:16px;
    border:1px solid #dce6ee;
    border-radius:14px;
    background:#f8fbfd;
}
.summary-card>span{grid-column:1/-1;color:#607282;font-size:var(--ui-fs-px-13)}
.summary-card>strong{font-size:var(--ui-fs-px-23);line-height:1.2;color:#234b68;text-align:right;font-variant-numeric:tabular-nums}
.summary-card>small{color:#637583}
.summary-card.emphasis{border-color:#9fc9df;background:#edf8fd}
.summary-card.emphasis>strong{color:#096b98}
.budget-disbursement-control-card{
    margin-top:16px;
    padding:16px;
    border:1px solid #dce6ee;
    border-radius:14px;
    background:#f8fbfd;
}
.budget-disbursement-control-heading{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:flex-start;
    margin-bottom:7px;
}
.budget-disbursement-control-heading>strong{font-size:var(--ui-fs-px-18);color:#244861}
.budget-disbursement-control-heading>span{white-space:nowrap;color:#607282}
.budget-disbursement-control-structure{color:#53697a;line-height:1.55}
.budget-disbursement-position{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr));
    gap:10px;
    margin-top:14px;
}
.budget-disbursement-position>div{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:baseline;
    gap:3px 7px;
    padding:12px;
    border:1px solid #dce6ee;
    border-radius:11px;
    background:#fff;
}
.budget-disbursement-position span{grid-column:1/-1;color:#607282;font-size:var(--ui-fs-px-12)}
.budget-disbursement-position strong{font-size:var(--ui-fs-px-20);color:#234b68;text-align:right;overflow-wrap:anywhere}
.budget-disbursement-position small{color:#637583}
.budget-disbursement-position .emphasis{border-color:#9fc9df;background:#edf8fd}
.budget-disbursement-position .emphasis strong{color:#096b98}
@media(max-width:1180px){.budget-summary-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}}
@media(max-width:900px){.budget-disbursement-position{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:700px){.budget-summary-grid,.budget-disbursement-position{grid-template-columns:1fr}.budget-disbursement-control-heading{display:grid}.budget-disbursement-control-heading>span{white-space:normal}.summary-card>strong{font-size:var(--ui-fs-px-21)}}


/* Default filters, control status presentation, and activity-level reporting v2.0.0. */
.budget-control-list-table .budget-control-date-column,
.budget-disbursement-list-table .budget-disbursement-date-column{
    width:9rem;
    /* min-width:9rem; */
    white-space:nowrap;
}
.budget-control-list-table .budget-control-budget-column{
    width:27%;
}
.budget-control-list-table .budget-control-subject-column{
    width:21%;
    max-width:23rem;
    overflow-wrap:anywhere;
}
.budget-disbursement-list-table .budget-disbursement-structure-cell{
    min-width:240px;
    line-height:1.5;
}
@media(max-width:760px){
    .budget-control-list-table .budget-control-budget-column,
    .budget-control-list-table .budget-control-subject-column{width:auto}
    .budget-control-list-table .budget-control-subject-column{max-width:none}
}


.budget-disbursement-direct-note{margin:0 0 14px}
.budget-disbursement-direct-context{margin-bottom:14px}
.budget-disbursement-direct-context .full{grid-column:1/-1}

/* Collapsible budget-control hierarchy and direct disbursement action v2.0.0-r8. */
/* Compact outstanding-total placement and wording v2.1.4-r15. */
.budget-control-plan-tree{
    display:grid;
    gap:16px;
}
.budget-control-plan-node{
    margin:0;
    padding:0;
    border:0;
    background:transparent;
}
.budget-control-plan-node--plan{
    overflow:hidden;
    border:1px solid #dce6ee;
    border-radius:14px;
    background:#fff;
}
.budget-control-plan-node--program,
.budget-control-plan-node--activity{
    border-top:1px solid #e4ebf1;
}
.budget-control-plan-summary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:1rem;
    width:100%;
    min-width:0;
    padding:12px 14px;
    cursor:pointer;
    list-style:none;
}
.budget-control-plan-summary::-webkit-details-marker{display:none}
.budget-control-plan-summary::marker{content:''}
.budget-control-plan-summary:hover{background:#f4f8fb}
.budget-control-plan-summary:focus-visible{
    outline:3px solid rgba(23,107,156,.2);
    outline-offset:-3px;
}
.budget-control-plan-summary--plan{
    background:#eaf3f9;
    color:#153f5e;
    font-size:var(--ui-fs-rem-1_05);
}
.budget-control-plan-summary--program{
    background:#f4f8fb;
    color:#245c82;
}
.budget-control-plan-summary--activity{
    background:#fbfdfe;
    color:#405f75;
}
.budget-control-plan-label{
    display:flex;
    align-items:center;
    gap:.7rem;
    min-width:0;
}
.budget-control-plan-label>span:last-child{
    min-width:0;
    overflow-wrap:anywhere;
}
.budget-control-plan-label--program{padding-inline-start:1.35rem}
.budget-control-plan-label--activity{padding-inline-start:2.8rem}
.budget-control-plan-level{
    display:block;
    margin-bottom:.12rem;
    color:#687b8b;
    font-size:var(--ui-fs-rem-0_76);
    font-weight:600;
}
.budget-control-plan-toggle-icon{
    position:relative;
    display:inline-grid;
    place-items:center;
    flex:0 0 1.15rem;
    width:1.15rem;
    height:1.15rem;
    color:currentColor;
}
.budget-control-plan-toggle-icon::before{
    content:'';
    width:.48rem;
    height:.48rem;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(-45deg);
    transition:transform .16s ease;
}
.budget-control-plan-node[open]>summary .budget-control-plan-toggle-icon::before{
    transform:rotate(45deg);
}
.budget-control-plan-metrics{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.55rem;
    min-width:0;
    padding-inline-start:.75rem;
    text-align:right;
}
.budget-control-plan-total{
    text-align:right;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
.budget-control-plan-pending{
    display:inline-flex;
    align-items:center;
    padding:.1rem .42rem;
    border-radius:999px;
    background:#fff1f0;
    color:#b42318;
    font-size:var(--ui-fs-rem-0_78);
    font-weight:600;
    line-height:1.35;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
.budget-control-plan-table-wrap{
    border-top:1px solid #e4ebf1;
}
.budget-control-plan-table-wrap .budget-control-list-table{
    margin:0;
}
.budget-control-budget-type-line{
    margin-top:.4rem;
    line-height:1.45;
}
@media(max-width:760px){
    .budget-control-plan-summary{
        grid-template-columns:1fr;
        gap:.35rem;
    }
    .budget-control-plan-metrics{
        justify-content:flex-start;
        flex-wrap:wrap;
        padding-inline-start:1.85rem;
        text-align:left;
    }
    .budget-control-plan-total{
        padding-inline-start:0;
        text-align:left;
    }
    .budget-control-plan-pending{white-space:normal}
    .budget-control-plan-label--program{padding-inline-start:.75rem}
    .budget-control-plan-label--activity{padding-inline-start:1.5rem}
}


/* General transfer module v2.1.1-r2. */
.treasury-activity-list{display:grid;gap:1rem}
.treasury-activity-card,.treasury-item-detail{border:1px solid #d8e3eb;border-radius:.75rem;background:#fff;overflow:hidden}
.treasury-activity-card>summary,.treasury-item-detail>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;background:#f5f9fc;cursor:pointer;list-style:none}
.treasury-activity-card>summary::-webkit-details-marker,.treasury-item-detail>summary::-webkit-details-marker{display:none}
.treasury-activity-card>summary span:first-child{display:grid;gap:.2rem;min-width:0}
.treasury-activity-card>summary small{color:#647786;overflow-wrap:anywhere}
.treasury-available{white-space:nowrap;color:#176b9c;font-weight:700}
.treasury-activity-body{padding:1rem 1.1rem}
.treasury-funding-table .money-input{min-width:8rem;text-align:right}
.treasury-funding-table tfoot th{text-align:right;background:#f8fafc}
.field-success{color:#16794b;font-weight:600}.field-error{color:#b42318;font-weight:600}
.treasury-item-detail{margin-bottom:1rem}.treasury-item-detail>summary strong{white-space:nowrap}
.confirmation-summary{display:grid;gap:.55rem;margin:1rem 0}.confirmation-summary>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e5ebf0;padding-bottom:.45rem}.confirmation-summary dt{color:#647786}.confirmation-summary dd{font-weight:700;text-align:right}
@media(max-width:760px){.treasury-activity-card>summary,.treasury-item-detail>summary{align-items:flex-start;flex-direction:column}.treasury-available{white-space:normal}}

/* General transfer destinations and compact transfer forms v2.1.1-r2. */
.field-label-inline{
    display:inline-flex;
    align-items:baseline;
    gap:.18rem;
    white-space:nowrap;
}
.transfer-plan-summary th,
.transfer-plan-summary td{
    vertical-align:top;
}
.transfer-plan-summary th:nth-child(2),
.transfer-plan-summary td:nth-child(2){
    min-width:11.33rem;
}
.transfer-plan-summary th:nth-child(3),
.transfer-plan-summary td:nth-child(3){
    min-width:11rem;
}
.transfer-document-list th:first-child,
.transfer-document-list td:first-child{
    width:9rem;
    white-space:nowrap;
}
.transfer-document-list th:nth-child(3),
.transfer-document-list td:nth-child(3){
    min-width:8rem;
}
@media(max-width:760px){
    .field-label-inline{white-space:normal}
}

/* Budget-master hierarchical disclosure v2.1.2-r8. */
.budget-master-tree-table .budget-master-tree-name{
    display:flex;
    align-items:flex-start;
    gap:8px;
    min-width:320px;
}
.budget-master-tree-level-program{padding-inline-start:24px}
.budget-master-tree-level-activity{padding-inline-start:48px}
.budget-master-tree-level-subactivity{padding-inline-start:72px}
.budget-master-tree-toggle,
.budget-master-tree-toggle-spacer{
    width:26px;
    height:26px;
    flex:0 0 26px;
}
.budget-master-tree-toggle{
    display:inline-grid;
    place-items:center;
    padding:0;
    border:1px solid #cbd6e0;
    border-radius:6px;
    background:#fff;
    color:#315a75;
    cursor:pointer;
}
.budget-master-tree-toggle:hover,
.budget-master-tree-toggle:focus-visible{
    background:#e7f2fa;
    border-color:#8eb1c8;
    color:#176b9c;
    outline:2px solid transparent;
    box-shadow:0 0 0 3px rgba(23,107,156,.18);
}
.budget-master-tree-toggle svg{
    width:17px;
    height:17px;
    transition:transform .16s ease;
}
.budget-master-tree-toggle[aria-expanded="false"] svg{transform:rotate(-90deg)}
.budget-master-plan-copy,
.budget-master-plan-name,
.budget-master-plan-summary{font-weight:400}
.budget-master-plan-copy{min-width:0;line-height:1.55}
.budget-master-plan-summary{color:#6e7c89;margin-inline-start:6px}
.budget-master-tree-row[hidden]{display:none}

@media(max-width:760px){
    .budget-master-tree-table .budget-master-tree-name{min-width:280px}
    .budget-master-tree-level-program{padding-inline-start:16px}
    .budget-master-tree-level-activity{padding-inline-start:32px}
    .budget-master-tree-level-subactivity{padding-inline-start:48px}
    .budget-master-plan-summary{display:block;margin-inline-start:0}
}

/* Unified transfer dashboard and cross-plan transfer v2.1.3-r5. */
.transfer-primary-actions{flex-wrap:wrap}
.transfer-dashboard-filters{align-items:end}
.compact-summary-table th,.compact-summary-table td{vertical-align:top}
.transfer-plan-summary .transfer-summary-sequence{width:1%;min-width:0;white-space:nowrap}
.transfer-plan-summary .transfer-summary-plan{min-width:11.33rem}
.compact-summary-table th:nth-child(3),.compact-summary-table td:nth-child(3),
.compact-summary-table th:nth-child(4),.compact-summary-table td:nth-child(4){min-width:11rem}
.plan-transfer-grid .full{grid-column:1/-1}
.plan-transfer-action-panel .confirmation-check{display:flex;align-items:flex-start;gap:.65rem;font-weight:600}
.plan-transfer-action-panel .confirmation-check input{margin-top:.25rem;flex:0 0 auto}
.form-help{display:block;margin-top:.35rem;color:#647786;line-height:1.45}
@media(max-width:760px){
    .transfer-primary-actions{width:100%}
    .transfer-primary-actions .btn{width:100%;justify-content:center}
    .compact-summary-table th:nth-child(2),.compact-summary-table td:nth-child(2),
    .compact-summary-table th:nth-child(3),.compact-summary-table td:nth-child(3),
    .compact-summary-table th:nth-child(4),.compact-summary-table td:nth-child(4){min-width:9rem}
}


/* v2.1.4-r9 allocation master-detail and receipt overview */
.allocation-main-actions { flex-wrap: wrap; }
.allocation-plan-overview .sequence-col,
.receipt-bureau-overview .sequence-col { width: 1%; min-width: 0; white-space: nowrap; }
.allocation-master-row td { vertical-align: top; }
.allocation-detail-row > td { padding: .35rem .75rem 1rem; background: var(--surface-muted, #f8fafc); }
.allocation-detail-row details > summary { cursor: pointer; font-weight: 600; padding: .45rem 0; }
.nested-table-wrap { margin-top: .45rem; }
.nested-allocation-table { min-width: 760px; }
.nested-allocation-table th:first-child { min-width: 13rem; }
.plan-transfer-source-owners { margin-top: 1rem; }
.plan-transfer-source-owners h3 { margin-bottom: .25rem; }
.receipt-bureau-panel + .receipt-bureau-panel { margin-top: 1rem; }
.receipt-bureau-title { font-size: var(--ui-fs-rem-1_05); font-weight: 600; }
.receipt-bureau-overview tfoot th,
.receipt-bureau-overview tfoot td { font-weight: 700; }

/* v2.1.4-r9 full-width receipt allocation detail page */
.content.content--full-width{
    max-width:none;
    width:100%;
}
.content.content--full-width .narrow,
.content.content--full-width .wide{
    max-width:none;
    width:100%;
}
.budget-receipts-index,
.receipt-bureau-overview,
.receipt-bureau-section,
.receipt-bureau-table{
    width:100%;
}
.receipt-filter-row{
    display:grid;
    grid-template-columns:minmax(180px,220px) minmax(280px,1fr) auto;
    gap:16px;
    align-items:end;
}
.receipt-filter-row label{
    margin:0;
}
.receipt-filter-row .filter-actions{
    display:flex;
    align-items:flex-end;
}
.receipt-filter-row .filter-actions .btn{
    min-height:44px;
    white-space:nowrap;
}
.receipt-bureau-section{
    margin-bottom:20px;
}
.receipt-bureau-section-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:4px;
    padding-bottom:12px;
    border-bottom:1px solid #e3e9ef;
}
.receipt-bureau-section-header h2{
    margin:0;
    font-size:var(--ui-fs-rem-1_1);
}
.receipt-bureau-section .table-wrap{
    margin-top:14px;
}
.receipt-bureau-section tfoot th,
.receipt-bureau-section tfoot td{
    font-weight:700;
    background:#f1f5f8;
}
@media(max-width:800px){
    .receipt-filter-row{
        grid-template-columns:1fr;
    }
    .receipt-filter-row .filter-actions,
    .receipt-filter-row .filter-actions .btn{
        width:100%;
    }
}

/* v2.1.4-r9 receipt document letter column */
.receipt-letter-column{
    white-space:nowrap;
}

/* v2.1.4-r9 receipt document detail: one complete label/value item per column. */
.detail-grid.receipt-header-detail-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px 24px;
}
.receipt-header-detail-item{
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    align-items:baseline;
    gap:0 6px;
    min-width:0;
}
.receipt-header-detail-item>dt{
    margin:0;
    white-space:nowrap;
}
.receipt-header-detail-item>dd{
    min-width:0;
    margin:0;
    overflow-wrap:anywhere;
    line-height:1.55;
}
.receipt-header-detail-item--wide{
    grid-column:span 2;
}
.receipt-header-detail-item--full{
    grid-column:1/-1;
}
@media(max-width:980px){
    .detail-grid.receipt-header-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .receipt-header-detail-item--wide{grid-column:span 2}
}
@media(max-width:700px){
    .detail-grid.receipt-header-detail-grid{grid-template-columns:1fr}
    .receipt-header-detail-item--wide{grid-column:auto}
}

/* v2.1.4-r10 full-width transfer/allocation dashboard and Thai-date filters. */
.budget-allocations-index,
.allocation-unit-summary-panel,
.transfer-history-section{
    width:100%;
}
.allocation-filter-row{
    display:grid;
    grid-template-columns:minmax(150px,.75fr) minmax(220px,1.15fr) minmax(180px,.9fr) minmax(205px,1fr) minmax(205px,1fr) minmax(160px,.8fr) minmax(190px,1fr) auto;
    gap:12px;
    align-items:end;
}
.allocation-filter-row label{
    min-width:0;
    margin:0;
}
.allocation-filter-row input,
.allocation-filter-row select{
    width:100%;
    min-width:0;
}
.allocation-filter-row .filter-actions{
    display:flex;
    align-items:flex-end;
}
.allocation-filter-row .filter-actions .btn{
    min-height:44px;
    white-space:nowrap;
}
.allocation-unit-tree--inline{
    margin-top:14px;
}
.transfer-history-section + .transfer-history-section{
    margin-top:18px;
}
@media(max-width:1450px){
    .allocation-filter-row{grid-template-columns:repeat(4,minmax(180px,1fr))}
}
@media(max-width:900px){
    .allocation-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}
    .allocation-filter-row .filter-actions,
    .allocation-filter-row .filter-actions .btn{width:100%}
}
@media(max-width:620px){
    .allocation-filter-row{grid-template-columns:1fr}
}

/* v2.1.4-r12 full-width administration routes, compact user filters, and user detail grid. */
.users-filter-form{
    display:flex;
    flex-wrap:wrap;
    gap:14px 18px;
    align-items:flex-end;
}
.users-filter-form label{
    flex:0 1 30%;
    width:30%;
    min-width:220px;
    margin:0;
}
.users-filter-form input,
.users-filter-form select{
    width:100%;
    min-width:0;
}
.users-filter-form>.btn{
    min-height:44px;
}
.detail-grid.user-header-detail-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px 24px;
}
.user-header-detail-item{
    display:grid;
    grid-template-columns:max-content minmax(0,1fr);
    align-items:baseline;
    gap:0 6px;
    min-width:0;
}
.user-header-detail-item>dt{
    margin:0;
    white-space:nowrap;
}
.user-header-detail-item>dd{
    min-width:0;
    margin:0;
    overflow-wrap:anywhere;
    line-height:1.55;
}
.user-header-detail-item--wide{
    grid-column:span 2;
}
@media(max-width:980px){
    .users-filter-form label{flex-basis:calc(50% - 9px);width:calc(50% - 9px)}
    .detail-grid.user-header-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .user-header-detail-item--wide{grid-column:span 2}
}
@media(max-width:700px){
    .users-filter-form label,
    .users-filter-form>.btn{flex-basis:100%;width:100%;min-width:0}
    .detail-grid.user-header-detail-grid{grid-template-columns:1fr}
    .user-header-detail-item--wide{grid-column:auto}
}


/* Role-scoped outstanding budget-control Sidebar badge v2.1.4-r15. */
.sidebar-control-link{position:relative;overflow:visible}
.sidebar-control-label{display:inline-flex;align-items:flex-start;min-width:0;overflow:visible}
.sidebar-control-label .nav-text{flex:1 1 auto}
.sidebar-control-count{
    min-width:19px;
    height:19px;
    display:inline-grid;
    place-items:center;
    margin-left:3px;
    padding:0 4px;
    border:2px solid #153a5b;
    border-radius:999px;
    background:#ff3b30;
    color:#fff;
    box-shadow:0 2px 6px rgba(0,0,0,.25);
    font-size:var(--ui-fs-px-10);
    font-weight:800;
    font-variant-numeric:tabular-nums;
    line-height:1;
    transform:translateY(-45%);
}
.sidebar a.sidebar-control-link:hover .sidebar-control-count,
.sidebar a.sidebar-control-link.active .sidebar-control-count{border-color:#285879}
.sidebar.is-collapsed .sidebar-control-label{position:absolute;inset:0;pointer-events:none}
.sidebar.is-collapsed .sidebar-control-count{
    position:absolute;
    top:3px;
    right:5px;
    margin:0;
    transform:none;
}

/* Login identity, balanced logo column, and responsive action layout v2.2.0. */
@media(max-width:560px){
  .auth-shell{padding:20px 12px}
  .auth-card{--auth-card-inline-padding:18px;--auth-brand-shift:calc(51px - 2.5%);padding:24px 18px}
  .auth-brand h1{font-size:clamp(calc(1.15rem - 2pt),calc(5.5vw - 2pt),calc(1.45rem - 2pt));line-height:1.25}
  .auth-logo{width:min(84px,28vw)}
  .login-actions{grid-template-columns:1fr}
}
@media(max-width:380px){
  .auth-card{--auth-brand-shift:calc(45px - 2.5%)}
  .auth-brand h1{font-size:calc(1.08rem - 2pt)}
  .auth-logo{width:min(72px,25vw)}
}


/* Multi-plan bureau allocation, central-fund status and Sidebar notification v2.2.0. */
.allocation-section-heading,
.allocation-set-header,
.allocation-detail-set-heading,
.allocation-grand-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
}
.allocation-section-heading{margin-bottom:18px}
.allocation-section-heading h2,
.allocation-section-heading p,
.allocation-set-header h3{margin-bottom:0}
.allocation-set{
    border:1px solid #ccd9e4;
    border-radius:12px;
    background:#fbfdff;
    padding:18px;
    margin-bottom:18px;
}
.allocation-set-header{padding-bottom:12px;border-bottom:1px solid #e2e9ef;margin-bottom:16px}
.allocation-set>.full{display:grid}
.allocation-set .table-wrap{margin-top:12px}
.allocation-set-remove{padding:8px 12px}
.allocation-detail-set-heading{margin-bottom:8px}
.allocation-grand-total{font-size:var(--ui-fs-px-18)}
.allocation-grand-total strong{font-size:var(--ui-fs-px-24);font-variant-numeric:tabular-nums}
.receipt-status-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.central-fund-status{font-weight:700}

@media(max-width:700px){
    .allocation-section-heading,
    .allocation-set-header,
    .allocation-detail-set-heading,
    .allocation-grand-total{align-items:stretch;flex-direction:column}
    .allocation-section-heading>.btn,
    .allocation-set-remove{width:100%}
    .allocation-set{padding:14px}
}


/* v2.2.0 responsive Login version label and read-only Audit Log module. */
.audit-log-page,.audit-log-detail-page{width:100%}
.audit-log-filter-grid{display:grid;grid-template-columns:minmax(220px,1.35fr) repeat(2,minmax(190px,.9fr)) repeat(3,minmax(190px,1fr)) auto;gap:14px;align-items:end;margin-bottom:18px}
.audit-log-filter-grid>label{min-width:0;margin:0}
.audit-log-filter-grid input,.audit-log-filter-grid select{min-width:0;width:100%}
.audit-log-filter-actions{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.audit-log-filter-actions .btn{min-height:44px;white-space:nowrap}
.audit-log-table-wrap{margin-top:0}
.audit-log-table-wrap table{min-width:1320px}
.audit-log-time-cell{white-space:nowrap}
.audit-log-actor-column{min-width:250px}
.audit-log-entity-column{min-width:235px}
.audit-log-reason-cell{min-width:190px;max-width:360px;overflow-wrap:anywhere}
.audit-log-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}
.audit-server-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #e3e9ef}
.audit-server-pagination .pagination-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.audit-server-pagination .pagination-button.is-disabled{opacity:.45;cursor:not-allowed}
.audit-log-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 24px;margin:0 0 22px}
.audit-log-detail-item{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:0 7px;min-width:0}
.audit-log-detail-item dt{font-weight:700;white-space:nowrap}
.audit-log-detail-item dd{min-width:0;margin:0;overflow-wrap:anywhere;line-height:1.55}
.audit-log-detail-item--full{grid-column:1/-1}
.audit-long-text{word-break:break-word}
.audit-json-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.audit-json-panel{min-width:0;border:1px solid #dfe7ef;border-radius:10px;background:#fbfdff;padding:16px}
.audit-json-panel--full{grid-column:1/-1}
.audit-json-panel h2{font-size:var(--ui-fs-rem-1_05);margin:0 0 10px}
.audit-json{max-height:560px;margin:0;overflow:auto;border-radius:8px;background:#172331;color:#e8f1f7;padding:14px;font:var(--ui-fs-px-13)/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;tab-size:2}
@media(max-width:1500px){.audit-log-filter-grid{grid-template-columns:repeat(3,minmax(200px,1fr)) auto}}
@media(max-width:1050px){.audit-log-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-log-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.auth-card-version{right:10px;bottom:9px;font-size:var(--ui-fs-px-10)}.audit-log-filter-grid,.audit-log-detail-grid,.audit-json-grid{grid-template-columns:1fr}.audit-log-filter-actions,.audit-log-filter-actions .btn{width:100%}.audit-log-detail-item--full,.audit-json-panel--full{grid-column:auto}.audit-server-pagination{align-items:flex-start}.audit-server-pagination .pagination-controls{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}}

/* Fiscal-year table and action icons v2.2.0. */
.fiscal-year-table .fiscal-period-column{min-width:250px;white-space:nowrap}
.fiscal-year-actions{justify-content:flex-end}
@media(max-width:700px){.fiscal-year-table .fiscal-period-column{min-width:220px}}


/* v2.2.0 shared fiscal-year width for disbursement search/create. */
.budget-disbursement-year-select{width:190px;min-width:190px;max-width:100%}
@media(max-width:620px){.budget-disbursement-year-select{width:100%;min-width:0}}

/* Budget execution summary report v2.2.0. */
.report-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.report-page-heading h1{margin-bottom:5px}
.report-page-heading p{margin:0;color:#617285}
.report-generated-at{font-size:var(--ui-fs-px-13)}
.report-filter-card{padding:18px 20px;margin-bottom:18px}
.report-filter-grid{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(210px,1fr) minmax(220px,1fr) minmax(300px,1.45fr) auto;gap:14px;align-items:end}
.report-filter-grid .form-group{min-width:0}
.report-filter-grid label{margin:0 0 7px}
.report-filter-grid input,.report-filter-grid select{min-width:0;width:100%}
.report-readonly-value{min-height:44px;display:flex;align-items:center;padding:10px 12px;border:1px solid #d7e0e8;border-radius:8px;background:#f5f8fa;color:#40566a;font-weight:600}
.report-filter-actions{display:flex;align-items:end}
.report-filter-actions .btn{min-height:44px;white-space:nowrap}
.report-reconciliation-alert{border-left:4px solid #a72c2c}
.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:10px;margin-bottom:18px}
.report-summary-card{display:grid;gap:3px;min-width:0;padding:14px 16px;border:1px solid #dfe7ef;border-radius:12px;background:#fff;box-shadow:0 3px 14px rgba(25,50,75,.05)}
.report-summary-card span{color:#617285;font-size:var(--ui-fs-px-14)}
.report-summary-card strong{font-size:var(--ui-fs-rem-1_35);font-variant-numeric:tabular-nums;white-space:nowrap}
.report-summary-card small{font-size:var(--ui-fs-px-12)}
.report-summary-card--central{background:#fff9e9;border-color:#ead8a5}
.report-central-details{padding:16px 18px;margin-bottom:18px}
.report-central-details summary{cursor:pointer;font-weight:700;color:#234b68}
.report-central-details[open] summary{margin-bottom:12px}
.report-central-table{min-width:760px}
.report-legend{padding:16px 20px;margin-bottom:16px}
.report-legend h2{font-size:var(--ui-fs-rem-1_05);margin-bottom:10px}
.report-legend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px;color:#526678;font-size:var(--ui-fs-px-14)}
.report-section-nav{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.report-table-card{padding:0;margin-bottom:20px;overflow:hidden}
.report-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #dfe7ef}
.report-section-heading h2{margin:0 0 4px}
.report-section-heading p{margin:0;color:#617285}
.report-table-scroll{overflow:auto;max-width:100%;max-height:72vh}
.report-execution-table{min-width:2220px;margin:0;border-collapse:separate;border-spacing:0}
.report-group-summary-table{min-width:1810px}
.report-execution-table th,.report-execution-table td{padding:10px 11px;background:#fff}
.report-execution-table thead th{position:sticky;top:0;z-index:5;background:#eaf0f5;color:#2c4256;border-bottom:1px solid #cad7e1}
.report-execution-table thead tr.report-header-group th{top:0;text-align:center;background:#dce8f1;font-weight:700}
.report-execution-table thead tr.report-header-group + tr th{top:43px}
.report-execution-table .report-col-plan{position:sticky;left:0;z-index:3;min-width:310px;max-width:360px;border-right:1px solid #dfe7ef}
.report-execution-table .report-col-group{position:sticky;left:310px;z-index:3;min-width:220px;max-width:250px;border-right:1px solid #dfe7ef}
.report-execution-table thead .report-col-plan,.report-execution-table thead .report-col-group{z-index:8;background:#eaf0f5}
.report-execution-table thead tr.report-header-group th:first-child{left:0;z-index:9}
.report-execution-table td.numeric,.report-execution-table th.numeric{min-width:122px;white-space:nowrap;font-variant-numeric:tabular-nums}
.report-execution-table abbr{text-decoration:none;border:0;cursor:help}
.report-execution-table tbody tr:hover td{background:#f9fcfe}
.report-execution-table tbody tr:hover .report-col-plan,.report-execution-table tbody tr:hover .report-col-group{background:#f9fcfe}
.report-execution-table .report-subtotal-row th{background:#e9f4ea;font-weight:700;border-top:2px solid #bdd7c2}
.report-execution-table .report-grand-total-row th{position:sticky;bottom:0;z-index:4;background:#f8fafc;color:#111827;border-top:3px double #1f2937;border-bottom:1px solid #1f2937;font-weight:700}
.report-execution-table .report-grand-total-row th:first-child{left:0;z-index:7}
.report-row-warning td{background:#fff5e2!important}
.report-percent-cell{min-width:140px}
.report-progress{display:block;width:100%;height:5px;margin-top:5px;overflow:hidden;border-radius:999px;background:#dfe8ef}
.report-progress>span{display:block;height:100%;background:#2780ad}
.report-group-summary-table .report-col-group{left:0;min-width:260px}
.report-group-summary-table .report-grand-total-row th:first-child{left:0}
@media(max-width:1500px){
    .report-filter-grid{grid-template-columns:repeat(3,minmax(200px,1fr)) auto}
    .report-budget-line-field{grid-column:span 2}
    .report-legend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
    .report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .report-budget-line-field{grid-column:1/-1}
    .report-filter-actions{grid-column:1/-1}
    .report-filter-actions .btn{width:100%}
    .report-summary-grid{grid-template-columns:1fr 1fr}
    .report-legend-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .report-filter-grid,.report-summary-grid{grid-template-columns:1fr}
    .report-budget-line-field{grid-column:auto}
    .report-section-nav{display:grid;grid-template-columns:1fr}
    .report-section-nav .btn{width:100%}
    .report-execution-table .report-col-plan{min-width:270px;left:0}
    .report-execution-table .report-col-group{min-width:200px;left:270px}
}


/* v2.2.0 Budget Master actions, execution report grouping, disbursement cards, and control-select height. */
.budget-control-dimension-select{height:44px;min-height:44px;max-height:44px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.budget-summary-grid--four{grid-template-columns:repeat(4,minmax(150px,1fr))}
.budget-disbursement-summary-help{margin:-8px 0 18px;font-size:var(--ui-fs-px-13)}
.report-summary-card--percent{background:#edf8fd;border-color:#9fc9df}
.report-summary-card--percent strong{color:#096b98}
.report-budget-line-group-row th{background:#dcecf5!important;font-weight:700;border-top:2px solid #9ebfd2}
.report-budget-line-group-row .report-col-plan{z-index:5;background:#dcecf5!important}
.report-budget-line-group-row .report-col-group{background:#dcecf5!important}
.report-detail-continuation .report-col-plan,.report-group-detail-row .report-col-group{color:transparent}
.report-detail-continuation .report-col-plan::after,.report-group-detail-row .report-col-group::after{content:''}
.report-execution-table--plan .report-col-group{left:310px;min-width:110px;max-width:125px;width:120px}
.report-group-summary-table{min-width:2220px}
.report-group-summary-table .report-col-group{left:0;min-width:210px;max-width:240px}
.report-group-summary-table .report-col-plan{left:210px;min-width:310px;max-width:360px}
.report-group-header-row th{background:#dcecf5!important;font-weight:700;border-top:2px solid #9ebfd2}
.report-group-header-row .report-col-group,.report-group-header-row .report-col-plan{z-index:5;background:#dcecf5!important}
.report-execution-table .report-grand-total-row th{padding-bottom:30px}
.report-table-scroll{scrollbar-gutter:stable}
@media(max-width:1180px){.budget-summary-grid--four{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:700px){.budget-summary-grid--four{grid-template-columns:1fr}.budget-control-dimension-select{height:44px;min-height:44px;max-height:44px}}
@media(max-width:620px){
    .report-execution-table--plan .report-col-plan{min-width:270px;left:0}
    .report-execution-table--plan .report-col-group{min-width:100px;max-width:110px;left:270px}
    .report-group-summary-table .report-col-group{min-width:180px;left:0}
    .report-group-summary-table .report-col-plan{min-width:270px;left:180px}
}

/* v2.2.0 compact execution reports, Excel actions and budget-line disbursement summaries. */
.report-percentage-note{margin:-8px 0 18px;padding:9px 12px;border-left:4px solid #2680a9;background:#eef8fc;color:#31566b;font-size:var(--ui-fs-px-13)}
.report-section-heading{align-items:center}
.report-section-heading>.btn{flex:0 0 auto;white-space:nowrap}
.report-table-scroll{max-height:82vh;scrollbar-gutter:stable}
.report-execution-table,.report-group-summary-table{width:max-content;min-width:100%;table-layout:auto}
.report-execution-table .report-col-plan{min-width:0!important;width:260px;max-width:300px;white-space:normal;overflow-wrap:anywhere}
.report-execution-table .report-col-group{min-width:0!important;width:110px;max-width:120px;white-space:normal;overflow-wrap:anywhere}
.report-execution-table td.numeric,.report-execution-table th.numeric{min-width:98px;width:102px;padding-left:8px;padding-right:8px}
.report-execution-table--plan .report-col-group{left:260px!important;min-width:0!important;width:110px;max-width:120px}
.report-group-summary-table .report-col-group{left:0!important;min-width:0!important;width:120px;max-width:135px}
.report-group-summary-table .report-col-plan{left:120px!important;min-width:0!important;width:260px;max-width:300px}
.report-plan-path{font-weight:700;line-height:1.35}
.report-execution-table .report-grand-total-row th{padding-bottom:34px}
.allocation-detail-table caption{caption-side:bottom;padding:12px 10px 4px;color:#627587;font-size:var(--ui-fs-px-13);line-height:1.55;text-align:left}
.budget-disbursement-structure-cell .budget-disbursement-plan-path{font-weight:700;line-height:1.45}
.budget-disbursement-structure-cell .budget-disbursement-type-category{margin-top:3px;color:#617285;font-size:var(--ui-fs-px-13);line-height:1.4}
@media(max-width:850px){
  .report-table-scroll{max-height:78vh}
  .report-execution-table .report-col-plan{width:230px;max-width:250px}
  .report-execution-table--plan .report-col-group{left:230px!important;width:100px;max-width:110px}
  .report-group-summary-table .report-col-group{width:105px;max-width:115px}
  .report-group-summary-table .report-col-plan{left:105px!important;width:230px;max-width:250px}
  .report-execution-table td.numeric,.report-execution-table th.numeric{min-width:92px;width:96px}
}
@media(max-width:620px){
  .report-section-heading{align-items:stretch;flex-direction:column}
  .report-section-heading>.btn{width:100%}
  .report-table-scroll{max-height:75vh}
  .report-execution-table .report-col-plan{width:210px;max-width:230px}
  .report-execution-table--plan .report-col-group{left:210px!important;width:96px;max-width:104px}
  .report-group-summary-table .report-col-group{width:96px;max-width:104px}
  .report-group-summary-table .report-col-plan{left:96px!important;width:210px;max-width:230px}
}

/* v2.2.0 combined Browser-UAT refinements. */
.auth-card{--auth-control-width:80%}
.auth-login-field{
    width:var(--auth-login-field-width);
    margin-inline:auto;
}
.login-actions{
    width:var(--auth-control-width);
    margin-inline:auto;
}
.auth-login-field input{
    width:100%;
    text-align:center;
}
.login-actions{align-items:start}
.login-action-block{
    display:flex;
    min-width:0;
    flex-direction:column;
    align-items:stretch;
    gap:7px;
}
.login-action-block .btn{width:100%}

.budget-receipt-scope-note{
    display:flex;
    align-items:flex-start;
    gap:12px;
    width:100%;
    margin:0 0 20px;
    padding:14px 16px;
    border:1px solid #b9d7e8;
    border-radius:10px;
    background:#f1f8fc;
    color:#31566d;
}
.budget-receipt-scope-note p{margin:0;line-height:1.65}
.budget-receipt-scope-note__icon{
    display:inline-grid;
    flex:0 0 24px;
    width:24px;
    height:24px;
    place-items:center;
    border-radius:50%;
    background:#176b9c;
    color:#fff;
    font-family:serif;
    font-weight:700;
}

.budget-disbursement-activity-summary{
    width:100%;
    min-width:1128px;
    table-layout:fixed;
}
.budget-disbursement-activity-summary col.budget-disbursement-summary-col-sequence{width:var(--table-sequence-width)}
.budget-disbursement-activity-summary col.budget-disbursement-summary-col-plan{width:430px}
.budget-disbursement-activity-summary col.budget-disbursement-summary-col-money{width:140px}
.budget-disbursement-activity-summary col.budget-disbursement-summary-col-percent{width:96px}
.budget-disbursement-list-table col.budget-disbursement-list-col-sequence{width:var(--table-sequence-width)}
.budget-disbursement-activity-summary .budget-disbursement-plan-path-cell{
    min-width:0;
    overflow-wrap:anywhere;
    line-height:1.45;
}
.budget-disbursement-activity-summary .budget-disbursement-plan-path{font-weight:700}
.budget-disbursement-activity-summary .budget-disbursement-type-category-line{
    margin-top:4px;
    color:#617285;
    font-size:var(--ui-fs-px-13);
    line-height:1.4;
}
/* v2.2.5-r1: numeric values in the budget-disbursement summary are right-aligned. */
.budget-disbursement-activity-summary .budget-disbursement-summary-number{
    text-align:right;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}

.allocation-history-table{width:100%;table-layout:auto}
.allocation-history-table .allocation-history-sequence,
.receipt-bureau-table .receipt-sequence{
    width:1%;
    min-width:0;
    padding-inline:8px;
    text-align:center;
    white-space:nowrap;
}
.allocation-history-table .allocation-history-status{
    width:108px;
    min-width:108px;
    max-width:108px;
    text-align:center;
    white-space:nowrap;
}
.allocation-history-plan-cell{min-width:250px;line-height:1.45}
.allocation-history-plan-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.allocation-history-plan-list li+li{padding-top:8px;border-top:1px dashed #d9e2e9}
.allocation-history-plan-list small{color:#607282}

.dashboard-budget-movement-card{margin-top:20px}
.dashboard-budget-movement-card .report-section-heading{align-items:flex-start}
.dashboard-budget-movement-scroll{max-height:56vh}
.dashboard-budget-movement-note{margin-top:-8px}

@media(max-width:700px){
    .auth-card{--auth-login-field-width:70%}
    .budget-receipt-scope-note{padding:12px 13px}
    .allocation-history-plan-cell{min-width:220px}
    .dashboard-budget-movement-scroll{max-height:62vh}
}



/* v2.2.0 Dashboard, allocation-history and full-screen report refinements. */
:root{--table-sequence-width:42px;--allocation-history-sequence-width:var(--table-sequence-width);--allocation-history-status-width:108px}
.allocation-history-table .allocation-history-sequence{width:var(--allocation-history-sequence-width);min-width:var(--allocation-history-sequence-width);max-width:var(--allocation-history-sequence-width);padding-inline:5px}

.table-sequence-column,
.budget-disbursement-activity-summary .budget-disbursement-sequence-column,
.budget-disbursement-list-table .budget-disbursement-sequence-column{
    width:var(--table-sequence-width);
    min-width:var(--table-sequence-width);
    max-width:var(--table-sequence-width);
    padding-inline:5px;
    text-align:center;
    white-space:nowrap;
}
.allocation-history-table .allocation-history-status{width:var(--allocation-history-status-width);min-width:var(--allocation-history-status-width);max-width:var(--allocation-history-status-width)}
.dashboard-budget-movement-card{margin:0 0 20px}
.dashboard-budget-movement-scroll--expanded{max-height:72vh}
.report-section-heading-link{display:block;min-width:0;flex:1;color:inherit;text-decoration:none;border-radius:8px;padding:2px 4px;margin:-2px -4px}
.report-section-heading-link:hover h2{text-decoration:underline;text-underline-offset:3px}
.report-section-heading-link:focus-visible{outline:3px solid rgba(23,107,156,.28);outline-offset:3px}
.report-section-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.report-fullscreen-button{display:inline-grid;width:42px;min-width:42px;height:42px;padding:8px;place-items:center}
.report-fullscreen-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.report-budget-line-summary-table{width:max-content;min-width:100%;table-layout:auto}
.report-budget-line-summary-table .report-col-plan{position:sticky;left:0;z-index:3;background:#fff;width:300px;max-width:340px;white-space:normal;overflow-wrap:anywhere}
.report-budget-line-summary-table thead .report-col-plan{z-index:6;background:#e9eef2}
.report-budget-line-bureau{display:inline-block;margin-top:4px;color:#587080}
.report-fullscreen-body{margin:0;background:#f4f7f9;color:#1f2f3a;font-family:"Sarabun",sans-serif}
.report-fullscreen-shell{width:100vw;max-width:none;min-height:100vh;padding:14px 16px 18px;box-sizing:border-box}
.report-fullscreen-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.report-fullscreen-header h1{margin:0;font-size:var(--ui-fs-px-24)}.report-fullscreen-header p{margin:4px 0 0;color:#607282}
.report-fullscreen-shell .report-table-card{margin:0;padding:12px}
.report-fullscreen-shell .report-table-scroll{max-height:calc(100vh - 150px)}
.report-fullscreen-shell .report-legend{margin-top:12px}
.budget-disbursement-budget-type{font-weight:700;line-height:1.4}
.budget-disbursement-budget-category{margin-top:2px;color:#607282;line-height:1.4}
@media(max-width:850px){.dashboard-budget-movement-scroll--expanded{max-height:68vh}.report-fullscreen-shell{padding:10px}.report-fullscreen-header{align-items:stretch;flex-direction:column}.report-fullscreen-header .btn{width:100%}}


/* v2.2.0 Dashboard and fullscreen report density refinements. */
.dashboard-budget-movement-scroll{max-height:72vh}
.dashboard-budget-movement-scroll--expanded{max-height:82vh}
.report-fullscreen-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.report-fullscreen-shell .report-table-scroll{max-height:calc(100vh - 96px)}
@supports (height:100dvh){.report-fullscreen-shell .report-table-scroll{max-height:calc(100dvh - 96px)}}
.report-percentage-note--after-table{margin:12px 0 0}
@media(max-width:850px){.dashboard-budget-movement-scroll{max-height:68vh}.dashboard-budget-movement-scroll--expanded{max-height:76vh}.report-fullscreen-header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.report-fullscreen-header-actions .btn{width:100%}.report-fullscreen-shell .report-table-scroll{max-height:calc(100vh - 142px)}}
@supports (height:100dvh){@media(max-width:850px){.report-fullscreen-shell .report-table-scroll{max-height:calc(100dvh - 142px)}}}

/* v2.2.0 strict export and legend layout. */
.report-legend-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px 28px;
}
.report-legend-column{
    display:grid;
    align-content:start;
    gap:8px;
    min-width:0;
}
.report-legend-column span{display:block;line-height:1.55}
.dashboard-budget-export-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:0;
    width:100%;
    margin:20px 0 22px;
    overflow:hidden;
    background:#fff;
    border:1px solid #dce6ee;
    border-radius:16px;
    box-shadow:0 5px 18px rgba(24,54,82,.06);
}
.dashboard-budget-export-group.dashboard-report-nav__item{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) 18px;
    align-items:center;
    justify-content:stretch;
    gap:12px;
    min-width:0;
    min-height:72px;
    padding:14px 16px;
    color:#20354d;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    text-decoration:none;
    transition:background-color .18s ease,color .18s ease;
}
.dashboard-report-nav__item + .dashboard-report-nav__item{border-top:1px solid #edf2f6}
.dashboard-report-nav__icon{
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    border-radius:12px;
    color:#1676a4;
    background:#eaf4f9;
}
.dashboard-report-nav__icon svg,
.dashboard-report-nav__arrow svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.dashboard-report-nav__label{
    min-width:0;
    color:inherit;
    font-size:var(--ui-fs-rem-1_08);
    font-weight:600;
    line-height:1.35;
    text-align:left;
    overflow-wrap:break-word;
}
.dashboard-report-nav__arrow{
    display:grid;
    place-items:center;
    color:#7b91a4;
    transition:transform .18s ease,color .18s ease;
}
.dashboard-report-nav__item:hover{background:#f4f9fc;color:#126b98}
.dashboard-report-nav__item:hover .dashboard-report-nav__arrow{color:#126b98;transform:translateX(2px)}
.dashboard-report-nav__item:active{background:#ebf4f9}
.dashboard-report-nav__item:focus-visible{
    position:relative;
    z-index:1;
    outline:3px solid rgba(22,118,164,.25);
    outline-offset:-3px;
}
.report-pdf-document{background:#fff}
.report-pdf-error{margin-bottom:12px}
.report-fullscreen-header-actions button[disabled]{cursor:wait;opacity:.7}
@media(min-width:1025px){
    .dashboard-budget-export-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
    .dashboard-report-nav__item + .dashboard-report-nav__item{
        border-top:0;
        border-left:1px solid #edf2f6;
    }
}
@media(max-width:380px){
    .dashboard-budget-export-group.dashboard-report-nav__item{
        grid-template-columns:38px minmax(0,1fr) 16px;
        gap:10px;
        min-height:68px;
        padding:12px 13px;
    }
    .dashboard-report-nav__icon{width:38px;height:38px;border-radius:11px}
    .dashboard-report-nav__label{font-size:var(--ui-fs-rem-1)}
}
@media(prefers-reduced-motion:reduce){
    .dashboard-report-nav__item,
    .dashboard-report-nav__arrow{transition:none}
}
@media(max-width:700px){
    .report-legend-grid{grid-template-columns:1fr}
}

/* v2.2.0 mobile wide-canvas table layout for viewports narrower than iPad. */
.mobile-wide-scroll{
    max-width:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
}
@media(max-width:767px){
    html,body{max-width:100%;overflow-x:hidden}
    .main{min-width:0;overflow-x:clip}
    .content{--mobile-content-gutter:10px;padding-inline:var(--mobile-content-gutter)}
    .panel{--mobile-panel-gutter:14px;padding-inline:var(--mobile-panel-gutter)}

    /* Reclaim card padding while keeping page-level scrolling vertical only. */
    .panel:not(.report-table-card) .mobile-wide-scroll{
        width:calc(100% + (var(--mobile-panel-gutter) * 2));
        max-width:none;
        margin-inline:calc(var(--mobile-panel-gutter) * -1);
        padding-inline:var(--mobile-panel-gutter);
        border-radius:0;
    }
    .report-table-card{
        width:calc(100% + (var(--mobile-content-gutter) * 2));
        max-width:none;
        margin-inline:calc(var(--mobile-content-gutter) * -1);
        padding:0;
        border-radius:0;
    }
    .report-table-card .report-section-heading{padding-inline:14px}
    .report-table-card .mobile-wide-scroll{padding-inline:14px}

    /* Keep wide data as a horizontal canvas instead of compressing every column. */
    .report-execution-table--plan{min-width:1540px}
    .report-budget-line-summary-table{min-width:1340px}
    .report-group-summary-table{min-width:1460px}
    .allocation-history-table--external{min-width:980px}
    .allocation-history-table--plan{min-width:1160px}
    .allocation-history-table--group{min-width:1060px}
    .allocation-history-table--allocation{min-width:900px}
    .budget-disbursement-activity-summary{min-width:1128px}
    .budget-disbursement-list-table{min-width:980px}
    .budget-control-list-table{min-width:1080px}
    .receipt-bureau-table{min-width:1120px}
    .receipt-bureau-section + .panel .mobile-wide-scroll>table{min-width:980px}
    .transfer-plan-summary{min-width:1120px}
    .transfer-document-list{min-width:980px}
    .fiscal-year-table{min-width:860px}
    .budget-master-tree-table{min-width:900px}
    .audit-log-table-wrap>table{min-width:1180px}

    /* On phones keep one key column sticky so numeric columns remain reachable. */
    .report-execution-table--plan .report-col-plan{
        left:0!important;
        width:190px!important;
        max-width:210px!important;
    }
    .report-execution-table--plan .report-col-group{
        position:static!important;
        left:auto!important;
        width:92px!important;
        max-width:100px!important;
    }
    .report-group-summary-table .report-col-group{
        left:0!important;
        width:92px!important;
        max-width:100px!important;
    }
    .report-group-summary-table .report-col-plan{
        position:static!important;
        left:auto!important;
        width:190px!important;
        max-width:210px!important;
    }
    .report-budget-line-summary-table .report-col-plan{
        left:0!important;
        width:210px!important;
        max-width:230px!important;
    }

    .mobile-wide-scroll>table{width:max-content;min-width:100%}
    .mobile-wide-scroll th,.mobile-wide-scroll td{overflow-wrap:normal}
    .mobile-wide-scroll td.numeric,.mobile-wide-scroll th.numeric{white-space:nowrap}
}

/* v2.2.0 smartphone top-menu Sidebar and monochrome total-row contract. */
.sidebar-mobile-bar{display:none}
.sidebar-mobile-dashboard{display:flex;align-items:center;gap:10px;min-width:0;color:#eaf4fb;text-decoration:none;font-weight:700}
.sidebar-mobile-dashboard:hover,.sidebar-mobile-dashboard:focus-visible{color:#fff;outline:none}
.sidebar-mobile-toggle{display:none;width:42px;height:42px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.sidebar-mobile-toggle:hover,.sidebar-mobile-toggle:focus-visible{background:#285879;outline:3px solid rgba(255,255,255,.18);outline-offset:2px}
.sidebar-mobile-toggle-icon{width:22px;height:22px}
.sidebar-mobile-toggle-close{display:none}
.sidebar.is-expanded .sidebar-mobile-toggle-open{display:none}
.sidebar.is-expanded .sidebar-mobile-toggle-close{display:block}

@media(max-width:767px){
    .app-shell{display:block;min-height:100vh}
    .sidebar{
        --mobile-sidebar-bar-height:58px;
        position:sticky;
        top:0;
        z-index:1200;
        width:100%!important;
        height:var(--mobile-sidebar-bar-height)!important;
        min-height:var(--mobile-sidebar-bar-height);
        padding:0!important;
        overflow:visible!important;
        background:#153a5b;
        box-shadow:0 2px 10px rgba(15,34,50,.18);
        transition:none;
    }
    .sidebar-mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%;padding:8px 10px 8px 14px}
    .sidebar-mobile-dashboard{flex:1 1 auto;min-height:42px;padding:9px 8px;border-radius:8px}
    .sidebar-mobile-dashboard.active,.sidebar-mobile-dashboard:hover{background:#285879}
    .sidebar-mobile-dashboard .nav-text,.sidebar.is-collapsed .sidebar-mobile-dashboard .nav-text{display:inline;overflow:visible;text-overflow:clip}
    .sidebar-mobile-toggle{display:grid;flex:0 0 42px}
    .sidebar-edge-toggle{display:none!important}
    .sidebar nav.sidebar-navigation{
        position:absolute;
        top:100%;
        right:0;
        left:0;
        z-index:1201;
        display:grid;
        gap:6px;
        width:100%;
        max-height:calc(100vh - var(--mobile-sidebar-bar-height));
        max-height:calc(100dvh - var(--mobile-sidebar-bar-height));
        padding:10px 10px max(14px,env(safe-area-inset-bottom));
        overflow-x:hidden;
        overflow-y:auto;
        background:#153a5b;
        box-shadow:0 16px 30px rgba(15,34,50,.34);
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
    }
    .sidebar.is-collapsed nav.sidebar-navigation{display:none}
    .sidebar.is-expanded nav.sidebar-navigation{display:grid}
    .sidebar nav.sidebar-navigation .sidebar-dashboard-link{display:none}
    .sidebar nav.sidebar-navigation .sidebar-link,
    .sidebar.is-expanded nav.sidebar-navigation .sidebar-link{justify-content:flex-start;min-height:32px;padding:4px 5px 4px 11px}
    .sidebar.is-expanded nav.sidebar-navigation .nav-text{display:inline}
    .sidebar.is-expanded nav.sidebar-navigation .nav-label{height:auto;margin:18px 10px 4px;padding:0;background:transparent;font-size:var(--ui-fs-px-12)}
    .sidebar.is-expanded nav.sidebar-navigation .nav-label-text{display:inline}
    .main{width:100%!important;margin-left:0!important;min-width:0}
}

@media print{
    .report-execution-table .report-grand-total-row th{background:#fff!important;color:#000!important;border-top:3px double #000!important;border-bottom:1px solid #000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* v2.2.5-r1 execution-report desktop cards, billion-baht columns, and shared fullscreen layout. */
.report-execution-table .report-money-column{
    white-space:nowrap;
    text-align:right;
    font-variant-numeric:tabular-nums;
}
.report-execution-table td.report-money-column,
.report-execution-table th.report-money-column{
    min-width:148px;
    width:152px;
    max-width:none;
    padding-left:10px;
    padding-right:10px;
}
.report-fullscreen-shell .report-execution-table td.report-money-column,
.report-fullscreen-shell .report-execution-table th.report-money-column{
    min-width:152px;
    width:156px;
}
@media(max-width:850px){
    .report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .report-summary-grid{grid-template-columns:1fr}
}



/* v2.2.5-r1 system-wide table sequence, report naming, and display-alignment refinements. */
.org-group-sequence{display:inline-block;min-width:1.7em;text-align:right;font-variant-numeric:tabular-nums}
.report-table-card + .report-legend{margin-top:-8px;margin-bottom:20px}
.dashboard-budget-export-buttons .btn{flex:1 1 auto}

/* v2.2.5-r1: show the release label only on desktop viewports wider than iPad. */
.topbar-system-version{display:none}
@media(min-width:1025px){
    .topbar-system-version{display:inline-flex}
}


/* v2.2.5-r1 minimalist Dashboard report navigation and retained PDF-export safeguards. */
.dashboard-report-nav .dashboard-budget-detail-button{
    width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
}


/* Budget Master per-plan sections and tree-aware pagination v2.2.6-r2. */
.budget-plan-sections{display:grid;gap:18px}
.budget-plan-section{margin:0}
.budget-plan-section-header{align-items:flex-start;margin-bottom:12px}
.budget-plan-section-heading{display:flex;align-items:flex-start;gap:9px;min-width:0}
.budget-plan-section-title{margin:0;color:#20354d;font-size:var(--ui-fs-rem-1_08);line-height:1.45}
.budget-plan-section-summary{margin:3px 0 0;color:#6e7c89;font-size:var(--ui-fs-rem-0_92);font-weight:400}
.budget-plan-section-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.budget-plan-section-empty{padding:18px 12px}
.budget-master-table-pagination{margin-bottom:0}
@media(max-width:700px){
  .budget-plan-section-header{gap:12px}
  .budget-plan-section-tools{width:100%;justify-content:flex-start;padding-inline-start:37px}
}

/* v2.2.7-r3 — hierarchy labels, organization names, report navigation, plan-column width, and topbar role line */
.budget-master-subactivity-type-cell{vertical-align:top}
.org-unit-name-primary{font-weight:700}
.org-unit-name-short{font-weight:400;color:inherit}
.org-unit-heading,.org-group-name{font-weight:400}
.report-section-nav.dashboard-report-nav{margin:0 0 16px}

@media (min-width:768px) and (max-width:850px){
  .report-execution-table .report-col-plan{
    min-width:299px!important;
    width:299px!important;
    max-width:325px!important;
  }
  .report-execution-table--plan .report-col-group{left:299px!important}
  .report-group-summary-table .report-col-plan{
    left:105px!important;
    min-width:299px!important;
    width:299px!important;
    max-width:325px!important;
  }
  .report-budget-line-summary-table .report-col-plan{
    min-width:390px!important;
    width:390px!important;
    max-width:442px!important;
  }
}

@media (min-width:851px){
  .report-execution-table .report-col-plan{
    min-width:338px!important;
    width:338px!important;
    max-width:390px!important;
  }
  .report-execution-table--plan .report-col-group{left:338px!important}
  .report-group-summary-table .report-col-plan{
    left:120px!important;
    min-width:338px!important;
    width:338px!important;
    max-width:390px!important;
  }
  .report-budget-line-summary-table .report-col-plan{
    min-width:390px!important;
    width:390px!important;
    max-width:442px!important;
  }
}

.report-fullscreen-shell .report-execution-table--plan .report-col-plan,
.report-fullscreen-shell .report-group-summary-table .report-col-plan,
.report-pdf-measurement-table.report-execution-table--plan .report-col-plan,
.report-pdf-measurement-table.report-group-summary-table .report-col-plan{
  min-width:338px!important;
  width:338px!important;
  max-width:390px!important;
}
.report-fullscreen-shell .report-budget-line-summary-table .report-col-plan,
.report-pdf-measurement-table.report-budget-line-summary-table .report-col-plan{
  min-width:390px!important;
  width:390px!important;
  max-width:442px!important;
}

/* v2.2.7-r3 — pending-control notice, disbursement total row, and compact control-detail hierarchy. */
.budget-control-outstanding-count{
    color:#b42318;
    font-weight:600;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
.budget-disbursement-summary-total-row th{
    font-weight:700;
    border-top:2px solid #c8d5df;
    background:#f4f7fa;
}
.budget-disbursement-summary-total-row th:first-child{text-align:left}
.budget-control-detail-plan-cell,
.budget-control-detail-type-category-cell{line-height:1.5}
.budget-control-detail-plan-cell>span,
.budget-control-detail-type-category-cell>span{color:#5f7282}
@media(max-width:620px){
    .budget-control-outstanding-count{white-space:normal}
}


/* v2.2.7-r5 — provider-separated user tables, responsive user forms, and inline cancellation markers. */
.user-list-section .section-header{margin-bottom:0}
.user-list-table{min-width:980px}
.user-list-table .user-list-action-column{width:54px;min-width:54px;max-width:54px}
.user-list-table .table-actions{width:54px;min-width:54px;max-width:54px}
.user-create-panel{width:100%;max-width:none}
.user-create-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.user-create-form>label{min-width:0;align-self:start;align-content:start;line-height:1.45}
.user-create-role-field{grid-column:1/2}
.user-create-actions{grid-column:1/-1}
.user-local-profile-field--compact>input{width:30%}
.field-label-inline{display:inline-flex;align-items:baseline;gap:.25rem;white-space:nowrap}
@media(max-width:800px){
    .user-create-form{grid-template-columns:1fr}
    .user-create-role-field,.user-create-actions{grid-column:auto}
}
@media(max-width:700px){
    .user-local-profile-field--compact>input{width:100%}
}

/* v2.2.8-r1 request-label and execution-report column contract. */
.report-execution-table td.report-transfer-column,
.report-execution-table th.report-transfer-column{
    min-width:240px;
    width:240px;
    max-width:none;
    white-space:nowrap;
}
.dashboard-budget-movement-scroll,
.dashboard-budget-movement-scroll--expanded{
    max-height:360px;
}
@media(max-width:850px){
    .dashboard-budget-movement-scroll,
    .dashboard-budget-movement-scroll--expanded{max-height:340px}
}

/* v2.2.8-r2 approval wording, narrower execution-report classification columns, and normal-report viewport alignment. */
body:not(.report-fullscreen-body) .report-table-card .report-table-scroll{max-height:360px}
.report-execution-table .report-col-plan{min-width:0!important;width:208px!important;max-width:240px!important}
.report-execution-table--plan .report-col-group{left:208px!important;min-width:0!important;width:88px!important;max-width:96px!important}
.report-group-summary-table .report-col-group{left:0!important;min-width:0!important;width:96px!important;max-width:108px!important}
.report-group-summary-table .report-col-plan{left:96px!important;min-width:0!important;width:208px!important;max-width:240px!important}
.report-budget-line-summary-table .report-col-plan{min-width:312px!important;width:312px!important;max-width:354px!important}
@media (min-width:768px) and (max-width:850px){
  .report-execution-table .report-col-plan{min-width:239px!important;width:239px!important;max-width:260px!important}
  .report-execution-table--plan .report-col-group{left:239px!important;width:88px!important;max-width:96px!important}
  .report-group-summary-table .report-col-group{width:84px!important;max-width:92px!important}
  .report-group-summary-table .report-col-plan{left:84px!important;min-width:239px!important;width:239px!important;max-width:260px!important}
  .report-budget-line-summary-table .report-col-plan{min-width:312px!important;width:312px!important;max-width:354px!important}
}
@media (min-width:851px){
  .report-execution-table .report-col-plan{min-width:270px!important;width:270px!important;max-width:312px!important}
  .report-execution-table--plan .report-col-group{left:270px!important;width:88px!important;max-width:96px!important}
  .report-group-summary-table .report-col-group{width:96px!important;max-width:108px!important}
  .report-group-summary-table .report-col-plan{left:96px!important;min-width:270px!important;width:270px!important;max-width:312px!important}
  .report-budget-line-summary-table .report-col-plan{min-width:312px!important;width:312px!important;max-width:354px!important}
}
@media(max-width:850px){body:not(.report-fullscreen-body) .report-table-card .report-table-scroll{max-height:340px}}
@media(max-width:767px){
  .report-execution-table--plan .report-col-plan{left:0!important;width:152px!important;max-width:168px!important}
  .report-execution-table--plan .report-col-group{position:static!important;left:auto!important;width:74px!important;max-width:80px!important}
  .report-group-summary-table .report-col-group{left:0!important;width:74px!important;max-width:80px!important}
  .report-group-summary-table .report-col-plan{position:static!important;left:auto!important;width:152px!important;max-width:168px!important}
  .report-budget-line-summary-table .report-col-plan{left:0!important;width:168px!important;max-width:184px!important}
}


/* v2.2.8-r4 — Local User email-passcode recovery and password visibility controls. */
.password-input-with-toggle{display:flex;align-items:stretch;width:100%}
.password-input-with-toggle>input{flex:1 1 auto;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}
.password-visibility-toggle{flex:0 0 auto;min-width:68px;padding:.55rem .75rem;border:1px solid #9fb1bf;border-left:0;border-radius:0 8px 8px 0;background:#f4f7fa;color:#233849;cursor:pointer;font:inherit}
.password-visibility-toggle:hover,.password-visibility-toggle:focus-visible{background:#e8eef3;color:#102a43}
.login-password-recovery-link{display:flex;justify-content:flex-end;margin-top:-.2rem;margin-bottom:.8rem;font-size:var(--ui-fs-rem-0_9)}
.login-password-recovery-link a{color:#1f5f8b;text-decoration:none}
.login-password-recovery-link a:hover,.login-password-recovery-link a:focus-visible{text-decoration:underline}
.auth-card--password-recovery{width:min(100%,520px)}
.auth-recovery-intro{line-height:1.65}
.auth-recovery-notice{display:flex;flex-direction:column;gap:.25rem;margin:.4rem 0 1rem;padding:.8rem .9rem;border:1px solid #f1d58a;border-radius:10px;background:#fff9e8;color:#5f4900;line-height:1.55}
.auth-recovery-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}
.auth-recovery-actions>.btn{flex:1 1 170px;text-align:center}
.password-reset-countdown{margin:.15rem 0 1rem;text-align:center;color:#8b1e1e;font-variant-numeric:tabular-nums}
.password-reset-passcode{font-size:var(--ui-fs-rem-1_45)!important;font-weight:700;letter-spacing:.55rem;text-align:center;font-variant-numeric:tabular-nums}
.auth-password-help{margin-top:.35rem;line-height:1.55}
@media(max-width:520px){.password-visibility-toggle{min-width:62px;padding-inline:.55rem}.auth-recovery-actions{flex-direction:column}.auth-recovery-actions>.btn{flex-basis:auto;width:100%}}

/* v2.2.8-r4 — active fiscal-year selectors for dashboard and execution reports. */
.dashboard-budget-year-filter{display:flex;align-items:end;justify-content:flex-end;gap:12px;margin:0 0 14px}
.dashboard-budget-year-filter .form-group{width:min(100%,240px);margin:0}
.dashboard-budget-year-filter label{margin:0 0 7px}
.dashboard-budget-year-filter select{width:100%;min-width:0}
.dashboard-budget-year-filter .btn{min-height:44px;white-space:nowrap}
@media(max-width:620px){
  .dashboard-budget-year-filter{align-items:stretch;flex-direction:column}
  .dashboard-budget-year-filter .form-group{width:100%}
  .dashboard-budget-year-filter .btn{width:100%}
}


/* v2.2.8-r4 — SYSTEM_ADMIN Local User password-recovery feature switch. */
.user-password-recovery-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px;padding:16px 18px;border:1px solid #cbd7e1;border-radius:12px;background:#f8fafc}
.user-password-recovery-setting__copy{min-width:0}
.user-password-recovery-setting__copy h2{margin:0 0 5px;font-size:var(--ui-fs-rem-1_02)}
.user-password-recovery-setting__copy p{margin:0;color:#526677;line-height:1.55}
.user-password-recovery-setting__form{flex:0 0 auto;margin:0}
.feature-switch{display:inline-flex;align-items:center;gap:10px;min-width:158px;padding:8px 10px;border:1px solid #9fb1bf;border-radius:999px;background:#fff;color:#233849;cursor:pointer;font:inherit;text-align:left}
.feature-switch:hover,.feature-switch:focus-visible{border-color:#356f95;box-shadow:0 0 0 3px rgba(53,111,149,.16);outline:0}
.feature-switch__track{position:relative;display:inline-block;flex:0 0 auto;width:48px;height:26px;border-radius:999px;background:#9caab5;transition:background-color .18s ease}
.feature-switch__thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s ease}
.feature-switch.is-enabled .feature-switch__track{background:#27834a}
.feature-switch.is-enabled .feature-switch__thumb{transform:translateX(22px)}
.feature-switch__label{display:flex;flex-direction:column;line-height:1.2}
.feature-switch__label strong{font-size:var(--ui-fs-rem-0_92)}
.feature-switch__label small{margin-top:3px;color:#657785;font-size:var(--ui-fs-rem-0_74)}
@media(max-width:720px){
  .user-password-recovery-setting{align-items:stretch;flex-direction:column}
  .user-password-recovery-setting__form,.feature-switch{width:100%}
  .feature-switch{justify-content:flex-start}
}

/* v2.2.8-r5 — PDF-only transfer-column redistribution and icon-only login password control. */
.report-pdf-measurement-table.report-execution-table--plan td.report-transfer-column,
.report-pdf-measurement-table.report-execution-table--plan th.report-transfer-column,
.report-pdf-measurement-table.report-group-summary-table td.report-transfer-column,
.report-pdf-measurement-table.report-group-summary-table th.report-transfer-column{
    min-width:192px!important;
    width:192px!important;
    max-width:192px!important;
    white-space:normal!important;
}
.report-pdf-measurement-table.report-execution-table--plan .report-col-group{
    left:auto!important;
    min-width:328px!important;
    width:328px!important;
    max-width:328px!important;
    white-space:normal!important;
}
.report-pdf-measurement-table.report-group-summary-table .report-col-group{
    left:auto!important;
    min-width:336px!important;
    width:336px!important;
    max-width:336px!important;
    white-space:normal!important;
}
.password-visibility-toggle--icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:48px;
    width:48px;
    padding:.45rem;
}
.password-visibility-icon{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.password-visibility-icon[hidden]{display:none!important}
@media(max-width:520px){.password-visibility-toggle--icon{min-width:44px;width:44px;padding-inline:.4rem}}

/* v2.2.8-r6 — PDF-only 75:25 plan/group width ratio for movement and group reports. */
/* Movement PDF: preserve 338px + 328px = 666px; plan 499.5px (75%), group 166.5px (25%). */
.report-pdf-measurement-table.report-execution-table--plan .report-col-plan{
    left:auto!important;
    min-width:499.5px!important;
    width:499.5px!important;
    max-width:499.5px!important;
    white-space:normal!important;
}
.report-pdf-measurement-table.report-execution-table--plan .report-col-group{
    left:auto!important;
    min-width:166.5px!important;
    width:166.5px!important;
    max-width:166.5px!important;
    white-space:normal!important;
}
/* Group-summary PDF: preserve 338px + 336px = 674px; plan 505.5px (75%), group 168.5px (25%). */
.report-pdf-measurement-table.report-group-summary-table .report-col-plan{
    left:auto!important;
    min-width:505.5px!important;
    width:505.5px!important;
    max-width:505.5px!important;
    white-space:normal!important;
}
.report-pdf-measurement-table.report-group-summary-table .report-col-group{
    left:auto!important;
    min-width:168.5px!important;
    width:168.5px!important;
    max-width:168.5px!important;
    white-space:normal!important;
}



/* v2.3.0-r4 — login title alignment; accepted font controls, PDF baseline and Excel isolation remain unchanged. */

/* v2.3.0-r6 — sortable user inventories and secure Local User password-administration controls. */
.user-list-table{min-width:1120px}
.user-table-sort-link{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    color:inherit;
    text-decoration:none;
    white-space:nowrap;
}
.user-table-sort-link:hover,
.user-table-sort-link:focus-visible{color:#176b9c;text-decoration:underline;text-underline-offset:3px}
.user-table-sort-link:focus-visible{outline:3px solid rgba(23,107,156,.18);outline-offset:3px;border-radius:4px}
.user-table-sort-link.is-active{color:#164f73}
.user-table-sort-indicator{display:inline-flex;min-width:.85rem;justify-content:center;font-size:.82em;line-height:1}
.user-create-form>.user-create-password-field{min-width:0;align-self:start;align-content:start;line-height:1.45;margin-bottom:16px}
.user-create-password-field>label{display:block;margin:0 0 7px;font-weight:600}
.user-own-password-panel form>label,
.user-password-reset-panel form>label{display:block;margin:16px 0 7px;font-weight:600}
.user-own-password-panel form>label:first-of-type,
.user-password-reset-panel form>label:first-of-type{margin-top:0}
.user-own-password-panel .password-input-with-toggle,
.user-password-reset-panel .password-input-with-toggle{margin-bottom:0}
.user-password-reset-panel .alert{margin-bottom:18px}
.user-password-reset-confirmation{display:flex!important;align-items:flex-start;gap:.65rem;margin:18px 0!important;font-weight:600}
.user-password-reset-confirmation input{flex:0 0 auto;width:auto;margin-top:.24rem}
.required-marker{color:#a42d2d;font-weight:700}
.user-password-reset-target{margin-bottom:18px}
@media(max-width:800px){
    .user-list-table{min-width:1080px}
}

/* v2.3.2-r1 — role-aware manual library. */
.manual-library-page{min-height:calc(100vh - 125px)}
.manual-library-header{align-items:center}
.manual-document-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:18px;
    margin-top:20px;
}
.manual-document-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:290px;
    padding:22px;
    border:1px solid #d9e4ed;
    border-radius:12px;
    background:linear-gradient(180deg,#fff 0%,#f9fbfd 100%);
    box-shadow:0 3px 12px rgba(25,50,75,.055);
}
.manual-document-card:hover{border-color:#a9c5d8;box-shadow:0 7px 20px rgba(25,50,75,.09)}
.manual-document-card__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
.manual-document-card__format{font-size:var(--ui-fs-px-12);font-weight:700;letter-spacing:.05em;color:#657687}
.manual-document-card h2{font-size:var(--ui-fs-px-22);line-height:1.42;margin:0 0 10px;color:#234b68}
.manual-document-card p{margin:0 0 18px;color:#586b7c}
.manual-document-card__audience{margin:auto 0 20px;padding-top:16px;border-top:1px solid #e2eaf0}
.manual-document-card__audience dt{font-size:var(--ui-fs-px-12);font-weight:700;color:#68798a;margin-bottom:5px}
.manual-document-card__audience dd{margin:0;font-weight:600;color:#2d465a;line-height:1.5}
.manual-document-card__actions{display:flex;align-items:center;justify-content:flex-end}
.manual-document-card__actions .btn{min-width:120px}
@media(max-width:620px){
    .manual-document-grid{grid-template-columns:1fr}
    .manual-document-card{min-height:0;padding:18px}
    .manual-document-card__actions .btn{width:100%}
}


.user-delete-confirmation,
.user-restore-confirmation{display:flex;gap:10px;align-items:flex-start}
.user-delete-confirmation input,
.user-restore-confirmation input{width:auto;margin-top:4px}
.user-deleted-list-table td:nth-child(3){overflow-wrap:anywhere}
.user-deleted-list-table .user-list-action-column,
.user-deleted-list-table .table-actions{width:1%;white-space:nowrap;text-align:center}
.user-restore-button{min-width:74px}


/* v2.4 — Report detail tables are presented as one accessible tab panel at a time. */
.report-table-tabs{display:grid;gap:16px;margin:0 0 20px;min-width:0}
.report-table-tabs__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;overflow:hidden;background:#fff;border:1px solid #d6e2eb;border-radius:14px;box-shadow:0 5px 18px rgba(24,54,82,.06)}
.report-table-tab{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:56px;padding:12px 16px;color:#31475d;background:#fff;border:0;text-align:center;text-decoration:none;font-weight:600;line-height:1.4;overflow-wrap:anywhere;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
.report-table-tab + .report-table-tab{border-left:1px solid #e4ebf1}
.report-table-tab::after{content:"";position:absolute;right:12px;bottom:0;left:12px;height:3px;border-radius:3px 3px 0 0;background:transparent}
.report-table-tab:hover{color:#126b98;background:#f5fafc}
.report-table-tab.is-active,.report-table-tab[aria-selected="true"]{color:#0f628e;background:#eef7fb}
.report-table-tab.is-active::after,.report-table-tab[aria-selected="true"]::after{background:#1676a4}
.report-table-tab:focus-visible{z-index:2;outline:3px solid rgba(22,118,164,.28);outline-offset:-3px}
.report-tab-panel{min-width:0}
.report-tab-panel[hidden]{display:none!important}
.report-tab-panel>.report-table-card{margin:0}
@media(max-width:767px){
  .report-table-tabs__list{display:flex;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
  .report-table-tab{flex:0 0 min(78vw,320px);min-height:54px;padding:11px 14px}
  .report-table-tab + .report-table-tab{border-left:1px solid #e4ebf1}
}
@media(prefers-reduced-motion:reduce){.report-table-tab{transition:none}}


/* v2.4 report landing, compact filters, and system-information dashboard. */
.report-filter-grid{
    grid-template-columns:minmax(140px,180px) minmax(220px,1fr) minmax(220px,1fr) auto;
    align-items:end;
}
.report-filter-field--fiscal-year{max-width:180px}
.report-filter-field--fiscal-year select{min-width:140px;width:100%}
.report-filter-actions{align-self:end;grid-column:auto}
.report-filter-actions .btn{width:auto;white-space:nowrap}
.system-information-heading{margin-bottom:18px}
@media(max-width:1000px){
    .report-filter-grid{grid-template-columns:minmax(140px,180px) minmax(220px,1fr) minmax(220px,1fr)}
    .report-filter-actions{grid-column:1/-1}
    .report-filter-actions .btn{width:100%}
}
@media(max-width:760px){
    .report-filter-grid{grid-template-columns:1fr 1fr}
    .report-filter-field--fiscal-year{max-width:none}
    .report-filter-actions{grid-column:1/-1}
}
@media(max-width:620px){
    .report-filter-grid{grid-template-columns:1fr}
    .report-filter-actions{grid-column:auto}
}

/* v2.5 — Ten-row report viewports and mobile Sidebar auto-collapse. */
body:not(.report-fullscreen-body) .report-table-card .report-table-scroll[data-report-visible-rows="10"]{
    max-height:var(--report-table-visible-height,680px)
}

/* Keep the mobile top-menu closed during the first frame before sidebar.js runs. */
@media(max-width:767px){
    .sidebar:not(.is-mobile-sidebar-ready) nav.sidebar-navigation{display:none}
    .sidebar:not(.is-mobile-sidebar-ready) .sidebar-mobile-toggle-open{display:block}
    .sidebar:not(.is-mobile-sidebar-ready) .sidebar-mobile-toggle-close{display:none}
}

/* Budget master XLSX import v2.7 */
.budget-master-import-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    gap: 1rem;
    align-items: start;
}
.budget-master-import-year-warning { line-height: 1.65; }
.budget-master-import-scope { line-height: 1.65; }
.budget-master-import-scope ol { margin: .5rem 0 1rem 1.5rem; padding: 0; }
.budget-master-import-summary-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}
.budget-master-import-summary-cards .summary-card {
    background: var(--surface, #fff);
    border: 1px solid var(--border-color, #d9dee7);
    border-radius: .75rem;
    padding: .9rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.budget-master-import-summary-cards .summary-card span { color: var(--muted, #64748b); font-size: .9rem; }
.budget-master-import-summary-cards .summary-card strong { font-size: 1.35rem; }
.budget-master-import-preview-table-wrap { max-height: 64vh; overflow: auto; }
.budget-master-import-preview-table { min-width: 1420px; }
.budget-master-import-preview-table thead th { position: sticky; top: 0; z-index: 2; }
.budget-master-import-preview-table td { vertical-align: top; }
.budget-master-import-preview-table td:nth-child(1),
.budget-master-import-preview-table td:nth-child(2) { white-space: nowrap; }
.import-short-name,
.import-sort-order { display: block; margin-top: .25rem; color: var(--muted, #64748b); font-size: .86rem; }
.import-message + .import-message { margin-top: .3rem; }
.danger-text { color: #a61b1b; }
.warning-text { color: #8a5500; }
.break-all { overflow-wrap: anywhere; word-break: break-word; }
.import-confirm-checkbox { align-items: flex-start; max-width: 980px; }
.import-confirm-checkbox input { margin-top: .3rem; }
.import-cancel-form { margin-top: 1rem; }
.budget-master-import-row-duplicate { background: rgba(100, 116, 139, .07); }
.budget-master-import-row-error { background: rgba(185, 28, 28, .06); }
@media (max-width: 900px) {
    .budget-master-import-grid { grid-template-columns: minmax(0, 1fr); }
}

/* v2.8 — unified budget-plan hierarchy, allocation tabs and report row groups. */
.budget-plan-full-name{
  display:inline-block;
  max-width:100%;
  color:inherit;
  line-height:1.48;
  overflow-wrap:anywhere;
  word-break:break-word
}
.budget-plan-full-name__plan{display:inline;font-weight:700;color:#20354d}
.budget-plan-full-name__item,
.budget-plan-full-name__activity,
.budget-plan-full-name__type-category{display:inline;color:inherit;font-weight:400}
.budget-plan-detail-cell{min-width:300px;vertical-align:top}
.budget-plan-owner-note{display:block;margin-top:6px;color:#607282;font-size:var(--ui-fs-px-12);line-height:1.45}
.allocation-history-plan-cell{min-width:300px;vertical-align:top}
.allocation-history-plan-list{gap:10px}
.allocation-history-plan-list li{min-width:0}
.allocation-history-plan-list .budget-plan-full-name{display:block}
.allocation-table-tabs__list{grid-template-columns:repeat(4,minmax(0,1fr))}
.allocation-table-tabs .report-tab-panel{min-width:0}
.allocation-table-tabs .panel{margin-bottom:0}
.allocation-table-tabs .allocation-history-table{margin-bottom:0}
.budget-disbursement-control-structure{display:block;margin-top:4px;line-height:1.5}
.report-budget-plan-merged-cell{vertical-align:top!important}
.report-budget-plan-merged-cell .budget-plan-full-name{display:block}
.report-budget-plan-data-row>td,
.report-detail-continuation>td{vertical-align:top}
.report-budget-plan-padding-row{height:34px}
.report-budget-plan-padding-row>td{height:34px;padding-top:0!important;padding-bottom:0!important;background:#fff}
.report-budget-plan-padding-row .numeric{font-variant-numeric:tabular-nums}
.report-execution-table tbody+tbody .report-budget-plan-padding-row:first-child>td{border-top-color:#dbe4eb}
.report-budget-line-summary-table .budget-plan-full-name{display:block}
.report-pdf-measurement-table .report-budget-plan-padding-row{height:28px}
.report-pdf-measurement-table .report-budget-plan-padding-row>td{height:28px}
@media(max-width:1100px){
  .allocation-table-tabs__list{display:flex;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
  .allocation-table-tabs .report-table-tab{flex:0 0 min(78vw,320px)}
  .budget-plan-detail-cell,.allocation-history-plan-cell{min-width:260px}
}
@media(max-width:700px){
  .budget-plan-detail-cell,.allocation-history-plan-cell{min-width:230px}
  .budget-plan-full-name{line-height:1.42}
  .report-budget-plan-padding-row,.report-budget-plan-padding-row>td{height:30px}
}
@media print{
  .budget-plan-full-name{line-height:1.35}
  .report-budget-plan-padding-row,.report-budget-plan-padding-row>td{height:24px}
}

/* v2.9 — open-year entry, compact transfer labels, and report export parity. */
.treasury-activity-budget-plan{display:grid;gap:.18rem;min-width:0;line-height:1.45}
.treasury-activity-budget-plan strong{font-weight:700;color:#20354d;overflow-wrap:anywhere}
.treasury-activity-budget-plan>span{font-weight:400;color:inherit;overflow-wrap:anywhere}
.budget-plan-report-name{display:inline-block;max-width:100%;color:inherit;line-height:1.48;overflow-wrap:anywhere;word-break:break-word;font-weight:400}
.budget-plan-report-name__plan{display:inline;font-weight:700;color:#20354d}
.budget-plan-report-name__item,
.budget-plan-report-name__activity,
.budget-plan-report-name__type-category{display:inline;color:inherit;font-weight:400}
.report-budget-plan-merged-cell .budget-plan-report-name,
.report-budget-line-summary-table .budget-plan-report-name{display:block}
.report-group-merged-cell{vertical-align:top!important}
.report-group-merged-cell small{font-weight:400}
@media(max-width:700px){.budget-plan-report-name{line-height:1.42}}
@media print{.budget-plan-report-name{line-height:1.35}}


/* v3.1 — activity-scoped subactivity XLSX template, preview and commit workflow. */
.subactivity-parent-selection-panel,.subactivity-selected-context,.subactivity-excel-import-panel{min-width:0}
.subactivity-parent-selection-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:1rem;align-items:end}
.subactivity-parent-selection-form .form-actions{margin:0}
.subactivity-entry-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:1rem;align-items:start}
.subactivity-import-steps{margin:.25rem 0 1rem 1.4rem;padding:0;line-height:1.65}
.subactivity-import-upload-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color,#d9dee7)}
.subactivity-import-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1rem 0}
.subactivity-import-summary-cards .summary-card{display:flex;flex-direction:column;gap:.35rem;padding:.9rem 1rem;background:var(--surface,#fff);border:1px solid var(--border-color,#d9dee7);border-radius:.75rem}
.subactivity-import-summary-cards .summary-card span{color:var(--muted,#64748b);font-size:.9rem}
.subactivity-import-summary-cards .summary-card strong{font-size:1.35rem}
.subactivity-import-preview-table-wrap{max-height:64vh;overflow:auto}
.subactivity-import-preview-table{min-width:960px}
.subactivity-import-preview-table thead th{position:sticky;top:0;z-index:2}
.subactivity-import-preview-table td{vertical-align:top}
.subactivity-import-row-duplicate{background:rgba(100,116,139,.07)}
.subactivity-import-row-error{background:rgba(185,28,28,.06)}
.subactivity-import-confirm-panel{margin-top:1rem}
@media(max-width:980px){.subactivity-entry-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.subactivity-parent-selection-form{grid-template-columns:minmax(0,1fr)}.subactivity-parent-selection-form .btn{width:100%}}
