:root{--bg:#f3f5f2;--card:#fff;--ink:#20251f;--muted:#687064;--brand:#627747;--brand-dark:#243021;--accent:#84955d;--border:#dfe5dc;--danger:#a83333;--warning:#9b6d12;--success:#39713a;--info:#315f83;--shadow:0 8px 28px rgba(26,35,25,.07)}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.sidebar{background:#141813;color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:11px;align-items:center;margin-bottom:23px;padding:0 5px}.brand-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--accent));display:grid;place-items:center;font-weight:850;letter-spacing:.04em}.brand strong{font-size:14px}.brand small{display:block;color:#9fab97;margin-top:3px;font-size:11px}.nav-group{margin:18px 11px 5px;color:#7f8c7a;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.nav-link{display:flex;padding:10px 11px;border-radius:9px;color:#d6ddd3;margin:2px 0;font-size:13px}.nav-link:hover,.nav-link.active{background:#283025;color:#fff}.sidebar-footer{padding:20px 8px;color:#8f9b8b}
.main{padding:25px 30px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}.topbar h1{margin:0 0 4px;font-size:26px;letter-spacing:-.02em}.actions{display:flex;gap:9px;align-items:center}.user-chip{display:flex;flex-direction:column;text-align:right}.user-chip small{color:var(--muted);font-size:11px}.muted{color:var(--muted)}.small{font-size:12px}.app-footer{padding:28px 0 4px;color:#8a9286;font-size:11px}
.grid{display:grid;gap:15px}.grid.kpi{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow);min-width:0}.card h2,.card h3{margin:0 0 12px}.kpi-card .label{color:var(--muted);font-size:12px;font-weight:700}.kpi-card .value{font-size:29px;font-weight:820;margin-top:6px}.kpi-card .sub{font-size:11px;color:var(--muted);margin-top:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:9px;padding:9px 13px;background:var(--brand);color:white;cursor:pointer;font-weight:700;font-size:13px}.btn:hover{filter:brightness(.96)}.btn.secondary{background:#e8ede5;color:#2d362a}.btn.danger{background:var(--danger)}.btn.warning{background:var(--warning)}.btn.info{background:var(--info)}.btn.sm{padding:6px 9px;font-size:11px}.toolbar{display:flex;gap:9px;justify-content:space-between;align-items:center;margin-bottom:14px}.toolbar .filters{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}label{font-size:12px;font-weight:730;color:#4d5649}input,select,textarea{width:100%;border:1px solid #cdd6c8;border-radius:8px;padding:9px 10px;background:#fff;color:#1e241d;font:inherit}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #d5dec9;border-color:#8ea271}.help{font-size:11px;color:#798174}.section-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:14px}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:11px;background:#fff}table{width:100%;border-collapse:collapse;font-size:12.5px}th,td{padding:10px 9px;border-bottom:1px solid #e9ece7;text-align:left;vertical-align:top;white-space:nowrap}th{font-size:10.5px;text-transform:uppercase;letter-spacing:.045em;color:#5c6557;background:#fafbf9;position:sticky;top:0;z-index:1}tr:last-child td{border-bottom:0}.right{text-align:right}.center{text-align:center}
.badge{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800;background:#e9eee5;color:#46543c}.badge.FULLY_PAID,.badge.APPROVED,.badge.PAID,.badge.CLEARED{background:#dcebd8;color:#2f672c}.badge.PARTIALLY_PAID,.badge.FOR_REVIEW,.badge.FOR_APPROVAL,.badge.PENDING_CLEARING{background:#f5ebcc;color:#80620b}.badge.UNPAID,.badge.DRAFT,.badge.REGISTERED{background:#ecefed;color:#666}.badge.CANCELLED,.badge.BOUNCED,.badge.REVERSED{background:#f2dddd;color:#922e2e}
.flash{padding:11px 14px;border-radius:9px;margin:0 0 14px;font-size:13px}.flash.success{background:#dfeddf;color:#2d6530}.flash.danger{background:#f3dddd;color:#8a2929}.flash.warning{background:#f5ebce;color:#80620b}.notice{padding:13px 15px;border-radius:10px;border:1px solid #e7d9a6;background:#fff8dc;color:#6f590d;margin-bottom:15px}.notice.danger{border-color:#e7bcbc;background:#fff0f0;color:#8f3030}.notice.info{border-color:#bcd4e6;background:#edf7ff;color:#275875}
.split-actions{display:flex;gap:6px;flex-wrap:wrap}.inline{display:inline}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#f0f2ee;padding:2px 5px;border-radius:5px}.tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}.tabs a{padding:7px 10px;border-radius:8px;background:#e9ede7;font-size:12px}.tabs a.active{background:var(--brand);color:#fff}.details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.detail{background:#f8faf7;border:1px solid #e6ebe2;border-radius:9px;padding:10px}.detail small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.detail strong{display:block;margin-top:4px}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#080a08}.login-hero{background:#080a08 url('../images/tiac-branding.png') center/80% auto no-repeat}.login-panel{display:grid;place-items:center;padding:38px;background:#f3f5f2}.login-card{width:min(420px,100%);background:white;border-radius:18px;padding:29px;box-shadow:0 18px 60px rgba(0,0,0,.15)}.login-card h1{margin:0 0 6px}.login-card .brandline{color:var(--brand);font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:20px}
.line-card{border:1px solid var(--border);padding:12px;border-radius:10px;background:#fafbf9;margin-bottom:10px}.line-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.allocation-row{display:grid;grid-template-columns:2fr 1fr;gap:8px}
pre{overflow:auto;background:#151815;color:#e8ede5;padding:13px;border-radius:9px;font-size:11px}
@media(max-width:1050px){.grid.kpi{grid-template-columns:repeat(2,1fr)}.details{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.nav{display:grid;grid-template-columns:repeat(2,1fr)}.nav-group{grid-column:1/-1}.main{padding:18px}.form-grid,.form-grid.three,.grid.two,.grid.three{grid-template-columns:1fr}.topbar{align-items:flex-start}.login-page{grid-template-columns:1fr}.login-hero{display:none}}
@media(max-width:560px){.grid.kpi,.details{grid-template-columns:1fr}.main{padding:13px}.topbar{flex-direction:column}.actions{width:100%;justify-content:space-between}.user-chip{text-align:left}.toolbar{align-items:flex-start;flex-direction:column}.nav{grid-template-columns:1fr}}


/* v1.2 responsive + fast interaction layer */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{min-width:320px;overflow-x:hidden}.main{contain:layout style;max-width:100%}.card{content-visibility:auto;contain-intrinsic-size:1px 260px}.topbar{position:relative}.mobile-menu-btn,.sidebar-overlay{display:none}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}.table-wrap table{min-width:720px}.table-wrap::-webkit-scrollbar{height:10px}.table-wrap::-webkit-scrollbar-thumb{background:#c9d1c5;border-radius:999px;border:2px solid #fff}.btn:disabled{opacity:.62;cursor:wait}.btn.is-loading{pointer-events:none}.btn.is-loading:after{content:"";width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tiac-spin .7s linear infinite}@keyframes tiac-spin{to{transform:rotate(360deg)}}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px 0;flex-wrap:wrap}.pager-meta{font-size:11px;color:var(--muted)}.pager-links{display:flex;gap:5px;flex-wrap:wrap}.pager-link{min-width:34px;height:34px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#fff;border-radius:8px;font-size:11px;font-weight:750;color:#465043}.pager-link:hover{background:#eef2eb}.pager-link.active{background:var(--brand);border-color:var(--brand);color:#fff}.app-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);margin-top:28px}
@media(max-width:1180px){.shell{grid-template-columns:230px minmax(0,1fr)}.sidebar{padding-inline:12px}.main{padding:22px}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){
 body.nav-open{overflow:hidden}.shell{display:block}.main{padding:74px 18px 18px;min-height:100vh}.sidebar{position:fixed!important;inset:0 auto 0 0;width:min(310px,86vw);height:100dvh!important;z-index:1000;transform:translateX(-102%);transition:transform .2s ease;box-shadow:18px 0 45px rgba(0,0,0,.22);padding-top:22px}.nav-open .sidebar{transform:translateX(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(8,12,8,.48);backdrop-filter:blur(2px);z-index:999;opacity:0;visibility:hidden;transition:.2s}.nav-open .sidebar-overlay{opacity:1;visibility:visible}.nav{display:block!important}.nav-group{grid-column:auto}.mobile-menu-btn{display:flex;position:fixed;top:14px;left:14px;width:44px;height:44px;border:1px solid #dce3d9;background:#fff;border-radius:11px;z-index:998;align-items:center;justify-content:center;flex-direction:column;gap:4px;box-shadow:0 6px 20px rgba(25,33,24,.12);cursor:pointer}.mobile-menu-btn span{width:19px;height:2px;background:#2a3428;border-radius:3px}.topbar{min-height:48px;margin-bottom:16px;align-items:flex-start}.topbar-title{padding-left:46px}.topbar h1{font-size:22px}.topbar .muted{font-size:11px}.grid.kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two,.grid.three{grid-template-columns:1fr}.form-grid,.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 .main{padding:70px 12px 14px}.topbar{gap:10px;flex-direction:column}.topbar-title{padding-left:46px;width:100%}.actions{width:100%;justify-content:space-between;padding-left:46px}.user-chip{text-align:left;min-width:0}.user-chip strong,.user-chip small{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid.kpi,.details,.form-grid,.form-grid.three{grid-template-columns:1fr}.kpi-card .value{font-size:25px}.card{padding:14px;border-radius:12px}.toolbar,.section-title{align-items:stretch;flex-direction:column}.toolbar .filters{width:100%}.toolbar .filters input,.toolbar .filters select{min-width:0;flex:1}.toolbar>.btn,.section-title>.btn{width:100%}.btn{min-height:40px}.split-actions{gap:7px}.allocation-row{grid-template-columns:1fr}.tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.tabs a{white-space:nowrap}.app-footer{flex-direction:column;font-size:10px}.pager{align-items:flex-start}.pager-links{width:100%}
 /* Convert data tables to readable mobile cards. JS supplies data-label values. */
 .table-wrap{border:0;background:transparent;overflow:visible}.table-wrap table{min-width:0;width:100%;display:block}.table-wrap thead{display:none}.table-wrap tbody{display:grid;gap:10px}.table-wrap tr{display:block;background:#fff;border:1px solid var(--border);border-radius:11px;padding:7px 11px;box-shadow:0 3px 12px rgba(26,35,25,.04)}.table-wrap td{display:grid;grid-template-columns:minmax(92px,36%) minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-bottom:1px solid #edf0eb;white-space:normal;text-align:left!important;word-break:break-word}.table-wrap td:last-child{border-bottom:0}.table-wrap td:before{content:attr(data-label);font-size:9px;text-transform:uppercase;letter-spacing:.045em;color:#7a8375;font-weight:800;padding-top:2px}.table-wrap td .btn{width:auto;min-height:34px}.table-wrap td .split-actions{justify-content:flex-start}
}
@media(max-width:430px){.main{padding-inline:9px}.mobile-menu-btn{left:9px}.topbar-title,.actions{padding-left:50px}.actions{align-items:flex-start}.actions form .btn{padding-inline:10px}.card{padding:12px}.notice,.flash{font-size:12px}.pager-link{min-width:32px;padding:0 8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
