:root{--primary: #6366f1;--primary-hover: #4f46e5;--bg-dark: #0f172a;--bg-card: rgba(30, 41, 59, .7);--text-main: #f8fafc;--text-muted: #94a3b8;--border: rgba(255, 255, 255, .1);--accent: #22d3ee;--gradient-bg: radial-gradient(circle at top right, #1e1b4b, #0f172a);--glass: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37);--radius: 12px;--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gradient-bg);color:var(--text-main);min-height:100vh;margin:0;overflow-x:hidden;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.025em}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;outline:none;font-family:inherit}button:disabled,.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.glass-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--glass-shadow)}.btn-primary{background:var(--primary);color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:600;transition:var(--transition);display:inline-flex;align-items:center;gap:.5rem}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-secondary{background:var(--glass);border:1px solid var(--border);color:var(--text-main);padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:600;transition:var(--transition)}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.input-field{background:#0003;border:1px solid var(--border);color:var(--text-main);padding:.75rem 1rem;border-radius:var(--radius);font-size:1rem;width:100%;transition:var(--transition)}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 2px #6366f133;outline:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .6s ease-out forwards}.landing-container{display:flex;flex-direction:column;gap:4rem}.hero-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;padding-top:6rem;padding-bottom:6rem}@media(max-width:768px){.hero-section{grid-template-columns:1fr;text-align:center}}.hero-content{display:flex;flex-direction:column;gap:1.5rem}.badge{background:#6366f11a;color:var(--primary);padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:600;width:fit-content;border:1px solid rgba(99,102,241,.2)}@media(max-width:768px){.badge{margin:0 auto}}.hero-content h1{font-size:4rem;line-height:1.1;font-weight:800}.text-gradient{background:linear-gradient(to right,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-content p{font-size:1.25rem;color:var(--text-muted);max-width:500px}.hero-actions{display:flex;gap:1rem;margin-top:1rem}@media(max-width:768px){.hero-actions{justify-content:center}}.visual-card{width:100%;aspect-ratio:1.4;padding:1.5rem;position:relative}.card-header{display:flex;gap:.5rem;margin-bottom:2rem}.card-dot{width:12px;height:12px;border-radius:50%}.card-dot.red{background:#ff5f56}.card-dot.yellow{background:#ffbd2e}.card-dot.green{background:#27c93f}.skeleton-line{height:12px;background:var(--glass);border-radius:6px;margin-bottom:1rem}.skeleton-line.full{width:100%}.skeleton-line.mid{width:60%}.skeleton-rows{margin-top:2rem;display:flex;flex-direction:column;gap:1.5rem}.skeleton-row{display:flex;align-items:center;gap:1rem}.skeleton-row .dot{width:24px;height:24px;border-radius:6px;background:var(--glass)}.skeleton-row .line{flex:1;height:10px;background:var(--glass);border-radius:5px}.skeleton-row .val{width:60px;height:10px;background:#22d3ee33;border-radius:5px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}@media(max-width:900px){.feature-grid{grid-template-columns:1fr}}.feature-item{padding:2.5rem;display:flex;flex-direction:column;gap:1rem}.feature-item .icon{width:48px;height:48px;color:var(--primary);margin-bottom:1rem}footer{padding:4rem 2rem;text-align:center;border-top:1px solid var(--border);color:var(--text-muted)}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem}.login-card{width:100%;max-width:440px;padding:3rem;display:flex;flex-direction:column;gap:2rem}.logo-section{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.logo-section p{color:var(--text-muted)}.login-form{display:flex;flex-direction:column;gap:1.25rem}.input-group{position:relative}.input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted)}.input-group .input-field{padding-left:3rem}.auth-btn{width:100%;justify-content:center;margin-top:.5rem}.error-message{color:#ff5f56;background:#ff5f561a;padding:.75rem;border-radius:var(--radius);font-size:.875rem;border:1px solid rgba(255,95,86,.2)}.divider{display:flex;align-items:center;text-align:center;color:var(--text-muted);font-size:.75rem}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.divider span{padding:0 1rem}.google-btn{width:100%;display:flex;justify-content:center;align-items:center;gap:.75rem;position:relative;background:#fff!important;color:#1f2937!important;border:1px solid #e5e7eb!important;font-weight:500!important}.google-btn:hover{background:#f9fafb!important;box-shadow:0 1px 3px #0000001a;transform:translateY(-1px)}.google-icon{width:18px;height:18px}.toggle-auth{text-align:center;color:var(--text-muted);font-size:.875rem}.toggle-auth button{background:none;color:var(--primary);font-weight:600;margin-left:.5rem;font-size:.875rem}.toggle-auth button:hover{text-decoration:underline}.dashboard-container{min-height:100vh;background:var(--bg-dark)}.nav-profile{display:flex;align-items:center;gap:1.5rem}.user-email{color:var(--text-muted);font-size:.875rem}.logout-btn{background:none;color:var(--text-muted);transition:var(--transition)}.logout-btn:hover{color:#ff5f56}.dashboard-content{padding-top:3rem;padding-bottom:3rem;display:flex;flex-direction:column;gap:2.5rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{font-size:2rem;margin-bottom:.5rem}.dashboard-header p{color:var(--text-muted)}.dashboard-grid{display:flex;flex-direction:column;gap:2rem}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}}.upload-section{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;transition:var(--transition);background:#ffffff05}.drop-zone.active{border-color:var(--primary);background:#6366f10d}.icon-circle{width:64px;height:64px;background:#6366f11a;color:var(--primary);border-radius:50%;display:flex;justify-content:center;align-items:center;margin-bottom:.5rem}.drop-zone h3{font-size:1.125rem}.drop-zone p{color:var(--text-muted);font-size:.875rem;margin-bottom:.5rem}.hidden-input{display:none}.upload-info{display:flex;flex-direction:column;gap:.75rem}.info-item{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.75rem}.recent-activity{padding:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.search-box{position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:.75rem;color:var(--text-muted)}.search-box input{background:#0003;border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem .5rem 2.25rem;color:var(--text-main);font-size:.875rem;width:200px}.table-wrapper{overflow-x:auto}.bills-table{width:100%;border-collapse:collapse}.bills-table th{text-align:left;padding:1rem;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.bills-table td{padding:1.25rem 1rem;border-bottom:1px solid var(--border);font-size:.875rem}.file-name{display:flex;align-items:center;gap:.75rem;font-weight:500}.file-icon{color:var(--primary)}.amount{font-family:Monaco,Consolas,monospace;font-weight:600}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.status-badge.completed{background:#22c55e1a;color:#22c55e}.status-badge.processing{background:#eab3081a;color:#eab308}.templates-container{min-height:100vh;background:var(--bg-dark)}.templates-content{padding-top:3rem;padding-bottom:3rem;display:flex;flex-direction:column;gap:2rem}.templates-grid{display:grid;grid-template-columns:3fr 2fr;gap:2rem;align-items:start}@media(max-width:900px){.templates-grid{grid-template-columns:1fr}}.create-template-section{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.variable-input-group{display:flex;gap:1rem;margin-bottom:.5rem}.variable-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto}.template-card{padding:1.5rem;margin-bottom:1rem;cursor:pointer;transition:var(--transition)}.template-card:hover{background:#ffffff0d}.template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.variable-tag{background:#6366f133;color:var(--primary);padding:.25rem .5rem;border-radius:4px;font-size:.75rem;margin-right:.5rem;margin-bottom:.5rem;display:inline-block}.remove-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem}.remove-btn:hover{color:#ef4444}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}.loading-screen{display:flex;justify-content:center;align-items:center;height:100vh;background:var(--bg-dark)}.loader{width:48px;height:48px;border:5px solid var(--glass);border-bottom-color:var(--primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.container{max-width:1200px;margin:0 auto;padding:0 2rem}nav{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:100;border-bottom:1px solid var(--border)}.logo{font-size:1.5rem;font-weight:800;background:linear-gradient(to right,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:flex;align-items:center;gap:.5rem}
