:root{--ob-bg: #f4f6f8;--ob-surface: #ffffff;--ob-surface-alt: #f9fafb;--ob-border: #dde3e8;--ob-border-strong: #c4ccd4;--ob-text: #1c2530;--ob-text-muted: #5b6b79;--ob-text-faint: #8b98a3;--ob-primary: #146c4b;--ob-primary-hover: #0f5a3d;--ob-primary-bg: #e7f3ec;--ob-danger: #b3261e;--ob-danger-bg: #fbe9e7;--ob-warning: #92600a;--ob-warning-bg: #fdf3dd;--ob-info-bg: #eaf1fb;--ob-info: #1a5296;--ob-nav-bg: #16232b;--ob-nav-bg-hover: #223440;--ob-nav-text: #cfd8dc;--ob-nav-text-active: #ffffff;--ob-focus: #2f7ec9;--ob-radius: 6px;--ob-shadow: 0 1px 2px rgba(20, 30, 40, .08);--ob-shadow-lg: 0 8px 24px rgba(20, 30, 40, .18);--ob-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ob-mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--ob-font);font-size:14px;color:var(--ob-text);background:var(--ob-bg);-webkit-font-smoothing:antialiased}a{color:var(--ob-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit}table{border-collapse:collapse}h1,h2,h3,h4{margin:0;font-weight:600}input,select,textarea{font-family:inherit;font-size:inherit}.ob-app{display:flex;min-height:100vh}.ob-nav{width:220px;flex-shrink:0;background:var(--ob-nav-bg);color:var(--ob-nav-text);display:flex;flex-direction:column;padding:12px 0;overflow-y:auto}.ob-nav-brand{padding:8px 16px 16px;font-weight:700;font-size:16px;color:#fff;letter-spacing:.02em}.ob-nav-group{margin-bottom:4px}.ob-nav-group-title{padding:10px 16px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#7f8e97}.ob-nav-link{display:block;padding:7px 16px;color:var(--ob-nav-text);border-left:3px solid transparent;font-size:13.5px}.ob-nav-link:hover{background:var(--ob-nav-bg-hover);text-decoration:none}.ob-nav-link.active{background:var(--ob-nav-bg-hover);color:var(--ob-nav-text-active);border-left-color:var(--ob-primary);font-weight:600}.ob-main{flex:1;display:flex;flex-direction:column;min-width:0}.ob-topbar{height:52px;flex-shrink:0;background:var(--ob-surface);border-bottom:1px solid var(--ob-border);display:flex;align-items:center;gap:12px;padding:0 16px}.ob-topbar-search{flex:1;max-width:420px}.ob-topbar-spacer{flex:1}.ob-content{flex:1;padding:20px 24px 60px;overflow-y:auto}.ob-select,.ob-input,.ob-textarea{border:1px solid var(--ob-border-strong);border-radius:var(--ob-radius);padding:6px 9px;background:var(--ob-surface);color:var(--ob-text)}.ob-input:focus,.ob-select:focus,.ob-textarea:focus,.ob-input-money:focus{outline:2px solid var(--ob-focus);outline-offset:-1px}.ob-input-money{text-align:right;font-variant-numeric:tabular-nums}.ob-input-invalid,.ob-input-invalid:focus{border-color:var(--ob-danger);outline-color:var(--ob-danger)}.ob-money-input-wrap{display:inline-flex;flex-direction:column;gap:2px;width:100%}.ob-field-error{font-size:11.5px;color:var(--ob-danger);text-align:left}.ob-field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.ob-field label{font-size:12.5px;color:var(--ob-text-muted);font-weight:600}.ob-field-row{display:flex;gap:16px;flex-wrap:wrap}.ob-field-row>.ob-field{flex:1;min-width:160px}.ob-hint{font-size:11.5px;color:var(--ob-text-faint)}.ob-error-text{font-size:12px;color:var(--ob-danger)}.ob-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ob-border-strong);background:var(--ob-surface);color:var(--ob-text);border-radius:var(--ob-radius);padding:7px 14px;font-weight:600;cursor:pointer;line-height:1.2}.ob-btn:hover{background:var(--ob-surface-alt)}.ob-btn:disabled{opacity:.5;cursor:not-allowed}.ob-btn-primary{background:var(--ob-primary);border-color:var(--ob-primary);color:#fff}.ob-btn-primary:hover{background:var(--ob-primary-hover)}.ob-btn-danger{background:var(--ob-danger);border-color:var(--ob-danger);color:#fff}.ob-btn-danger:hover{background:#93201a}.ob-btn-link{border:none;background:none;color:var(--ob-primary);padding:0;font-weight:600}.ob-btn-sm{padding:3px 9px;font-size:12.5px}.ob-card{background:var(--ob-surface);border:1px solid var(--ob-border);border-radius:8px;box-shadow:var(--ob-shadow)}.ob-card-pad{padding:16px 18px}.ob-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.ob-page-header h1{font-size:19px}.ob-page-actions{display:flex;gap:8px;align-items:center}.ob-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.ob-table{width:100%;font-size:13.5px}.ob-table th,.ob-table td{padding:8px 10px;border-bottom:1px solid var(--ob-border);text-align:left}.ob-table th{color:var(--ob-text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;background:var(--ob-surface-alt);position:sticky;top:0}.ob-table tbody tr:hover{background:var(--ob-surface-alt)}.ob-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ob-table-wrap{overflow-x:auto;border:1px solid var(--ob-border);border-radius:8px;background:var(--ob-surface)}.ob-clickable-amount{cursor:pointer;color:var(--ob-primary)}.ob-clickable-amount:hover{text-decoration:underline}.ob-tabs{display:flex;gap:2px;border-bottom:1px solid var(--ob-border);margin-bottom:14px}.ob-tab{padding:8px 14px;border:none;background:none;cursor:pointer;color:var(--ob-text-muted);font-weight:600;border-bottom:2px solid transparent;font-size:13.5px}.ob-tab.active{color:var(--ob-primary);border-bottom-color:var(--ob-primary)}.ob-tab .count{color:var(--ob-text-faint);font-weight:400;margin-left:4px}.ob-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.ob-badge-neutral{background:#eceff1;color:#4a5964}.ob-badge-success{background:var(--ob-primary-bg);color:var(--ob-primary)}.ob-badge-warning{background:var(--ob-warning-bg);color:var(--ob-warning)}.ob-badge-danger{background:var(--ob-danger-bg);color:var(--ob-danger)}.ob-badge-info{background:var(--ob-info-bg);color:var(--ob-info)}.ob-empty{text-align:center;padding:48px 20px;color:var(--ob-text-muted)}.ob-empty h3{margin-bottom:6px;color:var(--ob-text)}.ob-error-box{background:var(--ob-danger-bg);border:1px solid #e6b3ae;color:var(--ob-danger);border-radius:8px;padding:12px 14px;margin-bottom:14px;font-size:13px}.ob-notice-box{background:var(--ob-info-bg);border:1px solid #b9d3ee;color:var(--ob-info);border-radius:8px;padding:12px 14px;margin-bottom:14px;font-size:13px}.ob-loading{padding:40px;text-align:center;color:var(--ob-text-muted)}.ob-toast-stack{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:1000}.ob-toast{background:var(--ob-text);color:#fff;padding:10px 16px;border-radius:6px;box-shadow:var(--ob-shadow-lg);font-size:13px;max-width:360px}.ob-toast-error{background:var(--ob-danger)}.ob-toast-success{background:var(--ob-primary)}.ob-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1466;display:flex;align-items:center;justify-content:center;z-index:900}.ob-modal{background:var(--ob-surface);border-radius:10px;box-shadow:var(--ob-shadow-lg);width:480px;max-width:92vw;max-height:88vh;overflow-y:auto}.ob-modal-wide{width:720px}.ob-modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--ob-border)}.ob-modal-body{padding:18px}.ob-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--ob-border)}.ob-close-btn{border:none;background:none;font-size:18px;cursor:pointer;color:var(--ob-text-muted)}.ob-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f144d;z-index:850}.ob-drawer{position:fixed;top:0;right:0;height:100%;width:560px;max-width:92vw;background:var(--ob-surface);box-shadow:var(--ob-shadow-lg);z-index:860;display:flex;flex-direction:column}.ob-drawer-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--ob-border)}.ob-drawer-body{flex:1;overflow-y:auto;padding:16px 18px}.ob-dropdown{position:relative;display:inline-block}.ob-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;background:var(--ob-surface);border:1px solid var(--ob-border);border-radius:8px;box-shadow:var(--ob-shadow-lg);min-width:200px;z-index:500;padding:6px}.ob-dropdown-menu.left{right:auto;left:0}.ob-dropdown-item{display:block;width:100%;text-align:left;padding:7px 10px;border:none;background:none;border-radius:5px;cursor:pointer;font-size:13.5px;color:var(--ob-text)}.ob-dropdown-item:hover,.ob-dropdown-item-active{background:var(--ob-surface-alt)}.ob-dropdown-item:disabled{cursor:default;opacity:.5}.ob-dropdown-sep{height:1px;background:var(--ob-border);margin:5px 4px}.ob-dropdown-label{padding:6px 10px 2px;font-size:11px;color:var(--ob-text-faint);text-transform:uppercase}.ob-role-badge{font-size:10.5px;padding:2px 7px;border-radius:8px;background:#2a3d47;color:#cfe8db;text-transform:capitalize}.ob-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}.ob-kpi{padding:14px 16px}.ob-kpi-label{font-size:12px;color:var(--ob-text-muted);margin-bottom:6px}.ob-kpi-value{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.ob-kpi-sub{font-size:12px;color:var(--ob-text-faint);margin-top:4px}.ob-line-grid{width:100%;border-collapse:collapse}.ob-line-grid th{text-align:left;font-size:11.5px;text-transform:uppercase;color:var(--ob-text-muted);padding:4px 6px}.ob-line-grid td{padding:3px 6px;vertical-align:top}.ob-line-grid input,.ob-line-grid select{width:100%}.ob-totals-bar{display:flex;justify-content:flex-end;gap:24px;padding:10px 6px;font-weight:600}.ob-totals-bar .out-of-balance{color:var(--ob-danger)}.ob-totals-bar .in-balance{color:var(--ob-primary)}.ob-search-input{width:100%;padding:6px 10px;border:1px solid var(--ob-border-strong);border-radius:var(--ob-radius)}.ob-print-only{display:none}@media print{.ob-app>.ob-nav,.ob-topbar,.ob-no-print{display:none!important}.ob-content{padding:0}.ob-print-only{display:block}body{background:#fff}}.ob-form-actions{display:flex;gap:8px;margin-top:16px}.ob-inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.ob-muted{color:var(--ob-text-muted)}.ob-small{font-size:12px}.ob-checkbox-row{display:flex;align-items:center;gap:6px}.ob-diff-zero{color:var(--ob-primary);font-size:22px;font-weight:700}.ob-diff-nonzero{color:var(--ob-danger);font-size:22px;font-weight:700}
