.update-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;animation:updateFadeIn .3s ease-out both}.update-banner{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;justify-content:center;padding:1.5rem 1rem 0;pointer-events:none;animation:updateSlideDown .4s cubic-bezier(.16,1,.3,1) both}.update-banner-content{pointer-events:auto;display:flex;align-items:center;gap:1rem;max-width:460px;width:100%;padding:.9rem 1.1rem;background:linear-gradient(135deg,#0b63ce,#2f92ff);border-radius:1rem;box-shadow:0 8px 32px #0b63ce66,0 0 0 1px #ffffff1a inset;color:#fff}.update-banner-text{margin:0;flex:1;font-size:.95rem;line-height:1.35}.update-banner-btn{flex-shrink:0;min-height:38px;padding:.5rem 1.2rem;border:2px solid rgba(255,255,255,.35);border-radius:.7rem;background:#ffffff26;color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .2s,transform .15s}.update-banner-btn:hover{background:#ffffff47;transform:scale(1.04)}.update-banner-btn:active{transform:scale(.97)}@keyframes updateFadeIn{0%{opacity:0}to{opacity:1}}@keyframes updateSlideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.app-root{min-height:100dvh;color:var(--text)}.app-shell{margin:0 auto;max-width:980px;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem;background:color-mix(in oklab,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.content{padding:1rem;padding-bottom:calc(var(--dock-h, 70px) + 16px)}.screen-block{display:grid;gap:.9rem}.screen-header h1{margin:0;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:.01em}.screen-header p{margin:.2rem 0 0}.eyebrow{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.muted{color:var(--text-muted)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:0 16px 28px #0b162714}.panel h2{margin:0 0 .8rem;font-size:1.08rem}.form-grid{display:grid;gap:.75rem}label{display:grid;gap:.34rem;font-weight:600}input,select,textarea{border:1px solid var(--border);border-radius:.78rem;padding:.75rem .8rem;color:var(--text);background:var(--surface-2)}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in oklab,var(--primary) 42%,transparent);border-color:var(--primary)}button{min-height:44px;border:1px solid var(--border);border-radius:.78rem;padding:.72rem 1rem;font-weight:700;cursor:pointer}button:disabled{opacity:.65;cursor:not-allowed}button.primary{background:var(--primary);color:var(--primary-contrast);border-color:color-mix(in oklab,var(--primary) 70%,black 20%)}button.ghost{background:var(--surface-2);color:var(--text)}button.danger{background:color-mix(in oklab,var(--danger) 78%,var(--surface) 22%);color:#fff;border-color:color-mix(in oklab,var(--danger) 70%,black 30%)}.success-message,.error-message{margin:0;padding:.68rem .75rem;border-radius:.74rem;font-weight:600}.success-message{background:color-mix(in oklab,var(--success) 18%,transparent);color:var(--success);border:1px solid color-mix(in oklab,var(--success) 35%,transparent)}.error-message{background:color-mix(in oklab,var(--danger) 18%,transparent);color:var(--danger);border:1px solid color-mix(in oklab,var(--danger) 35%,transparent)}.setup-screen{min-height:100dvh;display:grid;place-items:center;padding:1rem;position:relative;overflow:hidden;background:#0a0a0f}.setup-bg{position:fixed;inset:0;z-index:0}.setup-bg-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s cubic-bezier(.4,0,.2,1);will-change:opacity}.setup-bg-slide.active{opacity:1}.setup-bg-blur{position:absolute;inset:-40px;object-fit:cover;width:calc(100% + 80px);height:calc(100% + 80px);filter:blur(30px) brightness(.5) saturate(1.3);transform:scale(1.1)}.setup-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center}.setup-bg-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(99,102,241,.15) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(244,114,182,.12) 0%,transparent 55%),linear-gradient(to bottom,#00000059,#0000008c 40%,#000000b3);-webkit-backdrop-filter:blur(2px) saturate(1.2);backdrop-filter:blur(2px) saturate(1.2)}.setup-bokeh{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}.bokeh-dot{position:absolute;border-radius:50%;background:radial-gradient(circle,#fff9,#fff0 70%);animation:bokehFloat linear infinite;will-change:transform;filter:blur(1px)}@keyframes bokehFloat{0%{transform:translateY(0) translate(0) scale(1)}25%{transform:translateY(-30vh) translate(15px) scale(1.15)}50%{transform:translateY(-55vh) translate(-10px) scale(.9)}75%{transform:translateY(-78vh) translate(20px) scale(1.1)}to{transform:translateY(-105vh) translate(-5px) scale(.85)}}.setup-card{position:relative;z-index:10;width:min(440px,92%);background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:1.6rem;box-shadow:0 8px 32px #00000059,0 0 0 1px #ffffff0d inset,0 -1px #ffffff1a inset;padding:2rem 1.5rem 1.8rem;backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);color:#f0f0f5;transform:translateY(40px) scale(.95);opacity:0;transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .8s ease}.setup-card--visible{transform:translateY(0) scale(1);opacity:1}.setup-card-border{position:absolute;inset:-2px;border-radius:1.7rem;background:conic-gradient(from var(--border-angle, 0deg),rgba(99,102,241,.6),rgba(244,114,182,.5),rgba(251,191,36,.4),rgba(52,211,153,.5),rgba(99,102,241,.6));z-index:-1;opacity:.6;filter:blur(6px);animation:borderRotate 6s linear infinite}@keyframes borderRotate{to{--border-angle: 360deg}}@property --border-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.setup-avatar-wrap{position:relative;width:110px;height:110px;margin:0 auto .5rem}.setup-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.25);position:relative;z-index:2;animation:avatarEntry 1s cubic-bezier(.16,1,.3,1) .2s both;transition:border-color 1.6s ease,transform .3s ease}.setup-avatar:hover{transform:scale(1.06);border-color:#0b63ce99}.setup-avatar-ring{position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(from 0deg,#0b63ceb3,#2f92ff99,#73c6ff80,#0b63ceb3);z-index:1;animation:ringRotate 4s linear infinite;filter:blur(3px);opacity:.8}@keyframes ringRotate{to{transform:rotate(360deg)}}@keyframes avatarEntry{0%{transform:scale(.5) rotate(-12deg);opacity:0;filter:blur(8px)}to{transform:scale(1) rotate(0);opacity:1;filter:blur(0)}}.setup-avatar-fallback{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#6366f14d,#f472b64d);display:grid;place-items:center;font-size:2.8rem;font-weight:800;color:#fffc;border:3px solid rgba(255,255,255,.2);position:relative;z-index:2}.setup-title{margin:.4rem 0 .1rem;font-size:2rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#dce8ff,#69b0ff,#2f92ff,#4aa0ff,#73c6ff,#dce8ff);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientTitle 5s ease infinite}@keyframes gradientTitle{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.setup-subtitle{margin:.15rem 0 1.2rem;color:#c8c8dc99;font-size:.95rem;letter-spacing:.06em}.setup-form{display:grid;gap:.75rem;animation:formSlideUp .5s cubic-bezier(.16,1,.3,1) both}@keyframes formSlideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.setup-input{border:1px solid rgba(255,255,255,.12);border-radius:.85rem;padding:.85rem 1rem;font-size:1.1rem;text-align:center;color:#f0f0f5;background:#ffffff0f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s,box-shadow .3s,background .3s}.setup-input::placeholder{color:#c8c8dc66}.setup-input:focus{outline:none;border-color:#6366f180;box-shadow:0 0 0 3px #6366f126,0 0 20px #6366f114;background:#ffffff17}.setup-input--pin{font-size:1.8rem;letter-spacing:.5em}.setup-btn{position:relative;overflow:hidden;min-height:48px;border:1px solid rgba(255,255,255,.12);border-radius:.85rem;padding:.85rem 1rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .3s,background .3s}.setup-btn:active:not(:disabled){transform:scale(.97)}.setup-btn.primary{background:linear-gradient(135deg,#0b63ce,#2f92ff,#4aa0ff);color:#fff;border-color:#0b63ce66;box-shadow:0 4px 15px #0b63ce4d}.setup-btn.primary:hover:not(:disabled){box-shadow:0 6px 25px #0b63ce73;transform:translateY(-1px)}.setup-btn.ghost{background:#ffffff0d;color:#c8c8dcb3;font-size:.9rem;min-height:40px;padding:.6rem 1rem}.setup-btn.ghost:hover:not(:disabled){background:#ffffff1a;color:#dcdcf0e6}.setup-btn:disabled{opacity:.5;cursor:not-allowed}.setup-btn-text{position:relative;z-index:2}.setup-btn-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:shimmerSlide 2.5s ease-in-out infinite;z-index:1}@keyframes shimmerSlide{0%{left:-100%}60%{left:100%}to{left:100%}}.setup-card .error-message{background:#ef444426;color:#fca5a5;border-color:#ef44444d}.setup-card .success-message{background:#34d39926;color:#6ee7b7;border-color:#34d3994d}.setup-card p{margin:.45rem 0 .85rem;color:#dcdcf0d9}.setup-card strong{color:#e0e7ff}@media(min-width:600px){.setup-card{padding:2.5rem 2rem 2rem}.setup-avatar-wrap{width:128px;height:128px}.setup-title{font-size:2.4rem}}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.kpi-card{background:linear-gradient(170deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:.95rem;padding:.8rem}.kpi-card p{margin:0;color:var(--text-muted);font-size:.92rem}.kpi-card strong{display:inline-block;margin-top:.35rem;font-size:clamp(1.15rem,2.6vw,1.4rem)}.compact-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.compact-list li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:var(--surface-2);border:1px solid var(--border);border-radius:.8rem;padding:.65rem}.compact-list p,.compact-list small{margin:0}.category-bars{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.line-head{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:.28rem}.bar-track{height:12px;border-radius:999px;background:color-mix(in oklab,var(--surface-2) 80%,var(--border) 20%);overflow:hidden}.bar-fill{height:100%;background:var(--bar);border-radius:inherit}.inline-action{display:grid;grid-template-columns:1fr auto;gap:.5rem}.action-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.ocr-summary{margin-top:.75rem;border:1px solid var(--border);background:var(--surface-2);border-radius:.8rem;padding:.75rem}.ocr-summary p{margin:.2rem 0}.expense-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.expense-list li{border:1px solid var(--border);border-radius:.84rem;padding:.68rem;background:var(--surface-2)}.expense-main{display:grid;gap:.2rem}.expense-main p,.expense-main strong{margin:0}.expense-meta{margin-top:.5rem;display:flex;justify-content:space-between;color:var(--text-muted);font-size:.86rem}.report-controls{display:grid;gap:.65rem;grid-template-columns:1fr}.report-table{width:100%;border-collapse:collapse;font-size:.95rem}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .35rem}.report-table th{color:var(--text-muted);font-weight:600}.dock{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;align-items:stretch;justify-content:space-around;padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px));background:color-mix(in oklab,var(--surface) 94%,transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);border-top:1px solid var(--border);transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1)}.dock--hidden{transform:translateY(100%);opacity:0;pointer-events:none}.dock-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;min-height:48px;border:none;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;padding:4px 0;transition:color .2s ease}.dock-item--active{color:var(--primary)}.dock-label{font-size:.68rem;font-weight:600;line-height:1;letter-spacing:.01em}.dock-dot,.dock-tooltip{display:none}@media(hover:hover)and (min-width:641px){.dock{bottom:12px;left:50%;right:auto;transform:translate(-50%) translateY(0);justify-content:center;gap:6px;padding:8px 12px;border:1px solid rgba(255,255,255,.3);border-top:1px solid rgba(255,255,255,.3);border-radius:22px;background:#ffffffb8;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:0 1px 2px #0000000f,0 4px 12px #00000014,0 12px 32px #0000001a,0 0 0 .5px #0000000a}[data-theme=dark] .dock{background:#1e1e1ec7;border-color:#ffffff14;box-shadow:0 1px 2px #0003,0 4px 12px #00000040,0 12px 32px #00000059,0 0 0 .5px #ffffff0f}.dock--hidden{transform:translate(-50%) translateY(calc(100% + 20px))}.dock-item{flex:0 0 auto;width:50px;height:50px;min-height:unset;gap:0;padding:0;border-radius:14px;transform:scale(var(--dock-scale, 1));transform-origin:bottom center;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .2s ease,color .2s ease}.dock-item:hover{background:#0000000f;color:var(--text)}[data-theme=dark] .dock-item:hover{background:#ffffff1a}.dock-item--active:hover{color:var(--primary)}.dock-label{display:none}.dock-dot{display:block;position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--primary);box-shadow:0 0 6px color-mix(in oklab,var(--primary) 60%,transparent);animation:dockDotIn .3s cubic-bezier(.34,1.56,.64,1) both}.dock-tooltip{display:block;position:absolute;top:-36px;left:50%;transform:translate(-50%);padding:5px 10px;border-radius:8px;background:#141414e0;color:#fff;font-size:.75rem;font-weight:600;white-space:nowrap;pointer-events:none;animation:dockTooltipIn .15s ease both}.dock-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:#141414e0;border-radius:1px}}@keyframes dockDotIn{0%{transform:translate(-50%) scale(0)}to{transform:translate(-50%) scale(1)}}@keyframes dockTooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.theme-switcher{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}@media(min-width:860px){.report-controls{grid-template-columns:1fr auto auto;align-items:end}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>:last-child{grid-column:1 / -1}.action-row{grid-template-columns:repeat(3,auto);justify-content:start}}:root{font-family:Atkinson Hyperlegible,Trebuchet MS,Segoe UI,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:17px;--bg: #f5f7fb;--bg-accent: radial-gradient(circle at top right, #dce8ff, #f5f7fb 55%);--surface: #ffffff;--surface-2: #eef3fa;--text: #16263f;--text-muted: #52617a;--border: #cfd9ea;--primary: #0b63ce;--primary-contrast: #ffffff;--success: #0a7a47;--danger: #b72a2a;--bar: linear-gradient(90deg, #0b63ce, #2f92ff)}:root[data-theme=dark]{--bg: #0d1622;--bg-accent: radial-gradient(circle at top right, #17283f, #0d1622 58%);--surface: #132132;--surface-2: #1a2b40;--text: #f1f5fb;--text-muted: #b8c4d6;--border: #2f435f;--primary: #69b0ff;--primary-contrast: #06213d;--success: #43d694;--danger: #ff7b7b;--bar: linear-gradient(90deg, #4aa0ff, #73c6ff)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg-accent);color:var(--text)}a{color:inherit}button,input,select,textarea{font:inherit}
