.layout-container{background-color:var(--bg-color);min-height:100vh;display:flex}.sidebar{z-index:10;width:220px;padding:var(--space-4) 0;background-color:var(--bg-color);border-right:1px solid var(--border-color);color:var(--text-primary);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{padding:0 var(--space-4) var(--space-4) var(--space-4);align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);border-bottom:1px solid var(--border-color);display:flex}.sidebar-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:700}.nav-links{padding:0 var(--space-3);flex-direction:column;gap:.25rem;display:flex}.nav-item{color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background-color:var(--surface-color);color:var(--text-primary)}.nav-item.active{background-color:var(--primary);color:var(--primary-text);box-shadow:0 4px 6px -1px #0000001a}.main-content{flex-direction:column;flex:1;min-width:0;min-height:100vh;margin-left:220px;display:flex}@media (width<=768px){.layout-container{flex-direction:column}.sidebar{border-right:none;border-top:1px solid var(--border-color);background-color:var(--surface-color);width:100%;height:64px;color:var(--text-secondary);padding:0;padding-bottom:env(safe-area-inset-bottom);height:calc(64px + env(safe-area-inset-bottom));flex-direction:row;top:auto;bottom:0;box-shadow:0 -2px 10px #0000000d}.sidebar-header{display:none}.nav-links{flex-direction:row;justify-content:space-around;align-items:center;width:100%;height:100%;padding:0}.nav-item{padding:var(--space-2) 0;color:var(--text-secondary);border-radius:0;flex-direction:column;flex:1;justify-content:center;gap:4px;font-size:.75rem}.nav-item:hover{color:var(--primary);background-color:#0000}.nav-item.active{color:var(--primary);box-shadow:inset 0 3px 0 var(--primary);background-color:#0000}.main-content{padding-bottom:calc(64px + env(safe-area-inset-bottom));margin-left:0}}.dashboard-container{gap:var(--space-6);flex-direction:column;display:flex}.summary-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.summary-card{background-color:var(--surface-color);padding:var(--space-5);border-radius:var(--radius-xl);align-items:center;gap:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:transform var(--transition-fast), box-shadow var(--transition-fast);display:flex}.summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:56px;height:56px;display:flex}.balance-card .summary-icon{background-color:var(--primary-light);color:var(--primary)}.income-card .summary-icon{background-color:var(--success-light);color:var(--success)}.expense-card .summary-icon{background-color:var(--danger-light);color:var(--danger)}.summary-label{color:var(--text-secondary);margin-bottom:var(--space-1);font-size:.875rem;font-weight:500}.summary-value{color:var(--text-primary);font-size:1.5rem;font-weight:700}.grid-2-cols{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}@media (width<=768px){.summary-grid,.grid-2-cols{gap:var(--space-4)}}.card-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color);display:flex}.card-title{font-size:1.125rem;font-weight:600}.person-expense-list{gap:var(--space-3);flex-direction:column;display:flex}.person-expense-item{padding:var(--space-3);background-color:var(--bg-color);border-radius:var(--radius-md);justify-content:space-between;align-items:center;display:flex}.person-name{font-weight:600}.husband-text{color:var(--husband-color)}.wife-text{color:var(--wife-color)}.person-amount{font-size:1.1rem;font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;font-family:inherit;font-weight:500;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:var(--space-2) var(--space-3);font-size:.875rem}.btn-md{padding:.5rem 1rem;font-size:.875rem}.btn-lg{padding:var(--space-4) var(--space-5);font-size:1.125rem}.btn-primary{background-color:var(--primary);color:var(--primary-text);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-secondary{background-color:var(--surface-color);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--primary-light);border-color:var(--primary);color:var(--primary)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:hsl(var(--hue-danger), 80%, 45%)}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover:not(:disabled){background-color:hsl(var(--hue-success), 80%, 40%)}.btn-outline{color:var(--text-primary);border-color:var(--border-color);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--surface-color);border-color:var(--text-primary)}.btn-icon{display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:9999;padding:var(--space-4);animation:fadeIn var(--transition-fast) forwards;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--surface-color);border-radius:var(--radius-xl);width:100%;max-width:650px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);flex-direction:column;display:flex;overflow:hidden}.modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-color);background-color:var(--surface-color);z-index:2;justify-content:space-between;align-items:center;display:flex}.modal-title{color:var(--text-primary);font-size:1.25rem;font-weight:600}.modal-close{color:var(--text-secondary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;display:flex}.modal-close:hover{background-color:var(--danger-light);color:var(--danger)}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-footer{bottom:calc(-1 * var(--space-5));margin-left:calc(-1 * var(--space-5));margin-right:calc(-1 * var(--space-5));margin-bottom:calc(-1 * var(--space-5));padding:var(--space-4) var(--space-5);background-color:var(--surface-color);border-top:1px solid var(--border-color);z-index:10;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5);display:flex;position:sticky}:root{--bg-color:#09090b;--surface-color:#18181b;--text-primary:#fafafa;--text-secondary:#a1a1aa;--border-color:#27272a;--border-light:#3f3f46;--primary:#fff;--primary-hover:#e4e4e7;--primary-text:#09090b;--primary-light:#ffffff1a;--success:#10b981;--success-light:#10b98126;--danger:#ef4444;--danger-light:#ef444426;--warning:#f59e0b;--warning-light:#f59e0b26;--husband-color:#60a5fa;--wife-color:#f472b6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--radius-full:9999px;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 24px #0009;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}.desktop-only-flex{display:flex!important}.mobile-only-flex{display:none!important}@media (width<=768px){.desktop-only-flex{display:none!important}.mobile-only-flex{display:flex!important}}html{background-color:var(--bg-color);width:100%;max-width:100vw;overflow-x:hidden}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;width:100%;max-width:100vw;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;overflow-x:hidden}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.pt-0{padding-top:0}.pt-3{padding-top:var(--space-3)}.pb-3{padding-bottom:var(--space-3)}.pl-4{padding-left:var(--space-4)}.pr-1{padding-right:var(--space-1)}.pr-8{padding-right:2rem}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.border{border:1px solid var(--border-color)}.border-2{border-style:solid;border-width:2px}.border-dashed{border-style:dashed}.border-t{border-top:1px solid var(--border-color)}.border-border-light{border-color:var(--border-light)}.border-border-color{border-color:var(--border-color)}.text-center{text-align:center}.text-right{text-align:right}.hidden{display:none}.overflow-hidden{overflow:hidden}.hover\:bg-surface-color:hover{background-color:var(--surface-color)}.hover\:bg-surface-color-alt:hover{background-color:var(--surface-color-alt)}.hover\:bg-danger\/10:hover{background-color:var(--danger-light)}.hover\:bg-primary\/10:hover,.bg-primary\/10{background-color:var(--primary-light)}.bg-bg-color{background-color:var(--bg-color)}.transition-colors{transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast)}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.bg-success-light{background-color:var(--success-light)}.bg-danger-light{background-color:var(--danger-light)}.bg-warning-light{background-color:var(--warning-light)}.bg-primary-light{background-color:var(--primary-light)}.edit-form-highlight{background-color:var(--bg-color);border:1px solid var(--primary);box-shadow:0 0 0 1px var(--primary-light)}@keyframes slideUp{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slide-up{animation:slideUp var(--transition-fast) forwards}.animate-fade-in{animation:fadeIn var(--transition-fast) forwards}.app-container{width:100%;max-width:1600px;padding:var(--space-6) var(--space-8);gap:var(--space-6);flex-direction:column;min-width:0;min-height:100vh;margin:0 auto;display:flex}.app-container>*{min-width:0}.form-group{flex-direction:column;gap:.25rem;min-width:0;display:flex}.action-btn{color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:center;align-items:center;padding:.375rem;display:inline-flex}.action-btn:hover{background-color:var(--border-color);color:var(--text-primary)}.action-btn.edit:hover{color:var(--primary)}.action-btn.delete:hover{color:var(--danger)}.action-btn.success:hover{color:var(--success)}@media (width<=768px){.app-container{padding:var(--space-4);gap:var(--space-4);padding-bottom:90px}.page-header{gap:1rem;flex-direction:column!important;justify-content:center!important}.page-header h1{text-align:center}.qr-image{width:240px!important;max-width:100%!important}.qr-container{width:max-content;max-width:calc(100vw - 48px);transform:translate(-50%);margin:16px 0!important;padding:16px!important;position:sticky!important;left:50%!important}.filter-row{flex-direction:column!important;align-items:stretch!important;gap:.75rem!important}.filter-row>div{width:100%;flex-direction:column!important;align-items:stretch!important}.filter-row select{width:100%!important}.date-filter-group{justify-content:space-between;width:100%}.date-filter-group input{width:calc(50% - 1rem)!important}.accounts-table{min-width:100%!important}.accounts-table thead{display:none}.accounts-table tbody,.accounts-table tr,.accounts-table td{width:100%;display:block}.accounts-table tr{border:1px solid var(--border-color);border-radius:var(--radius-lg);background-color:var(--surface-color);margin-bottom:1rem;padding:1rem;position:relative}.accounts-table td{text-align:left!important;border:none!important;padding:.25rem 0!important}.modal-overlay{padding:1.25rem 1rem!important}.modal-header,.modal-body,.modal-footer{padding:1rem!important}.modal-title{font-size:1.1rem!important}.form-row{flex-direction:column!important;gap:1rem!important}.form-row>div{width:100%}.segmented-control{gap:0;flex-direction:column!important}.segmented-control button{border-bottom:1px solid var(--border-color);width:100%;border-right:none!important}.segmented-control button:last-child{border-bottom:none}.accounts-table td:nth-child(2){color:var(--text-secondary);font-size:.85rem}.accounts-table td:nth-child(3){margin-top:.5rem;font-size:1.25rem;font-weight:700;border-bottom:1px dashed var(--border-light)!important;padding-bottom:.5rem!important}.accounts-table td:nth-child(4){margin-top:0;position:absolute;top:1rem;right:1rem;border:none!important;width:auto!important;padding:0!important}.accounts-table td:nth-child(4)>div{justify-content:flex-end!important}.accounts-table td:first-child{padding-right:4.5rem!important}.accounts-table tr.jar-row{border-bottom:1px solid var(--border-color);border-left:4px solid var(--primary);background-color:var(--bg-color)}.accounts-table tr.jar-row td:first-child{padding-left:0!important}}input:not([type=radio]):not([type=checkbox]),select,textarea{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--surface-color);width:100%;color:var(--text-primary);transition:all var(--transition-fast);padding:.5rem .75rem;font-family:inherit;font-size:.875rem}select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23a1a1aa' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.25rem 1.25rem;padding-right:2.5rem}input[type=radio],input[type=checkbox]{accent-color:var(--primary);cursor:pointer;width:16px;height:16px}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}label{color:var(--text-primary);margin-bottom:.25rem;font-size:.875rem;font-weight:500;display:block}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-1{flex:1;min-width:0}.w-full{width:100%}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.card{background-color:var(--surface-color);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.data-table-wrapper{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-sm);overflow-x:auto}@media (width<=768px){.data-table-wrapper{box-shadow:none;background:0 0;border:none;overflow-x:hidden}.data-table:not(.accounts-table){min-width:0!important}.data-table:not(.accounts-table) thead{display:none}.data-table:not(.accounts-table) tbody,.data-table:not(.accounts-table) tr,.data-table:not(.accounts-table) td{width:100%;display:block}.data-table:not(.accounts-table) tr{background-color:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-color);margin-bottom:1rem;padding:1rem}.data-table:not(.accounts-table) td{justify-content:space-between;align-items:center;display:flex;border-bottom:1px dashed var(--border-color)!important;text-align:right!important;padding:.5rem 0!important}.data-table:not(.accounts-table) td:last-child{border-bottom:none!important}.data-table:not(.accounts-table) td:before{content:attr(data-label);color:var(--text-secondary);text-align:left;flex-shrink:0;margin-right:1rem;font-weight:600}}.data-table{border-collapse:collapse;text-align:left;width:100%;min-width:600px;font-size:.875rem}.data-table th{background-color:var(--bg-color);padding:var(--space-3) var(--space-4);color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle}.data-table tbody tr{transition:background-color var(--transition-fast)}.data-table tbody tr:hover{background-color:var(--bg-color)}.data-table tbody tr:last-child td{border-bottom:none}.person-tag{border-radius:var(--radius-full);border:1px solid #0000;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.person-tag.husband{color:var(--husband-color);background-color:#38bdf81a;border-color:#38bdf833}.person-tag.wife{color:var(--wife-color);background-color:#f472b61a;border-color:#f472b633}.toggle-group{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--surface-color);display:flex;overflow:hidden}.toggle-btn{text-align:center;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background-color:#0000;border:none;flex:1;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.toggle-btn:hover{background-color:var(--bg-color);color:var(--text-primary)}.toggle-btn.active{background-color:var(--primary);color:var(--primary-text)}.toggle-btn.active.expense,.toggle-btn.active.borrowed{background-color:var(--danger);color:#fff}.toggle-btn.active.income,.toggle-btn.active.lent{background-color:var(--success);color:#fff}.toggle-btn.active.husband{background-color:var(--husband-color);color:#fff}.toggle-btn.active.wife{background-color:var(--wife-color);color:#fff}
