:root{--ink:#17211f;--muted:#6d7773;--paper:#f4f3ee;--card:#fff;--line:#dedfd8;--green:#1e684f;--lime:#cce36d;--orange:#ef8c4b;--red:#b94646;--shadow:0 18px 50px rgba(24,42,36,.08)}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:"Segoe UI","Noto Sans Khmer",Arial,sans-serif}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button,a{transition:.18s ease}em{color:var(--green);font-style:normal}.page{width:min(1480px,calc(100% - 48px));margin:0 auto;padding:42px 0 70px}.topbar{height:72px;padding:0 28px;display:flex;align-items:center;gap:32px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:17px;font-weight:700;text-decoration:none}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--green);color:white;border-radius:8px}.topbar nav{display:flex;gap:6px;flex:1}.topbar nav a{padding:10px 14px;color:var(--muted);text-decoration:none;border-radius:8px;font-size:14px}.topbar nav a:hover{background:var(--paper);color:var(--ink)}.user-menu{display:flex;align-items:center;gap:18px}.user-menu>span{display:flex;flex-direction:column;text-align:right;font-size:13px}.user-menu small{color:var(--muted);text-transform:capitalize}.button{border:0;border-radius:9px;padding:11px 18px;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button.primary{background:var(--green);color:white}.button.primary:hover{background:#155640;transform:translateY(-1px)}.button.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.button.ghost:hover{background:var(--paper)}.button.small{padding:8px 12px;font-size:12px}.button.wide{width:100%;justify-content:space-between;padding:14px 18px}.button:disabled{opacity:.55;cursor:wait}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:700;color:var(--lime)}.eyebrow.dark{color:var(--green)}.muted{color:var(--muted)}.flash{padding:12px 16px;border-radius:8px;margin-bottom:18px}.flash.error{background:#fbe8e5;color:#922f2f}.flash.success{background:#e1f2e8;color:#1c6649}.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 15% 15%,rgba(204,227,109,.18),transparent 25%),#e9ece5}.login-card{width:min(980px,100%);min-height:580px;display:grid;grid-template-columns:1.08fr .92fr;background:white;border-radius:20px;overflow:hidden;box-shadow:0 30px 90px rgba(25,48,40,.16)}.login-intro{padding:70px;background:linear-gradient(145deg,#102b23,#1f644d);color:white;position:relative;overflow:hidden}.login-intro:after{content:'PR / PO';position:absolute;bottom:-20px;right:-5px;color:rgba(255,255,255,.04);font-size:105px;font-weight:700;white-space:nowrap}.login-intro h1{font-size:54px;line-height:1.05;margin:72px 0 24px;letter-spacing:-.045em}.login-intro em{color:var(--lime)}.login-intro p{max-width:390px;color:#cfddd6;line-height:1.8}.live-chip{display:inline-flex;align-items:center;gap:9px;margin-top:42px;padding:10px 14px;border:1px solid rgba(255,255,255,.2);border-radius:99px;font-size:12px}.live-chip i,.live-status i,.pulse-label i{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(204,227,109,.14);animation:pulse 1.8s infinite}.login-form{padding:70px 55px;display:flex;flex-direction:column;justify-content:center;gap:25px}.login-form h2{font-size:36px;margin:10px 0 5px}.login-form p{margin:0;color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#4e5955}input,select,textarea{width:100%;border:1px solid #d6d9d3;border-radius:8px;background:#fff;padding:11px 12px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(30,104,79,.1)}textarea{resize:vertical}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:30px}.page-heading h1{font-size:38px;letter-spacing:-.035em;margin:8px 0}.page-heading p{color:var(--muted);margin:0}.live-status{min-width:175px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;display:grid;grid-template-columns:12px 1fr;column-gap:9px}.live-status i{grid-row:1/3;align-self:center;background:#5fc48e}.live-status span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.live-status strong{font-size:13px}.entry-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:22px;align-items:start}.card,.narrow-card{background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.data-form{padding:28px}.form-head,.panel-head{display:flex;justify-content:space-between;align-items:center}.form-head>div{display:flex;align-items:center;gap:12px}.form-head h2,.panel-head h2{font-size:19px;margin:3px 0}.step{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#eaf1dd;color:var(--green);font-weight:700;font-size:11px}.section-gap{margin-top:34px;padding-top:26px;border-top:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.form-errors{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;color:var(--red);font-size:12px}.recent-panel{position:sticky;top:94px;padding:22px;max-height:calc(100vh - 116px);overflow:auto}.count{display:grid;place-items:center;min-width:34px;height:28px;padding:0 9px;border-radius:99px;background:var(--ink);color:white;font-size:12px}.search{margin:17px 0;background:var(--paper)}.record-list{display:flex;flex-direction:column;gap:8px}.record-item{width:100%;border:1px solid var(--line);background:white;border-radius:9px;padding:13px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px;color:var(--ink)}.record-item:hover{border-color:#9ab3a9;transform:translateY(-1px);box-shadow:0 8px 20px rgba(20,45,36,.07)}.record-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.record-item>span:not(.record-top){font-size:12px}.record-item small{color:var(--muted);font-size:10px}.status-pill{display:inline-flex;padding:4px 8px;border-radius:99px;background:#eceee9;color:#58615d;font-size:10px;font-style:normal;white-space:nowrap}.status-completed{background:#dcf2e5;color:#1b6a49}.status-cancelled{background:#f8dfdc;color:#9f3934}.status-find-quotation,.status-comparison{background:#fff0da;color:#8c581d}.status-po-already{background:#dfeaf8;color:#285c91}.status-waiting-approval{background:#eee2f6;color:#714391}.metric-grid{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:14px;margin-bottom:18px}.metric{min-height:145px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column}.metric span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.metric strong{font-size:34px;margin:auto 0 4px;letter-spacing:-.04em}.metric small{color:var(--muted)}.metric.dark{background:var(--ink);color:white;border-color:var(--ink)}.metric.dark span,.metric.dark small{color:#aebbb6}.metric.accent{background:var(--lime);border-color:var(--lime)}.metric.accent span,.metric.accent small{color:#46522b}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.chart-card{padding:24px}.bars{display:flex;flex-direction:column;gap:14px;margin-top:22px}.bar-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}.bar-label span{color:#56615d}.bar-track{height:7px;background:#eceee9;border-radius:99px;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--green);border-radius:99px;animation:grow .45s ease both;animation-delay:var(--delay)}.chart-card:nth-child(2) .bar-track i{background:var(--orange)}.table-card{padding:24px}.pulse-label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.pulse-label i{background:#5fc48e}.table-wrap{overflow:auto;margin-top:20px}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;text-transform:uppercase;letter-spacing:.08em;font-size:9px;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}td{padding:13px 10px;border-bottom:1px solid #eceee9;vertical-align:top}td small{display:block;color:var(--muted);margin-top:4px}.number{text-align:right}.loading,.empty-state{text-align:center;color:var(--muted);padding:34px}.narrow-card{width:min(520px,100%);margin:40px auto;padding:34px}.narrow-card h1{margin:10px 0 24px}.stack-form{display:flex;flex-direction:column;gap:18px}.toast{position:fixed;right:24px;bottom:24px;z-index:100;padding:13px 18px;border-radius:9px;background:var(--ink);color:white;transform:translateY(20px);opacity:0;pointer-events:none;box-shadow:var(--shadow)}.toast.show{transform:none;opacity:1}.toast.error{background:var(--red)}
@keyframes pulse{50%{opacity:.45}}@keyframes grow{from{width:0}}@media(max-width:1100px){.entry-layout{grid-template-columns:1fr}.recent-panel{position:static;max-height:none}.metric-grid{grid-template-columns:repeat(3,1fr)}.metric.dark{grid-column:span 2}}@media(max-width:760px){.page{width:min(100% - 24px,1480px);padding-top:25px}.topbar{padding:0 14px;gap:12px}.brand>span:last-child,.user-menu>span,.topbar nav a:nth-child(3){display:none}.topbar nav{justify-content:flex-end}.login-card{grid-template-columns:1fr}.login-intro{display:none}.login-form{padding:42px 28px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:30px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.data-form{padding:18px}.metric-grid,.dashboard-grid{grid-template-columns:1fr 1fr}.metric.dark{grid-column:auto}.metric-grid .metric:first-child{grid-column:span 2}.user-menu{gap:5px}.form-actions{align-items:stretch;flex-direction:column;gap:14px}.form-actions .button{width:100%}}

/* Dashboard navigation and quick actions */
.topbar nav a.active{background:var(--paper);color:var(--ink);box-shadow:inset 0 -2px var(--green)}
.dashboard-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:-10px 0 22px;padding:16px 18px;background:#e8eddf;border:1px solid #d8dfca;border-radius:12px}
.dashboard-actions>div{display:flex;flex-direction:column;gap:4px}
.dashboard-actions>div span{color:var(--muted);font-size:12px}
.dashboard-actions .button span{color:inherit;font-size:18px;line-height:1}
@media(max-width:760px){.dashboard-actions{align-items:stretch;flex-direction:column}.dashboard-actions .button{width:100%}}
@media(max-width:520px){.metric-grid,.dashboard-grid{grid-template-columns:1fr}.metric-grid .metric:first-child{grid-column:auto}.topbar nav a{padding:9px 10px;font-size:12px}}

.records-heading{align-items:center}.records-total{min-width:130px;padding:16px 22px;background:var(--ink);color:#fff;border-radius:12px;display:flex;flex-direction:column;text-align:right}.records-total strong{font-size:30px}.records-total span{font-size:11px;color:#b8c5c0;text-transform:uppercase;letter-spacing:.1em}.records-card{padding:22px}.records-toolbar{display:flex;align-items:flex-end;gap:14px}.records-toolbar label{width:190px}.records-toolbar .records-search{width:min(520px,100%)}.records-toolbar .muted{margin-left:auto;padding-bottom:11px}.all-records-wrap{max-height:calc(100vh - 310px);min-height:380px;border:1px solid var(--line);border-radius:9px}.all-records-table{width:max-content;min-width:100%}.all-records-table th{position:sticky;top:0;z-index:2;background:#f5f7f4;white-space:nowrap}.all-records-table td{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.all-records-table tbody tr:hover{background:#f7faf6}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding-top:18px}.pagination span{font-size:12px;font-weight:700}@media(max-width:760px){.records-toolbar{align-items:stretch;flex-direction:column}.records-toolbar label{width:100%}.records-toolbar .muted{margin:0;padding:0}.all-records-wrap{max-height:60vh}}

/* Procurement performance report */
.report-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:18px;padding:28px 30px;border-radius:16px;background:linear-gradient(120deg,#173e65,#28618d);color:#fff;box-shadow:0 18px 45px rgba(27,67,102,.18)}
.report-hero h1{margin:6px 0 5px;font-size:34px;letter-spacing:.015em}.report-hero p{margin:0;color:#d7e5ef}.report-hero-actions{display:flex;align-items:center;gap:12px}.report-live{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}.report-live span{color:#c8dce9}.report-add{background:#fff;color:#204e76;text-decoration:none;white-space:nowrap}.report-add:hover{background:#eef6fa;transform:translateY(-1px)}
.report-filters{display:flex;align-items:flex-end;gap:12px;margin-bottom:14px;padding:13px 16px;background:#fff;border:1px solid #d7e0e6;border-radius:11px}.filter-copy{display:flex;flex-direction:column;gap:3px;margin-right:auto}.filter-copy strong{font-size:14px}.filter-copy span{font-size:11px;color:var(--muted)}.report-filters label{width:190px;gap:5px}.report-filters select{padding:8px 10px;background:#f7f9fa}
.dashboard-icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.dashboard-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.button-icon{width:16px;height:16px}.report-live{grid-template-columns:24px 1fr}.report-live .live-icon{width:19px;height:19px;grid-row:1/3;align-self:center;color:#8fdbac;animation:icon-spin 7s linear infinite}.report-filters .filter-copy{flex-direction:row;align-items:center;gap:10px}.filter-copy>span{display:flex;flex-direction:column;gap:2px}.filter-copy small{font-size:11px;font-weight:400;color:var(--muted)}.filter-main-icon{width:30px;height:30px;padding:7px;color:#27644f;background:#e9f3ee;border-radius:8px}.filter-label{display:flex;align-items:center;gap:6px}.filter-label .dashboard-icon{width:14px;height:14px;color:#477360}
.report-kpis{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:9px;margin-bottom:12px}.report-kpi{min-height:104px;padding:14px;border-radius:10px;color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 22px rgba(33,63,81,.11);overflow:hidden;position:relative}.report-kpi:after{content:'';position:absolute;width:68px;height:68px;border-radius:50%;right:-26px;top:-28px;background:rgba(255,255,255,.12)}.report-kpi span{font-size:10px;letter-spacing:.055em;text-transform:uppercase}.report-kpi strong{font-size:23px;letter-spacing:-.025em;margin:auto 0 2px}.report-kpi small{font-size:9px;color:rgba(255,255,255,.76)}.report-kpi.green{background:#477c36}.report-kpi.coral{background:#ec865c}.report-kpi.orange{background:#b9500c}.report-kpi.blue{background:#1769aa}.report-kpi.gold{background:#c29a00}.report-kpi.slate{background:#5f6469}.report-kpi.mint{background:#78a968;color:#122512}.report-kpi.mint small{color:#27452b}.report-kpi.purple{background:#7a62a7}
.report-kpi .kpi-icon{position:absolute;z-index:1;right:12px;top:11px;width:22px;height:22px;color:rgba(255,255,255,.88);filter:drop-shadow(0 2px 3px rgba(0,0,0,.08))}.report-kpi.mint .kpi-icon{color:rgba(18,37,18,.72)}.report-kpi>span,.report-kpi>strong,.report-kpi>small{position:relative;z-index:1}.report-kpi>span{padding-right:28px}
.performance-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.report-panel{min-width:0;background:#fff;border:1px solid #d7e0e6;border-radius:10px;box-shadow:0 7px 20px rgba(28,57,74,.055);overflow:hidden}.report-panel>header{min-height:59px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7ecef}.report-panel header span{font-size:9px;letter-spacing:.12em;color:#71808a}.report-panel h2{font-size:14px;margin:3px 0 0;color:#263a48}.panel-dot{width:9px;height:9px;border-radius:50%}.green-dot{background:#5d963e}.coral-dot{background:#ee8a5c}.purple-dot{background:#8067b2}.unit{padding:4px 7px;border-radius:99px;background:#f3f5f6}.chart-area{min-height:235px;padding:18px}.tall-panel .chart-area{min-height:390px}.live-table-panel{margin-bottom:20px}
.panel-title{display:flex;align-items:center;gap:10px;min-width:0}.panel-title>div{min-width:0}.panel-icon{width:32px;height:32px;padding:7px;border-radius:8px;background:#eef4f0;color:#477c36}.panel-icon.coral-icon{background:#fff0e9;color:#d76b37}.panel-icon.purple-icon{background:#f1edf8;color:#765ba8}.panel-icon.gold-icon{background:#fff7d8;color:#ad8500}.panel-icon.blue-icon{background:#e8f2fa;color:#2870a8}.panel-icon.orange-icon{background:#fff0e3;color:#b95c18}
.column-chart{height:235px;display:flex;align-items:stretch;justify-content:space-around;gap:5px}.column-item{min-width:0;flex:1;display:grid;grid-template-rows:18px 1fr 34px;align-items:end;text-align:center}.column-item strong{font-size:8px;color:#43515a;overflow:hidden}.column-item span{font-size:8px;color:#687781;transform:rotate(-40deg);transform-origin:center;white-space:nowrap;align-self:center}.column-track{height:150px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #cfd9df;background:repeating-linear-gradient(to top,#f1f4f6 0,#f1f4f6 1px,transparent 1px,transparent 38px)}.column-track i{display:block;width:min(24px,66%);border-radius:4px 4px 0 0;background:linear-gradient(#67974c,#447a36);animation:rise .45s ease both;animation-delay:var(--delay)}.report-panel:nth-child(2) .column-track i{background:linear-gradient(#f3a26d,#dc6f32)}.purple-chart .column-track i{background:linear-gradient(#9f89c9,#7456a5)}
.horizontal-chart{display:flex;flex-direction:column;justify-content:center;gap:12px}.hbar-row{display:grid;grid-template-columns:minmax(96px,1.25fr) minmax(90px,3fr) minmax(50px,.6fr);gap:9px;align-items:center}.hbar-row>span{font-size:9px;color:#40515b;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-row>strong{font-size:9px;color:#32434d}.hbar-track{height:9px;background:#edf1f3;border-radius:2px;overflow:hidden}.hbar-track i{display:block;height:100%;background:#659b47;border-radius:2px;animation:grow .5s ease both;animation-delay:var(--delay)}.coral-bars .hbar-track i{background:#e8793c}.gold-bars .hbar-track i{background:#e8b611}.money-bars .hbar-track i{background:#bb7600}.green-bars .hbar-track i{background:#68a34c}.blue-bars .hbar-track i{background:#3b70bc}.saving-bars .hbar-track i{background:#e97623}.purple-bars .hbar-track i{background:#8067b2}.compact-bars{gap:9px}.compact-bars .hbar-row{grid-template-columns:minmax(120px,1fr) minmax(120px,3fr) 44px}
.donut-layout{display:grid;grid-template-columns:145px 1fr;align-items:center;gap:14px}.donut{width:140px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}.donut>div{width:76px;aspect-ratio:1;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 1px #e2e7e9}.donut strong{font-size:12px}.donut span{font-size:9px;color:var(--muted)}.donut-legend{display:flex;flex-direction:column;gap:8px}.donut-legend div{display:grid;grid-template-columns:8px minmax(55px,1fr) auto;align-items:center;gap:6px;font-size:9px}.donut-legend i{width:8px;height:8px;border-radius:2px}.donut-legend span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-empty{display:grid;place-items:center;width:100%;height:100%;color:var(--muted);font-size:11px}
@keyframes rise{from{height:0}}
@keyframes icon-spin{to{transform:rotate(360deg)}}
@media(max-width:1250px){.report-kpis{grid-template-columns:repeat(4,1fr)}.span-4{grid-column:span 6}.span-8{grid-column:span 12}}
@media(max-width:850px){.report-hero{align-items:flex-start;flex-direction:column}.report-hero-actions{width:100%;justify-content:space-between}.report-filters{align-items:stretch;flex-wrap:wrap}.filter-copy{width:100%;margin-bottom:5px}.report-filters label{flex:1;min-width:150px}.span-4,.span-6,.span-8{grid-column:span 12}.report-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.report-hero{padding:22px 18px}.report-hero h1{font-size:26px}.report-hero-actions{align-items:stretch;flex-direction:column}.report-live{width:100%}.report-kpis{grid-template-columns:1fr 1fr}.report-kpi{min-height:94px}.report-filters label{width:100%;flex-basis:100%}.donut-layout{grid-template-columns:1fr}.donut{margin:auto}.hbar-row{grid-template-columns:82px minmax(70px,1fr) 48px}.chart-area{padding:14px}}

/* Compact dashboard layout */
.dashboard-page{width:min(1640px,calc(100% - 24px));padding:18px 0 42px}.dashboard-page .report-hero{position:relative;min-height:106px;margin-bottom:9px;padding:17px 22px 17px 102px;overflow:hidden;border:1.5px solid #23475d;border-radius:3px;background:#fff;color:#172a36;box-shadow:none}.dashboard-page .report-hero:before{content:'P';position:absolute;inset:0 auto 0 0;width:76px;display:grid;place-items:center;background:#4f96d3;color:#fff;font-size:35px;font-weight:800}.dashboard-page .report-hero h1{margin:3px 0;font-size:28px;letter-spacing:-.02em}.dashboard-page .report-hero p{color:#53656f;font-size:13px}.dashboard-page .report-hero .eyebrow{color:#2875b1}.dashboard-page .report-live{padding:10px 12px;background:#eef6fb;border-color:#bdd3e3;color:#23475d}.dashboard-page .report-live span{color:#607b8e}.dashboard-page .report-add{padding:10px 15px;background:#2875b1;color:#fff}.dashboard-page .report-add:hover{background:#1f6297}.dashboard-page .report-filters{margin-bottom:9px;padding:9px 12px;border-color:#cbd7dd;border-radius:4px;box-shadow:none}.dashboard-page .report-filters label{width:175px}.dashboard-page .report-filters select{padding:7px 9px}.dashboard-page .filter-main-icon{width:27px;height:27px;padding:6px}.dashboard-page .report-kpis{gap:7px;margin-bottom:9px}.dashboard-page .report-kpi{min-height:78px;padding:10px 11px;border-radius:9px;box-shadow:none}.dashboard-page .report-kpi:after{width:54px;height:54px}.dashboard-page .report-kpi .kpi-icon{top:8px;right:9px;width:19px;height:19px}.dashboard-page .report-kpi span{font-size:9px}.dashboard-page .report-kpi strong{font-size:20px}.dashboard-page .report-kpi small{font-size:8px}
.compact-overview-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:7px}.compact-overview-grid .overview-small{grid-column:span 3}.compact-overview-grid .overview-wide{grid-column:span 4}.compact-overview-grid .report-panel{border:1.4px solid #244556;border-radius:28px;box-shadow:none}.compact-overview-grid .report-panel>header{min-height:49px;padding:8px 13px;border-bottom:0}.compact-overview-grid .panel-icon{width:28px;height:28px;padding:6px}.compact-overview-grid .report-panel h2{font-size:12px}.compact-overview-grid .overview-small .chart-area{min-height:205px;height:205px;padding:11px 13px}.compact-overview-grid .overview-wide .chart-area{min-height:274px;height:274px;padding:12px 14px}.compact-overview-grid .horizontal-chart{gap:8px}.compact-overview-grid .hbar-row{grid-template-columns:minmax(72px,1.15fr) minmax(70px,2.5fr) minmax(38px,.65fr);gap:6px}.compact-overview-grid .hbar-row>span,.compact-overview-grid .hbar-row>strong{font-size:8px}.compact-overview-grid .hbar-track{height:8px}.compact-donut{grid-template-columns:104px 1fr;gap:8px}.compact-donut .donut{width:102px}.compact-donut .donut>div{width:58px}.compact-donut .donut-legend{gap:5px}.compact-donut .donut-legend div{font-size:8px}
.secondary-insights{margin-top:9px;border:1px solid #cbd7dd;border-radius:8px;background:#fff}.secondary-insights>summary{display:grid;grid-template-columns:18px auto 1fr;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;color:#23475d;font-size:12px;font-weight:700;list-style:none}.secondary-insights>summary::-webkit-details-marker{display:none}.secondary-insights>summary:after{content:'+';justify-self:end;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#e8f1f6;font-size:16px}.secondary-insights[open]>summary:after{content:'−'}.secondary-insights>summary small{color:#71818a;font-size:10px;font-weight:400}.secondary-grid{padding:0 8px 8px}.secondary-grid .report-panel{box-shadow:none}.secondary-grid .chart-area{min-height:205px}.secondary-grid .column-chart{height:205px}.secondary-grid .column-track{height:125px}
@media(max-width:1250px){.compact-overview-grid .overview-small{grid-column:span 6}.compact-overview-grid .overview-wide{grid-column:span 4}}
@media(max-width:900px){.dashboard-page .report-hero{padding-left:86px}.dashboard-page .report-hero:before{width:64px}.compact-overview-grid .overview-wide{grid-column:span 6}}
@media(max-width:620px){.dashboard-page{width:min(100% - 14px,1640px);padding-top:9px}.dashboard-page .report-hero{padding:82px 14px 14px}.dashboard-page .report-hero:before{inset:0 0 auto;width:auto;height:62px}.dashboard-page .report-hero-actions{width:100%}.compact-overview-grid .overview-small,.compact-overview-grid .overview-wide{grid-column:span 12}.secondary-insights>summary{grid-template-columns:18px 1fr auto}.secondary-insights>summary small{display:none}}
.secondary-insights>summary{grid-template-columns:18px auto 1fr 24px}@media(max-width:620px){.secondary-insights>summary{grid-template-columns:18px 1fr 24px}}

/* Material performance report theme */
.dashboard-page{width:min(1680px,calc(100% - 18px));padding:9px 0 30px}.material-report{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;padding:10px;background:#e8e8e8;border:1px solid #cdd2d4}.material-report-rail{display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#acd29b}.material-report-rail span{writing-mode:vertical-rl;transform:rotate(180deg);color:#f07a32;font-family:"Segoe Print","Noto Sans Khmer",sans-serif;font-size:18px;font-weight:700;letter-spacing:.04em;text-shadow:0 1px #fff}.material-report-main{min-width:0}.dashboard-page .report-hero{min-height:116px;margin:0;padding:12px 16px;border:0;border-radius:0;background:#e8e8e8;overflow:visible}.dashboard-page .report-hero:before{display:none}.dashboard-page .report-hero h1{color:#4c8037;font-family:"Segoe Print","Noto Sans Khmer",sans-serif;font-size:31px;font-weight:600;letter-spacing:.025em}.dashboard-page .report-hero p{color:#4c8037;font-family:"Segoe Print","Noto Sans Khmer",sans-serif;font-size:16px}.dashboard-page .report-hero .eyebrow{color:#3d7130}.dashboard-page .report-hero-actions{display:grid;grid-template-columns:auto;gap:6px;min-width:285px}.expense-highlight{display:grid;grid-template-columns:46px 1fr;column-gap:11px;align-items:center;min-width:250px;padding:13px 20px;border-radius:70px 0 0 70px;background:#f4f4f4;color:#0876c2}.expense-highlight-icon{grid-row:1/3;width:42px;height:42px;padding:8px;border-radius:50%;background:#fff;color:#0c72b5}.expense-highlight span{font-size:14px;font-weight:800}.expense-highlight strong{font-size:23px}.hero-utilities{display:flex;justify-content:flex-end;gap:7px}.dashboard-page .report-live{min-width:150px;padding:7px 9px;background:rgba(255,255,255,.7)}.dashboard-page .report-add{padding:8px 11px}.dashboard-page .report-filters{margin:0 0 7px;padding:7px 10px;border:0;border-radius:18px;background:#fff}.dashboard-page .report-kpis{grid-template-columns:repeat(7,minmax(105px,1fr));gap:6px;margin-bottom:7px}.dashboard-page .report-kpi{min-height:72px;border-radius:14px}.report-section-bar{display:flex;align-items:center;gap:10px;min-height:25px;margin:0;padding:3px 14px;color:#fff;font-size:11px}.report-section-bar strong{font-size:13px}.summary-bar{background:#0879bd}.compact-overview-grid{padding:0;background:#dedede}.compact-overview-grid .report-panel{border:4px solid #dedede;border-radius:34px;background:#fff}.compact-overview-grid .report-panel>header{padding:7px 14px}.compact-overview-grid .overview-small .chart-area{height:188px;min-height:188px}.compact-overview-grid .overview-wide .chart-area{height:244px;min-height:244px}.compact-overview-grid .panel-icon{width:25px;height:25px}.secondary-insights{margin:0;border:0;border-radius:0;background:#dedede}.secondary-insights>summary{min-height:27px;padding:4px 14px;border:0;border-radius:0;background:#91afe1;color:#102635}.secondary-insights>summary:after{width:20px;height:20px;background:rgba(255,255,255,.6)}.secondary-grid{gap:0;padding:0;background:#dedede}.secondary-grid .report-panel{border:4px solid #dedede;border-radius:34px;background:#fff}.secondary-grid .report-panel>header{border-bottom:0}.secondary-grid .chart-area{min-height:185px}.secondary-grid .column-chart{height:185px}.secondary-grid .live-table-panel{border-radius:26px;margin-bottom:0}.secondary-grid .live-table-panel .table-wrap{max-height:260px}.secondary-grid .span-12:not(.live-table-panel){border-top:23px solid #fff500;position:relative}.secondary-grid .span-12:not(.live-table-panel):before{content:'Quantity & Saving Performance';position:absolute;top:-22px;left:16px;color:#172831;font-size:11px;font-weight:800}
@media(max-width:1100px){.dashboard-page .report-kpis{grid-template-columns:repeat(4,1fr)}.expense-highlight{min-width:220px}.material-report{grid-template-columns:42px minmax(0,1fr)}.compact-overview-grid .overview-small{grid-column:span 6}.compact-overview-grid .overview-wide{grid-column:span 6}}
@media(max-width:760px){.material-report{grid-template-columns:1fr}.material-report-rail{min-height:38px}.material-report-rail span{writing-mode:horizontal-tb;transform:none;font-size:14px}.dashboard-page .report-hero{align-items:stretch;flex-direction:column}.dashboard-page .report-hero-actions{min-width:0;width:100%}.expense-highlight{border-radius:18px}.dashboard-page .report-filters{border-radius:12px}.dashboard-page .report-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.dashboard-page .report-hero{padding:12px}.dashboard-page .report-hero h1{font-size:23px}.dashboard-page .report-hero p{font-size:13px}.hero-utilities{align-items:stretch;flex-direction:column}.compact-overview-grid .overview-small,.compact-overview-grid .overview-wide{grid-column:span 12}}

/* KPI storytelling and executive analytics */
.expense-highlight{grid-template-rows:auto auto auto}.expense-highlight-icon{grid-row:1/4}.expense-highlight small{color:#5e7c8d;font-size:9px}.dashboard-page .report-kpi small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-story-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 7px}.analytics-story-strip article{min-width:0;min-height:76px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-left:4px solid #1680bc;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(33,61,75,.05)}.analytics-story-strip article:nth-child(2){border-color:#4c913e}.analytics-story-strip article:nth-child(3){border-color:#d0a300}.analytics-story-strip article:nth-child(4){border-color:#7d62ad}.story-icon{width:31px;height:31px;padding:7px;border-radius:50%;background:#eaf4fa;color:#1373a8}.analytics-story-strip article:nth-child(2) .story-icon{background:#edf6e9;color:#4c843e}.analytics-story-strip article:nth-child(3) .story-icon{background:#fff7d7;color:#a78100}.analytics-story-strip article:nth-child(4) .story-icon{background:#f1edf8;color:#7456a5}.analytics-story-strip article>div{min-width:0}.analytics-story-strip span{display:block;color:#71818a;font-size:8px;font-weight:800;letter-spacing:.09em}.analytics-story-strip strong{display:block;margin:2px 0;color:#233a47;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-story-strip p{margin:0;color:#60717a;font-size:9px;line-height:1.35}.compact-overview-grid .saving-bars .hbar-track i{background:#e97623}
@media(max-width:1100px){.analytics-story-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.analytics-story-strip{grid-template-columns:1fr}.analytics-story-strip article{min-height:68px}}

/* Dashboard print controls */
.report-print{padding:8px 11px;background:#6d57a0;color:#fff;white-space:nowrap}.report-print:hover{background:#584487;transform:translateY(-1px)}.print-report-meta,.print-filter-summary{display:none}

@media print{
  @page{size:A4 landscape;margin:10mm 12mm 10mm 12mm}
  html,body{background:#fff!important}
  body{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .topbar,.no-print,.toast{display:none!important}
  .dashboard-page{width:100%;max-width:none;margin:0;padding:0;font-family:"Noto Sans","Segoe UI","Noto Sans Khmer",Arial,sans-serif;color:#172831}
  .material-report{display:block;padding:0;border:0;background:#fff}
  .material-report-rail{display:none}
  .material-report-main{width:100%}
  .dashboard-page .report-hero{min-height:23mm;margin:0 0 2.5mm;padding:3mm 5mm;border:1px solid #b9c7ce;border-radius:2mm;background:#f1f3f2;break-inside:avoid}
  .dashboard-page .report-hero h1{margin:0 0 1mm;color:#355f2a;font-family:"Noto Sans","Segoe UI","Noto Sans Khmer",sans-serif;font-size:19pt;font-weight:750;line-height:1.15;letter-spacing:-.02em}
  .dashboard-page .report-hero .eyebrow{font-size:6.5pt;letter-spacing:.14em}
  .dashboard-page .report-hero p{margin:0;font-family:"Noto Sans","Segoe UI","Noto Sans Khmer",sans-serif;font-size:8pt;line-height:1.35}
  .print-report-meta{display:flex;gap:5mm;margin-top:1.5mm;color:#60727c;font-size:6.5pt}
  .dashboard-page .report-hero-actions{display:block;min-width:52mm}
  .expense-highlight{min-width:52mm;padding:2.5mm 4mm;border:1px solid #cbd7dd;border-radius:12mm;background:#fff}
  .expense-highlight-icon{width:8mm;height:8mm;padding:1.5mm}
  .expense-highlight span{font-size:7pt}.expense-highlight strong{font-size:14pt}.expense-highlight small{font-size:6pt}
  .dashboard-page .report-filters{display:none}
  .print-filter-summary{display:flex;align-items:center;gap:7mm;margin:0 0 2mm;padding:1.8mm 3mm;border-left:3px solid #267ab0;background:#eef4f7;font-size:6.5pt;break-inside:avoid}
  .print-filter-summary strong{font-size:7pt;text-transform:uppercase;letter-spacing:.06em}
  .dashboard-page .report-kpis{grid-template-columns:repeat(7,1fr);gap:1.4mm;margin:0 0 1.8mm;break-inside:avoid}
  .dashboard-page .report-kpi{min-height:15mm;padding:2.2mm;border-radius:2.2mm}
  .dashboard-page .report-kpi .kpi-icon{top:2mm;right:2mm;width:4mm;height:4mm}
  .dashboard-page .report-kpi span{font-size:5.4pt}.dashboard-page .report-kpi strong{font-size:12pt}.dashboard-page .report-kpi small{font-size:5pt}
  .analytics-story-strip{grid-template-columns:repeat(4,1fr);gap:1.4mm;margin:0 0 1.8mm;break-inside:avoid}
  .analytics-story-strip article{min-height:15mm;padding:2mm;border-radius:2mm;box-shadow:none}
  .story-icon{width:6mm;height:6mm;padding:1.3mm}.analytics-story-strip span{font-size:4.8pt}.analytics-story-strip strong{font-size:7.5pt}.analytics-story-strip p{font-size:5.2pt}
  .report-section-bar{min-height:5mm;padding:1mm 3mm;font-size:6pt;break-after:avoid}.report-section-bar strong{font-size:7pt}
  .compact-overview-grid{gap:1.2mm;background:#fff}
  .compact-overview-grid .report-panel,.secondary-grid .report-panel{border:1px solid #bfcbd1;border-radius:4mm;background:#fff;box-shadow:none;break-inside:avoid}
  .compact-overview-grid .report-panel>header,.secondary-grid .report-panel>header{min-height:9mm;padding:1.4mm 2.5mm}
  .compact-overview-grid .panel-icon,.secondary-grid .panel-icon{width:5.5mm;height:5.5mm;padding:1.2mm}
  .compact-overview-grid .report-panel h2,.secondary-grid .report-panel h2{font-size:6.5pt}.report-panel header span{font-size:4.8pt}
  .compact-overview-grid .overview-small .chart-area{height:34mm;min-height:34mm;padding:2mm}
  .compact-overview-grid .overview-wide .chart-area{height:42mm;min-height:42mm;padding:2mm}
  .compact-overview-grid .hbar-row{gap:1mm}.compact-overview-grid .hbar-row>span,.compact-overview-grid .hbar-row>strong{font-size:5pt}.compact-overview-grid .hbar-track{height:1.8mm}
  .secondary-insights{margin:0;background:#fff;border:0;break-before:page}
  .secondary-insights>summary{min-height:7mm;padding:1.5mm 3mm;background:#91afe1;font-size:7pt;break-after:avoid}
  .secondary-insights>summary:after{display:none}.secondary-insights>summary small{font-size:5.5pt}
  .secondary-grid{gap:1.2mm;padding:1.2mm 0;background:#fff}
  .secondary-grid .chart-area{height:36mm;min-height:36mm;padding:2mm}.secondary-grid .column-chart{height:36mm}.secondary-grid .column-track{height:24mm}
  .secondary-grid .span-12:not(.live-table-panel){border-top-width:6mm}.secondary-grid .span-12:not(.live-table-panel):before{top:-5.5mm;font-size:6pt}
  .secondary-grid .live-table-panel{break-before:page;border-radius:3mm}
  .secondary-grid .live-table-panel .table-wrap{max-height:none;overflow:visible;margin-top:1mm}
  .secondary-grid .live-table-panel table{font-size:6pt}.secondary-grid .live-table-panel th{padding:1.5mm;font-size:5pt}.secondary-grid .live-table-panel td{padding:1.5mm}
  .column-item strong,.column-item span,.hbar-row>span,.hbar-row>strong,.donut-legend div{font-size:5pt!important}
  .column-track i,.hbar-track i{animation:none!important}
}

/* Color-coded primary navigation */
.topbar nav a{position:relative;border:1px solid transparent;font-weight:600}.topbar nav a:after{content:'';position:absolute;left:12px;right:12px;bottom:3px;height:3px;border-radius:99px;background:var(--nav-color,transparent);transform:scaleX(0);transition:transform .18s ease}.topbar nav a:hover:after,.topbar nav a.active:after{transform:scaleX(1)}.topbar nav a.nav-dashboard{--nav-color:#2474a6;--nav-soft:#e8f3fa;--nav-text:#155b86}.topbar nav a.nav-records{--nav-color:#7356a5;--nav-soft:#f1edf8;--nav-text:#594084}.topbar nav a.nav-suppliers{--nav-color:#17806d;--nav-soft:#e5f5f1;--nav-text:#116454}.topbar nav a.nav-quotation{--nav-color:#d77a21;--nav-soft:#fff1e4;--nav-text:#a95713}.topbar nav a.nav-entry{--nav-color:#4b8a42;--nav-soft:#eaf5e7;--nav-text:#356d2e}.topbar nav a.nav-password{--nav-color:#b14e68;--nav-soft:#f9eaf0;--nav-text:#8d3850}.topbar nav a:hover{background:var(--nav-soft);color:var(--nav-text);border-color:color-mix(in srgb,var(--nav-color) 25%,transparent)}.topbar nav a.active{background:var(--nav-soft);color:var(--nav-text);border-color:color-mix(in srgb,var(--nav-color) 38%,transparent);box-shadow:0 3px 10px color-mix(in srgb,var(--nav-color) 14%,transparent),inset 0 -2px var(--nav-color)}.topbar nav a:focus-visible{outline:3px solid color-mix(in srgb,var(--nav-color) 30%,transparent);outline-offset:2px}
.topbar nav a.nav-po{--nav-color:#205c91;--nav-soft:#e7f0f8;--nav-text:#174a76}

/* Centered KPI content and revised management-report pagination */
.dashboard-page .report-kpi{align-items:center;text-align:center}.dashboard-page .report-kpi>span{padding-left:22px;padding-right:22px}.dashboard-page .report-kpi>strong,.dashboard-page .report-kpi>small{width:100%;text-align:center}.print-report-footer{display:none}
@media print{
  @page{size:A4 landscape;margin:8mm 9mm 8mm 9mm}
  .dashboard-page .report-hero{min-height:20mm;margin-bottom:2mm;padding:2.5mm 4mm}
  .print-report-meta{flex-wrap:wrap;gap:2mm 6mm;margin-top:1mm}
  .print-filter-summary{margin-bottom:1.5mm;padding:1.4mm 2.5mm}
  .dashboard-page .report-kpis{margin-bottom:1.4mm}.dashboard-page .report-kpi{min-height:14mm;padding:1.8mm}
  .analytics-story-strip{margin-bottom:1.4mm}.analytics-story-strip article{min-height:14mm;padding:1.7mm}
  .compact-overview-grid .overview-wide{order:1}.compact-overview-grid .overview-small{order:2}
  .compact-overview-grid .overview-wide .chart-area{height:32mm;min-height:32mm;padding:1.6mm}
  .compact-overview-grid .overview-small .chart-area{height:25mm;min-height:25mm;padding:1.6mm}
  .compact-overview-grid .overview-wide,.compact-overview-grid .overview-small{break-inside:avoid-page}
  .print-report-footer{position:fixed;left:0;right:0;bottom:-5.5mm;display:flex;justify-content:space-between;align-items:center;padding-top:1.2mm;border-top:.25mm solid #9eacb3;color:#62737c;font-size:5.5pt}
  .print-report-footer strong{color:#263e4a}
}

/* Final A4 landscape fit: keep the seven management overview charts together */
@media print{
  @page{size:A4 landscape;margin:0}
  html,body{width:297mm;min-height:210mm;margin:0!important;padding:0!important}
  .dashboard-page{width:297mm!important;max-width:297mm!important;margin:0!important;padding:2.5mm 2.5mm 7mm!important}
  .material-report,.material-report-main{width:100%!important;max-width:none!important}
  .dashboard-page .report-hero{min-height:18mm;margin:0 0 1.2mm;padding:2mm 3mm}
  .print-filter-summary{margin:0 0 1mm;padding:1mm 2mm}
  .dashboard-page .report-kpis{gap:.8mm;margin-bottom:1mm}.dashboard-page .report-kpi{min-height:12mm;padding:1.3mm}
  .dashboard-page .report-kpi strong{font-size:10.5pt}.dashboard-page .report-kpi small{font-size:4.6pt}
  .analytics-story-strip{gap:.8mm;margin-bottom:1mm}.analytics-story-strip article{min-height:12mm;padding:1.2mm}
  .story-icon{width:5mm;height:5mm;padding:1mm}.analytics-story-strip strong{font-size:6.8pt}.analytics-story-strip p{font-size:4.7pt}
  .report-section-bar{min-height:4.5mm;padding:.7mm 2mm}
  .compact-overview-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-flow:row!important;gap:.8mm!important;width:100%!important;background:#fff!important;break-inside:avoid-page!important;page-break-inside:avoid!important}
  .compact-overview-grid .overview-wide{grid-column:span 4!important;order:1!important}
  .compact-overview-grid .overview-small{grid-column:span 3!important;order:2!important}
  .compact-overview-grid .report-panel{min-width:0!important;border-width:.25mm!important;border-radius:2.5mm!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .compact-overview-grid .report-panel>header{min-height:7mm!important;padding:1mm 1.8mm!important}
  .compact-overview-grid .panel-icon{width:4.5mm!important;height:4.5mm!important;padding:.9mm!important}
  .compact-overview-grid .report-panel h2{font-size:5.8pt!important}.compact-overview-grid .report-panel header span{font-size:4.2pt!important}
  .compact-overview-grid .overview-wide .chart-area{height:38mm!important;min-height:38mm!important;padding:1.3mm!important}
  .compact-overview-grid .overview-small .chart-area{height:31mm!important;min-height:31mm!important;padding:1.3mm!important}
  .compact-overview-grid .horizontal-chart{gap:1.1mm!important}.compact-overview-grid .hbar-track{height:1.5mm!important}
  .compact-overview-grid .hbar-row>span,.compact-overview-grid .hbar-row>strong{font-size:4.4pt!important}
  .secondary-insights{break-before:page!important;page-break-before:always!important}
  .print-report-footer{left:2.5mm;right:2.5mm;bottom:1.2mm;padding-top:.8mm;background:#fff}
}

/* Six KPI cards after removing Tax */
.dashboard-page .report-kpis{grid-template-columns:repeat(6,minmax(105px,1fr))}
@media(max-width:1100px){.dashboard-page .report-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.dashboard-page .report-kpis{grid-template-columns:repeat(2,1fr)}}
@media print{.dashboard-page .report-kpis{grid-template-columns:repeat(6,1fr)!important}}

/* Signed-in identity: professional full name and actual position. */
.signed-in-profile{min-width:170px;max-width:210px}
.signed-in-profile strong,.signed-in-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.signed-in-profile strong{font-size:13px}
.signed-in-profile small{font-size:10px;line-height:1.35;text-transform:none}
