.sidebar[data-v-55b3b9b7]{width:260px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:22px 16px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}.brand[data-v-55b3b9b7]{padding:4px 8px 0;color:var(--text)}.logo[data-v-55b3b9b7]{height:42px;width:auto}.user-card[data-v-55b3b9b7]{display:flex;align-items:center;gap:12px;background:var(--input-bg);border-radius:var(--radius-sm);padding:12px}.avatar[data-v-55b3b9b7]{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary-light),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;overflow:hidden;flex-shrink:0}.avatar img[data-v-55b3b9b7]{width:100%;height:100%;object-fit:cover}.user-info[data-v-55b3b9b7]{min-width:0}.user-name[data-v-55b3b9b7]{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-sub[data-v-55b3b9b7]{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav[data-v-55b3b9b7]{display:flex;flex-direction:column;gap:4px;flex:1}.nav-item[data-v-55b3b9b7]{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);font-weight:600;font-size:14.5px;transition:background .15s,color .15s}.nav-item[data-v-55b3b9b7]:hover{background:var(--input-bg);color:var(--text)}.nav-item.active[data-v-55b3b9b7]{background:var(--primary-soft);color:var(--chip-text)}.nav-item.active[data-v-55b3b9b7] svg{color:var(--primary)}.nav-badge[data-v-55b3b9b7]{margin-left:auto;background:var(--danger);color:#fff;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 5px}.sidebar-foot[data-v-55b3b9b7]{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);padding-top:12px}.foot-btn[data-v-55b3b9b7]{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;color:var(--text-secondary);font-weight:600;font-size:14px;border-radius:var(--radius-sm);cursor:pointer;text-align:left}.foot-btn[data-v-55b3b9b7]:hover{background:var(--input-bg);color:var(--text)}.foot-btn.danger[data-v-55b3b9b7]:hover{background:var(--danger-soft);color:var(--danger)}@media(max-width:860px){.sidebar[data-v-55b3b9b7]{display:none}}.bottom-nav[data-v-6dec9fe6]{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:100;justify-content:space-around}.bn-item[data-v-6dec9fe6]{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text-muted);font-size:11px;font-weight:600;padding:4px 10px;flex:1}.bn-icon[data-v-6dec9fe6]{position:relative;display:flex}.bn-dot[data-v-6dec9fe6]{position:absolute;top:-2px;right:-4px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid var(--surface)}.bn-item.active[data-v-6dec9fe6]{color:var(--primary)}.bn-label[data-v-6dec9fe6]{line-height:1}@media(max-width:860px){.bottom-nav[data-v-6dec9fe6]{display:flex}}.toast-anim-enter-active[data-v-b664be68],.toast-anim-leave-active[data-v-b664be68]{transition:opacity .2s,transform .2s}.toast-anim-enter-from[data-v-b664be68],.toast-anim-leave-to[data-v-b664be68]{opacity:0;transform:translateY(10px)}.plain-layout[data-v-fb69fb15]{min-height:100vh}.app-layout[data-v-fb69fb15]{display:flex;min-height:100vh}.app-main[data-v-fb69fb15]{flex:1;padding:32px;max-width:1120px;width:100%;margin:0 auto}@media(max-width:860px){.app-main[data-v-fb69fb15]{padding:20px 16px 100px}}:root{--primary: #FF7A47;--primary-light: #FF9266;--primary-dark: #E85F2A;--primary-soft: #FFEDE3;--on-primary: #ffffff;--success: #16a34a;--success-soft: #dcfce7;--warning: #E2B500;--warning-soft: #FFF7CC;--brand-yellow: #FDCF00;--danger: #ef4444;--danger-soft: #fee2e2;--info: #2563eb;--info-soft: #dbeafe;--bg: #F5F4F2;--surface: #ffffff;--surface-2: #FBFAF8;--card: #ffffff;--border: #ECEAE6;--border-strong: #DAD7D1;--input-bg: #F3F2EF;--text: #1A1A1E;--text-secondary: #4A4A52;--text-muted: #8C8A92;--chip-bg: #FFEDE3;--chip-text: #C2410C;--overlay: rgba(0, 0, 0, .5);--radius: 16px;--radius-sm: 11px;--radius-lg: 22px;--shadow: 0 4px 22px rgba(26, 26, 30, .06);--shadow-lg: 0 10px 40px rgba(26, 26, 30, .12);--font: "Urbanist", system-ui, -apple-system, sans-serif;color-scheme:light}:root[data-theme=dark]{--primary: #FF7A47;--primary-light: #FF9266;--primary-dark: #E85F2A;--primary-soft: rgba(255, 122, 71, .16);--on-primary: #ffffff;--success: #22c55e;--success-soft: rgba(34, 197, 94, .16);--warning: #FACC15;--warning-soft: rgba(250, 204, 21, .15);--brand-yellow: #FDCF00;--danger: #ff5c5c;--danger-soft: rgba(255, 71, 71, .16);--info: #3b82f6;--info-soft: rgba(59, 130, 246, .16);--bg: #0F0F11;--surface: #1C1C20;--surface-2: #17171A;--card: #1E1E23;--border: #2C2C32;--border-strong: #3A3A41;--input-bg: #26262C;--text: #F4F3F1;--text-secondary: #B4B2BA;--text-muted: #85838C;--chip-bg: rgba(255, 122, 71, .18);--chip-text: #FFB089;--overlay: rgba(0, 0, 0, .6);--shadow: 0 4px 22px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}a{color:var(--primary);text-decoration:none}button{font-family:var(--font)}::selection{background:var(--primary-soft)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.page-head{margin-bottom:20px}.page-title{font-size:24px;font-weight:800;letter-spacing:-.02em}.page-subtitle{color:var(--text-muted);font-size:14px;margin-top:2px}.section-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;transition:filter .15s,transform .1s,background .15s;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(.98)}.btn:not(:disabled):hover{filter:brightness(1.04)}.btn-primary{background:linear-gradient(135deg,var(--primary-light),var(--primary-dark));color:#fff}.btn-solid{background:var(--primary);color:#fff}.btn-light{background:var(--input-bg);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--input-bg)}.btn-block{width:100%}.btn-lg{padding:14px 22px;font-size:15px}.btn-sm{padding:8px 13px;font-size:13px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:var(--text)}.field .hint{font-size:12px;color:var(--text-muted);margin-top:5px}.input,.select,.textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;font-size:14px;font-family:var(--font);font-weight:500;background:var(--input-bg);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.textarea{resize:vertical;min-height:90px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:700}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-primary{background:var(--primary-soft);color:var(--chip-text)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-muted{background:var(--input-bg);color:var(--text-muted)}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.empty-state{text-align:center;padding:48px 16px;color:var(--text-muted)}.empty-state svg{opacity:.4;margin-bottom:12px}.empty-state .title{font-weight:700;color:var(--text-secondary);margin-bottom:4px}.divider{height:1px;background:var(--border);margin:16px 0;border:none}.list-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none}.money{font-variant-numeric:tabular-nums;font-weight:800}.skeleton{background:linear-gradient(90deg,var(--input-bg) 25%,var(--border) 50%,var(--input-bg) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:20px;height:20px;border:2.5px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.col{display:flex;flex-direction:column}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.text-muted{color:var(--text-muted)}.text-sm{font-size:13px}.text-center{text-align:center}.flex-1{flex:1}.toast-wrap{position:fixed;left:50%;bottom:88px;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:var(--text);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);max-width:90vw}.toast.error{background:var(--danger);color:#fff}.toast.success{background:var(--success);color:#fff}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease,transform .18s ease}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}@media(max-width:720px){.grid-3,.grid-2{grid-template-columns:1fr}}
