:root{--color-brand: #f97316;--color-brand-hover: #ea580c;--color-brand-active: #c2410c;--color-brand-soft: #fff7ed;--color-brand-border: #fed7aa;--color-brand-glow: rgba(234, 88, 12, .16);--color-profit: #15803d;--color-profit-soft: #f0fdf4;--color-profit-border: #bbf7d0;--color-cost: #334155;--color-expense: #64748b;--color-cost-soft: #f8fafc;--color-critical: #dc2626;--color-critical-soft: #fef2f2;--color-critical-border: #fecaca;--color-warning: #d97706;--color-warning-soft: #fffbeb;--color-warning-border: #fde68a;--color-info: #2563eb;--color-info-soft: #eff6ff;--color-info-border: #bfdbfe;--bg-canvas: #f8fafc;--bg-app: #f1f5f9;--bg-surface: #ffffff;--bg-surface-subtle: #fbfcfe;--bg-dark: #0f172a;--color-border: #e2e8f0;--color-border-soft: #f1f5f9;--color-border-strong: #cbd5e1;--border-hairline: 1px solid #e2e8f0;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--text-subtle: #94a3b8;--text-inverse: #ffffff;--font-sans: "Prompt", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--leading-thai: 1.55;--leading-tight: 1.3;--text-caption: 12px;--text-body: 14px;--text-input-mobile: 16px;--text-metric: 16px;--text-title: 18px;--text-heading: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-squircle: 22px;--radius-pill: 9999px;--touch-target-min: 44px;--touch-spacing-min: 8px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 16px);--sticky-bottom-clearance: calc(env(safe-area-inset-bottom, 16px) + 12px) ;--shadow-elevated-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 12px rgba(15, 23, 42, .05);--shadow-elevated-md: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--shadow-elevated-lg: 0 2px 4px rgba(15, 23, 42, .04), 0 12px 32px rgba(15, 23, 42, .08);--shadow-modal: 0 -14px 40px -10px rgba(15, 23, 42, .22);--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-apple: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--spring-transition: transform .18s cubic-bezier(.34, 1.56, .64, 1)}.tabular-nums{font-variant-numeric:tabular-nums}.btn,.elevated-card{transition:transform .2s var(--ease-standard),opacity .15s ease}.btn:active{opacity:.85;transform:scale(.98)}.bottom-nav-item{transition:opacity .15s ease}.bottom-nav-item:active{opacity:.8}:root{font-family:Prompt,sans-serif;line-height:1.5;font-weight:400}body{margin:0;padding:0;width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden;min-height:100vh;background-color:#f1f5f9}#root{width:100%;margin:0 auto;padding:0;text-align:left}div.swal2-container{z-index:100000!important}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton-shimmer{background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9 80%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:6px}button:disabled,button[disabled]{pointer-events:none;cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f97316;outline-offset:2px}.modal-overlay,.modal-backdrop{touch-action:none}.modal-content-scrollable{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}@media(max-width:768px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}}.page-loading-screen{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;background:#f8fafc;background:radial-gradient(circle at 50% 45%,#fff,#f1f5f9);display:flex;align-items:center;justify-content:center;z-index:9999;box-sizing:border-box;overflow:hidden;font-family:Prompt,-apple-system,BlinkMacSystemFont,sans-serif;user-select:none;-webkit-user-select:none;animation:loaderFadeIn .22s ease-out}@keyframes loaderFadeIn{0%{opacity:0}to{opacity:1}}.page-loading-glow{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.12) 0%,rgba(249,115,22,.03) 50%,transparent 70%);pointer-events:none;animation:loaderGlowPulse 2.8s ease-in-out infinite alternate}@keyframes loaderGlowPulse{0%{transform:scale(.92);opacity:.7}to{transform:scale(1.15);opacity:1}}.page-loading-card{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;padding:32px 36px 28px;background:#ffffffe0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(226,232,240,.85);border-radius:28px;box-shadow:0 20px 40px -12px #0f172a14,0 1px 3px #0f172a08;max-width:290px;width:calc(100% - 48px);box-sizing:border-box;animation:cardFloat 3s ease-in-out infinite alternate}@keyframes cardFloat{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.page-loading-logo-wrap{position:relative;width:68px;height:68px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.page-loading-halo{position:absolute;inset:-6px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.22) 0%,transparent 70%);animation:haloPulse 2.4s ease-in-out infinite alternate}@keyframes haloPulse{0%{transform:scale(.95);opacity:.6}to{transform:scale(1.1);opacity:1}}.page-loading-logo-img{width:60px;height:60px;object-fit:contain;border-radius:16px;position:relative;z-index:1;filter:drop-shadow(0 4px 10px rgba(234,88,12,.15))}.page-loading-fallback-icon{width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;box-shadow:0 4px 12px #ea580c40}.page-loading-text-group{text-align:center;margin-bottom:20px}.page-loading-brand{display:block;font-size:15px;font-weight:800;letter-spacing:.08em;color:#0f172a;line-height:1.2}.page-loading-status{margin:4px 0 0;font-size:13px;font-weight:500;color:#64748b;letter-spacing:-.01em}.page-loading-progress-track{width:140px;height:3px;background:#f1f5f9;border-radius:999px;overflow:hidden;position:relative}.page-loading-progress-bar{position:absolute;top:0;left:0;height:100%;width:45%;border-radius:999px;background:linear-gradient(90deg,#f97316,#ea580c);box-shadow:0 0 8px #ea580c73;animation:progressSlide 1.5s cubic-bezier(.4,0,.2,1) infinite}@keyframes progressSlide{0%{left:-45%}to{left:100%}}@media(prefers-reduced-motion:reduce){.page-loading-screen,.page-loading-card,.page-loading-glow,.page-loading-halo{animation:none!important;transition:none!important}.page-loading-progress-bar{width:100%;left:0;animation:none!important}}
