body{color:#1a1a2e;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;direction:rtl;background:#f7f8fa;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}#root{width:100%;min-height:100dvh}h1,h2,h3,h4{color:#1a1a2e;font-weight:700}p{margin:0}:root{--color-a:#00b5a3;--color-b:#f5821f;--color-a-light:#e0f7f5;--color-b-light:#fef0e6;--color-a-dark:#007a6e;--color-b-dark:#c45e0a;--bg:#f5f5f5;--surface:#fff;--text:#1a1a1a;--text-muted:#757575;--border:#e0e0e0;--radius:16px;--radius-sm:10px;--shadow:0 2px 16px #00000012;--nav-height:64px;--header-height:58px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);direction:rtl;min-height:100dvh;font-family:Assistant,-apple-system,BlinkMacSystemFont,sans-serif}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}img{max-width:100%}.app-layout{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-header{z-index:100;height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 1px 8px #0000000f}.header-logo-img{object-fit:contain;width:auto;height:32px}.header-title{color:var(--color-a);letter-spacing:-.3px;flex:1;font-size:17px;font-weight:800}.header-user{cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:4px 10px;transition:background .15s;display:flex}.header-user:hover{background:var(--bg)}.header-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.header-avatar-placeholder{background:var(--color-a);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.header-username{font-size:14px;font-weight:600}.app-main{padding:16px;padding-bottom:calc(var(--nav-height) + 16px);flex:1;overflow-y:auto}.app-nav{width:100%;max-width:480px;height:var(--nav-height);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -2px 12px #0000000f}.nav-btn{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 4px;transition:color .15s;display:flex}.nav-btn.active{color:var(--color-a)}.nav-icon{display:inline-flex;position:relative}.nav-label{font-size:10px;font-weight:500}.nav-badge{background:var(--color-b);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;left:-6px}.pending-approval-banner{border-bottom:2px solid var(--color-b);color:#7a4100;direction:rtl;background:#fff8e1;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:14px;font-weight:500;line-height:1.4;display:flex}.banner-dismiss{cursor:pointer;color:#7a4100;opacity:.7;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:16px}.banner-dismiss:hover{opacity:1;background:#00000014}.btn{border-radius:var(--radius);justify-content:center;align-items:center;gap:6px;padding:12px 22px;font-size:15px;font-weight:700;transition:all .15s;display:inline-flex}.btn.primary{background:var(--color-a);color:#fff}.btn.primary:hover:not(:disabled){background:var(--color-a-dark)}.btn.secondary{background:var(--border);color:var(--text)}.btn.secondary:hover:not(:disabled){background:#d0d0d0}.btn.danger{color:#c62828;background:#fdecea}.btn.danger:hover:not(:disabled){background:#ffcdd2}.btn.small{border-radius:var(--radius-sm);padding:7px 14px;font-size:13px}.btn.large{padding:15px 32px;font-size:17px}.btn.full-width{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.text-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);appearance:none;padding:12px 14px;font-size:15px;transition:border-color .15s}.text-input:focus{border-color:var(--color-a);outline:none;box-shadow:0 0 0 3px #00b5a31f}.text-input.narrow{width:auto;max-width:100px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:var(--text-muted);font-size:14px;font-weight:600}.form-row{align-items:center;gap:12px;display:flex}.radio-group{flex-direction:column;gap:8px;display:flex}.radio-group label{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:15px;font-weight:400;display:flex}.radio-group.inline{flex-direction:row;gap:16px}.error-msg{color:#c62828;margin-top:6px;font-size:14px}.success-msg{background:var(--color-a-light);color:var(--color-a-dark);border-radius:var(--radius-sm);margin-bottom:12px;padding:10px 14px;font-weight:600}.hint{color:var(--text-muted);font-size:13px}.empty-state{color:var(--text-muted);text-align:center;padding:32px 0;font-size:15px}.badge{background:var(--color-b);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.badge-pending{background:var(--color-b-light);color:var(--color-b-dark);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:600}.badge-approved{background:var(--color-a-light);color:var(--color-a-dark);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:600}.badge-declined{color:#c62828;background:#fdecea;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:600}.tab-bar{border-bottom:2px solid var(--border);margin-bottom:16px;display:flex}.tab-bar button{color:var(--text-muted);border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;margin-bottom:-2px;padding:10px 8px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.tab-bar button.active{color:var(--color-a);border-bottom-color:var(--color-a)}.tab-content{animation:.15s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.icon-btn{border-radius:var(--radius-sm);color:var(--text-muted);justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px 14px;font-size:22px;font-weight:700;display:inline-flex}.icon-btn:hover{background:var(--bg);color:var(--text)}.welcome-screen{background:linear-gradient(160deg,#00b5a3 0%,#007a6e 55%,#005a52 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px 20px;display:flex;position:relative;overflow:hidden}.welcome-screen:before{content:"";pointer-events:none;background:#ffffff12;border-radius:50%;width:280px;height:280px;position:absolute;top:-80px;right:-80px}.welcome-screen:after{content:"";pointer-events:none;background:#f5821f26;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-60px;left:-60px}.welcome-content{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:0;width:100%;max-width:380px;display:flex;position:relative}.welcome-logo-wrap{border:3px solid var(--color-b);background:#fff;border-radius:24px;justify-content:center;align-items:center;margin-bottom:24px;padding:20px 24px;display:inline-flex;box-shadow:0 8px 32px #0000002e}.welcome-logo{width:320px;max-width:calc(100vw - 80px);height:auto;display:block}.welcome-card{background:#fff;border-radius:20px;width:100%;padding:28px 24px 32px;box-shadow:0 8px 32px #00000026}.welcome-message{color:var(--text);margin-bottom:12px;font-size:21px;font-weight:800;line-height:1.6}.welcome-message em{color:var(--color-a);font-style:normal}.welcome-sub{color:var(--text-muted);margin-bottom:28px;font-size:15px;line-height:1.75}.welcome-btn{padding:15px;font-size:17px;box-shadow:0 4px 16px #f5821f66;background:var(--color-b)!important}.welcome-btn:hover{box-shadow:0 6px 20px #f5821f80;background:var(--color-b-dark)!important}.auth-page{background:linear-gradient(160deg, var(--color-a-light) 0%, #fff 50%, var(--color-b-light) 100%);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.auth-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;display:flex}.auth-card.choice{gap:18px}.auth-logo-box{border:3px solid var(--color-b);background:#fff;border-radius:20px;justify-content:center;align-items:center;padding:16px 20px;display:inline-flex}.auth-logo{width:260px;max-width:100%;height:auto;display:block}.auth-logo-sm{width:100px;height:auto;margin-bottom:4px}.auth-back{color:var(--text-muted);align-self:flex-start;padding:2px 0;font-size:14px;font-weight:600}.auth-back:hover{color:var(--text)}.auth-form{text-align:right;flex-direction:column;gap:0;width:100%;display:flex}.auth-form .form-group{margin-bottom:14px}.choice-btns{flex-direction:column;gap:12px;width:100%;display:flex}.auth-switch{color:var(--text-muted);font-size:14px}.link-btn{color:var(--color-a);text-underline-offset:2px;font-size:14px;font-weight:700;text-decoration:underline}.link-btn:hover{color:var(--color-a-dark)}.otp-link{color:var(--text-muted);border-bottom:1px dashed var(--text-muted);margin-top:-4px;font-size:14px;text-decoration:none}.otp-preview{background:var(--color-a-light);border:1.5px solid var(--color-a);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:4px;width:100%;padding:14px;display:flex}.otp-preview-label{color:var(--color-a-dark);font-size:13px;font-weight:600}.otp-code-display{letter-spacing:6px;color:var(--color-a-dark);margin:4px 0;font-family:monospace;font-size:32px;font-weight:800}.otp-expiry{color:var(--text-muted);font-size:12px}.onboarding-page{background:var(--bg);justify-content:center;align-items:flex-start;min-height:100dvh;padding:20px;display:flex}.onboarding-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:480px;box-shadow:var(--shadow);margin-top:20px;padding:24px}.step-dots{justify-content:center;gap:8px;margin-bottom:24px;display:flex}.dot{background:var(--border);border-radius:50%;width:10px;height:10px;transition:all .15s}.dot.active{background:var(--color-a);transform:scale(1.2)}.dot.done{background:var(--color-a);opacity:.5}.step h2{margin-bottom:6px;font-size:20px}.step>p{color:var(--text-muted);margin-bottom:20px}.parent-form,.child-form{background:var(--bg);border-radius:var(--radius-sm);flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;display:flex}.parent-form h3,.child-form h3{font-size:16px}.photo-picker{align-items:center;gap:12px;display:flex}.photo-preview{object-fit:cover;border:2px solid var(--border);border-radius:50%;width:56px;height:56px}.photo-placeholder{background:var(--border);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;display:flex}.holiday-list{flex-direction:column;gap:12px;display:flex}.holiday-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.holiday-name{font-size:15px;font-weight:600}.center{text-align:center}.done-icon{margin-bottom:12px;font-size:64px}.calendar-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.calendar-header h2{letter-spacing:-.5px;font-size:26px;font-weight:800}.legend{gap:10px;margin-bottom:12px;display:flex}.legend-item{border:2px solid;border-radius:20px;padding:4px 14px;font-size:13px;font-weight:600}.legend-a{color:#007a6e;background:#e0f7f5;border-color:#00b5a3}.legend-b{color:#c45e0a;background:#fef0e6;border-color:#f5821f}.cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:12px;display:grid}.cal-dow{text-align:center;color:var(--text-muted);padding:6px 0;font-size:12px;font-weight:700}.cal-cell{background:var(--surface);cursor:pointer;border:1.5px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;min-height:68px;padding:5px 3px 4px;transition:all .1s;display:flex;position:relative;overflow:hidden}.cal-cell:hover{background:var(--bg)}.cal-cell.today{background:#fffde7}.cal-cell.today .cal-day-num{background:var(--color-a);color:#fff;border-radius:50%}.cal-cell.selected{background:var(--color-a-light)}.cal-cell.blank{cursor:default;background:0 0;border-color:#0000}.cal-cell.my-day .cal-day-num{font-weight:800}.cal-day-num{flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:15px;font-weight:600;display:flex}.cal-holiday-name{text-align:center;word-break:keep-all;overflow-wrap:break-word;max-width:100%;margin-top:3px;padding:0 1px;font-size:9px;font-weight:600;line-height:1.2}.cal-pending-dot{margin-top:2px;font-size:11px}.day-detail{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:6px;margin-top:12px;padding:14px;animation:.15s fadeIn;display:flex}.pending-notice{color:var(--color-b-dark);font-size:13px}.request-card{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:8px;margin-bottom:12px;padding:14px;display:flex;box-shadow:0 1px 8px #0000000f}.req-row{justify-content:space-between;align-items:center;display:flex}.req-info{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.req-reason{color:var(--text-muted);font-size:14px;font-style:italic}.req-date{color:var(--text-muted);font-size:12px}.credits-summary{gap:12px;margin-bottom:24px;display:flex}.credit-card{background:var(--surface);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);border:2px solid #0000;flex:1;padding:16px}.credit-card.mine{border-color:var(--color-a)}.credit-avatar{background:var(--bg);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 8px;font-size:24px;display:flex;overflow:hidden}.credit-avatar img{object-fit:cover;width:100%;height:100%}.credit-name{margin-bottom:6px;font-size:14px;font-weight:700}.credit-value{font-size:13px;font-weight:500}.credit-positive{color:var(--color-a-dark)}.credit-negative{color:#c62828}.credit-neutral{color:var(--text-muted)}.exchange-list{flex-direction:column;gap:8px;display:flex}.exchange-item{background:var(--surface);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:10px 14px;display:flex}.ex-date{font-size:14px;font-weight:700}.ex-direction{color:var(--text-muted);font-size:13px}.ex-reason{color:var(--text-muted);font-size:13px;font-style:italic}.year-nav{align-items:center;gap:16px;margin-bottom:16px;display:flex}.year-label{font-size:18px;font-weight:800}.holiday-cards{flex-direction:column;gap:10px;display:flex}.holiday-card{background:var(--surface);border-radius:var(--radius);align-items:center;gap:12px;padding:14px 16px;transition:all .15s;display:flex;box-shadow:0 1px 8px #0000000f}.holiday-card.mine{background:var(--color-a-light);border-right:3px solid var(--color-a)}.hol-icon{font-size:24px}.hol-info{flex:1}.hol-name{font-size:15px;font-weight:700}.hol-date{color:var(--text-muted);margin-top:2px;font-size:13px}.hol-parent{font-size:14px;font-weight:700}.holiday-note{background:var(--bg);border-radius:var(--radius-sm);color:var(--text-muted);margin-top:20px;padding:12px;font-size:13px}.credits-page h2,.credits-page h3,.holidays-page h2,.exchange-page h3,.calendar-page h2{margin-bottom:8px}.settings-page{flex-direction:column;gap:8px;display:flex}.settings-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.settings-header h2{margin-bottom:0}.settings-section{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 8px #0000000f}.settings-section-header{text-align:right;width:100%;color:var(--text);border-bottom:1px solid #0000;align-items:center;gap:10px;padding:16px;font-size:15px;font-weight:700;transition:background .15s;display:flex}.settings-section.open .settings-section-header{border-bottom-color:var(--border)}.settings-section-header:hover{background:var(--bg)}.section-icon{color:var(--color-a);font-size:20px}.section-title{flex:1}.section-chevron{color:var(--text-muted);font-size:11px}.settings-section-body{padding:16px;animation:.15s fadeIn}.settings-form{flex-direction:column;gap:0;display:flex}.login-page{background:linear-gradient(135deg, var(--color-a-light) 0%, var(--color-b-light) 100%);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.login-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px 24px;display:flex}.app-logo{font-size:48px}.login-card h1{font-size:24px;font-weight:800}.subtitle{color:var(--text-muted);font-size:15px}.loading-screen{background:var(--bg);min-height:100dvh;color:var(--text-muted);justify-content:center;align-items:center;font-size:16px;display:flex}.error-banner{color:#c62828;border-radius:var(--radius-sm);background:#fdecea;border:1px solid #ffcdd2;width:100%;margin-bottom:12px;padding:10px 14px;font-size:14px;line-height:1.5}.input-error{border-color:#c62828!important}.field-error{color:#c62828;margin-top:2px;font-size:12px}.invite-code-box{background:var(--bg);border:2px dashed var(--color-a);border-radius:var(--radius);text-align:center;padding:16px}.invite-code{letter-spacing:6px;color:var(--color-a);font-family:monospace;font-size:28px;font-weight:800}.invite-link-row{align-items:center;gap:8px;display:flex}.invite-link-row .text-input{flex:1;font-size:12px}.schedule-grid-wrap{width:100%}.quick-presets{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.preset-label{color:var(--text-muted);font-size:13px;font-weight:600}.schedule-grid{grid-template-columns:52px repeat(7,1fr);gap:3px;margin-bottom:12px;display:grid}.grid-header{text-align:center;color:var(--text-muted);padding:4px 2px;font-size:11px;font-weight:700}.grid-week-label{color:var(--text-muted);align-items:center;padding-right:2px;font-size:11px;font-weight:700;display:flex}.grid-cell{cursor:pointer;border:2px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:6px 2px;transition:all .12s;display:flex}.grid-cell:hover{filter:brightness(.93)}.grid-cell:active{transform:scale(.95)}.grid-cell.parent-A{background:var(--color-a-light);border-color:var(--color-a);color:var(--color-a-dark)}.grid-cell.parent-B{background:var(--color-b-light);border-color:var(--color-b);color:var(--color-b-dark)}.cell-day{font-size:13px;font-weight:800}.cell-parent{opacity:.85;font-size:9px;font-weight:600}.schedule-summary{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px;margin-bottom:8px;display:flex}.parent-A-chip,.parent-B-chip{border-radius:12px;padding:4px 14px;font-size:13px;font-weight:700}.parent-A-chip{background:var(--color-a-light);color:var(--color-a-dark)}.parent-B-chip{background:var(--color-b-light);color:var(--color-b-dark)}.proposal-banner{border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.proposal-banner.pending{background:var(--color-b-light);border:1px solid var(--color-b)}.proposal-banner.incoming{background:var(--color-a-light);border:1px solid var(--color-a)}.proposal-icon{flex-shrink:0;font-size:20px}.proposal-text{flex-direction:column;flex:1;gap:3px;display:flex}.proposal-text strong{font-size:14px}.proposal-hint{color:var(--text-muted);font-size:12px}.proposal-actions-row{gap:8px;display:flex}.approval-actions{gap:12px;margin-top:20px;display:flex}.approval-actions .btn{flex:1}.declined-banner{color:#c62828;border-radius:var(--radius-sm);background:#fdecea;border:1px solid #ffcdd2;padding:12px 14px;font-size:14px;font-weight:500}.approval-info-box{background:var(--bg);border-radius:var(--radius-sm);color:var(--text-muted);padding:12px 14px;font-size:13px}.login-form{flex-direction:column;gap:4px;width:100%;display:flex}.login-form .form-group{text-align:right}.cred-section{background:var(--bg);border-radius:var(--radius-sm);margin-bottom:16px;padding:16px}.cred-section h3{color:var(--text-muted);margin-bottom:12px;font-size:15px}.parent-select-row{justify-content:center;gap:16px;width:100%;display:flex}.parent-btn{border-radius:var(--radius);border:2px solid var(--border);flex-direction:column;flex:1;align-items:center;gap:10px;padding:20px 12px;font-size:14px;font-weight:700;transition:all .15s;display:flex}.parent-btn:hover{border-color:var(--color-a);background:var(--color-a-light)}.parent-avatar{background:var(--bg);border:2px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:32px;display:flex;overflow:hidden}.parent-avatar img{object-fit:cover;width:100%;height:100%}.parent-avatar.large{width:80px;height:80px;font-size:40px}.child-info{flex:1;font-size:14px}.new-child-form h4{color:var(--text-muted);margin-bottom:8px;font-size:14px;font-weight:700}.expenses-page{max-width:480px;margin:0 auto;padding:16px 16px 100px}.month-nav{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.month-label{font-size:18px;font-weight:800}.expenses-summary{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;margin-bottom:16px;padding:16px;display:flex}.summary-row{justify-content:space-between;font-size:14px;display:flex}.summary-total{font-size:20px;font-weight:800}.summary-debt{border-radius:var(--radius-sm);background:var(--color-b-light);text-align:center;color:var(--color-b-dark);margin-top:4px;padding:8px 12px;font-size:14px;font-weight:600}.summary-debt.balanced{background:var(--color-a-light);color:var(--color-a-dark)}.expenses-list{flex-direction:column;gap:10px;display:flex}.expense-row{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);align-items:center;gap:10px;padding:12px;display:flex}.expense-cat-icon{flex-shrink:0;font-size:24px}.expense-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.expense-cat-label{color:var(--text-muted);font-size:13px;font-weight:600}.expense-desc{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.expense-meta{color:var(--text-muted);font-size:12px}.expense-amount{flex-shrink:0;font-size:16px;font-weight:800}.delete-btn{color:var(--color-b);opacity:.7;padding:4px;font-size:16px}.delete-btn:hover{opacity:1}.fab{bottom:calc(var(--nav-height) + 16px);background:var(--color-b);color:#fff;z-index:50;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;line-height:1;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;left:20px;box-shadow:0 4px 16px #f5821f66}.fab:active{transform:scale(.93)}.fab:hover{box-shadow:0 6px 20px #f5821f80}.sheet-overlay{z-index:200;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-panel{background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-height:90dvh;padding:12px 20px 32px;overflow-y:auto}.sheet-handle{background:var(--border);border-radius:2px;width:40px;height:4px;margin:0 auto 16px}.sheet-title{text-align:center;margin-bottom:16px;font-size:17px;font-weight:700}.cat-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.cat-btn{border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--bg);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.cat-btn>span:first-child{font-size:22px}.cat-btn.selected{border-color:var(--color-a);background:var(--color-a-light);font-weight:600}.receipt-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.ocr-msg{color:var(--text-muted);font-size:12px;font-style:italic}.receipt-preview{object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;max-height:160px;margin-bottom:12px}.amount-input-wrap{border:1.5px solid var(--border);border-radius:var(--radius-sm);align-items:center;display:flex;overflow:hidden}.amount-prefix{background:var(--bg);color:var(--text-muted);border-left:1.5px solid var(--border);align-items:center;height:100%;padding:0 10px;font-size:16px;font-weight:700;display:flex}.amount-input{flex:1;border:none!important;border-radius:0!important}.amount-input:focus{box-shadow:none;outline:none}.amount-input-wrap:focus-within{border-color:var(--color-a)}.expense-form{flex-direction:column;gap:12px;display:flex}.consent-group{flex-direction:column;gap:10px;margin-bottom:4px;display:flex}.consent-label{cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.consent-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-a);cursor:pointer;flex-shrink:0;margin-top:2px}.chat-fab{bottom:calc(var(--nav-height) + 16px);background:var(--color-a);color:#fff;z-index:50;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;right:20px;box-shadow:0 4px 16px #00b5a373}.chat-fab:hover{box-shadow:0 6px 20px #00b5a38c}.chat-fab:active{transform:scale(.92)}.chat-fab-badge{background:var(--color-b);pointer-events:none;border:2px solid #fff;border-radius:50%;width:11px;height:11px;position:absolute;top:7px;right:7px}.chat-overlay{z-index:300;background:#00000073;align-items:flex-end;display:flex;position:fixed;inset:0}.chat-sheet{background:var(--surface);border-radius:22px 22px 0 0;flex-direction:column;width:100%;max-height:82dvh;display:flex;overflow:hidden}.chat-sheet-handle{background:var(--border);border-radius:2px;flex-shrink:0;width:40px;height:4px;margin:10px auto 0}.chat-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px 12px;display:flex}.chat-title{color:var(--color-a);align-items:center;gap:7px;font-size:15px;font-weight:700;display:flex}.chat-close-btn{color:var(--text-muted)}.chat-close-btn:hover{color:var(--text)}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:14px 14px 6px;display:flex;overflow-y:auto}.chat-empty{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:40px 0;display:flex}.chat-msg{flex-direction:column;gap:3px;max-width:78%;display:flex}.chat-msg.mine{align-self:flex-start;align-items:flex-start}.chat-msg.theirs{align-self:flex-end;align-items:flex-end}.chat-bubble-inner{border-radius:16px;flex-direction:column;gap:4px;padding:9px 13px;display:flex}.chat-msg.mine .chat-bubble-inner{background:var(--color-a-light);border-bottom-right-radius:4px}.chat-msg.theirs .chat-bubble-inner{background:var(--color-b-light);border-bottom-left-radius:4px}.chat-msg-text{word-break:break-word;color:var(--text);font-size:15px;line-height:1.55}.chat-msg-time{color:var(--text-muted);align-self:flex-end;font-size:11px}.chat-msg-name{color:var(--text-muted);padding:0 4px;font-size:11px}.tone-warning{border:1.5px solid var(--color-b);background:#fff8e1;border-radius:14px;flex-direction:column;flex-shrink:0;gap:7px;margin:0 12px 6px;padding:12px 14px;display:flex}.tone-warning-top{align-items:flex-start;gap:8px;display:flex}.tone-icon{color:var(--color-b);flex-shrink:0;margin-top:1px}.tone-warning-text{font-size:14px;line-height:1.5}.tone-warning-sub{color:var(--text-muted);font-size:13px}.tone-warning-actions{justify-content:flex-end;gap:8px;display:flex}.chat-input-row{border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px 18px;display:flex}.chat-input{border:1.5px solid var(--border);background:var(--bg);color:var(--text);border-radius:22px;outline:none;flex:1;padding:10px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.chat-input:focus{border-color:var(--color-a)}.chat-input:disabled{opacity:.6}.chat-send-btn{background:var(--color-a);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;transition:background .15s;display:flex}.chat-send-btn:disabled{background:var(--border);color:var(--text-muted)}.chat-send-btn:not(:disabled):hover{background:var(--color-a-dark)}.chat-spinner{letter-spacing:-2px;font-size:18px;font-weight:700}.chat-error-bar{color:#c62828;background:#fdecea;border-top:1px solid #ffcdd2;flex-shrink:0;padding:8px 14px;font-size:13px}
