:root{--ppa-green:#19843b;--ppa-green-dark:#11632c;--ppa-green-soft:#eef8f1;--gold:#d8ad2f;--ink:#17211b;--muted:#68736c;--line:#e4e9e5;--bg:#f5f7f5;--card:#fff}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{cursor:pointer}.app-shell,.sidebar{min-height:100vh;display:flex}.sidebar{width:270px;background:#fff;border-right:1px solid var(--line);flex-direction:column;position:fixed;inset:0 auto 0 0}.brand-panel{padding:22px 18px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:center}.brand-logo{width:100%;height:auto;object-fit:contain;max-width:230px}.nav-list{padding:20px 12px;display:grid;grid-gap:5px;gap:5px;flex:1 1;overflow-y:scroll;min-height:0;scrollbar-width:thin;scrollbar-color:#aab6ae #eef1ef}.nav-list::-webkit-scrollbar{width:9px}.nav-list::-webkit-scrollbar-thumb{background:#aab6ae;border-radius:999px;border:2px solid #eef1ef}.nav-list::-webkit-scrollbar-thumb:hover{background:var(--ppa-green-dark)}.nav-list::-webkit-scrollbar-track{background:#eef1ef;border-radius:999px}.nav-item{width:100%;border:0;background:transparent;color:#4d5951;display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;text-align:left;font-weight:600}.nav-item:hover{background:#f3f7f4;color:var(--ppa-green-dark)}.nav-item.active{background:var(--ppa-green-soft);color:var(--ppa-green-dark);box-shadow:inset 3px 0 0 var(--ppa-green)}.sidebar-footer{margin-top:auto;padding:16px}.security-badge{background:#f7faf7;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;gap:10px;align-items:center;color:var(--ppa-green-dark)}.security-badge div{display:grid;grid-gap:2px;gap:2px}.security-badge strong{font-size:12px}.security-badge span{color:var(--muted);font-size:10px}.main-content{width:calc(100% - 270px);margin-left:270px}.topbar{height:86px;background:#fff;border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:5}.eyebrow{margin:0 0 3px;color:var(--ppa-green);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.topbar h1{margin:0;font-size:23px}.topbar-title{gap:16px}.topbar-actions,.topbar-title{display:flex;align-items:center}.topbar-actions{gap:10px}.history-nav{display:flex;align-items:center;gap:2px;padding-right:14px;border-right:1px solid var(--line)}.history-nav .icon-button{border-radius:6px}.history-nav .icon-button:hover{background:#f3f7f4;color:var(--ppa-green-dark)}.search-box{width:280px;height:42px;border:1px solid var(--line);background:#fbfcfb;border-radius:8px;display:flex;align-items:center;gap:8px;padding:0 12px;color:#849088}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.period-button{height:42px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;align-items:center;gap:7px;color:#465149;font-weight:650;cursor:pointer}.global-search,.period-switcher{position:relative}.search-menu{position:absolute;top:calc(100% + 6px);left:0;width:380px;max-height:420px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(29,45,35,.12);padding:10px;z-index:20;display:grid;grid-gap:2px;gap:2px}.search-menu-empty{color:var(--muted);font-size:12px;padding:8px 6px}.search-menu-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 6px;border-radius:7px;font-size:13px;color:var(--ink);text-decoration:none}.search-menu-row:hover{background:#f7faf7}.search-menu-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-menu{position:absolute;top:calc(100% + 6px);right:0;width:250px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(29,45,35,.12);padding:10px;z-index:20;display:grid;grid-gap:4px;gap:4px}.period-menu-header{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px 6px}.period-menu-empty{color:var(--muted);font-size:12px;padding:6px}.period-menu-row{display:flex;align-items:center;justify-content:space-between;padding:7px 6px;border-radius:7px;font-size:13px}.period-menu-row:hover{background:#f7faf7}.period-menu-link{display:block;margin-top:4px;padding:8px 6px 2px;border-top:1px solid var(--line);color:var(--ppa-green);font-weight:700;font-size:12px;text-decoration:none}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--ppa-green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}.page-content{padding:30px;max-width:1500px;margin:0 auto}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.panel-header h3,.section-heading h2{margin:0}.panel-header p,.section-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}.primary-button{border:0;background:var(--ppa-green);color:#fff;border-radius:8px;padding:11px 16px;font-weight:750;box-shadow:0 4px 12px rgba(25,132,59,.18)}.primary-button:hover{background:var(--ppa-green-dark)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:18px}.metric-card,.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 14px rgba(29,45,35,.035)}.metric-card{padding:20px}.metric-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.metric-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:var(--ppa-green-soft);color:var(--ppa-green-dark)}.metric-card>p{margin:0 0 7px;color:var(--muted);font-size:13px;font-weight:650}.metric-card>strong{font-size:23px}.metric-detail{margin-top:6px}.metric-detail,.trend{color:var(--muted);font-size:11px}.trend{display:inline-flex;align-items:center;gap:4px;font-weight:700}.trend.up{color:var(--ppa-green)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.9fr);grid-gap:18px;gap:18px;margin-bottom:18px}.panel{padding:20px}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px}.panel-header h3{font-size:16px}.text-button{border:0;background:transparent;color:var(--ppa-green);font-weight:700;font-size:12px}.text-button.active-filter{text-decoration:underline;text-underline-offset:3px}.bar-chart{height:235px;display:grid;grid-template-columns:repeat(8,1fr);grid-gap:14px;gap:14px;align-items:end;padding-top:10px}.bar-column{height:100%;display:grid;grid-template-rows:1fr auto;grid-gap:8px;gap:8px;justify-items:center}.bar-track{width:28px;height:100%;border-radius:6px;background:#edf1ee;display:flex;align-items:end;overflow:hidden}.bar-fill{width:100%;background:linear-gradient(180deg,#42a962,var(--ppa-green));border-radius:6px}.bar-column span{color:var(--muted);font-size:11px}.hbar-list{display:grid;grid-gap:12px;gap:12px;padding:6px 20px 20px}.hbar-row{display:grid;grid-template-columns:minmax(120px,240px) 1fr auto;grid-gap:14px;gap:14px;align-items:center}.hbar-label{font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-label small{display:block;font-weight:500;color:var(--muted);font-size:11px}.hbar-track{height:14px;border-radius:7px;background:#edf1ee;overflow:hidden}.hbar-fill{display:block;height:100%;background:linear-gradient(90deg,#42a962,var(--ppa-green));border-radius:7px}.hbar-fill.warning{background:linear-gradient(90deg,#e0b34e,#c98f1f)}.hbar-fill.danger{background:linear-gradient(90deg,#d97a72,#a13e3b)}.hbar-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:12.5px;white-space:nowrap;text-align:right}@media (max-width:620px){.hbar-row{grid-template-columns:1fr;gap:4px}.hbar-value{text-align:left}}.quick-actions{display:grid;grid-gap:9px;gap:9px}.quick-actions button{display:flex;gap:11px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px;text-align:left}.quick-actions button:hover{border-color:#b8d7c1;background:#fbfdfb}.quick-actions button>span{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:var(--ppa-green-soft);color:var(--ppa-green-dark);font-size:11px;font-weight:850}.quick-actions button div{display:grid;grid-gap:2px;gap:2px}.quick-actions strong{font-size:12px}.quick-actions small{color:var(--muted);font-size:10px}.transactions-panel{overflow:hidden}.po-lifecycle{list-style:none;margin:0;padding:0 20px 20px;display:grid;grid-gap:2px;gap:2px}.po-lifecycle-step{position:relative;display:flex;gap:14px;padding:0 0 22px}.po-lifecycle-step:last-child{padding-bottom:0}.po-lifecycle-step:before{content:"";position:absolute;left:7px;top:20px;bottom:0;width:2px;background:var(--line)}.po-lifecycle-step:last-child:before{display:none}.po-lifecycle-marker{flex:0 0 auto;width:16px;height:16px;border-radius:50%;margin-top:2px;border:2px solid var(--line);background:#fff;z-index:1}.po-lifecycle-step.done .po-lifecycle-marker{background:var(--ppa-green);border-color:var(--ppa-green)}.po-lifecycle-step.current .po-lifecycle-marker{border-color:var(--ppa-green);box-shadow:0 0 0 3px var(--ppa-green-soft)}.po-lifecycle-step.rejected .po-lifecycle-marker{background:#b1433f;border-color:#b1433f}.po-lifecycle-copy{display:grid;grid-gap:2px;gap:2px}.po-lifecycle-copy strong{font-size:13px;color:var(--ink)}.po-lifecycle-step.pending .po-lifecycle-copy strong{color:var(--muted);font-weight:650}.po-lifecycle-meta{color:var(--muted);font-size:11px}.po-lifecycle-step.rejected .po-lifecycle-copy strong{color:#8f514f}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfa}td{padding:14px 12px;border-bottom:1px solid #edf0ed;color:#435047}tbody tr:last-child td{border-bottom:0}.status{padding:5px 9px;border-radius:999px;font-size:10px;font-weight:750}.status.approved,.status.posted{background:var(--ppa-green-soft);color:var(--ppa-green-dark)}.status.pending{background:#fff8e7;color:#8b6713}@media (max-width:1050px){.sidebar{width:220px}.main-content{margin-left:220px;width:calc(100% - 220px)}.dashboard-grid,.metric-grid{grid-template-columns:1fr}.search-box{display:none}}@media (max-width:760px){.sidebar{position:static;width:100%;min-height:auto}.app-shell{display:block}.nav-list{grid-template-columns:repeat(2,1fr);flex:none;overflow-y:visible}.sidebar-footer{display:none}.main-content{width:100%;margin-left:0}.topbar{padding:0 16px}.topbar h1{font-size:18px}.page-content{padding:20px 14px}.section-heading{align-items:flex-start;flex-direction:column}.primary-button{width:100%}}a{color:inherit}.link-button{display:inline-flex;align-items:center;justify-content:center}.link-button,.nav-item,.quick-actions a{text-decoration:none}.quick-actions a{display:flex;gap:11px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px;text-align:left}.quick-actions a:hover{border-color:#b8d7c1;background:#fbfdfb}.quick-actions a>span{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:var(--ppa-green-soft);color:var(--ppa-green-dark);font-size:11px;font-weight:850}.quick-actions a div{display:grid;grid-gap:2px;gap:2px}.summary-grid{display:grid;grid-gap:16px;gap:16px;margin-bottom:18px}.summary-grid.two{grid-template-columns:repeat(2,1fr)}.summary-grid.three{grid-template-columns:repeat(3,1fr)}.summary-grid.four{grid-template-columns:repeat(4,1fr)}.summary-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:grid;grid-gap:7px;gap:7px}.summary-card span{color:var(--muted);font-size:12px;font-weight:650}.summary-card strong{font-size:18px}.filter-row{display:flex;gap:8px}.filter-row input,.filter-row select,.form-grid input,.form-grid select,.form-grid textarea,.journal-line input,.journal-line select{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:10px 11px;outline:none}.filter-row input:focus,.filter-row select:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.journal-line input:focus,.journal-line select:focus{border-color:#90c59f;box-shadow:0 0 0 3px rgba(25,132,59,.08)}.filter-fieldset{border:1px solid var(--line);border-radius:8px;padding:6px 12px 8px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}.filter-fieldset legend{padding:0 6px;font-size:11px;font-weight:700;color:var(--muted)}.checkbox-label{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap}.checkbox-label input{width:auto;padding:0}.type-pill{display:inline-flex;padding:4px 8px;border-radius:6px;background:#f2f5f3;font-size:10px;font-weight:700}.amount-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.secondary-button{border:1px solid var(--line);background:#fff;color:#425048;border-radius:8px;padding:10px 14px;font-weight:700}.secondary-button:hover{border-color:#b8d7c1;background:#fbfdfb}.ledger-filter{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.form-grid.compact{grid-template-columns:2fr 1fr 1fr 1fr}.form-grid label{display:grid;grid-gap:7px;gap:7px;font-size:12px;font-weight:700;color:#48554d;position:relative}.form-grid .span-2{grid-column:span 2}.closing-balance{color:var(--ppa-green-dark);font-size:13px}.narrow-content{max-width:1180px}.breadcrumb{display:flex;gap:8px;color:var(--muted);font-size:11px;margin-bottom:8px}.breadcrumb a{color:var(--ppa-green);text-decoration:none;font-weight:700}.form-panel{margin-bottom:18px}.quick-add-trigger{position:relative;display:inline-block}.quick-add-backdrop{position:fixed;inset:0;z-index:100;background:rgba(15,20,17,.55);display:flex;align-items:flex-start;justify-content:center;padding:10vh 16px}.quick-add-panel{width:100%;max-width:520px;max-height:78vh;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:18px;background:var(--card);box-shadow:0 20px 50px rgba(0,0,0,.35)}.quick-add-panel .form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-add-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.form-section-title{margin-bottom:18px}.form-section-title h3{margin:0 0 5px;font-size:16px}.form-section-title p{margin:0;color:var(--muted);font-size:12px}.journal-lines{grid-gap:8px}.journal-line,.journal-lines{display:grid;gap:8px;min-width:0}.journal-line{grid-template-columns:minmax(0,2fr) minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) 34px;grid-gap:8px;align-items:center}.journal-line input,.journal-line select{width:100%;min-width:0;box-sizing:border-box}.journal-head{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:0 2px 3px}.journal-tax-picker-wide{display:flex;flex-wrap:wrap;gap:16px;padding:0 20px 16px}.journal-tax-picker-wide label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink)}.journal-tax-picker-wide input[type=checkbox]{width:15px;height:15px}.tax-rate-percent-input{width:52px;padding:2px 4px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:13px;font-weight:600;text-align:right}.tax-rate-percent-input:focus{border-color:#90c59f;box-shadow:0 0 0 2px rgba(25,132,59,.08);outline:none}.bulk-pay-item{border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:12px}.bulk-pay-item-employees{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px;padding:12px;background:#f8f9f8;border-radius:8px;max-height:180px;overflow-y:auto}.checkbox-chip{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap}.checkbox-chip input[type=checkbox]{width:15px;height:15px}.remove-button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;color:#8f514f;font-size:18px}.remove-button:disabled{opacity:.35;cursor:not-allowed}.journal-totals{margin-top:18px;margin-left:auto;width:min(100%,570px);border-top:1px solid var(--line);padding-top:14px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.journal-totals>div{display:grid;grid-gap:4px;gap:4px}.journal-totals span{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.journal-totals strong{font-size:14px}.journal-totals small{font-size:10px}.balance-ok small,.balance-ok strong{color:var(--ppa-green)}.balance-off small,.balance-off strong{color:#9a6d11}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:30px}.notice{border-radius:9px;padding:12px 14px;margin-bottom:16px;font-size:12px;font-weight:650}.notice.success{background:var(--ppa-green-soft);color:var(--ppa-green-dark);border:1px solid #c8e4d0}.notice.warning{background:#fff8e7;color:#7d5b13;border:1px solid #ead9aa}.notice.error{background:#fff5f5;color:#8e3434;border:1px solid #efcccc}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.report-card h3{margin:0 0 5px;font-size:15px}.report-card p{color:var(--muted);font-size:12px;margin:0 0 18px}.empty-state{min-height:280px;display:grid;place-content:center;text-align:center}.empty-state h3{margin:0 0 8px}.empty-state p{color:var(--muted);max-width:520px;margin:0}@media (max-width:1100px){.form-grid.compact,.report-grid,.summary-grid.four{grid-template-columns:repeat(2,1fr)}.journal-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:12px;border:1px solid var(--line);border-radius:9px}.journal-head{display:none}}@media (max-width:760px){.form-grid,.form-grid.compact,.report-grid,.summary-grid.four,.summary-grid.three,.summary-grid.two{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.filter-row{flex-direction:column}.journal-line,.journal-totals{grid-template-columns:1fr}}.action-row{gap:10px}.summary-card small{color:var(--muted);font-size:10px}.status.pending-approval{background:#fff8e7;color:#8b6713}.status.paid{background:#edf4ff;color:#315b94}.status.active{background:var(--ppa-green-soft);color:var(--ppa-green-dark)}.status.on-hold{background:#fff8e7;color:#8b6713}.status.inactive,.status.rejected{background:#f7eeee;color:#8f514f}td small{color:var(--muted)}.approval-list{display:grid;grid-gap:14px;gap:14px}.approval-card{padding:0;overflow:hidden}.approval-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:20px;border-bottom:1px solid var(--line)}.approval-card-head h3{margin:5px 0;font-size:16px}.approval-card-head p{margin:0;color:var(--muted);font-size:12px}.approval-card-head>strong{font-size:20px;white-space:nowrap}.reference-label{color:var(--ppa-green);font-weight:800;font-size:11px}.approval-meta{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;background:var(--line)}.approval-meta>div{background:#fff;padding:14px 20px;display:grid;grid-gap:5px;gap:5px}.approval-meta span{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.approval-meta strong{font-size:12px}.approval-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;background:#fafbfa}.approval-detail{padding:16px 20px;border-top:1px solid var(--line);background:#fff}.approval-detail .muted-note{margin:0 0 10px}.approval-detail table td,.approval-detail table th{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}.approval-detail table th{color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800}.reject-button{border:1px solid #e4cccc;background:#fff;color:#8f514f;border-radius:8px;padding:10px 14px;font-weight:700}.posting-preview{margin-top:20px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.posting-preview>div{display:grid;grid-template-columns:70px 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.posting-preview>div:last-child{border-bottom:0}.posting-preview span{font-size:10px;font-weight:800}.posting-preview strong{font-size:12px}.posting-preview b{font-size:12px;color:var(--ppa-green-dark)}.primary-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width:900px){.approval-meta{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.action-row{width:100%;flex-direction:column}.action-row>*{width:100%}.approval-card-head{flex-direction:column}.approval-meta,.posting-preview>div{grid-template-columns:1fr}}.posting-preview{margin-top:22px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;padding:16px;border:1px solid var(--border);border-radius:10px;background:hsla(0,0%,100%,.025)}.posting-preview div{display:flex;flex-direction:column;gap:5px}.posting-preview span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.posting-preview strong{font-size:14px}.icon-button{background:transparent;border:0;color:#79c99e;cursor:pointer;padding:4px;display:inline-flex}.matched-row{background:rgba(32,126,78,.07)}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.quick-card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 14px rgba(29,45,35,.035);padding:20px;display:grid;grid-gap:7px;gap:7px;align-content:start}.quick-card strong{font-size:15px}.quick-card span{color:var(--muted);font-size:12px;line-height:1.55}.link-card{text-decoration:none;color:inherit;transition:border-color .12s,box-shadow .12s,transform .12s}.link-card:hover{border-color:#bfd5c5;box-shadow:0 8px 22px rgba(29,45,35,.09);transform:translateY(-1px)}.link-card:focus-visible{outline:2px solid var(--ppa-green);outline-offset:2px}@media (max-width:900px){.quick-grid{grid-template-columns:1fr}.posting-preview{grid-template-columns:1fr 1fr}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr);background:#f5f7f5}.login-brand-panel{background:linear-gradient(145deg,#0a3d1e,#11632c 52%,#19843b);color:#fff;min-height:100vh;display:flex;align-items:center;padding:64px clamp(44px,7vw,110px);position:relative;overflow:hidden}.login-brand-panel:after{content:"";position:absolute;width:520px;height:520px;border:1px solid hsla(0,0%,100%,.09);border-radius:50%;right:-250px;bottom:-250px;box-shadow:0 0 0 70px hsla(0,0%,100%,.025),0 0 0 140px hsla(0,0%,100%,.018)}.login-brand-content{position:relative;z-index:1;width:min(100%,560px)}.login-logo{width:min(100%,330px);height:auto;background:#fff;border-radius:8px;padding:8px;margin-bottom:52px}.login-brand-copy h1{margin:7px 0 18px;font-size:clamp(36px,4vw,58px);line-height:1.04;letter-spacing:-.035em}.login-brand-copy>p:last-child{max-width:520px;color:hsla(0,0%,100%,.78);line-height:1.75;font-size:15px}.login-eyebrow{margin:0;color:#62d082;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:850}.login-security-note{margin-top:46px;display:inline-flex;align-items:center;gap:9px;color:hsla(0,0%,100%,.84);font-size:12px;font-weight:700}.login-form-panel{min-height:100vh;display:grid;place-items:center;padding:48px}.login-card{width:min(100%,470px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px;box-shadow:0 24px 70px rgba(25,55,35,.09)}.login-card-heading h2{margin:7px 0 8px;font-size:29px;letter-spacing:-.025em}.login-card-heading>p:last-child{margin:0;color:var(--muted);font-size:13px}.login-form{margin-top:30px;display:grid;grid-gap:18px;gap:18px}.login-form label{display:grid;grid-gap:8px;gap:8px;color:#445149;font-size:12px;font-weight:750}.login-input-wrap{min-height:48px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #dce3de;border-radius:9px;background:#fbfcfb;color:#748078}.login-input-wrap:focus-within{border-color:#78bb8c;box-shadow:0 0 0 4px rgba(25,132,59,.08);background:#fff}.login-input-wrap input{flex:1 1;border:0;outline:0;background:transparent;color:var(--ink);min-width:0}.password-toggle{border:0;background:transparent;color:#718078;padding:4px;display:grid;place-items:center}.login-submit{min-height:48px;border:0;border-radius:9px;background:var(--ppa-green);color:#fff;font-weight:800;box-shadow:0 6px 20px rgba(25,132,59,.22)}.login-submit:hover{background:var(--ppa-green-dark)}.login-submit:disabled{opacity:.62;cursor:wait}.login-error{border:1px solid #efcccc;background:#fff5f5;color:#8e3434;border-radius:8px;padding:11px 12px;font-size:12px;line-height:1.45}.login-footer-copy{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);text-align:center;color:#89928c;font-size:10px}.user-account{display:flex;align-items:center;gap:9px}.user-account-copy{display:grid;grid-gap:1px;gap:1px}.user-account-copy strong{font-size:11px}.user-account-copy span{color:var(--muted);font-size:9px}.logout-button{height:40px;border:1px solid var(--line);background:#fff;color:#56625a;border-radius:8px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.logout-button:hover{border-color:#bfd5c5;color:var(--ppa-green-dark);background:#fbfdfb}@media (max-width:900px){.login-page{grid-template-columns:1fr}.login-brand-panel{min-height:auto;padding:36px 24px}.login-logo{max-width:250px;margin-bottom:28px}.login-brand-copy h1{font-size:34px}.login-security-note{margin-top:24px}.login-form-panel{min-height:auto;padding:40px 20px}.logout-button span,.user-account-copy{display:none}}.switch-department-link{height:40px;border:1px solid var(--line);background:#fff;color:#56625a;border-radius:8px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-decoration:none}.switch-department-link:hover{border-color:#bfd5c5;color:var(--ppa-green-dark);background:#fbfdfb}.department-select,.module-landing{min-height:100vh;background:var(--bg)}.department-select-bar,.module-landing-bar{height:84px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.department-select-brand,.module-landing-brand{display:flex;align-items:center;gap:12px}.department-select-logo,.module-landing-logo{border-radius:8px}.department-select-brand strong,.module-landing-brand strong{font-size:16px}.module-landing-actions{display:flex;align-items:center;gap:10px}.department-select-body{padding:60px 34px;max-width:1100px;margin:0 auto}.department-select-heading h1{margin:0 0 8px;font-size:30px;letter-spacing:-.02em}.department-select-heading p{margin:0 0 36px;color:var(--muted)}.department-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px}.department-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px;display:grid;grid-gap:16px;gap:16px;text-decoration:none;color:var(--ink);box-shadow:0 3px 14px rgba(29,45,35,.035);transition:border-color .15s,box-shadow .15s,transform .15s}.department-card:hover{border-color:#bfd5c5;box-shadow:0 10px 26px rgba(25,132,59,.1);transform:translateY(-2px)}.department-card-icon{width:52px;height:52px;border-radius:12px;background:var(--ppa-green-soft);color:var(--ppa-green-dark);display:grid;place-items:center}.department-card-copy strong{font-size:18px}.department-card-copy p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.department-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px;color:var(--muted)}.department-status{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:5px 9px;border-radius:999px}.department-status.active{background:var(--ppa-green-soft);color:var(--ppa-green-dark)}.department-status.coming-soon{background:#f3efe0;color:#9c7d1f}.module-landing-body{max-width:620px;margin:0 auto;padding:100px 24px;text-align:center}.module-landing-icon{width:68px;height:68px;margin:0 auto 22px;border-radius:16px;background:var(--ppa-green-soft);color:var(--ppa-green-dark);display:grid;place-items:center}.module-landing-body h1{margin:0 0 12px;font-size:30px;letter-spacing:-.02em}.module-landing-description{color:var(--muted);line-height:1.7;margin:0 0 20px}.module-landing-status{display:inline-block;margin-bottom:30px;background:#f3efe0;color:#9c7d1f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:6px 12px;border-radius:999px}.module-landing-highlights{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px;text-align:left}.module-landing-highlights li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 16px;font-size:13px;color:#445149;font-weight:600}@media (max-width:720px){.department-grid{grid-template-columns:1fr}.department-select-bar,.module-landing-bar{padding:0 18px}.department-select-body{padding:36px 18px}.switch-department-link span{display:none}}.login-notice{margin:0 0 18px;padding:12px 14px;border:1px solid rgba(63,185,80,.28);border-radius:8px;background:rgba(31,111,52,.12);color:#b7e4c7;font-size:.9rem;line-height:1.45}.approval-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.approval-tabs button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:8px;padding:9px 13px;font-weight:700}.approval-tabs button.active{border-color:#b8d7c1}.approval-count-badge,.approval-tabs button.active{background:var(--ppa-green-soft);color:var(--ppa-green-dark)}.approval-count-badge{border:1px solid #b8d7c1;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:800}.danger-text-button{border:0;background:transparent;color:#a13e3b;font-weight:700;font-size:12px}.muted-note{color:var(--ppa-muted,#7a8794);font-size:12px;font-weight:600}.panel-search{min-width:240px;padding:9px 12px;border:1px solid var(--ppa-border,#d8dee5);border-radius:8px;font-size:13px}.form-grid label.wide{grid-column:1/-1}.form-grid label.checkbox-label{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:8px}.form-grid label.checkbox-label input{width:16px;height:16px}.status.part-paid{background:#fdf3e0;color:#8a5a12}.import-preview{display:grid;grid-gap:14px;gap:14px;margin-top:16px}.import-preview .table-wrap{max-height:340px;overflow:auto}.status.returned{background:#eef3ff;color:#3f5f93}.status.reversed{background:#f0eff7;color:#625c85}.status.cancelled,.status.draft,.status.withdrawn{background:#f2f4f3;color:#5c6660}.status.returned-for-correction{background:#fdf3e0;color:#8a5a12}.status.void{background:#f7eeee;color:#8f514f}.status.open{background:var(--ppa-green-soft);color:var(--ppa-green-dark)}.status.closed{background:#eef3ff;color:#3f5f93}.status.locked{background:#eceaf2;color:#4b4569}.action-row{align-items:center}.action-row,.range-chips{display:flex;gap:8px;flex-wrap:wrap}.range-chips{margin-bottom:14px}.range-chips a,.range-chips button.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;font-size:12px;font-weight:650;color:#465149}.range-chips a:hover,.range-chips button.chip:hover{border-color:#b8d7c1;background:#fbfdfb}.range-chips a.active,.range-chips button.chip.active{background:var(--ppa-green);border-color:var(--ppa-green);color:#fff}.attachments-cell summary,td>details>summary{cursor:pointer;font-size:12px;font-weight:650;color:#465149;list-style:none}td>details>summary::-webkit-details-marker{display:none}td>details[open]>summary{color:var(--ppa-green-dark)}.attachments-panel{margin-top:8px;min-width:220px}.attachments-panel .notice{margin-bottom:8px}.attachments-list{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-gap:6px;gap:6px}.attachments-list li{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:8px;padding:6px 9px}.attachments-list a{color:var(--ppa-green-dark);font-weight:650;font-size:12px;text-decoration:none}.attachments-list a:hover{text-decoration:underline}.attachments-list small{color:var(--muted);font-size:10px}.attachments-list .text-button{justify-self:start;font-size:11px}@media print{.action-row,.breadcrumb,.filter-row,.range-chips,.sidebar,.topbar{display:none!important}.main-content{width:100%;margin-left:0}.page-content{max-width:none;padding:0}.transactions-panel{overflow:visible}.table-wrap{overflow-x:visible}.notice,.panel,.summary-card,tr{page-break-inside:avoid;break-inside:avoid}table{page-break-inside:auto;break-inside:auto}}