:root{--app-bg: #efe9da;--surface: #f6f1e6;--card: #ffffff;--card-border: #eadfce;--row-divider: #f5efe2;--row-hover: #faf6ec;--brand: #1f6f4f;--brand-hover: #1a5e43;--sidebar-bg: #16382a;--sidebar-text: #cdded4;--text: #2b2722;--text-secondary: #6b6258;--text-secondary-2: #7a7166;--text-muted: #8a8170;--text-muted-2: #a99f8c;--text-placeholder: #b3a994;--debit: #2f5e8f;--credit: #1f6f4f;--danger: #b4530f;--attachment-bg: #f0f6f2;--attachment-border: #d7e6dd;--dashed-border: #cabda3;--radius-card: 16px;--radius-modal: 18px;--radius-control: 11px;--radius-badge: 8px;--radius-chip: 999px;--font-ui: "Hanken Grotesk", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", monospace;--sidebar-width: 248px;--content-max-1120: 1120px;--content-max-760: 760px;--content-max-620: 620px;--breakpoint-mobile: 900px}.field{display:block;margin-bottom:16px}.field__label{display:block;font-size:13px;font-weight:700;color:var(--text-secondary);margin-bottom:6px}.field__hint{display:block;font-size:12px;color:var(--text-muted);margin-top:4px}.field__label-optional{font-weight:500;color:var(--text-muted-2)}.field__input,.field__select{width:100%;padding:11px 13px;border:1px solid #ddd4c4;border-radius:var(--radius-control);background:#fff;font-size:15px;font-family:var(--font-ui);outline:none;transition:border-color .15s ease}.field__input:focus,.field__select:focus{border-color:var(--brand)}.field__input--mono{font-family:var(--font-mono)}.field--inline{width:auto;min-width:150px;flex:0 1 auto}.attach__card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--attachment-bg);border:1px solid var(--attachment-border);border-radius:var(--radius-control)}.attach__badge{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-badge);background:var(--brand);color:#fff;font-size:10px;font-weight:800}.attach__meta{flex:1;min-width:0;display:flex;flex-direction:column}.attach__filename{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach__kindsize{font-size:12px;color:var(--text-muted)}.list-row{display:flex;align-items:center;width:100%;background:none;border:none;border-top:1px solid var(--row-divider);padding:13px 18px;font-family:var(--font-ui);text-align:left;cursor:pointer}.list-row:hover{background:var(--row-hover)}.back-link{display:inline-block;background:transparent;border:none;color:var(--brand);font-weight:700;font-size:13.5px;margin-bottom:10px;text-decoration:none;padding:0}.report-table{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-card);overflow:hidden}.report-table__scroll{overflow-x:auto}.report-table__row{display:grid;grid-template-columns:var(--report-cols);gap:10px;padding:12px 18px;align-items:center;border-top:1px solid var(--row-divider)}.report-table__row:first-child{border-top:none}.report-table__row--clickable{width:100%;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.report-table__row--clickable:hover{background:var(--row-hover)}.report-table__head{font-family:var(--font-ui);font-size:12px;font-weight:700;color:var(--text-muted);background:var(--surface);border-top:none;padding:13px 18px}.report-table__band{background:var(--row-hover);font-size:13px;color:var(--text-muted)}.report-table__totals{background:var(--surface);border-top-width:2px;border-top-color:var(--card-border);font-weight:800;font-size:15px}.report-table__name{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-table__meta{color:var(--text-muted-2);font-size:12px;margin-top:1px}.report-table__mono{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary)}.report-table__debit{color:var(--debit);text-align:right;font-family:var(--font-mono);font-size:14px}.report-table__credit{color:var(--credit);text-align:right;font-family:var(--font-mono);font-size:14px}.report-table__balance{text-align:right;font-family:var(--font-mono);font-weight:600;font-size:14px}.report-table__empty{font-family:var(--font-ui);text-align:center;color:var(--text-muted);padding:32px 0}.chip-filter{background:#fff;border:1px solid var(--card-border);border-radius:var(--radius-chip);padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font-ui)}.chip-filter--active{background:var(--brand);color:#fff;border-color:var(--brand)}.auth{display:flex;min-height:100vh;background:var(--sidebar-bg)}@media(max-width:900px){.auth{flex-direction:column}}.auth__brand{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:56px;background:linear-gradient(160deg,#1f6f4f,#15402f);color:#fff}@media(max-width:900px){.auth__brand{display:none}}.auth__brand-copy{max-width:420px}.auth__headline{font-size:34px;font-weight:800;line-height:1.2;letter-spacing:-.5px}.auth__tagline{color:#c8e0d4;font-size:16px;line-height:1.6;max-width:400px;margin-top:14px}.auth__brand-foot{color:#9cc3b1;font-size:13px}.auth__form-panel{flex:1;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:28px}.auth__card{width:100%;max-width:380px}.auth__card-logo{margin-bottom:28px}.auth__title{font-size:25px;font-weight:800;margin:0 0 6px;letter-spacing:-.4px}.auth__subtitle{color:var(--text-secondary-2);margin:0 0 24px;font-size:15px}.auth__forgot{text-align:right;margin-bottom:18px;font-size:13px}.auth__forgot a{color:var(--brand);font-weight:600;text-decoration:none}.auth__switch{margin-top:16px;font-size:13.5px;color:var(--text-secondary);text-align:center}.auth__switch a{color:var(--brand);font-weight:700;text-decoration:none}.page-header{margin-bottom:16px}.page-header__title{font-size:21px;font-weight:800;letter-spacing:-.3px}.page-header__subtitle{color:var(--text-muted);font-size:14px;margin-top:2px}.modal-overlay{position:fixed;inset:0;background:#16382a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;z-index:100;padding:36px 16px;overflow-y:auto}.modal-card{width:100%;max-width:560px;background:var(--surface);border-radius:var(--radius-modal);animation:rise-in .25s ease}@keyframes rise-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.modal-card{animation:none}}.modal-card__header{display:flex;align-items:center;gap:10px;padding:17px 20px;background:#fff;border-bottom:1px solid var(--card-border);border-radius:var(--radius-modal) var(--radius-modal) 0 0}.modal-card__header-body{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.modal-card__close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary)}.modal-card__body{padding:20px}.direction-toggle{display:flex;flex-wrap:wrap;gap:8px}.direction-toggle__btn{flex:1 1 200px;padding:11px 14px;border-radius:var(--radius-control);font-weight:700;font-size:13.5px;border:1px solid var(--card-border);background:#fff;color:var(--text);cursor:pointer;font-family:var(--font-ui)}.direction-toggle__btn--active{background:var(--brand);border-color:var(--brand);color:#fff}.pill-action{display:inline-flex;align-items:center;gap:6px;padding:10px 15px;background:var(--brand);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:14px;font-family:var(--font-ui);text-decoration:none;cursor:pointer}.pill-action:hover{background:var(--brand-hover)}.pill-action__icon{font-size:17px;line-height:1}.field-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.field-row .field__label{margin-bottom:0}.field-link{background:none;border:none;padding:0;font-family:var(--font-ui);font-weight:600;font-size:12.5px;color:var(--brand);cursor:pointer;white-space:nowrap}.field-link:hover{color:var(--brand-hover);text-decoration:underline}.table{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-card);overflow:hidden}.table__empty{padding:40px;text-align:center;color:var(--text-muted);font-size:14px}.status-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#e7f0ea;color:var(--brand)}.status-pill--muted{background:var(--surface);color:var(--text-muted)}.status-pill--info{background:#e8eef5;color:var(--debit)}.type-picker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.type-picker__option{border:1px solid var(--card-border);border-radius:10px;padding:9px 15px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:var(--font-ui);background:#fff;color:var(--text);transition:none}.type-picker__option--active{background:var(--brand);border-color:var(--brand);color:#fff}.type-picker__option--locked{cursor:default;display:inline-block}.journal-table{border:1px solid var(--card-border);border-radius:13px;overflow:hidden}.journal-table__head{display:grid;grid-template-columns:1fr 120px 120px 34px;gap:8px;padding:10px 12px;background:var(--surface);font-size:12px;font-weight:700;color:var(--text-muted)}.journal-table__head span:nth-child(2),.journal-table__head span:nth-child(3){text-align:right}@media(max-width:480px){.journal-table__head{grid-template-columns:1fr auto}.journal-table__head span:nth-child(2),.journal-table__head span:nth-child(3){display:none}}.journal-line{display:grid;grid-template-columns:1fr 120px 120px 34px;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--row-divider)}@media(max-width:480px){.journal-line{grid-template-columns:1fr 1fr 34px;grid-template-areas:"ledger ledger remove" "dr cr remove";row-gap:6px}.journal-line select{grid-area:ledger}.journal-line .journal-line__dr{grid-area:dr}.journal-line .journal-line__cr{grid-area:cr}.journal-line .journal-line__remove{grid-area:remove}}.journal-line__dr,.journal-line__cr{text-align:right;font-family:var(--font-mono)}.journal-add{background:none;border:none;border-top:1px solid var(--row-divider);width:100%;text-align:left;color:var(--brand);font-weight:700;font-size:13.5px;cursor:pointer;padding:9px 12px}.journal-table__totals{display:grid;grid-template-columns:1fr 120px 120px 34px;gap:8px;padding:11px 12px;background:var(--row-hover);border-top:1px solid #ece3d0;align-items:center;font-weight:700;font-size:13.5px;color:var(--text-secondary)}@media(max-width:480px){.journal-table__totals{grid-template-columns:auto 1fr 1fr auto;gap:10px}}.journal-table__totals-dr{text-align:right;font-family:var(--font-mono);color:var(--debit)}.journal-table__totals-cr{text-align:right;font-family:var(--font-mono);color:var(--credit)}.journal-line__remove{background:none;border:none;color:var(--danger);font-size:18px;cursor:pointer}.item-line-table{border:1px solid var(--card-border);border-radius:13px;overflow:hidden;margin-bottom:16px}.item-line-table__head{display:grid;grid-template-columns:1fr 80px 110px 110px 34px;gap:8px;padding:10px 12px;background:var(--surface);font-size:12px;font-weight:700;color:var(--text-muted)}.item-line-table__head span:nth-child(2){text-align:right}.item-line-table__head span:nth-child(3){text-align:right}.item-line-table__head span:nth-child(4){text-align:right}@media(max-width:560px){.item-line-table__head{grid-template-columns:1fr auto}.item-line-table__head span:nth-child(2),.item-line-table__head span:nth-child(3),.item-line-table__head span:nth-child(4){display:none}}.item-line-table__head-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.item-line{display:grid;grid-template-columns:1fr 80px 110px 110px 34px;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--row-divider)}@media(max-width:560px){.item-line{grid-template-columns:1fr 1fr 34px;grid-template-areas:"item item remove" "qty rate rate" "amount amount amount";row-gap:6px}.item-line select{grid-area:item}.item-line .item-line__qty{grid-area:qty}.item-line .item-line__rate{grid-area:rate}.item-line .item-line__amount{grid-area:amount}.item-line .journal-line__remove{grid-area:remove}}.item-line__qty,.item-line__rate{text-align:right;font-family:var(--font-mono)}.item-line__amount{text-align:right;font-family:var(--font-mono);font-size:13.5px;font-weight:600}.item-line-table__totals{display:grid;grid-template-columns:1fr 80px 110px 110px 34px;gap:8px;padding:11px 12px;background:var(--row-hover);border-top:1px solid #ece3d0;align-items:center;font-weight:700;font-size:13.5px;color:var(--text-secondary)}.item-line-table__totals span:nth-child(4){text-align:right;font-family:var(--font-mono)}@media(max-width:560px){.item-line-table__totals{grid-template-columns:auto 1fr}.item-line-table__totals span:nth-child(2),.item-line-table__totals span:nth-child(3),.item-line-table__totals span:nth-child(5){display:none}}.item-line-table__empty-hint{padding:11px 13px;border:1px dashed var(--dashed-border);border-radius:var(--radius-control);color:var(--text-muted);font-size:13.5px;margin-bottom:16px}.item-line-table__empty-hint a{color:var(--brand);font-weight:700}.journal-totals{display:inline-block;font-family:var(--font-mono);font-size:13.5px;font-weight:700;padding:9px 14px;border-radius:10px;background:var(--attachment-bg);color:var(--danger)}.journal-totals--balanced{background:#e7f0ea;color:var(--credit)}.journal-totals__warning{font-family:var(--font-ui);font-weight:400;font-size:12.5px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--app-bg);color:var(--text);font-family:var(--font-ui)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
