:root{--bg: #eef1f7;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #475569;--text-3: #94a3b8;--accent: #4f46e5;--accent-strong: #4338ca;--accent-soft: #eef2ff;--accent-ring: rgba(79, 70, 229, .35);--ok: #059669;--ok-soft: #ecfdf5;--danger: #dc2626;--danger-soft: #fef2f2;--shadow-1: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--shadow-2: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 10px 24px -4px rgba(15, 23, 42, .12);--shadow-3: 0 24px 48px -12px rgba(15, 23, 42, .28);--radius: 16px;--radius-sm: 9px;--font: "Inter Variable", "Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono: "Cascadia Code", "Consolas", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--font);font-size:13.5px;line-height:1.45;color:var(--text);background:radial-gradient(1000px 480px at 85% -10%,rgba(79,70,229,.08),transparent 60%),var(--bg);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:11px;padding:9px 20px;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.brand-mark{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;letter-spacing:.02em;background:linear-gradient(135deg,#6366f1,#4338ca);box-shadow:var(--shadow-1);flex:none}.brand-name{font-weight:650;font-size:13px;letter-spacing:.01em}.brand-sub{font-size:11.5px;color:var(--text-2);margin-top:-2px}.topbar-spacer{flex:1}.fy-pill{font-size:11.5px;font-weight:550;color:var(--accent-strong);background:var(--accent-soft);border:1px solid #e0e7ff;padding:4px 10px;border-radius:999px;white-space:nowrap}.content{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:20px 22px 88px;animation:rise .24s cubic-bezier(.2,.8,.3,1)}.content:has(.master__table--wide){max-width:1280px}.content:has(.ledger-table--wide){max-width:1400px}.content:has(.bank-ledger-table){max-width:1600px}@keyframes rise{0%{opacity:0;transform:translateY(7px)}}@media(prefers-reduced-motion:reduce){.content{animation:none}}.keybar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;gap:20px;padding:8px 16px;background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);z-index:5;flex-wrap:wrap}.keyhint{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:500;color:var(--text);white-space:nowrap}.keybar kbd{font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#818cf8,#4f46e5);border:1px solid #4338ca;border-bottom-width:2px;box-shadow:0 2px 7px -1px #4f46e58c;padding:3px 10px;min-width:27px;border-radius:7px}.keyhint--btn{font-family:var(--font);background:none;border:0;padding:5px 9px;border-radius:9px;cursor:pointer;transition:background .12s ease,color .12s ease}.keyhint--btn:hover{background:var(--accent-soft);color:var(--accent-strong)}.keyhint--btn:hover kbd{background:linear-gradient(135deg,#6366f1,#4338ca)}.keyhint--btn:active{transform:translateY(1px)}.keyhint--muted{opacity:.45}kbd{font-family:var(--font);font-size:11px;font-weight:650;color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;padding:1px 7px;min-width:22px;text-align:center;display:inline-block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.screen-title{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:2px 0 4px}.screen-caption{color:var(--text-2);font-size:13.5px;margin-bottom:18px}.menu-wrap{max-width:460px;margin:9vh auto 0;text-align:center}.menu-card{padding:12px;text-align:left}.menu-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid transparent;transition:background .13s ease,border-color .13s ease,box-shadow .13s ease;cursor:pointer}.menu-item+.menu-item{margin-top:4px}.menu-item--active{background:linear-gradient(135deg,#818cf8,#4f46e5);border-color:var(--accent-strong);box-shadow:0 4px 14px -3px #4f46e58c}.menu-item--active .menu-item__title{color:#fff}.menu-item--active .menu-item__desc{color:#fffc}.menu-item__icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);border:1px solid #e0e7ff;color:var(--accent);flex:none;transition:background .13s ease,color .13s ease,border-color .13s ease}.menu-item--active .menu-item__icon{background:#ffffff38;color:#fff;border-color:#ffffff59}.menu-item__title{font-weight:650;font-size:15.5px}.menu-item__desc{font-size:12.5px;color:var(--text-2)}.menubar{display:flex;align-items:center;gap:14px;padding:0 16px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.menubar__menus{display:flex;align-items:stretch;gap:2px}.menubar__slot{position:relative;display:flex}.menubar__title{display:inline-flex;align-items:center;gap:9px;font-family:var(--font);font-size:14.5px;font-weight:600;color:var(--text-2);background:none;border:0;border-radius:10px;padding:10px 16px;margin:7px 0;cursor:pointer;white-space:nowrap;transition:background .14s ease,color .14s ease,box-shadow .14s ease}.menubar__title:hover{background:var(--surface-2);color:var(--text)}.menubar__title:focus{outline:none}.menubar__title:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.menubar__title--selected{background:linear-gradient(135deg,#818cf8,#4f46e5);color:#fff;box-shadow:0 3px 11px -2px #4f46e58c}.menubar__title--open{background:linear-gradient(135deg,#6366f1,#4338ca);color:#fff;box-shadow:0 3px 11px -2px #4338ca99}.menubar__icon{display:grid;place-items:center;opacity:.85;flex:none}.menubar__title--selected .menubar__icon,.menubar__title--open .menubar__icon{opacity:1}.access-key{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px}.menubar__trailing{margin-left:auto;display:flex;align-items:center;gap:10px}.user-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:4px 11px;white-space:nowrap}.user-chip__dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}.dropdown{position:absolute;top:calc(100% - 3px);left:0;min-width:288px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-3);padding:7px;z-index:40;animation:drop-in .13s cubic-bezier(.2,.9,.3,1.1)}@keyframes drop-in{0%{opacity:0;transform:translateY(-5px)}}@media(prefers-reduced-motion:reduce){.dropdown{animation:none}}.dropdown__item{display:flex;align-items:center;gap:12px;width:100%;font-family:var(--font);font-size:14.5px;font-weight:600;text-align:left;color:var(--text);background:none;border:0;border-radius:10px;padding:10px 12px;cursor:pointer;transition:background .1s ease,color .1s ease}.dropdown__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent-soft);color:var(--accent);flex:none;transition:background .12s ease,color .12s ease}.dropdown__item:hover:not(:disabled),.dropdown__item--focus{background:linear-gradient(135deg,#818cf8,#4f46e5);color:#fff;box-shadow:0 3px 11px -3px #4f46e599}.dropdown__item:hover:not(:disabled) .dropdown__icon,.dropdown__item--focus .dropdown__icon{background:#ffffff38;color:#fff}.dropdown__item:hover:not(:disabled) .dropdown__hint,.dropdown__item--focus .dropdown__hint{color:#ffffffc7}.dropdown__item:disabled{color:var(--text-3);cursor:default}.dropdown__item:focus{outline:none}.dropdown__label{flex:1;white-space:nowrap}.dropdown__hint{font-size:11.5px;font-weight:600;color:var(--text-3);white-space:nowrap;transition:color .12s ease}.dropdown__empty{padding:13px;font-size:13px;color:var(--text-3);text-align:center;white-space:nowrap}.desk{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(900px 480px at 88% -12%,rgba(79,70,229,.1),transparent 60%),var(--bg)}.desk__body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px 36px;animation:rise .24s cubic-bezier(.2,.8,.3,1)}@media(prefers-reduced-motion:reduce){.desk__body{animation:none}}.desk__hint{font-size:13.5px;color:var(--text);margin:0;text-align:center;line-height:2.1}.desk__hint kbd{font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#818cf8,#4f46e5);border:1px solid #4338ca;border-bottom-width:2px;box-shadow:0 2px 7px -1px #4f46e58c;padding:3px 10px;min-width:27px;border-radius:7px;margin:0 3px}.desk__plate{text-align:center;padding:15px 36px;border-radius:var(--radius);background:#fff9;border:1px solid var(--border);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);max-width:100%}.desk__period{font-size:11.5px;font-weight:650;letter-spacing:.09em;color:var(--text-3);font-variant-numeric:tabular-nums}.desk__company{font-size:21px;font-weight:750;letter-spacing:-.015em;margin:4px 0 2px}.desk__date{font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:radial-gradient(900px 520px at 12% -10%,rgba(99,102,241,.16),transparent 60%),radial-gradient(820px 520px at 108% 112%,rgba(79,70,229,.12),transparent 55%),var(--bg)}.login-panel{width:100%;max-width:372px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-2);padding:30px 30px 26px;animation:rise .24s cubic-bezier(.2,.8,.3,1)}@media(prefers-reduced-motion:reduce){.login-panel{animation:none}}.login-title{font-size:19px;font-weight:700;letter-spacing:-.01em;text-align:center;margin:0 0 2px}.login-sub{font-size:12.5px;color:var(--text-2);text-align:center;margin:0 0 20px}.login-form{display:flex;flex-direction:column;gap:14px}.login-group{display:block}.login-label{display:block;font-size:11.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin-bottom:7px}.login-control{position:relative;display:block}.login-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);display:grid;place-items:center;color:var(--text-3);pointer-events:none}.login-input{width:100%;font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:10px;padding:10px 13px 10px 37px;transition:border-color .12s ease,box-shadow .12s ease;-webkit-user-select:text;user-select:text}.login-input--trailing{padding-right:44px}.login-input::placeholder{color:var(--text-3)}.login-input:hover:not(:focus):not(:disabled){border-color:var(--accent)}.login-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.login-input:disabled{background:var(--surface-2);color:var(--text-2)}.login-reveal{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--text-3);cursor:pointer;transition:background .12s ease,color .12s ease}.login-reveal:hover{background:var(--accent-soft);color:var(--accent-strong)}.login-note{font-size:12.5px;font-weight:600;color:#b45309;margin-top:-6px}.login-error{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:550;color:var(--danger);background:var(--danger-soft);border:1px solid #fecaca;border-radius:10px;padding:9px 13px}.login-error svg{flex:none}.login-submit{justify-content:center;padding:11px 18px;font-size:14px;border-radius:10px;margin-top:3px}.login-submit:disabled{opacity:.75;cursor:default}.spinner--light{border-color:#fff6;border-top-color:#fff}.login-foot{font-size:12.5px;color:var(--text-3)}.entry-head{display:flex;align-items:stretch;gap:18px;padding:14px 18px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:4px}.stat__label{font-size:11.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}.stat--right{margin-left:auto;text-align:right}.stat__value{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat__value--muted{color:var(--text-3)}.stat__hint{font-size:12.5px;color:var(--text-3);min-height:19px}.banks-strip{display:flex;gap:8px;flex-wrap:wrap;padding:0 22px 16px}.bank-chip{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);animation:chip-in .18s ease}@keyframes chip-in{0%{opacity:0;transform:scale(.96)}}.bank-chip__name{font-weight:600;color:var(--text-2);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-chip__total{font-weight:650;font-variant-numeric:tabular-nums;color:var(--accent-strong)}.bank-chip__count{color:var(--text-3);font-variant-numeric:tabular-nums}.bank-chip--more{color:var(--text-3)}.datefield{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:650;font-variant-numeric:tabular-nums;padding:6px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease;cursor:pointer}.datefield:hover:not(.datefield--focus){border-color:var(--accent)}.datefield--focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.datefield .ghost{color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;padding:4px 11px;border-radius:999px}.badge--vno{color:var(--accent-strong);background:var(--accent-soft);border:1px solid #e0e7ff}.badge--error{color:var(--danger);background:var(--danger-soft);border:1px solid #fecaca}.table{--cols: 52px 1.6fr 1.3fr .9fr 1fr;border-top:1px solid var(--border);overflow-x:auto}.trow{display:grid;grid-template-columns:var(--cols);align-items:stretch;position:relative;min-width:var(--min-width, 0)}.trow--head{background:var(--surface-2);border-bottom:1px solid var(--border)}.trow--body{border-bottom:1px solid #eef2f7;height:39px}.trow--body:nth-child(2n){background:#fcfdff}.th{padding:8px 12px;font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.td{padding:0 12px;display:flex;align-items:center;gap:8px;min-width:0;font-size:13.5px;border-radius:var(--radius-sm);transition:box-shadow .1s ease,background .1s ease;white-space:nowrap;overflow:hidden}.td--num,.th--num{justify-content:flex-end;text-align:right;font-variant-numeric:tabular-nums}.td--line{color:var(--text-3);font-size:12.5px;font-variant-numeric:tabular-nums;justify-content:center}.td--click{cursor:pointer}.td--click:hover{background:var(--accent-soft)}.td--focus,.td--focus:hover{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.td .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-chip{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 7px;flex:none}.code-chip--warn{color:#b45309;background:#fef3c7;border-color:#fde68a}.code-chip--ok{color:var(--ok);background:var(--ok-soft);border-color:#a7f3d0}.td--focus .code-chip{background:#fff;color:var(--accent-strong);border-color:#dfe4ff}.placeholder{color:var(--text-3);font-size:13px;display:inline-flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap}.placeholder kbd{font-size:10px;padding:0 5px;min-width:18px}.dup-badge{margin-left:auto;font-size:10.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:999px;padding:1px 8px;flex:none}.tfoot{display:flex;align-items:center;padding:11px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius);gap:14px}.tfoot__words{color:var(--text-2);font-size:13px;font-style:italic;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tfoot__total{margin-left:auto;display:flex;align-items:baseline;gap:10px}.tfoot__total-label{font-size:11.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}.tfoot__total-value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.caret{display:inline-block;width:2px;height:1.25em;background:var(--accent);border-radius:1px;vertical-align:text-bottom;animation:blink 1.1s steps(1,end) infinite;flex:none}@keyframes blink{0%,55%{opacity:1}56%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.caret{animation:none}}.overlay{position:fixed;inset:0;background:#0f172a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:10vh 20px 20px;z-index:40;animation:fade .14s ease}@keyframes fade{0%{opacity:0}}.panel{background:var(--surface);border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow-3);width:100%;animation:pop .16s cubic-bezier(.2,.9,.3,1.2);overflow:hidden}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.985)}}@media(prefers-reduced-motion:reduce){.overlay,.panel{animation:none}}.palette{max-width:580px}.palette__search{display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--border);font-size:16px}.palette__search svg{color:var(--text-3);flex:none}.palette__scope{font-size:11.5px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong);background:var(--accent-soft);border:1px solid #e0e7ff;border-radius:6px;padding:2px 8px;flex:none}.palette__list{max-height:380px;padding:7px}.palette__row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;font-size:14.5px;border-left:3px solid transparent;cursor:pointer}.palette__row--active{background:var(--accent-soft);border-left-color:var(--accent)}.palette__row--add{margin-top:4px;border-top:1px dashed var(--border);border-radius:0 0 9px 9px;color:var(--accent-strong);font-weight:600}.palette__row--add:hover{background:var(--accent-soft)}.palette__row--add .code-chip{color:var(--accent-strong);border-color:#dfe4ff;background:#fff}.palette__row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette__empty{padding:26px 16px;text-align:center;color:var(--text-3);font-size:13.5px}.palette__foot{display:flex;align-items:center;gap:16px;padding:10px 16px;border-top:1px solid var(--border);background:var(--surface-2);font-size:12px;color:var(--text-2)}.palette__count{margin-left:auto;font-variant-numeric:tabular-nums}.dropdown-catcher{position:fixed;inset:0;z-index:40}.palette--dropdown{position:fixed;max-width:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-2);animation:drop .12s ease-out}@keyframes drop{0%{opacity:0;transform:translateY(-4px)}}.palette--dropdown .palette__search{margin:8px;padding:8px 11px;border:1px solid var(--border-strong);border-radius:7px;font-size:14px}.palette--dropdown .palette__list{max-height:260px;overflow-y:auto;padding:0 6px 6px}.palette--dropdown .palette__row{padding:7px 10px;font-size:14px;border-radius:6px}.palette--dropdown .palette__foot{display:none}.dialog{max-width:400px;text-align:center;padding:26px 26px 22px}.dialog__icon{width:44px;height:44px;margin:0 auto 12px;border-radius:12px;display:grid;place-items:center}.dialog__icon--accent{color:var(--accent);background:var(--accent-soft)}.dialog__icon--danger{color:var(--danger);background:var(--danger-soft)}.dialog__title{font-size:16.5px;font-weight:700;margin-bottom:6px}.dialog__body{color:var(--text-2);font-size:14px;margin-bottom:20px}.dialog__actions{display:flex;gap:10px;justify-content:center}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-size:14px;font-weight:600;padding:9px 18px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;transition:filter .12s ease,transform .06s ease,background .12s ease}.btn:hover{filter:brightness(1.05)}.btn--ghost:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn--primary{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:var(--accent);color:#fff;box-shadow:0 4px 12px -2px #4f46e566}.btn--danger{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:var(--danger);color:#fff;box-shadow:0 4px 12px -2px #dc262659}.btn--row{padding:4px 12px;font-size:12.5px;border-radius:7px;box-shadow:none}.btn kbd{background:#fff3;border-color:#ffffff59;color:inherit}.btn--ghost kbd{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-2)}.help{max-width:540px}.help__head{padding:18px 22px 12px;font-size:16.5px;font-weight:700}.help__grid{padding:4px 22px 18px;max-height:calc(100vh - 180px);overflow-y:auto}.help__row{display:flex;align-items:center;gap:14px;padding:7px 0;font-size:13.5px;color:var(--text-2);border-bottom:1px solid #f1f5f9}.help__row:last-child{border-bottom:0}.help__keys{min-width:170px;display:flex;gap:4px;flex:none}.help__foot{padding:12px 22px;border-top:1px solid var(--border);background:var(--surface-2);font-size:12.5px;color:var(--text-3);text-align:center}.toast-zone{position:fixed;top:74px;right:24px;z-index:60;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:11px;font-size:13.5px;font-weight:550;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);animation:toast-in .18s cubic-bezier(.2,.9,.3,1.15);pointer-events:auto;cursor:pointer}@keyframes toast-in{0%{opacity:0;transform:translate(14px)}}.toast--ok{color:var(--ok);border-color:#a7f3d0;background:var(--ok-soft)}.toast--error{color:var(--danger);border-color:#fecaca;background:var(--danger-soft)}.toast--info{color:var(--text-2)}.journal-table{--cols: 52px 1.5fr 1.9fr 1fr 1fr}.td--locked{color:var(--text-3);background:repeating-linear-gradient(135deg,transparent,transparent 5px,var(--surface-2) 5px,var(--surface-2) 10px);cursor:default}.td--locked .locked{opacity:.55}.balance-strip{display:flex;align-items:center;gap:10px;padding:0 22px 14px}.badge--ok{display:inline-flex;align-items:center;gap:6px;color:var(--ok);background:var(--ok-soft);border:1px solid #a7f3d0}.cash-table{--cols: 52px 58px 1.4fr 1.6fr 1fr 1fr}.th--centre,.td--centre{justify-content:center;text-align:center}.flag-chip{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;font-family:var(--mono);font-size:12.5px;font-weight:700;border:1px solid transparent}.flag-chip--in{color:var(--ok);background:var(--ok-soft);border-color:#a7f3d0}.flag-chip--out{color:var(--danger);background:var(--danger-soft);border-color:#fecaca}.stat__value--danger{color:var(--danger)}.bank-table{--cols: 52px 58px 1.5fr 1.5fr .9fr 1fr}.pdc-table{--cols: 52px 1.8fr 1fr 1fr 1fr}.dates-table{--cols: 1.2fr .9fr .7fr 1fr}.dates-table .trow--body{height:48px}.trow--click{cursor:pointer}.trow--selected{background:var(--accent-soft)!important;box-shadow:inset 3px 0 0 var(--accent)}.row-delete{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:1;display:grid;place-items:center;width:30px;height:30px;border:1px solid transparent;border-radius:8px;background:none;color:var(--text-3);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease;flex:none}.trow--body:hover .row-delete,.trow--selected .row-delete{opacity:1}.row-delete:hover{background:var(--danger-soft);border-color:#fecaca;color:var(--danger)}.center-note{text-align:center;color:var(--text-3);font-size:13.5px;padding:34px 0}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.master__bar{display:flex;align-items:center;gap:14px;padding:11px 18px}.master__search{display:inline-flex;align-items:center;gap:9px;flex:1;min-width:0;font-size:14px;color:var(--text)}.master__search svg{color:var(--text-3);flex:none}.master__count{display:inline-flex;align-items:center;gap:9px;font-size:12px;color:var(--text-3);white-space:nowrap}.master__table{border-top:1px solid var(--border)}.master__table .trow--body .td:last-child,.dates-table .trow--body .td:last-child{padding-right:44px}.form-panel{width:min(560px,92vw);display:flex;flex-direction:column}.form-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);font-weight:650;font-size:13px}.scan-button{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:5px 10px 5px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--accent-strong);background:var(--surface);border:1px solid var(--accent-ring);border-radius:999px;cursor:pointer}.scan-button:hover:not(:disabled){background:var(--accent-soft)}.scan-button:disabled{opacity:.55;cursor:progress}.scan-button kbd{font-size:10.5px}.form-panel__scope{font-size:11.5px;font-weight:550;color:var(--accent-strong);background:var(--accent-soft);border:1px solid #e0e7ff;padding:3px 9px;border-radius:999px}.form-panel__body{padding:8px 0}.overlay:has(>.form-panel,>.scan-modal>.form-panel){padding-top:3vh;padding-bottom:3vh}.overlay .form-panel{max-height:94vh}.overlay .form-panel__head,.overlay .form-panel__foot{flex-shrink:0}.overlay .form-panel__body{flex:1 1 auto;min-height:0;overflow-y:auto}.form-panel__foot{display:flex;align-items:center;gap:16px;padding:10px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius)}.form-panel__hint{flex:1;min-width:0;font-size:12px;color:var(--text-2)}.formrow{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:14px;padding:9px 18px;cursor:pointer;border-left:3px solid transparent}.formrow:hover{background:var(--surface-2)}.formrow--focus,.formrow--focus:hover{background:var(--accent-soft);border-left-color:var(--accent)}.formrow--derived,.formrow--derived:hover{background:var(--surface-2);cursor:default}.formfield__derived{font-weight:650;font-variant-numeric:tabular-nums;color:var(--text-2)}.formrow__label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.formrow--focus .formrow__label{color:var(--accent-strong)}.formrow__req{color:var(--danger);margin-left:3px}.formrow__value{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:22px;font-size:14px}.formrow__line{display:flex;align-items:center;gap:9px;min-width:0}.datemask{cursor:text}.datepick{position:relative;display:inline-flex}.datepick__btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;color:var(--text-3);background:none;border:1px solid transparent;border-radius:6px;cursor:pointer}.datepick__btn:hover{color:var(--accent-strong);background:var(--surface-2);border-color:var(--border)}.datepick__input{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;border:0;padding:0}.formrow__note{font-size:11.5px;line-height:1.4;color:var(--text-3)}.formrow .ghost{color:var(--text-3)}.formfield__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.formfield__pick{font-weight:600}.formfield__arrows{font-size:10.5px;font-weight:650;letter-spacing:.06em;color:var(--accent-strong);background:#fff;border:1px solid #dfe4ff;border-radius:999px;padding:1px 7px;margin-left:8px;flex:none}.side-chip{display:inline-flex;align-items:center;font-size:12px;font-weight:700;letter-spacing:.04em;border-radius:6px;padding:2px 9px;border:1px solid transparent}.side-chip--dr{color:#1d4ed8;background:#eff6ff;border-color:#dbeafe}.side-chip--cr{color:#b45309;background:#fffbeb;border-color:#fde68a}.content:has(.holiday){max-width:1280px}.holiday{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}.holiday__bar{display:flex;align-items:center;flex-wrap:wrap;gap:28px;padding:14px 18px;border-bottom:1px solid var(--border)}.holiday__pick{display:flex;align-items:center;gap:8px}.holiday__pick-label{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-right:4px}.holiday__pick-value{font-size:17px;font-weight:700;min-width:52px;text-align:center}.holiday__pick-value--month{min-width:110px}.holiday__arrow{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:7px;width:28px;height:28px;font-size:11px;cursor:pointer}.holiday__arrow:hover{border-color:var(--accent);color:var(--accent)}.holiday__status{margin-left:auto;display:flex;align-items:center;gap:10px}.holiday__months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;padding:12px 18px;border-bottom:1px solid var(--border)}.holiday__month{position:relative;border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:8px;padding:6px 0;font-size:12.5px;font-weight:600;cursor:pointer}.holiday__month:hover{border-color:var(--accent)}.holiday__month--on{background:var(--accent);border-color:var(--accent);color:#fff}.holiday__month-count{position:absolute;top:-7px;right:-5px;min-width:17px;height:17px;border-radius:999px;background:#f59e0b;color:#fff;font-size:10.5px;line-height:17px;text-align:center;padding:0 4px}.holiday__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:16px 18px}.holiday__dow{text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding-bottom:2px}.holiday__dow--weekend{color:#f87171}.holiday__day{height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:7px 9px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.holiday__day:hover{border-color:var(--accent)}.holiday__day--weekend{background:var(--surface-2);color:var(--text-3)}.holiday__day--today .holiday__day-num{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.holiday__day--on{background:#fef3c7;border-color:#f59e0b;color:#92400e}.holiday__day--cursor{outline:2px solid var(--accent);outline-offset:1px}.holiday__day-num{font-size:15px;font-weight:700}.holiday__day-tag{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.holiday__blank{height:64px}.holiday__side-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:700;border-bottom:1px solid var(--border)}.holiday__list{list-style:none;margin:0;padding:6px;max-height:520px;overflow-y:auto}.holiday__item{width:100%;display:flex;justify-content:space-between;border:0;background:transparent;padding:8px 10px;border-radius:8px;font-size:13.5px;color:var(--text);cursor:pointer}.holiday__item:hover,.holiday__item--on{background:var(--accent-soft)}.holiday__item-dow{color:var(--text-3);font-size:12.5px}@media(max-width:900px){.holiday{grid-template-columns:1fr}.holiday__months{grid-template-columns:repeat(6,minmax(0,1fr))}.holiday__day,.holiday__blank{height:48px}}.picker{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;align-items:start}@media(max-width:780px){.picker{grid-template-columns:1fr}}.picker__pane{padding-bottom:6px;box-shadow:var(--shadow-1);transition:box-shadow .12s ease,border-color .12s ease}.picker__pane--active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring),var(--shadow-1)}.picker__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;border-bottom:1px solid var(--border);font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}.picker__scope{text-transform:none;letter-spacing:0;font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker__row{display:flex;align-items:center;gap:11px;padding:10px 16px;cursor:pointer;border-left:3px solid transparent}.picker__row:hover{background:var(--surface-2)}.picker__row--selected,.picker__row--selected:hover{background:var(--accent-soft);border-left-color:var(--accent)}.picker__icon{color:var(--text-3);display:flex;flex:none}.picker__row--selected .picker__icon{color:var(--accent)}.picker__body{display:flex;flex-direction:column;min-width:0;flex:1}.picker__name{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker__meta{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.single-form{max-width:640px}.single-form__head{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border)}.single-form__title{font-weight:650;font-size:13px;flex:1}.single-form__year{font-size:11.5px;font-weight:550;color:var(--accent-strong);background:var(--accent-soft);border:1px solid #e0e7ff;padding:3px 9px;border-radius:999px;white-space:nowrap}.desk__warn{max-width:540px;margin:22px auto 0;text-align:center;font-size:13px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm);padding:10px 16px}.prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:58vh;padding:24px 0;text-align:center}.prompt__title{margin:0;font-size:22px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}.prompt__caption{margin:-10px 0 0;max-width:52ch;color:var(--text-2)}.prompt__body{display:flex;flex-direction:column;align-items:center;gap:18px;width:min(560px,100%)}.prompt__row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 14px}.prompt__label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.prompt__date{display:inline-flex;align-items:center;justify-content:center;gap:1px;min-width:148px;padding:9px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--mono);font-size:15px;letter-spacing:.06em;cursor:pointer}.prompt__date:hover:not(.prompt__date--focus){border-color:var(--accent)}.prompt__date--focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.prompt__date .ghost{color:var(--text-3)}.prompt__box{position:relative;width:100%;padding:10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1)}.prompt__box-title{position:absolute;top:-9px;left:50%;transform:translate(-50%);padding:0 10px;background:var(--bg);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}.prompt__list{max-height:46vh;overflow-y:auto;text-align:left}.prompt__item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 12px;border-radius:var(--radius-sm);cursor:pointer}.prompt__item--active{background:var(--accent);color:#fff}.prompt__item-name{font-weight:500}.prompt__item-hint{font-family:var(--mono);font-size:11px;color:var(--text-3)}.prompt__item--active .prompt__item-hint{color:#ffffffbf}.prompt__empty{padding:18px;text-align:center;color:var(--text-3)}.prompt__note{margin:0;font-size:12px;color:var(--text-3)}.prompt__foot{display:flex;gap:22px;font-size:12px;color:var(--text-3)}.report-warn{margin:0 0 12px;padding:10px 14px;border:1px solid #fcd34d;border-left-width:3px;border-radius:var(--radius-sm);background:#fffbeb;color:#92400e}.report-warn p{display:flex;align-items:flex-start;gap:8px;margin:0}.report-warn p+p{margin-top:6px}.report-section+.report-section{margin-top:18px}.report-section__head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;padding:8px 12px;border-bottom:1px solid var(--border-strong)}.report-section__name{font-weight:600;letter-spacing:.02em}.report-section__sum{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--text-2)}.pl-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:900px){.pl-grid{grid-template-columns:1fr}}.trow--opening,.trow--total{background:var(--surface-2)!important;font-weight:600}.trow--total{border-top:1px solid var(--border-strong)}.letter{max-width:900px;margin:0 auto}.letter__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--border-strong);font-size:15px}.letter-text{margin-bottom:14px;padding:10px 12px;border:1px dashed transparent;border-radius:var(--radius-sm);white-space:pre-wrap;cursor:text}.letter-text:hover{border-color:var(--border-strong);background:var(--surface-2)}.letter-editor{display:block;width:100%;margin-bottom:14px;padding:10px 12px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);font:inherit;color:inherit;resize:vertical;box-shadow:0 0 0 3px var(--accent-ring)}.letter__subject{margin:0 0 14px;padding:0 12px;font-weight:600}.letter__sign{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:42px;padding:0 12px}.letter__rule{display:block;width:200px;margin-top:34px;border-top:1px solid var(--text-2)}.print-head{display:none}.scan-button{white-space:nowrap}a.scan-button{text-decoration:none}.scan-button+.scan-button,.scan-button+input+.scan-button{margin-left:0}.form-panel__head>span:first-child{white-space:nowrap}.content:has(.scan-layout--open){max-width:1560px}.scan-layout--open{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.scan-modal{display:flex;gap:16px;align-items:flex-start;max-width:96vw}.scan-modal .scan-preview{width:min(560px,44vw)}.scan-preview{padding:0;overflow:hidden;position:sticky;top:12px}.scan-preview__head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.scan-preview__title{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-preview__open{color:var(--accent);font-weight:550;text-decoration:none;white-space:nowrap}.scan-preview__open:hover{text-decoration:underline}.scan-preview__close{border:none;background:none;font-size:20px;line-height:1;color:var(--text-3);cursor:pointer;padding:0 2px}.scan-preview__close:hover{color:var(--text)}.scan-preview__img{display:block;width:100%;max-height:72vh;object-fit:contain;background:var(--surface-2);cursor:zoom-in}.scan-preview__pdf{display:block;width:100%;height:72vh;border:none;background:var(--surface-2)}@media(max-width:1100px){.scan-layout--open{grid-template-columns:1fr}.scan-modal{flex-direction:column;max-height:92vh;overflow:auto}.scan-modal .scan-preview{width:min(560px,92vw);position:static}}.import__file .datefield{display:inline-flex;align-items:center;gap:8px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import__bad{color:var(--danger)}.import__columns{color:var(--text-2);font-size:12.5px;margin:14px 2px 8px}.import__new{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text);margin:0 2px 10px}.content:has(.import__table){max-width:1560px}.import__card{padding:0;max-height:56vh;overflow:auto}.import__table .trow--head{position:sticky;top:0;z-index:1}.import__row--bad{background:var(--danger-soft)!important}.import__status--ok{color:var(--ok);font-weight:600}.import__status--bad{color:var(--danger);font-size:12.5px;white-space:normal;line-height:1.3;padding-top:6px;padding-bottom:6px}.import__table .trow--body{height:auto;min-height:39px}.import__table .th{white-space:normal;line-height:1.25;padding:8px;text-overflow:clip}.import__table .td{font-size:12.5px;padding:6px 8px;white-space:normal;line-height:1.3;overflow-wrap:break-word}.import__table .td.import__names{flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}.import__table .td .name{white-space:normal}.import__table .td.import__editable{cursor:text;position:relative;isolation:isolate}.import__table .td.import__editable:before{content:"";position:absolute;inset:3px;z-index:-1;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface)}.import__table .td.import__editable:hover:before{border-color:var(--accent-ring);background:var(--accent-soft)}.import__table .td.import__cursor:before,.import__table .td.import__cursor:hover:before{border:2px solid var(--accent);background:var(--accent-soft)}.import__table .td.import__editing:before,.import__table .td.import__editing:hover:before{border:2px solid var(--accent);background:var(--surface)}.import__table .td.import__editing{padding:4px}.import__input{width:100%;min-width:0;font:inherit;font-size:12.5px;color:var(--text);padding:5px 6px;border:none;outline:none;background:transparent}.import__table .td.import__whole,.import__table .td--line{white-space:nowrap;overflow-wrap:normal}.roles{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:18px;align-items:start}.roles__list{padding:0;overflow:hidden}.roles__list .td{gap:8px}.roles__item--focus{box-shadow:inset 3px 0 0 var(--accent),inset 0 0 0 1px var(--accent-ring)}.roles__grid{min-width:0}.roles__note{color:var(--text-2);font-size:13px;margin:4px 0 12px}.roles__table{margin-top:8px}.roles__table .trow--body{height:34px}.roles__group{padding:10px 12px 4px;font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-strong);border-bottom:1px solid var(--border)}.perm-tick{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;color:#fff}.perm-tick--on{background:var(--accent);border-color:var(--accent)}@media(max-width:900px){.roles{grid-template-columns:1fr}}@media print{.topbar,.keybar,.no-print,.screen-caption{display:none!important}.shell,.content{display:block;padding:0;margin:0;background:#fff}.card{box-shadow:none;border:none;margin:0}.print-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 0 10px;margin-bottom:10px;border-bottom:1px solid #000;font-size:12pt}.screen-title{font-size:14pt;margin:0 0 4px}.trow--body{break-inside:avoid}.trow--head{background:none;border-bottom:1px solid #000}.code-chip{background:none;border:none;padding:0;color:inherit}.report-section__head{break-after:avoid;border-bottom:1px solid #000}.trow--opening,.trow--total{background:none!important}.trow--total{border-top:1px solid #000}.report-warn{border:1px solid #000;background:none;color:#000}.letter{max-width:none}.letter-text,.letter-editor{border:none;background:none;box-shadow:none;padding-left:0}.letter__sign{break-inside:avoid}}
