:root{--ink:#1c2b3a;--ink-soft:#4a5b6c;--line:#dfe4e8;--paper:#fbfbf9;--card:#fff;--navy:#1f3350;--navy-deep:#16253c;--amber:#b8863b;--amber-soft:#f4e9d8;--danger:#b0392f;--danger-soft:#f6e6e4;--ok:#2f6b4f;--buy-bg:#fbf3e7;--sale-bg:#eaf1f8;--buy-bg-b:#f2e6d3;--sale-bg-b:#dbe6f0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:Malgun Gothic,Apple SD Gothic Neo,-apple-system,system-ui,sans-serif}input,select{color:var(--ink);font-family:inherit}.ac-wrap{width:100%;position:relative}.ac-input{box-sizing:border-box;border:1px solid #d0d0d0;border-radius:4px;width:100%;padding:.35rem .4rem;font-size:.85rem}.ac-input:focus{border-color:var(--navy);outline:none}.ac-list{z-index:1000;background:#fff;border:1px solid #ccc;border-radius:6px;max-height:220px;margin:2px 0 0;padding:4px;list-style:none;overflow-y:auto;box-shadow:0 4px 14px #0000001f}.ac-item{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:.35rem .5rem;font-size:.85rem;overflow:hidden}.ac-item-active{background:var(--navy);color:#fff}.excel-io{border:1px dashed var(--line);background:#f5f7f9;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;font-size:.85rem;display:flex}.excel-io input[type=file]{max-width:220px;font-size:.8rem}.excel-io button{background:var(--navy);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:.4rem .8rem;font-weight:600}.excel-io button.ghost-btn{color:var(--navy);border:1px solid var(--navy);background:#fff}.excel-io button:disabled{opacity:.6;cursor:default}.excel-io-status{color:#555}.cfd-wrap{display:inline-block}.cfd-btn{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:.35rem .6rem;font-size:.8rem}.cfd-btn-active{color:#1f5fa8;background:#eaf3ff;border-color:#8db6ea}.cfd-panel{z-index:1000;background:#fff;border:1px solid #ccc;border-radius:8px;margin-top:2px;padding:8px;box-shadow:0 4px 14px #00000026}.cfd-search{box-sizing:border-box;border:1px solid #d0d0d0;border-radius:4px;width:100%;margin-bottom:6px;padding:.35rem .5rem;font-size:.82rem}.cfd-actions{gap:6px;margin-bottom:6px;display:flex}.cfd-actions button{cursor:pointer;background:#f7f7f7;border:1px solid #ccc;border-radius:4px;flex:1;padding:.25rem .4rem;font-size:.75rem}.cfd-list{max-height:260px;overflow-y:auto}.cfd-empty{color:#888;text-align:center;padding:.5rem;font-size:.8rem}.cfd-item{border-radius:4px;align-items:center;gap:4px;padding:.2rem .3rem;display:flex}.cfd-item:hover{background:#f5f6fa}.cfd-check{cursor:pointer;flex:1;align-items:center;gap:6px;min-width:0;font-size:.82rem;display:flex}.cfd-check span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cfd-rename-btn{cursor:pointer;opacity:.5;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:.75rem}.cfd-rename-btn:hover{opacity:1}.cfd-rename-input{box-sizing:border-box;border:1px solid var(--navy);border-radius:4px;flex:1;padding:.2rem .4rem;font-size:.82rem}.calf-wrap{display:inline-block}.calf-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:.35rem .6rem;font-size:.8rem}.calf-btn-active{background:var(--navy);border-color:var(--navy);color:#fff}.calf-panel{z-index:1000;border:1px solid var(--line);background:#fff;border-radius:6px;width:230px;margin-top:4px;padding:8px;box-shadow:0 4px 14px #0000001f}.calf-head{color:var(--navy-deep);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12.5px;font-weight:700;display:flex}.calf-head button,.calf-foot button{border:1px solid var(--navy);color:var(--navy);cursor:pointer;background:#fff;border-radius:4px;padding:2px 8px;font-size:11px}.calf-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calf-dow{color:var(--ink-soft);padding:2px 0;font-size:10px}.calf-day{cursor:pointer;border-radius:4px;padding:5px 0;font-size:11.5px}.calf-day:hover{background:#f1f4f7}.calf-day-selected,.calf-day-selected:hover{background:var(--navy);color:#fff}.calf-day-blank{visibility:hidden}.calf-foot{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.calf-hint{color:var(--ink-soft);font-size:10px}.ctx-menu{z-index:2000;background:#fff;border:1px solid #ccc;border-radius:8px;flex-direction:column;min-width:180px;padding:4px;display:flex;position:fixed;box-shadow:0 6px 18px #0000002e}.ctx-item{text-align:left;cursor:pointer;color:#222;background:0 0;border:none;border-radius:5px;padding:.5rem .7rem;font-size:.85rem}.ctx-item:hover{background:#f1f4f7}.ctx-item-danger{color:var(--danger)}.base-data-page{flex-direction:column;display:flex}.base-data-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.base-data-toolbar h2{margin:0}.toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.toolbar-right button{border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;border-radius:5px;padding:7px 14px;font-size:13px}.toolbar-right button:hover{background:var(--navy-deep)}.toolbar-right button.ghost-btn{color:var(--navy);background:#fff;font-size:13px}.toolbar-right button.ghost-btn:hover:not(:disabled){background:#eef1f4}.toolbar-right button:disabled{opacity:.45;cursor:default}.toolbar-error{color:var(--danger)}.show-all-toggle{color:var(--ink-soft);align-items:center;gap:.35rem;display:flex}.filter-row{border:1px solid var(--line);background:#f5f7f9;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:10px 12px;display:flex}.month-select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:.3rem .5rem;font-size:.8rem}.pager{color:var(--ink-soft);align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.pager .ghost-btn:disabled{opacity:.4;cursor:default}.filter-row-label{color:var(--ink-soft);margin-right:2px;font-size:12px}.grid-scroll{border:1px solid var(--line);border-radius:6px;max-height:72vh;overflow:auto}.base-data-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:12px}.base-data-grid th,.base-data-grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle;padding:0;position:relative}.base-data-grid th{z-index:3;color:var(--navy-deep);white-space:nowrap;text-overflow:ellipsis;text-align:left;background:#eef1f4;padding:6px 8px;font-size:11.5px;font-weight:700;position:sticky;overflow:hidden}.base-data-grid thead tr.grouprow th{text-align:center;height:27px;top:0}.base-data-grid thead tr.fieldrow th{top:27px}.base-data-grid th.grp-buy{background:var(--buy-bg)}.base-data-grid th.grp-sale{background:var(--sale-bg)}.col-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;width:6px;height:100%;position:absolute;top:0;right:0}.col-resizer:hover,.col-resizer:active{background:#1f33504d}.base-data-grid td{height:30px;overflow:visible}.base-data-grid tbody tr.day-a td{background:#fbfbf9}.base-data-grid tbody tr.day-b td{background:#eef1f4}.base-data-grid tbody tr.day-a td.cell-buy{background:var(--buy-bg)}.base-data-grid tbody tr.day-b td.cell-buy{background:var(--buy-bg-b)}.base-data-grid tbody tr.day-a td.cell-sale{background:var(--sale-bg)}.base-data-grid tbody tr.day-b td.cell-sale{background:var(--sale-bg-b)}.base-data-grid td input:not([type=checkbox]),.base-data-grid td select,.base-data-grid td .ac-input,.base-data-grid td .cell-input,.base-data-grid td .date-input{background:0 0;border:none;border-radius:0;width:100%;height:30px;padding:4px 6px;font-size:12px}.base-data-grid td input:focus,.base-data-grid td select:focus,.base-data-grid td .ac-input:focus{outline:2px solid var(--navy);outline-offset:-2px;background:#fff}.base-data-grid td.select-cell{text-align:center;padding:2px}.select-inner{justify-content:center;align-items:center;gap:4px;display:flex}.drag-handle{cursor:grab;color:var(--ink-soft);letter-spacing:-2px;-webkit-user-select:none;user-select:none;font-size:12px}.drag-handle:active{cursor:grabbing}.base-data-grid tbody tr.drag-over td{border-top:2px solid var(--amber)}.mini-check{vertical-align:middle;width:13px;height:13px;margin:0}.base-data-grid td.cell-calc{text-align:right;color:var(--ink-soft);background-color:#f6f4ef;padding:6px 8px;font-size:11.5px}.mode-toggle{border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:10px;margin:0 4px;padding:3px 8px;font-size:11px}.mode-toggle.mode-linked{background:var(--navy);border-color:var(--navy);color:#fff}.mode-toggle.mode-free{color:var(--ink-soft);background:#fff}.row-actions{white-space:nowrap;align-items:center;gap:4px;padding:0 4px;display:flex}.ghost-btn{border:1px solid var(--navy);color:var(--navy);cursor:pointer;background:#fff;border-radius:4px;padding:3px 8px;font-size:11.5px}.ghost-btn.danger{color:var(--danger);border-color:var(--danger)}.saving-dot{background:var(--amber);border-radius:50%;width:6px;height:6px;display:inline-block}.empty-row{text-align:center;color:var(--ink-soft);background:#f7f8f9!important;padding:2rem 0!important}.toast{background:var(--navy-deep);color:#fff;z-index:3000;pointer-events:none;border-radius:6px;padding:9px 18px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.unreg-badge{color:var(--danger);white-space:nowrap;background:#fdf0ee;border-radius:9px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.cat-manager{border:1px solid var(--line);background:#f9fafb;border-radius:6px;margin-bottom:12px;padding:12px 14px}.cat-manager-title{color:var(--navy-deep);margin-bottom:8px;font-size:12.5px;font-weight:700}.cat-chips{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.cat-chip{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:center;gap:6px;padding:4px 8px 4px 12px;font-size:13px;display:inline-flex}.cat-count{color:var(--ink-soft);font-size:11px}.cat-chip button{border:1px solid var(--navy);color:var(--navy);cursor:pointer;background:#fff;border-radius:10px;padding:1px 7px;font-size:11px}.cat-chip button.danger{border-color:var(--danger);color:var(--danger)}.cat-empty{color:var(--ink-soft);font-size:12.5px}.cat-add{gap:6px;margin-bottom:8px;display:flex}.cat-add input{border:1px solid var(--line);border-radius:5px;width:200px;padding:5px 8px;font-size:13px}.cat-hint{color:var(--ink-soft);font-size:11.5px}.bulk-bar{background:#eef4fb;border:1px solid #c9daf0;border-radius:6px;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;font-size:12.5px;display:flex}.view-tabs{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.view-tabs>button{border:1px solid var(--line);color:var(--navy);cursor:pointer;background:#fff;border-radius:5px;padding:7px 14px;font-size:13px}.view-tabs>button.active{background:var(--navy);border-color:var(--navy);color:#fff}.base-month{color:var(--ink-soft);align-items:center;gap:6px;margin-left:10px;font-size:12.5px;display:inline-flex}.analytics-scroll{max-height:60vh}.analytics-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.analytics-table th,.analytics-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 10px}.analytics-table th{z-index:2;color:var(--navy-deep);text-align:center;background:#eef1f4;font-size:11.5px;position:sticky;top:0}.analytics-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.analytics-table td.num{text-align:right}.analytics-table td.center{text-align:center}.analytics-table tr.total-row td{background:#f6f4ef;font-weight:700}.delta{color:var(--ink-soft);font-size:11.5px}.delta.up{color:#c0392b}.delta.down{color:#1f5fa8}.badge{vertical-align:middle;border-radius:9px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:400;display:inline-block}.badge.new{color:#2c7a3f;background:#e3f1e6}.badge.gone{color:var(--ink-soft);background:#eceff2}.badge.warn{color:#9a6a00;background:#fdf0d5}.bar-chart{border:1px solid var(--line);background:#f9fafb;border-radius:6px;align-items:flex-end;gap:14px;height:170px;margin-bottom:14px;padding:10px 14px 0;display:flex;position:relative;overflow-x:auto}.bar-group{flex-direction:column;align-items:center;min-width:46px;height:100%;display:flex}.bars{flex:1;justify-content:center;align-items:flex-end;gap:3px;width:100%;display:flex}.bar{border-radius:2px 2px 0 0;width:16px;min-height:1px}.bar.out,.bar-legend i.out{background:var(--amber)}.bar.sale,.bar-legend i.sale{background:var(--navy)}.bar-label{color:var(--ink-soft);padding:4px 0;font-size:11px}.bar-legend{color:var(--ink-soft);gap:12px;font-size:11px;display:flex;position:absolute;top:6px;right:12px}.bar-legend i{border-radius:2px;width:9px;height:9px;margin-right:4px;display:inline-block}.bar-chart.daily{gap:4px;height:120px;padding-top:24px}.bar-chart.daily .bar-group{min-width:20px}.bar-chart.daily .bar{width:12px}.bar-chart.daily .bar-label{font-size:10px}.sub-title{color:var(--navy-deep);margin:18px 0 8px;font-size:13.5px}.sub-title-note{color:var(--ink-soft);font-size:11.5px;font-weight:400}.analytics-table td.neg{color:#c0392b}.grade{border-radius:9px;min-width:20px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.grade-A{color:#9a6a00;background:#fdf0d5}.grade-B{color:#1f5fa8;background:#e3ecf7}.grade-C{color:var(--ink-soft);background:#eceff2}.stack-bar{border:1px solid var(--line);border-radius:6px;height:30px;display:flex;overflow:hidden}.stack-seg{color:#fff;white-space:nowrap;text-shadow:0 0 2px #00000059;justify-content:center;align-items:center;font-size:11.5px;display:flex;overflow:hidden}.stack-empty{color:var(--ink-soft);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.pos-grid .check-col{text-align:center;width:34px}.pos-grid tr.pos-group td{border-top:2px solid var(--line);background:#eef1f4;padding:6px 8px}.pos-grid tr.pos-group .link-btn{margin-right:4px;text-decoration:none}.pos-grid tr.pos-group .pos-all{float:right}.pos-grid tr.pos-done td{color:var(--ink-soft);background:#f6f9f6}.pos-grid tr.pos-return td{background:#fdf7e6}.pos-grid .dim-text{color:var(--ink-soft);font-size:11.5px}.pos-grid td.neg{color:#c0392b;font-weight:700}.po-page .dim{color:var(--ink-soft);font-size:.8rem}.po-afterfact{color:var(--ink-soft);align-items:center;gap:.35rem;font-size:.82rem;display:flex}.po-total-card{border-left:4px solid var(--navy)}.po-tabs{border-bottom:2px solid var(--line);align-items:center;gap:.25rem;margin:.75rem 0;display:flex}.po-tabs>button{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#f3f4f6;border-bottom:none;border-radius:6px 6px 0 0;padding:.45rem 1rem;font-weight:600}.po-tabs>button.on{color:var(--navy);background:#fff;border-bottom:2px solid #fff;position:relative;top:2px}.po-tabs-fill{flex:1}.po-body{grid-template-columns:minmax(360px,4fr) minmax(620px,7fr);align-items:start;column-gap:1rem;display:grid}.po-list,.po-editor{min-width:0}.po-filters{gap:.4rem;margin-bottom:.4rem;display:flex}.po-filters input{flex:1;min-width:0}.po-table .num,.po-lines .num{text-align:right}.po-click{cursor:pointer}.po-click:hover td{background:#f7f9fb}tr.po-selected td{background:#fff6df!important}.po-empty{text-align:center;color:#888;border:1px dashed var(--line);border-radius:8px;padding:3rem 1rem}.po-chip{white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.74rem;font-weight:700;display:inline-block}.po-chip.st-draft{color:#555;background:#eef0f3}.po-chip.st-ordered{color:#1f5fa8;background:#e3effc}.po-chip.st-confirmed{color:#1d7a3a;background:#e1f4e6}.po-chip.st-cancelled{color:#b03a2e;background:#f9e3e0;text-decoration:line-through}.po-tag{color:#8a6d0b;border:1px solid #c9a227;border-radius:4px;margin-left:.3rem;padding:0 .3rem;font-size:.68rem}.po-head{border:1px solid var(--line);background:#f9fafb;border-radius:8px;margin-bottom:.6rem;padding:.6rem .75rem}.po-title{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.po-fields{grid-template-columns:repeat(4,minmax(120px,1fr));gap:.5rem .75rem;display:grid}.po-fields label{color:#555;flex-direction:column;gap:.2rem;font-size:.78rem;display:flex}.po-fields label.po-wide{grid-column:span 2}.po-fields label.po-check,.po-pay-form label.po-check{flex-direction:row;align-self:end;align-items:center;gap:.35rem}.po-ro{color:#222;align-items:center;min-height:1.6rem;font-size:.88rem;display:flex}.po-lines td,.po-lines th{white-space:nowrap}.po-recv-h{background:#e1f4e6!important}.po-recv{background:#f3fbf5;position:relative}.po-diff{background:#e08a00;border-radius:50%;width:7px;height:7px;position:absolute;top:3px;right:3px}.po-sumrow td{background:#eef1f4;font-weight:700}.po-memo{align-items:center;gap:.5rem;margin:.5rem 0;font-size:.82rem;display:flex}.po-memo>:last-child{flex:1}.po-actions{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.5rem 0 .9rem;display:flex}.po-actions-fill{flex:1}button.po-confirm{color:#fff;cursor:pointer;background:#1d7a3a;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:700}button.po-confirm:disabled{opacity:.5;cursor:default}.po-pay{border:1px solid var(--line);border-radius:8px;padding:.6rem .75rem}.po-pay h4{margin:0 0 .4rem;font-size:.9rem}.po-pay-sum{flex-wrap:wrap;gap:1.25rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.po-pay-form{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.po-pay-form input.po-amount{text-align:right;width:120px}.po-owe{color:#c0392b;font-weight:700}.po-after{background:#e1f4e6;font-weight:700}.po-modal-back{z-index:50;background:#00000061;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.po-modal{background:#fff;border-radius:10px;width:min(900px,94vw);max-height:88vh;padding:1.1rem 1.3rem;overflow:auto;box-shadow:0 10px 40px #00000040}.po-modal h3{margin:0 0 .4rem}.po-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.po-toast{color:#fff;z-index:60;background:#1f2d3d;border-radius:8px;max-width:80vw;padding:.6rem 1.1rem;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%)}.po-trend{--c-in:#d9730d;--c-avg:#1f5fa8;--c-base:#7b8794}.po-up{color:#c0392b}.po-down{color:#1d7a3a}.po-chart-legend{color:#444;flex-wrap:wrap;align-items:center;gap:1.1rem;margin:.6rem 0 .3rem;font-size:.82rem;display:flex}.po-chart-legend label{align-items:center;gap:.3rem;display:inline-flex}.po-chart-legend .sw{vertical-align:middle;margin-right:.25rem;display:inline-block}.sw-in{background:var(--c-in);width:10px;height:10px;box-shadow:0 0 0 1px var(--c-in);border:2px solid #fff;border-radius:50%}.sw-avg{border-top:2px solid var(--c-avg);width:22px;height:0}.sw-base{border-top:2px dashed var(--c-base);width:22px;height:0}.po-chart-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.3rem;position:relative}.po-chart{width:100%;height:auto;display:block}.po-chart .grid{stroke:#e4e7eb;stroke-width:1px}.po-chart .axis{fill:#6b7280;font-size:11px}.po-chart .line-avg{fill:none;stroke:var(--c-avg);stroke-width:2px}.po-chart .line-base{fill:none;stroke:var(--c-base);stroke-width:1.5px;stroke-dasharray:5 4}.po-chart .dot-base{fill:#fff;stroke:var(--c-base);stroke-width:1.5px}.po-chart .dot-in{fill:var(--c-in);stroke:#fff;stroke-width:2px}.po-chart .cross{stroke:#9aa3ad;stroke-width:1px;stroke-dasharray:3 3}.po-tip{color:#fff;pointer-events:none;white-space:nowrap;z-index:5;background:#1f2d3d;border-radius:6px;padding:.4rem .6rem;font-size:.78rem;line-height:1.5;position:absolute;top:8px}.po-sub-h{align-items:center;gap:1rem;margin:1rem 0 .35rem;font-size:.9rem;display:flex}.po-inline-check{color:#555;align-items:center;gap:.3rem;font-size:.8rem;font-weight:400;display:inline-flex}@media (width<=1100px){.po-body{flex-direction:column;gap:.75rem;display:flex}.po-fields{grid-template-columns:repeat(2,1fr)}}.cust-scroll{border:1px solid var(--line);border-radius:6px;max-height:70vh;overflow:auto}.cust-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.cust-grid th,.cust-grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;background:#fff;padding:4px 6px}.cust-grid thead th{z-index:3;color:var(--navy-deep);text-align:center;background:#eef1f4;font-size:11.5px;position:sticky;top:0}.cust-grid .sticky-a,.cust-grid .sticky-b,.cust-grid .sticky-c,.cust-grid .sticky-d{z-index:2;box-sizing:border-box;position:sticky}.cust-grid .sticky-a{text-align:left;width:160px;min-width:160px;max-width:160px;left:0}.cust-grid .sticky-b{text-align:center;width:74px;min-width:74px;left:160px}.cust-grid .sticky-c{text-align:center;width:66px;min-width:66px;left:234px}.cust-grid .sticky-d{border-right:2px solid var(--navy);width:84px;min-width:84px;left:300px}.cust-grid thead th.sticky-a,.cust-grid thead th.sticky-b,.cust-grid thead th.sticky-c,.cust-grid thead th.sticky-d{z-index:4}.cust-grid td.name-cell{text-overflow:ellipsis;color:var(--navy-deep);font-weight:600;overflow:hidden}.cust-grid td.center{text-align:center}.cust-grid td.num{text-align:right;color:var(--ink-soft)}.cust-grid td .ghost-btn{padding:2px 8px}.cust-grid .day-h,.cust-grid .day-cell{min-width:132px;max-width:132px}.cust-grid.compact .day-h,.cust-grid.compact .day-cell{min-width:44px;max-width:44px;padding:4px 2px}.cust-grid .day-h span{color:var(--ink-soft);font-size:10px;font-weight:400;display:block}.cust-grid .sun,.cust-grid .sat{background-color:#f7f5f1}.cust-grid thead .sun,.cust-grid thead .sat{background-color:#e8ebef}.cust-grid thead .sun span,.cust-grid thead .sun{color:#c0392b}.cust-grid thead .sat span,.cust-grid thead .sat{color:#1f5fa8}.cust-grid .today{box-shadow:inset 0 0 0 1px var(--amber)}.cust-grid thead .today{background:#fdf0d5}.cust-grid .day-cell{vertical-align:top;cursor:pointer;height:44px;overflow:hidden}.cust-grid .day-cell:hover{outline:2px solid var(--navy);outline-offset:-2px}.cust-grid tbody tr:hover td.sticky-a,.cust-grid tbody tr:hover td.sticky-b,.cust-grid tbody tr:hover td.sticky-c,.cust-grid tbody tr:hover td.sticky-d{background:#f3f6fa}.chip{text-overflow:ellipsis;white-space:nowrap;border-radius:3px;max-width:100%;margin-bottom:2px;padding:1px 5px;font-size:10.5px;line-height:1.35;display:block;overflow:hidden}.chip-sale{background:var(--navy);color:#fff}.chip-act{color:#7a5200;background:#fdf0d5}.cust-grid.compact .chip{text-align:center;padding:1px 2px}.mail-ok{color:#2c7a3f;font-weight:600}.mail-warn{color:#9a6a00;font-size:11px}.mail-none{color:var(--danger);font-size:11px}.modal-overlay{z-index:2000;background:#141e2d73;justify-content:center;align-items:flex-start;padding:5vh 12px;display:flex;position:fixed;inset:0;overflow:auto}.modal-panel{background:#fff;border-radius:8px;width:100%;max-width:640px;padding:18px 20px 20px;box-shadow:0 10px 40px #00000040}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.modal-title{color:var(--navy-deep);font-size:17px;font-weight:700}.modal-sub{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.modal-head-actions{gap:6px;display:flex}.modal-section-title{border-left:3px solid var(--amber);color:var(--navy-deep);margin:14px 0 6px;padding-left:8px;font-size:13px;font-weight:700}.mini-table{border-collapse:collapse;width:100%;font-size:12px}.mini-table th,.mini-table td{border:1px solid var(--line);padding:4px 8px}.mini-table th{color:var(--navy-deep);background:#eef1f4;font-size:11.5px}.mini-table td.num{text-align:right}.mini-table tr.total-row td{background:#f6f4ef;font-weight:700}.mini-table .empty-row{text-align:center;color:var(--ink-soft);padding:14px 8px}.primary-btn{border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;border-radius:5px;padding:6px 14px;font-size:12.5px}.primary-btn:hover:not(:disabled){background:var(--navy-deep)}.primary-btn:disabled{opacity:.45;cursor:default}.primary-btn.small{padding:3px 10px}.link-btn{color:var(--navy);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:12px;text-decoration:underline}.link-btn.danger{color:var(--danger)}.form-error{color:var(--danger);margin-top:6px;font-size:12px}.form-msg{color:#2c7a3f;font-size:12px}.form-hint{color:var(--ink-soft);font-size:11.5px}.form-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.act-editor{flex-direction:column;gap:8px;display:flex}.act-empty{color:var(--ink-soft);padding:8px 2px;font-size:12.5px}.act-item{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 10px}.act-item.editing{background:#f9fafb}.act-head{align-items:center;gap:8px;font-size:12px;display:flex}.act-date{color:var(--navy-deep);font-weight:700}.act-kind{color:#1f5fa8;background:#e3ecf7;border-radius:9px;padding:1px 8px;font-size:11px}.act-kind.kind-방문{color:#2c7a3f;background:#e3f1e6}.act-kind.kind-견적{color:#9a6a00;background:#fdf0d5}.act-kind.kind-발주{color:#6b3f91;background:#efe5f7}.act-kind.kind-수금{color:#b03a2e;background:#fdecea}.act-src{color:#6b3f91;font-size:10.5px}.act-by{color:var(--ink-soft);margin-left:auto;font-size:11px}.act-actions{gap:2px;display:inline-flex}.act-content{white-space:pre-wrap;margin-top:5px;font-size:12.5px;line-height:1.5}.act-next{color:#7a5200;background:#fdf7e6;border-radius:4px;margin-top:5px;padding:3px 7px;font-size:11.5px}.act-next.overdue{color:#b03a2e;background:#fdecea}.act-add-title{color:var(--navy-deep);margin-top:6px;font-size:12px;font-weight:700}.act-form{flex-direction:column;gap:6px;display:flex}.act-form-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.act-form input,.act-form select,.act-form textarea{border:1px solid var(--line);border-radius:5px;padding:5px 7px;font-family:inherit;font-size:12.5px}.act-form textarea{resize:vertical;width:100%}.act-form .grow{flex:1;min-width:160px}.detail-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.detail-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.detail-grid{grid-template-columns:minmax(0,1fr)}}.detail-col{flex-direction:column;gap:16px;min-width:0;display:flex}.detail-card{border:1px solid var(--line);background:#fff;border-radius:8px;padding:14px 16px}.detail-card h3{color:var(--navy-deep);border-left:3px solid var(--amber);margin:0 0 10px;padding-left:8px;font-size:14px}.info-grid{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.info-grid label{color:var(--ink-soft);flex-direction:column;gap:3px;font-size:11.5px;display:flex}.info-grid label.span-2{grid-column:span 2}.info-grid input,.info-grid textarea{border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:6px 8px;font-family:inherit;font-size:13px}.contact-scroll{overflow-x:auto}.contact-table{border-collapse:collapse;width:100%;font-size:12px}.contact-table th,.contact-table td{border:1px solid var(--line);white-space:nowrap;padding:2px 4px}.contact-table th{color:var(--navy-deep);background:#eef1f4;padding:5px 6px;font-size:11.5px}.contact-table td.center{text-align:center}.contact-table td input:not([type=checkbox]):not([type=radio]){background:0 0;border:none;width:100%;min-width:90px;padding:4px;font-size:12px}.contact-table td input:focus{outline:2px solid var(--navy);outline-offset:-2px;background:#fff}.contact-table .empty-row{text-align:center;color:var(--ink-soft);padding:14px 8px}.contact-table tr.add-row td{background:#f9fafb}.contact-table tr.add-row input:not([type=checkbox]){border:1px solid var(--line);background:#fff}.cleanup-table td{vertical-align:middle}.cl-input{border:1px solid var(--line);width:100%;min-width:90px;color:var(--ink);background:#fff;border-radius:4px;padding:4px 6px;font-family:inherit;font-size:12.5px}.cl-input.short{min-width:70px}.cl-input.num{font-variant-numeric:tabular-nums;min-width:112px}.cl-input.bad{border-color:var(--danger);background:#fdf0ee}.cleanup-nav-link{margin-left:8px}.cleanup-table .primary-btn,.cleanup-table .link-btn{white-space:nowrap}.doc-viewer{z-index:60;border-left:2px solid var(--navy);background:#fff;flex-direction:column;width:46vw;min-width:360px;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-6px 0 18px #0000001f}.doc-viewer-head{border-bottom:1px solid var(--line);background:#f6f4ef;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.doc-viewer-tabs{flex-wrap:wrap;gap:4px;padding:6px 12px 0;display:flex}.doc-viewer-tabs button{border:1px solid var(--line);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:4px;max-width:100%;padding:3px 8px;font-size:11.5px;overflow:hidden}.doc-viewer-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}.doc-viewer-file{color:var(--ink-soft);word-break:break-all;padding:6px 12px;font-size:12px}.doc-viewer-body{flex:1;min-height:0;padding:0 12px 12px;overflow:auto}.doc-viewer-body img{max-width:100%;height:auto;margin:0 auto;display:block}.doc-viewer-body iframe{border:1px solid var(--line);width:100%;height:100%;min-height:70vh}.cleanup-with-viewer{padding-right:calc(46vw + 8px)}@media (width<=900px){.doc-viewer{width:100vw}.cleanup-with-viewer{padding-right:0}}.cleanup-tabs{border-bottom:2px solid var(--line);flex-wrap:wrap;gap:4px;margin:12px 0 10px;display:flex}.cleanup-tabs button{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#f6f4ef;border-bottom:none;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:8px 14px;font-size:13px}.cleanup-tabs button.active{color:var(--navy-deep);border-color:var(--navy);background:#fff;border-bottom:2px solid #fff;font-weight:700}.cleanup-scroll{border:1px solid var(--line);border-radius:6px;height:calc(100vh - 380px);min-height:320px;overflow:auto}.cleanup-scroll thead th{z-index:2;background:#f6f4ef;position:sticky;top:0}.cleanup-note{min-width:190px;max-width:260px}.doc-drop{border:2px dashed var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:16px 12px;font-size:12px;display:flex}.doc-drop b{color:var(--navy);font-size:13.5px}.doc-drop:hover,.doc-drop.dragging,.doc-drop:focus-visible{border-color:var(--amber);background:var(--amber-soft);outline:none}.doc-auto{margin:0 0 8px;font-size:12.5px;display:block}.doc-pending{border:1px solid var(--amber);background:#fffdf8;border-radius:8px;margin-top:4px;padding:10px 12px}.doc-pending-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px;display:flex}.doc-thumb{object-fit:cover;object-position:top;border:1px solid var(--line);cursor:zoom-in;border-radius:3px;width:44px;height:56px}.doc-reading{color:var(--ink-soft);padding:10px 0;font-size:12.5px}.doc-warn{background:var(--danger-soft);color:var(--danger);border-radius:5px;margin:6px 0;padding:6px 10px;font-size:12px}.doc-result{border-collapse:collapse;width:100%;margin:6px 0;font-size:12.5px}.doc-result th,.doc-result td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;word-break:break-all;padding:4px 8px}.doc-result th{color:var(--ink-soft);font-size:11.5px;font-weight:400}.doc-result td.center{text-align:center;width:44px}.doc-result tr.differs td{background:var(--buy-bg)}.doc-result tr.ref td,.doc-cur{color:var(--ink-soft)}.doc-cur em{color:var(--amber);font-style:normal}.doc-none{color:var(--ink-soft)}.doc-msg{margin-top:8px}.doc-list{flex-direction:column;margin-top:10px;display:flex}.doc-row{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"type name meta""actions actions actions";align-items:center;gap:2px 10px;padding:6px 0;font-size:12.5px;display:grid}.doc-type{background:var(--sale-bg);color:var(--navy);border-radius:10px;grid-area:type;padding:1px 7px;font-size:11px}.doc-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;overflow:hidden}.doc-row>.form-hint{grid-area:meta}.doc-actions{grid-area:actions;gap:6px;display:flex}.doc-actions .link-btn:disabled{color:var(--ink-soft);cursor:default;text-decoration:none}.doc-preview-overlay{z-index:3000}.doc-preview{background:#fff;border-radius:8px;width:100%;max-width:900px;padding:14px 16px 16px;box-shadow:0 10px 40px #00000040}.doc-preview img{max-width:100%;max-height:80vh;margin:0 auto;display:block}.doc-preview iframe{border:1px solid var(--line);width:100%;height:80vh}@media print{.doc-card{display:none}}.cust-subtabs{border-bottom:2px solid var(--line);gap:4px;margin-bottom:12px;display:flex}.cust-subtabs a{border:1px solid var(--line);color:var(--navy);background:#f6f4ef;border-bottom:none;border-radius:6px 6px 0 0;padding:8px 18px;font-size:13px;text-decoration:none;position:relative;top:2px}.cust-subtabs a.active{color:var(--navy-deep);background:#fff;border-bottom:2px solid #fff;font-weight:700}.sales-grid .check-col{text-align:center;width:34px}.sales-grid tbody tr.sales-row{cursor:pointer}.sales-grid tbody tr.sales-row:hover td{background:#f3f6fa}.sales-grid tbody tr.sales-row.open td{background:#fdf7e6}.sales-grid .dim-text{color:var(--ink-soft);font-size:11px}.date-pair{align-items:center;gap:4px;display:inline-flex}.date-pair input{border:1px solid var(--line);border-radius:6px;width:128px;padding:.3rem .4rem;font-size:.8rem}.status-select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:2px 4px;font-size:11.5px}.status-select.st-PDF저장{background:#eef4fb;border-color:#b9d0ea}.status-select.st-발송{background:#fdf0d5;border-color:#e6c677}.status-select.st-확인{background:#e3f1e6;border-color:#9fcfa9}.status-select.st-계산서발행{color:#fff;background:#2c7a3f;border-color:#2c7a3f}.template-card{border:1px solid var(--line);background:#f9fafb;border-radius:8px;margin-bottom:12px;padding:12px 14px}.template-title{color:var(--navy-deep);margin-bottom:8px;font-size:13px;font-weight:700}.template-vars{color:var(--ink-soft);margin:6px 0;font-size:11.5px}.template-vars code{color:var(--navy-deep);background:#eef1f4;border-radius:4px;margin-right:6px;padding:1px 6px}.sales-input{border:1px solid var(--line);border-radius:5px;padding:6px 8px;font-family:inherit;font-size:13px}.sales-input.wide{box-sizing:border-box;width:100%;margin-bottom:6px}.sales-textarea{box-sizing:border-box;border:1px solid var(--line);resize:vertical;border-radius:5px;width:100%;padding:8px;font-family:inherit;font-size:13px;line-height:1.55}.sales-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.sales-panel{z-index:60;border-left:2px solid var(--navy);background:#fff;flex-direction:column;width:46vw;min-width:380px;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-6px 0 18px #0000001f}.sales-panel-head{border-bottom:1px solid var(--line);background:#f6f4ef;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.sales-panel-title{flex-direction:column;min-width:0;display:flex}.sales-panel-title b{color:var(--navy-deep);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;overflow:hidden}.sales-panel-title span{color:var(--ink-soft);font-size:11.5px}.sales-panel-nav{white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.sales-panel-status{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.sales-panel-status select{border:1px solid var(--line);border-radius:5px;padding:3px 6px;font-size:12px}.sales-panel-tabs{border-bottom:2px solid var(--line);gap:4px;padding:8px 12px 0;display:flex}.sales-panel-tabs button{border:1px solid var(--line);color:var(--navy);cursor:pointer;background:#f6f4ef;border-bottom:none;border-radius:6px 6px 0 0;padding:6px 14px;font-size:12.5px;position:relative;top:2px}.sales-panel-tabs button.active{background:#fff;border-bottom:2px solid #fff;font-weight:700}.sales-panel-body{flex:1;min-height:0;padding:10px 12px 18px;overflow:auto}.sales-section-title{border-left:3px solid var(--amber);color:var(--navy-deep);margin:12px 0 6px;padding-left:8px;font-size:12.5px;font-weight:700}.sales-notes{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.note-warn,.note-info{border-radius:5px;padding:6px 10px;font-size:12px;line-height:1.5}.note-warn{color:#7a5200;background:#fdf0d5}.note-info{color:#1f4f8a;background:#eef4fb}.sales-pdf-frame{border:1px solid var(--line);width:100%;height:68vh;margin-top:6px}.recipient-row{border-bottom:1px solid #eef1f4;align-items:center;gap:8px;padding:5px 4px;font-size:12.5px;display:flex}.recipient-main{min-width:90px}.recipient-mail{color:var(--ink-soft);word-break:break-all;flex:1}a.primary-btn.as-link{line-height:1.4;text-decoration:none;display:inline-block}a.primary-btn.as-link.disabled{opacity:.45;pointer-events:none}@media (width<=900px){.sales-panel{width:100vw}}@media print{.sales-panel,.template-card,.bulk-bar{display:none!important}}.period-box{border:1px solid var(--line);background:#f9fafb;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;font-size:12.5px;display:flex}.period-box .form-hint{flex-basis:100%}.period-cycle{align-items:center;gap:4px;display:inline-flex}.period-cycle select{border:1px solid var(--line);border-radius:5px;padding:3px 4px;font-size:12px}.period-cell{white-space:nowrap}.select-tools{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.sales-table-wrap{overflow-x:auto}.mini-table .check-col{text-align:center;width:28px}.mini-table tr.line-off td{color:var(--ink-soft);background:#fafafa}.mini-table tbody tr[class^=line-]{cursor:pointer}.mini-table .dim-text{color:var(--ink-soft);font-size:11px}.cat-badge{white-space:nowrap;border-radius:9px;padding:1px 7px;font-size:10.5px;display:inline-block}.cat-badge.cat-소모품,.cat-btn.cat-소모품{color:#8a5a00;background:#fdf0d5}.cat-badge.cat-피복,.cat-btn.cat-피복{color:#1f5fa8;background:#e3ecf7}.cat-badge.cat-안전화,.cat-btn.cat-안전화{color:#2c7a3f;background:#e3f1e6}.make-box{border:1px solid var(--line);background:#f6f4ef;border-radius:6px;margin-top:10px;padding:10px}.make-row{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.make-row .sales-input{flex:1;min-width:140px}.bundle-card{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:10px;padding:10px 12px}.bundle-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.bundle-head b{color:var(--navy-deep);font-size:13.5px}.bundle-files{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.bundle-file{align-items:center;gap:8px;font-size:12px;display:flex}.bundle-file>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.bundle-send{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bundle-send label{color:var(--ink-soft);align-items:center;gap:6px;font-size:12px;display:flex}.bundle-send select{border:1px solid var(--line);max-width:280px;color:var(--ink);border-radius:5px;padding:4px 6px;font-size:12.5px}.pdf-view-head{align-items:center;gap:8px;margin:6px 0;display:flex}.pdf-view-head .ghost-btn.on{background:var(--navy);color:#fff}.mail-line{gap:8px;margin-bottom:4px;font-size:12.5px;display:flex}.mail-key{color:var(--ink-soft);flex:0 0 74px}.sales-panel .mini-table{min-width:760px}.sales-panel .mini-table th,.sales-panel .mini-table td{white-space:nowrap}.sales-panel .mini-table td:nth-child(4){white-space:normal;min-width:130px}.archive{flex-direction:column;gap:.75rem;display:flex}.archive-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.archive-toolbar input{width:170px}.archive-sum{color:var(--ink-soft);margin-left:auto;font-size:.85rem}.archive-body{grid-template-columns:minmax(560px,7fr) minmax(360px,4fr);align-items:start;column-gap:1.25rem;display:grid}.archive-list{min-width:0;overflow-x:auto}.archive-empty{color:#888;padding:2rem 1rem}.archive-table{border-collapse:collapse;width:100%;font-size:.8rem}.archive-table th,.archive-table td{text-align:left;white-space:nowrap;border:1px solid #e3e5e8;padding:.3rem .4rem}.archive-table th{background:#f3f4f6}.archive-table td.num{text-align:right}.archive-table .dim,.archive .dim{color:var(--ink-soft);font-size:.8rem}.archive-table tr.archive-group td{background:#eef1f4;border-top:2px solid #cfd4da}.archive-table tr.archive-group .link-btn{margin-right:.3rem;text-decoration:none}.archive-table tbody tr:not(.archive-group){cursor:pointer}.archive-table tbody tr:not(.archive-group):hover td{background:#f7f9fb}.archive-table tr.selected td{background:#fff6df!important}.archive-actions{gap:.25rem;display:flex}.archive-preview{background:#fff;border:1px solid #ddd;border-radius:8px;position:sticky;top:.5rem;overflow:hidden}.archive-preview-head{background:#f3f4f6;border-bottom:1px solid #ddd;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .75rem;display:flex}.archive-preview-frame{background:#fff;border:0;width:100%;height:calc(100vh - 8rem);min-height:480px;display:block}.archive-preview-empty{text-align:center;color:#888;padding:2rem}@media (width<=1100px){.archive-body{flex-direction:column;gap:.75rem;display:flex}.archive-preview{position:static}}.statements-page{flex-direction:column;gap:1rem;display:flex}.statements-grid{grid-template-columns:minmax(380px,5fr) minmax(420px,6fr);align-items:start;gap:0 1.25rem;display:grid}.statements-grid>*{grid-column:1;min-width:0;margin:0 0 1rem}.statements-grid>.pdf-preview{grid-area:1/2/span 40;margin:0;position:sticky;top:.5rem}@media (width<=900px){.statements-grid{flex-direction:column;display:flex}.statements-grid>.pdf-preview{order:-1;position:static}}.statements-error{color:var(--danger);background:#fdecea;border:1px solid #f3c4bd;border-radius:8px;padding:.75rem 1rem}.statement-preview{border-collapse:collapse;font-size:.85rem}.statement-preview th,.statement-preview td{text-align:left;border:1px solid #ddd;padding:.4rem .6rem}.statement-preview th{background:#f3f4f6}.doc-kind-toggle{gap:1.25rem;font-size:.85rem;display:flex}.doc-kind-toggle label{align-items:center;gap:.4rem;display:flex}.buyer-form{background:#f9fafb;border:1px solid #e0e0e0;border-radius:8px;padding:1rem}.buyer-form h3{margin:0 0 .75rem;font-size:.95rem}.buyer-form-grid{grid-template-columns:1fr 1fr;gap:.6rem 1rem;margin-bottom:.75rem;display:grid}.buyer-form-grid label{color:#444;flex-direction:column;gap:.25rem;font-size:.82rem;display:flex}.buyer-form-grid label.span-2{grid-column:span 2}.buyer-form-grid input{border:1px solid #d0d0d0;border-radius:4px;padding:.4rem .5rem;font-size:.85rem}.buyer-form button,.generate-row button{background:var(--navy);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-weight:600}.buyer-form button:disabled,.generate-row button:disabled{opacity:.5;cursor:default}.generate-row{align-items:center;gap:.75rem;display:flex}.statements-hint{color:#888;font-size:.82rem}.statements-status{color:#1f5fa8;font-size:.85rem}.pdf-preview{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.pdf-preview-head{background:#f3f4f6;border-bottom:1px solid #ddd;align-items:center;gap:.75rem;padding:.45rem .75rem;display:flex}.pdf-preview-frame{background:#fff;border:0;width:100%;height:calc(100vh - 7rem);min-height:480px;display:block}.pdf-preview-empty{text-align:center;color:#888;padding:2rem}.statements-head{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.statements-head .sec{margin:0}.access-wrap{gap:16px;max-width:720px;display:grid}.access-panel h2{margin:0 0 8px;font-size:16px}.access-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.access-count{color:var(--ink-soft);margin-left:4px;font-size:12px}.access-msg{color:var(--navy);margin-left:8px;font-size:12px}.access-table{border-collapse:collapse;width:100%;font-size:13px}.access-table th,.access-table td{border:1px solid var(--line);text-align:left;padding:7px 10px}.access-table th{background:#eef1f4}.access-table td.access-check{text-align:center}.access-table td.access-check input{cursor:pointer;width:18px;height:18px}.access-table tr.access-off td:first-child{color:var(--ink-soft)}.access-admins{margin:0 0 10px;padding:0;list-style:none}.access-admins li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.access-add{gap:8px;display:flex}.access-add input{border:1px solid var(--line);border-radius:4px;flex:1;padding:6px 8px}.access-preview-bar{color:#6b4e00;background:#fff6dc;border:1px solid #e6c15a;border-radius:6px;align-items:center;gap:12px;margin-bottom:12px;padding:8px 14px;font-size:13px;display:flex}.access-empty{text-align:center;max-width:520px;color:var(--ink-soft);margin:60px auto;line-height:1.7}.app-shell-loading{height:100vh;color:var(--ink-soft);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.login-screen{background:var(--paper);justify-content:center;align-items:center;height:100vh;display:flex}.login-form{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--navy);border-radius:6px;flex-direction:column;gap:.75rem;width:320px;padding:2rem;display:flex}.login-form h1{text-align:center;color:var(--navy-deep);margin:0 0 .5rem;font-size:1.1rem}.login-form label{color:var(--ink-soft);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.login-form input{border:1px solid var(--line);border-radius:5px;padding:.5rem .6rem;font-size:.9rem}.login-form input:focus{border-color:var(--navy);outline:none}.login-form button{border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;border-radius:5px;margin-top:.5rem;padding:.6rem;font-weight:600}.login-form button:hover{background:var(--navy-deep)}.login-form button:disabled{opacity:.6;cursor:default}.login-error{color:var(--danger);margin:0;font-size:.85rem}.app-shell{min-height:100vh;padding:20px 28px 60px}.app-topbar{border-bottom:2px solid var(--navy);justify-content:space-between;align-items:baseline;margin-bottom:18px;padding-bottom:14px;display:flex}.app-topbar h1{color:var(--navy-deep);letter-spacing:-.3px;margin:0;font-size:20px}.app-topbar .sub{color:var(--ink-soft);margin-top:4px;font-size:12px}.app-topbar-right{color:var(--ink-soft);align-items:center;gap:.75rem;font-size:12px;display:flex}.app-topbar-right button{border:1px solid var(--navy);color:var(--navy);cursor:pointer;background:#fff;border-radius:5px;padding:5px 12px;font-size:12px}.app-topbar-right button:hover{background:#eef1f4}.app-nav{gap:2px;margin-bottom:18px;display:flex}.app-nav a{border:1px solid var(--line);color:var(--ink-soft);background:#eef1f4;border-bottom:none;border-radius:6px 6px 0 0;padding:9px 18px;font-size:13px;text-decoration:none}.app-nav a.active{background:var(--card);color:var(--navy-deep);border-color:var(--navy);font-weight:700;position:relative;top:1px}.app-main{min-width:0}.panel{background:var(--card);border:1px solid var(--line);border-radius:6px;margin-bottom:16px;padding:22px}h2.sec{color:var(--navy-deep);border-left:4px solid var(--amber);margin:0 0 4px;padding-left:8px;font-size:15px}p.hint{color:var(--ink-soft);margin:2px 0 14px 12px;font-size:12px}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.stat-card{background:#f5f7f9;border-radius:6px;padding:12px 14px}.stat-card .lbl{color:var(--ink-soft);font-size:11px}.stat-card .val{color:var(--navy-deep);margin-top:2px;font-size:19px;font-weight:700}.stat-card .sub{color:var(--ink-soft);margin-top:2px;font-size:11px}.pane-hidden{visibility:hidden;pointer-events:none;height:0;overflow:hidden}.print-only{display:none}.export-bar{align-items:center;gap:8px;display:inline-flex}.export-msg{color:var(--ink-soft);font-size:12px}@media print{@page{size:A4 landscape;margin:10mm}html,body{font-size:10px;background:#fff!important}.app-topbar,.app-nav,.no-print,.toolbar-right,.filter-row,.view-tabs,.bulk-bar,.cat-manager,.pager,.hint,.col-resizer,.row-actions,.toast,.calf-panel{display:none!important}.view-tabs.print-info{display:flex!important}.view-tabs.print-info button,.view-tabs.print-info select,.view-tabs.print-info .no-print,.panel.no-print{display:none!important}.print-only{display:block}.print-header{border-bottom:2px solid #1f3350;margin-bottom:8px;padding-bottom:6px}.print-title{color:#1f3350;font-size:15px;font-weight:700}.print-sub{color:#555;margin-top:2px;font-size:10px}.app-shell,.app-main,.panel,.base-data-page{width:100%!important;max-width:none!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important}.grid-scroll,.analytics-scroll{border:none!important;max-height:none!important;overflow:visible!important}.base-data-grid th,.analytics-table th{position:static!important}.base-data-grid,.analytics-table{width:100%!important;font-size:9px!important}.base-data-grid{table-layout:auto!important}.base-data-grid col{width:auto!important}.base-data-grid th,.base-data-grid td{word-break:keep-all;overflow-wrap:anywhere;white-space:normal!important}.base-data-grid td[style*="text-align: right"],.base-data-grid td.cell-calc,.base-data-grid th{white-space:nowrap!important;overflow-wrap:normal!important}.base-data-grid td input,.base-data-grid td select{appearance:none;background:0 0!important;border:none!important;height:auto!important;padding:1px 3px!important;font-size:9px!important}.analytics-table th,.analytics-table td{padding:2px 5px!important}.base-data-grid.print-wide{zoom:.72}.cust-scroll{border:none!important;max-height:none!important;overflow:visible!important}.cust-grid{zoom:.5}.cust-grid th,.cust-grid td{position:static!important}.cust-grid .day-h,.cust-grid .day-cell{min-width:0!important;max-width:none!important}.cust-grid .day-cell{white-space:normal}.modal-overlay{display:none!important}input[type=date]::-webkit-calendar-picker-indicator{display:none}thead{display:table-header-group}tr{break-inside:avoid}.sub-title,.stat-cards{break-after:avoid}.stat-cards{grid-template-columns:repeat(4,1fr)!important;gap:6px!important;margin-bottom:8px!important}.stat-card{padding:6px 8px!important}.stat-card .val{font-size:13px!important}.bar-chart{break-inside:avoid;height:110px!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
