@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg:#101318;--surface:#191d24;--surface-elevated:#22272f;--surface-hover:#2c313a;--primary:#20c5a4;--primary-hover:#1ba78b;--primary-soft:#20c5a41f;--primary-glow:#20c5a440;--text:#e9eaed;--text-secondary:#9da3af;--text-muted:#676f7e;--destructive:#df3a3a;--destructive-soft:#df3a3a1f;--success:#25b15f;--success-soft:#25b15f1f;--warning:#f6a823;--border:#272c35;--border-subtle:#1e2229;--ring:#20c5a4;--overlay:#080a0cb3;--font-sans:"DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #00000026;--shadow-md:0 2px 4px #0000004d, 0 4px 8px #0003;--shadow-lg:0 4px 8px #0000004d, 0 8px 16px #0003, 0 16px 32px #00000026;--shadow-glow:0 0 20px #20c5a426, 0 0 40px #20c5a40d;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.35s;--z-base:0;--z-sticky:20;--z-overlay:40;--z-modal:100;--z-toast:1000}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:var(--bg);font-size:16px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;min-height:100dvh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{text-wrap:balance;font-weight:600}p,li{text-wrap:pretty}input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--primary);text-decoration:none}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}#root{flex-direction:column;min-height:100dvh;display:flex}.app-content{flex:1;padding-bottom:72px}.bottom-nav{-webkit-backdrop-filter:blur(20px)saturate(180%);border-top:1px solid var(--border-subtle);height:68px;padding:0 var(--sp-4);padding-bottom:env(safe-area-inset-bottom,0);z-index:var(--z-sticky);background:#15181eeb;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-md);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);color:var(--text-muted);letter-spacing:.02em;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;min-width:64px;font-size:11px;font-weight:500;display:flex}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item:active{transform:scale(.93)}.bottom-nav-icon{width:22px;height:22px}.tab-bar{gap:var(--sp-1);background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-1);margin:var(--sp-4);display:flex}.tab-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);transition:all var(--duration-fast) var(--ease-out);text-align:center;background:0 0;border:none;flex:1;font-size:13px;font-weight:500}.tab-item.active{background:var(--primary);color:var(--bg);box-shadow:var(--shadow-sm)}.tab-item:active{transform:scale(.96)}.card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-5);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.card-glass{-webkit-backdrop-filter:blur(16px)saturate(150%);background:#1d222a99;border:1px solid #e9eaed0f}.form-group{gap:var(--sp-1);flex-direction:column;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:500}.form-input{width:100%;padding:var(--sp-3) var(--sp-4);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);appearance:none;font-size:15px}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.form-input::placeholder{color:var(--text-muted)}.form-input.currency{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:16px}.form-input.error{border-color:var(--destructive);box-shadow:0 0 0 3px var(--destructive-soft)}.form-error{color:var(--destructive);font-size:12px}.form-select{width:100%;padding:var(--sp-3) var(--sp-4);padding-right:var(--sp-10);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23888' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;font-size:15px}.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.segmented{background:var(--surface-elevated);border-radius:var(--radius-md);gap:2px;padding:2px;display:flex}.segmented-item{padding:var(--sp-2);border-radius:calc(var(--radius-md) - 2px);color:var(--text-muted);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);text-align:center;background:0 0;border:none;flex:1;font-size:13px;font-weight:500}.segmented-item.active{background:var(--surface-hover);color:var(--text);box-shadow:var(--shadow-sm)}.segmented-item:active{transform:scale(.96)}.toggle-wrap{justify-content:space-between;align-items:center;display:flex}.toggle{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-full);cursor:pointer;width:44px;height:24px;transition:background var(--duration-fast) var(--ease-out);flex-shrink:0;position:relative}.toggle.active{background:var(--primary);border-color:var(--primary)}.toggle-knob{background:var(--text);width:18px;height:18px;transition:transform var(--duration-fast) var(--ease-spring);border-radius:50%;position:absolute;top:2px;left:2px}.toggle.active .toggle-knob{transform:translate(20px)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border:none;width:100%;min-height:48px;font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background:var(--primary);color:var(--bg);box-shadow:var(--shadow-sm), var(--shadow-glow)}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface)}.btn-destructive{background:var(--destructive);color:#fff}.btn-sm{min-height:36px;padding:var(--sp-2) var(--sp-4);font-size:13px}.result-card-custom{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:var(--sp-6)}.result-row{padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.result-row:last-child{border-bottom:none}.result-label{color:var(--text-secondary);font-size:13px}.result-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);text-align:right;font-size:14px;font-weight:500}.result-highlight{background:var(--primary-soft);border-radius:var(--radius-md);padding:var(--sp-4);margin-bottom:var(--sp-4);text-align:center;border:1px solid #20c5a426}.result-highlight-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-1);font-size:12px}.result-highlight-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--primary);letter-spacing:-.02em;font-size:28px;font-weight:700}.rt-row{border-bottom:1px solid var(--border-subtle);align-items:center;padding:10px 0;font-size:13px;display:flex}.rt-row:last-child,.rt-row.no-border{border-bottom:none}.rt-label{color:var(--text-secondary);flex:1}.rt-badge-col{text-align:center;justify-content:center;align-items:center;width:90px;display:flex}.rt-curr{text-align:left;width:40px;color:var(--text)}.rt-val{text-align:right;width:95px;font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums}.result-badge{background:var(--surface-hover);color:var(--text);border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500;display:inline-block}.result-group{background:var(--surface-elevated);border-radius:var(--radius-md);padding:var(--sp-4);margin-top:var(--sp-2);margin-bottom:var(--sp-2)}.result-group .result-row{padding:var(--sp-2) 0;border-bottom:none}.history-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-4);border:1px solid var(--border-subtle);transition:background var(--duration-fast) var(--ease-out)}.history-card:active{background:var(--surface-elevated)}.history-header{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.history-type{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);background:var(--primary-soft);padding:2px var(--sp-2);border-radius:var(--radius-sm);font-size:11px;font-weight:600}.history-date{color:var(--text-muted);font-size:12px}.history-summary{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.history-item-label{color:var(--text-muted);font-size:11px}.history-item-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.auth-page{min-height:100dvh;padding:var(--sp-6);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:380px}.auth-logo{text-align:center;margin-bottom:var(--sp-8)}.auth-logo img{width:72px;height:72px;margin-bottom:var(--sp-4)}.auth-logo h1{color:var(--text);font-size:24px;font-weight:700}.auth-logo p{color:var(--text-muted);margin-top:var(--sp-1);font-size:14px}.auth-form{gap:var(--sp-4);flex-direction:column;display:flex}.auth-footer{text-align:center;margin-top:var(--sp-6);color:var(--text-muted);font-size:14px}.auth-footer a{font-weight:600}.page-header{padding:var(--sp-6) var(--sp-4) var(--sp-3)}.page-title{color:var(--text);font-size:22px;font-weight:700}.page-subtitle{color:var(--text-muted);margin-top:var(--sp-1);font-size:13px}.profile-avatar{background:var(--primary-soft);width:64px;height:64px;color:var(--primary);margin:0 auto var(--sp-4);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.toast{top:var(--sp-4);left:var(--sp-4);right:var(--sp-4);padding:var(--sp-4);border-radius:var(--radius-md);z-index:var(--z-toast);animation:slideDown var(--duration-normal) var(--ease-out) both;font-size:14px;font-weight:500;position:fixed}.toast-error{background:var(--destructive);color:#fff}.toast-success{background:var(--success);color:#fff}.spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}.empty-state{padding:var(--sp-16) var(--sp-6);text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state svg{margin-bottom:var(--sp-4);opacity:.3}.empty-state p{font-size:14px}.stack{flex-direction:column;display:flex}.stack-2{gap:var(--sp-2)}.stack-3{gap:var(--sp-3)}.stack-4{gap:var(--sp-4)}.stack-6{gap:var(--sp-6)}.px-4{padding-left:var(--sp-4);padding-right:var(--sp-4)}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.animate-in{animation:slideUp var(--duration-slow) var(--ease-out) both}.stagger-1{animation-delay:0s}.stagger-2{animation-delay:60ms}.stagger-3{animation-delay:.12s}.stagger-4{animation-delay:.18s}
