@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-base:#f5f0e8;--bg-surface:#fff;--bg-elevated:#faf7f2;--bg-card:#fff;--bg-hover:#f0ebe2;--border-subtle:#0000000f;--border-default:#0000001a;--border-strong:#0000002e;--text-primary:#1a1a1a;--text-secondary:#555;--text-muted:#999;--text-disabled:#ccc;--accent-primary:#8b7355;--accent-primary-hover:#6d5a43;--accent-primary-subtle:#8b73551a;--accent-green:#2d8a56;--accent-green-subtle:#2d8a5614;--accent-red:#c43e3e;--accent-red-subtle:#c43e3e14;--accent-amber:#b07d2e;--accent-amber-subtle:#b07d2e14;--accent-blue:#3d6b9e;--accent-blue-subtle:#3d6b9e14;--accent-purple:#7b5ea7;--accent-purple-subtle:#7b5ea714;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--transition-fast:.15s ease;--transition-normal:.25s ease;--sidebar-width:240px;--sidebar-bg:#2c2621;--sidebar-text:#e8dfd4;--sidebar-text-muted:#a89b8c;--sidebar-hover:#ffffff0f;--sidebar-active-bg:#ffffff1a;--sidebar-active-text:#fff;--sidebar-border:#ffffff0f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:100;transition:transform var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{border-bottom:1px solid var(--sidebar-border);padding:24px 20px 20px}.sidebar-logo-mark{align-items:center;gap:10px;display:flex}.sidebar-logo-icon{background:var(--accent-primary);border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;font-weight:700;display:flex}.sidebar-logo-text{color:var(--sidebar-text);font-size:15px;font-weight:700;line-height:1.2}.sidebar-logo-sub{color:var(--sidebar-text-muted);font-size:11px;font-weight:400}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex;overflow-y:auto}.sidebar-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-text-muted);padding:12px 8px 6px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--radius-md);color:var(--sidebar-text-muted);transition:all var(--transition-fast);cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);border-color:#ffffff14}.nav-item svg,.nav-icon{opacity:.7;flex-shrink:0;width:17px;height:17px}.sidebar-footer{border-top:1px solid var(--sidebar-border);padding:16px}.sidebar-footer .btn{color:var(--sidebar-text-muted)}.sidebar-footer .btn:hover{color:var(--sidebar-text);background:var(--sidebar-hover)}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.top-bar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:50;height:60px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:sticky;top:0}.top-bar-title{color:var(--text-primary);font-size:17px;font-weight:700}.top-bar-actions{align-items:center;gap:10px;display:flex}.page-content{flex:1;padding:28px 32px}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:8px;padding:9px 18px;font-size:14px;font-weight:500;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--accent-red-subtle);color:var(--accent-red);border:1px solid #c43e3e26}.btn-danger:hover{background:#c43e3e1f}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:12px 24px;font-size:15px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.card-title{color:var(--text-primary);font-size:15px;font-weight:700}.card-body{padding:22px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-shadow:var(--shadow-sm);padding:20px;position:relative;overflow:hidden}.stat-card:before{content:"";opacity:0;height:3px;transition:opacity var(--transition-fast);position:absolute;top:0;left:0;right:0}.stat-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md)}.stat-card:hover:before{opacity:1}.stat-card.green:before{background:var(--accent-green)}.stat-card.red:before{background:var(--accent-red)}.stat-card.amber:before{background:var(--accent-amber)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:600}.stat-value{color:var(--text-primary);font-size:26px;font-weight:700;line-height:1.1}.stat-value.positive{color:var(--accent-green)}.stat-value.negative{color:var(--accent-red)}.stat-meta{color:var(--text-muted);margin-top:6px;font-size:12px}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex;position:absolute;top:20px;right:20px}.stat-icon svg{width:20px;height:20px}.stat-icon.blue{background:var(--accent-blue-subtle);color:var(--accent-blue)}.stat-icon.green{background:var(--accent-green-subtle);color:var(--accent-green)}.stat-icon.red{background:var(--accent-red-subtle);color:var(--accent-red)}.stat-icon.amber{background:var(--accent-amber-subtle);color:var(--accent-amber)}.stat-icon.purple{background:var(--accent-purple-subtle);color:var(--accent-purple)}.table-container{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:var(--bg-elevated)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:12px 16px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle;padding:13px 16px}tr:last-child td{border-bottom:none}tbody tr{background:var(--bg-card);transition:background var(--transition-fast)}tbody tr:hover{background:var(--bg-elevated)}td.amount-positive{color:var(--accent-green);font-weight:600}td.amount-negative{color:var(--accent-red);font-weight:600}.badge{border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.badge-green{background:var(--accent-green-subtle);color:var(--accent-green)}.badge-red{background:var(--accent-red-subtle);color:var(--accent-red)}.badge-amber{background:var(--accent-amber-subtle);color:var(--accent-amber)}.badge-blue{background:var(--accent-blue-subtle);color:var(--accent-blue)}.badge-purple{background:var(--accent-purple-subtle);color:var(--accent-purple)}.badge-gray{color:var(--text-muted);background:#0000000a}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);width:100%;padding:10px 14px;font-size:14px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #8b73551f}.form-input::placeholder{color:var(--text-disabled)}.form-select option{background:var(--bg-surface)}.form-textarea{resize:vertical;min-height:80px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0000004d;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-lg);animation:.2s slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:22px 24px 18px;display:flex}.modal-title{color:var(--text-primary);font-size:17px;font-weight:700}.modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.upload-zone{border:2px dashed var(--border-default);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--bg-elevated);padding:32px}.upload-zone:hover,.upload-zone.dragging{border-color:var(--accent-primary);background:var(--accent-primary-subtle)}.upload-zone-icon{color:var(--text-muted);margin-bottom:10px;font-size:28px}.upload-zone-text{color:var(--text-secondary);font-size:14px;line-height:1.6}.upload-zone-hint{color:var(--text-muted);margin-top:6px;font-size:12px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:60px 32px}.empty-state-icon{opacity:.3;margin-bottom:16px;font-size:40px}.empty-state-title{color:var(--text-secondary);margin-bottom:6px;font-size:15px;font-weight:600}.empty-state-text{color:var(--text-muted);font-size:13px;line-height:1.6}.divider{background:var(--border-subtle);height:1px;margin:20px 0}.alert{border-radius:var(--radius-md);align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;display:flex}.alert-success{background:var(--accent-green-subtle);color:var(--accent-green);border:1px solid #2d8a5626}.alert-error{background:var(--accent-red-subtle);color:var(--accent-red);border:1px solid #c43e3e26}.alert-info{background:var(--accent-blue-subtle);color:var(--accent-blue);border:1px solid #3d6b9e26}.alert-warning{background:var(--accent-amber-subtle);color:var(--accent-amber);border:1px solid #b07d2e26}.spinner{border:2px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{justify-content:center;align-items:center;padding:60px;display:flex}.login-page{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-bg-glow{pointer-events:none;background:radial-gradient(circle,#8b73550f 0%,#0000 70%);border-radius:50%;width:700px;height:700px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.login-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:40px;position:relative}.login-logo{text-align:center;margin-bottom:32px}.login-logo-icon{background:var(--accent-primary);border-radius:var(--radius-lg);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-md);justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;font-weight:700;display:flex}.login-title{color:var(--text-primary);margin-bottom:4px;font-size:22px;font-weight:700}.login-subtitle{color:var(--text-muted);font-size:14px}.gmail-card{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);transition:all var(--transition-fast);gap:14px;padding:16px;display:flex}.gmail-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.gmail-card-icon{border-radius:var(--radius-md);background:var(--accent-primary-subtle);width:44px;height:44px;color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.gmail-card-body{flex:1;min-width:0}.gmail-card-sender{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:600}.gmail-card-subject{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.gmail-card-meta{color:var(--text-muted);margin-top:4px;font-size:11px}.gmail-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.tabs{background:var(--bg-elevated);border-radius:var(--radius-md);gap:4px;width:fit-content;margin-bottom:20px;padding:4px;display:flex}.tab{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);padding:7px 16px;font-size:13px;font-weight:500}.tab.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tab:hover:not(.active){color:var(--text-secondary)}@media (width<=768px){:root{--sidebar-width:0px}.sidebar{transform:translate(-240px)}.sidebar.open{width:240px;transform:translate(0)}.main-content{margin-left:0}.page-content{padding:16px}.top-bar{padding:0 16px}.stat-grid{grid-template-columns:1fr 1fr}}
