:root{--ink:#17231d;--muted:#66736d;--green:#0f5132;--green2:#177245;--pale:#edf5f0;--gold:#c79a3b;--line:#dce5df;--white:#fff;--bg:#f4f7f5;--danger:#a63c3c;--shadow:0 16px 40px rgba(25,55,40,.08)}
*{box-sizing:border-box}html{font-family:"Segoe UI",Tahoma,Arial,sans-serif;color:var(--ink);background:var(--bg);max-width:100%;overflow-x:hidden}body{margin:0;min-height:100vh;max-width:100%;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}
.language-switch{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:0 5px 18px rgba(20,40,30,.09)}.language-switch button{min-width:35px;padding:6px 9px;border-radius:7px;background:transparent;color:var(--muted)}.language-switch button.active{background:var(--green);color:#fff}.auth-language-switch{margin:0 auto 22px}.sidebar-language-switch{margin-bottom:16px;box-shadow:none}.negative{color:var(--danger)!important}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 20%,#d8eadf,transparent 34%),linear-gradient(135deg,#f7faf8,#e9f1ec)}.auth-card{width:min(440px,100%);background:#fff;padding:44px;border:1px solid #dfe8e2;border-radius:28px;box-shadow:var(--shadow);text-align:center}.brand-mark{width:66px;height:66px;margin:auto;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,var(--green2),var(--green));color:#fff;font-size:30px;font-weight:800;box-shadow:0 10px 24px rgba(15,81,50,.2)}.brand-mark.small{width:44px;height:44px;margin:0;border-radius:14px;font-size:21px}.eyebrow{margin:18px 0 4px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.08em}.auth-card h1{margin:0 0 8px;font-size:28px}.auth-card small{display:block;margin-top:24px;color:var(--muted)}
.stack{display:grid;gap:16px;margin-top:28px;text-align:right}label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#34443c}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 13px;outline:none;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(23,114,69,.1)}button{border:0;border-radius:10px;padding:10px 16px;font-weight:750}.primary{background:var(--green);color:#fff}.primary:hover{background:#0b4329}.secondary{background:var(--pale);color:var(--green);border:1px solid #cce0d3}.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.link{background:transparent;color:var(--green);padding:4px}.wide{width:100%}
.app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh;max-width:100%}.sidebar{background:#102d20;color:#fff;padding:24px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-close,.sidebar-backdrop{display:none}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 26px;border-bottom:1px solid rgba(255,255,255,.1)}.brand div{display:grid;min-width:0}.brand b,.brand small{overflow-wrap:anywhere}.brand small{color:#aac0b4;margin-top:3px}.sidebar nav{display:grid;gap:7px;margin-top:24px}.sidebar nav button{text-align:right;background:transparent;color:#c5d5cc;padding:13px 14px;white-space:normal}.sidebar nav button:hover,.sidebar nav button.active{background:rgba(255,255,255,.1);color:#fff}.sidebar nav button.active{box-shadow:inset -3px 0 var(--gold)}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:18px}.sidebar-foot .ghost{color:#d8e2dc;border-color:rgba(255,255,255,.14);width:100%;margin-top:12px}.user-name{font-weight:800}.user-role{font-size:12px;color:#aac0b4;margin-top:4px}
.workspace{min-width:0;max-width:100%}.topbar{height:90px;padding:0 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:5}.topbar .eyebrow{margin:0}.topbar h2{margin:3px 0 0;font-size:21px}.local-pill{margin-right:auto;color:var(--green);background:var(--pale);border:1px solid #d4e6da;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}.local-pill span{display:inline-block;width:8px;height:8px;background:#38a169;border-radius:50%;margin-left:6px}.menu-btn{display:none;background:transparent;font-size:24px;padding:5px}.view{display:none;padding:28px 34px 50px;min-width:0;max-width:100%}.view.active{display:block}.hero{background:linear-gradient(115deg,#113b28,#1d6843);color:#fff;border-radius:22px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);overflow:hidden;position:relative;min-width:0}.hero:after{content:"";position:absolute;width:230px;height:230px;border:45px solid rgba(255,255,255,.05);border-radius:50%;left:-45px;top:-90px}.hero h3{margin:4px 0 8px;font-size:25px}.hero p{margin:0;color:#cfe1d7}.hero .primary{background:#fff;color:var(--green);z-index:1}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:20px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 5px 18px rgba(20,40,30,.035)}.stat small{color:var(--muted)}.stat b{display:block;font-size:24px;margin:8px 0 2px}.stat span{font-size:12px;color:var(--green)}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 5px 18px rgba(20,40,30,.035)}.panel h3{margin:0 0 4px}.panel p{margin:0;color:var(--muted);font-size:13px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto auto;gap:10px;margin-bottom:18px;padding:14px;background:#f8faf9;border-radius:13px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}th{background:#f2f6f3;color:#4d5d55;font-size:12px;text-align:right;padding:12px}td{padding:12px;border-top:1px solid var(--line)}tr:hover td{background:#fbfcfb}.type-tag{display:inline-block;background:var(--pale);color:var(--green);padding:5px 8px;border-radius:7px;font-size:11px;font-weight:800}.cell-actions{display:flex;gap:5px}.cell-actions button{padding:5px 9px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:40px}.amount{font-variant-numeric:tabular-nums;font-weight:800;direction:ltr;text-align:right}
.danger-btn{background:#fff2f2;color:var(--danger);border:1px solid #eccaca}
.attachment-count{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:var(--pale);color:var(--green);font-weight:800}.attachment-picker small,.attachment-add small{color:var(--muted);font-weight:400}.attachments-head{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px}.attachments-head h4{margin:0 0 4px}.attachments-head small{color:var(--muted)}.attachments-list{display:grid;gap:9px}.attachment-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f8faf9}.attachment-item>div:first-child{display:grid;gap:4px;min-width:0}.attachment-item b{overflow-wrap:anywhere}.attachment-item small{color:var(--muted)}.file-link{display:inline-flex;align-items:center;text-decoration:none;border-radius:10px;padding:6px 10px;font-size:12px;font-weight:750}.details-attachments{padding:0 22px 22px;border-top:1px solid var(--line)}.attachment-add{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-top:12px;padding:14px;border:1px dashed #c9dbd0;border-radius:12px}.attachment-add small{grid-column:1/-1}.attachments-empty{padding:20px}
.form-panel{max-width:920px;margin:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 20px}.span-2{grid-column:1/-1}.subgrid{display:grid;grid-template-columns:1fr 1fr;gap:17px 20px;padding:18px;border-radius:14px;background:#f7faf8;border:1px dashed #c9dbd0}.form-actions{display:flex;align-items:center;gap:16px;padding-top:8px}.two-col{display:grid;grid-template-columns:330px 1fr;gap:20px}.report-actions{display:flex;gap:10px;margin:18px 0}.report-summary{display:flex;gap:12px;margin-bottom:14px}.summary-chip{background:#f4f7f5;border-radius:10px;padding:10px 14px;color:var(--muted)}.summary-chip b{color:var(--ink)}
.check-label{display:flex;align-items:center;align-self:end;gap:10px;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;background:#f8faf9}.check-label input{width:18px;height:18px;accent-color:var(--green)}.custody-strip{display:flex;gap:12px;flex-wrap:wrap;margin:-4px 0 20px}.custody-chip{flex:1;min-width:190px;background:#fff8e8;border:1px solid #ecd9ad;border-radius:14px;padding:15px 18px}.custody-chip small{color:#7a6335}.custody-chip b{display:block;font-size:21px;margin-top:5px}.fund-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:20px}.fund-card{background:linear-gradient(130deg,#113b28,#1d6843);color:#fff;border-radius:17px;padding:20px;box-shadow:var(--shadow)}.fund-card small{color:#cfe1d7}.fund-card b{display:block;font-size:27px;margin:9px 0}.fund-card .fund-parts{display:flex;gap:18px;color:#cfe1d7;font-size:12px}.custody-layout{grid-template-columns:360px 1fr}.custody-ledger{margin-top:20px}.movement-in{color:var(--green);font-weight:800}.movement-out{color:var(--danger);font-weight:800}
.permission-fieldset{display:grid;gap:12px;border:1px solid var(--line);border-radius:13px;padding:14px;background:#f8faf9}.permission-fieldset legend{padding:0 8px;color:var(--green);font-weight:800}.permission-group{display:grid;gap:7px;padding-bottom:10px;border-bottom:1px solid var(--line)}.permission-group:last-child{border-bottom:0;padding-bottom:0}.permission-option{display:flex;align-items:center;gap:8px;font-weight:500}.permission-option input{width:17px;height:17px;accent-color:var(--green)}.permission-summary{white-space:normal;min-width:260px}.permission-summary span{display:inline-block;margin:2px 0 2px 5px;padding:4px 7px;border-radius:7px;background:var(--pale);color:var(--green);font-size:11px}.dialog-form{padding:22px;margin:0;max-height:75vh;overflow:auto}.permission-user-name{display:grid;gap:4px;padding:12px 14px;border-radius:11px;background:var(--pale)}.permission-user-name small{color:var(--muted)}
.custody-layout.user-mode{grid-template-columns:1fr}.user-balances{margin-bottom:20px}
.custody-report-panel{margin-top:20px}.final-balances{margin-top:16px;flex-wrap:wrap}.final-balances .summary-chip{border:1px solid var(--line)}
.module-grid{display:grid;grid-template-columns:minmax(390px,1fr) minmax(520px,1.6fr);gap:20px}.module-detail{margin-top:20px}.wide-panel{max-width:1100px}.compact-form{gap:13px 14px}.quick-search{display:flex;gap:9px;margin-bottom:16px;padding:12px;background:#f8faf9;border-radius:12px}.quick-search input{min-width:0}.section-label{font-weight:800;color:var(--green);padding:12px 0 4px;border-bottom:1px solid var(--line)}.module-note{margin:0 0 16px!important;padding:12px 14px;border-radius:11px;background:#fff8e8;color:#6f5b31!important}.entity-attachments{margin-top:20px}.mini-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:0}.mini-stats .stat{padding:15px}.mini-stats .stat b{font-size:19px}.status-badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;background:var(--pale);color:var(--green)}.status-badge.warning{background:#fff3d6;color:#85651c}.status-badge.expired{background:#fff0f0;color:var(--danger)}.status-badge.inactive{background:#eef0ef;color:var(--muted)}.entity-attachments h4{margin:0 0 12px}.employee-transaction-form{grid-template-columns:repeat(3,minmax(140px,1fr)) auto}.attachment-category{color:var(--gold);font-size:11px;font-weight:800}.payroll-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.payroll-actions input{width:auto;min-width:160px}.transaction-extra{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;padding:14px;border:1px solid #d6e3da;border-radius:12px;background:#fff}.advance-schedule-fields{grid-template-columns:repeat(2,minmax(180px,1fr)) minmax(220px,1.5fr)}.calculation-hint{align-self:end;min-height:43px;padding:11px 13px;border-radius:10px;background:var(--pale);color:var(--green);font-size:12px;font-weight:750}.advance-ledger{margin:0 0 18px}.advance-ledger h4{margin:0 0 10px}.advance-balance{color:var(--danger);font-weight:800}.salary-breakdown{display:grid;gap:3px;font-size:11px;color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-bottom:20px}.event-list{display:grid;gap:9px}.event-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fbfcfb}.event-item.expired{border-color:#efb4b4;background:#fff5f5}.event-item.expired .event-date small{color:var(--danger);font-weight:800}.event-item>div:first-child{display:grid;gap:4px}.event-item small{color:var(--muted)}.event-date{display:grid;gap:4px;text-align:left;white-space:nowrap}.event-date span{font-weight:800;color:var(--danger)}.panel-actions{display:flex;gap:9px;flex-wrap:wrap}.vehicles-list-panel{margin-top:0}
[dir="ltr"] .stack{text-align:left}[dir="ltr"] .sidebar nav button,[dir="ltr"] th{text-align:left}[dir="ltr"] .sidebar nav button.active{box-shadow:inset 3px 0 var(--gold)}[dir="ltr"] .local-pill{margin-right:0;margin-left:auto}[dir="ltr"] .local-pill span{margin-left:0;margin-right:6px}[dir="ltr"] .sidebar{direction:ltr}[dir="ltr"] .sidebar nav,[dir="ltr"] .sidebar-foot{direction:ltr}
.toast{position:fixed;z-index:100;left:24px;bottom:24px;max-width:380px;background:#173a28;color:#fff;padding:13px 18px;border-radius:11px;box-shadow:var(--shadow);transform:translateY(100px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}.toast.error{background:var(--danger)}dialog{width:min(720px,92vw);border:0;border-radius:18px;padding:0;box-shadow:0 25px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(12,25,18,.55)}.dialog-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.dialog-head h3{margin:0}.dialog-head button{background:transparent;font-size:26px}.details-grid{padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail{border-bottom:1px solid var(--line);padding-bottom:10px}.detail small{display:block;color:var(--muted);margin-bottom:4px}.detail b{word-break:break-word}
@media(max-width:1200px){.module-grid,.dashboard-grid{grid-template-columns:1fr}.employee-transaction-form{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:1050px){.stats{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr 1fr}.two-col{grid-template-columns:1fr}.app{grid-template-columns:210px 1fr}}
@media(max-width:760px){body.menu-open{overflow:hidden;touch-action:none}.app{display:block;width:100%;overflow:hidden}.sidebar{display:flex;position:fixed;inset:0 0 0 auto;right:0;left:auto;z-index:30;width:min(86vw,320px);max-width:calc(100vw - 46px);height:100dvh;padding:20px 16px;transform:translateX(105%);transition:transform .22s ease;box-shadow:-18px 0 45px rgba(7,28,18,.3);overscroll-behavior:contain}.sidebar.open{right:0;transform:translateX(0)}.sidebar-close{display:grid;place-items:center;position:absolute;top:10px;left:10px;z-index:2;width:38px;height:38px;padding:0;border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-size:27px;line-height:1}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:29;background:rgba(7,25,16,.48);opacity:0;pointer-events:none;transition:opacity .22s ease}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.brand{padding-left:48px}.menu-btn{display:block;flex:0 0 auto}.topbar{min-height:72px;height:auto;padding:12px 14px;gap:12px}.topbar>div:not(.local-pill){min-width:0}.topbar h2{font-size:18px;line-height:1.35;overflow-wrap:anywhere}.local-pill{display:none}.view{padding:16px 12px 36px}.hero{align-items:stretch;gap:18px;flex-direction:column;padding:22px 20px;border-radius:17px}.hero h3{font-size:21px;line-height:1.45}.hero p{font-size:13px;line-height:1.7}.hero .primary{width:100%}.panel{padding:15px;border-radius:14px;min-width:0}.panel-head{align-items:stretch;flex-direction:column;margin-bottom:15px}.stats{grid-template-columns:1fr 1fr;gap:11px;margin:14px 0}.stat{padding:15px;border-radius:13px}.stat b{font-size:21px}.filters,.form-grid,.subgrid,.employee-transaction-form,.transaction-extra{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.report-actions,.quick-search,.payroll-actions,.panel-actions{flex-wrap:wrap}.report-actions>*{flex:1 1 145px}.quick-search input{flex:1 1 100%}.quick-search button,.payroll-actions button,.payroll-actions input,.panel-actions button{flex:1 1 auto;width:auto}.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}table{width:max-content;min-width:100%}.details-grid{grid-template-columns:1fr}.attachment-item,.event-item{align-items:flex-start;flex-direction:column}.attachment-item .cell-actions{width:100%;flex-wrap:wrap}.event-date{text-align:right}.attachment-add{grid-template-columns:1fr}.attachment-add small{grid-column:auto}.report-summary,.custody-strip{align-items:stretch;flex-direction:column}.summary-chip,.custody-chip{width:100%;min-width:0}.permission-summary{min-width:210px}.dialog-form{padding:16px}.dialog-head{padding:15px 16px}}
@media(max-width:480px){.stats{grid-template-columns:1fr}.stat{padding:14px 16px}.hero:after{width:180px;height:180px;border-width:34px}.cell-actions{flex-wrap:wrap}.cell-actions button,.cell-actions .file-link{flex:1 1 auto}.sidebar nav{margin-top:18px}.sidebar nav button{padding:11px 13px}.brand{padding-bottom:20px}.details-grid{padding:16px}.permission-fieldset{padding:12px}}
[dir="ltr"] .sidebar-close{left:auto;right:10px}@media(max-width:760px){[dir="ltr"] .sidebar{right:auto;left:0;transform:translateX(-105%);box-shadow:18px 0 45px rgba(7,28,18,.3)}[dir="ltr"] .sidebar.open{left:0;transform:translateX(0)}[dir="ltr"] .brand{padding-left:8px;padding-right:48px}}
@media print{.sidebar,.topbar,.filters,.report-actions,.panel-head{display:none!important}.app{display:block}.view{display:none!important;padding:0}.view#printable,.view.active#reportsView{display:block!important}.panel{box-shadow:none;border:0;padding:0}.table-wrap{overflow:visible;border:0}table{font-size:10px;white-space:normal}th,td{padding:7px}.report-summary{margin:15px 0}body{background:#fff}}
