*{box-sizing:border-box}body{color:#1a1d23;background:#f5f6f8;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app-shell{flex-direction:column;height:100vh;display:flex}.app-header{color:#fff;background:linear-gradient(90deg,#1a1d23 0%,#232a42 55%,#1a1d23 100%);align-items:center;gap:24px;padding:12px 24px;display:flex}.app-header .brand{align-items:center;gap:8px;font-weight:600;display:flex}.app-header nav{flex:1;gap:4px;display:flex}.app-header nav a{color:#c8ccd4;border-radius:4px;padding:6px 10px;text-decoration:none;transition:background-color .15s,color .15s}.app-header nav a:hover{color:#fff;background:#ffffff14}.app-header nav a.active{color:#fff;background:#ffffff1f;font-weight:600}.app-header nav a.back-to-dashboard-link{border-right:1px solid #444;margin-right:10px;padding-right:14px}.nav-dropdown{position:relative}.nav-dropdown-trigger{font:inherit;cursor:pointer;color:#c8ccd4;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:6px 10px;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.nav-dropdown-trigger:hover{color:#fff;background:#ffffff14}.nav-dropdown-trigger.active{color:#fff;background:#ffffff1f;font-weight:600}.nav-dropdown-caret{font-size:10px}.nav-badge{color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.nav-dropdown-menu{z-index:30;background:#fff;border-radius:8px;flex-direction:column;gap:2px;min-width:180px;margin-top:4px;padding:6px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 10px 28px #0000002e,0 2px 6px #00000014}.nav-dropdown-right .nav-dropdown-menu{max-height:320px;left:auto;right:0;overflow-y:auto}.nav-dropdown-menu a.nav-dropdown-item{color:#1a1d23;border-radius:6px;padding:7px 10px;font-size:14px;text-decoration:none;transition:background-color .1s;display:block}.nav-dropdown-menu a.nav-dropdown-item:hover{color:#1a1d23;background:#eef1f6}.nav-dropdown-menu a.nav-dropdown-item.active{color:#1a1d23;background:#eef1f6;font-weight:600}.nav-dropdown-menu button.nav-dropdown-item{text-align:left;width:100%;font:inherit;cursor:pointer;color:#1a1d23;background:0 0;border:none;border-radius:6px;padding:7px 10px;font-size:14px;transition:background-color .1s;display:block}.nav-dropdown-menu button.nav-dropdown-item:hover{background:#eef1f6}.nav-dropdown-menu button.nav-dropdown-item.active{background:#eef1f6;font-weight:600}.fy-selector-trigger{white-space:nowrap}.user-info{color:#c8ccd4;align-items:center;gap:10px;font-size:14px;display:flex}.user-info button{color:#fff;cursor:pointer;background:0 0;border:1px solid #444;border-radius:4px;padding:4px 10px;transition:background-color .15s}.user-info button:hover{background:#ffffff14}.app-content{flex-direction:column;flex:1;width:100%;max-width:900px;min-height:0;margin:0 auto;padding:24px;display:flex;overflow-y:auto}.page h2{margin-top:0}.section-heading{margin-top:32px}.section-subheading{color:#444;margin:20px 0 8px;font-size:15px}.enter-book-btn{color:#fff;background:#2563eb;border-radius:6px;margin-top:16px;padding:12px 20px;font-size:15px;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-block}.enter-book-btn:hover{background:#1d4ed8}table{border-collapse:collapse;background:#fff;border-radius:6px;width:100%;overflow:hidden;box-shadow:0 1px 2px #0000000f}th,td{text-align:left;border-bottom:1px solid #eee;padding:10px 12px}th{text-transform:uppercase;letter-spacing:.03em;color:#666;white-space:nowrap;background:#fafafa;font-size:13px}tbody tr{transition:background-color .1s}tbody tr:hover{background:#fafbfc}tbody tr:last-child td{border-bottom:none}.empty-row{text-align:center;color:#999;padding:20px}.datatable-status-row{text-align:center;padding:20px}.datatable-status-row .spinner{vertical-align:middle;border-width:2px;width:14px;height:14px;margin-right:8px}.datatable-status-row .link-btn{margin:0 0 0 8px}.spinner{border:3px solid #dfe3e8;border-top-color:#2563eb;border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spinner-spin;display:inline-block}@keyframes spinner-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:#dfe3e8;animation:none}}.sort-btn{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin:0;padding:0;display:inline-flex}.sort-btn:hover{color:#1a1d23}.sort-arrow{color:#2563eb;width:8px;font-size:9px;display:inline-block}th.num .sort-btn{flex-direction:row-reverse}.inline-form{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.inline-form input{border:1px solid #ccc;border-radius:4px;flex:140px;min-width:0;padding:8px 10px}.inline-form select{border:1px solid #ccc;border-radius:4px;flex:auto;min-width:0;padding:8px 10px}.account-form{grid-template-columns:1fr 1fr 90px 90px;grid-template-areas:"account account contact contact""address address place place""bstype bstype debit credit""actions actions actions actions";gap:6px;display:grid}.field-place{grid-area:place}.field-address{grid-area:address}.field-contact{grid-area:contact}.field-bstype{grid-area:bstype}input,select{font-family:inherit;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:4px;padding:8px 14px;font-size:14px;transition:background-color .15s,opacity .15s}button:hover:not(:disabled){background:#1d4ed8}button:disabled{opacity:.6;cursor:default}table button{padding:5px 10px;font-size:13px}.danger-btn{background:#dc2626!important}.danger-btn:hover:not(:disabled){background:#b91c1c!important}.error-text{color:#dc2626;margin:0;font-size:14px}.info-text{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:10px 12px;font-size:14px}.info-text code{background:#dcfce7;border-radius:4px;padding:2px 6px}.warning-text{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin:0 0 16px;padding:10px 12px;font-size:14px}.warning-text a{color:#92400e;font-weight:600}.error-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:10px 12px;font-size:14px;display:flex}.error-banner button{flex-shrink:0}.member-form{align-items:center;gap:8px;margin-bottom:16px;display:flex}.member-form input{border:1px solid #ccc;border-radius:4px;flex:1;padding:8px 10px}.password-form{flex-direction:column;gap:14px;max-width:320px;display:flex}.password-form label{color:#444;flex-direction:column;gap:4px;font-size:14px;display:flex}.password-form input{border:1px solid #ccc;border-radius:4px;padding:9px 10px;font-size:14px}.password-field{gap:6px;display:flex}.password-field input{flex:1}.password-toggle{color:#444;background:0 0;border:1px solid #ccc;border-radius:4px;padding:0 12px;font-size:13px}.password-toggle:hover:not(:disabled){background:#f3f4f6}.account-card{background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;max-width:420px;margin-bottom:20px;padding:18px 20px}.account-card .section-subheading{margin-top:0}.profile-summary{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:14px;display:grid}.profile-summary dt{color:#666}.profile-summary dd{margin:0;font-weight:500}.profile-businesses-heading{color:#666;text-transform:uppercase;letter-spacing:.03em;margin:16px 0 6px;font-size:13px}.profile-businesses{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.profile-businesses li{border-bottom:1px solid #eee;justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.profile-businesses li:last-child{border-bottom:none}.backup-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.backup-actions button:last-of-type{background:#4b5563}.backup-actions button:last-of-type:hover:not(:disabled){background:#374151}.import-export{margin-top:28px}.bulk-restore-results{margin-top:12px}.bulk-restore-results td{vertical-align:top}.secondary-btn{background:#4b5563}.secondary-btn:hover:not(:disabled){background:#374151}a.secondary-btn{color:#fff;border-radius:4px;padding:8px 14px;font-size:14px;text-decoration:none;transition:background-color .15s;display:inline-block}.table-wrap a.secondary-btn{padding:5px 10px;font-size:13px}.link-btn{color:#2563eb;cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:12px;text-decoration:underline}.link-btn:hover:not(:disabled){color:#1d4ed8;background:0 0}.hint-text{color:#666;margin-top:-4px;font-size:13px}.text-muted{color:#888;font-size:13px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.row-actions{justify-content:flex-end;gap:6px;display:flex}.page.scrollable-page{flex-direction:column;flex:1;gap:10px;min-height:0;font-size:13px;display:flex;overflow:hidden}.page.scrollable-page h2{margin-bottom:0;font-size:18px}.table-wrap{background:#fff;border:1px solid #e0e0e0;border-radius:6px;flex:1;min-height:0;overflow-y:auto;box-shadow:0 1px 2px #0000000f}.table-wrap table{box-shadow:none;background:0 0;border-radius:0;overflow:visible}.table-wrap th,.table-wrap td{padding:5px 10px;font-size:13px}.table-wrap th{z-index:1;position:sticky;top:0}.table-wrap table button{padding:3px 8px;font-size:12px}.table-wrap tbody tr:nth-child(2n) td{background:#f6f7f9}.table-wrap tbody tr:hover td{background:#eef1f6}.table-wrap tbody tr:focus,.table-wrap tbody tr.grid-row-selected{outline:none;box-shadow:inset 0 0 0 2px #2563eb}.table-wrap tbody tr:focus td,.table-wrap tbody tr.grid-row-selected td{background:#eef1f6}.table-wrap .sort-btn:hover{color:#1a1d23;background:0 0}.table-wrap-pinned-footer{overflow:hidden}.table-wrap-pinned-footer table{flex-direction:column;height:100%;display:flex}.table-wrap-pinned-footer thead,.table-wrap-pinned-footer tfoot{table-layout:fixed;flex-shrink:0;width:100%;display:table}.table-wrap-pinned-footer tbody{flex:1;min-height:0;display:block;overflow-y:auto}.table-wrap-pinned-footer thead tr,.table-wrap-pinned-footer tbody tr,.table-wrap-pinned-footer tfoot tr{table-layout:fixed;width:100%;display:table}.table-wrap-pinned-footer thead tr,.table-wrap-pinned-footer tfoot tr{width:calc(100% - var(--scrollbar-w,0px))}.daybook-table th:first-child,.daybook-table td:first-child{width:11%}.daybook-table th:nth-child(2),.daybook-table td:nth-child(2){width:41%}.daybook-table th:nth-child(3),.daybook-table td:nth-child(3),.daybook-table th:nth-child(4),.daybook-table td:nth-child(4){width:10%}.daybook-table th:nth-child(5),.daybook-table td:nth-child(5){width:13%}.daybook-table th:nth-child(6),.daybook-table td:nth-child(6){width:15%}.daybook-table .totals-row td:first-child{width:52%}.daybook-table .totals-row td:nth-child(2),.daybook-table .totals-row td:nth-child(3){width:10%}.daybook-table .totals-row td:nth-child(4){width:13%}.daybook-table .totals-row td:nth-child(5){width:15%}.accounts-table th:first-child,.accounts-table td:first-child{width:43%}.accounts-table th:nth-child(2),.accounts-table td:nth-child(2),.accounts-table th:nth-child(3),.accounts-table td:nth-child(3){width:14%}.accounts-table th:nth-child(4),.accounts-table td:nth-child(4){width:29%}.daybook-form,.account-form{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-shrink:0;padding:10px;font-size:13px}.daybook-form input,.daybook-form select,.account-form input,.account-form select{border:1px solid #ccc;border-radius:4px;padding:5px 8px;font-size:13px}.daybook-form{grid-template-columns:120px 1fr 90px 90px;grid-template-areas:"date account debit credit"".narration narration narration"".categories categories categories""actions actions actions actions";gap:6px;display:grid}.field-date{grid-area:date}.field-account{grid-area:account}.field-debit{grid-area:debit}.field-credit{grid-area:credit}.field-narration{grid-area:narration}.field-categories{grid-area:categories;gap:6px;display:flex}.field-categories>*{flex:1;min-width:0}.field-method{grid-area:method}.field-reference{grid-area:reference}.daybook-form.payments-form{grid-template-areas:"date account debit credit""method narration narration reference""actions actions actions actions"}.daybook-form-actions{grid-area:actions;gap:8px;display:flex}.daybook-form .daybook-form-actions,.account-form .daybook-form-actions{justify-content:flex-end}.daybook-form .daybook-form-actions button,.account-form .daybook-form-actions button{padding:5px 12px;font-size:13px}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:8px;width:480px;max-width:calc(100vw - 32px);padding:20px;box-shadow:0 10px 28px #0000002e,0 2px 6px #00000014}.pdf-modal-card{background:#525659;border-radius:8px;flex-direction:column;width:min(1100px,100vw - 48px);height:calc(100vh - 48px);animation:.15s ease-out pdf-modal-in;display:flex;overflow:hidden;box-shadow:0 10px 28px #0000002e,0 2px 6px #00000014}@keyframes pdf-modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pdf-modal-header{background:#323639;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.pdf-modal-title{color:#d4d6d8;text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:13px;overflow:hidden}.pdf-modal-actions{flex-shrink:0;gap:8px;display:flex}.pdf-modal-body{flex:1;min-height:0;position:relative}.pdf-modal-iframe{background:#fff;border:none;width:100%;height:100%;position:absolute;inset:0}.pdf-modal-loading{color:#6b7280;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:13.5px;display:flex;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.pdf-modal-card{animation:none}}.modal-card h3{margin:0 0 12px;font-size:16px}.modal-card .account-form{box-shadow:none;background:0 0;border:none;padding:0}.modal-card form{flex-direction:column;gap:8px;display:flex}.modal-card form input,.modal-card form select{border:1px solid #ccc;border-radius:4px;padding:5px 8px;font-size:13px}.modal-card .daybook-form-actions button{padding:5px 12px;font-size:13px}.typeahead{position:relative}.typeahead input{width:100%}.typeahead-panel{z-index:30;background:#fff;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 8px 8px;width:max-content;min-width:100%;max-width:360px;margin-top:-1px;margin-left:0;margin-right:0;padding:0;list-style:none;position:absolute;top:100%;left:0;box-shadow:0 10px 28px #0000002e,0 2px 6px #00000014}.typeahead-panel li{color:#1a1d23;cursor:pointer;align-items:baseline;gap:8px;padding:4px 12px;font-size:13px;transition:background-color .1s;display:flex}.typeahead-panel li strong{color:#2563eb;font-weight:700}.typeahead-panel li:hover,.typeahead-panel li.highlighted{background:#eef1f6}.typeahead-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.typeahead-sublabel{color:#888;flex-shrink:0;font-size:12px}.typeahead-empty{color:#999;padding:8px 14px;font-size:13px;font-style:italic}.typeahead-create{color:#2563eb;border-top:1px solid #eee;font-weight:500}.report-tabs{flex-wrap:wrap;gap:8px;display:flex}.report-filter-bar,.report-download-btn{margin-top:16px}.filter-bar{color:#444;flex-shrink:0;align-items:flex-end;gap:12px;font-size:13px;display:flex}.filter-bar input{border:1px solid #ccc;border-radius:4px;margin-left:4px;padding:4px 6px}.filter-bar button{padding:5px 12px;font-size:13px}.filter-bar .typeahead{width:220px}.checkbox-label{color:#444;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.log-filters{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:8px;margin-bottom:14px;padding:10px 14px;display:flex;box-shadow:0 1px 2px #0000000a}.log-filter-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.log-filter-row:first-child{align-items:center}.log-filter-row+.log-filter-row{border-top:1px solid #f0f1f3;padding-top:8px}.log-filter-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:11px;font-weight:600}.chip-group{flex-wrap:wrap;gap:6px;display:flex}.chip{color:#444;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:3px 10px;font-size:12.5px;line-height:1.6;transition:background-color .15s,border-color .15s,color .15s}.chip:hover:not(.chip-active){background:#f9fafb;border-color:#9ca3af}.chip-active{color:#fff;background:#2563eb;border-color:#2563eb}.chip-active:hover{background:#1d4ed8}.log-filter-field{flex-direction:column;gap:2px;font-size:12px;display:flex}.log-filter-field>span{text-transform:uppercase;letter-spacing:.03em;color:#6b7280;font-size:10.5px;font-weight:600}.log-filter-field select,.log-filter-field input{color:#1a1d23;border:1px solid #ccc;border-radius:4px;padding:4px 7px;font-size:13px}.log-filter-date input{width:148px}.log-filter-grow{flex:1;min-width:140px}.log-filter-grow input{width:100%}.log-filter-clear{margin-left:auto;padding:5px 10px;font-size:12.5px}.log-table-wrap th,.log-table-wrap td{padding:6px 10px;font-size:13px}.log-table-wrap .log-when{white-space:nowrap}.pagination{align-items:center;gap:10px;margin-top:12px;display:flex}.pagination-page{color:#444;font-size:13px}.pagination-count{color:#888}.log-details{white-space:pre-wrap;word-break:break-word;color:#555;background:#f6f7f9;border-radius:4px;max-width:480px;max-height:4.5em;padding:4px 6px;font-size:11px;display:block;overflow:auto}.log-details-expanded{max-height:none}input[type=date]{font-variant-numeric:tabular-nums;letter-spacing:.02em;max-width:130px;padding:4px 6px;font-family:inherit;font-size:13px;font-weight:500}.totals-row td{color:#1a1d23;background:#f0f2f5;border-top:2px solid #d8dce2;font-weight:600}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-form{background:#fff;border-radius:8px;flex-direction:column;gap:14px;width:320px;padding:32px;display:flex;box-shadow:0 2px 12px #0000001a}.login-form h1{text-align:center;margin:0 0 8px}.login-form label{color:#444;flex-direction:column;gap:4px;font-size:14px;display:flex}.login-form input{border:1px solid #ccc;border-radius:4px;padding:9px 10px;font-size:14px}.select-business-form{width:380px}.business-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.business-list button{color:#1a1d23;text-align:left;background:#f5f6f8;border:1px solid #e0e0e0;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;font-size:14px;transition:background-color .15s,border-color .15s;display:flex}.business-list button:hover:not(:disabled){background:#eef1f6;border-color:#c8ccd4}.business-list-main{flex-direction:column;gap:2px;display:flex}.business-name{font-weight:600}.business-meta{color:#888;font-size:12px}.business-role{color:#888;text-transform:capitalize;font-size:12px}.select-business-footer{gap:8px;margin-top:4px;display:flex}.select-business-footer button{flex:1}.icon-pagination{justify-content:center;align-items:center;gap:12px;margin-top:2px;display:flex}.icon-btn{color:#1a1d23;background:#f5f6f8;border:1px solid #e0e0e0;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:15px;line-height:1;transition:background-color .15s,border-color .15s;display:inline-flex}.icon-btn:hover:not(:disabled){background:#eef1f6;border-color:#c8ccd4}.dashboard-setup-link{color:#444;background:#fff;border:1px solid #e0e0e0;border-radius:6px;margin-top:10px;padding:8px 14px;font-size:13px;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-block}.dashboard-setup-link:hover{background:#eef1f6;border-color:#c8ccd4}.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px;display:grid}.dashboard-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px 18px;box-shadow:0 1px 2px #0000000a}.dashboard-panel-wide{grid-column:1/-1}.dashboard-panel-heading{text-transform:uppercase;letter-spacing:.04em;color:#888;margin-bottom:10px;font-size:12px}.dash-headline{font-variant-numeric:tabular-nums;font-size:30px;font-weight:600}.dash-positive{color:#166534}.dash-negative{color:#dc2626}.sparkline{width:100%;max-width:320px;height:48px;margin-top:10px}.sparkline-line-up{stroke:#16a34a;stroke-width:2px}.sparkline-line-down{stroke:#dc2626;stroke-width:2px}.sparkline-area-up{fill:#16a34a1a;stroke:none}.sparkline-area-down{fill:#dc26261a;stroke:none}.sparkline-dot-up{fill:#16a34a}.sparkline-dot-down{fill:#dc2626}.dash-bar-row{grid-template-columns:110px 1fr 90px;align-items:center;gap:10px;padding:5px 0;font-size:13px;display:grid}.dash-bar-label{text-overflow:ellipsis;white-space:nowrap;color:#444;overflow:hidden}.dash-bar-track{background:#f0f1f4;border-radius:4px;height:10px;overflow:hidden}.dash-bar-fill{border-radius:4px;height:100%;transition:width .2s}.dash-bar-debit{background:#dc2626}.dash-bar-credit{background:#16a34a}.dash-bar-category{background:#2563eb}.dash-bar-value{text-align:right;font-variant-numeric:tabular-nums;color:#444;white-space:nowrap}@media (width<=700px){.dashboard-grid{grid-template-columns:1fr}}
