:root{--color-primary:#0071e3;--color-primary-hover:#0077ed;--color-primary-active:#006edb;--color-primary-soft:#0071e314;--color-primary-ring:#0071e33d;--color-success:#34c759;--color-success-bg:#34c7591f;--color-warning:#ff9f0a;--color-warning-bg:#ff9f0a1f;--color-danger:#ff3b30;--color-danger-bg:#ff3b301a;--color-bg:#f5f5f7;--color-bg-elevated:#fff;--color-surface:#fff;--color-surface-secondary:#fbfbfd;--color-border:#00000014;--color-border-strong:#0000001f;--color-divider:#0000000f;--color-text:#1d1d1f;--color-text-secondary:#6e6e73;--color-text-muted:#aeaeb2;--color-text-inverse:#fff;--sidebar-width:248px;--sidebar-bg:#fbfbfdd1;--sidebar-border:#0000000f;--sidebar-text:#1d1d1f;--sidebar-text-secondary:#6e6e73;--sidebar-hover:#0000000a;--sidebar-active:#0071e31a;--sidebar-active-text:#0071e3;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;--radius-pill:980px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 2px 8px #0000000a, 0 1px 2px #0000000f;--shadow-md:0 8px 24px #00000014, 0 2px 6px #0000000a;--shadow-lg:0 20px 48px #0000001f, 0 8px 16px #0000000f;--shadow-card:0 0 0 1px var(--color-border), var(--shadow-sm);--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", sans-serif;--font-mono:"SF Mono", ui-monospace, "Cascadia Code", monospace;--ease-out:cubic-bezier(.25, .46, .45, .94);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition-fast:.15s var(--ease-out);--transition-base:.22s var(--ease-out);--header-height:52px;--content-max:1200px}*,:before,:after{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%;height:100%}body{min-height:100%;font-family:var(--font-sans);letter-spacing:-.022em;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:15px;font-weight:400;line-height:1.47059}#app{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;letter-spacing:inherit}::selection{background:var(--color-primary-soft);color:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.page{max-width:var(--content-max);animation:pageIn .35s var(--ease-out) both;margin:0 auto}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-header{justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;padding-bottom:0;display:flex}.page-header h1{letter-spacing:-.03em;color:var(--color-text);font-size:2rem;font-weight:700;line-height:1.1}.page-header p{color:var(--color-text-secondary);margin-top:.35rem;font-size:.9375rem;font-weight:400}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.card-header{border-bottom:1px solid var(--color-divider);letter-spacing:-.01em;color:var(--color-text);padding:1.125rem 1.5rem;font-size:.9375rem;font-weight:600}.card-body{padding:1.5rem}.card-body.flush{padding:0}.btn{letter-spacing:-.01em;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.5625rem 1.125rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 1px 3px #0071e34d}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);box-shadow:0 0 0 1px var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-bg)}.btn-ghost{color:var(--color-primary);background:0 0;padding:.5rem .875rem}.btn-ghost:hover:not(:disabled){background:var(--color-primary-soft)}.form-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;margin-bottom:1.5rem;display:grid}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field label{color:var(--color-text-secondary);letter-spacing:-.01em;font-size:.8125rem;font-weight:500}.form-field input,.form-field select,.form-field textarea,.coa-select,.line-input,.balance-input{border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);box-shadow:0 0 0 1px var(--color-border-strong);transition:box-shadow var(--transition-fast), background var(--transition-fast);border:none;padding:.625rem .875rem}.form-field input:hover,.form-field select:hover,.form-field textarea:hover,.coa-select:hover,.line-input:hover,.balance-input:hover{background:var(--color-surface)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.coa-select:focus,.line-input:focus,.balance-input:focus{background:var(--color-surface);box-shadow:0 0 0 1px var(--color-primary), 0 0 0 4px var(--color-primary-ring);outline:none}.filter-bar{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 1.5rem;display:flex}.table-wrap{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);background:var(--color-surface-secondary);border-bottom:1px solid var(--color-divider);white-space:nowrap;padding:.75rem 1.25rem;font-size:.6875rem;font-weight:600}.data-table td{border-bottom:1px solid var(--color-divider);vertical-align:middle;color:var(--color-text);padding:.875rem 1.25rem}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:#0071e308}.data-table tbody tr:last-child td{border-bottom:none}.data-table tfoot td{background:var(--color-surface-secondary);border-top:1px solid var(--color-border-strong);letter-spacing:-.01em;padding:1rem 1.25rem;font-size:.9375rem;font-weight:600}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-family:var(--font-sans);letter-spacing:-.02em}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-pill);align-items:center;padding:.2rem .625rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-posted{background:var(--color-success-bg);color:#248a3d}.badge-draft{background:var(--color-warning-bg);color:#b25000}.badge-reversed{background:var(--color-danger-bg);color:#d70015}.code-tag{font-family:var(--font-mono);background:var(--color-bg);border-radius:var(--radius-xs);color:var(--color-text-secondary);box-shadow:0 0 0 1px var(--color-border);letter-spacing:0;padding:.2rem .5rem;font-size:.75rem;font-weight:500}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:1.75rem;display:grid}.kpi-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform var(--transition-fast), box-shadow var(--transition-fast);padding:1.375rem 1.5rem}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi-card .kpi-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:1rem;display:flex}.kpi-card .kpi-icon svg{width:18px;height:18px}.kpi-card .kpi-label{color:var(--color-text-secondary);letter-spacing:-.01em;font-size:.8125rem;font-weight:500}.kpi-card .kpi-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--color-text);margin-top:.25rem;font-size:1.75rem;font-weight:700;line-height:1.15;display:block}.kpi-card.accent{background:linear-gradient(135deg,#0071e3 0%,#40a9ff 100%);box-shadow:0 4px 20px #0071e359}.kpi-card.accent .kpi-label{color:#ffffffbf}.kpi-card.accent .kpi-value{color:#fff}.kpi-card.accent .kpi-icon{color:#fff;background:#fff3}.kpi-card .kpi-icon.revenue{color:#34c759;background:#34c7591f}.kpi-card .kpi-icon.expense{color:#ff3b30;background:#ff3b301a}.kpi-card .kpi-icon.journal{background:var(--color-primary-soft);color:var(--color-primary)}.kpi-card .kpi-icon.draft{color:#ff9f0a;background:#ff9f0a1f}.alert{border-radius:var(--radius-sm);letter-spacing:-.01em;margin-top:1rem;padding:.875rem 1.125rem;font-size:.875rem;font-weight:500}.alert-success{background:var(--color-success-bg);color:#248a3d}.alert-error{background:var(--color-danger-bg);color:#d70015}.alert-info{background:var(--color-primary-soft);color:var(--color-primary)}.grid-2{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.loading-state{text-align:center;color:var(--color-text-secondary);padding:4rem 2rem;font-size:.9375rem}.loading-state:before{content:"";border:2.5px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;margin:0 auto 1rem;animation:.7s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--color-text-secondary);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:4rem 2rem;font-size:.9375rem}.section-title{letter-spacing:-.02em;color:var(--color-text);margin-bottom:1rem;font-size:1.0625rem;font-weight:600}.form-actions{border-top:1px solid var(--color-divider);justify-content:flex-end;gap:.75rem;margin-top:1.75rem;padding-top:1.5rem;display:flex}@media (width<=900px){.grid-2{grid-template-columns:1fr}.page-header h1{font-size:1.625rem}}@media (width<=768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}}
