:root{--qy-canvas:#f6f7f8;--qy-surface:#ffffff;--qy-ink:#0d1916;--qy-ink-2:#34423e;--qy-muted:#75807c;--qy-line:rgba(13,25,22,.08);--qy-line-2:rgba(13,25,22,.13);--qy-accent:#0a8f74;--qy-accent-2:#10b981;--qy-accent-soft:#e2f5ee;--qy-gold:#e9a23b;--qy-rose:#e5484d;--qy-sky:#2f80ed;--qy-violet:#7c5cff;--qy-side:#0b1513;--qy-radius:20px;--qy-shadow-sm:0 1px 2px rgba(13,25,22,.04),0 4px 16px -6px rgba(13,25,22,.08);--qy-shadow:0 1px 2px rgba(13,25,22,.05),0 18px 40px -18px rgba(13,25,22,.22);--qy-font:"Segoe UI Variable Text","Segoe UI","SF Pro Text",-apple-system,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC",sans-serif;--qy-num:"Segoe UI Variable Display","SF Pro Display","Segoe UI",-apple-system,"DIN Alternate",sans-serif;--brand:var(--qy-accent)}body,html{background:var(--qy-canvas)}body{font-family:var(--qy-font);color:var(--qy-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:rgba(16,185,129,.22)}:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--qy-accent-2);outline-offset:2px}.qy-shell{--side-w:236px;min-height:100dvh;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);transition:grid-template-columns .28s cubic-bezier(.2,.8,.2,1)}html[data-nav=rail] .qy-shell{--side-w:78px}.qy-sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:14px;padding:18px 12px 14px;overflow:hidden;color:var(--qy-ink-2);background:#ffffff;border-right:1px solid var(--qy-line);box-shadow:inset 1px 0 0 rgba(255,255,255,.8)}.qy-shell [data-tone]{--tone:#0a8f74;--tone-bg:#e2f5ee}.qy-shell [data-tone=sky]{--tone:#2b7bd8;--tone-bg:#e3effd}.qy-shell [data-tone=violet]{--tone:#7c5cff;--tone-bg:#efebff}.qy-shell [data-tone=rose]{--tone:#e0567a;--tone-bg:#fde8ee}.qy-shell [data-tone=amber]{--tone:#d38a12;--tone-bg:#fdf1dc}.qy-shell [data-tone=indigo]{--tone:#5468e8;--tone-bg:#e8ebfd}.qy-shell [data-tone=teal]{--tone:#0f9488;--tone-bg:#dcf5f1}.qy-shell [data-tone=orange]{--tone:#e2733b;--tone-bg:#fdebe0}.qy-brand{justify-content:space-between;gap:8px;min-height:40px;padding:0 4px 0 6px}.qy-brand,.qy-logo{display:flex;align-items:center}.qy-logo{gap:10px;color:var(--qy-ink);text-decoration:none;min-width:0}.qy-logo-mark{width:34px;height:34px;flex:none;display:grid;place-items:center;color:#fff;font:800 19px/1 var(--qy-num);background:linear-gradient(140deg,#34d399,#10b981);border-radius:11px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 8px 18px -8px rgba(124,92,255,.55)}.qy-logo-text{font-size:17px;font-weight:750;letter-spacing:.06em;white-space:nowrap}.qy-collapse{width:32px;height:32px;flex:none;display:grid;place-items:center;color:var(--qy-muted);background:transparent;border:0;border-radius:9px;cursor:pointer;transition:background .18s,color .18s}.qy-collapse:hover{color:var(--qy-ink);background:rgba(255,255,255,.8)}.qy-books{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;background:rgba(255,255,255,.65);border:1px solid var(--qy-line);border-radius:13px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.qy-books button{min-height:34px;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--qy-muted);background:transparent;border:0;border-radius:9px;font:600 13px/1 var(--qy-font);cursor:pointer;transition:all .18s}.qy-books button:hover{color:var(--qy-ink)}.qy-books button.on{color:var(--qy-ink);background:#fff;box-shadow:0 1px 2px rgba(13,25,22,.06),0 6px 14px -8px rgba(76,90,135,.35)}.qy-books button.on svg{color:var(--qy-accent)}.qy-nav{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;margin:0 -4px;padding:0 4px}.qy-nav::-webkit-scrollbar{display:none}.qy-nav-group{display:grid;gap:2px;padding-bottom:6px}.qy-nav-group+.qy-nav-group{padding-top:8px;border-top:1px dashed rgba(76,90,135,.14)}.qy-nav a{position:relative;min-height:40px;display:flex;align-items:center;gap:11px;padding:0 8px;color:var(--qy-ink-2);border-radius:12px;font-size:14px;font-weight:550;text-decoration:none;white-space:nowrap;transition:color .16s,background .16s,box-shadow .16s}.qy-nav a svg{flex:none;box-sizing:content-box;width:17px;height:17px;padding:6px;color:var(--tone);background:var(--tone-bg);border-radius:9px;transition:transform .18s}.qy-nav a:hover{background:rgba(255,255,255,.75)}.qy-nav a:hover svg{transform:scale(1.06)}.qy-nav a.on{color:var(--qy-ink);font-weight:700;background:#fff;box-shadow:0 1px 2px rgba(13,25,22,.05),0 10px 22px -14px rgba(76,90,135,.5)}.qy-nav a.on svg{color:#fff;background:var(--tone);box-shadow:0 6px 14px -6px var(--tone)}.qy-side-foot{gap:8px;padding:10px 6px 0;border-top:1px dashed rgba(76,90,135,.14)}.qy-me,.qy-side-foot{display:flex;align-items:center}.qy-me{flex:1 1;min-width:0;gap:10px}.qy-avatar{width:34px;height:34px;flex:none;display:grid;place-items:center;color:#7a4b00;background:linear-gradient(140deg,#fef3c7,#fdba74);border-radius:50%;font-weight:800;font-size:14px;box-shadow:0 0 0 2px #fff}.qy-me-text{min-width:0;display:grid}.qy-me-text b{overflow:hidden;color:var(--qy-ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.qy-me-text small{color:var(--qy-muted);font-size:11px}.qy-logout{width:34px;height:34px;flex:none;display:grid;place-items:center;color:var(--qy-muted);background:transparent;border:0;border-radius:9px;cursor:pointer}.qy-logout:hover{color:#e0567a;background:#fde8ee}html[data-nav=rail] .qy-books button span,html[data-nav=rail] .qy-logo-text,html[data-nav=rail] .qy-me-text,html[data-nav=rail] .qy-nav a span{display:none}html[data-nav=rail] .qy-brand{flex-direction:column;gap:10px;padding:0}html[data-nav=rail] .qy-books{grid-auto-flow:row}html[data-nav=rail] .qy-nav a{justify-content:center;padding:0}html[data-nav=rail] .qy-side-foot{flex-direction:column;padding-inline:0}html[data-nav=rail] .qy-collapse svg{transform:scaleX(-1)}html[data-nav=rail] .qy-nav a[data-tip]:hover:after{content:attr(data-tip);position:fixed;left:72px;padding:6px 10px;color:var(--qy-ink);background:#fff;border:1px solid var(--qy-line);border-radius:8px;font-size:12px;font-weight:600;pointer-events:none;z-index:50;box-shadow:var(--qy-shadow)}.qy-stage{position:relative;min-width:0;isolation:isolate}.qy-stage:before{content:"";position:absolute;inset:0 0 auto 0;height:560px;z-index:-1;background:none;display:none;pointer-events:none}.qy-topbar{position:relative;z-index:20;height:64px;justify-content:space-between;gap:16px;padding:0 clamp(18px,3vw,40px)}.qy-crumb,.qy-topbar{display:flex;align-items:center}.qy-crumb{min-width:0;gap:10px}.qy-crumb b{overflow:hidden;font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.qy-book-dot{width:28px;height:28px;display:grid;place-items:center;color:var(--qy-accent);background:var(--qy-accent-soft);border-radius:9px}.qy-book-dot.personal{color:#d38a12;background:#fdf1dc}.qy-dev{padding:2px 7px;color:#a3620a;background:#fdf1dc;border-radius:6px;font:700 10px/1.6 var(--qy-num);letter-spacing:.08em}.qy-actions{display:flex;align-items:center;gap:8px}.qy-icon-btn{position:relative;width:40px;height:40px;display:grid;place-items:center;color:var(--qy-ink-2);background:rgba(255,255,255,.85);border:1px solid var(--qy-line);border-radius:12px;box-shadow:var(--qy-shadow-sm);text-decoration:none;transition:transform .16s,color .16s}.qy-icon-btn:hover{color:var(--qy-accent);transform:translateY(-1px)}.qy-icon-btn[data-tip]:hover:after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:5px 9px;color:var(--qy-ink);background:#fff;border:1px solid var(--qy-line);border-radius:7px;font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:var(--qy-shadow-sm)}.qy-cta{height:40px;display:inline-flex;align-items:center;gap:7px;padding:0 16px 0 13px;color:#fff;background:linear-gradient(135deg,#34d399,#10b981 50%,#0ea5a4);border-radius:12px;font-size:14px;font-weight:700;text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -12px rgba(16,185,129,.9);transition:transform .16s,box-shadow .16s}.qy-cta:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 14px 26px -12px rgba(16,185,129,.95)}.qy-content{min-width:0}.dash{max-width:1360px;margin:0 auto;padding:18px clamp(18px,3vw,40px) 64px}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.dash-date{display:inline-flex;align-items:center;gap:6px;color:var(--qy-muted);font:600 13px/1 var(--qy-num);letter-spacing:.04em}.dash-head h1{margin:8px 0 0;font-size:clamp(30px,3.4vw,40px);font-weight:750;letter-spacing:-.03em;line-height:1.1}.dash-books{display:flex;gap:4px;padding:4px;background:rgba(255,255,255,.7);border:1px solid var(--qy-line);border-radius:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dash-books a{min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;color:var(--qy-muted);border-radius:10px;font-size:14px;font-weight:600;text-decoration:none}.dash-books a.on{color:var(--qy-ink);background:#fff;box-shadow:var(--qy-shadow-sm)}.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(0,auto);gap:16px}.tile{position:relative;min-width:0;padding:22px;color:var(--qy-ink);background:var(--qy-surface);border:1px solid var(--qy-line);border-radius:var(--qy-radius);box-shadow:var(--qy-shadow-sm);text-decoration:none}a.tile{transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}a.tile:hover{transform:translateY(-2px);box-shadow:var(--qy-shadow)}.tile-hero{grid-column:span 6;grid-row:span 2;flex-direction:column;gap:18px;min-height:260px;padding:26px 28px;color:var(--qy-ink);background:#f2f8f5;border:1px solid var(--qy-line);overflow:hidden;box-shadow:var(--qy-shadow-sm)}.hero-top,.tile-hero{display:flex;justify-content:space-between}.hero-top{align-items:center;gap:12px}.hero-label{display:inline-flex;align-items:center;gap:8px;color:#0b7a62;font-size:14px;font-weight:650}.hero-label svg{box-sizing:content-box;padding:6px;color:#fff;background:linear-gradient(140deg,#34d399,#10b981);border-radius:9px}.hero-chip{display:inline-flex;align-items:center;gap:6px;max-width:55%;padding:6px 11px;color:var(--qy-ink-2);background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.9);border-radius:99px;font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hero-chip,.hero-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-value{display:block;color:var(--qy-ink);font:700 clamp(34px,4.4vw,54px)/1.05 var(--qy-num);letter-spacing:-.035em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-split{height:8px;overflow:hidden;background:#fcd9b6;border-radius:99px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}.hero-split i{height:100%;display:block;background:linear-gradient(90deg,#6ee7b7,#34d399);border-radius:99px}.hero-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;color:var(--qy-ink-2);font:550 13px/1.2 var(--qy-num);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-legend span{display:inline-flex;align-items:center;gap:7px}.hero-legend .dot{width:8px;height:8px;border-radius:50%}.hero-legend .dot.in{background:#34d399}.hero-legend .dot.out{background:#fb923c}.hero-accounts{margin-left:auto;padding:4px 9px;background:rgba(255,255,255,.7);border-radius:8px}.tile-stat{container-type:inline-size;grid-column:span 2;display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:122px}.tile-stat small{color:var(--qy-muted);font-size:13px;font-weight:600}.tile-stat strong{display:block;overflow:hidden;font:700 clamp(13px,12.5cqi,23px)/1.15 var(--qy-num);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px}.tile-stat.in .stat-icon{color:#047857;background:#d1fae5}.tile-stat.in strong{color:#047857}.tile-stat.out .stat-icon{color:#b45309;background:#fef3c7}.tile-stat.out strong{color:#b45309}.tile-stat.net .stat-icon{color:#1d4ed8;background:#dbeafe}.tile-stat.net.neg strong{color:var(--qy-rose)}.tile-todo{grid-column:span 6;grid-template-columns:auto minmax(0,1fr);gap:20px;min-height:122px}.tile-todo,.todo-head{display:grid;align-items:center}.todo-head{grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:12px}.todo-bell{position:relative;grid-row:span 2;width:48px;height:48px;display:grid;place-items:center;color:var(--qy-ink-2);background:#f1f3f0;border-radius:15px}.tile-todo.has .todo-bell{color:#e0567a;background:linear-gradient(140deg,#fde8ee,#fdebe0);box-shadow:inset 0 0 0 1px rgba(224,86,122,.12)}.todo-bell i{position:absolute;top:9px;right:10px;width:8px;height:8px;background:#f43f5e;border-radius:50%;animation:qy-pulse 1.8s ease-out infinite}@keyframes qy-pulse{0%{box-shadow:0 0 0 0 rgba(244,63,94,.45)}to{box-shadow:0 0 0 8px rgba(244,63,94,0)}}.todo-head strong{font:750 30px/1 var(--qy-num)}.todo-head small{color:var(--qy-muted);font-size:12px}.tile-todo ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.tile-todo li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 11px;color:var(--qy-ink-2);background:#f6f7f5;border-radius:10px;font-size:13px}.tile-todo li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-todo li b{min-width:22px;padding:1px 7px;color:var(--qy-accent);background:var(--qy-accent-soft);border-radius:99px;font:700 12px/1.5 var(--qy-num);text-align:center}.tile-todo li.warn b{color:#c2410c;background:#ffedd5}.tile-todo li.clear{justify-content:flex-start;gap:7px;color:var(--qy-accent);background:var(--qy-accent-soft)}.tile-quick{grid-column:span 5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.quick{min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:var(--qy-ink-2);border-radius:15px;text-decoration:none;transition:background .18s,transform .18s}.quick:hover{background:#f5f7f5;transform:translateY(-2px)}.quick span{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;transition:transform .2s}.quick:hover span{transform:scale(1.06) rotate(-3deg)}.quick b{font-size:13px;font-weight:650}.quick.emerald span{color:#fff;background:linear-gradient(140deg,#34d399,#0a8f74);box-shadow:0 10px 20px -10px rgba(10,143,116,.9)}.quick.sky span{color:#1d4ed8;background:#dbeafe}.quick.violet span{color:#6d28d9;background:#ede9fe}.quick.amber span{color:#b45309;background:#fef3c7}.quick.rose span{color:#be123c;background:#ffe4e6}.quick.teal span{color:#0f766e;background:#ccfbf1}.tile-accounts{grid-column:span 7;grid-row:span 2}.tile-accounts header,.tile-structure header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tile-accounts h2{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700}.tile-accounts h2 svg{color:var(--qy-accent)}.tile-more{width:34px;height:34px;display:grid;place-items:center;color:var(--qy-muted);border-radius:10px;transition:background .16s,color .16s}.tile-more:hover{color:var(--qy-accent);background:var(--qy-accent-soft)}.tile-accounts ul{display:grid;margin:0;padding:0;list-style:none}.tile-accounts li{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(60px,140px) auto;align-items:center;gap:14px;padding:12px 4px;border-top:1px solid var(--qy-line)}.tile-accounts li:first-child{border-top:0}.acc-icon{width:40px;height:40px;display:grid;place-items:center;color:var(--qy-accent);background:var(--qy-accent-soft);border-radius:12px}.acc-icon.bank{color:#1d4ed8;background:#dbeafe}.acc-icon.wechat{color:#15803d;background:#dcfce7}.acc-icon.alipay{color:#0369a1;background:#e0f2fe}.acc-icon.credit_card{color:#7c3aed;background:#ede9fe}.acc-icon.cash{color:#b45309;background:#fef3c7}.acc-name{min-width:0;display:grid}.acc-name b{overflow:hidden;font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.acc-name small{color:var(--qy-muted);font-size:12px}.acc-bar{height:6px;overflow:hidden;background:#eef0ed;border-radius:99px}.acc-bar i{height:100%;display:block;background:linear-gradient(90deg,#a7f3d0,#34d399);border-radius:99px}.tile-accounts li strong{font:700 15px/1 var(--qy-num);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.tile-accounts li strong.neg{color:var(--qy-rose)}.acc-empty{grid-template-columns:auto 1fr!important;color:var(--qy-accent)}.tile-structure{grid-column:span 5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.tile-structure a{display:grid;justify-items:start;gap:4px;padding:16px;color:var(--qy-ink);background:#f6f7f5;border-radius:14px;text-decoration:none;transition:background .18s}.tile-structure a:nth-child(2) svg{color:#7c5cff}.tile-structure a:nth-child(3) svg{color:#e2733b}.tile-structure a:hover{background:#eef1ee}.tile-structure svg{color:var(--qy-accent);margin-bottom:6px}.tile-structure strong{font:750 26px/1 var(--qy-num)}.tile-structure small{color:var(--qy-muted);font-size:12px}.qy-content>:is(.assets-page,.audit-page,.bank-import-page,.bank-reconcile-page,.books-page,.budget-page,.closing-page,.invoice-page,.journals-page,.ledger-page,.master-page,.members-page,.notice-page,.ops-page,.project-page,.receivables-page,.statement-page,.reimbursement-page,.reports-page,.voucher-page){min-height:0!important;max-width:1360px;margin:0 auto;padding:18px clamp(18px,3vw,40px) 72px!important;color:var(--qy-ink);background:transparent!important;font-family:var(--qy-font)!important}.assets-page{--qy-page-icon:url(/icons/asset.svg)}.audit-page{--qy-page-icon:url(/icons/audit.svg)}.bank-import-page{--qy-page-icon:url(/icons/upload.svg)}.bank-reconcile-page{--qy-page-icon:url(/icons/bank.svg)}.books-page{--qy-page-icon:url(/icons/books.svg)}.budget-page{--qy-page-icon:url(/icons/budget.svg)}.closing-page{--qy-page-icon:url(/icons/closing.svg)}.invoice-page{--qy-page-icon:url(/icons/invoice.svg)}.mailbox-page{--qy-page-icon:url(/icons/mail.svg)}.journals-page{--qy-page-icon:url(/icons/journal.svg)}.ledger-page{--qy-page-icon:url(/icons/flow.svg)}.master-page{--qy-page-icon:url(/icons/masterData.svg)}.members-page{--qy-page-icon:url(/icons/members.svg)}.notice-page{--qy-page-icon:url(/icons/bell.svg)}.ops-page{--qy-page-icon:url(/icons/ops.svg)}.project-page{--qy-page-icon:url(/icons/project.svg)}.receivables-page,.statement-page{--qy-page-icon:url(/icons/counterparty.svg)}.reimbursement-page{--qy-page-icon:url(/icons/receipt.svg)}.reports-page{--qy-page-icon:url(/icons/report.svg)}.voucher-page{--qy-page-icon:url(/icons/voucher.svg)}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header){position:relative;isolation:isolate;box-sizing:border-box;width:100%!important;max-width:none!important;min-height:112px;margin:0 0 20px!important;padding:26px 30px 26px 104px!important;color:var(--qy-ink)!important;background:var(--qy-surface)!important;border:1px solid var(--qy-line)!important;border-radius:24px!important;box-shadow:var(--qy-shadow-sm)!important;overflow:hidden}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header):before{content:"";position:absolute;left:28px;top:26px;z-index:-1;width:56px;height:56px;background:#e2f5ee;border-radius:17px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 12px 24px -14px rgba(99,102,241,.55)}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header):after{content:"";position:absolute;left:44px;top:42px;width:24px;height:24px;background:#0a8f74;-webkit-mask:var(--qy-page-icon,url(/icons/sparkle.svg)) center /contain no-repeat;mask:var(--qy-page-icon,url(/icons/sparkle.svg)) center /contain no-repeat;pointer-events:none}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header) :is(h1){margin:2px 0 0!important;color:var(--qy-ink)!important;font-size:clamp(24px,2.4vw,30px)!important;font-weight:750!important;letter-spacing:-.025em!important;line-height:1.2!important}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header) p{margin:0!important;color:var(--qy-accent)!important;font-size:12px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase}.qy-content .assets-header>div:first-child>strong,.qy-content .assets-header>div>span:not([class]),.qy-content .assets-header>span:not([class]),.qy-content .assets-header>strong,.qy-content .audit-header>div:first-child>strong,.qy-content .audit-header>div>span:not([class]),.qy-content .audit-header>span:not([class]),.qy-content .audit-header>strong,.qy-content .bank-import-hero>div:first-child>strong,.qy-content .bank-import-hero>div>span:not([class]),.qy-content .bank-import-hero>span:not([class]),.qy-content .bank-import-hero>strong,.qy-content .bank-reconcile-hero>div:first-child>strong,.qy-content .bank-reconcile-hero>div>span:not([class]),.qy-content .bank-reconcile-hero>span:not([class]),.qy-content .bank-reconcile-hero>strong,.qy-content .books-header>div:first-child>strong,.qy-content .books-header>div>span:not([class]),.qy-content .books-header>span:not([class]),.qy-content .books-header>strong,.qy-content .budget-hero>div:first-child>strong,.qy-content .budget-hero>div>span:not([class]),.qy-content .budget-hero>span:not([class]),.qy-content .budget-hero>strong,.qy-content .closing-header>div:first-child>strong,.qy-content .closing-header>div>span:not([class]),.qy-content .closing-header>span:not([class]),.qy-content .closing-header>strong,.qy-content .invoice-header>div:first-child>strong,.qy-content .invoice-header>div>span:not([class]),.qy-content .invoice-header>span:not([class]),.qy-content .invoice-header>strong,.qy-content .journals-header>div:first-child>strong,.qy-content .journals-header>div>span:not([class]),.qy-content .journals-header>span:not([class]),.qy-content .journals-header>strong,.qy-content .members-header>div:first-child>strong,.qy-content .members-header>div>span:not([class]),.qy-content .members-header>span:not([class]),.qy-content .members-header>strong,.qy-content .notice-page>header>div:first-child>strong,.qy-content .notice-page>header>div>span:not([class]),.qy-content .notice-page>header>span:not([class]),.qy-content .notice-page>header>strong,.qy-content .ops-header>div:first-child>strong,.qy-content .ops-header>div>span:not([class]),.qy-content .ops-header>span:not([class]),.qy-content .ops-header>strong,.qy-content .project-hero>div:first-child>strong,.qy-content .project-hero>div>span:not([class]),.qy-content .project-hero>span:not([class]),.qy-content .project-hero>strong,.qy-content .receivables-header>div:first-child>strong,.qy-content .receivables-header>div>span:not([class]),.qy-content .receivables-header>span:not([class]),.qy-content .receivables-header>strong,.qy-content .reimbursement-header>div:first-child>strong,.qy-content .reimbursement-header>div>span:not([class]),.qy-content .reimbursement-header>span:not([class]),.qy-content .reimbursement-header>strong,.qy-content .statement-header>div:first-child>strong,.qy-content .statement-header>div>span:not([class]),.qy-content .statement-header>span:not([class]),.qy-content .statement-header>strong,.qy-content .voucher-header>div:first-child>strong,.qy-content .voucher-header>div>span:not([class]),.qy-content .voucher-header>span:not([class]),.qy-content .voucher-header>strong{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.qy-content .project-guide{display:none!important}.qy-content>main:not(.dash) :is(header,.ledger-nav-row) :is(a[href="/"],a[href^="/?"],.back-link,.dev-badge){display:none!important}.qy-content>main:not(.dash) header>div:first-child:not(:has(h1,h2,nav,form,button,a:not([href="/"]):not([href^="/?"]))){display:none!important}.qy-content .ledger-nav-row:not(:has(a:not([href^="/?"]))){display:none!important}.qy-content>main :is(nav[aria-label="切换账本"],.budget-book-tabs,.master-book-tabs,.members-books,.voucher-header>nav,.receivables-header>nav){display:none!important}.qy-content .project-books>a:not(.manage){display:none!important}.qy-content .project-books{justify-content:flex-end}.qy-content>main:not(.dash) header a[href]:not([href="/"]):not([href^="/?"]):is([href^="/vouchers"],[href^="/receivables"],[href^="/ledger"],[href^="/invoices"],[href^="/bank-imports"],[href^="/reimbursements"]):first-child{display:inline-flex;align-items:center;min-height:28px!important;margin:0 0 8px!important;padding:0 10px!important;color:var(--qy-ink-2)!important;background:rgba(255,255,255,.75);border:1px solid var(--qy-line);border-radius:99px;font-size:12px!important;font-weight:600;text-decoration:none}.qy-content>main:not(.dash) header :is(.ledger-link a,.bank-template-link,.reconcile-print-actions a,.reconcile-print-actions button),.qy-content>main:not(.dash) header nav a{border-radius:11px!important}.qy-content>main:not(.dash) header nav a:is(.selected,.active){color:#fff!important;background:var(--qy-ink)!important;border-color:var(--qy-ink)!important}.qy-content :is(.budget-toolbar,.project-period){border:1px solid var(--qy-line)!important;border-radius:16px!important;box-shadow:var(--qy-shadow-sm)}.qy-content :is(.budget-toolbar,.project-period) a{min-height:34px!important;padding:0 14px;color:var(--qy-ink-2)!important;background:#f3f5f2;border-radius:10px;font-size:13px!important;font-weight:650!important;text-decoration:none!important;transition:background .16s,color .16s}.qy-content :is(.budget-toolbar,.project-period) a:hover{color:var(--qy-accent)!important;background:var(--qy-accent-soft)}.qy-content :is(.budget-toolbar,.project-period) b{font-family:var(--qy-num);font-size:16px;letter-spacing:.02em}.qy-content :is(.books-card,.budget-panel,.project-card,.bank-import-card,.bank-import-guide,.bank-reconcile-new>article,.bank-reconcile-new>aside,.reconcile-sheet,.reconcile-history,.notice-filter,.audit-card){border:1px solid var(--qy-line)!important;border-radius:var(--qy-radius)!important;box-shadow:var(--qy-shadow-sm)!important}.qy-content :is(.books-metrics,.budget-summary,.project-metrics,.reconcile-metrics,.audit-metrics,.closing-overview,.members-overview)>article{border:1px solid var(--qy-line)!important;border-radius:18px!important;box-shadow:var(--qy-shadow-sm)!important}.qy-content :is(.books-metrics,.audit-metrics) b,.qy-content :is(.books-metrics,.budget-summary,.project-metrics,.reconcile-metrics,.audit-metrics,.closing-overview,.members-overview) strong{font-family:var(--qy-num)!important;letter-spacing:-.02em}.qy-content table th{letter-spacing:.02em}.qy-content :is(input,select,textarea){font-family:var(--qy-font)}.login-page{position:relative;min-height:100dvh;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr)!important;color:var(--qy-ink);background:var(--qy-canvas)!important}.login-brand{align-self:stretch!important;flex-direction:column;align-items:flex-start!important;justify-content:space-between;padding:clamp(32px,5vw,64px)!important;color:var(--qy-ink)!important}.login-brand>img{width:52px!important;height:52px!important;border-radius:15px!important;box-shadow:0 0 0 3px #fff,0 18px 40px -16px rgba(99,102,241,.6)!important}.login-brand div{gap:14px!important}.login-brand b{font-size:clamp(40px,5vw,64px)!important;font-weight:800;letter-spacing:.02em;line-height:1;color:#0b5f4e}.login-brand small{max-width:18em;color:var(--qy-ink-2)!important;font-size:16px!important;letter-spacing:.04em}.login-brand:after{content:"";display:block;width:100%;max-width:420px;height:64px;background:url(/icons/flow.svg) 0 50%/26px no-repeat,url(/icons/invoice.svg) 72px 50%/26px no-repeat,url(/icons/voucher.svg) 144px 50%/26px no-repeat,url(/icons/report.svg) 216px 50%/26px no-repeat,url(/icons/budget.svg) 288px 50%/26px no-repeat;opacity:.28;display:none}.login-card{margin:clamp(16px,4vw,48px);color:var(--qy-ink);background:rgba(255,255,255,.82)!important;border:1px solid rgba(255,255,255,.95)!important;border-radius:28px!important;box-shadow:0 40px 80px -40px rgba(76,90,135,.45)!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card>span{display:none!important}.login-card>p{color:var(--qy-accent)!important}.login-card h1{font-weight:800}.login-card button:not(.wechat-qr-login button),.login-form button{border-radius:12px!important}.login-form button{background:linear-gradient(135deg,#34d399,#10b981 50%,#0ea5a4)!important;border:0!important}@media (max-width:860px){.login-page{grid-template-columns:minmax(0,1fr)!important;padding:20px!important}.login-brand{flex-direction:row;align-items:center!important;padding:8px 4px 20px!important}.login-brand b{font-size:28px!important}.login-brand:after{display:none}.login-card{margin:0}}@media (max-width:1180px){.tile-hero{grid-column:span 12}.tile-stat{grid-column:span 4}.tile-quick,.tile-structure,.tile-todo{grid-column:span 12}.tile-quick{grid-template-columns:repeat(6,minmax(0,1fr))}.tile-accounts{grid-column:span 12;grid-row:auto}}@media (max-width:900px){.qy-shell,html[data-nav=rail] .qy-shell{grid-template-columns:minmax(0,1fr)}.qy-sidebar{position:fixed;inset:auto 10px 10px 10px;top:auto;z-index:40;height:auto;flex-direction:row;padding:6px;border-radius:20px;border:1px solid var(--qy-line);background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 40px -18px rgba(76,90,135,.45)}.qy-books,.qy-brand,.qy-side-foot{display:none}.qy-nav{flex-direction:row;gap:2px;overflow-x:auto;margin:0;padding:0}.qy-nav-group{display:flex;gap:2px;padding:0!important;border:0!important}.qy-nav a{min-width:54px;min-height:52px;flex-direction:column;justify-content:center;gap:3px;padding:0 6px;font-size:11px}html[data-nav=rail] .qy-nav a span{display:inline}.qy-content{padding-bottom:92px}.qy-cta span{display:none}.qy-cta{width:40px;padding:0;justify-content:center}}@media (max-width:640px){.dash-head{flex-direction:column;align-items:flex-start}.tile-stat{grid-column:span 12;min-height:0;flex-direction:row;align-items:center}.tile-stat small{margin-right:auto}.tile-quick{grid-template-columns:repeat(3,minmax(0,1fr))}.tile-todo{grid-template-columns:minmax(0,1fr)}.tile-accounts li{grid-template-columns:auto minmax(0,1fr) auto}.acc-bar{display:none}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header){padding:86px 20px 20px!important}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header):before{left:20px;top:20px}.qy-content :is(.assets-header,.audit-header,.bank-import-hero,.bank-reconcile-hero,.books-header,.budget-hero,.closing-header,.invoice-header,.journals-header,.ledger-topbar,.master-topbar,.members-header,.notice-page>header,.ops-header,.project-hero,.receivables-header,.statement-header,.reimbursement-header,.reports-header,.voucher-header):after{left:36px;top:36px}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}@media print{.qy-sidebar,.qy-stage:before,.qy-topbar{display:none!important}.qy-shell{display:block}}.qy-content header h1+span{margin-left:10px;color:var(--qy-muted)}