:root{--bg-main: #09090b;--bg-card: #141416;--bg-input: #1c1c1f;--border-color: rgba(255, 255, 255, .08);--text-primary: #f4f4f5;--text-secondary: #a1a1aa;--color-accent: #c5a880;--color-accent-hover: #cca47c;--color-success: #5f8a6b;--color-success-bg: rgba(95, 138, 107, .08);--color-success-row: rgba(95, 138, 107, .08);--color-warning: #c5a059;--color-danger: #a75a50;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-lg: 12px;--radius-md: 8px;--radius-sm: 4px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);overflow-x:hidden;line-height:1.5}button,input,select,textarea{font-family:inherit;font-size:100%}.app-shell{min-height:100vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.top-bar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 16px 12px 16px;background:#09090bbf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color)}.top-bar h1{font-size:20px;font-weight:700;letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.top-bar nav{display:flex;gap:8px}.top-bar button{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);padding:8px 14px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.top-bar button:hover,.top-bar button:active{background:var(--bg-input);border-color:var(--text-secondary)}.top-bar button.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.page{flex:1;padding:16px;max-width:1200px;margin:0 auto;width:100%;position:relative}.page h2{font-size:22px;font-weight:700;margin-bottom:16px;letter-spacing:-.5px;display:flex;align-items:center;justify-content:space-between}.summary-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.summary-card{background:var(--bg-card);border:1px solid var(--border-color);padding:14px;border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:0 4px 6px -1px #0000001a;transition:transform .2s ease}.summary-card:hover{transform:translateY(-2px)}.summary-card.full-width{grid-column:span 2}.summary-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:4px}.summary-value{font-size:24px;font-weight:700}.summary-value.success{color:var(--color-success)}.summary-value.accent{color:var(--color-accent)}.filter-bar{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.filter-group{width:100%}.search-input{width:100%;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);padding:10px 14px;border-radius:var(--radius-md);font-size:14px;outline:none;transition:border-color .2s ease}.search-input:focus{border-color:var(--color-accent)}.filter-scroll-wrapper{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.filter-scroll-wrapper::-webkit-scrollbar{height:4px}.filter-scroll-wrapper::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.filter-control{flex-shrink:0}.date-input,.select-input{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-md);font-size:13px;outline:none;height:38px}.date-input:focus,.select-input:focus{border-color:var(--color-accent)}.grid-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a;background:var(--bg-card);scrollbar-width:thin}.grid-scroll::-webkit-scrollbar{height:6px}.grid-scroll::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.transaction-grid{width:max-content;min-width:100%;border-collapse:collapse;font-size:14px;text-align:left}.transaction-grid th{position:sticky;top:0;z-index:5;background:var(--bg-input);color:var(--text-secondary);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px;border-bottom:2px solid var(--border-color)}.transaction-grid th,.transaction-grid td{padding:12px 14px;border-bottom:1px solid var(--border-color);white-space:nowrap}.transaction-grid tr:last-child td{border-bottom:0}.transaction-grid tr:hover td{background:#ffffff05}.transaction-grid tr.brokerage-received td{background:var(--color-success-row)}.transaction-grid tr.brokerage-received td:first-child{border-left:3px solid var(--color-success)}.transaction-grid tr.brokerage-received:hover td{background:#5f8a6b24}.transaction-grid .details-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis}.name-link{background:none;border:none;color:var(--color-accent-hover);text-decoration:underline;cursor:pointer;font-weight:500}.name-link:hover{color:#93c5fd}.numeric{text-align:right}.center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.bold{font-weight:700}.grid-checkbox{width:18px;height:18px;accent-color:var(--color-success);cursor:pointer}.amount-cell{display:flex;align-items:center;justify-content:flex-end;gap:6px}.manual-badge{font-size:10px;background:#f59e0b26;color:var(--color-warning);border:1px solid rgba(245,158,11,.3);padding:1px 4px;border-radius:var(--radius-sm);text-transform:uppercase;font-weight:600}.form-badge{font-size:11px;position:absolute;right:12px;top:10px}.empty-state{padding:40px;text-align:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary)}.floating-add{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:24px;background:var(--color-accent);color:#fff;border:none;width:56px;height:56px;border-radius:28px;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #0000004d;cursor:pointer;z-index:50;transition:transform .2s cubic-bezier(.34,1.56,.64,1);text-indent:-9999px}.floating-add:before{content:"+";text-indent:0;position:absolute;display:flex;align-items:center;justify-content:center}.floating-add:hover{transform:scale(1.08);background:var(--color-accent-hover)}.floating-add:active{transform:scale(.95)}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;justify-content:center;align-items:flex-end;animation:fadeIn .25s ease}.drawer-container{background:var(--bg-card);border-top:1px solid var(--border-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px -5px #0000004d;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.drawer-drag-handle{width:36px;height:4px;background-color:var(--border-color);border-radius:2px;margin:-8px auto 16px}.drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.drawer-header h2{font-size:20px;margin-bottom:0}.close-btn{background:none;border:none;color:var(--text-secondary);font-size:28px;cursor:pointer}.transaction-form{display:flex;flex-direction:column;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-control{display:flex;flex-direction:column;gap:6px}.form-control.full-width{grid-column:span 2}.form-control label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.form-input,.form-textarea{background:var(--bg-main);border:1px solid var(--border-color);color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-md);font-size:14px;outline:none;transition:border-color .2s ease}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent)}.form-textarea{resize:vertical}.checkbox-control{padding:4px 0}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input{width:20px;height:20px;accent-color:var(--color-success)}.amount-input-container{position:relative;display:flex;align-items:center}.amount-input-container input{width:100%}.manual-warning{border-color:var(--color-warning)!important}.form-note{font-size:12px;color:var(--color-warning)}.form-error{font-size:13px;color:var(--color-danger);font-weight:500}.form-actions{display:flex;gap:10px;margin-top:10px}.form-actions button{flex:1;padding:12px;border-radius:var(--radius-md);font-weight:600;font-size:14px;cursor:pointer;border:none;transition:all .2s ease}.save-btn{background:var(--color-accent);color:#fff}.save-btn:hover{background:var(--color-accent-hover)}.save-btn:disabled{background:var(--border-color);color:var(--text-secondary);cursor:not-allowed}.cancel-btn{background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border-color)!important}.cancel-btn:hover{background:var(--bg-input)}.delete-btn{background:var(--color-danger);color:#fff}.delete-btn:hover{background:#f87171}.people-page-section{display:flex;flex-direction:column}.role-tabs{display:flex;border-bottom:2px solid var(--border-color);margin-bottom:16px}.role-tabs button{flex:1;background:none;border:none;color:var(--text-secondary);padding:12px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;position:relative}.role-tabs button.active{color:var(--text-primary)}.role-tabs button.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--color-accent)}.people-grid{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 480px){.people-grid{grid-template-columns:repeat(2,1fr)}}.person-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:14px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease;text-align:left}.person-card:hover{border-color:var(--color-accent);transform:translateY(-1px)}.person-card:active{transform:scale(.99)}.person-details{display:flex;flex-direction:column}.person-name{font-size:16px;font-weight:600;color:var(--text-primary)}.person-count{font-size:12px;color:var(--text-secondary)}.person-amount{font-size:16px;font-weight:700;color:var(--color-success)}.empty-state-card{grid-column:1 / -1;padding:30px;text-align:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.top-bar-back-btn{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);padding:6px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;margin-left:10px;transition:all .2s ease}.top-bar-back-btn:hover{background:var(--bg-input);border-color:var(--text-secondary)}.duplicate-review-container{max-width:800px}.duplicate-count-badge{background:var(--color-accent);color:#fff;padding:4px 8px;border-radius:20px;font-size:12px;font-weight:700}.duplicate-alert-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#f87171;padding:12px;border-radius:var(--radius-md);margin-bottom:20px;font-size:14px}.duplicate-comparison-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:20px}@media (min-width: 600px){.duplicate-comparison-grid{grid-template-columns:repeat(2,1fr)}}.comparison-column h3{font-size:14px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px;font-weight:600;letter-spacing:.5px}.comparison-card{background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.comparison-card.existing{border-left:4px solid var(--color-accent)}.comparison-card.imported{border-left:4px solid var(--color-warning)}.comp-field{display:flex;flex-direction:column;gap:2px}.comp-field.full-width{grid-column:span 2}.comp-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;font-weight:700;letter-spacing:.3px}.comp-val{font-size:14px;color:var(--text-primary);font-weight:500;padding:2px 4px;border-radius:var(--radius-sm)}.comp-val.highlight-match{background:#f59e0b26;border:1px solid rgba(245,158,11,.3);color:#fbbf24}.comp-details-text{font-size:13px;color:var(--text-primary)}.duplicate-actions{display:flex;gap:12px}.action-btn{flex:1;padding:14px;font-weight:700;font-size:14px;cursor:pointer;border:none;border-radius:var(--radius-md);transition:all .2s ease}.skip-btn{background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border-color)}.skip-btn:hover{background:#ef44441a;border-color:var(--color-danger)}.accept-btn{background:var(--color-accent);color:#fff}.accept-btn:hover{background:var(--color-accent-hover)}.settings-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:30px}@media (min-width: 600px){.settings-grid{grid-template-columns:repeat(2,1fr)}}.settings-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column}.settings-card.full-width{grid-column:1 / -1}.settings-card h3{font-size:18px;font-weight:700;margin-bottom:8px}.card-desc{font-size:13px;color:var(--text-secondary);margin-bottom:16px;line-height:1.4;flex:1}.button-group{display:flex;gap:10px;flex-wrap:wrap}.settings-btn{background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border-color);padding:10px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1;min-width:140px}.settings-btn:hover{background:var(--bg-input);border-color:var(--text-secondary)}.backup-btn{background:var(--color-accent)!important;border:none!important;color:#fff!important}.backup-btn:hover{background:var(--color-accent-hover)!important}.file-input-btn{display:inline-block;background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border-color);padding:10px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;text-align:center;transition:all .2s ease;flex:1;min-width:140px}.file-input-btn:hover{background:var(--bg-input);border-color:var(--text-secondary)}.file-input-btn input[type=file]{display:none}.restore-btn-label{background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#f87171}.restore-btn-label:hover{background:#ef444440;border-color:var(--color-danger)}.backup-metadata{background:var(--bg-main);border:1px solid var(--border-color);padding:12px;border-radius:var(--radius-md);margin-bottom:16px;font-size:14px;display:flex;justify-content:space-between;align-items:center}.backup-metadata span{color:var(--text-secondary)}.backup-warning-banner{background:#f59e0b1a;border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-lg);padding:14px;margin-bottom:24px;display:flex;gap:12px;align-items:flex-start}.warning-icon{font-size:20px}.warning-text{font-size:13px;color:#fbbf24;line-height:1.4}.recycle-bin-section{border-top:1px solid var(--border-color);padding-top:24px;margin-top:20px}.recycle-bin-section h3{font-size:18px;margin-bottom:16px}.empty-state-small{background:var(--bg-card);border:1px dashed var(--border-color);padding:20px;text-align:center;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:13px}.recycle-bin-list{display:flex;flex-direction:column;gap:10px}.recycle-item{background:var(--bg-card);border:1px solid var(--border-color);padding:12px 16px;border-radius:var(--radius-md);display:flex;justify-content:space-between;align-items:center;gap:12px}.recycle-item-details{display:flex;flex-direction:column;gap:2px}.recycle-date{font-size:11px;color:var(--text-secondary);font-weight:700}.recycle-summary{font-size:14px;font-weight:500}.recycle-amount{font-size:13px;color:var(--color-danger);font-weight:600}.restore-btn{background:var(--color-success);color:#fff;border:none;padding:6px 12px;border-radius:var(--radius-md);font-size:12px;font-weight:700;cursor:pointer;transition:background .2s ease}.restore-btn:hover{background:#10b981d9}@media (max-width: 768px){.form-input,.form-textarea,.select-input{font-size:16px!important}}.filter-reset-btn{background:#ef44441f;border:1px solid rgba(239,68,68,.25);color:#f87171;padding:6px 12px;border-radius:var(--radius-md);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .2s ease;height:38px;display:flex;align-items:center}.filter-reset-btn:hover{background:#ef444438;border-color:var(--color-danger)}.pin-lock-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-main);z-index:1000;display:flex;justify-content:center;align-items:center;padding:24px}.pin-lock-container{width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center}.pin-lock-header{text-align:center;margin-bottom:24px}.pin-lock-header h2{font-size:24px;font-weight:700;margin-bottom:8px}.pin-lock-desc{font-size:13px;color:var(--text-secondary);line-height:1.4}.pin-dots{display:flex;gap:16px;margin-bottom:20px;height:20px}.pin-dot{width:16px;height:16px;border-radius:8px;border:2px solid var(--border-color);transition:all .15s ease}.pin-dot.filled{background:var(--color-accent);border-color:var(--color-accent)}.pin-dot.error{border-color:var(--color-danger);background:var(--color-danger)}.pin-error-text{font-size:13px;color:var(--color-danger);margin-bottom:16px;font-weight:600}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%}.keypad-btn{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);height:64px;width:64px;border-radius:32px;font-size:22px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:0 auto;transition:all .12s ease}.keypad-btn:active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;transform:scale(.9)}.backspace-btn{background:transparent;border:none;font-size:18px}.backspace-btn:active{background:transparent;color:var(--color-accent);transform:scale(.9)}.keypad-spacer{height:64px;width:64px}.pin-dots.shake{animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}
