@font-face{font-family:"Xiaoyang Display SC";src:url("../fonts/xiaoyang-display-sc.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:800;}:root{--xy-paper-base:#f7f5ef;--xy-ink-base:#151719;--xy-surface-base:#ffffff;--xy-line-base:#d9ddd8;--xy-line-strong-base:#b9c0bd;--xy-muted-base:#697278;--xy-sky-ink-base:#235f87;--xy-sky:#78bdf2;--xy-signal:#ffd928;--xy-risk-base:#ff6b57;--xy-done-base:#2f7d5c;--xy-touch-min:44px;--xy-radius-control:12px;--xy-radius-card:18px;--xy-shadow-card:0 14px 36px rgba(35,49,58,0.07);--xy-font-ui:"Microsoft YaHei UI","PingFang SC","Microsoft YaHei",sans-serif;--xy-font-display:"Xiaoyang Display SC","Microsoft YaHei UI","PingFang SC",sans-serif;--xy-font-data:"Bahnschrift","DIN Alternate","Segoe UI",sans-serif;--xy-motion-fast:140ms cubic-bezier(0.16,1,0.3,1);}body[data-theme="warm"]{--xy-paper:#f7f4ec;--xy-surface:#ffffff;--xy-surface-control:#fffdf8;--xy-surface-selected:#e7eef3;--xy-ink:#24313a;--xy-body:#47545c;--xy-muted:#657077;--xy-on-signal:#151719;--xy-on-light:#24313a;--xy-line:#d7d0c2;--xy-line-strong:#bfb6a6;--xy-signal-ink:var(--xy-on-signal);--xy-sky-ink:#2c5f87;--xy-risk:#a12f45;--xy-done:#16653b;}body[data-theme="dark"]{--xy-paper:#0e141c;--xy-surface:#182331;--xy-surface-control:#202c3a;--xy-surface-selected:#243547;--xy-ink:#f4f7fb;--xy-body:#cbd5e1;--xy-muted:#a4b3c4;--xy-on-signal:#151719;--xy-on-light:#24313a;--xy-line:#344355;--xy-line-strong:#52657a;--xy-signal-ink:var(--xy-on-signal);--xy-sky-ink:#78bdf2;--xy-risk:#ff9b90;--xy-done:#7dd3a4;}body{font-family:var(--xy-font-ui);background:var(--bg-primary);color:var(--text-primary);}.app-container{background:var(--bg-primary);}.sidebar{width:224px;min-width:224px;padding:0 0 20px;border-right:1px solid rgb(232 231 226 / 82%);background:var(--bg-secondary);box-shadow:inset -1px 0 rgb(255 255 255 / 72%);}.sidebar::after{display:none;}.sidebar-header{min-height:82px;padding:18px 18px 0;display:flex;align-items:center;}.brand-lockup{display:flex;height:54px;min-width:0;align-items:center;gap:12px;color:inherit;text-decoration:none;}.brand-lockup img{width:44px;height:44px;flex:0 0 44px;border-radius:10px;transition:transform 200ms cubic-bezier(0.16,1,0.3,1),filter 200ms ease;}.brand-lockup:hover img{transform:translateY(-1px) scale(1.035);filter:drop-shadow(0 6px 12px rgb(237 178 0 / 18%));}.brand-mark-ledger{display:block;}.brand-mark-default{display:none;}.brand-copy{display:grid;min-width:0;gap:2px;}.brand-title{color:var(--xy-ink);font-size:15px;font-weight:850;line-height:20px;}.brand-subtitle{overflow:hidden;color:var(--xy-muted);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;}.sidebar-nav{display:grid;align-content:start;grid-auto-rows:minmax(44px,max-content);gap:8px;padding:16px 16px;}.nav-section-label{padding:0 4px 4px;color:var(--text-muted,#788994);font-size:11px;letter-spacing:0.04em;}.nav-item{min-height:44px;gap:10px;padding:0 14px;border:1px solid transparent;border-radius:12px;color:#5c696e;font-size:14px;font-weight:700;background:transparent;box-shadow:none;transition:transform 180ms cubic-bezier(0.16,1,0.3,1),background-color 160ms,color 160ms,box-shadow 160ms;}.nav-item::before{display:none;}.nav-item:hover{border-color:transparent;color:#24313a;background:rgb(36 49 58 / 4%);transform:translateX(2px);}.nav-item.active{border-color:rgb(239 201 0 / 82%);color:#151719;background:linear-gradient(135deg,#ffe33a,#ffd515);box-shadow:0 8px 20px rgb(237 178 0 / 14%),inset 0 1px rgb(255 255 255 / 48%);font-weight:800;}body[data-theme="dark"] .sidebar{border-right-color:var(--xy-line,#344355);box-shadow:inset -1px 0 rgba(255,255,255,0.04);}body[data-theme="dark"] .brand-title{color:var(--xy-ink,#f4f7fb);}body[data-theme="dark"] .brand-subtitle{color:var(--xy-muted,#a4b3c4);}body[data-theme="dark"] .nav-section-label{color:var(--xy-muted,#a4b3c4);}body[data-theme="dark"] .nav-item{color:var(--xy-muted,#a4b3c4);}body[data-theme="dark"] .nav-item:hover{color:var(--xy-ink,#f4f7fb);background:rgba(255,255,255,0.06);}body[data-theme="dark"] .nav-item.active{border-color:rgb(239 201 0 / 82%);color:#151719;background:linear-gradient(135deg,#ffe33a,#ffd515);box-shadow:0 8px 20px rgb(237 178 0 / 22%),inset 0 1px rgb(255 255 255 / 48%);font-weight:800;}body[data-theme="dark"] .sidebar-local-data{border-color:rgba(52,211,153,0.25);background:rgba(16,185,129,0.08);box-shadow:0 4px 16px rgba(0,0,0,0.3),inset 0 1px rgba(255,255,255,0.04);color:#6ee7b7;}.nav-item-icon{width:18px;height:18px;stroke-width:1.65;}.nav-item-badge{color:inherit;background:transparent;}.icon-inline{width:1.1em;height:1.1em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-0.14em;}.sidebar-local-data .icon-inline,.mobile-menu-btn .icon-inline{width:18px;height:18px;}.cal-action-group .btn .icon-inline{width:15px;height:15px;margin-right:4px;}.cal-legend-item .icon-inline,.cal-notice .icon-inline{width:14px;height:14px;}.sidebar-local-data{min-height:64px;display:flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;margin:0;border:1px solid rgb(110 231 183 / 72%);border-radius:16px;background:rgb(236 253 245 / 64%);box-shadow:0 8px 24px rgb(16 185 129 / 6%),inset 0 1px rgb(255 255 255 / 76%);color:var(--status-success-fg);}.main-content{min-width:0;background:var(--bg-primary);}.page-header{min-height:76px;padding:12px clamp(20px,3vw,42px);border-bottom:1px solid var(--border-glass);background:color-mix(in srgb,var(--bg-primary) 97%,transparent);box-shadow:none;}.page-header h1{color:var(--text-primary);font-size:24px;font-weight:800;letter-spacing:-0.02em;}.page-header p{max-width:55ch;color:var(--text-muted);}.page-content{padding:26px clamp(20px,3vw,42px) 48px;background:var(--bg-primary);}body[data-current-page="dashboard"] .page-header{display:none;}body[data-current-page="dashboard"] .page-content{padding-top:30px;}.theme-switcher-button,.mobile-menu-btn{min-height:var(--xy-touch-min);border-color:var(--border-glass);border-radius:var(--xy-radius-control);color:var(--text-primary);background:var(--bg-card);}.xy-button{display:inline-flex;min-height:var(--xy-touch-min);align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--xy-signal-ink);border-radius:var(--xy-radius-control);background:var(--xy-signal);color:var(--xy-signal-ink);font:700 14px/1.35 var(--xy-font-ui);cursor:pointer;transition:transform var(--xy-motion-fast),background-color var(--xy-motion-fast);}.xy-button:active{transform:translateY(1px);}:where(button,a,input,select,textarea):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}:root{--xy-theme-transition-duration:1080ms;--xy-theme-transition-ease:cubic-bezier(0.2,0.72,0.2,1);}body.theme-changing :is(.sidebar,.main-content,.page-header,.page-section,.mobile-bottom-nav){transition:background-color 360ms ease,color 360ms ease,border-color 360ms ease;}.theme-sky-transition{position:fixed;inset:0;z-index:15;overflow:hidden;opacity:0;pointer-events:none;}.theme-sky-transition > span{position:absolute;display:block;pointer-events:none;}.theme-sky-transition__daylight{inset:0;background:linear-gradient(180deg,rgba(74,119,178,0.34),rgba(247,179,92,0.24) 58%,transparent 86%);}.theme-sky-transition__horizon{right:-12vw;bottom:-38vh;width:88vw;height:70vh;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,194,100,0.48),rgba(255,143,78,0.14) 44%,transparent 72%);filter:blur(10px);}.theme-sky-transition__solar{top:15vh;right:clamp(42px,9vw,138px);width:clamp(28px,3.2vw,48px);aspect-ratio:1;border-radius:50%;background:#fff2c3;box-shadow:0 0 30px 8px rgba(255,209,120,0.48),0 0 90px 30px rgba(255,156,81,0.16);}.theme-sky-transition__stars{inset:0;opacity:0;background-image:radial-gradient(circle at 16% 21%,rgba(255,255,255,0.82) 0 1px,transparent 1.8px),radial-gradient(circle at 31% 13%,rgba(255,255,255,0.56) 0 1px,transparent 1.7px),radial-gradient(circle at 56% 25%,rgba(255,255,255,0.7) 0 1px,transparent 1.8px),radial-gradient(circle at 76% 16%,rgba(255,255,255,0.66) 0 1px,transparent 1.7px),radial-gradient(circle at 88% 31%,rgba(255,255,255,0.76) 0 1px,transparent 1.8px);}html[data-theme-transition] .theme-sky-transition{opacity:1;animation:xy-theme-atmosphere var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}html[data-theme-transition] .theme-sky-transition__daylight{view-transition-name:xy-theme-daylight;}html[data-theme-transition] .theme-sky-transition__horizon{view-transition-name:xy-theme-horizon;animation:xy-theme-horizon-glow var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}html[data-theme-transition] .theme-sky-transition__solar{view-transition-name:xy-theme-solar;}html[data-theme-transition="sunset"] .theme-sky-transition__solar{animation:xy-theme-sunset-solar var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}html[data-theme-transition="sunset"] .theme-sky-transition__stars{animation:xy-theme-stars-in var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}html[data-theme-transition="sunrise"] .theme-sky-transition__daylight{background:linear-gradient(180deg,rgba(73,102,151,0.3),rgba(255,192,110,0.3) 58%,transparent 86%);}html[data-theme-transition="sunrise"] .theme-sky-transition__solar{animation:xy-theme-sunrise-solar var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}::view-transition-group(root),::view-transition-group(xy-theme-daylight),::view-transition-group(xy-theme-horizon),::view-transition-group(xy-theme-solar){animation-duration:var(--xy-theme-transition-duration);animation-timing-function:var(--xy-theme-transition-ease);}::view-transition-old(root){animation:xy-theme-root-out var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}::view-transition-new(root){animation:xy-theme-root-in var(--xy-theme-transition-duration) var(--xy-theme-transition-ease) both;}@keyframes xy-theme-atmosphere{0%,100%{opacity:0;}18%,74%{opacity:1;}}@keyframes xy-theme-root-out{0%,24%{opacity:1;}100%{opacity:0;}}@keyframes xy-theme-root-in{0%,18%{opacity:0;}100%{opacity:1;}}@keyframes xy-theme-sunset-solar{0%{opacity:0;transform:translate3d(0,-18px,0) scale(0.9);}16%{opacity:1;}72%{opacity:0.86;}100%{opacity:0;transform:translate3d(-2vw,40vh,0) scale(0.76);}}@keyframes xy-theme-sunrise-solar{0%{opacity:0;transform:translate3d(-2vw,40vh,0) scale(0.76);}26%{opacity:0.9;}78%{opacity:1;}100%{opacity:0;transform:translate3d(0,-18px,0) scale(0.9);}}@keyframes xy-theme-horizon-glow{0%,100%{opacity:0;transform:scale(0.88);}36%,66%{opacity:1;transform:scale(1);}}@keyframes xy-theme-stars-in{0%,42%{opacity:0;}76%{opacity:0.72;}100%{opacity:0;}}@media (max-width:768px){.theme-sky-transition__solar{top:12vh;right:28px;width:32px;}.theme-sky-transition__horizon{right:-38vw;bottom:-28vh;width:138vw;height:62vh;}.page-header{min-height:68px;padding:10px 14px;}.page-header p,.theme-switcher{display:none;}.page-content{padding:16px 14px calc(112px + env(safe-area-inset-bottom));}body[data-current-page="dashboard"] .page-content{padding:14px 14px calc(148px + env(safe-area-inset-bottom));}.mobile-bottom-nav{min-height:68px;padding:6px 10px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border-glass);background:var(--bg-secondary);box-shadow:0 -12px 32px color-mix(in srgb,var(--bg-primary) 42%,transparent);}.mobile-nav-item{min-height:52px;border-radius:12px;color:var(--text-secondary);}.mobile-nav-item.active{color:var(--xy-signal-ink);background:color-mix(in srgb,var(--xy-signal) 36%,transparent);}}:root{--wb-surface:var(--budget-surface,#fffefb);--wb-surface-card:#ffffff;--wb-surface-hover:var(--budget-row-hover,#e8f1f6);--wb-line:var(--budget-line,#cbd3d8);--wb-line-strong:var(--budget-line-strong,#788994);--wb-ink:var(--budget-ink,#172731);--wb-muted:var(--budget-muted,#52616b);--wb-accent:var(--budget-accent,#2c5f87);--wb-header:var(--budget-header,#243746);--wb-header-ink:var(--budget-header-ink,#f1f5f7);--wb-success:var(--budget-success,#2f7d5c);--wb-danger:var(--budget-danger,#a54438);--wb-warning:var(--budget-warning,#c58a18);--wb-yellow:#ffd928;--wb-yellow-gradient:linear-gradient(135deg,#ffea5e 0%,#ffd928 60%,#f5c800 100%);--wb-yellow-border:#e2b900;--wb-yellow-shadow:0 4px 16px rgba(226,185,0,0.28);--wb-yellow-ink:#151719;--wb-ease-spring:cubic-bezier(0.16,1,0.3,1);--wb-ease-out:cubic-bezier(0.22,1,0.36,1);--wb-transition-fast:0.16s var(--wb-ease-spring);--wb-transition-base:0.22s var(--wb-ease-spring);--wb-transition-smooth:0.35s var(--wb-ease-spring);}@keyframes xy-fade-slide-up{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}@keyframes xy-pulse-subtle{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.88;transform:scale(1.04);}}.xy-press-active,button:not(:disabled):active,.btn:not(:disabled):active{transform:scale(0.985);transition:transform 0.08s var(--wb-ease-spring) !important;}.tabular-nums,[data-tabular-num]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";}@media (prefers-reduced-motion:reduce){body.theme-changing :is(.sidebar,.main-content,.page-header,.page-section,.mobile-bottom-nav){transition-duration:0.01ms !important;}.theme-sky-transition{display:none !important;}::view-transition-group(root),::view-transition-group(xy-theme-daylight),::view-transition-group(xy-theme-horizon),::view-transition-group(xy-theme-solar),::view-transition-old(root),::view-transition-new(root){animation-duration:0.01ms !important;}*,*::before,*::after{scroll-behavior:auto !important;transition-duration:0.01ms !important;animation-duration:0.01ms !important;animation-iteration-count:1 !important;}}