:root{--bg-primary:#f0f9f4;--bg-secondary:#e4f3eb;--bg-card:#fff;--bg-hover:#d6eddf;--text-primary:#1a2e22;--text-secondary:#3d5c47;--text-muted:#7a9b85;--accent-primary:#2ecc71;--accent-secondary:#27ae60;--accent-gold:#f39c12;--accent-green:#00b894;--accent-blue:#3498db;--accent-danger:#e74c3c;--border-color:#c5e1cf;--shadow:0 8px 32px #0000000f;--radius:12px;--radius-sm:8px}*{box-sizing:border-box;margin:0;padding:0}body,html{overflow-x:hidden;width:100%}body{background:#f0f9f4;background:var(--bg-primary);background-image:radial-gradient(ellipse at 10% 20%,#2ecc7114 0,#0000 50%),radial-gradient(ellipse at 90% 80%,#00b8941a 0,#0000 50%);color:#1a2e22;color:var(--text-primary);font-family:Nunito Sans,Gowun Dodum,Noto Sans KR,sans-serif;min-height:100vh}.navbar{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffeb;border-bottom:1px solid #c5e1cf;border-bottom:1px solid var(--border-color);display:flex;gap:1.5rem;margin:-2rem -2rem 25px;padding:.75rem 2rem;position:-webkit-sticky;position:sticky;top:0;width:calc(100% + 4rem);z-index:100}.navbar-logo{flex-shrink:0}.navbar-logo img{display:block;height:123px;width:auto}.navbar-title{flex:1 1;min-width:0;text-align:center}.navbar-title h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#2ecc71,#1abc9c);background:linear-gradient(135deg,var(--accent-primary) 0,#1abc9c 100%);-webkit-background-clip:text;background-clip:text;font-family:Nunito,Jua,sans-serif;font-size:1.8rem;font-weight:400;margin-bottom:.25rem}.navbar-title h1,.navbar-title p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-title p{color:#7a9b85;color:var(--text-muted);font-family:Gamja Flower,cursive;font-size:1.05rem;letter-spacing:.5px}.navbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.navbar-actions .user-chip{color:#3d5c47;color:var(--text-secondary);font-size:13px}.navbar-settings-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;border-radius:var(--radius-sm);color:#3d5c47;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .25s ease;width:44px}.navbar-settings-btn:hover{background:#e4f3eb;background:var(--bg-secondary);border-color:#c5e1cf;border-color:var(--border-color);color:#1a2e22;color:var(--text-primary)}.navbar-settings-btn:hover svg{transform:rotate(60deg)}.navbar-settings-btn svg{transition:transform .35s ease}.navbar-settings-btn.needs-setup{color:#00d9a5;position:relative}.navbar-settings-btn.needs-setup svg,.navbar-settings-btn.needs-setup:hover svg{animation:settings-spin 3s linear infinite;transform:none}@keyframes settings-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.navbar-settings-btn.needs-setup:after{background:#1a1a2e;border-radius:6px;box-shadow:0 4px 12px #00000040;color:#fff;content:"첫 여행을 설정하세요";font-size:12px;font-weight:500;padding:6px 10px;right:0;top:calc(100% + 6px);white-space:nowrap}.navbar-settings-btn.needs-setup:after,.navbar-settings-btn.needs-setup:before{animation:settings-tooltip-bob 2s ease-in-out infinite;pointer-events:none;position:absolute;z-index:1000}.navbar-settings-btn.needs-setup:before{border-bottom:6px solid #1a1a2e;border-left:6px solid #0000;border-right:6px solid #0000;content:"";height:0;right:14px;top:calc(100% + 1px);width:0}@keyframes settings-tooltip-bob{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.85;transform:translateY(-3px)}}@media (max-width:600px){.navbar-settings-btn.needs-setup:after{font-size:11px;padding:5px 8px}}.app{margin:0 auto;max-width:1400px;padding:2rem}.main-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:400px 1fr;margin-bottom:2rem}@media (max-width:1024px){.main-grid{grid-template-columns:1fr}}.card{background:#fff;background:var(--bg-card);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--radius);box-shadow:0 8px 32px #0000000f;box-shadow:var(--shadow);padding:1.5rem}.card-title{align-items:center;display:flex;font-family:Nunito,Jua,sans-serif;font-size:1.2rem;font-weight:400;gap:.5rem;margin-bottom:1.5rem}.card-title span{font-size:1.4rem}.card-title-toggle{cursor:pointer;transition:opacity .15s ease;-webkit-user-select:none;user-select:none}.card-title-toggle:hover{opacity:.8}.card-toggle-chevron{color:#2ecc71;color:var(--accent-primary);filter:drop-shadow(0 1px 2px rgba(46,204,113,.3));flex-shrink:0;font-size:1rem!important;transition:transform .25s ease,color .2s ease}.card-toggle-chevron:hover{color:#27ae60;color:var(--accent-secondary)}.card-toggle-chevron.open{color:#3498db;color:var(--accent-blue);filter:drop-shadow(0 1px 2px rgba(52,152,219,.3));transform:rotate(90deg)}.card-toggle-chevron.chevron-exchange{color:#f39c12;color:var(--accent-gold);filter:drop-shadow(0 1px 2px rgba(243,156,18,.3))}.card-toggle-chevron.chevron-exchange.open{color:#f39c12;color:var(--accent-gold);filter:drop-shadow(0 1px 3px rgba(243,156,18,.4))}.card-toggle-chevron.chevron-expense{color:#00b894;color:var(--accent-green);filter:drop-shadow(0 1px 2px rgba(0,184,148,.3))}.card-toggle-chevron.chevron-expense.open{color:#3498db;color:var(--accent-blue);filter:drop-shadow(0 1px 3px rgba(52,152,219,.4))}.card-collapsible-body{animation:slideDown .2s ease}.dropzone{background:#2ecc7108;border:2px dashed #c5e1cf;border:2px dashed var(--border-color);border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;padding:3rem 2rem;text-align:center;transition:all .3s ease}.dropzone.active,.dropzone:hover{background:#2ecc7114;border-color:#2ecc71;border-color:var(--accent-primary)}.dropzone-icon{font-size:3rem;margin-bottom:1rem}.dropzone p{color:#3d5c47;color:var(--text-secondary);margin-bottom:.5rem}.dropzone small{color:#7a9b85;color:var(--text-muted);font-size:.85rem}.upload-mobile,.upload-mobile-hint{display:none}.upload-tile{align-items:center;background:#2ecc7108;border:2px dashed #c5e1cf;border:2px dashed var(--border-color);border-radius:8px;border-radius:var(--radius-sm);color:#3d5c47;color:var(--text-secondary);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:.25rem;justify-content:center;min-width:0;padding:1.5rem .75rem;transition:all .2s ease}.upload-tile:active:not(:disabled),.upload-tile:hover:not(:disabled){background:#2ecc7114;border-color:#2ecc71;border-color:var(--accent-primary)}.upload-tile:disabled{cursor:not-allowed;opacity:.6}.upload-tile-icon{font-size:2rem;line-height:1;margin-bottom:.25rem}.upload-tile-title{color:#1a2e22;color:var(--text-primary);font-size:.95rem;font-weight:600}.upload-tile small{color:#7a9b85;color:var(--text-muted);font-size:.78rem}.ocr-result{background:#00d9a51a;border:1px solid #00b894;border:1px solid var(--accent-green);border-radius:8px;border-radius:var(--radius-sm);margin-top:1.5rem;padding:1rem}.ocr-result h4{color:#00b894;color:var(--accent-green);font-size:.9rem;margin-bottom:.75rem}.ocr-result-item{border-bottom:1px solid #0000000f;display:flex;font-size:.9rem;justify-content:space-between;padding:.4rem 0}.ocr-result-item:last-child{border-bottom:none}.ocr-result-item span:first-child{color:#3d5c47;color:var(--text-secondary)}.form-group{margin-bottom:1.25rem;min-width:0;overflow:hidden}.form-group label{color:#3d5c47;color:var(--text-secondary);display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{background:#e4f3eb;background:var(--bg-secondary);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-sm);box-sizing:border-box;color:#1a2e22;color:var(--text-primary);font-family:inherit;font-size:.95rem;max-width:100%;min-width:0;padding:.75rem 1rem;transition:border-color .2s ease;width:100%}.form-group input[type=date]{-webkit-appearance:none;appearance:none;display:block;text-align:left}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2ecc71;border-color:var(--accent-primary);outline:none}.form-group .readonly-input{background:#d6eddf;background:var(--bg-hover);color:#1a2e22;color:var(--text-primary);cursor:default;font-weight:600}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:inherit;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;padding:.85rem 1.5rem;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#2ecc71,#27ae60);background:linear-gradient(135deg,var(--accent-primary) 0,#27ae60 100%);color:#fff;width:100%}.btn-primary:hover{box-shadow:0 4px 20px #2ecc7166;transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.expense-table-wrapper{overflow-x:auto}.collapsed-hint{border-top:1px dashed #c5e1cf;border-top:1px dashed var(--border-color);color:#00b894;color:var(--accent-green);cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem;text-align:center;transition:background .2s}.collapsed-hint:hover{background:#2ecc7114}.collapse-bottom-btn{align-items:center;border-top:1px dashed #c5e1cf;border-top:1px dashed var(--border-color);color:#3498db;color:var(--accent-blue);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.4rem;justify-content:center;padding:.75rem;text-align:center;transition:background .2s}.collapse-bottom-btn:hover{background:#3498db14}.collapse-bottom-btn .card-toggle-chevron{font-size:.85rem!important}.expense-table{border-collapse:collapse;font-size:.9rem;width:100%}.expense-table th{background:#e4f3eb;background:var(--bg-secondary);color:#3d5c47;color:var(--text-secondary);font-weight:500;padding:1rem .75rem;text-align:left;white-space:nowrap}.expense-table td,.expense-table th{border-bottom:1px solid #c5e1cf;border-bottom:1px solid var(--border-color)}.expense-table td{padding:.85rem .75rem;vertical-align:middle}.expense-table tr:hover td{background:#2ecc710d}.expense-table .amount{font-family:JetBrains Mono,monospace;text-align:right}.expense-table .krw-amount{color:#f39c12;color:var(--accent-gold);font-weight:500}.badge{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .6rem}.badge-cash{background:#00d9a526;color:#00b894;color:var(--accent-green)}.badge-card{background:#4dabf726;color:#3498db;color:var(--accent-blue)}.badge-category{background:#ffc30026;color:#f39c12;color:var(--accent-gold)}.delete-btn{background:#0000;border:none;border-radius:4px;color:#7a9b85;color:var(--text-muted);cursor:pointer;padding:.5rem;transition:all .2s ease}.delete-btn:hover{background:#e74c3c1f;color:#e74c3c;color:var(--accent-danger)}.receipt-cell{text-align:center}.receipt-icon-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;opacity:.75;padding:.35rem .5rem;transition:all .2s ease}.receipt-icon-btn:hover{background:#2ecc711f;opacity:1;transform:scale(1.15)}.no-receipt{color:#7a9b85;color:var(--text-muted)}.receipt-modal{max-width:700px;width:92%}.receipt-modal-body{align-items:center;display:flex;justify-content:center;max-height:75vh;overflow:auto;padding:1rem}.receipt-modal-image{border-radius:8px;border-radius:var(--radius-sm);box-shadow:0 2px 12px #00000026;max-height:70vh;max-width:100%;object-fit:contain}.receipt-error{padding:2rem}.empty-state,.receipt-error{color:#7a9b85;color:var(--text-muted);text-align:center}.empty-state{padding:3rem}.empty-state span{display:block;font-size:3rem;margin-bottom:1rem}.summary-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:2rem}.summary-card{background:#fff;background:var(--bg-card);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--radius);overflow:hidden;padding:1.5rem;position:relative}.summary-card:before{content:"";height:3px;left:0;position:absolute;right:0;top:0}.summary-card.total:before{background:linear-gradient(90deg,#2ecc71,#f39c12);background:linear-gradient(90deg,var(--accent-primary),var(--accent-gold))}.summary-card.per-person:before{background:linear-gradient(90deg,#00b894,#3498db);background:linear-gradient(90deg,var(--accent-green),var(--accent-blue))}.summary-card h3{color:#3d5c47;color:var(--text-secondary);font-size:.9rem;font-weight:500;margin-bottom:.75rem}.summary-card .value{font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:700}.summary-card.total .value{color:#f39c12;color:var(--accent-gold)}.summary-card.per-person .value{color:#00b894;color:var(--accent-green)}.summary-card .unit{color:#7a9b85;color:var(--text-muted);font-size:1rem;margin-left:.25rem}.settlement-card-full{margin-top:1.5rem;width:100%}.settlement-card-full h3{margin-bottom:1rem}.settlements{display:flex;flex-wrap:wrap;gap:1rem}.settlement-item{align-items:center;background:#e4f3eb;background:var(--bg-secondary);border-left:3px solid #0000;border-radius:8px;border-radius:var(--radius-sm);display:flex;flex:1 1 280px;justify-content:space-between;max-width:400px;min-width:250px;padding:1rem}.settlement-item.receive{border-left-color:#00b894;border-left-color:var(--accent-green)}.settlement-item.pay{border-left-color:#e74c3c;border-left-color:var(--accent-danger)}.settlement-item.settled{border-left-color:#7a9b85;border-left-color:var(--text-muted)}.settlement-name{font-weight:500}.settlement-paid{color:#7a9b85;color:var(--text-muted);font-size:.85rem}.settlement-amount{text-align:right}.settlement-amount .diff{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600}.settlement-amount .diff.positive{color:#00b894;color:var(--accent-green)}.settlement-amount .diff.negative{color:#e74c3c;color:var(--accent-danger)}.settlement-amount .status{color:#7a9b85;color:var(--text-muted);font-size:.8rem}.category-breakdown{margin-top:1.5rem}.category-item{margin-bottom:1rem}.category-header{display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:.5rem}.category-name{color:#3d5c47;color:var(--text-secondary)}.category-amount{color:#1a2e22;color:var(--text-primary);font-family:JetBrains Mono,monospace}.category-bar{background:#e4f3eb;background:var(--bg-secondary);border-radius:3px;height:6px;overflow:hidden}.category-bar-fill{background:linear-gradient(90deg,#2ecc71,#1abc9c);background:linear-gradient(90deg,var(--accent-primary),#1abc9c);border-radius:3px;height:100%;transition:width .5s ease}.exchange-rates{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.rate-item{align-items:center;background:#e4f3eb;background:var(--bg-secondary);border-radius:8px;border-radius:var(--radius-sm);display:flex;gap:.5rem;padding:.75rem 1rem}.rate-item label{color:#3d5c47;color:var(--text-secondary);font-size:.9rem;min-width:80px;white-space:nowrap}.rate-item input{background:#fff;background:var(--bg-card);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:4px;color:#1a2e22;color:var(--text-primary);flex:1 1;font-family:JetBrains Mono,monospace;font-size:1rem;max-width:120px;padding:.5rem .75rem;text-align:right}.rate-item input:focus{border-color:#2ecc71;border-color:var(--accent-primary);outline:none}.rate-unit{color:#7a9b85;color:var(--text-muted);flex-shrink:0;font-size:.8rem}.card-title-badge{background:#e9456026;border-radius:4px;color:#2ecc71;color:var(--accent-primary);font-size:.65rem;font-weight:600;letter-spacing:.02em;margin-left:.4rem;padding:.15rem .45rem;vertical-align:middle}.exchange-rate-actions{margin-bottom:.75rem}.btn-fetch-rate{align-items:center;background:linear-gradient(135deg,#00d9a51f,#4dabf71f);border:1px solid #00d9a540;border-radius:8px;border-radius:var(--radius-sm);color:#00b894;color:var(--accent-green);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:.4rem;justify-content:center;padding:.55rem 1rem;transition:all .2s ease;width:100%}.btn-fetch-rate:hover:not(:disabled){background:linear-gradient(135deg,#00d9a533,#4dabf733);border-color:#00b894;border-color:var(--accent-green);transform:translateY(-1px)}.btn-fetch-rate:disabled{cursor:not-allowed;opacity:.5}.exchange-rate-info{align-items:center;background:#4dabf714;border-radius:8px;border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;font-size:.75rem;gap:.4rem;margin-bottom:.75rem;padding:.5rem .65rem}.rate-info-label{color:#7a9b85;color:var(--text-muted)}.rate-info-value{color:#3d5c47;color:var(--text-secondary);font-weight:500}.rate-info-source{color:#3498db;color:var(--accent-blue);font-size:.7rem;margin-left:auto}.exchange-rate-note{color:#7a9b85;color:var(--text-muted);display:block;font-size:.75rem;line-height:1.4;margin-top:.75rem;text-align:center}.add-currency-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;margin-left:auto;padding:.25rem .5rem;transition:all .2s ease}.add-currency-btn:hover{background:#00d9a533;transform:scale(1.1)}.currency-actions{display:flex;gap:.25rem;margin-left:auto}.currency-delete-btn,.currency-edit-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;opacity:.6;padding:.35rem;transition:all .2s ease}.rate-item:hover .currency-delete-btn,.rate-item:hover .currency-edit-btn{opacity:1}.currency-edit-btn:hover{background:#4dabf733}.currency-delete-btn:hover{background:#e74c3c1f}.currency-modal{max-width:450px}.currency-preview{background:#00d9a51a;border:1px solid #00b894;border:1px solid var(--accent-green);border-radius:8px;border-radius:var(--radius-sm);font-size:1.1rem;margin-top:1.5rem;padding:1rem;text-align:center}.currency-preview span{color:#3d5c47;color:var(--text-secondary)}.currency-preview strong{color:#00b894;color:var(--accent-green);font-family:JetBrains Mono,monospace}.loading{animation:spin .8s linear infinite;border:2px solid #2ecc7140;border-radius:50%;border-top:2px solid var(--accent-primary);display:inline-block;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.toast{animation:slideIn .3s ease;background:#fff;background:var(--bg-card);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-sm);bottom:2rem;box-shadow:0 8px 32px #0000000f;box-shadow:var(--shadow);padding:1rem 1.5rem;position:fixed;right:2rem;z-index:1000}.toast.success{border-left:3px solid #00b894;border-left:3px solid var(--accent-green)}.toast.error{border-left:3px solid #e74c3c;border-left:3px solid var(--accent-danger)}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.preview-image{border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-sm);margin-top:1rem;max-height:200px;max-width:100%}.report-actions{display:flex;gap:1rem;justify-content:center;margin:2rem 0}.btn-download{background:linear-gradient(135deg,#00b894,#00b894);background:linear-gradient(135deg,var(--accent-green) 0,#00b894 100%);box-shadow:0 4px 20px #00d9a54d;color:#fff;font-size:1.1rem;padding:1rem 2rem}.btn-download-receipt{background:linear-gradient(135deg,#6c5ce7,#a29bfe);box-shadow:0 4px 20px #6c5ce74d}.btn-download:hover{box-shadow:0 6px 25px #00d9a580;transform:translateY(-2px)}.btn-download-receipt:hover{box-shadow:0 6px 25px #6c5ce780}.btn-download:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{animation:slideUp .3s ease;background:#fff;background:var(--bg-card);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--radius);box-shadow:0 8px 32px #0000000f;box-shadow:var(--shadow);max-height:90vh;max-width:500px;overflow:hidden;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ai-analyzing-overlay{background:#0c18128c;z-index:2000}.ai-analyzing-modal{background:#fff;background:var(--bg-card);border-radius:20px;box-shadow:0 20px 60px #00000059;max-width:360px;overflow:hidden;width:88%}.ai-analyzing-body{padding:2.5rem 1.75rem 2rem;position:relative;text-align:center}.ai-analyzing-spinner{animation:spin 1s linear infinite;border:4px solid #2ecc712e;border-radius:50%;border-top:4px solid var(--accent-primary);height:88px;margin:0 auto .5rem;position:relative;width:88px}.ai-analyzing-icon{animation:aiPulse 1.6s ease-in-out infinite;font-size:2rem;left:50%;line-height:1;position:absolute;top:2.5rem;transform:translate(-50%,22px)}@keyframes aiPulse{0%,to{opacity:.9;transform:translate(-50%,22px) scale(1)}50%{opacity:1;transform:translate(-50%,22px) scale(1.08)}}.ai-analyzing-title{color:#1a2e22;color:var(--text-primary);font-size:1.05rem;font-weight:700;margin:1.25rem 0 .35rem}.ai-analyzing-subtitle{color:#3d5c47;color:var(--text-secondary);font-size:.9rem;margin:0}.ai-analyzing-dots{display:flex;gap:6px;justify-content:center;margin-top:1rem}.ai-analyzing-dots span{animation:aiDots 1.2s ease-in-out infinite;background:#2ecc71;background:var(--accent-primary);border-radius:50%;height:8px;opacity:.35;width:8px}.ai-analyzing-dots span:nth-child(2){animation-delay:.15s}.ai-analyzing-dots span:nth-child(3){animation-delay:.3s}@keyframes aiDots{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.modal-header{border-bottom:1px solid #c5e1cf;border-bottom:1px solid var(--border-color);justify-content:space-between;padding:1.25rem 1.5rem}.modal-header,.modal-header h2{align-items:center;display:flex}.modal-header h2{font-size:1.25rem;font-weight:600;gap:.5rem}.modal-close{align-items:center;background:#0000;border:none;border-radius:4px;color:#7a9b85;color:var(--text-muted);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;transition:all .2s ease;width:32px}.modal-close:hover{background:#0000000f;color:#1a2e22;color:var(--text-primary)}.modal-body{max-height:60vh;overflow-y:auto;padding:1.5rem}.modal-footer{border-top:1px solid #c5e1cf;border-top:1px solid var(--border-color);display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.btn-secondary,.modal-footer{background:#e4f3eb;background:var(--bg-secondary)}.btn-secondary{border:1px solid #c5e1cf;border:1px solid var(--border-color);color:#3d5c47;color:var(--text-secondary)}.btn-secondary:hover{background:#d6eddf;background:var(--bg-hover);color:#1a2e22;color:var(--text-primary)}.modal-footer .btn-primary{min-width:80px;width:auto}.form-hint{color:#7a9b85;color:var(--text-muted);display:block;font-size:.8rem;margin-top:.35rem}.modal-large{max-width:600px}.modal-tabs{background:#e4f3eb;background:var(--bg-secondary);border-bottom:1px solid #c5e1cf;border-bottom:1px solid var(--border-color);display:flex}.modal-tab{background:#0000;border:none;color:#3d5c47;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:.9rem;padding:.85rem 1rem;position:relative;transition:all .2s ease}.modal-tab:hover{background:#2ecc710f;color:#1a2e22;color:var(--text-primary)}.modal-tab.active{background:#fff;background:var(--bg-card);color:#2ecc71;color:var(--accent-primary)}.modal-tab.active:after{background:#2ecc71;background:var(--accent-primary);bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.save-current-section{border-top:1px dashed #c5e1cf;border-top:1px dashed var(--border-color);margin-top:2rem;padding-top:1.5rem}.btn-save-current{font-weight:600;padding:.85rem 1.5rem;width:100%}.btn-save-current:hover:not(:disabled){box-shadow:0 4px 20px #00d9a559;transform:translateY(-2px)}.new-trip-section{border-top:1px dashed #c5e1cf;border-top:1px dashed var(--border-color);margin-top:1.5rem;padding-top:1.5rem}.btn-new-trip{background:linear-gradient(135deg,#f39c12,#e6a800);background:linear-gradient(135deg,var(--accent-gold) 0,#e6a800 100%);color:#1a2e22;font-weight:600;padding:.85rem 1.5rem;width:100%}.btn-new-trip:hover{box-shadow:0 4px 20px #ffc30066;transform:translateY(-2px)}.trips-list{display:flex;flex-direction:column;gap:.75rem}.empty-trips{color:#7a9b85;color:var(--text-muted);padding:3rem 1rem;text-align:center}.empty-trips span{display:block;font-size:3rem;margin-bottom:1rem}.trip-item{align-items:center;background:#e4f3eb;background:var(--bg-secondary);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-sm);display:flex;justify-content:space-between;padding:1rem;transition:all .2s ease}.trip-item:hover{background:#d6eddf;background:var(--bg-hover);border-color:#00b894;border-color:var(--accent-green)}.trip-info{flex:1 1;min-width:0}.trip-title{font-size:1rem;font-weight:600;margin-bottom:.35rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-meta{color:#7a9b85;color:var(--text-muted);display:flex;font-size:.8rem;gap:1rem}.trip-meta span{align-items:center;display:flex;gap:.25rem}.trip-actions{display:flex;gap:.5rem;margin-left:1rem}.btn-trip-load{background:#00b894;background:var(--accent-green);border-radius:4px;color:#fff;font-size:.85rem;padding:.5rem 1rem}.btn-trip-load:hover{background:#00c494}.btn-trip-load:disabled{cursor:not-allowed;opacity:.5}.btn-trip-delete{background:#0000;border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:4px;color:#7a9b85;color:var(--text-muted);font-size:.9rem;padding:.5rem}.btn-trip-delete:hover{background:#e74c3c1f;border-color:#e74c3c;border-color:var(--accent-danger);color:#e74c3c;color:var(--accent-danger)}.confirm-message{background:#ffc3001a;border:1px solid #f39c12;border:1px solid var(--accent-gold);border-radius:8px;border-radius:var(--radius-sm);padding:1rem;text-align:center}.confirm-message p:first-child{color:#f39c12;color:var(--accent-gold);font-weight:500}.expense-type-group{margin-top:1rem}.expense-type-options{display:flex;gap:.75rem}.expense-type-option{align-items:center;background:#e4f3eb;background:var(--bg-secondary);border:2px solid #c5e1cf;border:2px solid var(--border-color);border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;display:flex;flex:1 1;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease}.expense-type-option:hover{background:#2ecc7114;border-color:#2ecc71;border-color:var(--accent-primary)}.expense-type-option.selected{background:#2ecc711f;border-color:#2ecc71;border-color:var(--accent-primary)}.expense-type-option input[type=radio]{display:none}.expense-type-label{color:#1a2e22;color:var(--text-primary);font-size:.9rem;font-weight:500}.personal-expense-for{animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.personal-expense-for select{border-color:#3498db;border-color:var(--accent-blue)}.badge-personal{background:#e74c3c1f;color:#e74c3c;color:var(--accent-danger);font-size:.75rem}.badge-shared{background:#00d9a526;color:#00b894;color:var(--accent-green);font-size:.75rem}.personal-expense-row{background:#e74c3c0a}.personal-expense-row:hover td{background:#e74c3c12!important}.settlement-info{flex:1 1;min-width:0}.settlement-paid-for-others{color:#3498db;color:var(--accent-blue);font-size:.85rem;margin-top:.25rem}.settlement-personal{margin-top:.5rem}.personal-label{color:#e74c3c;color:var(--accent-danger);font-size:.85rem;font-weight:500}.personal-expense-details{background:#e74c3c0d;border-left:2px solid #e74c3c;border-left:2px solid var(--accent-danger);border-radius:4px;margin-top:.5rem;padding:.5rem}.personal-expense-detail-item{align-items:center;color:#3d5c47;color:var(--text-secondary);display:flex;font-size:.8rem;gap:1rem;justify-content:space-between;padding:.3rem .5rem}.personal-expense-detail-item:not(:last-child){border-bottom:1px solid #0000000f}.detail-amount{color:#e74c3c;color:var(--accent-danger);font-family:JetBrains Mono,monospace;font-weight:500;min-width:80px}.detail-payer{color:#3d5c47;color:var(--text-secondary);font-size:.8rem}.summary-breakdown{border-top:1px solid #0000000f;margin-top:.75rem;padding-top:.75rem}.summary-breakdown p{color:#7a9b85;color:var(--text-muted);font-size:.8rem;margin-bottom:.25rem}.summary-breakdown p:last-child{margin-bottom:0}@media (max-width:768px){.app{padding:1rem}.navbar{flex-wrap:wrap;gap:.75rem;margin:-1rem -1rem 0;padding:.5rem 1rem;width:calc(100% + 2rem)}.navbar-logo img{height:70px}.navbar-title{flex:1 1 auto;min-width:0;text-align:left}.navbar-title h1{font-size:1.3rem}.navbar-title p{font-size:.9rem}.navbar-actions{gap:6px;justify-content:flex-end;margin-left:0;order:3;width:100%}.navbar-actions .user-chip{font-size:12px}.card{max-width:100%;overflow-x:hidden;padding:1rem;width:100%}.card-title{font-size:1.05rem;margin-bottom:1rem}.form-group input,.form-group select,.form-group textarea{font-size:16px}.dropzone{padding:2rem 1rem}.dropzone-icon{font-size:2.2rem;margin-bottom:.5rem}.dropzone p{font-size:.9rem}.dropzone-desktop{display:none}.upload-mobile{display:flex;gap:.75rem}.upload-mobile-hint{color:#7a9b85;color:var(--text-muted);display:block;font-size:.8rem;margin-top:.75rem;text-align:center}.right-panel .card{overflow-x:hidden;padding:1rem}.expense-table-wrapper{overflow-x:visible}.expense-table{font-size:.85rem;min-width:0}.expense-table thead{display:none}.expense-table,.expense-table tbody{display:block}.expense-table tr{background:#e4f3eb;background:var(--bg-secondary);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:8px;border-radius:var(--radius-sm);display:block;margin-bottom:0;margin-bottom:.75rem;padding:.75rem 1rem}.expense-table tr:hover td{background:#0000}.expense-table td{align-items:center;border-bottom:1px solid #0000000a;display:flex;justify-content:space-between;padding:.35rem 0;text-align:right}.expense-table td:before{color:#3d5c47;color:var(--text-secondary);content:attr(data-label);flex-shrink:0;font-size:.8rem;font-weight:500;margin-right:.75rem;text-align:left}.expense-table td:last-child{border-bottom:none;justify-content:flex-end;padding-top:.5rem}.expense-table td:last-child:before{display:none}.expense-table .amount{text-align:right}.expense-table .personal-expense-row{border-left:3px solid #e74c3c;border-left:3px solid var(--accent-danger)}.right-panel .empty-state{padding:3rem 1rem}.left-panel .card{max-width:100%;overflow-x:hidden;width:100%}.summary-grid{gap:1rem;grid-template-columns:1fr}.summary-card{max-width:100%;overflow-x:hidden;width:100%}.summary-card .value{font-size:1.5rem;word-break:break-all}.settlement-card-full{max-width:100%;overflow-x:hidden;width:100%}.settlement-item{flex-basis:100%;max-width:none;min-width:0}.settlements{flex-direction:column}.toast{bottom:1rem;left:1rem;right:1rem}@keyframes slideIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.report-actions{flex-direction:column;margin:1.5rem 0}.btn-download{font-size:.95rem;padding:.85rem 1rem;width:100%}.form-row{gap:0;grid-template-columns:1fr;min-width:0;width:100%}.form-group input[type=date]{-webkit-appearance:none;appearance:none;box-sizing:border-box;display:block;max-width:100%;min-width:0;padding:.75rem .85rem;width:100%}.form-group input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left;width:100%}.form-group input[type=date]::-webkit-calendar-picker-indicator{margin-left:auto;padding:0}.rate-item{flex-wrap:nowrap;gap:.4rem;padding:.65rem .75rem}.rate-item label{flex-shrink:0;font-size:.82rem;min-width:auto}.rate-item input{flex:0 1 90px;font-size:16px;max-width:90px;min-width:60px;padding:.4rem .5rem}.rate-unit{font-size:.75rem}.modal{max-height:85vh;width:95%}.modal-header{padding:1rem}.modal-header h2{font-size:1.1rem}.modal-body{max-height:55vh;padding:1rem}.modal-footer{padding:.75rem 1rem}.modal-tab{font-size:.8rem;padding:.75rem .5rem}.trip-item{align-items:flex-start;flex-direction:column;gap:.75rem}.trip-actions{margin-left:0;width:100%}.trip-actions .btn-trip-load{flex:1 1}.personal-expense-detail-item,.trip-meta{flex-wrap:wrap;gap:.5rem}.expense-type-options{flex-direction:column;gap:.5rem}.btn,.delete-btn{min-height:44px}.delete-btn{min-width:44px}.category-breakdown{margin-top:1rem}.summary-breakdown p{font-size:.75rem}.exchange-rate-info{font-size:.7rem}.preview-image{max-height:150px}}@media (max-width:480px){.app{padding:.5rem}.navbar{gap:.75rem;margin:-.5rem -.5rem 0;padding:.4rem .75rem;width:calc(100% + 1rem)}.navbar-logo img{height:50px}.navbar-title h1{font-size:1.1rem}.navbar-title p{font-size:.82rem}.card{border-radius:8px;border-radius:var(--radius-sm);padding:.75rem}.card-title{font-size:.95rem}.summary-card .value{font-size:1.25rem}.settlement-amount .diff{font-size:.95rem}.btn-download{font-size:.85rem;padding:.75rem}.btn-primary{font-size:.9rem;padding:.75rem 1rem}.expense-table td{font-size:.8rem}.expense-table td:before{font-size:.75rem}.modal{border-radius:0;height:100%;max-height:100vh;width:100%}.modal-body{max-height:calc(100vh - 140px)}.dropzone{padding:1.5rem .75rem}.upload-mobile{gap:.5rem}.upload-tile{padding:1.1rem .5rem}.upload-tile-icon{font-size:1.7rem}.upload-tile-title{font-size:.88rem}.upload-tile small{font-size:.72rem}.badge{font-size:.7rem;padding:.2rem .4rem}.site-footer .footer-content{align-items:flex-start;flex-direction:column;gap:1rem}.site-footer .footer-right{text-align:left}}.site-footer{background-color:#3a7d44;color:#ffffffd9;left:50%;margin-top:2rem;padding:1.25rem 2rem;position:relative;transform:translateX(-50%);width:100vw}.footer-content{justify-content:space-between;margin:0 auto;max-width:1200px}.footer-content,.footer-left{align-items:center;display:flex}.footer-left{gap:.85rem}.footer-logo{height:36px;object-fit:contain;opacity:.9;width:36px}.footer-info{display:flex;flex-direction:column;font-size:.75rem;gap:.1rem;line-height:1.4}.footer-info strong{color:#fff;font-size:.8rem}.footer-right{color:#ffffffbf;font-size:.75rem;text-align:right}.navbar-install-btn{background:linear-gradient(135deg,#2ecc71,#00b894);background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-green) 100%);border:1px solid #0000;border-radius:8px;box-shadow:0 4px 12px #2ecc7147;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:6px 12px;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;white-space:nowrap}.navbar-install-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.navbar-install-btn:active{transform:translateY(0)}.install-banner{align-items:center;animation:install-banner-slide-up .28s ease-out;background:#fff;border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:16px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));box-shadow:0 12px 32px #1a2e222e;color:#1a2e22;color:var(--text-primary);display:flex;gap:12px;left:50%;padding:12px 14px;position:fixed;transform:translateX(-50%);width:min(560px,calc(100% - 24px));z-index:9999}@keyframes install-banner-slide-up{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}.install-banner-icon{background:#fff;border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:10px;flex-shrink:0;height:44px;object-fit:cover;width:44px}.install-banner-text{display:flex;flex:1 1;flex-direction:column;gap:2px;line-height:1.3;min-width:0}.install-banner-text strong{color:#1a2e22;color:var(--text-primary);font-size:.95rem}.install-banner-text span{color:#7a9b85;color:var(--text-muted);font-size:.78rem}.install-banner-actions{align-items:center;display:flex;flex-shrink:0;gap:6px}.install-btn-primary{background:linear-gradient(135deg,#2ecc71,#00b894);background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-green) 100%);border:none;border-radius:999px;box-shadow:0 4px 12px #2ecc7147;color:#fff;cursor:pointer;font-size:.85rem;font-weight:700;padding:8px 14px;transition:transform .15s ease,box-shadow .15s ease}.install-btn-primary:hover{transform:translateY(-1px)}.install-btn-primary:active{transform:translateY(0)}.install-btn-block{display:block;font-size:.95rem;margin-top:16px;padding:12px 16px;width:100%}.install-btn-dismiss{background:#0000;border:none;border-radius:50%;color:#7a9b85;color:var(--text-muted);cursor:pointer;font-size:20px;height:30px;line-height:1;width:30px}.install-btn-dismiss:hover{background:#d6eddf;background:var(--bg-hover);color:#1a2e22;color:var(--text-primary)}.install-modal-overlay{align-items:center;animation:install-fade-in .16s ease-out;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0c18128c;display:flex;inset:0;justify-content:center;padding:16px 16px calc(16px + env(safe-area-inset-bottom, 0px));position:fixed;z-index:10000}@keyframes install-fade-in{0%{opacity:0}to{opacity:1}}.install-modal{animation:install-modal-pop .22s ease-out;background:#fff;border-radius:18px;box-shadow:0 20px 60px #00000040;padding:20px;width:min(440px,100%)}@keyframes install-modal-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.install-modal-header{align-items:center;display:flex;gap:12px;margin-bottom:14px;padding-right:28px;position:relative}.install-modal-icon{border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:12px;flex-shrink:0;height:52px;object-fit:cover;width:52px}.install-modal-header h3{color:#1a2e22;color:var(--text-primary);font-size:1.05rem;font-weight:700;margin:0}.install-modal-header p{color:#7a9b85;color:var(--text-muted);font-size:.82rem;margin:2px 0 0}.install-modal-close{background:#0000;border:none;border-radius:50%;color:#7a9b85;color:var(--text-muted);cursor:pointer;font-size:22px;height:30px;line-height:1;position:absolute;right:-4px;top:-4px;width:30px}.install-modal-close:hover{background:#d6eddf;background:var(--bg-hover);color:#1a2e22;color:var(--text-primary)}.install-steps{display:flex;flex-direction:column;gap:10px;list-style:none;margin:4px 0 0;padding:0}.install-steps li{align-items:center;background:#e4f3eb;background:var(--bg-secondary);border:1px solid #c5e1cf;border:1px solid var(--border-color);border-radius:12px;color:#3d5c47;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:.9rem;gap:10px;line-height:1.5;padding:12px 14px}.install-step-badge{align-items:center;background:#2ecc71;background:var(--accent-primary);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:.8rem;font-weight:700;height:24px;justify-content:center;width:24px}.install-steps strong{color:#1a2e22;color:var(--text-primary)}.ios-share-icon{align-items:center;background:#3498db;background:var(--accent-blue);border-radius:6px;color:#fff;display:inline-flex;font-size:.95rem;height:24px;justify-content:center;line-height:1;margin:0 2px;vertical-align:middle;width:24px}@media (max-width:480px){.install-banner{gap:10px;padding:10px 12px}.install-banner-icon{height:40px;width:40px}.install-banner-text strong{font-size:.9rem}.install-banner-text span{font-size:.72rem}.install-btn-primary{font-size:.8rem;padding:7px 12px}}
/*# sourceMappingURL=main.1b310951.css.map*/