:root{--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}body,html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;touch-action:manipulation}.app-shell{min-height:100dvh;width:100%;position:relative}.app-shell,.main-area{height:100dvh;display:flex;max-width:100%;overflow:hidden}.main-area{min-width:0;flex:1 1 auto;flex-direction:column}.content-scroll{min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1 1 auto;padding-bottom:max(32px,var(--sab))}.topbar{padding-top:max(10px,var(--sat))}.footer,.topbar{padding-left:max(16px,var(--sal));padding-right:max(16px,var(--sar))}.footer{padding-bottom:max(16px,var(--sab))}.grid-wrapper,.table-responsive,.table-scroll,.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;position:relative}@media (max-width:1024px){.table-responsive .data-table,.table-scroll .data-table,.table-wrap .data-table{min-width:720px}}.grid-wrapper::-webkit-scrollbar,.table-responsive::-webkit-scrollbar,.table-scroll::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{height:6px}.grid-wrapper::-webkit-scrollbar-thumb,.table-responsive::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:rgba(47,182,163,.4);border-radius:4px}@media (min-width:769px){.table-responsive .data-table thead th,.table-wrap .data-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2}}#mobileMenuBtn{display:none}@media (max-width:1024px){#mobileMenuBtn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0}.sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;max-width:86vw;height:100dvh;z-index:50;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:0 0 40px rgba(0,0,0,.5);padding-top:max(12px,var(--sat));padding-bottom:max(16px,var(--sab))}.app-shell.mobile-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:45;display:none;opacity:0;transition:opacity .25s ease}.app-shell.mobile-open .sidebar-backdrop{display:block;opacity:1}body.sidebar-locked{overflow:hidden}}@media (max-width:640px){.topbar{padding:max(8px,var(--sat)) 12px 8px;gap:8px}.header-left{gap:8px;flex:1 1 auto;min-width:0}.page-crumb{font-size:12px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-mid,.weather-chip-enhanced{display:none}.header-right{gap:6px}}@media (max-width:768px){.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header-actions{flex-wrap:wrap;gap:8px}.page-header-actions .btn{flex:1 1 auto;justify-content:center}.page-header-actions .btn span{display:inline}.page-header h1{font-size:20px}}@media (max-width:480px){.page-header-actions .range-select,.page-header-actions select{width:100%}}.nav-capsule-wrapper{width:100%;justify-content:center;padding:0 12px}.nav-capsule-inventory,.nav-capsule-wrapper{max-width:100%;display:flex;box-sizing:border-box}.nav-capsule-inventory{align-items:center;gap:6px;padding:6px 16px;margin:8px 0 6px;width:-moz-fit-content;width:fit-content;background:var(--surface);border:1px solid var(--border);border-radius:40px;box-shadow:0 2px 8px rgba(28,42,66,.06);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav-capsule-inventory::-webkit-scrollbar{display:none}.nav-capsule-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 20px;border-radius:28px;text-decoration:none;white-space:nowrap;font-size:.82rem;font-weight:500;color:var(--text-soft);background:transparent;border:1.5px solid transparent;transition:all .2s ease;flex:0 0 auto}.nav-capsule-icon{font-size:13px;opacity:.85}@media (max-width:768px){.nav-capsule-wrapper{padding:0 8px;justify-content:flex-start}.nav-capsule-inventory{width:100%;max-width:100%;margin:6px 0 4px;padding:4px 6px;border-radius:14px;gap:4px;justify-content:flex-start}.nav-capsule-btn{padding:6px 12px;font-size:.78rem;gap:6px;border-radius:10px;min-height:36px}}@media (max-width:1024px){.nav-quick-panel{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;max-width:calc(100% - 24px);margin-left:auto;margin-right:auto}.nav-quick-panel::-webkit-scrollbar{display:none}.nqp-row{flex:0 0 auto}}@media (max-width:640px){.nav-quick-panel{display:none}}.nqp-dropdown{max-width:calc(100vw - 24px)}@media (max-width:1200px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.kpi-grid{grid-template-columns:1fr}}.chart-card,.chart-grid-1,.chart-grid-2,.chart-grid-3,.chart-grid-timeline,.timeline-card,.transactions-card{min-width:0}@media (max-width:1024px){.chart-grid-2,.chart-grid-3,.chart-grid-timeline{grid-template-columns:1fr}}.chart-canvas-wrap{position:relative;width:100%;min-width:0}@media (max-width:768px){.chart-canvas-wrap{height:260px}.chart-canvas-wrap-sm{height:220px}}@media (max-width:900px){.module-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (max-width:520px){.module-grid{grid-template-columns:1fr}}.modal-overlay{padding:16px;position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:70;display:flex;align-items:center;justify-content:center}.modal-box{max-height:calc(100dvh - 32px);display:flex;flex-direction:column;width:100%;position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.modal-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header-row h3{margin:0;font-size:16px;font-weight:700;color:var(--text)}.modal-drag-handle{display:none}.modal-close-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--text-soft);cursor:pointer;font-size:16px;transition:all .2s ease}.modal-close-btn:hover{background:var(--surface-2);color:var(--text)}.modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;padding:16px 20px}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}@media (max-width:640px){.modal-overlay{padding:0;align-items:flex-end}.modal-box{width:100%;max-width:100%;max-height:88dvh;border-radius:20px 20px 0 0;margin:0;border-bottom:none;padding-bottom:max(16px,var(--sab));animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1)}.modal-drag-handle{display:block;width:36px;height:4px;border-radius:999px;background:var(--border-strong);margin:8px auto 0}.modal-header-row{padding:12px 16px}.modal-body{padding:14px 16px}.modal-actions,.modal-footer{flex-wrap:wrap;gap:8px;padding:12px 16px;border-radius:0}.modal-actions .btn,.modal-footer .btn{flex:1 1 auto;min-height:44px;justify-content:center}}@keyframes modalSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-form-grid .form-group label{min-height:2.4em;line-height:1.2;display:flex;align-items:flex-end}@media (max-width:640px){.form-grid,.form-row{grid-template-columns:1fr}.form-input,.form-select,.form-textarea,input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{font-size:16px}}.gl-filter-bar{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}@media (min-width:1100px){.gl-filter-bar .gl-account-combo{grid-column:span 2}}.gl-filter-actions{display:flex;align-items:end;gap:8px}@media (max-width:640px){.gl-filter-bar{grid-template-columns:1fr}.gl-filter-actions{flex-wrap:wrap}.gl-filter-actions .btn{flex:1 1 auto;justify-content:center}}@media (max-width:768px){.table-header{flex-direction:column;align-items:stretch;gap:12px}.table-toolbar{flex-wrap:wrap;gap:8px}.table-search{flex:1 1 100%}.table-search input{width:100%}.action-bar,.filter-bar{flex-wrap:wrap;gap:8px}.action-bar>*,.filter-bar>*{flex:1 1 160px;min-width:0}.tab-bar,.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}}@media (max-width:768px){.tab-bar::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}.tab,.tab-btn{flex:0 0 auto;white-space:nowrap}}@media (max-width:640px){.table-footer{flex-direction:column;align-items:center;gap:10px;text-align:center}.pagination{flex-wrap:wrap;justify-content:center}.notif-panel{position:fixed;top:auto;right:8px;left:8px;width:auto;max-height:70dvh;overflow-y:auto}.search-modal-box{max-height:80dvh}.search-modal-results{max-height:60dvh;overflow-y:auto}}@media (max-width:480px) and (pointer:coarse){.icon-btn,.icon-btn-sm,.pagination button,.row-delete-btn{position:relative}.icon-btn-sm:after,.icon-btn:after,.pagination button:after,.row-delete-btn:after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}}.data-table td,.data-table th{word-break:normal;overflow-wrap:anywhere}.data-table td.text-right,.data-table th.text-right,.money,.mono{overflow-wrap:normal;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.th-sort-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap}.th-sort-btn i{opacity:.45;font-size:10px}.th-sort-btn:hover i{opacity:.9}.pagination-gap{justify-content:center;width:22px;height:30px;font-size:12.5px}.page-size-label,.pagination-gap{display:inline-flex;align-items:center;color:var(--text-faint)}.page-size-label{gap:6px}.page-size-label select{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:2px 6px;font-size:12px;color:var(--text-soft)}.field-hint{display:block;margin-top:4px;font-size:11.5px;color:var(--text-faint)}.modal-box>.modal-body{flex:1 1 auto;min-height:0}.nav-item.acive{background:var(--sidebar-active-bg);color:var(--sidebar-text-active)}.user-info .user-info{display:flex;flex-direction:column;min-width:0}.user-name,.user-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}img{max-width:100%;height:auto}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media print{.footer,.nav-capsule-inventory,.nav-quick-panel,.page-header-actions,.sidebar,.sidebar-backdrop,.toast-container,.topbar{display:none!important}.app-shell,.content-scroll,.main-area{height:auto!important;overflow:visible!important;display:block!important}}.coming-soon-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:48px 32px;max-width:720px;margin-left:auto;margin-right:auto}.coming-soon-icon{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;font-size:30px;color:var(--primary);background:var(--primary-light)}.coming-soon-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:var(--warning-light);color:#8a6100;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;font-family:var(--font-mono)}.coming-soon-card h2{margin:0;font-size:22px;font-weight:700;color:var(--text)}.coming-soon-lead{margin:0;max-width:52ch;font-size:13.5px;line-height:1.65;color:var(--text-soft)}.coming-soon-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px 24px;gap:10px 24px;width:100%;text-align:left}.coming-soon-list li{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text-soft);line-height:1.5}.coming-soon-list i{color:var(--primary);font-size:13px;margin-top:2px;flex-shrink:0}.coming-soon-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;justify-content:center}@media (max-width:640px){.coming-soon-card{padding:32px 18px}.coming-soon-list{grid-template-columns:1fr}.coming-soon-actions{width:100%}.coming-soon-actions .btn{flex:1 1 auto;justify-content:center}}.login-shell{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#24365333,transparent),var(--bg)}.login-card{width:100%;max-width:380px;padding:32px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-brand>div{display:flex;flex-direction:column;line-height:1.2}.login-brand strong{font-size:15px;color:var(--text)}.login-brand span{font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--text-faint);font-family:var(--font-mono)}.login-card h2{margin:0 0 4px;font-size:20px;color:var(--text)}.login-sub{margin:0 0 20px;font-size:13px;color:var(--text-soft)}.login-card .form-group{margin-bottom:14px}.login-card label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:600;color:var(--text-soft)}.login-card input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:14px}.login-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.login-error{margin:0 0 12px;font-size:12.5px;color:var(--danger)}.login-submit{width:100%;justify-content:center;margin-top:6px}@media (max-width:420px){.login-card{padding:24px 20px;box-shadow:none;border:none;background:transparent}}.grid-hint{margin:12px 0 0;font-size:12px;color:var(--text-faint);line-height:1.6}.grid-hint i{margin-right:6px;color:var(--primary)}@media (max-width:768px){.journal-grid{min-width:980px}.grid-toolbar{flex-wrap:wrap;gap:6px;padding:8px}.grid-toolbar .btn{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 6px);min-height:38px;justify-content:center}}.autocomplete-list.autocomplete-inline{position:fixed;min-width:240px;max-width:320px;z-index:200}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:8px 16px;gap:8px 16px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);max-height:180px;overflow-y:auto}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-soft);cursor:pointer}.checkbox-row input{width:auto;margin:0;accent-color:var(--primary)}@media (max-width:640px){.checkbox-grid{grid-template-columns:1fr}}.amount-negative{color:var(--danger);font-weight:600}.amount-positive{font-weight:600}.amount-positive,.summary-box h2.tone-success{color:var(--emerald-dark)}.summary-box h2.tone-danger{color:var(--danger)}.summary-box h2.tone-warning{color:var(--warning)}.report-section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text)}.report-note{margin:12px 0 0;font-size:12px;color:var(--text-faint);line-height:1.6}.statement-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}@media (max-width:900px){.statement-columns{grid-template-columns:1fr}}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px 24px;gap:12px 24px}.detail-item{display:flex;flex-direction:column;gap:2px}.detail-item dt{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);font-family:var(--font-mono)}.detail-item dd{margin:0;font-size:13.5px;font-weight:600;color:var(--text)}.meter{position:relative;height:6px;background:var(--surface-2);overflow:hidden;min-width:80px}.meter,.meter-fill{border-radius:999px}.meter-fill{position:absolute;inset:0 auto 0 0;background:var(--primary);transition:width .3s ease}.meter-fill.warning{background:var(--warning)}.meter-fill.danger{background:var(--danger)}.header-profile-container{position:relative;display:flex;align-items:center}.header-profile-btn{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:30px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);cursor:pointer;color:#ffffff;transition:all .2s ease;font-family:var(--font)}.header-profile-btn.active,.header-profile-btn:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}.header-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#ef4444);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.2)}.header-avatar.large{width:44px;height:44px}.header-user-details{display:flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.15}.header-user-name{font-size:.78rem;font-weight:600;color:#f8fafc;white-space:nowrap}.header-user-role{font-size:.62rem;color:#94a3b8;text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.4px}.header-profile-chev{font-size:10px;color:#94a3b8;transition:transform .2s ease;margin-left:2px}.header-profile-chev.open{transform:rotate(180deg)}.header-profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:250px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 36px rgba(15,23,42,.3);padding:12px;z-index:80;animation:popIn .18s cubic-bezier(.16,1,.3,1)}.profile-dropdown-header{display:flex;align-items:center;gap:12px;padding:4px 4px 8px}.profile-dropdown-user{display:flex;flex-direction:column;min-width:0}.profile-name{font-size:.88rem;font-weight:700;color:var(--text)}.profile-email,.profile-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-email{font-size:.72rem;color:var(--text-soft)}.profile-badge{display:inline-block;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:var(--surface-2);color:var(--primary);margin-top:4px;width:-moz-fit-content;width:fit-content}.profile-dropdown-divider{height:1px;background:var(--border);margin:8px 0}.profile-dropdown-links{display:flex;flex-direction:column;gap:2px}.profile-dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text-soft);font-size:.8rem;font-weight:500;text-decoration:none;transition:all .15s ease}.profile-dropdown-item:hover{background:var(--surface-2);color:var(--text)}.profile-dropdown-logout{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:var(--danger);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease}.profile-dropdown-logout:hover{background:rgba(239,68,68,.1)}@media (max-width:768px){.header-profile-chev,.header-user-details{display:none}.header-profile-btn{padding:2px;border-radius:50%;background:transparent;border:none}.header-profile-dropdown{right:-4px;width:230px}}.sync-chip{gap:6px;white-space:nowrap;border:1px solid transparent}.sync-chip-busy{background:rgba(59,130,246,.16);border-color:rgba(59,130,246,.4);color:#bfdbfe}.sync-chip-warn{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.45);color:#fde68a}.sync-chip-error{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.5);color:#fecaca}@media (max-width:1100px){.sync-chip strong{display:none}}@media (prefers-reduced-motion:reduce){.sync-chip .fa-spin{animation:none}}.coa-tree-nested{max-height:none;overflow:visible;padding:4px 0}