.flow-canvas{display:flex;justify-content:center;padding:30px 18px 90px;overflow-x:auto}.flow-column,.seq,.lane{display:flex;flex-direction:column;align-items:center;gap:9px}.rail-col{position:relative}.rail-col:before{content:"";position:absolute;top:10px;bottom:10px;left:50%;width:2px;background:var(--rail);transform:translate(-50%);z-index:0}.node{position:relative;z-index:1;background:#fff;border:1px solid var(--line);border-radius:12px;min-width:272px;max-width:300px;padding:12px 14px 12px 18px;box-shadow:0 6px 18px #141e1c0f;display:flex;align-items:center;gap:12px;cursor:pointer;transition:box-shadow .16s ease,transform .16s ease,border-color .16s ease}.node:hover{box-shadow:0 12px 28px #141e1c21;transform:translateY(-1px);border-color:#cfc7b6}.node:before{content:"";position:absolute;left:0;top:11px;bottom:11px;width:4px;border-radius:0 4px 4px 0;background:var(--accent, var(--node-approval))}.node--approval{--accent: var(--node-approval)}.node--cashier{--accent: var(--node-cashier)}.node__icon{flex:0 0 34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;background:var(--accent, var(--node-approval))}.node__body{flex:1;min-width:0}.node__title{font-weight:600;font-size:14.5px;line-height:1.25}.node__cap{font-size:12px;color:var(--node-approval);opacity:.8;letter-spacing:.02em}.node__del{position:absolute;top:-9px;right:-9px;opacity:0;transition:opacity .15s ease}.node:hover .node__del{opacity:1}.pill{position:relative;z-index:1;min-width:210px;padding:9px 18px;border-radius:999px;text-align:center;font-weight:600;font-size:13.5px;letter-spacing:.01em;box-shadow:0 6px 16px #141e1c14}.pill--start,.pill--end{background:#2b2f63;color:#eaecff}.pill--end{background:#1f2350}.pill__sub{display:block;font-weight:400;font-size:11.5px;opacity:.75;margin-top:1px}.cond{position:relative;z-index:1;background:#fffdf6;border:1px solid #e7d6ad;border-radius:14px;padding:12px 12px 14px;box-shadow:0 8px 22px #785a1e12}.cond__head{display:flex;align-items:center;gap:8px;font-weight:600;color:#9a6a25;margin-bottom:12px;padding-left:2px}.cond__lanes{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;justify-content:center}.lane{position:relative;min-width:236px;background:#ffffff9e;border:1px dashed #e3d4b4;border-radius:12px;padding:10px 10px 8px;gap:9px}.lane__head{position:relative;z-index:1;width:100%;background:#fff;border:1px solid #ead9b3;border-radius:9px;padding:7px 10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.lane__head:hover{border-color:#c0843c;box-shadow:0 4px 12px #a06e281f}.lane__name{font-weight:600;font-size:13px;color:#875a1c;display:flex;align-items:center;justify-content:space-between;gap:6px}.lane__rule{font-size:11.5px;color:#a98c54;margin-top:2px}.lane__foot{font-size:11.5px;color:#b49a63}.cond__add{align-self:center;margin-top:2px}.insert{position:relative;z-index:2;width:26px;height:26px;border-radius:50%;border:1px dashed var(--rail);background:var(--paper);color:#8a8470;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all .15s ease}.insert:hover{border-color:var(--hero);color:var(--hero);border-style:solid;background:#fff;transform:scale(1.1)}.lane .insert{background:#fbf8f0}:root{--node-start: #4f5bd5;--node-approval: #5b6573;--node-condition: #c0843c;--node-cashier: #b8556a;--node-end: #4f5bd5;--hero: #1f6f6b;--paper: #f4f1ea;--ink: #23282b;--line: #ddd6c8;--rail: #cfc7b6;--font-display: "Bricolage Grotesque", "IBM Plex Sans", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.brand{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.income-month-picker-cell{min-width:86px;min-height:44px;padding:4px 6px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.15}.income-month-picker-name{font-size:14px;font-weight:700}.income-month-picker-total{max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7b7165;font-family:var(--font-mono);font-size:11px;font-weight:800}.income-month-picker-cell.has-income .income-month-picker-total{color:#11645f}.ant-picker-cell-selected .income-month-picker-cell,.ant-picker-cell-range-start .income-month-picker-cell,.ant-picker-cell-range-end .income-month-picker-cell{color:#fff}.ant-picker-cell-selected .income-month-picker-total,.ant-picker-cell-range-start .income-month-picker-total,.ant-picker-cell-range-end .income-month-picker-total{color:#ffffffeb}.income-web-calendar-card{margin-bottom:12px;border-color:#1f6f6b2e;box-shadow:0 12px 30px #23282b0f}.income-web-calendar-card .ant-card-body{padding:14px}.income-web-calendar-shell{display:block}.income-web-calendar-main{min-width:0;overflow-x:auto}.income-web-calendar-weekdays,.income-web-calendar-grid{min-width:630px}.income-web-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:8px}.income-web-calendar-weekdays>div{text-align:center;color:#637078;font-size:12px;font-weight:700}.income-web-calendar-weekdays>div.is-weekend{color:#a35d00}.income-web-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;align-items:stretch;overflow:visible}.income-web-calendar-day{position:relative;min-width:0;min-height:82px;height:100%;padding:8px;border:1px solid #ded8cb;border-radius:10px;background:#ffffffd1;color:var(--ink);cursor:pointer;text-align:left;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.income-web-calendar-day:hover{border-color:#1f6f6b6b;box-shadow:0 8px 22px #23282b14}.income-web-calendar-day.is-muted{background:#f7f4ec;color:#9b9182}.income-web-calendar-day.is-weekend,.income-web-calendar-day.is-holiday,.income-web-calendar-day.is-workday{border-color:#1f6f6b2e}.income-web-calendar-day.has-income{border-color:#1f6f6b61}.income-web-calendar-day.heat-1{background:#edf6f3}.income-web-calendar-day.heat-2{background:#d5ebe5}.income-web-calendar-day.heat-3{background:#a9d6ca;border-color:#146f6070}.income-web-calendar-day.heat-4{background:#5fae9a;border-color:#0c5e5094}.income-web-calendar-day.heat-4,.income-web-calendar-day.heat-4 .income-web-calendar-day-num,.income-web-calendar-day.heat-4 .income-web-calendar-total{color:#053c35}.income-web-calendar-day.is-active{border-color:#1f6f6b;box-shadow:0 0 0 2px #1f6f6b29,0 12px 26px #1f6f6b24;transform:translateY(-1px)}.income-web-calendar-day-head{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}.income-web-calendar-day-num{font-family:var(--font-mono);font-size:13px;font-weight:800}.income-web-calendar-holiday,.income-web-calendar-weekend{font-size:11px;line-height:1.2;font-weight:700;color:#be123c;text-align:right;word-break:break-word}.income-web-calendar-weekend{color:#a35d00}.income-web-calendar-day.is-workday .income-web-calendar-holiday{color:#1d5c99}.income-web-calendar-total{margin-top:8px;padding:6px 7px;border-radius:8px;background:#ffffffa3;box-shadow:inset 0 0 0 1px #1f6f6b1a;color:#11645f;font-family:var(--font-mono);font-size:16px;font-weight:800;word-break:break-word}.income-web-calendar-top{flex:none;align-self:flex-start;padding:2px 5px;border-radius:999px;background:#0d4d43;color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:800;line-height:1.2;box-shadow:0 4px 10px #0d4d432e}.income-web-day-card{display:none}.income-web-day-list{display:flex;flex-direction:column;gap:10px}.income-web-day-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px;border:1px solid #e2dccc;border-radius:10px;background:#fffdf8}.income-web-day-entry-main{min-width:0;display:flex;flex-direction:column;gap:4px}.income-web-day-entry-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.income-web-day-amount{color:#11645f;font-size:15px;font-weight:800}.income-web-day-thumbs{display:flex;flex-wrap:wrap;gap:6px}.income-web-day-thumbs>button{width:28px;height:28px;border:1px solid #d7e6e3;border-radius:7px;background:#eff8f6;color:#1f6f6b;cursor:pointer}.income-ledger-table .ant-table-cell,.income-sync-runs-table .ant-table-cell{vertical-align:middle}.income-ledger-date,.income-ledger-amount,.income-sync-run-time{display:inline-block;white-space:nowrap}.income-ledger-category{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-width:0;white-space:nowrap}.income-ledger-category-name{min-width:0;overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.income-ledger-category .ant-tag{flex:none;margin-inline-end:0}.income-ledger-note{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.income-sync-summary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.income-sync-summary-metric{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:4px 8px;border:1px solid rgba(31,111,107,.12);border-radius:6px;background:#1f6f6b0a;color:#5d6b70;font-size:12px;line-height:1.35;white-space:nowrap}.income-sync-summary-metric b{color:#0f172a;font-family:var(--font-mono)}.income-sync-warning-cell{display:flex;flex-direction:column;gap:4px;max-height:76px;overflow:hidden;color:#334155;line-height:1.45}.income-sync-warning-cell>div{display:-webkit-box;overflow:hidden;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.income-sync-warning-cell>div.is-error{color:#b42318}.income-sync-warning-cell>div.is-more{color:#8a5a00;font-size:12px;-webkit-line-clamp:1}.income-sync-warning-tooltip{max-width:620px;white-space:normal;word-break:break-word;line-height:1.6}.canvas-backdrop{background-color:var(--paper);background-image:radial-gradient(circle at 1px 1px,rgba(0,0,0,.045) 1px,transparent 0);background-size:22px 22px}@media (max-width: 768px){.ant-modal{max-width:96vw!important;top:12px!important;margin:0 auto!important;padding-bottom:0!important}.ant-modal-body{max-height:74vh;overflow-y:auto}.ant-drawer-content-wrapper{max-width:92vw!important}.ant-table-content,.ant-table-body{overflow-x:auto}.ant-table-cell{white-space:nowrap}.ant-statistic-content{font-size:18px!important}.ant-card-body{padding:14px}.income-web-calendar-shell{grid-template-columns:1fr}.income-web-day-card{position:static}.income-web-calendar-weekdays,.income-web-calendar-grid{min-width:680px}.income-web-day-entry{grid-template-columns:1fr}.income-web-day-entry-side{align-items:flex-start}}
