:root,:root[data-theme=dark]{--bg: #0a0a0e;--bg-elevated: #121218;--bg-card: #18181f;--bg-hover: rgba(255, 255, 255, .04);--accent: #14b8a6;--accent-hover: #2dd4bf;--accent-muted: rgba(20, 184, 166, .2);--text: #ffffff;--text-secondary: #c4c4cc;--text-muted: #9ca3af;--border: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .18);--danger: #f87171;--danger-muted: rgba(248, 113, 113, .2);--warning: #fbbf24;--warning-muted: rgba(251, 191, 36, .2);--info: #38bdf8;--info-muted: rgba(56, 189, 248, .2);--success: #34d399;--success-muted: rgba(52, 211, 153, .2);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--text);background-color:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased}:root[data-theme=light]{--bg: #f4f7fb;--bg-elevated: #ffffff;--bg-card: #ffffff;--bg-hover: rgba(20, 24, 34, .04);--accent: #0f766e;--accent-hover: #115e59;--accent-muted: rgba(15, 118, 110, .12);--text: #10141b;--text-secondary: #334155;--text-muted: #64748b;--border: rgba(15, 23, 42, .1);--border-strong: rgba(15, 23, 42, .18);--danger: #dc2626;--danger-muted: rgba(220, 38, 38, .12);--warning: #d97706;--warning-muted: rgba(217, 119, 6, .12);--info: #0284c7;--info-muted: rgba(2, 132, 199, .12);--success: #15803d;--success-muted: rgba(21, 128, 61, .12);color:var(--text);background-color:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}.sidebar{width:220px;min-width:220px;height:100vh;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .2s,min-width .2s;flex-shrink:0;z-index:10}.sidebar.collapsed{width:56px;min-width:56px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:52px;border-bottom:1px solid var(--border);flex-shrink:0;gap:.5rem}.sidebar.collapsed .sidebar-header{padding:.55rem 0;justify-content:center;align-items:center;flex-direction:column;gap:.35rem;min-height:94px;cursor:pointer}.sidebar.collapsed .sidebar-toggle,.sidebar.collapsed .sidebar-theme-toggle{width:30px;height:30px}.sidebar-brand{font-size:1.1rem;font-weight:700;color:var(--accent);text-decoration:none}.sidebar-toggle{width:28px;height:28px;border:none;background:var(--bg-hover);color:var(--text-secondary);border-radius:6px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .2s}.sidebar-toggle:hover{background:var(--border-strong)}.sidebar-theme-toggle{width:28px;height:28px;border:1px solid var(--border);background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 55%),var(--bg-hover);color:var(--text-secondary);border-radius:999px;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.sidebar-theme-toggle:hover{transform:rotate(-10deg) scale(1.04);color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.sidebar-nav{flex:1;overflow-y:auto;padding:.5rem 0}.nav-group{margin-bottom:.25rem}.nav-group-btn{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:none;border:none;color:var(--text);font-size:.95rem;cursor:pointer;text-align:left;transition:background .15s}.nav-group-btn:hover:not(:disabled){background:var(--bg-hover)}.nav-group-btn.expanded{color:var(--accent)}.nav-group-btn:disabled{cursor:default}.nav-icon{font-size:1.1rem;flex-shrink:0}.nav-label{flex:1}.nav-chevron{font-size:.65rem;color:var(--text-muted);transition:transform .2s}.nav-order-actions{display:inline-flex;align-items:center;gap:.25rem;margin-right:.4rem}.nav-order-actions-child{margin-right:0}.nav-order-btn{width:18px;height:18px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);border-radius:4px;font-size:11px;line-height:1;cursor:pointer;padding:0}.nav-order-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.nav-order-btn:disabled{opacity:.45;cursor:default}.nav-children{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .2s ease-out}.nav-children.open{grid-template-rows:1fr}.nav-children-inner{min-height:0;overflow:hidden}.nav-child-row{display:flex;align-items:center}.nav-child{display:block;flex:1;padding:.5rem 1rem .5rem 2.25rem;color:var(--text-secondary);font-size:.88rem;text-decoration:none;transition:color .15s,background .15s}.nav-child:hover{color:var(--text);background:var(--bg-hover)}.nav-child.active{color:var(--accent);background:var(--accent-muted)}.sidebar-footer{padding:.85rem 1rem;border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:.65rem}.sidebar-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent),var(--info))}.sidebar-user-info{flex:1;min-width:0}.sidebar-username{font-size:.88rem;font-weight:500;color:var(--text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout{flex-shrink:0;padding:.35rem .65rem;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:.78rem;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.sidebar-logout:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-muted)}.footer-center{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1rem;padding:.75rem 1rem;font-size:.8125rem;color:var(--text-muted);background:var(--bg);border-top:1px solid var(--border)}.footer-center a{color:inherit;text-decoration:none}.footer-center a:hover{text-decoration:underline}.footer-beian{display:inline-flex;align-items:center;gap:.35rem}.footer-beian img{vertical-align:middle}.footer-copyright{white-space:nowrap}.footer-report-email{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;padding:.2rem .5rem .2rem .2rem;border-radius:999px;transition:background .18s ease,color .18s ease}.footer-report-email:hover{background:color-mix(in srgb,var(--bg-hover) 78%,var(--warning, #f59e0b) 22%);text-decoration:none}.footer-report-email-icon{width:1.1rem;height:1.1rem;flex:0 0 auto;border-radius:999px;box-shadow:0 0 0 1px color-mix(in srgb,var(--border) 76%,transparent)}.app-layout{--sidebar-width: 220px;display:flex;height:100vh;background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 10%,transparent),transparent 32%),var(--bg)}.app-layout.sidebar-collapsed{--sidebar-width: 56px}.global-notice{position:fixed;top:16px;right:20px;z-index:1200;padding:.55rem .85rem;border-radius:8px;border:1px solid transparent;font-size:.9rem;box-shadow:0 10px 26px color-mix(in srgb,var(--text) 10%,transparent)}.global-notice.success{color:var(--success, #16a34a);border-color:color-mix(in srgb,var(--success, #16a34a) 55%,transparent);background:color-mix(in srgb,var(--success, #16a34a) 12%,transparent)}.app-body{flex:1;width:calc(100% - var(--sidebar-width));min-width:0;display:flex;flex-direction:column;min-height:0;transition:width .2s ease}.app-main{flex:1;display:flex;justify-content:center;min-height:0;overflow-x:hidden;overflow-y:auto}.app-main>*{width:100%;min-width:0;margin-inline:auto}.auth-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(160deg,var(--bg) 0%,var(--bg-elevated) 50%,var(--bg-card) 100%)}.auth-page-center{flex:1;display:flex;align-items:center;justify-content:center}.auth-card{background:var(--bg-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:16px;padding:2.5rem;width:100%;max-width:420px}.auth-card h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:700;color:#e94560;letter-spacing:-.02em}.auth-subtitle{margin:0 0 1.5rem;color:var(--text-muted);font-size:.9rem}.auth-card form{display:flex;flex-direction:column;gap:1rem}.auth-card input{padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:#0003;color:#fff;font-size:.95rem;transition:border-color .2s}.auth-card input::placeholder{color:var(--text-muted)}.auth-card input:focus{outline:none;border-color:var(--accent)}.auth-card button{padding:.85rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,opacity .2s}.auth-card button:hover:not(:disabled){background:var(--accent-hover)}.auth-card button:disabled{opacity:.7;cursor:not-allowed}.auth-divider{margin:1rem 0;text-align:center;color:var(--text-muted);font-size:.85rem}.auth-divider span{position:relative;display:inline-block;padding:0 .75rem}.auth-divider span:before,.auth-divider span:after{content:"";position:absolute;top:50%;width:36px;height:1px;background:var(--border)}.auth-divider span:before{right:100%}.auth-divider span:after{left:100%}.wechat-btn{width:100%;margin-top:.25rem;background:#07c160}.wechat-btn:hover:not(:disabled){background:#06ad56}.wechat-qr-wrap{margin-top:1rem;border:1px dashed var(--border);border-radius:10px;padding:.75rem;text-align:center}.wechat-qr{min-height:220px;display:flex;align-items:center;justify-content:center}.wechat-qr-hint{margin:.4rem 0 0;font-size:.85rem;color:var(--text-muted)}.wechat-qr-error{margin:.4rem 0 0;color:var(--danger);font-size:.85rem}.auth-error{padding:.6rem;background:var(--danger-muted);border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:.9rem}.auth-footer{margin:1.25rem 0 0;text-align:center;color:var(--text-muted);font-size:.9rem}.auth-footer a{color:var(--accent);text-decoration:none;font-weight:500}.auth-footer a:hover{text-decoration:underline}.dashboard{width:100%;min-width:0;padding:1rem;box-sizing:border-box;background:radial-gradient(circle at top left,rgba(20,184,166,.14),transparent 34%),radial-gradient(circle at 80% 0%,rgba(56,189,248,.1),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.01),transparent 22%)}@media(min-width:960px){.dashboard{padding:1.5rem 2rem 2rem}}.dashboard-shell{width:100%;min-width:0;max-width:none;margin:0 0 1.25rem}.btn{padding:.65rem 1rem;border-radius:999px;font-size:.92rem;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--info));color:#071018}.btn-outline{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost{background:#ffffff08;color:var(--text-secondary);border-color:var(--border)}@media(max-width:1200px){.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.dashboard-card{border:1px solid var(--border);border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 92%,var(--bg) 8%),var(--bg-card));box-shadow:0 18px 60px color-mix(in srgb,var(--bg) 18%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dashboard-kpi-card{padding:1.1rem 1.1rem 1rem;min-height:144px}.dashboard-kpi-card:before{content:"";display:block;width:2.75rem;height:.24rem;border-radius:999px;margin-bottom:.9rem;background:var(--border-strong)}.tone-accent:before{background:linear-gradient(90deg,var(--accent),var(--info))}.tone-warm:before{background:linear-gradient(90deg,var(--warning),#fb7185)}.tone-neutral:before{background:linear-gradient(90deg,#94a3b8,#cbd5e1)}.tone-danger:before{background:linear-gradient(90deg,var(--danger),#fb7185)}.dashboard-card-label{display:block;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.09em}.dashboard-card-value{display:block;margin-top:.7rem;font-size:clamp(1.5rem,2vw,2.1rem);letter-spacing:-.04em}.dashboard-card-detail{display:block;margin-top:.45rem;color:var(--text-secondary);font-size:.92rem}.dashboard-stage-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;align-items:start}.dashboard-trend-card{padding:1.1rem 1.15rem .95rem}.dashboard-trend-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem 1.1rem;margin-bottom:.45rem}.dashboard-trend-title-group{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem .7rem;min-width:0}.dashboard-trend-title-group h2{margin:0;font-size:1.04rem;line-height:1.22;letter-spacing:-.02em}.dashboard-trend-title-group .section-note{margin:0;font-size:.8rem;white-space:nowrap}.dashboard-trend-card,.dashboard-heatmap-card,.dashboard-activity-card,.dashboard-quick-card,.dashboard-top-expense-card,.dashboard-shortcuts-card{width:100%;min-width:0}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.section-heading h2{margin:.2rem 0 0;font-size:1.08rem}.dashboard-inline-facts{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--text-secondary);text-align:right}.dashboard-trend-facts{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:.32rem;font-size:.75rem;text-align:center;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.dashboard-trend-facts::-webkit-scrollbar{display:none}.dashboard-trend-facts span{display:inline-flex;align-items:center;justify-content:center;min-height:1.68rem;max-width:100%;padding:.12rem .5rem;border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg-hover) 86%,transparent);line-height:1.1;white-space:nowrap}.section-note{margin:.35rem 0 0;font-size:.88rem;color:var(--text-muted)}.dashboard-trend-chart{width:100%;min-height:300px}.dashboard-trend-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem .85rem;margin-top:.45rem}.dashboard-trend-controls{display:flex;flex-wrap:nowrap;gap:.35rem;margin-top:0;min-width:0;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:none}.dashboard-trend-controls::-webkit-scrollbar{display:none}.dashboard-trend-controls button{border:1px solid var(--border);background:var(--bg-hover);color:var(--text-secondary);border-radius:999px;padding:.34rem .72rem;cursor:pointer;font-size:.78rem;white-space:nowrap;transition:border-color .18s ease,background .18s ease,color .18s ease}.dashboard-trend-controls button.active{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,transparent),color-mix(in srgb,var(--info) 18%,transparent));color:var(--text);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.dashboard-trend-custom-row{display:flex;justify-content:flex-end;align-items:center;flex-wrap:nowrap;gap:.45rem;min-width:0}.dashboard-trend-custom-row .dashboard-field{display:grid;grid-template-columns:auto minmax(136px,1fr);align-items:center;gap:.38rem}.dashboard-trend-custom-row .dashboard-field span{font-size:.76rem;white-space:nowrap}.dashboard-trend-custom-row .dashboard-field input{width:152px;height:38px;padding:.55rem .68rem;border-radius:10px}.dashboard-trend-apply{height:38px;align-self:center;padding-inline:.82rem;white-space:nowrap}@media(max-width:1120px){.dashboard-trend-head{grid-template-columns:1fr;align-items:start}.dashboard-trend-facts{justify-content:flex-start;text-align:left;flex-wrap:wrap;overflow-x:visible}.dashboard-trend-toolbar{grid-template-columns:1fr}.dashboard-trend-custom-row{justify-content:flex-start;flex-wrap:wrap}}@media(max-width:720px){.dashboard-trend-toolbar{margin-top:.5rem}.dashboard-trend-custom-row{display:grid;grid-template-columns:1fr;gap:.5rem}.dashboard-trend-custom-row .dashboard-field{grid-template-columns:1fr}.dashboard-trend-custom-row .dashboard-field input,.dashboard-trend-apply{width:100%}}.dashboard-chart-loading{min-height:300px;border-radius:14px;background:linear-gradient(90deg,var(--bg-hover),color-mix(in srgb,var(--bg-hover) 60%,var(--text) 6%),var(--bg-hover));background-size:200% 100%;animation:shimmer 1.4s ease infinite}.dashboard-content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.6fr);gap:.9rem;align-items:start}@media(max-width:920px){.dashboard-content-grid{grid-template-columns:1fr}}.dashboard-heatmap-card,.dashboard-activity-card,.dashboard-quick-card,.dashboard-top-expense-card,.dashboard-shortcuts-card{padding:1.05rem 1.1rem 1rem}.dashboard-side-stack{display:grid;gap:.9rem}.dashboard-side-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}@media(max-width:600px){.dashboard-side-row{grid-template-columns:1fr}}.contribution-legend{display:flex;flex-wrap:wrap;gap:.8rem 1rem;margin:.2rem 0 .85rem;color:var(--text-muted);font-size:.82rem}.cell-desc{display:inline-flex;align-items:center;gap:.35rem}.cell-desc:before{content:"";width:9px;height:9px;border-radius:2px;background:var(--border-strong)}.cell-desc.level-1:before{background:color-mix(in srgb,var(--accent) 35%,transparent)}.cell-desc.level-2:before{background:color-mix(in srgb,var(--accent) 55%,transparent)}.cell-desc.level-3:before{background:color-mix(in srgb,var(--accent) 75%,transparent)}.cell-desc.level-4:before{background:var(--accent)}.contribution-wrapper{overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}.contribution-axes{margin-bottom:.45rem}.contribution-month-row,.contribution-row{display:grid;grid-template-columns:20px repeat(53,minmax(6px,1fr));gap:2px;align-items:center;min-width:330px}.contribution-month-row{font-size:.64rem;color:var(--text-muted)}.weekday-spacer,.weekday-label{min-width:20px}.weekday-label{font-size:.64rem;color:var(--text-muted)}.month-cell{white-space:nowrap;overflow:visible}.contribution-row{margin-bottom:2px}.contribution-grid{grid-column:2 / -1;display:grid;grid-template-columns:repeat(53,minmax(6px,1fr));gap:2px}.contribution-cell{aspect-ratio:1;min-width:6px;min-height:6px;border-radius:2px;background:#ffffff14;transition:transform .15s ease,background .15s ease}.contribution-cell:hover{transform:scale(1.1)}.contribution-cell.level-1{background:color-mix(in srgb,var(--accent) 35%,transparent)}.contribution-cell.level-2{background:color-mix(in srgb,var(--accent) 55%,transparent)}.contribution-cell.level-3{background:color-mix(in srgb,var(--accent) 75%,transparent)}.contribution-cell.level-4{background:var(--accent)}.contribution-loading{min-height:144px;border-radius:14px;background:linear-gradient(90deg,#ffffff05,#ffffff14,#ffffff05);background-size:200% 100%;animation:shimmer 1.3s ease infinite}.record-list{list-style:none;padding:0;margin:0}.record-list-compact .record-item{margin-bottom:.65rem}.record-item a,.record-item .activity-link{display:flex;flex-direction:column;gap:.45rem;padding:.9rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:14px;text-decoration:none;color:inherit;transition:border-color .18s ease,transform .18s ease,background .18s ease}.dashboard-heatmap-card,.dashboard-activity-card,.dashboard-quick-card,.dashboard-top-expense-card,.dashboard-shortcuts-card{background:var(--bg-card)}.record-item a:hover,.record-item .activity-link:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--bg-hover) 72%,var(--text) 8%);border-color:var(--border-strong)}.record-item-main,.record-item-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.record-item-meta{justify-content:space-between;gap:.6rem}.activity-type-badge{padding:.2rem .45rem;border-radius:999px;font-size:.7rem;color:var(--text-muted);background:var(--bg-hover)}.activity-type-badge.type-record{color:var(--accent)}.activity-type-badge.type-schedule{color:var(--info, #0ea5e9)}.activity-type-badge.type-reflection_daily,.activity-type-badge.type-reflection_weekly{color:var(--warning, #f59e0b)}.activity-type-badge.type-social{color:var(--success)}.activity-type-badge.type-accounting{color:var(--danger)}.activity-badge{padding:.2rem .45rem;border-radius:999px;font-size:.7rem;font-weight:600}.activity-badge.activity-create{background:var(--success-muted);color:var(--success)}.activity-badge.activity-update{background:var(--accent-muted);color:var(--accent)}.activity-badge.activity-delete{background:var(--danger-muted);color:var(--danger)}.record-title{flex:1;min-width:0;font-weight:600}.record-date,.activity-time{font-size:.85rem;color:var(--text-muted)}.activity-no-link{cursor:default}.recent-load-more{margin-top:.8rem;text-align:center}.dashboard-quick-expense-tabs{display:inline-flex;gap:.25rem;padding:.2rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-hover);margin-bottom:.9rem}.dashboard-quick-expense-tabs button{border:none;background:transparent;color:var(--text-muted);border-radius:999px;padding:.38rem .7rem;cursor:pointer;font-size:.82rem}.dashboard-quick-expense-tabs button.active{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 28%,transparent),color-mix(in srgb,var(--info) 22%,transparent));color:var(--text)}.dashboard-quick-form{display:grid;gap:.75rem}.dashboard-field{display:grid;gap:.32rem;font-size:.88rem;color:var(--text-secondary)}.dashboard-field input,.dashboard-field select{width:100%;padding:.72rem .8rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);outline:none}.dashboard-field input:focus,.dashboard-field select:focus{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.dashboard-submit{width:100%;margin-top:.15rem}.top-expense-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.top-expense-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;padding:.78rem .85rem;border-radius:14px;background:var(--bg-hover);border:1px solid var(--border)}.top-expense-list strong{display:block;font-size:.98rem}.top-expense-list span{display:block;color:var(--text-muted);font-size:.84rem}.top-expense-rank{align-self:start;padding:.28rem .48rem;border-radius:999px;background:var(--accent-muted);color:var(--accent);font-size:.72rem;white-space:nowrap}.dashboard-shortcut-list{display:grid;gap:.55rem}.dashboard-shortcut-list a{padding:.85rem .9rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}.dashboard-shortcut-list a:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 36%,transparent);background:color-mix(in srgb,var(--bg-hover) 72%,var(--text) 8%)}.muted a{color:var(--accent)}.error{color:var(--danger)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.record-list-page{max-width:100%;margin:0 auto;padding:2rem}.list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.list-search{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:200px}.list-search .search-input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:.95rem;width:220px;max-width:100%}.list-search .search-input::placeholder{color:var(--text-muted)}.list-search .search-hint{font-size:.8rem}.date-presets{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.preset-btn{padding:.4rem .75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.preset-btn:hover{background:var(--bg-hover);color:var(--text)}.preset-btn.active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.custom-range{display:inline-flex;align-items:center;gap:.5rem}.custom-range input[type=date]{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text);font-size:.85rem}.page-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.page-header h1{flex:1;margin:0;font-size:1.25rem;font-weight:600}.back-link{color:var(--text-secondary);text-decoration:none;font-size:.9rem}.back-link:hover{color:var(--accent)}.table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--bg-card)}.record-table{width:100%;border-collapse:collapse;font-size:.9rem}.record-table th{padding:.75rem .6rem;text-align:left;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.record-table td{padding:.6rem;border-bottom:1px solid var(--border)}.record-table tbody tr:last-child td{border-bottom:none}.record-table tbody tr:hover{background:var(--bg-hover)}.record-table .num{text-align:center;min-width:48px}.record-table .ellipsis{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-link{color:var(--accent);text-decoration:none}.table-link:hover{text-decoration:underline}.record-list-page .status{padding:.2rem .4rem;border-radius:4px;font-size:.72rem;text-transform:uppercase}.record-list-page .status-pending{background:var(--warning-muted);color:var(--warning)}.record-list-page .status-in_progress{background:var(--info-muted);color:var(--info)}.record-list-page .status-completed{background:var(--success-muted);color:var(--success)}.record-list-load-more{margin-top:1rem;text-align:center}.record-list-load-more .btn{min-width:120px}.empty{text-align:center;padding:3rem}.activity-flow-page{width:100%;min-width:0;padding:1rem;box-sizing:border-box;background:radial-gradient(circle at top left,rgba(20,184,166,.12),transparent 34%),radial-gradient(circle at 80% 0%,rgba(14,165,233,.08),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.02),transparent 24%)}@media(min-width:960px){.activity-flow-page{padding:1.5rem 2rem 2rem}}.activity-flow-shell{width:100%;min-width:0;max-width:none;margin:0 0 1rem}.activity-flow-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;padding:1.4rem 1.5rem}@media(max-width:820px){.activity-flow-header{align-items:flex-start;flex-direction:column}}.activity-flow-heading h1{margin:.2rem 0 0;font-size:clamp(1.7rem,2.5vw,2.5rem);line-height:1.05;letter-spacing:-.03em}.activity-flow-back{color:var(--text-secondary);text-decoration:none;font-size:.92rem}.activity-flow-back:hover{color:var(--accent)}.activity-flow-subtitle{margin:.55rem 0 0;color:var(--text-secondary)}.activity-flow-actions{display:flex;gap:.75rem;flex-wrap:wrap}.activity-flow-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}@media(max-width:1100px){.activity-flow-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.activity-flow-summary-grid{grid-template-columns:1fr}}.activity-flow-summary-card{padding:1rem 1.05rem;min-height:112px}.activity-flow-stat-label{display:block;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.09em}.activity-flow-stat-value{display:block;margin-top:.7rem;font-size:clamp(1.4rem,2vw,2rem);letter-spacing:-.04em}.activity-flow-stat-detail{display:block;margin-top:.45rem;color:var(--text-secondary);font-size:.92rem}.activity-flow-types-card,.activity-flow-list-card{padding:1.05rem 1.1rem 1rem}.activity-flow-type-chips{display:flex;flex-wrap:wrap;gap:.55rem}.activity-flow-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text-secondary);font-size:.82rem}.activity-flow-chip strong{color:var(--text)}.activity-flow-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.activity-flow-list{display:grid;gap:.65rem;padding:0;margin:0;list-style:none}.activity-flow-loading{min-height:160px;border-radius:14px;background:linear-gradient(90deg,var(--bg-hover),color-mix(in srgb,var(--bg-hover) 60%,var(--text) 6%),var(--bg-hover));background-size:200% 100%;animation:shimmer 1.4s ease infinite}.activity-flow-load-more{margin-top:.9rem;text-align:center}.schedule-page{width:100%;height:100%;min-width:0;padding:1rem;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}@media(min-width:600px){.schedule-page{padding:2rem}}.schedule-page .page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;flex-shrink:0}.schedule-page .page-header h1{flex:1;margin:0;font-size:1.25rem;font-weight:600}.header-actions{display:flex;gap:.75rem}.import-with-color{display:flex;align-items:center;gap:.5rem}.import-color-picker{width:28px;height:28px;padding:2px;border:1px solid var(--border, #e0e0e0);border-radius:6px;cursor:pointer;background:none}.header-actions .hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.dropdown-wrap{position:relative}.dropdown-wrap .dropdown-arrow{margin-left:.25em;font-size:.75em;opacity:.8}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;min-width:160px;background:var(--bg);border:1px solid var(--border, #e0e0e0);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:100;overflow:hidden}.dropdown-item{display:block;width:100%;padding:.5rem 1rem;border:none;background:none;text-align:left;cursor:pointer;color:var(--text);font-size:.9rem}.dropdown-item:hover{background:var(--bg-hover)}.birthday-panel{margin-bottom:.75rem;padding:1rem}.birthday-panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.birthday-panel-header h3{margin:0}.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;flex-shrink:0}.week-start-toggle{display:flex;align-items:center;gap:.25rem}.week-start-toggle .toggle-label{font-size:.85rem;color:var(--text-muted)}.week-start-toggle .btn-sm{padding:.25rem .5rem;font-size:.8rem}.week-start-toggle .btn-sm.active{background:var(--accent);color:#fff}@media(max-width:480px){.calendar-toolbar{gap:.5rem}.calendar-title{font-size:1rem;flex-basis:100%;order:-1;text-align:center}}.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:var(--bg-hover);color:var(--text);border-radius:8px;font-size:1.25rem;cursor:pointer}.btn-icon:hover{background:var(--border-strong)}.calendar-title{flex:1;margin:0;font-size:1.1rem;font-weight:600}.calendar-wrap{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:auto;-webkit-overflow-scrolling:touch}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));background:var(--bg-hover);border-bottom:1px solid var(--border);min-width:308px;flex-shrink:0}.weekday-cell{padding:.35rem .25rem;text-align:center;font-size:.75rem;color:var(--text-muted);font-weight:500}@media(min-width:600px){.weekday-cell{padding:.5rem;font-size:.85rem}.calendar-weekdays{grid-template-columns:repeat(7,minmax(80px,1fr));min-width:560px}}.calendar-grid{flex:1;display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));grid-template-rows:repeat(6,minmax(0,1fr));min-width:308px;min-height:50vh}@media(min-width:600px){.calendar-grid{grid-template-columns:repeat(7,minmax(80px,1fr));min-width:560px}}.calendar-loading{grid-column:1 / -1;padding:3rem;text-align:center;color:var(--text-muted)}.calendar-day{min-width:0;min-height:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:2px;overflow:hidden}@media(min-width:600px){.calendar-day{padding:4px}}.calendar-day:nth-child(7n){border-right:none}.calendar-day.other-month{background:var(--bg-hover)}.calendar-day.other-month .day-header{color:var(--text-muted);opacity:.6}.calendar-day.today .day-number{background:var(--accent);color:#fff;border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}@media(min-width:600px){.calendar-day.today .day-number{width:28px;height:28px;font-size:.9rem}}.day-header{display:flex;align-items:baseline;justify-content:space-between;gap:4px;cursor:pointer;margin-bottom:2px}@media(min-width:600px){.day-header{margin-bottom:4px}}.day-header:hover{color:var(--accent)}.day-number{font-size:.8rem;font-weight:600;line-height:1}@media(min-width:600px){.day-number{font-size:.9rem}}.day-lunar{font-size:.62rem;color:var(--text-muted);white-space:nowrap;line-height:1.2}@media(min-width:600px){.day-lunar{font-size:.7rem}}.day-events{display:flex;flex-direction:column;gap:2px}.day-event{text-align:left;padding:2px 4px 2px 7px;font-size:.65rem;background:var(--accent-muted);color:var(--accent);border:none;border-radius:3px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:600px){.day-event{padding:2px 6px;font-size:.75rem;border-radius:4px}}.day-event:hover{background:var(--accent);color:#fff}.day-event.birthday-day{background:#fde8f0;color:#c13c72}.day-event.birthday-reminder{background:#fdf2df;color:#ad6b13}.day-more{font-size:.7rem;color:var(--text-muted);padding-left:4px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;box-sizing:border-box}@media(max-width:480px){.modal-overlay{padding:0;align-items:flex-end}}.modal-content{background:var(--bg-card);border-radius:12px;padding:1.5rem;box-shadow:0 4px 24px #0000004d}.schedule-form-modal{width:100%;max-width:480px;max-height:90vh;overflow-y:auto}@media(max-width:480px){.schedule-form-modal{max-height:85vh;border-radius:12px 12px 0 0}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-header h2{margin:0;font-size:1.1rem}.modal-close{width:32px;height:32px;border:none;background:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer}.modal-close:hover{color:var(--text)}.schedule-form-modal .form-group label{display:flex;align-items:center;gap:.5rem}.schedule-form-modal .form-group input[type=checkbox]{width:auto}.color-picker-row{display:flex;flex-wrap:wrap;gap:6px}.color-swatch{width:28px;height:28px;padding:0;border:2px solid transparent;border-radius:6px;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center}.color-swatch:hover{border-color:var(--text-muted)}.color-swatch.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.color-swatch-none{background:var(--bg-hover);color:var(--text-muted)}.inline-time{margin-left:.5rem;width:100px}.form-row-inline{display:flex;flex-wrap:wrap;gap:1rem}.form-row-inline .form-group{flex:1;min-width:0}@media(max-width:480px){.form-row-inline{flex-direction:column}}.form-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-top:1.5rem;gap:1rem}.form-actions-right{display:flex;gap:.5rem}@media(max-width:400px){.form-actions{flex-direction:column;align-items:stretch}.form-actions-right{justify-content:flex-end}}.schedule-birthdays-page{width:100%;min-width:0;max-width:none;margin:0;padding:1.5rem;box-sizing:border-box}.birthday-panel{padding:1rem}.birthday-form{display:grid;grid-template-columns:1.2fr .8fr .6fr .45fr .45fr auto 1fr auto;gap:.5rem;margin-bottom:.75rem}.birthday-form input,.birthday-form select{padding:.45rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.birthday-leap-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.birthday-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.birthday-item{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem .55rem;border:1px solid var(--border);border-radius:8px}.birthday-item-main{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.birthday-item-actions{display:inline-flex;align-items:center;gap:.35rem}.birthday-note{color:var(--text-muted);font-size:.85rem}.birthday-tip{font-size:.82rem;color:var(--accent);background:var(--accent-muted);border-radius:999px;padding:.12rem .5rem}@media(max-width:1100px){.birthday-form{grid-template-columns:1fr 1fr .8fr .6fr .6fr auto}}@media(max-width:720px){.birthday-form{grid-template-columns:1fr 1fr}}.schedule-subscription-page{width:100%;min-width:0;max-width:none;margin:0;padding:1rem;box-sizing:border-box}@media(min-width:600px){.schedule-subscription-page{padding:2rem}}.schedule-subscription-page .page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.schedule-subscription-page .page-header h1{flex:1;margin:0;font-size:1.25rem;font-weight:600}.ics-panel{padding:1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.ics-panel h3{margin:0 0 .5rem;font-size:1rem}.ics-desc{margin:0 0 1rem;font-size:.9rem;color:var(--text-muted)}.ics-loading,.ics-empty{color:var(--text-muted);font-size:.9rem;margin:0}.token-create{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.token-create input{flex:1;min-width:120px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}@media(max-width:480px){.token-create{flex-direction:column}.token-create input{width:100%;min-width:0}}.token-list{list-style:none;margin:0;padding:0}.token-item{padding:.75rem 0;border-top:1px solid var(--border)}.token-item:first-of-type{border-top:none}.token-name{font-weight:500}.token-created{margin-left:.75rem;font-size:.85rem;color:var(--text-muted)}.token-url-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}@media(max-width:480px){.token-url-row{flex-direction:column;align-items:stretch}.token-url{word-break:break-all}}.token-url{flex:1;font-size:.8rem;padding:.35rem .5rem;background:var(--bg-hover);border-radius:6px;overflow:hidden;text-overflow:ellipsis}.btn-ghost.small{padding:.25rem .5rem;font-size:.8rem}.btn-ghost.small.danger{color:var(--danger)}.review-page{width:100%;min-width:0;max-width:none;margin:0;padding:2rem;box-sizing:border-box}.review-page .page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.review-page .back-link{color:var(--text-secondary);text-decoration:none;font-size:.9rem}.review-page .back-link:hover{color:var(--accent)}.review-page .page-header h1{flex:1;margin:0;font-size:1.25rem;font-weight:600}.period-tabs{display:flex;gap:.25rem}.period-tabs .tab{padding:.4rem .75rem;border-radius:6px;text-decoration:none;color:var(--text-secondary);font-size:.9rem;transition:all .2s}.period-tabs .tab:hover{background:var(--bg-hover);color:var(--text)}.period-tabs .tab.active{background:var(--accent-muted);color:var(--accent);font-weight:500}.chart-section{margin-bottom:2rem;padding:1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.chart-section h2{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text)}.chart-wrap{min-height:280px}.chart-wrap.bar-total{min-height:200px}.review-page .empty{padding:3rem;text-align:center}.record-detail-page{width:100%;min-width:0;max-width:none;margin:0;padding:2rem;box-sizing:border-box}.record-detail-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.record-detail-page .header-actions{display:flex;gap:.75rem}.btn-danger{padding:.5rem 1rem;border:1px solid var(--danger);background:transparent;color:var(--danger);border-radius:8px;cursor:pointer;font-size:.9rem}.btn-danger:hover{background:var(--danger-muted)}.record-article{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:2rem}.record-meta{display:flex;gap:1rem;margin-bottom:1rem}.record-meta .date{color:var(--text-muted);font-size:.95rem}.record-meta .status{padding:.25rem .5rem;border-radius:6px;font-size:.75rem;text-transform:uppercase}.record-article h1{margin:0 0 1rem;font-size:1.5rem;font-weight:600}.record-content{color:var(--text);line-height:1.7}.record-content p{margin:0 0 .75rem}.template-detail{display:flex;flex-direction:column;gap:1.25rem}.template-detail-section{border:1px solid var(--border);border-radius:8px;overflow:hidden}.template-detail-section h3{margin:0;padding:.6rem 1rem;font-size:.95rem;font-weight:600;background:var(--bg-hover);color:var(--text)}.template-detail-body{padding:1rem;color:var(--text-secondary);line-height:1.6}.template-detail-body ul{margin:0;padding:0 0 0 1.25rem}.template-detail-body li{margin-bottom:.4rem}.template-detail-body p{margin:0 0 .5rem}.record-form-page{width:100%;min-width:0;max-width:none;margin:0;padding:2rem;box-sizing:border-box}.form-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--text-muted)}.template-section{border:1px solid var(--border);border-radius:8px;overflow:hidden}.template-section-header{width:100%;padding:.75rem 1rem;background:var(--bg-hover);border:none;color:var(--text);font-size:.95rem;font-weight:600;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.template-section-header:hover{background:var(--border-strong)}.section-chevron{font-size:.7rem;color:var(--text-muted)}.template-section-body{padding:1rem;display:flex;flex-direction:column;gap:1rem}.form-row{display:flex;flex-direction:column;gap:.4rem}.form-row.inline{flex-direction:row;align-items:center;gap:.75rem}.form-row label{font-size:.88rem;color:var(--text-secondary);min-width:140px}.form-row input,.form-row textarea{padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:#0003;color:#fff;font-size:.9rem}.form-row input.small-input{width:60px}.form-row-hours-note .hours-note-row{display:flex;gap:.75rem;align-items:center}.form-row-hours-note .hours-input{width:72px;min-width:72px}.form-row-hours-note .note-input{flex:1}.checkbox-row{display:flex;align-items:center;gap:.5rem}.checkbox-row input{width:18px;height:18px}.checkbox-row label{font-size:.9rem;color:var(--text)}.record-form{display:flex;flex-direction:column;gap:1.25rem}.template-form .form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group textarea,.form-group select{padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;background:#0003;color:#fff;font-size:.95rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:120px}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-error{padding:.75rem;background:var(--danger-muted);border:1px solid var(--danger);border-radius:8px;color:var(--danger)}.form-actions{display:flex;gap:1rem;margin-top:.5rem}.form-actions button{padding:.75rem 1.5rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.form-actions button:hover:not(:disabled){background:var(--accent-hover)}.form-actions button:disabled{opacity:.7;cursor:not-allowed}.btn-cancel{padding:.75rem 1.5rem;color:var(--text-secondary);text-decoration:none;font-size:1rem}.btn-cancel:hover{color:var(--text)}.users-page{width:100%;min-width:0;max-width:none;margin:0;padding:2rem;box-sizing:border-box}.system-image-panel{margin-bottom:1rem;padding:1rem 1.2rem}.system-image-panel h3{margin:0 0 .4rem}.system-image-actions{display:flex;gap:.6rem;margin-top:.75rem}.system-image-actions .import-btn{position:relative;overflow:hidden}.system-image-actions .import-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.users-table{width:100%;border-collapse:collapse;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.users-table th,.users-table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border)}.users-table th{background:var(--bg-hover);font-weight:600;color:var(--text);font-size:.9rem}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover td{background:var(--bg-hover)}.status-active{color:var(--success)}.status-inactive{color:var(--text-muted)}.role-tag{display:inline-block;padding:2px 8px;margin-right:4px;font-size:.75rem;border-radius:4px;background:var(--bg-hover)}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0 4px;font-size:.9rem}.btn-link:hover{text-decoration:underline}.btn-link.danger{color:var(--danger, #e74c3c)}.success{color:var(--success);margin-bottom:.75rem}.users-table .sep{color:var(--text-muted);margin:0 4px}.users-modal .form-hint{font-size:.8rem;color:var(--text-muted);display:block;margin-top:4px}.role-checkboxes{display:flex;gap:1rem}.role-checkboxes label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.my-data-transfer-page{width:100%;min-width:0;max-width:none;margin:0;padding:2rem;box-sizing:border-box}.transfer-card{padding:1rem 1.2rem}.transfer-actions{display:flex;gap:.75rem;margin-top:.75rem}.import-btn{position:relative;overflow:hidden}.import-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.success{margin-top:.75rem;color:var(--success)}.settings-page{width:100%;padding:1rem;box-sizing:border-box}@media(min-width:600px){.settings-page{padding:2rem}}.settings-card{padding:1rem 1.25rem}.settings-top h2{margin:0}.settings-top .muted{margin-top:.5rem}.settings-actions{margin:.75rem 0 1rem;display:flex;gap:.5rem}.settings-table{width:100%;border-collapse:collapse}.settings-table th,.settings-table td{border-bottom:1px solid var(--border);padding:.6rem .4rem;text-align:left}.settings-table input[type=color]{width:2rem;height:2rem;border:none;background:transparent;padding:0;vertical-align:middle}.hex-val{margin-left:.5rem;color:var(--text-secondary);font-family:monospace}.badge-preview{font-weight:700}.reflection-page{width:100%;min-width:0;padding:1rem;max-width:none;margin:0;box-sizing:border-box}.reflection-intro{color:var(--text-muted);margin-bottom:1.5rem;font-size:.95rem}.reflection-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tab-btn{padding:.5rem 1rem;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;cursor:pointer}.tab-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.list-actions{margin-bottom:1rem}.daily-cards,.weekly-cards{display:flex;flex-direction:column;gap:1rem}.reflection-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.reflection-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-hover)}.reflection-card .card-date{font-weight:600}.reflection-card .card-body{padding:1rem}.reflection-card .card-body p,.reflection-card .card-body section{margin:.5rem 0;font-size:.9rem}.reflection-card .card-body h4{margin:1rem 0 .5rem;font-size:.9rem}.reflection-card .single-opt{color:var(--accent)}.reflection-modal{max-width:500px}.reflection-modal.wide{max-width:600px}.form-section{margin-bottom:1.5rem}.form-section h3{margin:0 0 .75rem;font-size:.95rem;color:var(--accent)}.inline-row{display:flex;gap:1.5rem;flex-wrap:wrap}.sd-row{display:flex;gap:.5rem}.sd-row .sd-type{flex:0 0 120px}.sd-row .sd-evidence{flex:1}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline}.social-page{width:100%;min-width:0;padding:1rem;box-sizing:border-box}@media(min-width:600px){.social-page{padding:2rem}}.social-page .page-header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem}.social-page .page-header h1{flex:1;margin:0;font-size:1.25rem;font-weight:600}.header-tabs{display:flex;gap:.25rem}.header-tabs button{padding:.4rem .75rem;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s}.header-tabs button:hover{color:var(--text);background:var(--bg-hover)}.header-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.list-header{display:flex;justify-content:flex-end;margin-bottom:1rem}.exchange-table-wrap{overflow-x:auto}.exchange-table{width:100%;border-collapse:collapse;font-size:.9rem}.exchange-table th,.exchange-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.exchange-table th{color:var(--text-muted);font-weight:500;white-space:nowrap}.exchange-table td.received{color:var(--success)}.exchange-table td.gave{color:var(--info)}.exchange-table tbody tr:hover{background:var(--bg-hover)}.btn-ghost.small{padding:.25rem .5rem;font-size:.8rem;background:none;border:none;cursor:pointer;color:var(--text-muted)}.btn-ghost.small:hover{color:var(--text)}.btn-ghost.danger.small{color:var(--danger)}.btn-ghost.danger.small:hover{color:var(--danger);text-decoration:underline}.row-actions{display:flex;gap:.5rem}.form-mode-hint{margin:0 0 1rem;font-size:.9rem;color:var(--text-muted)}.social-import-section{max-width:100%}.import-actions{margin-bottom:1.5rem}.import-textarea{width:100%;min-height:120px;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text);font-family:inherit;font-size:.9rem;resize:vertical;margin-bottom:.75rem}.import-textarea::placeholder{color:var(--text-muted)}.import-buttons{display:flex;gap:.75rem}.import-preview-hint{margin:0 0 1rem;font-size:.9rem;color:var(--text-muted)}.import-table .import-cell{width:100%;min-width:60px;padding:.35rem .5rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:.85rem}.import-table .import-cell.num{min-width:70px}.import-submit{display:flex;gap:.75rem;margin-top:1rem}.exchange-form{max-width:560px}.exchange-form .form-row{margin-bottom:1rem}.direction-row .direction-options{display:flex;gap:1.5rem}.direction-option{display:flex;align-items:center;gap:.5rem;cursor:pointer}.direction-option input{width:auto;accent-color:var(--accent)}.exchange-form label{display:block;margin-bottom:.35rem;font-size:.9rem;color:var(--text-secondary)}.exchange-form input,.exchange-form select{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text);font-size:.95rem}.form-row.inline{display:flex;flex-wrap:wrap;gap:1rem}.form-row.inline .form-group{flex:1;min-width:120px}.favor-hint .favor-preview{display:block;padding:.5rem .75rem;background:var(--bg-hover);border-radius:8px;font-size:.9rem;color:var(--text-muted)}.form-actions{margin-top:1.5rem}.alert.over-maintain{padding:1rem;margin-bottom:1.5rem;background:var(--warning-muted);border:1px solid var(--warning);border-radius:10px}.alert.over-maintain strong{color:var(--warning)}.alert.over-maintain p{margin:.5rem 0 0;font-size:.95rem}.balance-table-wrap{overflow-x:auto;margin-bottom:1rem}.balance-table{width:100%;border-collapse:collapse;font-size:.9rem}.balance-table th,.balance-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.balance-table th{color:var(--text-muted);font-weight:500}.balance-table td.positive{color:var(--success)}.balance-table td.negative{color:var(--danger)}.balance-table tr.risk{background:#fbbf2414}.balance-table tr.imbalance{background:#38bdf80f}.tag{padding:.2rem .5rem;border-radius:6px;font-size:.75rem}.tag.healthy{background:var(--success-muted);color:var(--success)}.tag.imbalance{background:var(--info-muted);color:var(--info)}.tag.risk{background:var(--warning-muted);color:var(--warning)}.recommendation{max-width:180px;font-size:.85rem;color:var(--text-muted)}.analysis-legend{font-size:.85rem;color:var(--text-muted);margin:0}.muted{color:var(--text-muted)}.accounting-page{width:100%;min-width:0;padding:1rem;max-width:none;margin:0;box-sizing:border-box}.accounting-page .page-header{margin-bottom:1.5rem}.accounting-page .page-header h1{margin:.5rem 0;font-size:1.5rem}.accounting-page .page-subtitle{margin:0;font-size:.9rem}.dashboard-filter{margin-bottom:1rem}.dashboard-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dashboard-filter h2{margin-bottom:.25rem}.accounting-date-presets{justify-content:flex-end}.accounting-dashboard .today-earnings,.accounting-dashboard .trend-card,.accounting-dashboard .dashboard-trends-section{margin-bottom:1rem}.accounting-dashboard .card,.accounting-banks .card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1.25rem}.accounting-dashboard .card h2,.accounting-banks .card h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.dashboard-section-title{font-size:1rem;font-weight:600;color:var(--text-muted);margin:0 0 .75rem}.accounting-shortcuts{margin-bottom:1.5rem}.accounting-shortcuts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:768px){.accounting-shortcuts-grid{grid-template-columns:1fr}}.accounting-shortcut-card{display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;color:inherit;transition:background .15s,border-color .15s,transform .1s}.accounting-shortcut-card:hover{background:var(--bg-hover, rgba(0, 0, 0, .03));border-color:var(--accent);transform:translateY(-1px)}.accounting-shortcut-icon{font-size:1.75rem;margin-bottom:.5rem}.accounting-shortcut-label{font-weight:600;font-size:1.05rem;margin-bottom:.25rem}.accounting-shortcut-desc{font-size:.85rem;color:var(--text-muted)}.today-earnings .earnings-row{display:flex;flex-wrap:wrap;gap:2rem}.today-earnings .earnings-row.today-overview-grid{gap:1.5rem 2rem}.today-earnings .today-overview-credit{color:var(--danger, #c62828)}.today-earnings .today-overview-total{font-weight:600}.today-earnings .label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.today-earnings .value{font-size:1.25rem;font-weight:600}.today-earnings .value.highlight{color:var(--success)}.dashboard-trends-section{margin-top:1.5rem}.trends-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.25rem}@media(max-width:1200px){.trends-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.trends-grid{grid-template-columns:1fr}}.trend-card{min-height:280px}.dashboard-hero{margin-bottom:1rem}.dashboard-hero-head,.dashboard-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.dashboard-hero-head h2,.dashboard-panel-head h2{margin:0 0 .2rem}.dashboard-hero-tag{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-hover, rgba(0, 0, 0, .03));color:var(--text-secondary);font-size:.85rem}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}@media(max-width:1120px){.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.dashboard-kpi-grid{grid-template-columns:1fr}}.dashboard-kpi-card{position:relative;display:grid;gap:.3rem;padding:1rem 1rem .95rem;border-radius:16px;border:1px solid var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 88%,var(--bg) 12%),var(--bg-card));box-shadow:0 10px 24px color-mix(in srgb,var(--bg) 18%,transparent)}.dashboard-kpi-card:before{content:"";display:block;width:2.6rem;height:.22rem;border-radius:999px;margin-bottom:.55rem;background:var(--border-strong)}.dashboard-kpi-card.tone-accent:before{background:linear-gradient(90deg,var(--accent),var(--info))}.dashboard-kpi-card.tone-success:before{background:linear-gradient(90deg,var(--success),var(--accent))}.dashboard-kpi-card.tone-info:before{background:linear-gradient(90deg,var(--info),var(--accent))}.dashboard-kpi-card.tone-danger:before{background:linear-gradient(90deg,var(--danger),#fb7185)}.dashboard-kpi-label{font-size:.8rem;color:var(--text-muted)}.dashboard-kpi-value{font-size:clamp(1.45rem,2vw,2rem);line-height:1.05;color:var(--text)}.dashboard-kpi-unit{font-size:.82rem;color:var(--text-muted)}.dashboard-kpi-hint{margin-top:.2rem;font-size:.84rem;color:var(--text-secondary)}.dashboard-content-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,.72fr);gap:1rem}@media(min-width:1440px){.dashboard-content-grid{grid-template-columns:minmax(0,2fr) minmax(280px,.68fr)}}@media(max-width:1040px){.dashboard-content-grid{grid-template-columns:1fr}}.dashboard-trend-panel,.dashboard-insight-panel{min-width:0}.trend-switcher{display:flex;flex-wrap:wrap;gap:.5rem}.trend-switcher-btn{display:grid;gap:.08rem;min-width:92px;padding:.55rem .7rem;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;transition:border-color .15s,background .15s,color .15s,transform .12s}.trend-switcher-btn span{font-weight:600;color:var(--text)}.trend-switcher-btn small{font-size:.75rem;color:var(--text-muted)}.trend-switcher-btn:hover{transform:translateY(-1px);border-color:var(--accent)}.trend-switcher-btn.active{background:color-mix(in srgb,var(--accent) 10%,var(--bg));border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.chart-shell{min-height:300px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 92%,var(--bg) 8%),var(--bg));padding:.5rem}.chart-meta-note{margin:0 0 .35rem;padding:0 .35rem;font-size:.82rem;color:var(--text-muted)}.chart-shell-sm{min-height:240px}.chart-empty{display:flex;align-items:center;justify-content:center;min-height:inherit;text-align:center}.dashboard-insight-stack{display:grid;gap:1rem}.accounting-top-expense-wrap.compact{margin-top:0;background:transparent}.top-expense-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem;flex-wrap:wrap}.top-expense-head h3{margin:0;font-size:1rem}.accounting-top-expense-list.compact{padding-left:1rem}@media(max-width:720px){.dashboard-filter-head{flex-direction:column}.accounting-date-presets{justify-content:flex-start}}.bank-table-page{display:block;margin-bottom:1.25rem}.card-compact{width:100%;max-width:320px}.accounting-banks-slim{display:grid;gap:1rem}.bank-create-card{width:100%}.bank-create-form{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.bank-create-field{display:flex;flex-direction:column;gap:.35rem}.bank-create-label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.bank-create-hint{font-size:.8rem;color:var(--text-muted)}.bank-balance-edit-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}.bank-create-input,.bank-create-select{padding:.55rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.95rem;width:100%;box-sizing:border-box}.bank-create-input:focus,.bank-create-select:focus{outline:none;border-color:var(--accent, #2563eb);box-shadow:0 0 0 2px #2563eb26}.bank-create-actions{margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--border)}.bank-create-actions .btn-primary{width:100%;padding:.6rem 1rem;font-size:1rem}.bank-create-form-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem 1rem;align-items:end}.bank-create-form-inline .bank-create-actions{margin-top:0;padding-top:0;border-top:none}.bank-create-form-inline .bank-create-actions .btn-primary{width:auto;min-width:100px}@media(max-width:400px){.bank-create-form-inline{grid-template-columns:1fr}}.accounting-page .modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;box-sizing:border-box}.accounting-page .modal-content{background:var(--bg-card);border-radius:12px;padding:1.5rem;box-shadow:0 4px 24px #0000004d}.bank-edit-modal{width:100%;max-width:420px}.bank-create-modal{max-width:460px}.deposit-edit-modal{width:100%;max-width:760px}.accounting-page .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.accounting-page .modal-header h2{margin:0;font-size:1.1rem}.accounting-page .modal-close{width:32px;height:32px;border:none;background:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer}.accounting-page .modal-close:hover{color:var(--text)}.bank-edit-form .bank-create-field{margin-bottom:1rem}.bank-edit-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.card-flex{min-width:0}.deposit-card-full{width:100%;min-width:0;background:radial-gradient(circle at top right,color-mix(in srgb,var(--info) 12%,transparent),transparent 34%),linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 94%,var(--info) 6%),var(--bg-card))}.cards-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media(max-width:800px){.cards-two-col{grid-template-columns:1fr}}.form-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}.form-row .form-label{font-size:.9rem;color:var(--text-muted);white-space:nowrap}.form-row input[type=text],.form-row input[type=number],.form-row input[type=date],.form-row select{padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);min-width:100px}.bank-table-card{overflow:visible}.bank-table-head{align-items:center;margin-bottom:1rem}.bank-table-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.bank-empty-state{display:grid;place-items:center;gap:.75rem;min-height:180px;border:1px dashed var(--border);border-radius:14px;background:color-mix(in srgb,var(--bg-hover) 62%,transparent)}.deposit-empty-state{min-height:220px}.bank-table-wrap{width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.bank-table{width:100%;min-width:880px;border-collapse:separate;border-spacing:0;font-size:.95rem}.bank-table th,.bank-table td{padding:.82rem .9rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}.bank-table th{position:sticky;top:0;z-index:1;font-size:.82rem;font-weight:600;color:var(--text-muted);background:color-mix(in srgb,var(--bg-card) 92%,var(--bg-hover))}.bank-table tbody tr{transition:background .16s ease}.bank-table tbody tr:hover{background:color-mix(in srgb,var(--bg-hover) 78%,transparent)}.bank-table .bank-col-name{width:190px}.bank-table .bank-col-type{width:110px}.bank-table .bank-col-balance{min-width:280px;text-align:right;font-variant-numeric:tabular-nums}.bank-table .bank-col-actions{width:160px;text-align:right}.bank-list,.deposit-list{list-style:none;margin:0;padding:0}.bank-item-wrap{border-bottom:1px solid var(--border)}.bank-item-wrap:last-child{border-bottom:none}.bank-list-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;padding:.95rem 0 0;margin-top:.9rem;border-top:1px solid var(--border);font-size:.95rem;overflow-x:auto}.bank-summary-item{display:inline-flex;align-items:baseline;gap:.35rem;padding:.45rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-hover, rgba(0, 0, 0, .02));white-space:nowrap}.bank-summary-label{color:var(--text-muted)}.bank-summary-value{font-weight:600;font-variant-numeric:tabular-nums}.bank-summary-value.bank-summary-credit{color:var(--danger, #dc2626)}.bank-summary-value.bank-summary-total{color:var(--accent, #3b82f6)}.bank-item{display:grid;grid-template-columns:1fr 72px 140px auto;gap:.75rem 1rem;align-items:center;padding:.85rem .75rem;min-height:48px}.bank-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .02))}.bank-name{font-weight:600;font-size:1rem;color:var(--text)}.bank-name-cell{display:flex;align-items:baseline;gap:.25rem;min-width:0;width:100%}.bank-name-main{flex:0 0 auto;font-weight:600;color:var(--text)}.bank-name-note{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:.92rem}.bank-type-tag{display:inline-block;padding:.15rem .45rem;font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--bg-hover, rgba(0, 0, 0, .06));border-radius:4px}.bank-type-pill{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .62rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.bank-type-pill.is-debit{color:color-mix(in srgb,var(--success, #16a34a) 86%,var(--text));background:color-mix(in srgb,var(--success, #16a34a) 12%,transparent)}.bank-type-pill.is-credit{color:color-mix(in srgb,var(--danger, #dc2626) 86%,var(--text));background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent)}.bank-balance{color:var(--accent);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-balance-edit{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap;justify-content:flex-end;white-space:nowrap}.bank-balance-hint{display:inline-block;margin-left:.35rem;font-size:.8rem;font-weight:400;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-col-actions.bank-actions,.bank-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:nowrap;justify-content:flex-end;white-space:nowrap}.bank-actions-dropdown{position:relative;display:inline-block}.bank-actions-dropdown-menu{position:absolute;top:100%;right:0;margin-top:2px;min-width:100px;padding:4px 0;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:10}.bank-actions-dropdown-item{display:block;width:100%;padding:.4rem .75rem;border:none;background:none;text-align:left;font-size:.9rem;color:var(--text);cursor:pointer}.bank-actions-dropdown-item:hover{background:var(--bg-hover)}.bank-actions-dropdown-item.danger{color:var(--danger, #dc2626)}.bank-item-wrap .deposit-item{border-bottom:none}.deposit-item{display:flex;align-items:center;gap:1rem;padding:.75rem;border-bottom:1px solid var(--border)}.deposit-item:last-child{border-bottom:none}.balance-input{width:100px;padding:.4rem .5rem}@media(max-width:640px){.bank-table-head{align-items:flex-start;flex-direction:column}.bank-table-actions{width:100%;justify-content:flex-start}.bank-list-summary{justify-content:flex-start}}.deposit-form .form-row,.salary-form .form-row{margin-bottom:.5rem}.deposit-form-inline .deposit-form-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}.deposit-form-inline .deposit-form-row select,.deposit-form-inline .deposit-form-row input{padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);min-width:0}.deposit-form-inline .deposit-form-row select{width:120px}.deposit-form-inline .deposit-form-row input[type=number]{width:90px}.deposit-form-inline .deposit-form-row input[type=date]{width:130px}.deposit-form-inline .deposit-form-row input[type=text]{width:100px;flex:1;min-width:80px}.deposit-form-slim{display:grid;gap:.85rem;padding:.1rem 0 .2rem}.deposit-form-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.deposit-form-title{font-size:.95rem;font-weight:600;color:var(--text)}.deposit-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem 1rem}.deposit-form-field{display:flex;flex-direction:column;gap:.35rem}.deposit-form-field span{font-size:.82rem;color:var(--text-muted)}.deposit-form-field input,.deposit-form-field select{width:100%;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.deposit-form-note{grid-column:span 2}.deposit-form-actions{display:flex;justify-content:flex-start}@media(max-width:1100px){.deposit-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.deposit-form-grid{grid-template-columns:1fr}.deposit-form-note{grid-column:span 1}}.deposit-table-wrap{overflow-x:auto;margin-top:.75rem;width:100%;min-width:0;-webkit-overflow-scrolling:touch;border-radius:14px;background:color-mix(in srgb,var(--bg-card) 92%,var(--bg-hover))}.deposit-table{width:100%;min-width:1180px;border-collapse:separate;border-spacing:0;font-size:.9rem}.deposit-table th,.deposit-table td{padding:.52rem .55rem;text-align:left;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.deposit-table th{color:var(--text-muted);font-weight:500}.deposit-item-row{background:color-mix(in srgb,var(--bg-card) 91%,var(--bg-hover))}.deposit-item-row:hover{background:color-mix(in srgb,var(--bg-hover) 76%,var(--bg-card))}.deposit-col-bank{width:220px}.deposit-col-status{width:100px}.deposit-col-amount{width:110px;text-align:right}.deposit-col-rate{width:90px}.deposit-col-start,.deposit-col-end{width:110px}.deposit-col-interest{width:110px;text-align:right}.deposit-col-total{width:120px;text-align:right}.deposit-col-action{width:110px;text-align:right;white-space:nowrap}.deposit-col-matured,.deposit-col-note{white-space:nowrap}.deposit-table-matured{min-width:1380px}.deposit-table-matured .deposit-col-bank{width:220px}.deposit-table-matured .deposit-col-status,.deposit-table-matured .deposit-col-amount{width:110px}.deposit-table-matured .deposit-col-rate{width:90px}.deposit-table-matured .deposit-col-start,.deposit-table-matured .deposit-col-end,.deposit-table-matured .deposit-col-interest{width:110px}.deposit-table-matured .deposit-col-total{width:120px}.deposit-table-matured .deposit-col-matured{width:160px}.deposit-table-matured .deposit-col-note{width:260px}.deposit-status-badge{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;background:var(--warning-muted);color:var(--warning, #d97706);font-size:.82rem;font-weight:600;white-space:nowrap}.deposit-status-badge.is-merged{background:var(--success-muted);color:var(--success, #059669)}.deposit-table td.num{font-variant-numeric:tabular-nums}.deposit-table .btn-sm{padding:.25rem .5rem;font-size:.8rem}.deposit-table .deposit-col-note,.deposit-table .deposit-col-bank,.deposit-table .deposit-col-matured{overflow:hidden;text-overflow:ellipsis}.deposit-col-action .btn-sm+.btn-sm{margin-left:.4rem}.deposit-pagination{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.75rem;font-size:.9rem}.deposit-pagination .btn-sm:disabled{opacity:.5;cursor:not-allowed}.deposit-item span,.deposit-item button{margin-right:.5rem}.card-salary .salary-form{display:flex;flex-direction:column;gap:1.25rem}.salary-page-head,.salary-records-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.salary-page-head h2,.salary-records-head h1{margin-bottom:.25rem}.salary-info{padding:.75rem 0;border-bottom:1px solid var(--border)}.salary-info-grid{display:grid;grid-template-columns:140px 160px 1fr;gap:1rem;align-items:end}@media(max-width:600px){.salary-info-grid{grid-template-columns:1fr}}.salary-field{display:flex;flex-direction:column;gap:.35rem}.salary-field-label{font-size:.85rem;color:var(--text-muted);font-weight:500}.salary-field input{padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1rem}.salary-field-note input{max-width:240px}.salary-presets{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.5rem 0}.salary-presets-apply,.salary-presets-save{display:flex;align-items:center;gap:.5rem}.salary-presets-label{font-size:.9rem;color:var(--text-secondary);margin-right:.25rem}.salary-presets select{padding:.45rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);min-width:110px}.preset-select{min-width:120px;padding:.45rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.preset-name-in{width:100px;padding:.45rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem}.add-preset-form{padding:1rem;background:var(--bg);border-radius:10px;border:1px solid var(--border)}.add-preset-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.5rem}.add-preset-row input[type=text]:first-child{width:120px;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text)}.preset-ratio-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:var(--text-secondary)}.preset-ratio-label input{width:52px;padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--text)}.add-preset-hint{font-size:.8rem;color:var(--text-muted);margin:0}.salary-distribution{padding-top:.25rem}.salary-distribution-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.salary-distribution-title{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:var(--text)}.salary-distribution-hint{font-size:.85rem;color:var(--text-muted);margin:0 0 .75rem}.salary-distribution-summary{display:flex;flex-wrap:wrap;gap:.5rem}.salary-distribution-summary span{display:inline-flex;align-items:center;padding:.35rem .65rem;border-radius:999px;background:var(--bg-hover);color:var(--text-secondary);font-size:.84rem}.salary-distribution-table-wrap{overflow-x:auto;margin-bottom:1rem}.salary-distribution-table{width:100%;min-width:1420px;border-collapse:collapse;font-size:.9rem}.salary-distribution-table th,.salary-distribution-table td{padding:.48rem .55rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.salary-distribution-table th{color:var(--text-muted);font-weight:500;font-size:.85rem}.salary-distribution-table .col-name{width:150px}.salary-distribution-table .col-amount{width:100px}.salary-distribution-table .col-type{width:92px}.salary-distribution-table .col-ratio{width:82px}.salary-distribution-table .col-fixed-amt{width:92px}.salary-distribution-table .type-select{min-width:82px;padding:.4rem .6rem}.salary-distribution-table .fixed-amt-in{width:72px}.salary-distribution-table .col-fixed{width:90px;color:var(--text-secondary)}.salary-distribution-table .col-net{width:90px}.salary-distribution-table .text-warn{color:var(--danger, #dc2626)}.salary-distribution-table .col-fd{width:82px}.salary-distribution-table .col-term{width:88px}.salary-distribution-table .col-term-days{width:82px}.salary-distribution-table .col-rate{width:82px;min-width:90px}.salary-distribution-table .col-merge{width:220px}.salary-distribution-table .col-preview{width:110px;color:var(--text-secondary)}.salary-merge-deposit{display:flex;flex-direction:column;gap:.25rem}.salary-merge-select{min-width:120px;padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem}.salary-merge-total{font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.salary-distribution-table .col-bank{width:170px}.salary-distribution-table .col-action{width:64px}.salary-distribution-table .project-name-in{min-width:110px;max-width:150px}.salary-distribution-table .ratio-in{width:64px}.salary-distribution-table .bank-select{min-width:150px;padding:.4rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.salary-fd-check{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;white-space:nowrap;color:var(--text-secondary);font-size:.84rem}.salary-fd-check input{margin:0}.salary-term-days{width:70px;margin-left:.35rem}.salary-rate-wrap{display:inline-flex;align-items:center;gap:.25rem}.salary-rate-wrap .salary-rate-in{width:4.5em;min-width:48px;box-sizing:border-box;font-size:1rem;color:var(--text);background:var(--bg)}.salary-rate-suffix{color:var(--text-secondary);font-variant-numeric:tabular-nums}.salary-bank-total{font-variant-numeric:tabular-nums;color:var(--text)}.salary-sub-bill-row td{background:var(--bg-secondary, rgba(0,0,0,.03));border-top:none;padding-top:.25rem;padding-bottom:.25rem;vertical-align:middle}.salary-sub-bill-row .col-sub-label{padding-left:1.5rem;display:flex;align-items:center;gap:.35rem}.salary-sub-bill-row .sub-bill-name{max-width:100px}.sub-bill-ratio-in{width:56px;margin-right:.15rem}.salary-sub-bill-row .btn-remove-sub{padding:.15rem .4rem;font-size:1rem;line-height:1;min-width:auto}.col-add-sub{padding:.35rem .5rem!important;border-top:none;background:var(--bg-secondary, rgba(0,0,0,.02));vertical-align:middle}.col-add-sub .btn{font-size:.9rem}.salary-distribution-table td input{width:100%;padding:.4rem .6rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums}.salary-distribution-table td select{width:100%;padding:.4rem .55rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.salary-item-row{background:color-mix(in srgb,var(--bg-card) 91%,var(--bg-hover))}.salary-item-row:hover{background:color-mix(in srgb,var(--bg-hover) 76%,var(--bg-card))}.salary-preview-value{display:inline-flex;justify-content:flex-end;width:100%;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.salary-submit-wrap{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.75rem}.salary-submit-wrap .btn-submit{padding:.6rem 1.25rem;font-size:1rem}.salary-row-actions{display:flex;align-items:center;gap:.4rem;justify-content:flex-end}@media(max-width:640px){.salary-row-actions{justify-content:flex-start}}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-muted)}.accounting-page .error{color:var(--danger);margin-bottom:1rem}.accounting-page .muted{color:var(--text-muted);font-size:.9rem}.salary-records-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.salary-records-card{margin-bottom:1.25rem}.salary-records-title{font-size:1.1rem;margin-bottom:.75rem;color:var(--text)}.salary-records-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.salary-records-table-wrap{overflow-x:auto;margin-bottom:.75rem}.salary-records-table{width:100%;border-collapse:collapse;font-size:.95rem}.salary-records-table th,.salary-records-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.salary-records-table th{color:var(--text-muted);font-weight:500}.table-sort-btn{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer}.table-sort-btn:hover{color:var(--text)}.salary-records-table td.num{font-variant-numeric:tabular-nums}.salary-records-pagination{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.salary-record-row-clickable{cursor:pointer}.salary-record-row-clickable:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.salary-detail-panel{margin-top:1.5rem;padding:1.25rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card, #fff)}.salary-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.salary-detail-actions{display:flex;align-items:center;gap:.5rem}.salary-detail-header h3{margin:0;font-size:1.1rem}.salary-detail-meta{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-bottom:1.25rem;color:var(--text-secondary)}.salary-detail-subtitle{font-size:.95rem;margin:1rem 0 .5rem;color:var(--text)}.salary-detail-table-wrap{overflow-x:auto;margin-bottom:.5rem}.salary-detail-table{width:100%;border-collapse:collapse;font-size:.95rem}.salary-detail-table-summary{max-width:440px}.salary-detail-table-full{min-width:560px}.salary-detail-table th,.salary-detail-table td{padding:.4rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.salary-detail-table th{color:var(--text-muted);font-weight:500}.salary-detail-table td.num{font-variant-numeric:tabular-nums}.salary-detail-total-row td{font-weight:600;background:color-mix(in srgb,var(--bg-card, #fff) 84%,var(--accent, #2d6cdf) 16%)}.salary-detail-bank-total{color:var(--text-muted);font-size:.86rem;white-space:nowrap}.salary-record-status{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;background:#2e7d321f;color:#2e7d32;font-size:.82rem;font-weight:600}.salary-record-status.is-revoked{background:#c628281f;color:#c62828}.salary-detail-actions .btn-danger{border:1px solid rgba(198,40,40,.24);background:#c628281a;color:#c62828}.salary-detail-actions .btn-danger:hover{background:#c6282829}.accounting-top-expense-wrap{margin-top:1rem;border:1px solid var(--border);border-radius:10px;padding:.75rem;background:var(--bg)}.accounting-top-expense-list{margin:0;padding-left:1.15rem}.accounting-top-expense-list li{margin:.45rem 0}.top-expense-main{display:block;color:var(--text)}.top-expense-sub{display:block;font-size:.85rem}.accounting-expenses-page{width:100%;min-width:0;max-width:none;margin:0;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;box-sizing:border-box}.expenses-record-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%}@media(max-width:1100px){.expenses-record-side{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.expenses-record-side{grid-template-columns:1fr}}.expenses-list-side{width:100%}.expenses-filter-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0 0 1rem;padding:.9rem;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--bg-card) 92%,var(--bg) 8%)}@media(max-width:900px){.expenses-filter-bar{grid-template-columns:1fr}}.expenses-filter-field{display:grid;gap:.4rem}.expenses-filter-field span{font-size:.82rem;color:var(--text-muted)}.expenses-filter-field select{width:100%;min-width:0;padding:.65rem .8rem;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.accounting-expenses-page .page-header{margin-bottom:1rem}.accounting-expenses-page .page-header h1{margin:.5rem 0;font-size:1.35rem}.accounting-expenses-page .page-subtitle{margin:0;font-size:.9rem}.expense-entry-card{margin-bottom:.5rem;border-radius:20px;position:relative;overflow:hidden;padding:1.1rem 1.1rem 1rem;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 92%,var(--bg) 8%),var(--bg-card));border:1px solid var(--border);box-shadow:0 14px 34px color-mix(in srgb,var(--bg) 18%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.expense-entry-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:4px;border-radius:4px 4px 0 0;background:var(--border)}.expense-entry-card.is-expense:before{background:linear-gradient(90deg,var(--danger, #dc2626),#fb7185)}.expense-entry-card.is-income:before{background:linear-gradient(90deg,var(--success, #16a34a),#22c55e)}.expense-entry-card.is-repay:before{background:linear-gradient(90deg,var(--accent, #3b82f6),var(--info, #0ea5e9))}.expense-entry-head{display:grid;gap:.25rem;margin-bottom:1rem;padding-top:.2rem}.expense-entry-head h2{margin:0;font-size:1.08rem;line-height:1.2}.expense-entry-kicker{display:inline-flex;width:fit-content;padding:.28rem .6rem;border-radius:999px;background:var(--bg-hover);color:var(--text-muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.expense-entry-form{width:100%}.expense-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}.expense-entry-grid .form-row{margin-bottom:0;display:flex;flex-direction:column;align-items:stretch;gap:.42rem}.expense-entry-grid .form-row label{font-size:.85rem;color:var(--text-muted);line-height:1.2}.expense-entry-grid .form-row input,.expense-entry-grid .form-row select{width:100%;min-width:0;padding:.65rem .8rem;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg) 78%,transparent);color:var(--text);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 4%,transparent);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.expense-entry-grid .form-row input:focus,.expense-entry-grid .form-row select:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 72%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);background:var(--bg-card)}.expense-entry-note{grid-column:1 / -1}.expense-entry-form .form-actions{display:flex;justify-content:flex-end;margin-top:1rem}.expense-entry-form .btn-primary{min-width:88px;padding-inline:1.15rem;border-radius:999px;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 24%,transparent)}.expense-entry-card.is-expense{background:radial-gradient(circle at top right,color-mix(in srgb,var(--danger) 12%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 94%,var(--danger) 6%),var(--bg-card))}.expense-entry-card.is-income{background:radial-gradient(circle at top right,color-mix(in srgb,var(--success) 12%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 94%,var(--success) 6%),var(--bg-card))}.expense-entry-card.is-repay{background:radial-gradient(circle at top right,color-mix(in srgb,var(--info) 12%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in srgb,var(--bg-card) 94%,var(--info) 6%),var(--bg-card))}@media(max-width:480px){.expense-entry-grid{grid-template-columns:1fr}.expense-entry-note{grid-column:1}}@media(max-width:720px){.expense-entry-card{padding:1rem}}.expenses-bank-filter{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}.expenses-bank-filter-label{font-size:.9rem;color:var(--text-muted)}.expenses-bank-btn{padding:.35rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:.85rem;cursor:pointer}.expenses-bank-btn:hover{background:var(--bg-hover);color:var(--text)}.expenses-bank-btn.active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.expenses-filter-hint{margin-bottom:.5rem;font-size:.9rem}.expenses-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.expenses-toolbar .date-presets{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.expenses-toolbar .preset-btn{padding:.4rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:.9rem;cursor:pointer}.expenses-toolbar .preset-btn:hover{background:var(--bg-hover);color:var(--text)}.expenses-toolbar .preset-btn.active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.expenses-toolbar .custom-range{display:inline-flex;align-items:center;gap:.5rem}.expenses-toolbar .custom-range input[type=date]{padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.range-summary{display:flex;gap:1rem;font-size:.95rem}.range-summary .sum-income{color:var(--success)}.range-summary .sum-expense{color:var(--danger, #dc2626)}.expenses-table-wrap{overflow-x:auto;margin-bottom:.5rem;border-radius:14px;background:color-mix(in srgb,var(--bg-card) 92%,var(--bg-hover));-webkit-overflow-scrolling:touch}.expenses-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;font-size:.9rem;border:1px solid var(--border);border-radius:10px;overflow:hidden}.expenses-table th,.expenses-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.expenses-table th{font-weight:500;color:var(--text-muted);background:var(--bg-hover, rgba(0, 0, 0, .03))}.expenses-table tbody tr:last-child td{border-bottom:none}.expenses-table tbody tr{background:color-mix(in srgb,var(--bg-card) 91%,var(--bg-hover));transition:background .16s ease}.expenses-table tbody tr:hover{background:color-mix(in srgb,var(--bg-hover) 76%,var(--bg-card))}.expenses-table .col-date{width:100px}.expenses-table .col-type{width:64px;font-weight:500}.expenses-table .col-amount{width:100px;font-variant-numeric:tabular-nums;text-align:right}.expenses-table .col-bank{width:260px;max-width:260px}.expenses-table .col-category{width:72px}.expenses-table .col-note{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.expenses-table .col-action{width:1px;white-space:nowrap}.expenses-table .col-amount.income{color:var(--success);font-weight:600}.expenses-table .col-amount.expense{color:var(--danger, #dc2626);font-weight:600}.expenses-table .type-income{color:var(--success)}.expenses-table .type-expense{color:var(--danger, #dc2626)}.expenses-table .type-repay{color:var(--accent, #3b82f6)}.system-badge{display:inline-flex;align-items:center;margin-left:.35rem;padding:.1rem .4rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text-muted);font-size:.7rem;font-weight:600;vertical-align:middle}.expenses-table .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.expenses-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.expenses-pagination-actions{display:inline-flex;align-items:center;gap:.5rem}.expense-form-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.expense-form,.expense-form-inline{width:100%;max-width:360px;padding:1.25rem}.expense-form-inline{max-width:none;margin-bottom:0}.expense-form h2,.expense-form-inline .expense-form-title{margin:0 0 1rem;font-size:1.1rem}.expense-form .form-row,.expense-form-inline .form-row{margin-bottom:.75rem}.expense-form .form-row label,.expense-form-inline .form-row label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.25rem}.expense-form .form-row input,.expense-form .form-row select,.expense-form-inline .form-row input,.expense-form-inline .form-row select{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.expense-form .form-actions,.expense-form-inline .form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.accounting-expenses-page .error{color:var(--danger);margin-bottom:.75rem}.accounting-expenses-page .empty{text-align:center;padding:2rem}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{min-height:100vh}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}a{color:inherit}
