:root{--eh-primary:#1a4d2e;--eh-primary-light:#2d7a4a;--eh-primary-dark:#0f3520;--eh-primary-subtle:#e8f0eb;--eh-accent:#c2662d;--eh-accent-light:#e8945f;--eh-accent-subtle:#fdf0e7;--eh-secondary:#5a7c6b;--eh-success:#2d7a4a;--eh-warning:#c2662d;--eh-danger:#b8363b;--eh-bg:#f7f3ec;--eh-bg-warm:#f2ece2;--eh-surface:#fffdf9;--eh-surface-alt:#f9f6f0;--eh-text:#1c1c28;--eh-text-secondary:#3d3d50;--eh-text-muted:#7a7a8e;--eh-border:#e5ddd0;--eh-border-light:#ede7dc;--eh-sidebar-width:264px;--eh-navbar-height:64px;--eh-shadow-sm:0 1px 3px rgba(28, 28, 40, 0.04);--eh-shadow:0 2px 8px rgba(28, 28, 40, 0.06),0 1px 2px rgba(28, 28, 40, 0.04);--eh-shadow-md:0 4px 16px rgba(28, 28, 40, 0.08),0 2px 4px rgba(28, 28, 40, 0.04);--eh-shadow-lg:0 12px 32px rgba(28, 28, 40, 0.1),0 4px 8px rgba(28, 28, 40, 0.04);--eh-radius:0.625rem;--eh-radius-lg:0.875rem;--eh-radius-xl:1.25rem;--eh-font-display:'Fraunces',Georgia,'Times New Roman',serif;--eh-font-body:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--eh-transition:cubic-bezier(0.22, 1, 0.36, 1)}*,::after,::before{box-sizing:border-box}body{font-family:var(--eh-font-body);background-color:var(--eh-bg);color:var(--eh-text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}body::before{content:'';position:fixed;inset:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}.display-font,h1,h2,h3,h4,h5,h6{font-family:var(--eh-font-display);font-optical-sizing:auto;letter-spacing:-.02em}a{color:var(--eh-primary);transition:color .2s var(--eh-transition)}a:hover{color:var(--eh-accent)}.app-layout{display:flex;min-height:calc(100vh - var(--eh-navbar-height))}.app-content{flex:1;padding:2rem 2.5rem;max-width:100%;overflow-x:hidden;animation:fadeInUp .4s var(--eh-transition)}@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--eh-navbar-height));padding:2rem 1rem;background:radial-gradient(ellipse at 20% 50%,rgba(26,77,46,.06) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(194,102,45,.04) 0,transparent 50%),var(--eh-bg)}.auth-card{width:100%;max-width:440px;background:var(--eh-surface);border-radius:var(--eh-radius-xl);box-shadow:var(--eh-shadow-lg);padding:2.75rem;border:1px solid var(--eh-border-light);animation:fadeInUp .5s var(--eh-transition)}.auth-card .brand-logo{text-align:center;margin-bottom:2.25rem}.auth-card .brand-logo h1{font-family:var(--eh-font-display);font-size:2rem;font-weight:600;color:var(--eh-primary);margin:0;letter-spacing:-.03em}.auth-card .brand-logo h1 svg{vertical-align:-.2em;margin-right:.25rem}.auth-card .brand-logo p{color:var(--eh-text-muted);margin-top:.375rem;font-size:.875rem;font-weight:500}.eh-card{background:var(--eh-surface);border-radius:var(--eh-radius-lg);box-shadow:var(--eh-shadow);border:1px solid var(--eh-border-light);transition:box-shadow .3s var(--eh-transition),transform .3s var(--eh-transition)}.eh-card:hover{box-shadow:var(--eh-shadow-md)}.eh-card-clickable:hover{transform:translateY(-3px);cursor:pointer}.eh-card .card-body{padding:1.5rem}.stat-card{background:var(--eh-surface);border-radius:var(--eh-radius-lg);box-shadow:var(--eh-shadow);border:1px solid var(--eh-border-light);padding:1.375rem;transition:transform .3s var(--eh-transition),box-shadow .3s var(--eh-transition)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--eh-shadow-md)}.stat-card .stat-icon{width:52px;height:52px;border-radius:var(--eh-radius);display:flex;align-items:center;justify-content:center;font-size:1.375rem;color:#fff}.stat-card .stat-icon.bg-primary{background:linear-gradient(135deg,var(--eh-primary),var(--eh-primary-light))!important}.stat-card .stat-icon.bg-success{background:linear-gradient(135deg,#1a6b3a,#2d9e56)!important}.stat-card .stat-icon.bg-info{background:linear-gradient(135deg,var(--eh-accent),var(--eh-accent-light))!important}.stat-card .stat-value{font-family:var(--eh-font-display);font-size:1.625rem;font-weight:600;color:var(--eh-text);line-height:1.2;letter-spacing:-.02em}.stat-card .stat-label{font-size:.8125rem;color:var(--eh-text-muted);margin-top:.125rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}.category-icon{width:40px;height:40px;border-radius:var(--eh-radius);display:inline-flex;align-items:center;justify-content:center;font-size:1.0625rem;flex-shrink:0}.category-icon.sm{width:30px;height:30px;font-size:.875rem}.cat-food{background:var(--eh-accent-subtle);color:var(--eh-accent)}.cat-entertainment{background:#f0ecf8;color:#6b41c9}.cat-home{background:var(--eh-primary-subtle);color:var(--eh-primary)}.cat-transportation{background:#e4f2e8;color:#1a6b3a}.cat-cats{background:#fce4ef;color:#c43871}.cat-personal{background:#e8f4fd;color:#2b7bb9}.cat-holidays{background:#fef9e7;color:#b8860b}.cat-health{background:#fdeaea;color:#b8363b}.cat-insurance{background:#e9ecf5;color:#4a5899}.cat-tax{background:#f0ede4;color:#6b5b3e}.expense-row{display:flex;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--eh-border-light);transition:background-color .2s var(--eh-transition);gap:.875rem}.expense-row:hover{background-color:var(--eh-surface-alt);cursor:pointer}.expense-row:last-child{border-bottom:none}.expense-row .expense-info{flex:1;min-width:0}.expense-row .expense-desc{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--eh-text)}.expense-row .expense-meta{font-size:.8125rem;color:var(--eh-text-muted);margin-top:.125rem}.expense-row .expense-amount{font-family:var(--eh-font-display);font-weight:600;font-size:1.0625rem;text-align:right;white-space:nowrap;letter-spacing:-.01em}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;flex-wrap:wrap;gap:1rem}.page-header h2{font-family:var(--eh-font-display);font-size:1.75rem;font-weight:600;margin:0;color:var(--eh-text);letter-spacing:-.03em}.filters-bar{background:var(--eh-surface);border-radius:var(--eh-radius-lg);border:1px solid var(--eh-border-light);padding:.875rem 1.25rem;margin-bottom:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;box-shadow:var(--eh-shadow-sm)}.empty-state{text-align:center;padding:4rem 1.5rem;color:var(--eh-text-muted)}.empty-state>i{font-size:3.5rem;margin-bottom:1rem;opacity:.35;color:var(--eh-primary)}.empty-state h5{font-family:var(--eh-font-display);font-weight:600;color:var(--eh-text);margin-bottom:.5rem;font-size:1.25rem}.balance-positive{color:var(--eh-success)}.balance-negative{color:var(--eh-danger)}.balance-zero{color:var(--eh-text-muted)}.btn{font-weight:600;font-size:.875rem;border-radius:var(--eh-radius);transition:all .25s var(--eh-transition);letter-spacing:.01em}.btn-primary{background-color:var(--eh-primary);border-color:var(--eh-primary);color:#fff}.btn-primary:hover{background-color:var(--eh-primary-dark);border-color:var(--eh-primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(26,77,46,.25)}.btn-primary:active{transform:translateY(0)}.btn-outline-primary{color:var(--eh-primary);border-color:var(--eh-primary)}.btn-outline-primary:hover{background-color:var(--eh-primary);border-color:var(--eh-primary);transform:translateY(-1px)}.btn-outline-secondary{color:var(--eh-text-secondary);border-color:var(--eh-border)}.btn-outline-secondary:hover{background-color:var(--eh-surface-alt);border-color:var(--eh-border);color:var(--eh-text)}.section-title{font-family:var(--eh-font-display);font-weight:600;font-size:1.125rem;color:var(--eh-text);letter-spacing:-.02em}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--eh-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--eh-text-muted)}.text-primary{color:var(--eh-primary)!important}.bg-primary{background-color:var(--eh-primary)!important}.bg-success{background-color:var(--eh-success)!important}.bg-info{background-color:var(--eh-accent)!important}.badge.bg-light{background-color:var(--eh-bg-warm)!important;color:var(--eh-text-muted)!important}.dropdown-menu{border:1px solid var(--eh-border-light);box-shadow:var(--eh-shadow-md);border-radius:var(--eh-radius);padding:.375rem;background:var(--eh-surface)}.dropdown-item{border-radius:calc(var(--eh-radius) - 2px);padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--eh-text-secondary)}.dropdown-item:hover{background-color:var(--eh-surface-alt);color:var(--eh-text)}.dropdown-divider{border-color:var(--eh-border-light);margin:.25rem 0}.alert-danger{background-color:#fef2f2;border-color:#fecaca;color:var(--eh-danger);border-radius:var(--eh-radius)}.spinner-border.text-primary{color:var(--eh-primary)!important}.list-group-item-action:hover{background-color:var(--eh-surface-alt)}@media (max-width:768px){.app-content{padding:1.25rem}.page-header h2{font-size:1.375rem}.stat-card .stat-value{font-size:1.25rem}.expense-row{padding:.875rem}.auth-card{padding:1.75rem}.filters-bar{flex-direction:column;align-items:stretch}}@media (max-width:576px){.page-header{flex-direction:column;align-items:flex-start}}.group-card{position:relative;overflow:hidden}.group-card::after{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--eh-primary),var(--eh-primary-light));opacity:0;transition:opacity .3s var(--eh-transition)}.group-card:hover::after{opacity:1}.group-card .group-currency{position:absolute;top:1.125rem;right:1.125rem;background:var(--eh-bg-warm);color:var(--eh-text-muted);font-size:.6875rem;font-weight:700;padding:.1875rem .625rem;border-radius:1rem;letter-spacing:.04em;text-transform:uppercase}.group-card .group-name{font-family:var(--eh-font-display);font-size:1.1875rem;font-weight:600;margin-bottom:.3125rem;color:var(--eh-text);letter-spacing:-.02em}.group-card .group-desc{color:var(--eh-text-muted);font-size:.8125rem;margin-bottom:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.group-card .group-stats{display:flex;gap:1.5rem;font-size:.8125rem;padding-top:.75rem;border-top:1px solid var(--eh-border-light)}.group-card .group-stats .stat{display:flex;align-items:center;gap:.375rem;color:var(--eh-text-muted)}.group-card .group-stats .stat i{font-size:1rem;opacity:.6}.group-card .group-stats .stat strong{color:var(--eh-text);font-weight:600}.member-card{display:flex;align-items:center;padding:.875rem 1.25rem;border-bottom:1px solid var(--eh-border-light);gap:.875rem;transition:background-color .15s ease}.member-card:hover{background-color:var(--eh-surface-alt)}.member-card:last-child{border-bottom:none}.member-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--eh-primary),var(--eh-primary-light));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0;letter-spacing:.02em}.member-avatar.sm{width:34px;height:34px;font-size:.75rem}.member-info{flex:1;min-width:0}.member-info .member-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--eh-text)}.member-info .member-email{font-size:.8125rem;color:var(--eh-text-muted)}.member-role-badge{font-size:.6875rem;font-weight:700;padding:.1875rem .625rem;border-radius:1rem;letter-spacing:.03em;text-transform:uppercase}.chart-container{position:relative;height:300px;width:100%}.chart-container.sm{height:200px}.chart-container.lg{height:400px}.balance-table{width:100%}.balance-table .balance-row{display:flex;align-items:center;padding:.875rem 1.25rem;border-bottom:1px solid var(--eh-border-light);gap:.625rem;transition:background-color .15s ease}.balance-table .balance-row:hover{background-color:var(--eh-surface-alt)}.balance-table .balance-row:last-child{border-bottom:none}.balance-table .balance-arrow{color:var(--eh-text-muted);font-size:1.25rem}.balance-table .balance-amount{margin-left:auto;font-family:var(--eh-font-display);font-weight:600;color:var(--eh-danger)}.filter-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.3125rem .875rem;border-radius:1.25rem;font-size:.8125rem;font-weight:600;border:1px solid var(--eh-border);background:var(--eh-surface);color:var(--eh-text-muted);cursor:pointer;transition:all .2s var(--eh-transition)}.filter-chip:hover{border-color:var(--eh-primary-light);color:var(--eh-primary);background-color:var(--eh-primary-subtle)}.filter-chip.active{background:var(--eh-primary);color:#fff;border-color:var(--eh-primary);box-shadow:0 2px 8px rgba(26,77,46,.2)}.filter-chip .remove-chip{font-size:.75rem;margin-left:.25rem;opacity:.7;transition:opacity .15s ease}.filter-chip .remove-chip:hover{opacity:1}.form-control,.form-select{border-color:var(--eh-border);border-radius:var(--eh-radius);font-size:.875rem;padding:.5625rem .875rem;background-color:var(--eh-surface);color:var(--eh-text);transition:border-color .2s ease,box-shadow .2s ease}.form-control:focus,.form-select:focus{border-color:var(--eh-primary-light);box-shadow:0 0 0 3px rgba(26,77,46,.1);background-color:var(--eh-surface)}.form-control::placeholder{color:var(--eh-text-muted);opacity:.7}.form-label{font-weight:600;font-size:.8125rem;margin-bottom:.375rem;color:var(--eh-text-secondary);letter-spacing:.01em}.input-group-text{background-color:var(--eh-surface-alt);border-color:var(--eh-border);color:var(--eh-text-muted);border-radius:var(--eh-radius)}.form-check-input:checked{background-color:var(--eh-primary);border-color:var(--eh-primary)}.form-check-input:focus{box-shadow:0 0 0 3px rgba(26,77,46,.1);border-color:var(--eh-primary-light)}.split-config{background:var(--eh-surface-alt);border-radius:var(--eh-radius-lg);border:1px solid var(--eh-border-light);padding:1.25rem}.split-member-row{display:flex;align-items:center;gap:.875rem;padding:.625rem 0;border-bottom:1px solid var(--eh-border-light)}.split-member-row:last-child{border-bottom:none}.split-member-row .member-name{min-width:80px;font-weight:600;font-size:.875rem;color:var(--eh-text)}.split-member-row .form-range{flex:2;min-width:80px}.split-member-row .form-range::-webkit-slider-thumb{background:var(--eh-primary)}.split-member-row .split-pct-label{min-width:50px;text-align:right;font-weight:600;font-size:.875rem;color:var(--eh-primary)}.split-member-row .split-amount-label{min-width:70px;text-align:right;color:var(--eh-text-muted);font-size:.8125rem}.split-total-bar{display:flex;justify-content:space-between;align-items:center;margin-top:.625rem;padding-top:.625rem;border-top:1px solid var(--eh-border);font-size:.8125rem}.split-total-bar #split-total-pct{font-family:var(--eh-font-display);font-weight:600;font-size:1rem}.eh-navbar{height:var(--eh-navbar-height);background:var(--eh-text);border-bottom:none;box-shadow:0 2px 12px rgba(28,28,40,.15);display:flex;align-items:center;padding:0 1.75rem;position:sticky;top:0;z-index:1030}.eh-navbar .navbar-brand{font-family:var(--eh-font-display);font-weight:600;font-size:1.375rem;color:#fffdf9;text-decoration:none;display:flex;align-items:center;gap:.625rem;letter-spacing:-.03em;transition:opacity .2s ease}.eh-navbar .navbar-brand:hover{opacity:.85;color:#fffdf9}.eh-navbar .navbar-brand .brand-owl{flex-shrink:0}.auth-card .brand-logo .brand-owl{display:inline-block;vertical-align:-.3em;margin-right:.25rem}.eh-navbar .navbar-brand i{font-size:1.5rem;color:var(--eh-accent-light)}.eh-navbar .navbar-nav{display:flex;align-items:center;gap:.25rem;margin-left:auto;list-style:none;margin-bottom:0;padding-left:0}.eh-navbar .nav-link{color:rgba(255,253,249,.65);text-decoration:none;padding:.5rem .875rem;border-radius:var(--eh-radius);font-size:.875rem;font-weight:500;transition:color .2s ease,background-color .2s ease;display:flex;align-items:center;gap:.375rem}.eh-navbar .nav-link:hover{color:#fffdf9;background-color:rgba(255,255,255,.08)}.eh-navbar .nav-link.active{color:#fffdf9;background-color:rgba(255,255,255,.12)}.eh-navbar .nav-link i{font-size:1.125rem}.eh-navbar .sidebar-toggle{display:none;background:0 0;border:none;color:rgba(255,253,249,.75);font-size:1.5rem;padding:.25rem;cursor:pointer;margin-right:.75rem;transition:color .15s ease}.eh-navbar .sidebar-toggle:hover{color:#fffdf9}.eh-navbar .dropdown-menu{background:var(--eh-surface);border:1px solid var(--eh-border-light);box-shadow:var(--eh-shadow-lg);margin-top:.5rem}.eh-navbar .dropdown-toggle::after{opacity:.5}@media (max-width:768px){.eh-navbar{padding:0 1rem}.eh-navbar .sidebar-toggle{display:block}.eh-navbar .nav-link span{display:none}}.eh-sidebar{width:var(--eh-sidebar-width);background:var(--eh-surface);border-right:1px solid var(--eh-border-light);height:calc(100vh - var(--eh-navbar-height));position:sticky;top:var(--eh-navbar-height);overflow-y:auto;padding:1.25rem 0;flex-shrink:0;transition:transform .35s var(--eh-transition)}.eh-sidebar .sidebar-section{padding:0 .875rem;margin-bottom:1.75rem}.eh-sidebar .sidebar-label{font-family:var(--eh-font-body);font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--eh-text-muted);padding:0 .875rem;margin-bottom:.625rem}.eh-sidebar .sidebar-link{display:flex;align-items:center;gap:.625rem;padding:.5625rem .875rem;border-radius:var(--eh-radius);color:var(--eh-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;transition:all .2s var(--eh-transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.eh-sidebar .sidebar-link:hover{background-color:var(--eh-surface-alt);color:var(--eh-primary)}.eh-sidebar .sidebar-link.active{background-color:var(--eh-primary-subtle);color:var(--eh-primary);font-weight:600}.eh-sidebar .sidebar-link.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--eh-primary);border-radius:0 3px 3px 0}.eh-sidebar .sidebar-link i{font-size:1.125rem;flex-shrink:0;opacity:.7}.eh-sidebar .sidebar-link.active i{opacity:1}.eh-sidebar .sidebar-link .badge{margin-left:auto;font-size:.6875rem;font-weight:600}.eh-sidebar .sidebar-link.text-primary{color:var(--eh-primary)!important}.eh-sidebar .sidebar-link.text-primary:hover{background-color:var(--eh-primary-subtle)}.eh-sidebar .sidebar-section+.sidebar-section{padding-top:.5rem;border-top:1px solid var(--eh-border-light);margin-top:-.5rem}@media (max-width:768px){.eh-sidebar{position:fixed;top:var(--eh-navbar-height);left:0;z-index:1020;transform:translateX(-100%);box-shadow:var(--eh-shadow-lg)}.eh-sidebar.open{transform:translateX(0)}.sidebar-backdrop{position:fixed;inset:0;top:var(--eh-navbar-height);background:rgba(28,28,40,.4);z-index:1019;display:none;backdrop-filter:blur(2px)}.sidebar-backdrop.show{display:block;animation:fadeIn .2s ease}}