body{background:#f5f7fa;margin:0;font-family:Roboto,Helvetica Neue,Arial,sans-serif}.app-root{position:relative;min-height:100vh;background:#f5f7fa;padding-bottom:92px;overflow:hidden}.panel-track{display:flex;width:100%;transition:transform .6s cubic-bezier(.22,1,.36,1)}.panel{flex:0 0 100%;width:100%;display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 92px);overflow-y:auto;padding:0 16px;box-sizing:border-box}.stats-panel>.MuiContainer-root{width:100%;max-width:1200px;margin:0 auto}.bottom-nav{position:fixed;left:0;right:0;bottom:0;border-radius:18px 18px 0 0;overflow:hidden;z-index:20}.fixed-expenses-panel{padding:32px 24px 120px;max-width:1200px;margin:0 auto;display:flex;flex-direction:column;min-height:calc(100vh - 92px);width:100%}.panel-header{margin-bottom:24px}.timeline-scroll{overflow-x:auto;padding-bottom:32px;position:relative;scroll-snap-type:x proximity}.timeline-track{display:flex;gap:18px;padding:10px 6px}.day-card{background:#ffffffe6;border:1px solid rgba(211,220,235,.7);border-radius:18px;min-width:110px;padding:16px 14px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 10px 32px #43679614;transition:transform .35s ease,box-shadow .35s ease,opacity .35s ease;cursor:pointer;scroll-snap-align:center;border-top:4px solid transparent;position:relative}.day-card:focus{outline:none;box-shadow:0 12px 36px #4169e133}.day-card.status-past{opacity:.45}.day-card.status-today{border-top-color:#2d8cff;transform:translateY(-6px) scale(1.04);box-shadow:0 18px 40px #2d8cff2e}.day-card.status-tomorrow,.day-card.status-dayAfterTomorrow{color:#0f2738}.day-card.empty-day .expense-stack{opacity:.2}.day-number{font-size:1.6rem;font-weight:700;letter-spacing:.04em}.day-total{font-size:.95rem;font-weight:600;color:#1d3557}.expense-stack{display:flex;flex-direction:column-reverse;gap:6px;width:18px;align-items:center;min-height:64px}.expense-bar{width:100%;background:linear-gradient(180deg,#2d8cfff2,#1047a5d9);border-radius:6px;opacity:0;transform:translateY(-12px);animation:stackDrop .48s cubic-bezier(.22,1,.36,1) forwards}@keyframes stackDrop{to{opacity:1;transform:translateY(0)}}.panel-loading,.panel-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#3a4a65}.day-detail-drawer{border-top-left-radius:22px;border-top-right-radius:22px;padding-bottom:16px;max-height:70vh}.drawer-header{padding:24px 24px 12px}.drawer-list-item .MuiListItemText-primary{font-weight:600}@media (max-width: 900px){.panel{align-items:stretch;padding:0}.stats-panel,.expenses-panel{padding:0}.fixed-expenses-panel{padding:24px 16px 110px;max-width:100%}}.progress-bar{display:none}.loading-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:radial-gradient(140% 140% at 20% 20%,#f4f8ff,#e7f0ff 42%,#f5f7fa 80%)}.loading-card{width:min(960px,96vw);background:#fff;border-radius:20px;padding:28px 28px 32px;box-shadow:0 20px 60px #2d4e7b26;border:1px solid rgba(45,140,255,.08);display:flex;flex-direction:column;gap:18px}.loading-hero{display:flex;flex-direction:column;gap:6px}.loading-badge{display:inline-flex;align-items:center;gap:8px;background:#eaf4ff;padding:6px 12px;border-radius:12px;color:#1d4f9f;width:max-content}.loading-dot{width:10px;height:10px;background:#2d8cff;border-radius:50%;box-shadow:0 0 #2d8cff52;animation:pulseDot 1.6s ease-in-out infinite}.loading-meter{width:100%;height:10px;border-radius:14px;background:#eef2f7;position:relative;overflow:hidden;border:1px solid rgba(17,38,68,.06)}.loading-meter-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:18%;background:linear-gradient(90deg,#2d8cff,#55d3a6);border-radius:12px;box-shadow:0 8px 22px #2d8cff52;transition:width .32s ease;background-size:200% 100%;animation:meterFlow 1.2s linear infinite}.loading-meter-fill.complete{animation:none}.loading-meter-fill.error{background:linear-gradient(90deg,#e84d4d,#f28b82);box-shadow:0 8px 22px #e84d4d47;animation:none}.loading-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.loading-step{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f8fbff;border:1px solid transparent;border-radius:12px;transition:background .24s ease,border-color .24s ease,transform .24s ease,box-shadow .24s ease}.loading-step.in_progress{background:#eaf4ff;border-color:#bfdcff;box-shadow:0 10px 30px #2d8cff1f;transform:translateY(-2px)}.loading-step.done{background:#f3fbf5;border-color:#bde5c8}.loading-step.error{background:#fff5f5;border-color:#f0c2c2;box-shadow:0 10px 30px #e84d4d24}.step-icon{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#eef3ff;color:#1f4fa3}.loading-step.in_progress .step-icon{animation:pulseStep 1.4s ease-in-out infinite}.loading-step.done .step-icon{background:#e6f8ed;color:#1f7a42}.loading-step.error .step-icon{background:#ffecec;color:#c0392b;animation:none}.step-copy{display:flex;flex-direction:column;gap:2px}.step-label{font-weight:700;font-size:.98rem}.step-status{color:#4c5c73;font-size:.9rem}.spin{animation:spin 1s linear infinite}.loading-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff0f0;border:1px solid #f0c2c2;border-radius:12px}@keyframes pulseDot{0%{transform:scale(.98);box-shadow:0 0 #2d8cff52}70%{transform:scale(1);box-shadow:0 0 0 14px #2d8cff00}to{transform:scale(.98);box-shadow:0 0 #2d8cff00}}@keyframes pulseStep{0%{transform:scale(.96);box-shadow:0 0 #2d8cff40}70%{transform:scale(1);box-shadow:0 0 0 14px #2d8cff00}to{transform:scale(.96);box-shadow:0 0 #2d8cff00}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes meterFlow{0%{background-position:0% 50%}to{background-position:-200% 50%}}@media (max-width: 640px){.loading-card{padding:22px 18px 26px}.loading-steps{grid-template-columns:1fr}.loading-error{flex-direction:column;align-items:flex-start}}
