*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}.landing-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;max-width:1200px;margin:0 auto}.landing-header{text-align:center;margin-bottom:3rem;animation:fadeIn .8s ease-out}.logo{width:150px;height:150px;border-radius:50%;object-fit:cover;margin-bottom:1.5rem;box-shadow:0 10px 30px #0003;border:5px solid white}.landing-header h1{color:#1f2937;font-size:2.5rem;margin-bottom:.5rem;font-weight:700}.subtitle{color:#6b7280;font-size:1.2rem;font-weight:300}.apps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;max-width:1000px;width:100%;margin-bottom:3rem}.app-card{background:#fff;border-radius:20px;padding:2rem;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;box-shadow:0 4px 15px #0000001a;border-top:4px solid var(--accent-color);animation:slideUp .6s ease-out forwards;opacity:0}.app-card:nth-child(1){animation-delay:.1s}.app-card:nth-child(2){animation-delay:.2s}.app-card:nth-child(3){animation-delay:.3s}.app-card:nth-child(4){animation-delay:.4s}.app-card.clickable{cursor:pointer}.app-card.clickable:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.app-card.disabled{opacity:.7;cursor:not-allowed}.app-card.disabled:hover{transform:none;box-shadow:0 4px 15px #0000001a}.app-icon{font-size:3rem;margin-bottom:1rem;background:linear-gradient(135deg,var(--accent-color),var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:brightness(1.2)}.app-card h3{color:#2d3748;font-size:1.5rem;margin-bottom:.5rem;font-weight:600}.app-card p{color:#718096;font-size:.95rem;line-height:1.5}.landing-footer{color:#6b7280;text-align:center;font-size:1rem;animation:fadeIn 1s ease-out .5s forwards;opacity:0}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.landing-header h1{font-size:2rem}.apps-grid{grid-template-columns:1fr;gap:1.5rem}.logo{width:120px;height:120px}}.bill-details-overlay{position:fixed;inset:0;background:#00000080;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000}.bill-details-overlay.open{opacity:1;visibility:visible}.bill-details-panel{position:fixed;right:-600px;top:0;bottom:0;width:600px;background:#fff;box-shadow:-2px 0 8px #0000001a;transition:right .3s ease;z-index:1001;display:flex;flex-direction:column;overflow:hidden}.bill-details-panel.open{right:0}.panel-header{padding:1.5rem;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;background:#f9fafb}.panel-header h2{margin:0;font-size:1.5rem;color:#1f2937;flex:1}.close-button,.back-button{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:6px;transition:all .2s}.back-button{margin-right:1rem}.close-button:hover,.back-button:hover{background:#e5e7eb;color:#374151}.bill-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.overview-card{background:#f9fafb;padding:1rem;border-radius:8px;display:flex;flex-direction:column;gap:.5rem}.overview-card svg{color:#6366f1;margin-bottom:.5rem}.overview-card p{margin:0;font-size:.75rem;color:#6b7280;text-transform:uppercase;font-weight:500}.overview-card h3{margin:0;font-size:1.125rem;color:#1f2937}.due-status{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;display:inline-block;margin-top:.25rem}.due-status.overdue{background:#fee2e2;color:#dc2626}.due-status.soon{background:#fef3c7;color:#f59e0b}.amount{font-size:.875rem;color:#6b7280}.time-range-selector{display:flex;gap:.5rem;margin-bottom:2rem;background:#f3f4f6;padding:.25rem;border-radius:8px}.time-range-selector button{flex:1;padding:.5rem;border:none;background:none;border-radius:6px;cursor:pointer;font-size:.875rem;color:#4b5563;transition:all .2s}.time-range-selector button:hover{background:#ffffff80}.time-range-selector button.active{background:#fff;color:#1f2937;box-shadow:0 1px 3px #0000001a;font-weight:500}.statistics-section{margin-bottom:2rem}.statistics-section h3{margin:0 0 1rem;font-size:1rem;color:#374151}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card{background:#f9fafb;padding:1rem;border-radius:8px;border:1px solid #e5e7eb}.stat-card p{margin:0 0 .5rem;font-size:.75rem;color:#6b7280;text-transform:uppercase}.stat-card h4{margin:0;font-size:1.25rem;color:#1f2937}.payment-chart{margin-bottom:2rem}.payment-chart h3{margin:0 0 1rem;font-size:1rem;color:#374151}.payment-history{margin-bottom:2rem}.payment-history h3{margin:0 0 1rem;font-size:1rem;color:#374151}.no-history{text-align:center;color:#9ca3af;padding:2rem;background:#f9fafb;border-radius:8px}.history-list{display:flex;flex-direction:column;gap:.5rem}.history-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f9fafb;border-radius:6px;transition:background .2s}.history-item:hover{background:#f3f4f6}.history-date{display:flex;align-items:center;gap:.5rem;color:#4b5563;font-size:.875rem}.history-date svg{color:#9ca3af}.history-amount{font-weight:600;color:#1f2937}.panel-actions{padding:1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.pay-now-button{width:100%;padding:.75rem 1rem;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.pay-now-button:hover{background:#059669;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.panel-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#f3f4f6;padding:.25rem;border-radius:8px}.panel-tabs .tab-button{flex:1;padding:.75rem 1rem;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;color:#6b7280;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.panel-tabs .tab-button:hover{background:#ffffff80;color:#374151}.panel-tabs .tab-button.active{background:#fff;color:#374151;font-weight:500;box-shadow:0 1px 3px #0000001a}.bill-details-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:500;color:#374151}.form-group input,.form-group select,.form-group textarea{padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;transition:all .2s;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.url-input-group{display:flex;gap:.5rem;align-items:center}.url-input-group input{flex:1}.url-link{padding:.5rem;color:#6366f1;transition:all .2s}.url-link:hover{color:#4f46e5}.checkbox-group{margin-top:.5rem}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.source-manage-btn{padding:.5rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.source-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-weight:500;color:#374151}.close-manager-btn{background:none;border:none;padding:.25rem;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .2s}.close-manager-btn:hover{background:#e5e7eb;color:#374151}.no-sources{text-align:center;color:#9ca3af;font-size:.875rem;padding:1rem}@media (max-width: 768px){.bill-details-panel{width:100%;max-width:100%;right:-100%}.bill-details-panel.open{right:0}.panel-header{padding:1rem}.panel-header h2{font-size:1.25rem}.back-button{padding:.375rem;margin-right:.5rem}.panel-content{padding:1rem}.bill-overview{grid-template-columns:1fr 1fr;gap:.75rem}.overview-card{padding:.75rem}.time-range-selector{flex-wrap:wrap}.time-range-selector button{min-width:calc(50% - .25rem);font-size:.875rem;padding:.5rem}.form-row{grid-template-columns:1fr}}.import-history-modal{background:#fff;border-radius:16px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.modal-info{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#e0e7ff;color:#4c51bf;margin:0 1.5rem 1.5rem;border-radius:8px}.modal-info p{margin:0;font-size:.875rem}.import-list{flex:1;overflow:auto;padding:0 1.5rem;margin-bottom:1rem}.import-list table{width:100%;border-collapse:collapse}.import-list th{text-align:left;padding:.75rem;border-bottom:2px solid #e2e8f0;font-weight:600;color:#4a5568;font-size:.875rem;position:sticky;top:0;background:#fff}.import-list td{padding:.75rem;border-bottom:1px solid #e2e8f0}.import-list tr.selected{background:#f0f4ff}.import-list tr:hover{background:#f7fafc}.import-list tr.selected:hover{background:#e0e7ff}.bill-name{font-weight:500;color:#2d3748}.date-input,.amount-input{width:100%;padding:.5rem;border:2px solid #e2e8f0;border-radius:6px;font-size:.875rem;transition:all .3s}.date-input:focus,.amount-input:focus{outline:none;border-color:#667eea;background:#f8f9ff}.import-summary{font-weight:600;color:#4a5568}.import-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.import-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.import-results{padding:3rem 1.5rem;text-align:center}.success-message,.error-message{display:flex;flex-direction:column;align-items:center;gap:1rem}.success-message{color:#22c55e}.error-message{color:#ef4444}.success-message h3,.error-message h3{margin:0;font-size:1.5rem}.success-message p,.error-message p{margin:0;color:#4a5568}.error-list{margin-top:1rem;padding:1rem;background:#fee;border-radius:8px;text-align:left;max-height:200px;overflow:auto}.error-item{padding:.25rem 0;font-size:.875rem;color:#991b1b}.close-button-bottom{margin-top:2rem;padding:.75rem 2rem;background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.close-button-bottom:hover{background:#e2e8f0}@media (max-width: 768px){.import-history-modal{max-height:100vh;border-radius:0}.import-list{padding:0 1rem}.import-list table{font-size:.875rem}.import-list th,.import-list td{padding:.5rem .25rem}}.add-bill-modal{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003;overflow:hidden}.bill-form{flex:1;padding:1.5rem;overflow-y:auto}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon svg{position:absolute;left:.75rem;color:#718096;pointer-events:none}.input-with-icon input{padding-left:2.5rem!important}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;margin:0}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.pay-bill-modal{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:400px;width:90%;max-height:90vh;overflow:auto}.pay-bill-modal .modal-header{padding:20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.pay-bill-modal .modal-header h3{margin:0;font-size:18px;font-weight:600;color:#111827;display:flex;align-items:center;gap:8px}.pay-bill-modal .close-button{background:none;border:none;padding:4px;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .2s}.pay-bill-modal .close-button:hover{background-color:#f3f4f6;color:#111827}.pay-bill-modal .modal-body{padding:20px}.pay-bill-modal .bill-info{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f9fafb;border-radius:6px;margin-bottom:20px}.pay-bill-modal .bill-info strong{color:#111827;font-size:16px}.pay-bill-modal .amount{font-size:18px;font-weight:600;color:#059669}.pay-bill-modal .date-selection{display:flex;flex-direction:column;gap:8px}.pay-bill-modal .date-selection label{font-size:14px;font-weight:500;color:#374151}.pay-bill-modal .date-input-container{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;background-color:#fff;transition:all .2s}.pay-bill-modal .date-input-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.pay-bill-modal .date-input-container svg{color:#6b7280}.pay-bill-modal .date-input{flex:1;border:none;background:none;outline:none;font-size:15px;color:#111827}.pay-bill-modal .help-text{font-size:13px;color:#6b7280;font-style:italic}.pay-bill-modal .account-selection{display:flex;flex-direction:column;gap:8px;margin-top:16px}.pay-bill-modal .account-selection label{font-size:14px;font-weight:500;color:#374151}.pay-bill-modal .account-select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;background-color:#fff;font-size:14px;color:#111827;cursor:pointer;transition:all .2s}.pay-bill-modal .account-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.pay-bill-modal .account-select:hover{border-color:#9ca3af}.pay-bill-modal .modal-footer{padding:16px 20px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.pay-bill-modal .cancel-button{padding:8px 16px;border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.pay-bill-modal .cancel-button:hover{background-color:#f9fafb;border-color:#9ca3af}.pay-bill-modal .pay-button{padding:8px 16px;border:none;background:#10b981;color:#fff;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.pay-bill-modal .pay-button:hover{background:#059669}.finance-container{min-height:100vh;background:#f9fafb}.finance-content-wrapper{max-width:1200px;margin:0 auto;padding:0 1rem 2rem}.finance-header{background:#fff;padding:1.5rem 0;margin-bottom:1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.finance-header h1{margin:0;font-size:1.75rem;color:#1f2937;font-weight:700}.sync-status{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280}.header-actions{display:flex;align-items:center;gap:1.5rem}.database-status{display:flex;align-items:center;gap:.5rem}.database-badge{background:#10b981;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.auth-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;cursor:pointer;transition:all .2s}.auth-button:hover{background:#f3f4f6;border-color:#d1d5db;color:#111827}.auth-button.signed-in{background:#3b82f6;color:#fff;border-color:#3b82f6}.auth-button.signed-in:hover{background:#e5e7eb;border-color:#e5e7eb;color:#111827}.sync-status svg{flex-shrink:0}.sync-status svg.spinning{animation:spin 1s linear infinite}.finance-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1.5rem}.summary-card{background:#fff;padding:1.25rem;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;align-items:center;gap:1rem;transition:transform .2s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.summary-card svg{color:#6366f1;flex-shrink:0}.summary-card.income svg{color:#059669}.summary-card.expense svg{color:#ef4444}.summary-card.net svg{color:#3b82f6}.summary-card.runway svg{color:#8b5cf6}.summary-card div{flex:1}.summary-card p{margin:0;font-size:.875rem;color:#6b7280}.summary-card h3{margin:.25rem 0 0;font-size:1.25rem;color:#1f2937}.summary-card h3.positive{color:#059669}.summary-card h3.negative{color:#ef4444}.finance-controls{background:#fff;padding:1.5rem;margin-bottom:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000000d}.cash-input{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.cash-input label{font-weight:500;color:#374151}.cash-input input{flex:1;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:border-color .2s}.cash-input input:focus{outline:none;border-color:#6366f1}.action-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.action-buttons button,.import-button{padding:.5rem 1rem;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:.875rem;display:flex;align-items:center;gap:.5rem;transition:all .2s;min-height:44px}.action-buttons button:hover,.import-button:hover{background:#f3f4f6;border-color:#d1d5db}.share-button{background:#dbeafe!important;color:#2563eb;border-color:#bfdbfe!important}.share-button:hover{background:#bfdbfe!important}.clear-button{background:#fee2e2!important;color:#dc2626;border-color:#fecaca!important}.clear-button:hover{background:#fecaca!important}.share-status{margin-top:1rem;padding:.75rem 1rem;background:#d1fae5;color:#065f46;border-radius:8px;display:flex;align-items:center;gap:.5rem;font-size:.875rem;animation:fadeIn .3s ease-out}.finance-content{display:grid;grid-template-columns:1fr;gap:1.5rem}.data-section h2{font-size:1.25rem;margin:0 0 1rem;color:#1f2937}.category-section{background:#fff;border-radius:12px;margin-bottom:1rem;overflow:hidden;box-shadow:0 2px 8px #0000000d}.category-header{padding:1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-left:4px solid;transition:background .2s}.category-header:hover{background:#f9fafb}.category-info{display:flex;align-items:center;gap:1rem;flex:1}.category-name{font-weight:600;color:#1f2937}.category-count{color:#6b7280;font-size:.875rem}.category-total{margin-left:auto;font-weight:500;color:#374151}.category-content{border-top:1px solid #e5e7eb;padding:1rem}.items-table{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.item-row{display:grid;grid-template-columns:1fr 1fr auto auto auto auto;gap:.75rem;align-items:center;padding:.75rem;background:#f9fafb;border-radius:8px}.item-row.income{background:#f0fdf4}.item-row.expense{background:#fef2f2}.item-row input,.item-row select{padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;background:#fff}.item-row input:focus,.item-row select:focus{outline:none;border-color:#6366f1}.monthly-cost{font-weight:500;color:#374151;white-space:nowrap}.delete-button{background:#fee2e2;border:none;color:#dc2626;padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.add-item-form{display:grid;grid-template-columns:1fr 1fr auto auto auto;gap:.75rem;align-items:center;padding:.75rem;background:#f3f4f6;border-radius:8px;border:2px dashed #d1d5db}.add-item-form input,.add-item-form select{padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;background:#fff}.add-button{background:#dbeafe;border:none;color:#1d4ed8;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;font-weight:500;min-height:44px}.add-button:hover{background:#bfdbfe}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem}.chart-card{background:#fff;padding:1.5rem;border-radius:12px;margin-bottom:1rem;box-shadow:0 2px 8px #0000000d}.chart-card h3{margin:0 0 1rem;font-size:1.125rem;color:#1f2937}.top-categories{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000000d}.top-categories h3{margin:0 0 1rem;font-size:1.125rem;color:#1f2937}.category-item{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid #f3f4f6}.category-item:last-child{border-bottom:none}.category-indicator{width:12px;height:12px;border-radius:2px;flex-shrink:0}.category-item .category-name{flex:1;font-weight:500;color:#374151}.category-amount{font-weight:600;color:#1f2937}.category-percentage{color:#6b7280;font-size:.875rem;min-width:50px;text-align:right}@media (min-width: 1200px){.finance-content{grid-template-columns:2fr 1fr}.data-section{grid-column:1}.charts-section{grid-column:2;grid-template-columns:1fr}}.notifications-container{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.notification{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;animation:slideIn .3s ease-out}.notification.warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.notification svg{flex-shrink:0}.notification-dismiss{margin-left:auto;background:transparent;border:none;font-size:1.25rem;color:inherit;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.notification-dismiss:hover{background:#0000001a}@keyframes slideIn{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.finance-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#fff;padding:.5rem;border-radius:12px;box-shadow:0 2px 8px #0000000d}.tab-button{flex:1;padding:.75rem 1.5rem;border:none;background:transparent;color:#6b7280;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s;font-size:.95rem}.tab-button:hover{background:#f3f4f6;color:#374151}.tab-button.active{background:#6366f1;color:#fff}.import-dialog{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:2rem;text-align:center}.import-dialog h3{margin:0 0 1rem;font-size:1.25rem;color:#1f2937}.import-dialog p{margin:0 0 1.5rem;color:#6b7280}.import-options{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.import-button{padding:.75rem 1.5rem;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:.875rem;display:flex;align-items:center;gap:.5rem;transition:all .2s}.import-button.primary{background:#6366f1;color:#fff;border-color:#6366f1}.import-button.primary:hover{background:#4f46e5}.import-button.secondary{color:#6b7280}.import-button:hover{background:#f3f4f6;border-color:#d1d5db}.bills-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1.5rem}.bills-summary .summary-card.overdue svg{color:#ef4444}.bills-summary .summary-card.upcoming svg{color:#f59e0b}@media (max-width: 768px){.finance-container{width:100%;max-width:100vw;overflow-x:hidden}.finance-content-wrapper{padding:0 .5rem 2rem;max-width:100vw;overflow-x:hidden}.finance-header{padding:1rem .5rem;flex-direction:column;gap:.75rem;align-items:stretch}.finance-header h1{font-size:1.5rem}.header-actions{flex-direction:column;gap:.75rem}.database-status,.auth-button{width:100%;justify-content:center}.sync-status{font-size:.75rem;justify-content:center}.finance-summary{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.summary-card{padding:.75rem;flex-direction:column;text-align:center;min-width:0}.summary-card svg{width:20px;height:20px}.summary-card h3{font-size:1rem;word-break:break-word}.summary-card p{font-size:.7rem}.finance-controls{padding:.75rem;margin-bottom:1rem}.cash-input{flex-direction:column;align-items:stretch;gap:.5rem}.cash-input label{font-size:.875rem}.cash-input input{width:100%}.action-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.action-buttons button,.import-button{font-size:.75rem;padding:.5rem;min-height:36px}.finance-tabs{padding:.25rem;margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-button{padding:.5rem .75rem;font-size:.8rem;white-space:nowrap;min-width:fit-content}.category-section{margin-bottom:.75rem}.category-header,.category-content{padding:.75rem}.item-row{grid-template-columns:1fr;gap:.5rem;padding:.5rem}.item-row input,.item-row select{width:100%;font-size:.75rem;padding:.375rem}.monthly-cost{text-align:right;padding:.375rem;background:#0000000d;border-radius:6px;font-size:.75rem}.delete-button{width:100%;min-height:36px}.add-item-form{grid-template-columns:1fr;padding:.5rem;gap:.5rem}.add-button{width:100%;justify-content:center;min-height:36px}.category-info{flex-wrap:wrap}.category-name{font-size:.875rem}.category-count{font-size:.75rem}.category-total{margin-left:0;width:100%;margin-top:.25rem;font-size:.875rem}.charts-section{grid-template-columns:1fr;gap:1rem}.chart-card{padding:1rem}.chart-card h3{font-size:1rem}.top-categories{padding:1rem}.top-categories h3{font-size:1rem}.category-item{padding:.5rem 0}.category-item .category-name{font-size:.8rem}.category-amount{font-size:.875rem}.category-percentage{font-size:.75rem;min-width:40px}.bills-summary{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}.import-dialog{padding:1.5rem 1rem}.import-options{flex-direction:column}.import-button{width:100%;justify-content:center}*{max-width:100vw}.finance-content{grid-template-columns:1fr;gap:1rem}.data-section{width:100%;overflow-x:hidden}}.budget-container{padding:20px;max-width:1400px;margin:0 auto}.budget-status-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px}.budget-month-selector{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.budget-month-selector button{background:#f5f5f5;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:18px;transition:background-color .2s}.budget-month-selector button:hover{background:#e0e0e0}.budget-month-selector h3{margin:0;font-size:20px;font-weight:600}.budget-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:20px}.budget-stat{text-align:center}.stat-label{display:block;font-size:12px;color:#666;text-transform:uppercase;margin-bottom:4px}.stat-value{display:block;font-size:20px;font-weight:600;color:#333}.stat-value.negative{color:#ef4444}.budget-progress-bar{width:100%;height:24px;background:#f0f0f0;border-radius:12px;overflow:hidden;margin-bottom:16px}.budget-progress-fill{height:100%;transition:width .3s ease,background-color .3s ease}.budget-alerts{margin-bottom:12px}.alert{display:flex;align-items:center;gap:8px;padding:12px;border-radius:8px;font-size:14px}.alert-danger{background:#fee;color:#dc2626;border:1px solid #fcc}.alert-warning{background:#fef3c7;color:#d97706;border:1px solid #fde68a}.category-quick-view{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}.quick-category{background:#fff;padding:12px;border-radius:8px;border:1px solid #e0e0e0;display:flex;flex-direction:column;gap:4px}.category-name{font-size:14px;font-weight:500;color:#333}.category-remaining{font-size:12px;color:#22c55e;font-weight:600}.category-remaining.over{color:#ef4444}.budget-categories-grid{margin-bottom:32px}.budget-categories-grid h3{margin-bottom:16px;font-size:18px;font-weight:600}.categories-header-actions{display:flex;align-items:center;gap:12px}.view-toggle{display:flex;background:#f3f4f6;border-radius:6px;padding:2px}.view-toggle-btn{display:flex;align-items:center;justify-content:center;padding:6px 8px;background:transparent;border:none;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s ease}.view-toggle-btn:hover{color:#374151}.view-toggle-btn.active{background:#fff;color:#3b82f6;box-shadow:0 1px 2px #0000001a}.categories-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.categories-header h3{margin:0}.manage-categories-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;font-weight:500;color:#666;cursor:pointer;transition:all .2s}.manage-categories-btn:hover{background:#e8e8e8;color:#333}.category-manager-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.categories-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.categories-list.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media (max-width: 1200px){.categories-list.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.categories-list.grid{grid-template-columns:1fr}}.categories-list.list{display:flex;flex-direction:column;gap:12px}.budget-category-card{background:#fff;padding:16px;border-radius:8px;border:1px solid #e0e0e0;transition:box-shadow .2s}.budget-category-card.grid{display:flex;flex-direction:column;height:100%;min-height:180px}.budget-category-card:hover{box-shadow:0 4px 8px #0000001a}.budget-category-card.clickable{cursor:pointer}.budget-category-card.clickable:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.budget-category-card.list{display:flex;align-items:center;padding:12px 16px}.budget-category-card.list .category-header{display:flex;align-items:center;justify-content:flex-start;margin-bottom:0;flex:0 0 200px}.budget-category-card.list .category-header h4{margin:0 12px 0 0}.budget-category-card.list .category-amounts{display:flex;align-items:center;justify-content:flex-end;flex:0 0 150px;margin:0 20px 0 0;font-size:14px}.budget-category-card.list .category-progress{flex:1;max-width:200px;margin:0 20px}.budget-category-card.list .category-badge{margin-left:auto;flex:0 0 auto}.budget-category-card .category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.budget-category-card h4{margin:0;font-size:16px;font-weight:500}.category-badge{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600}.category-badge.good{background:#d1fae5;color:#065f46}.category-badge.warning{background:#fef3c7;color:#92400e}.category-badge.over{background:#fee2e2;color:#991b1b}.category-amounts{display:flex;align-items:baseline;gap:6px;margin-bottom:8px;font-size:14px}.category-amounts .spent{font-weight:600;color:#333}.category-amounts .of{color:#999;font-size:12px}.category-amounts .budget{color:#666}.category-progress{height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.category-progress .progress-fill{height:100%;transition:width .3s ease}.recent-expenses{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 4px #0000001a}.recent-expenses h3{margin:0 0 16px;font-size:18px;font-weight:600}.expenses-list{display:flex;flex-direction:column;gap:12px}.expense-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f9f9f9;border-radius:8px;transition:background-color .2s}.expense-info{display:flex;flex-direction:column;gap:4px}.expense-description{font-size:14px;font-weight:500;color:#333}.expense-date{font-size:12px;color:#999}.expense-amount{font-size:16px;font-weight:600;color:#ef4444}.migration-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;margin:20px;overflow:hidden;box-shadow:0 4px 12px #667eea4d;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.migration-header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid rgba(255,255,255,.2)}.migration-header h3{flex:1;margin:0;font-size:20px;font-weight:600}.migration-close{background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.migration-close:hover{background:#fff3}.migration-content{padding:20px}.migration-content p{margin:0 0 20px;opacity:.95}.migration-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;background:#ffffff1a;padding:16px;border-radius:8px;margin-bottom:20px}.preview-stat{text-align:center}.preview-stat .stat-label{display:block;font-size:12px;opacity:.8;text-transform:uppercase;margin-bottom:4px}.preview-stat .stat-value{display:block;font-size:24px;font-weight:600}.migration-categories{margin-bottom:20px}.migration-categories h4{margin:0 0 12px;font-size:14px;text-transform:uppercase;opacity:.9}.migration-categories .category-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto;background:#ffffff1a;padding:12px;border-radius:8px}.category-item{display:flex;align-items:center;gap:12px;padding:8px;background:#ffffff1a;border-radius:6px;font-size:14px}.category-item .category-name{flex:1;font-weight:500}.category-item .category-amount{font-weight:600}.category-item .category-items{opacity:.8;font-size:12px}.migration-actions{display:flex;gap:12px;justify-content:flex-end}.migration-cancel,.migration-confirm{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.migration-cancel{background:#fff3;color:#fff}.migration-cancel:hover{background:#ffffff4d}.migration-confirm{background:#fff;color:#667eea}.migration-confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0003}.migration-confirm:disabled{opacity:.7;cursor:not-allowed}.migration-confirm .spinner{animation:spin 1s linear infinite}.migration-result{margin:20px;padding:20px;border-radius:12px;animation:slideDown .3s ease}.migration-result.success{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.migration-result.error{background:linear-gradient(135deg,#f56565,#ed64a6);color:#fff}.result-content{text-align:center}.result-icon{font-size:48px;margin-bottom:12px}.result-content h3{margin:0 0 8px;font-size:24px}.result-content p{margin:0;opacity:.95}@media (max-width: 768px){.budget-container{padding:12px}.budget-status-card{padding:16px}.budget-month-selector h3{font-size:16px}.categories-list{grid-template-columns:1fr}.categories-header{flex-direction:column;align-items:flex-start;gap:12px}.categories-header-actions{width:100%;justify-content:space-between}.budget-category-card.list{flex-direction:column;align-items:stretch;padding:16px}.budget-category-card.list .category-header{flex:none;justify-content:space-between;margin-bottom:8px}.budget-category-card.list .category-amounts{flex:none;justify-content:space-between;margin:8px 0}.budget-category-card.list .category-progress{flex:none;max-width:none;margin:8px 0 0}.budget-category-card.list .category-badge{margin-left:0}.migration-banner{margin:12px}.migration-header{padding:16px}.migration-header h3{font-size:16px}.migration-content{padding:16px}.migration-actions{flex-direction:column}.migration-cancel,.migration-confirm{width:100%;justify-content:center}}input[type=date]:disabled::-webkit-calendar-picker-indicator{display:none}input[type=date]:disabled::-webkit-inner-spin-button{display:none}.bills-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.bills-header h2{margin:0;color:#2d3748;font-size:1.75rem}.header-actions{display:flex;gap:.75rem;align-items:center}.add-bill-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s}.add-bill-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem;color:#6b7280}.error-state{color:#ef4444}.error-state button{padding:.5rem 1rem;background:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer}.error-state button:hover{background:#dc2626}.bills-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.view-toggle{display:flex;gap:.5rem}.view-toggle button{padding:.5rem 1rem;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:.875rem;display:flex;align-items:center;gap:.5rem;transition:all .2s}.view-toggle button.active{background:#6366f1;color:#fff;border-color:#6366f1}.view-toggle button:hover:not(.active){background:#f3f4f6}.condensed-view{background:#fff;border-radius:12px;overflow-x:auto;overflow-y:visible;box-shadow:0 2px 8px #0000000d}.bills-table-condensed{width:100%;border-collapse:collapse;table-layout:fixed}.bills-table-condensed th{background:#f9fafb;padding:.75rem;text-align:left;font-weight:600;color:#374151;font-size:.875rem;border-bottom:2px solid #e5e7eb}.bills-table-condensed th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.bills-table-condensed th.sortable:hover{background:#f3f4f6}.bills-table-condensed th:nth-child(1){width:14%;min-width:120px}.bills-table-condensed th:nth-child(2){width:10%}.bills-table-condensed th:nth-child(3){width:8%;text-align:right}.bills-table-condensed th:nth-child(4){width:11%;min-width:125px}.bills-table-condensed th:nth-child(5){width:9%;min-width:80px}.bills-table-condensed th:nth-child(6){width:10%;min-width:125px}.bills-table-condensed th:nth-child(7){width:8%;text-align:right}.bills-table-condensed th:nth-child(8){width:15%;min-width:140px}.bills-table-condensed th:nth-child(9){width:5%;text-align:center}.bills-table-condensed th:nth-child(10){width:10%}.bills-table-condensed td{padding:.75rem;border-bottom:1px solid #f3f4f6;font-size:.875rem;position:relative}.bills-table-condensed td:nth-child(3),.bills-table-condensed td:nth-child(7){text-align:right}.bills-table-condensed td:nth-child(9){text-align:center}.auto-cell{text-align:center}.auto-checkbox{cursor:pointer}.inline-edit-input{width:100%;padding:.25rem .5rem;border:1px solid transparent;background:transparent;border-radius:4px;font-size:.875rem;transition:all .2s}.inline-edit-input:hover{background:#f9fafb;border-color:#e5e7eb}.inline-edit-input:focus{outline:none;background:#fff;border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.inline-edit-input[type=number]{text-align:right;max-width:100px}.inline-edit-input.date-input{width:100%;max-width:150px;cursor:pointer;padding:4px 8px;position:relative;display:block;text-align:left}.inline-edit-input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity .2s;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px}.inline-edit-input[type=date]{position:relative;padding-right:35px}.inline-edit-input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.bills-table-condensed tbody tr{transition:background-color .2s}.bills-table-condensed tbody tr:hover{background:#f3f4f6;cursor:pointer}.bills-table-condensed tr.due-soon{background:#fef3c7}.bills-table-condensed tr.due-today,.bills-table-condensed tr.overdue{background:#fee2e2}.bill-name-compact{display:flex;align-items:center;gap:.5rem;max-width:100%}.bill-name-compact span,.bill-name-compact a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 20px)}.bill-name-link{color:#1f2937;text-decoration:none;transition:color .2s;font-weight:500}.bill-name-link:hover{color:#6366f1;text-decoration:underline}.details-icon-button{background:none;border:none;padding:.25rem;cursor:pointer;color:#6366f1;display:flex;align-items:center;transition:all .2s;opacity:.7}.details-icon-button:hover{opacity:1;transform:scale(1.1)}.bill-name-clickable{color:#6366f1;cursor:pointer;transition:all .2s;font-weight:500}.bill-name-clickable:hover{color:#4f46e5;text-decoration:underline}.category-badge{padding:.25rem .5rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:500;display:inline-block}.due-in-cell{font-weight:500}.bills-table-condensed tr.overdue .due-in-cell{color:#dc2626}.menu-button{background:none;border:1px solid #e5e7eb;border-radius:6px;padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.menu-button:hover{background:#f9fafb;border-color:#d1d5db}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;min-width:200px;z-index:1000}.dropdown-menu button,.dropdown-menu .menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;background:none;cursor:pointer;text-align:left;font-size:.875rem;color:#374151;transition:background .2s}.dropdown-menu button:hover,.dropdown-menu .menu-item:hover{background:#f9fafb}.dropdown-menu button:first-child{border-radius:8px 8px 0 0}.dropdown-menu button:last-child{border-radius:0 0 8px 8px}.bills-table-condensed tr.due-soon .due-in-cell{color:#f59e0b}.table-actions{display:flex;gap:.25rem}.pay-button-small,.delete-button-small{padding:.25rem .5rem;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;transition:all .2s}.pay-button-small{background:#d1fae5;color:#059669}.pay-button-small:hover{background:#a7f3d0}.delete-button-small{background:#fee2e2;color:#dc2626;display:flex;align-items:center;justify-content:center}.delete-button-small:hover{background:#fecaca}.detailed-view,.bills-list{display:flex;flex-direction:column;gap:1rem}.bill-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000d;transition:all .2s}.bill-card:hover{box-shadow:0 4px 12px #0000001a}.bill-card.due-soon{background:#fef3c7}.bill-card.due-today{background:#fee2e2}.bill-card.overdue{background:#fee2e2;border:1px solid #fecaca}.bill-main-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.bill-name-section{display:flex;align-items:center;gap:.75rem;flex:1}.bill-name-input{font-size:1.125rem;font-weight:600;border:none;background:transparent;flex:1;color:#1f2937}.bill-name-input:focus{outline:none;border-bottom:2px solid #6366f1}.view-details-button{background:#6366f1;color:#fff;border:none;padding:.5rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .2s}.view-details-button:hover{background:#4f46e5;transform:translateY(-1px)}.due-status{font-weight:600;font-size:.875rem;padding:.5rem 1rem;border-radius:8px;background:#0000000d}.bill-card.overdue .due-status{background:#dc2626;color:#fff}.bill-card.due-today .due-status{background:#ef4444;color:#fff}.bill-card.due-soon .due-status{background:#f59e0b;color:#fff}.bill-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.bill-field{display:flex;flex-direction:column;gap:.25rem}.bill-field.full-width{grid-column:1 / -1}.bill-field label{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase}.bill-field input,.bill-field select,.bill-field textarea{padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;background:#fff;transition:border-color .2s}.bill-field input:focus,.bill-field select:focus,.bill-field textarea:focus{outline:none;border-color:#6366f1}.readonly-field{padding:.5rem;background:#f9fafb;border-radius:6px;font-size:.875rem;color:#374151}.bill-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #e5e7eb}.pay-button,.delete-button{padding:.5rem 1rem;border:none;border-radius:8px;cursor:pointer;font-size:.875rem;display:flex;align-items:center;gap:.5rem;transition:all .2s;font-weight:500}.pay-button{background:#10b981;color:#fff}.pay-button:hover{background:#059669}.delete-button{background:#fee2e2;color:#dc2626}.delete-button:hover{background:#fecaca}.add-bill-card{background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;padding:1.5rem}.add-bill-card h4{margin:0 0 1rem;color:#374151;font-size:1rem}.add-bill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.add-bill-grid input,.add-bill-grid select{padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;background:#fff}@media (max-width: 768px){.my-bills,.bills-container{width:100%;max-width:100vw;overflow-x:hidden;padding:.5rem}.bills-header{flex-direction:column;gap:1rem;align-items:stretch;margin-bottom:1rem}.bills-header h2{font-size:1.5rem}.header-actions{width:100%;justify-content:stretch}.add-bill-button{width:100%;justify-content:center}.bills-controls{flex-direction:column;align-items:stretch}.view-toggle{width:100%}.view-toggle button{flex:1}.condensed-view{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100vw}.bills-table-condensed{min-width:auto;width:100%}.bills-table-condensed th,.bills-table-condensed td{padding:.5rem .25rem;font-size:.75rem}.bills-table-condensed th:nth-child(1),.bills-table-condensed td:nth-child(1){width:28%;min-width:80px}.bills-table-condensed th:nth-child(2),.bills-table-condensed td:nth-child(2){width:22%}.bills-table-condensed th:nth-child(3),.bills-table-condensed td:nth-child(3){width:20%;text-align:right}.bills-table-condensed th:nth-child(4),.bills-table-condensed td:nth-child(4){width:18%;font-size:.7rem}.bills-table-condensed th:nth-child(5),.bills-table-condensed td:nth-child(5){width:12%;text-align:center}.bill-name-compact{gap:.25rem}.bill-name-compact a,.bill-name-compact span{font-size:.75rem;display:block;max-width:100%}.category-badge{padding:.125rem .375rem;font-size:.625rem;display:inline-block}.pay-button-small{padding:.25rem .375rem;font-size:.625rem}.details-icon-button{margin-top:.25rem}.bills-summary{flex-direction:column;gap:.75rem}.summary-card{padding:.75rem}.bill-details-grid,.add-bill-grid{grid-template-columns:1fr}.table-actions{justify-content:center}.inline-edit-input{font-size:.75rem;padding:.25rem}.currency-display{font-size:.75rem}.bill-actions{flex-direction:column}.pay-button,.delete-button{width:100%;justify-content:center}.table-actions{flex-direction:column;gap:.5rem}.pay-button-small,.delete-button-small{width:100%;font-size:.75rem;padding:.375rem}.inline-edit-input{font-size:.875rem;padding:.25rem}.date-input{width:100%}.bills-table-condensed tbody tr{transition:background-color .2s}.bills-table-condensed tbody tr:active{background-color:#6366f10d}}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox]{width:auto;margin:0;cursor:pointer}.source-input-group{display:flex;gap:.5rem}.source-input-group select{flex:1}.source-manage-btn{padding:.5rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s}.source-manage-btn:hover{background:#e5e7eb}.source-manager{margin-top:.5rem;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.add-source{display:flex;gap:.5rem;margin-bottom:.75rem}.add-source input{flex:1;padding:.5rem;border:1px solid #e5e7eb;border-radius:4px;font-size:.875rem}.add-source button{padding:.5rem 1rem;background:#6366f1;color:#fff;border:none;border-radius:4px;font-size:.875rem;cursor:pointer}.add-source button:hover:not(:disabled){background:#4f46e5}.add-source button:disabled{opacity:.5;cursor:not-allowed}.source-list{display:flex;flex-direction:column;gap:.5rem}.source-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px;font-size:.875rem}.delete-source-btn{padding:.25rem;background:transparent;border:none;color:#ef4444;cursor:pointer;border-radius:4px;transition:all .2s}.delete-source-btn:hover{background:#fee2e2}.currency-display{transition:background-color .2s;border-radius:4px}.currency-display:hover{background-color:#f3f4f6}.inline-select{width:100%;padding:4px 8px;border:1px solid #e5e7eb;border-radius:4px;background:#fff;font-size:.875rem;cursor:pointer;transition:all .2s}.inline-select:hover{border-color:#2196f3}.inline-select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a}.quick-expense-overlay{position:fixed;inset:0;background:#00000080;z-index:999;animation:fadeIn .2s ease}.quick-expense-modal{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:20px 20px 0 0;padding:20px;z-index:1000;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease;transition:transform .3s ease}.quick-expense-modal.success{transform:scale(.95)}.quick-expense-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.quick-expense-header h3{margin:0;font-size:20px;font-weight:600;color:#333}.close-btn{background:none;border:none;padding:4px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.close-btn:hover{background-color:#f0f0f0}.quick-expense-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:#666}.form-group label svg{color:#999}.amount-group{margin-bottom:10px}.amount-input{font-size:32px;font-weight:600;padding:12px;border:2px solid #e0e0e0;border-radius:12px;text-align:center;transition:border-color .2s;color:#333}.amount-input:focus{outline:none;border-color:#4caf50}.amount-input::placeholder{color:#ccc}.category-select{padding:12px;border:1px solid #e0e0e0;border-radius:8px;font-size:16px;background:#fff;color:#333;transition:border-color .2s}.category-select:focus{outline:none;border-color:#4caf50}.merchant-input-wrapper{position:relative}.merchant-input{padding:12px;border:1px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s;width:100%}.merchant-input:focus{outline:none;border-color:#4caf50}.merchant-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 4px 6px #0000001a}.merchant-suggestion{padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background-color .2s}.merchant-suggestion:hover{background-color:#f5f5f5}.merchant-suggestion .usage-count{font-size:12px;color:#999}.popular-merchants{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}.popular-label{font-size:12px;color:#999;margin-right:4px}.merchant-chip{padding:6px 12px;border:1px solid #e0e0e0;border-radius:16px;background:#fff;font-size:14px;cursor:pointer;transition:all .2s}.merchant-chip:hover{background-color:#f5f5f5;border-color:#4caf50}.description-input{padding:12px;border:1px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.description-input:focus{outline:none;border-color:#4caf50}.date-input{padding:12px;border:1px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.date-input:focus{outline:none;border-color:#4caf50}.form-actions{display:flex;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0}.cancel-btn,.save-btn{flex:1;padding:14px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn{background:#f0f0f0;color:#666}.cancel-btn:hover:not(:disabled){background:#e0e0e0}.save-btn{background:#4caf50;color:#fff}.save-btn:hover:not(:disabled){background:#45a049}.save-btn:disabled,.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.success-animation{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;animation:scaleIn .3s ease}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.success-icon{width:80px;height:80px;background:#4caf50;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px;animation:checkmark .4s ease}.success-icon svg{color:#fff}@keyframes checkmark{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.success-animation p{font-size:18px;font-weight:600;color:#333;margin:0}.quick-expense-fab{position:fixed;bottom:80px;right:20px;width:56px;height:56px;border-radius:50%;background:#4caf50;color:#fff;border:none;box-shadow:0 4px 12px #4caf504d;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:100}.quick-expense-fab:hover{background:#45a049;transform:scale(1.05);box-shadow:0 6px 16px #4caf5066}.quick-expense-fab:active{transform:scale(.95)}@media (min-width: 768px){.quick-expense-modal{left:50%;right:auto;transform:translate(-50%);width:500px;max-width:90vw;border-radius:20px;bottom:20px}.quick-expense-modal.success{transform:translate(-50%) scale(.95)}@keyframes slideUp{0%{transform:translate(-50%) translateY(100%)}to{transform:translate(-50%) translateY(0)}}}@media (prefers-color-scheme: dark){.quick-expense-modal{background:#1e1e1e}.quick-expense-header{border-bottom-color:#333}.quick-expense-header h3{color:#fff}.close-btn{color:#aaa}.close-btn:hover{background-color:#333}.form-group label{color:#aaa}.amount-input,.category-select,.merchant-input,.description-input,.date-input{background:#2a2a2a;border-color:#444;color:#fff}.amount-input:focus,.category-select:focus,.merchant-input:focus,.description-input:focus,.date-input:focus{border-color:#4caf50}.merchant-suggestions{background:#2a2a2a;border-color:#444}.merchant-suggestion:hover{background-color:#333}.merchant-chip{background:#2a2a2a;border-color:#444;color:#fff}.merchant-chip:hover{background-color:#333;border-color:#4caf50}.cancel-btn{background:#333;color:#fff}.cancel-btn:hover:not(:disabled){background:#444}.form-actions{border-top-color:#333}.success-animation p{color:#fff}}.budget-details-overlay{position:fixed;inset:0;background:#0000004d;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:998}.budget-details-overlay.open{opacity:1;visibility:visible}.budget-details-panel{position:fixed;top:0;right:-450px;width:450px;height:100vh;background:#fff;box-shadow:-2px 0 8px #0000001a;transition:right .3s ease;z-index:999;display:flex;flex-direction:column;overflow:hidden}.budget-details-panel.open{right:0}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0;background:#fff}.panel-header h2{margin:0;font-size:24px;font-weight:600;color:#333}.close-button{background:none;border:none;padding:4px;cursor:pointer;color:#666;border-radius:4px;transition:background-color .2s}.close-button:hover{background:#f0f0f0}.panel-content{flex:1;overflow-y:auto;padding:20px}.status-alert{display:flex;align-items:center;gap:8px;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px;font-weight:500}.status-alert.over-budget{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.status-alert.near-budget{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.month-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px;background:#f9f9f9;border-radius:8px}.month-navigation button{background:#fff;border:1px solid #e0e0e0;padding:6px;border-radius:4px;cursor:pointer;transition:background-color .2s}.month-navigation button:hover{background:#f0f0f0}.month-navigation h3{margin:0;font-size:16px;font-weight:600;color:#333}.budget-summary-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:20px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.summary-row:last-child{border-bottom:none}.summary-row .label{font-size:14px;color:#666}.summary-row .value{font-size:18px;font-weight:600;color:#333}.summary-row .value.spent{color:#ef4444}.summary-row .value.positive{color:#22c55e}.summary-row .value.negative{color:#ef4444}.edit-budget-inline{display:flex;align-items:center;gap:8px}.edit-budget-inline input{width:100px;padding:4px 8px;border:1px solid #4CAF50;border-radius:4px;font-size:16px;font-weight:600}.edit-budget-inline button{background:none;border:none;padding:4px;cursor:pointer;border-radius:4px;transition:background-color .2s}.save-button{color:#22c55e}.save-button:hover{background:#f0fdf4}.cancel-button{color:#ef4444}.cancel-button:hover{background:#fef2f2}.budget-amount-input{background:transparent;border:1px solid transparent;padding:4px 8px;border-radius:4px;font-size:16px;font-weight:600;color:#333;text-align:right;width:120px;transition:all .2s}.budget-amount-input:hover{border-color:#e0e0e0;background:#f5f5f5}.budget-amount-input:focus{outline:none;border-color:#4caf50;background:#fff;box-shadow:0 0 0 3px #4caf501a}.progress-container{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.progress-header .label{font-size:14px;color:#666}.progress-header .percentage{font-size:14px;font-weight:600;color:#333}.progress-bar{height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;transition:width .3s ease,background-color .3s ease}.trend-indicator{display:flex;align-items:center;gap:6px;margin-top:12px;padding:8px;background:#f9f9f9;border-radius:6px;font-size:13px;color:#666}.trend-indicator .trend-up{color:#ef4444}.trend-indicator .trend-down{color:#22c55e}.quick-add-expense{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s;margin-bottom:24px}.quick-add-expense:hover{background:#45a049}.expenses-section{margin-top:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.section-header .count{background:#f0f0f0;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600;color:#666}.search-filter{margin-bottom:16px}.search-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px}.search-bar input{flex:1;background:none;border:none;outline:none;font-size:14px}.expenses-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.expense-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f9f9f9;border-radius:8px;transition:background-color .2s}.expense-item:hover{background:#f0f0f0}.expense-date{display:flex;align-items:center;gap:4px;font-size:12px;color:#999;min-width:60px}.expense-details{flex:1;display:flex;flex-direction:column;gap:2px}.expense-details .description{font-size:14px;font-weight:500;color:#333}.expense-details .merchant{font-size:12px;color:#666;font-style:italic;margin-left:4px}.expense-details .source{font-size:11px;color:#999;text-transform:capitalize}.expense-item .amount{font-size:16px;font-weight:600;color:#ef4444}.expense-info{flex:1;display:flex;flex-direction:column;gap:4px}.expense-primary{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.expense-primary .description{font-size:14px;color:#333}.expense-primary .merchant{font-size:12px;color:#666;font-style:italic}.expense-info .date{font-size:12px;color:#999}.month-divider{padding:8px 12px;margin:16px 0 8px;background:#f0f0f0;border-radius:6px;font-size:13px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.load-more-button{width:100%;padding:12px;margin-top:16px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;color:#4caf50;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.load-more-button:hover:not(:disabled){background:#f0f0f0;border-color:#4caf50}.load-more-button:disabled{opacity:.5;cursor:not-allowed}.expense-item.previous-month{opacity:.8}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-state svg{color:#ccc;margin-bottom:12px}.empty-state p{margin:0 0 16px;color:#999;font-size:14px}.add-first-expense{padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.add-first-expense:hover{background:#45a049}.budget-details-mobile{position:fixed;inset:0;background:#fff;z-index:1000;display:flex;flex-direction:column;animation:slideUp .3s ease}.mobile-budget-input{background:transparent;border:1px solid transparent;padding:4px 8px;border-radius:4px;font-size:20px;font-weight:600;color:#333;text-align:center;width:auto;transition:all .2s}.mobile-budget-input:focus{outline:none;border-color:#4caf50;background:#fff}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.mobile-header h2{flex:1;margin:0;font-size:20px;font-weight:600;text-align:center}.back-button,.add-expense-button{background:none;border:none;padding:8px;cursor:pointer;color:#333;border-radius:8px;transition:background-color .2s}.back-button:hover,.add-expense-button:hover{background:#f0f0f0}.mobile-content{flex:1;overflow-y:auto;padding:16px}.budget-overview-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:16px;margin-bottom:20px}.month-selector{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.month-selector button{background:none;border:none;padding:4px;cursor:pointer;color:#666}.budget-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.amount-section{text-align:center}.amount-section .label{display:block;font-size:12px;color:#999;text-transform:uppercase;margin-bottom:4px}.amount-section .value{display:block;font-size:18px;font-weight:600;color:#333}.amount-section .value.spent{color:#ef4444}.amount-section .value.positive{color:#22c55e}.amount-section .value.negative{color:#ef4444}.budget-edit{display:flex;flex-direction:column;align-items:center}.progress-section{margin-top:12px}.progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:13px}.progress-label .trend{display:flex;align-items:center;gap:4px;font-size:12px}.progress-label .trend.up{color:#ef4444}.progress-label .trend.down{color:#22c55e}.expense-item .expense-actions{display:flex;align-items:center;gap:8px}.edit-expense-btn{background:none;border:none;padding:4px;color:#999;cursor:pointer;border-radius:4px;transition:all .2s;opacity:0}.expense-item:hover .edit-expense-btn{opacity:1}.edit-expense-btn:hover{background:#e3f2fd;color:#1976d2}.expense-edit-form{display:flex;flex-direction:column;gap:8px;padding:8px;background:#f9fafb;border-radius:6px}.expense-edit-form .edit-row{display:flex;gap:8px}.expense-edit-form .edit-input{flex:1;padding:8px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;background:#fff}.expense-edit-form .edit-input:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a}.expense-edit-form .date-input{max-width:140px}.expense-edit-form .amount-input{max-width:100px;font-weight:600;color:#ef4444}.expense-edit-form .edit-actions{display:flex;gap:8px;justify-content:flex-end}.cancel-edit-btn,.delete-edit-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-edit-btn{background:#f0f0f0;color:#666}.cancel-edit-btn:hover{background:#e0e0e0}.delete-edit-btn{background:#ffebee;color:#c62828}.delete-edit-btn:hover{background:#ffcdd2}.expense-edit-inline{display:flex;gap:12px;padding:8px;background:#f9fafb;border-radius:6px;width:100%}.expense-edit-inline .edit-fields{flex:1;display:grid;grid-template-columns:100px 80px 1fr 1fr;gap:8px}.expense-edit-inline .edit-input{padding:6px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:13px;background:#fff}.expense-edit-inline .edit-input:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a}.expense-edit-inline .edit-actions{display:flex;gap:4px}.expense-edit-inline .icon-btn{padding:6px;background:#f0f0f0;border:none;border-radius:4px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.expense-edit-inline .icon-btn:hover{background:#e0e0e0}.expense-edit-inline .icon-btn.delete{background:#ffebee;color:#c62828}.expense-edit-inline .icon-btn.delete:hover{background:#ffcdd2}.expense-amount-actions{display:flex;align-items:center;gap:8px}.edit-icon-btn{background:none;border:none;padding:4px;color:#999;cursor:pointer;border-radius:4px;transition:all .2s;opacity:0}.expense-item:hover .edit-icon-btn{opacity:1}.edit-icon-btn:hover{background:#e3f2fd;color:#1976d2}@media (max-width: 480px){.budget-details-panel{width:100%;right:-100%}.budget-amounts{grid-template-columns:1fr;gap:16px}.amount-section{display:flex;justify-content:space-between;align-items:center}.amount-section .label{text-align:left}.amount-section .value{text-align:right}.expense-edit-inline .edit-fields{grid-template-columns:1fr 1fr}}.expense-delete-modal{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px;width:90%;max-height:90vh;overflow:auto}.expense-delete-modal .modal-header{padding:20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.expense-delete-modal .modal-header h3{margin:0;font-size:18px;font-weight:600;color:#111827;display:flex;align-items:center;gap:8px}.expense-delete-modal .close-button{background:none;border:none;padding:4px;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .2s}.expense-delete-modal .close-button:hover{background-color:#f3f4f6;color:#111827}.expense-delete-modal .modal-body{padding:20px}.expense-delete-modal .warning-text{color:#374151;margin-bottom:16px;font-size:14px}.expense-delete-modal .question-text{color:#111827;font-weight:500;margin-bottom:20px;font-size:15px}.expense-delete-modal .options{display:flex;flex-direction:column;gap:12px}.expense-delete-modal .option-label{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s}.expense-delete-modal .option-label:hover{background-color:#f9fafb;border-color:#d1d5db}.expense-delete-modal .option-label input[type=radio]{margin-top:2px;cursor:pointer}.expense-delete-modal .option-content{flex:1;display:flex;flex-direction:column;gap:4px}.expense-delete-modal .option-content strong{font-size:14px;color:#111827}.expense-delete-modal .option-description{font-size:13px;color:#6b7280;line-height:1.4}.expense-delete-modal .date-input-container{display:flex;align-items:center;gap:8px;margin-top:8px;margin-left:28px;padding:8px 12px;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.expense-delete-modal .date-input-container svg{color:#6b7280}.expense-delete-modal .date-input{flex:1;border:none;background:none;outline:none;font-size:14px;color:#111827}.expense-delete-modal .modal-footer{padding:16px 20px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.expense-delete-modal .cancel-button{padding:8px 16px;border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.expense-delete-modal .cancel-button:hover{background-color:#f9fafb;border-color:#9ca3af}.expense-delete-modal .delete-button{padding:8px 16px;border:none;background:#ef4444;color:#fff;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.expense-delete-modal .delete-button:hover:not(:disabled){background:#dc2626}.expense-delete-modal .delete-button:disabled{opacity:.5;cursor:not-allowed}.expense-detail-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.expense-detail-modal{background:#fff;border-radius:12px;width:100%;max-width:400px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:1.25rem;color:#1f2937}.close-btn{background:none;border:none;padding:.25rem;cursor:pointer;color:#6b7280;transition:color .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#1f2937}.modal-body{flex:1;overflow-y:auto;padding:1.25rem}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid #f3f4f6}.detail-row:last-child{border-bottom:none}.detail-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280;font-weight:500;min-width:100px}.detail-label svg{color:#9ca3af}.detail-value{flex:1;text-align:right;font-size:.875rem;color:#1f2937;word-break:break-word}.detail-value.amount{font-weight:600;font-size:1rem;color:#059669}.modal-footer{padding:1rem 1.25rem;border-top:1px solid #e5e7eb;display:flex;justify-content:center}.dismiss-btn{background:#6366f1;color:#fff;border:none;padding:.625rem 1.5rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s;min-width:100px}.dismiss-btn:hover{background:#5558e3}@media (max-width: 480px){.expense-detail-modal-overlay{padding:0;align-items:flex-end}.expense-detail-modal{max-width:100%;max-height:70vh;border-radius:12px 12px 0 0}}.expense-manager{padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.expense-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.header-left{display:flex;align-items:center;gap:24px}.expense-header h2{margin:0;font-size:24px;font-weight:600;color:#333}.month-navigation{display:flex;align-items:center;gap:12px}.month-navigation button{background:none;border:1px solid #e0e0e0;border-radius:6px;padding:6px 8px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.month-navigation button:hover{background:#f5f5f5;border-color:#4caf50}.month-navigation span{font-size:16px;font-weight:500;color:#333;min-width:150px;text-align:center}.header-right{display:flex;gap:12px}.add-expense-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.add-expense-btn:hover{background:#1976d2}.export-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.export-btn:hover{background:#45a049}.expense-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.summary-card{background:#f9f9f9;border-radius:8px;padding:16px;border:1px solid #e0e0e0}.summary-card h3{margin:0 0 8px;font-size:14px;color:#666;font-weight:500}.summary-card .amount,.summary-card .count,.summary-card .average{font-size:24px;font-weight:600;color:#333;margin:0}.expense-filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-box{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;background:#fff}.filter-select,.sort-select{padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;transition:border-color .2s}.filter-select:hover,.sort-select:hover{border-color:#4caf50}.filter-select:focus,.sort-select:focus{outline:none;border-color:#4caf50}.expense-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0;margin-bottom:24px}.expense-table table{width:100%;border-collapse:collapse}.expense-table thead{background:#f9f9f9}.expense-table th{padding:12px 16px;text-align:left;font-size:14px;font-weight:600;color:#666;border-bottom:1px solid #e0e0e0}.source-cell{text-align:center!important;padding:8px!important}.source-indicator{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;cursor:help;margin:0 auto;font-size:18px;line-height:1;color:#6b7280;transition:all .2s}.source-indicator:hover{transform:scale(1.2)}.source-indicator.automated{color:#3b82f6;font-weight:700}.source-indicator.auto-pay{color:#f59e0b;font-size:20px}.source-indicator.manual{color:#8b5cf6}.source-indicator.user-paid{color:#10b981;font-weight:700}.source-indicator.expense{color:#6b7280;font-size:14px}.source-indicator.unknown{color:#9ca3af;opacity:.6}.source-indicator .user-avatar{display:block;border:2px solid #4caf50}.expense-table td{padding:12px 16px;font-size:14px;color:#333;border-bottom:1px solid #f0f0f0}.expense-table tbody tr:hover{background:#f9f9f9}.expense-table tbody tr.editing{background:#fffbf0}.expense-table .amount{font-weight:600;color:#ef4444}.expense-table .category-tag{display:inline-block;padding:4px 8px;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:12px;font-weight:500}.expense-table .merchant{color:#666;font-style:italic;font-size:13px}.inline-edit-input,.inline-edit-select{width:100%;padding:4px 6px;border:1px solid transparent;border-radius:4px;font-size:14px;background:transparent;transition:all .2s}.inline-edit-input:hover,.inline-edit-select:hover{background:#f9f9f9;border-color:#e0e0e0}.inline-edit-input:focus,.inline-edit-select:focus{outline:none;background:#fff;border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a}.inline-edit-input.amount-input{font-weight:600;color:#ef4444}.amount-display{text-align:right;font-weight:600;color:#ef4444;border-radius:4px;transition:background-color .2s;white-space:nowrap}.amount-display:hover{background-color:#f5f5f5}.inline-edit-input::placeholder{color:#ccc;font-style:italic}.expense-table .actions{display:flex;gap:8px;align-items:center}.edit-btn,.save-btn,.cancel-btn{padding:6px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.edit-btn{background:#e3f2fd;color:#1976d2}.edit-btn:hover{background:#bbdefb}.delete-btn{background:transparent!important;color:#ef4444!important;border:none!important;padding:4px!important;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;opacity:.7;border-radius:0!important;width:auto;height:auto;box-shadow:none!important;outline:none!important}.delete-btn:hover{color:#dc2626!important;opacity:1;transform:scale(1.2);background:transparent!important;box-shadow:none!important}.delete-btn svg{fill:currentColor;width:14px;height:14px}.save-btn{background:#e8f5e9;color:#2e7d32}.save-btn:hover{background:#c8e6c9}.cancel-btn{background:#f5f5f5;color:#666}.cancel-btn:hover{background:#e0e0e0}.delete-confirm-inline{display:flex;gap:4px}.confirm-yes,.confirm-no{padding:4px 8px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600}.confirm-yes{background:#ef4444;color:#fff}.confirm-yes:hover{background:#dc2626}.confirm-no{background:#6b7280;color:#fff}.confirm-no:hover{background:#4b5563}.empty-state{padding:40px;text-align:center;color:#999}.category-breakdown{background:#f9f9f9;border-radius:8px;padding:20px;margin-top:24px}.category-breakdown h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#333}.breakdown-list{display:flex;flex-direction:column;gap:12px}.breakdown-item{position:relative;display:flex;justify-content:space-between;align-items:center;padding:8px 0}.category-name{font-size:14px;color:#333;z-index:1}.category-amount{font-size:14px;font-weight:600;color:#333;z-index:1}.category-bar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:24px;background:linear-gradient(90deg,#4caf50,#66bb6a);opacity:.2;border-radius:4px;transition:width .3s ease}.expense-manager-mobile{padding:16px;background:#f5f5f5;min-height:100vh}.expense-header-mobile{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 4px #0000000d}.month-selector{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.month-selector button{background:none;border:none;padding:8px;cursor:pointer;color:#4caf50}.month-selector span{font-size:16px;font-weight:600;color:#333}.expense-stats-mobile{display:flex;justify-content:space-around;padding-top:12px;border-top:1px solid #e0e0e0}.expense-stats-mobile .stat{text-align:center}.expense-stats-mobile .label{display:block;font-size:12px;color:#999;margin-bottom:4px}.expense-stats-mobile .value{display:block;font-size:18px;font-weight:600;color:#333}.expense-filters-mobile{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.expense-filters-mobile .search-input,.expense-filters-mobile .filter-select{width:100%;padding:12px;border:1px solid #e0e0e0;border-radius:8px;font-size:16px;background:#fff}.expense-list-mobile{display:flex;flex-direction:column;gap:12px}.expense-card-mobile{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 4px #0000000d}.expense-info{margin-bottom:12px}.expense-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.expense-main .amount{font-size:20px;font-weight:600;color:#ef4444}.expense-main .date{font-size:14px;color:#999}.expense-details{display:flex;gap:12px;align-items:center;margin-bottom:6px}.expense-details .category{display:inline-block;padding:4px 8px;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:12px;font-weight:500}.expense-details .merchant{font-size:13px;color:#666;font-style:italic}.expense-card-mobile .description{font-size:14px;color:#666;margin-top:8px}.expense-actions{display:flex;gap:8px;justify-content:flex-end}.expense-edit-form{display:flex;flex-direction:column;gap:12px}.expense-edit-form input,.expense-edit-form select{padding:10px;border:1px solid #4CAF50;border-radius:6px;font-size:16px}.edit-actions{display:flex;gap:8px;justify-content:flex-end}.delete-confirm{background:#ffebee;border-radius:6px;padding:12px;margin-top:12px;text-align:center}.delete-confirm p{margin:0 0 12px;color:#c62828;font-size:14px}.delete-confirm button{padding:8px 16px;margin:0 4px;border:none;border-radius:4px;cursor:pointer;font-weight:500}.delete-confirm .confirm-yes{background:#ef4444;color:#fff}.delete-confirm .confirm-no{background:#6b7280;color:#fff}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1000}.add-expense-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001}.modal-content{background:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 20px #00000026;width:90vw;max-width:500px;max-height:90vh;overflow-y:auto}.modal-content h3{margin:0 0 20px;font-size:20px;font-weight:600;color:#333}.add-expense-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#666}.form-group input,.form-group select{padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2196f3}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid #e0e0e0}.cancel-btn{padding:10px 20px;border:1px solid #e0e0e0;background:#fff;color:#666;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:#f5f5f5}.save-btn{padding:10px 20px;border:none;background:#2196f3;color:#fff;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.save-btn:hover{background:#1976d2}.expense-table-mobile{background:#fff;border-radius:8px;overflow:hidden;margin-top:1rem}.expense-table-mobile table{width:100%;border-collapse:collapse}.expense-table-mobile th{background:#f9fafb;padding:.625rem .5rem;text-align:left;font-size:.75rem;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.expense-table-mobile th:nth-child(1){width:20%}.expense-table-mobile th:nth-child(2){width:30%}.expense-table-mobile th:nth-child(3){width:22%;text-align:right}.expense-table-mobile th:nth-child(4){width:28%}.expense-table-mobile td{padding:.75rem .5rem;font-size:.75rem;color:#1f2937;border-bottom:1px solid #f3f4f6}.expense-table-mobile tbody tr{transition:background .2s}.expense-table-mobile tbody tr:hover{background:#f9fafb}.expense-table-mobile tbody tr:active{background:#f3f4f6}.category-badge-mobile{display:inline-block;padding:.125rem .375rem;background:#e0e7ff;color:#3730a3;border-radius:4px;font-size:.625rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mobile-add-expense-btn{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:#2196f3;color:#fff;border:none;box-shadow:0 4px 12px #2196f366;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;transition:all .3s ease}.mobile-add-expense-btn:hover{background:#1976d2;transform:scale(1.1);box-shadow:0 6px 16px #2196f380}.mobile-add-expense-btn:active{transform:scale(.95)}@media (min-width: 769px){.mobile-add-expense-btn{display:none}}@media (max-width: 768px){.expense-manager,.expense-manager-mobile{width:100%;max-width:100vw;overflow-x:hidden;padding:12px}.expense-header{flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:12px}.header-left{width:100%;flex-direction:column;gap:12px;align-items:stretch}.expense-header h2{font-size:20px;text-align:center}.month-navigation{width:100%;justify-content:space-between}.month-navigation span{min-width:auto;flex:1;font-size:14px}.header-right{width:100%;flex-direction:column;gap:8px}.add-expense-btn,.export-btn{width:100%;justify-content:center;padding:10px;font-size:13px}.expense-summary{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.summary-card{padding:12px}.summary-card h3{font-size:12px}.summary-card .amount,.summary-card .count,.summary-card .average{font-size:18px}.expense-filters{flex-direction:column;gap:8px;margin-bottom:16px}.search-box{width:100%;min-width:auto}.filter-select,.sort-select{width:100%;padding:10px 12px;font-size:13px}.expense-table{display:none}.expense-list-mobile,.expense-card-mobile{display:block!important}.expense-table-mobile{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100vw;margin:0 -12px;padding:0 12px}.expense-table-mobile table{min-width:auto;width:100%}.expense-table-mobile th,.expense-table-mobile td{padding:.5rem .25rem;font-size:.7rem}.expense-table-mobile th:nth-child(1){width:25%}.expense-table-mobile th:nth-child(2){width:35%}.expense-table-mobile th:nth-child(3){width:20%;text-align:right}.expense-table-mobile th:nth-child(4){width:20%}.expense-table-mobile td:first-child{font-weight:500;font-size:.75rem}.expense-table-mobile td:nth-child(3){text-align:right;font-weight:600;color:#059669}.category-badge-mobile{font-size:.6rem;padding:.1rem .25rem}.category-breakdown{padding:16px;margin-top:16px}.category-breakdown h3{font-size:16px;margin-bottom:12px}.breakdown-item{padding:6px 0}.category-name,.category-amount{font-size:13px}.modal-content{width:95vw;max-width:95vw;padding:16px;max-height:85vh}.modal-content h3{font-size:18px;margin-bottom:16px}.form-row{grid-template-columns:1fr;gap:12px}.form-group label{font-size:13px}.form-group input,.form-group select{padding:8px 10px;font-size:14px}.form-actions{margin-top:16px;padding-top:16px}.cancel-btn,.save-btn{padding:8px 16px;font-size:13px}.empty-state{padding:24px;font-size:14px}*{max-width:100vw}.inline-edit-input,.inline-edit-select{font-size:12px;padding:3px 5px}.expense-table .actions{gap:4px}.edit-btn,.save-btn,.cancel-btn,.delete-btn{padding:4px}.delete-confirm-inline{gap:2px}.confirm-yes,.confirm-no{padding:3px 6px;font-size:12px}}.category-manager{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px}.search-box{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;background:#fff;min-width:300px}.add-form{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-bottom:20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.add-form input{padding:10px 12px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px}.add-form input[type=text]{flex:2}.add-form input[type=number]{flex:1;min-width:120px}.color-selector{display:flex;align-items:center;gap:8px}.color-preview{width:32px;height:32px;border-radius:4px;border:2px solid #e0e0e0}.color-options{display:flex;gap:6px;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:all .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#333;box-shadow:0 0 0 1px #fff,0 0 0 3px #333}.save-button,.cancel-button{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;white-space:nowrap}.category-manager .categories-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))!important;gap:12px!important;width:100%!important}.category-manager .categories-grid .category-item{display:flex!important;justify-content:space-between!important;align-items:center!important;padding:12px!important;background:#fff!important;border:1px solid #e0e0e0!important;border-radius:6px!important;transition:all .2s!important;gap:0!important}.category-manager .categories-grid .category-item:hover{border-color:#2196f3!important;box-shadow:0 2px 4px #0000000d!important}.category-info{display:flex;align-items:center;gap:8px;flex:1}.category-color-badge{width:20px;height:20px;border-radius:4px;flex-shrink:0}.category-name{font-size:14px;font-weight:500;color:#333;flex:1}.target-amount{padding:2px 6px;background:#e8f5e9;color:#2e7d32;border-radius:4px;font-size:11px;font-weight:600}.category-actions{display:flex;gap:4px}.color-selector-inline{display:flex;align-items:center;gap:4px}.color-options-inline{display:flex;gap:2px}.color-option-small{width:20px;height:20px;border-radius:3px;cursor:pointer;border:1px solid transparent;transition:all .2s}.color-option-small:hover{transform:scale(1.1)}.color-option-small.selected{border-color:#333;box-shadow:0 0 0 1px #fff,0 0 0 2px #333}.category-manager-loading,.category-manager-error{padding:20px;text-align:center;color:#666}.category-manager-error{color:#ef4444}.recipe-card{background:#fff;border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s;box-shadow:0 4px 16px #0000001a;display:flex;flex-direction:column}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.recipe-image{position:relative;width:100%;height:200px;overflow:hidden;background:linear-gradient(135deg,#e0e7ff,#cdb2ed)}.recipe-image img{width:100%;height:100%;object-fit:cover}.placeholder-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e0e7ff,#cdb2ed)}.placeholder-image svg{color:#fff;opacity:.8}.favorite-button{position:absolute;top:.75rem;right:.75rem;width:36px;height:36px;background:#ffffffe6;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;color:#e53e3e}.favorite-button:hover{background:#fff;transform:scale(1.1)}.favorite-button.active{color:#e53e3e}.recipe-content{padding:1.25rem;flex:1;display:flex;flex-direction:column}.recipe-header{margin-bottom:.75rem}.recipe-header h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;color:#2d3748;line-height:1.4}.recipe-badges{display:flex;gap:.5rem;flex-wrap:wrap}.cuisine-badge,.meal-badge,.recipe-type-badge{font-size:.75rem;padding:.25rem .75rem;border-radius:20px;font-weight:600}.recipe-type-badge{background:#fef3c7;color:#92400e;text-transform:capitalize}.source-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:20px;font-weight:600;background:#f3e8ff;color:#7c3aed}.recipe-description{color:#718096;font-size:.875rem;line-height:1.5;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-stats{display:flex;gap:1rem;margin-top:auto;padding-top:.75rem;border-top:1px solid #e2e8f0;flex-wrap:wrap}.stat{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#4a5568}.stat svg{color:#a0aec0}.difficulty-dot{width:8px;height:8px;border-radius:50%}.stat.rating{color:#ed8936}.stat.rating svg{color:#ed8936}.last-made{display:flex;align-items:center;gap:.25rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0;font-size:.75rem;color:#718096}.last-made svg{color:#a0aec0}.recipes-grid.list .recipe-card{flex-direction:row;height:150px}.recipes-grid.list .recipe-image{width:200px;height:100%;flex-shrink:0}.recipes-grid.list .recipe-content{flex:1}.recipes-grid.list .recipe-stats{margin-top:.5rem}@media (max-width: 768px){.recipe-card{margin-bottom:1rem}.recipes-grid.list .recipe-card{flex-direction:column;height:auto}.recipes-grid.list .recipe-image{width:100%;height:150px}}.tag-input-container{position:relative;width:100%}.tag-input-wrapper{border:2px solid #e2e8f0;border-radius:8px;background:#fff;min-height:42px;padding:8px;display:flex;flex-direction:column;gap:8px;transition:all .3s}.tag-input-wrapper:focus-within{border-color:#667eea;background:#f8f9ff}.tags-display{display:flex;flex-wrap:wrap;gap:6px}.tag-item{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 8px;border-radius:16px;font-size:.75rem;font-weight:500;animation:tagAppear .2s ease-out}@keyframes tagAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.tag-remove-btn{background:none;border:none;color:#fffc;cursor:pointer;padding:2px;margin-left:2px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.tag-remove-btn:hover{background:#fff3;color:#fff}.tag-input-field{display:flex;align-items:center;gap:8px;position:relative}.tag-input{flex:1;border:none;outline:none;background:transparent;font-size:.875rem;color:#2d3748;min-width:120px}.tag-input::placeholder{color:#a0aec0}.add-tag-btn{background:#e0e7ff;border:none;color:#5a67d8;padding:4px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.add-tag-btn:hover{background:#5a67d8;color:#fff}.tag-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e2e8f0;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px #0000001a;max-height:200px;overflow-y:auto;z-index:1000}.tag-suggestion{width:100%;background:none;border:none;padding:8px 12px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:.875rem;color:#2d3748;transition:all .2s}.tag-suggestion:hover{background:#f7fafc}.tag-suggestion.new-tag{border-top:1px solid #e2e8f0;background:#f0fff4;color:#276749}.tag-suggestion.new-tag:hover{background:#c6f6d5}.suggestion-name{flex:1;font-weight:500}.suggestion-count{font-size:.75rem;color:#718096;font-weight:400}@media (max-width: 768px){.tag-input-wrapper{padding:6px}.tag-item{font-size:.7rem;padding:3px 6px}.tag-suggestions{max-height:150px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-recipe-modal{background:#fff;border-radius:16px;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;color:#2d3748;font-size:1.5rem}.close-button{background:none;border:none;padding:.5rem;cursor:pointer;color:#718096;border-radius:8px;transition:all .2s}.close-button:hover{background:#f7fafc;color:#2d3748}.modal-tabs{display:flex;padding:0 1.5rem;border-bottom:1px solid #e2e8f0;overflow-x:auto}.modal-tabs .tab{padding:1rem 1.5rem;border:none;background:none;cursor:pointer;font-weight:500;color:#718096;border-bottom:3px solid transparent;transition:all .3s;white-space:nowrap}.modal-tabs .tab:hover{color:#4a5568}.modal-tabs .tab.active{color:#667eea;border-bottom-color:#667eea}.recipe-form{flex:1;display:flex;flex-direction:column;overflow:hidden}.tab-content{flex:1;padding:1.5rem;overflow-y:auto}.form-help{margin:0 0 .5rem;font-size:.75rem;color:#718096;font-style:italic}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;background:#f8f9ff}.time-inputs{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end}.time-inputs label{display:flex;align-items:center;gap:.5rem}.total-time{padding:.75rem 1rem;background:#f7fafc;border-radius:8px;font-weight:600;color:#4a5568;text-align:center}.ingredients-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.ingredient-row{display:grid;grid-template-columns:2fr 1fr 1fr 2fr auto;gap:.5rem;align-items:center}.ingredient-name,.ingredient-amount,.ingredient-unit,.ingredient-notes{min-width:0}.instructions-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.instruction-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:start}.step-number{width:32px;height:32px;background:#667eea;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.instruction-text{min-width:0}.instruction-duration{width:80px}.ingredient-row input,.instruction-row textarea{padding:.5rem;border:2px solid #e2e8f0;border-radius:6px;font-size:.875rem;transition:all .3s}.ingredient-row input:focus,.instruction-row textarea:focus{outline:none;border-color:#667eea;background:#f8f9ff}.remove-button{padding:.5rem;background:#fed7d7;border:none;border-radius:6px;color:#c53030;cursor:pointer;transition:all .3s}.remove-button:hover:not(:disabled){background:#fc8181;color:#fff}.remove-button:disabled{opacity:.5;cursor:not-allowed}.add-item-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#e0e7ff;color:#5a67d8;border:2px dashed #5a67d8;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s;width:100%;justify-content:center}.add-item-button:hover{background:#5a67d8;color:#fff;border-style:solid}.season-tag{padding:.5rem 1rem;background:#f7fafc;border:2px solid #e2e8f0;border-radius:20px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s}.season-tag:hover{border-color:#cbd5e0}.season-tag.active{background:#667eea;color:#fff;border-color:#667eea}.photo-upload{border:2px dashed #cbd5e0;border-radius:8px;padding:2rem;text-align:center;color:#a0aec0}.photo-upload svg{margin:0 auto .5rem}.modal-footer{padding:1.5rem;border-top:1px solid #e2e8f0;display:flex;gap:1rem;justify-content:flex-end}.cancel-button,.save-button{padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.cancel-button{background:#f7fafc;border:2px solid #e2e8f0;color:#4a5568}.cancel-button:hover{background:#e2e8f0}.save-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.save-button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 768px){.add-recipe-modal{max-height:100vh;border-radius:0}.modal-overlay{padding:0}.form-row{grid-template-columns:1fr}.time-inputs{grid-template-columns:1fr 1fr}.total-time{grid-column:1 / -1}.ingredient-row{grid-template-columns:1fr}.ingredient-row input{width:100%}.remove-button{width:100%;margin-top:.5rem}.instruction-row{grid-template-columns:auto 1fr}.instruction-duration,.instruction-row .remove-button{grid-column:2;margin-top:.5rem}}.photo-gallery{margin:16px 0}.photo-loading{padding:20px;text-align:center;color:#666}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:16px}.photo-item{position:relative;border-radius:8px;overflow:hidden;background:#f5f5f5;aspect-ratio:1}.photo-item img{width:100%;height:100%;object-fit:cover;display:block}.default-badge{position:absolute;top:8px;left:8px;background:#fffffff2;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;color:#f59e0b;display:flex;align-items:center;gap:4px;box-shadow:0 2px 4px #0000001a}.photo-actions{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:8px;display:flex;justify-content:flex-end;gap:4px;opacity:0;transition:opacity .2s}.photo-item:hover .photo-actions{opacity:1}.set-default-btn,.delete-photo-btn{background:#ffffffe6;border:none;border-radius:4px;padding:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.set-default-btn:hover{background:#fbbf24;color:#fff}.delete-photo-btn:hover{background:#ef4444;color:#fff}.no-photos{padding:40px;text-align:center;background:#f9f9f9;border-radius:8px;color:#999}.no-photos p{margin-top:12px;font-size:14px}.photo-upload-section{display:flex;align-items:center;gap:12px;margin-top:12px}.upload-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.upload-button:hover:not(.uploading){background:#0056b3;transform:translateY(-1px);box-shadow:0 2px 8px #007bff4d}.upload-button.uploading{background:#6c757d;cursor:not-allowed;opacity:.7}.upload-hint{font-size:12px;color:#666}@media (max-width: 768px){.photo-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.photo-upload-section{flex-direction:column;align-items:stretch}.upload-button{width:100%;justify-content:center}}@media (max-width: 768px){body.modal-open{overflow:auto!important;position:relative!important;height:auto!important}.modal-overlay{position:fixed;inset:0;background:#00000080;overflow-y:auto!important;-webkit-overflow-scrolling:touch;z-index:999;padding:0!important}.modal-content,.modal-content.recipe-details-modal,.modal-content.meal-viewer,.modal-content.meal-plan-viewer,.modal-content.shopping-list-generator,.modal-content.shopping-list-modal,.modal-content.meal-plan-editor{position:relative!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:100vh!important;max-height:none!important;margin:0!important;border-radius:0!important;display:flex;flex-direction:column;overflow:visible!important;padding-top:0!important;background:#fff!important}.recipe-modal-header,.meal-viewer-header,.meal-plan-header,.shopping-list-header,.editor-header{position:relative!important;top:auto!important;padding:16px!important;background:#fff;border-bottom:1px solid #e0e0e0;z-index:1}.recipe-modal-header h2,.meal-viewer-header h2,.meal-plan-header h2{font-size:1.3rem!important;margin:0!important;line-height:1.3!important}.cuisine-badge{font-size:.75rem!important;padding:2px 6px!important}.recipe-meta{padding:12px 16px!important;gap:10px!important;flex-wrap:wrap;background:#f8f9fa!important}.recipe-meta .meta-item{flex:0 0 calc(50% - 5px)!important;padding:8px!important;font-size:.85rem!important;background:#fff!important;border-radius:8px!important;border:1px solid #e0e0e0!important}.meta-icon{font-size:1rem!important;margin-right:4px!important}.meta-label{font-size:.75rem!important;color:#666!important}.meta-value{font-size:.85rem!important;font-weight:600!important}.recipe-content,.meal-content,.meal-plan-content,.shopping-list-content,.editor-body,.modal-body{flex:1 1 auto!important;overflow:visible!important;height:auto!important;max-height:none!important;padding:16px!important}.meal-tabs{display:flex;overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding:0 16px!important;gap:8px!important;border-bottom:1px solid #e0e0e0}.recipe-tabs{display:flex!important;overflow-x:visible!important;padding:0!important;gap:0!important;border-bottom:1px solid #e0e0e0;justify-content:stretch!important}.meal-tabs button{flex:0 0 auto!important;white-space:nowrap!important;padding:12px 16px!important;font-size:.9rem!important}.recipe-tabs button{flex:1!important;min-width:0!important;padding:12px 8px!important;font-size:.85rem!important}.tab-content{padding:16px!important;overflow:visible!important;height:auto!important;max-height:none!important}.ingredients-list,.instructions-list{max-height:none!important;overflow:visible!important}.recipe-grid{display:flex;flex-direction:column!important;gap:12px!important}.recipe-card{width:100%!important;margin:0!important}.modal-footer,.editor-footer,.recipe-modal-footer{position:fixed!important;bottom:0!important;left:0!important;right:0!important;background:transparent!important;border-top:none!important;padding:0!important;margin-top:0!important;display:flex!important;gap:0!important;z-index:100!important}.modal-footer button,.editor-footer button{flex:1!important;padding:12px!important;font-size:.95rem!important}.shopping-list-generator .ingredient-category{margin-bottom:16px!important}.shopping-list-generator .category-header{position:relative!important;padding:8px 12px!important;font-size:.9rem!important}.meal-manager-content{overflow:visible!important;height:auto!important}.close-btn{position:absolute!important;top:12px!important;right:12px!important;z-index:100!important;width:32px!important;height:32px!important;font-size:1.5rem!important;background:#fff!important;border:1px solid #ddd!important;border-radius:50%!important}.back-btn{width:32px!important;height:32px!important;padding:0!important;font-size:1.2rem!important}.modal-overlay,.modal-content{animation:none!important;transform:none!important}input,textarea,select{font-size:16px!important}.modal-overlay .modal-overlay{position:absolute!important;min-height:100vh!important}.ingredient-item{padding:12px!important;font-size:.95rem!important}.meal-card{padding:12px!important}.meal-card h3{font-size:1.1rem!important}.floating-button,.fab{position:fixed!important;bottom:20px!important;right:20px!important}.dropdown-menu{position:absolute!important;z-index:1000!important}.loading-state,.empty-state{padding:40px 20px!important;text-align:center!important}.recipe-image,.meal-image{width:100%!important;height:auto!important;max-height:200px!important;object-fit:cover!important}.mobile-breadcrumb{display:flex!important;align-items:center!important;padding:8px 16px!important;background:#f5f5f5!important;font-size:.85rem!important;overflow-x:auto!important;white-space:nowrap!important}.mobile-breadcrumb span{color:#666!important;padding:0 4px!important}.mobile-breadcrumb span:first-child,.mobile-breadcrumb span:last-child{color:#333!important;font-weight:500!important}}@supports (-webkit-touch-callout: none){@media (max-width: 768px){.modal-overlay{-webkit-overflow-scrolling:touch!important}.modal-content{transform:translateZ(0)!important}}}@media (max-width: 375px){.recipe-modal-header h2,.meal-viewer-header h2{font-size:1.1rem!important}.modal-footer button{font-size:.85rem!important;padding:10px 8px!important}.recipe-meta .meta-item{flex:0 0 100%!important}}@media (max-width: 768px){.meal-viewer .meal-viewer-header{padding:12px!important;position:relative!important;display:flex!important;visibility:visible!important;opacity:1!important}.meal-viewer .meal-content{overflow:visible!important;max-height:none!important;height:auto!important}.meal-plan-viewer .viewer-header{padding:12px!important;position:relative!important;display:flex!important;visibility:visible!important;opacity:1!important}.meal-plan-viewer .viewer-stats{padding:8px 12px!important;display:flex!important;flex-direction:row!important;justify-content:space-around!important;gap:12px!important;background:#f8f9fa!important;position:relative!important;overflow:visible!important}.meal-plan-viewer .stat{display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:4px!important}.meal-plan-viewer .stat-value{font-size:1rem!important;font-weight:600!important}.meal-plan-viewer .stat-label{font-size:.7rem!important;text-transform:uppercase!important;opacity:.7!important}.meal-plan-viewer .stat-divider{height:16px!important;align-self:center!important}.meal-plan-viewer .viewer-content{overflow:visible!important;max-height:none!important;height:auto!important;padding:12px!important}.meal-plan-viewer .viewer-notes{padding:8px 12px!important;margin:8px!important;background:#fff9e6!important;border-radius:8px!important}.meal-manager .manager-header{padding:12px!important;position:relative!important;display:flex!important;visibility:visible!important;opacity:1!important}.meal-manager .manager-content{overflow:visible!important;max-height:none!important;height:auto!important}.shopping-list-generator{background:#fff!important}.shopping-list-generator .shopping-list-header{padding:12px!important;position:relative!important;display:flex!important;visibility:visible!important;opacity:1!important;background:#fff!important}.shopping-list-generator .shopping-list-content{overflow:visible!important;max-height:none!important;height:auto!important;background:#fff!important}.modal-content.shopping-list-modal{background:#fff!important;opacity:1!important}.shopping-list-modal .generator-body,.shopping-list-modal .result-body,.shopping-list-modal .ingredient-category{background:#fff!important}.shopping-list-modal .category-header{background:#f8f9fa!important}.shopping-list-modal .ingredient-item{background:#fff!important}.meal-plan-editor .editor-header{padding:12px!important;position:relative!important;display:flex!important;visibility:visible!important;opacity:1!important}.meal-plan-editor .editor-body{overflow:visible!important;max-height:none!important;height:auto!important}.add-recipe-modal .modal-header{padding:12px!important;position:relative!important;display:flex!important;visibility:visible!important;opacity:1!important}.add-recipe-modal .modal-body{overflow:visible!important;max-height:none!important;height:auto!important}.meal-viewer>*,.meal-plan-viewer>*,.meal-manager>*,.shopping-list-generator>*,.meal-plan-editor>*,.add-recipe-modal>*{display:block!important;visibility:visible!important;opacity:1!important}}@media (max-width: 768px){.modal-overlay{display:block;overflow-y:auto;overflow-x:hidden;padding:0!important}.modal-content{margin:0!important;transform:none!important}.modal-overlay:has(.recipe-details-modal){position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;background:#fff!important;z-index:10000!important}.recipe-details-modal .recipe-modal-header{display:flex!important;flex-direction:column;gap:8px;padding:12px!important;position:relative!important;visibility:visible!important;opacity:1!important;transform:none!important;min-height:60px!important}.recipe-details-modal .header-left{width:100%;gap:8px!important}.recipe-details-modal .recipe-title-section{flex-direction:row;align-items:center;gap:8px!important}.recipe-details-modal .back-btn{flex-shrink:0}.recipe-details-modal .header-actions{position:absolute;top:12px;right:12px}.recipe-details-modal{padding:0!important}.recipe-details-modal .recipe-content{overflow:visible!important;max-height:none!important;height:auto!important;margin-top:0!important;padding-top:0!important}.recipe-details-modal>*{display:block!important;visibility:visible!important;opacity:1!important}.recipe-details-modal .recipe-tabs{position:relative!important;top:0!important;background:#fff!important;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;display:flex!important;justify-content:space-around!important;padding:0!important;overflow-x:visible!important}.recipe-details-modal .recipe-tabs .tab-btn{flex:1!important;padding:12px 4px!important;font-size:.85rem!important;white-space:nowrap!important}.recipe-details-modal .tab-content{min-height:300px!important;padding-bottom:80px!important}.recipe-details-modal .ingredients-section,.recipe-details-modal .instructions-section{max-height:none!important;overflow:visible!important}.recipe-details-modal .ingredient-item,.recipe-details-modal .instruction-item{padding:10px 12px!important;margin-bottom:8px!important;background:#f8f9fa!important;border-radius:8px!important}.recipe-details-modal .notes-section{background:#fff9e6!important;padding:12px!important;border-radius:8px!important;margin-top:12px!important}}.add-pairing-modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #00000026}.add-pairing-modal .modal-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.add-pairing-modal .modal-header h2{margin:0;display:flex;align-items:center;gap:.5rem;color:#2d3748;font-size:1.5rem}.add-pairing-modal .close-button{background:none;border:none;padding:.5rem;cursor:pointer;color:#718096;border-radius:6px;transition:all .2s}.add-pairing-modal .close-button:hover{background:#f7fafc;color:#2d3748}.add-pairing-modal .modal-content{padding:1.5rem;overflow-y:auto;flex:1}.pairing-info{background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.pairing-info p{margin:0;color:#1e40af}.search-box{position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:1rem;color:#9ca3af}.search-box input{width:100%;padding:.75rem 1rem .75rem 3rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:all .2s}.search-box input:focus{outline:none;border-color:#6366f1;background:#f9fafb}.recipe-list{margin-top:1rem;max-height:300px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;padding:.5rem}.recipe-option{padding:1rem;border:2px solid transparent;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.recipe-option:hover{background:#f9fafb;border-color:#e5e7eb}.recipe-option.selected{background:#eef2ff;border-color:#6366f1}.recipe-option-content{flex:1}.recipe-option h4{margin:0 0 .5rem;color:#1f2937;font-size:1rem}.recipe-option .recipe-meta{display:flex;gap:.5rem;margin-bottom:.5rem}.recipe-option .cuisine-badge,.recipe-option .type-badge{font-size:.75rem;padding:.125rem .5rem;border-radius:12px;font-weight:500}.recipe-option .cuisine-badge{background:#dbeafe;color:#1e40af}.recipe-option .type-badge{background:#fef3c7;color:#92400e;text-transform:capitalize}.recipe-option .recipe-description{margin:0;color:#6b7280;font-size:.875rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.selected-indicator{width:24px;height:24px;background:#6366f1;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.empty-state{text-align:center;padding:3rem 1rem;color:#9ca3af}.empty-state svg{margin-bottom:1rem}.empty-state p{margin:0 0 .5rem}.empty-state .hint{font-size:.875rem;color:#6b7280}.add-pairing-modal .form-group{margin-bottom:1.5rem}.add-pairing-modal .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#4b5563;font-size:.875rem}.add-pairing-modal .form-group select,.add-pairing-modal .form-group textarea{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:all .2s}.add-pairing-modal .form-group select:focus,.add-pairing-modal .form-group textarea:focus{outline:none;border-color:#6366f1;background:#f9fafb}.add-pairing-modal .modal-footer{padding:1.5rem;border-top:1px solid #e2e8f0;display:flex;gap:1rem;justify-content:flex-end}.add-pairing-modal .cancel-button,.add-pairing-modal .save-button{padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;font-size:1rem}.add-pairing-modal .cancel-button{background:#fff;border:2px solid #e5e7eb;color:#6b7280}.add-pairing-modal .cancel-button:hover{background:#f9fafb;border-color:#d1d5db}.add-pairing-modal .save-button{background:#6366f1;border:none;color:#fff}.add-pairing-modal .save-button:hover:not(:disabled){background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.add-pairing-modal .save-button:disabled{opacity:.5;cursor:not-allowed}.recipe-details-panel{position:fixed;top:0;right:-600px;width:600px;height:100vh;background:#fff;box-shadow:-4px 0 20px #0000001a;transition:right .3s ease-out;z-index:1000;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.recipe-details-panel.open{right:0}.recipe-details-panel.side-by-side{box-shadow:-2px 0 8px #0000001a}.slide-out-btn{display:none}.panel-header{padding:0;border-bottom:1px solid #e2e8f0;background:#fff}.header-top{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #e2e8f0}.back-btn{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:6px;transition:all .2s;display:flex;align-items:center;justify-content:center}.back-btn:hover{background:#f3f4f6;color:#374151}.header-content{padding:1.5rem}.header-content h2{margin:0 0 1rem;color:#2d3748;font-size:1.75rem;font-weight:700;line-height:1.3}.favorite-btn{background:#fff;border:2px solid #e5e7eb;padding:.5rem;cursor:pointer;border-radius:50%;transition:all .2s;color:#9ca3af;flex-shrink:0;display:flex;align-items:center;justify-content:center}.favorite-btn:hover{border-color:#e53e3e;color:#e53e3e;background:#fee2e2}.favorite-btn.active{background:#e53e3e;border-color:#e53e3e;color:#fff}.source-badge{padding:4px 8px;border-radius:4px;font-size:.875rem;background-color:#f3e8ff;color:#7c3aed;font-weight:500}.tags-bar{padding:.75rem 1.5rem;background:#f8f9fa;border-bottom:1px solid #e2e8f0}.recipe-detail-photo{width:100%;height:250px;overflow:hidden;position:relative;background:#f5f5f5}.recipe-detail-image{width:100%;height:100%;object-fit:cover;display:block}.recipe-meta-strip{padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:.5rem;align-items:center}.tags-strip{padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e5e7eb}.tags-strip-content{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}.tag-chip-small{font-size:.8rem;padding:.3rem .6rem;background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;border-radius:14px;white-space:nowrap;font-weight:500}.show-all-tags-link{background:none;border:none;color:#3b82f6;font-size:.75rem;padding:.25rem .5rem;cursor:pointer;text-decoration:none;transition:color .2s}.show-all-tags-link:hover{color:#2563eb;text-decoration:underline}.all-tags-section{padding:.75rem 1.5rem;background:#f9fafb;border-bottom:1px solid #e5e7eb}.all-tags-container{display:flex;flex-wrap:wrap;gap:.375rem}.more-tags-btn{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:.25rem .5rem;cursor:pointer;color:#6b7280;transition:all .2s;display:flex;align-items:center;justify-content:center}.more-tags-btn:hover{background:#f3f4f6;border-color:#9ca3af}.tags-dialog-header .close-btn:hover{background:#f3f4f6;color:#374151}.recipe-stats-row{display:flex;gap:1.5rem;flex-wrap:wrap}.recipe-stats-row .stat svg{color:#a0aec0}.panel-tabs{display:flex;border-bottom:1px solid #e2e8f0;background:#f7fafc}.panel-tabs .tab{flex:1;padding:1rem;border:none;background:none;cursor:pointer;font-weight:500;color:#718096;border-bottom:3px solid transparent;transition:all .3s}.panel-tabs .tab:hover{color:#4a5568}.panel-tabs .tab.active{color:#667eea;border-bottom-color:#667eea;background:#fff}.panel-content{flex:1;overflow-y:auto;padding:1.5rem}.loading-state{text-align:center;color:#718096;padding:2rem}.description-section{background:#f7fafc;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.make-recipe-section{margin-bottom:2rem}.make-recipe-button{width:100%;padding:1rem;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s}.make-recipe-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #48bb7866}.ingredients-section{margin-bottom:2rem}.ingredients-section h3{color:#2d3748;margin-bottom:1rem;font-size:1.125rem}.ingredients-list li{padding:.75rem;border-bottom:1px solid #e2e8f0;display:flex;gap:.5rem}.ingredients-list li:last-child{border-bottom:none}.ingredients-list .amount{font-weight:600;color:#667eea;min-width:100px}.ingredients-list .notes{color:#718096;font-size:.875rem;font-style:italic}.instructions-section h3{color:#2d3748;margin-bottom:1rem;font-size:1.125rem}.instructions-list{counter-reset:step-counter;padding-left:0}.instructions-list li{counter-increment:step-counter;margin-bottom:1.5rem;display:flex;gap:1rem}.instructions-list li:before{content:counter(step-counter);width:32px;height:32px;background:#667eea;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.instruction-content{flex:1;color:#2d3748;line-height:1.6}.instruction-content .duration{display:inline-flex;align-items:center;gap:.25rem;margin-left:.5rem;color:#718096;font-size:.875rem}.tips-notes-section{margin-top:2rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;border:1px solid #e2e8f0}.garnish-section,.tips-section,.additional-notes-section{margin-bottom:1.5rem}.garnish-section:last-child,.tips-section:last-child,.additional-notes-section:last-child{margin-bottom:0}.tips-notes-section h3{color:#2d3748;margin-bottom:.5rem;font-size:1rem;font-weight:600}.tips-notes-section p{color:#4a5568;line-height:1.6;margin:0;white-space:pre-wrap}.pairings-section{margin-top:2rem;padding:1.5rem;background:#fef3c7;border:1px solid #fde68a;border-radius:8px}.pairings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.pairings-header h3{margin:0;color:#92400e;font-size:1.125rem;display:flex;align-items:center;gap:.5rem}.add-pairing-btn{background:#fff;border:1px solid #fbbf24;color:#92400e;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .2s}.add-pairing-btn:hover{background:#fef9c3;border-color:#f59e0b;transform:translateY(-1px)}.pairing-group{margin-bottom:1.5rem}.pairing-group:last-child{margin-bottom:0}.pairing-group h4{margin:0 0 .75rem;color:#78350f;font-size:.875rem;font-weight:600}.pairing-list{display:flex;flex-direction:column;gap:.5rem}.pairing-item{background:#fff;border:1px solid #fde68a;border-radius:6px;padding:.75rem;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.pairing-item:hover{border-color:#fbbf24;box-shadow:0 2px 4px #fbbf2433}.pairing-content{display:flex;flex-direction:column;gap:.25rem;flex:1}.pairing-name{font-weight:600;color:#78350f;font-size:.9rem}.pairing-notes{font-size:.8rem;color:#92400e;font-style:italic}.remove-pairing-btn{background:none;border:none;padding:.25rem;cursor:pointer;color:#ef4444;border-radius:4px;transition:all .2s;opacity:.6}.remove-pairing-btn:hover{background:#fee2e2;opacity:1}.no-pairings{text-align:center;color:#92400e;font-size:.875rem;margin:1rem 0 0;font-style:italic}.tags-section{margin-top:2rem}.tags-section h3{color:#2d3748;margin-bottom:.75rem;font-size:1rem}.season-tags{display:flex;gap:.5rem;flex-wrap:wrap}.season-tag{padding:.25rem .75rem;background:#f0fff4;color:#276749;border-radius:20px;font-size:.875rem;font-weight:500}.actions-section{margin-top:2rem;padding-top:2rem;border-top:1px solid #e2e8f0;display:flex;gap:1rem}.edit-button,.delete-button{flex:1;padding:.75rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s}.edit-button{background:#e0e7ff;color:#5a67d8}.edit-button:hover{background:#5a67d8;color:#fff}.delete-button{background:#fed7d7;color:#c53030}.delete-button:hover{background:#fc8181;color:#fff}.sessions-list{display:flex;flex-direction:column;gap:1.5rem}.session-card{background:#f7fafc;border-radius:8px;padding:1.5rem;border:1px solid #e2e8f0}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.session-date{display:flex;align-items:center;gap:.5rem;color:#718096;font-size:.875rem}.session-rating{display:flex;gap:.25rem}.session-notes{margin:0 0 1rem;color:#2d3748;line-height:1.6}.session-meta{display:flex;gap:1rem;font-size:.875rem;color:#718096}.session-comments{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.session-comments h4{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;color:#4a5568;font-size:.875rem;font-weight:600}.comment{background:#fff;padding:.75rem;border-radius:6px;margin-bottom:.5rem}.comment p{margin:0 0 .25rem;color:#2d3748;font-size:.875rem}.comment-date{font-size:.75rem;color:#a0aec0}.add-comment-btn{margin-top:.75rem;padding:.5rem 1rem;background:#fff;border:2px dashed #cbd5e0;border-radius:6px;color:#718096;font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .3s}.add-comment-btn:hover{border-color:#667eea;color:#667eea}.empty-history{text-align:center;padding:3rem 1rem}.empty-history svg{color:#cbd5e0;margin-bottom:1rem}.empty-history p{color:#718096;margin-bottom:1.5rem}.make-recipe-modal,.delete-confirm-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal-content{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:500px;box-shadow:0 20px 40px #0003}.rating-section{margin-bottom:1.5rem}.rating-section label{display:block;margin-bottom:.5rem;font-weight:600;color:#4a5568;font-size:.875rem}.star-rating .star:hover,.star-rating .star.active{color:#ed8936;transform:scale(1.1)}.form-group{margin-bottom:1.5rem}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .3s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;background:#f8f9ff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.cancel-btn,.save-btn,.delete-btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.cancel-btn:hover{background:#e2e8f0}.save-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.delete-btn:hover{background:#f56565}@media (max-width: 768px){.recipe-details-panel{width:100%;right:-100%}.back-btn{padding:.375rem}.header-content{padding:1rem}.title-section h2{font-size:1.5rem}.favorite-btn{padding:.5rem}.tags-bar{padding:.5rem 1rem}.recipe-stats-row{padding:.75rem 1rem;gap:1rem}.recipe-stats-row .stat{font-size:.75rem}.recipe-stats-row .stat svg{width:14px;height:14px}.panel-content{padding:1rem}.form-row{grid-template-columns:1fr}.ingredients-section h3,.instructions-section h3{font-size:1.125rem;margin-bottom:.75rem}.ingredients-list li{padding:.5rem 0;font-size:.875rem}.instructions-list li{padding-left:1.5rem;font-size:.875rem}}.import-recipes-modal{background:#fff;border-radius:16px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003;overflow:hidden}.import-recipes-modal .modal-header h2{display:flex;align-items:center;gap:.75rem;color:#8b5cf6}.import-tabs{display:flex;border-bottom:1px solid #e2e8f0;background:#f7fafc}.import-tabs .tab{flex:1;padding:1rem;border:none;background:none;cursor:pointer;font-weight:500;color:#718096;border-bottom:3px solid transparent;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:.5rem}.import-tabs .tab:hover{color:#4a5568}.import-tabs .tab.active{color:#8b5cf6;border-bottom-color:#8b5cf6;background:#fff}.import-input-section{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.instructions{background:#f3f4f6;padding:1rem;border-radius:8px}.instructions p{margin:0 0 .5rem;font-weight:500;color:#374151}.instructions ul{margin:0;padding-left:1.5rem;color:#6b7280}.instructions li{margin:.25rem 0}.recipe-input{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:8px;font-family:Monaco,Consolas,monospace;font-size:.875rem;resize:vertical;transition:border-color .3s}.recipe-input:focus{outline:none;border-color:#8b5cf6}.recipe-input.json-input{font-family:Monaco,Consolas,Courier New,monospace;font-size:.8rem}.parse-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.parse-button:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#4f46e5);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666;color:#fff}.parse-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.edit-parsed-recipe{padding:1.5rem;overflow-y:auto;flex:1}.edit-parsed-recipe h3{margin:0 0 1.5rem;color:#1f2937}.recipe-preview{display:flex;flex-direction:column;gap:2rem}.form-section{background:#f9fafb;padding:1.5rem;border-radius:12px}.form-section h4{margin:0 0 1rem;color:#4b5563;font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.ingredients-list{display:flex;flex-direction:column;gap:.5rem}.ingredient-item{display:flex;gap:.5rem;align-items:center}.ingredient-item .amount-input{width:80px}.ingredient-item .unit-input{width:100px}.ingredient-item .name-input{flex:1}.ingredient-item input{padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem}.ingredient-item input:focus{outline:none;border-color:#8b5cf6}.instructions-list{display:flex;flex-direction:column;gap:.75rem}.instruction-item{display:flex;gap:.75rem;align-items:flex-start}.step-number{font-weight:600;color:#8b5cf6;min-width:24px;padding-top:.5rem}.instruction-item textarea{flex:1;padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;font-size:.875rem;resize:vertical;min-height:60px}.instruction-item textarea:focus{outline:none;border-color:#8b5cf6}.remove-button{padding:.25rem;background:#fee2e2;border:none;border-radius:4px;color:#dc2626;cursor:pointer;transition:all .2s}.remove-button:hover{background:#fecaca}.back-button{padding:.75rem 1.5rem;background:#f3f4f6;border:2px solid #e5e7eb;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.back-button:hover{background:#e5e7eb}.import-button{padding:.75rem 1.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.import-button:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166;color:#fff}.import-button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width: 768px){.import-recipes-modal{max-height:100vh;border-radius:0}.form-row{grid-template-columns:1fr}.ingredient-item{flex-wrap:wrap}.ingredient-item .amount-input,.ingredient-item .unit-input{width:calc(50% - .25rem)}.ingredient-item .name-input{width:100%}}.template-section{position:relative;background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;padding:1rem;margin:1rem 0}.json-template{background:#1e293b;color:#e2e8f0;padding:1rem;border-radius:6px;font-family:Monaco,Consolas,Courier New,monospace;font-size:.75rem;line-height:1.5;overflow-x:auto;margin:0;max-height:400px;overflow-y:auto}.copy-template-btn{position:absolute;top:1.5rem;right:1.5rem;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:2px solid #e2e8f0;border-radius:6px;color:#4a5568;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .3s}.copy-template-btn:hover{background:#f7fafc;border-color:#cbd5e0}.copy-template-btn svg{color:#6b7280}.template-hint{margin:1rem 0;padding:.75rem;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;color:#92400e;font-size:.875rem;line-height:1.5}.import-input-section h3{color:#2d3748;margin:1.5rem 0 .75rem;font-size:1.125rem;font-weight:600}.season-tags{display:flex;gap:1rem;flex-wrap:wrap}.season-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:#4b5563;font-size:.875rem}.season-checkbox input[type=checkbox]{cursor:pointer}.current-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.tag-item{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;background:#8b5cf6;color:#fff;border-radius:16px;font-size:.875rem}.tag-item button{background:none;border:none;color:#fff;cursor:pointer;padding:0;display:flex;align-items:center;opacity:.8;transition:opacity .2s}.tag-item button:hover{opacity:1}.recipes-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem;position:relative;transition:padding-right .3s ease}.recipes-container.panel-open{padding-right:calc(600px + 2rem)}.auth-required{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;color:#fff}.auth-required h2{margin:1rem 0;font-size:2rem}.auth-required p{opacity:.9;font-size:1.1rem}.recipes-header{background:#fffffff2;border-radius:16px;padding:1.5rem 2rem;margin-bottom:2rem;box-shadow:0 8px 32px #0000001a}.header-content{display:flex;justify-content:space-between;align-items:center}.recipes-header h1{color:#5a67d8;font-size:2.5rem;margin:0}.import-recipe-button{display:flex;align-items:center;gap:.5rem;background:#fff;color:#764ba2;border:2px solid #764ba2;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.import-recipe-button:hover{background:#f3f0ff;transform:translateY(-2px);box-shadow:0 4px 12px #764ba233}.add-recipe-button{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.add-recipe-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.recipes-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 16px #0000001a;transition:all .3s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.stat-card svg{width:40px;height:40px;padding:8px;border-radius:8px}.stat-card.total svg{background:#e0e7ff;color:#5a67d8}.stat-card.favorites svg{background:#fed7d7;color:#e53e3e}.stat-card.recent svg{background:#d6f5d6;color:#38a169}.stat-card.top-rated svg{background:#fef5e7;color:#ed8936}.stat-card h3{margin:0;font-size:1.75rem;font-weight:700}.stat-card p{margin:0;color:#718096;font-size:.875rem}.recipes-controls{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;box-shadow:0 4px 16px #0000001a}.search-bar{flex:0 1 500px;min-width:300px;display:flex;align-items:center;gap:.75rem;background:#f7fafc;border-radius:8px;padding:.75rem 1rem;border:2px solid transparent;transition:all .3s;position:relative}.search-bar:focus-within{border-color:#667eea;background:#fff}.search-bar input{flex:1;border:none;background:none;outline:none;font-size:1rem;color:#2d3748}.search-bar:has(.clear-search-btn) input{padding-right:2rem}.search-bar>svg:first-child{color:#a0aec0;flex-shrink:0}.clear-search-btn{position:absolute;right:.75rem;background:none;border:none;padding:.25rem;cursor:pointer;color:#718096;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.clear-search-btn:hover{color:#2d3748;background:#0000000d}.clear-search-btn:active{transform:scale(.9)}.tag-cloud{margin:1rem 0;background:#fffffff2;border-radius:12px;padding:1rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.tag-cloud-label{font-size:.875rem;font-weight:600;color:#4a5568;margin-bottom:.75rem}.tag-cloud-items{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.tag-cloud-item{background:linear-gradient(135deg,#e0e7ff,#f0f4ff);border:2px solid #c7d2fe;color:#5a67d8;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:.25rem}.tag-cloud-item:hover{background:linear-gradient(135deg,#c7d2fe,#e0e7ff);transform:translateY(-1px);box-shadow:0 2px 8px #5a67d84d}.tag-cloud-item.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.tag-cloud-item.active:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1);transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.clear-tags-btn{background:#fed7d7;border:2px solid #fc8181;color:#c53030;padding:.375rem .75rem;border-radius:16px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .3s}.clear-tags-btn:hover{background:#fc8181;color:#fff;transform:translateY(-1px)}.control-buttons{display:flex;gap:1rem;align-items:center}.filter-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s}.filter-button:hover,.filter-button.active{background:#667eea;color:#fff;border-color:#667eea}.view-toggle{display:flex;background:#f7fafc;border-radius:8px;overflow:hidden}.view-toggle button{padding:.5rem 1rem;border:none;background:none;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .3s}.view-toggle button.active{background:#667eea;color:#fff}.filters-panel{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;box-shadow:0 4px 16px #0000001a;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filter-group{flex:1;min-width:200px}.filter-group label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#4a5568}.filter-group select{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;cursor:pointer;transition:all .3s}.filter-group select:focus{outline:none;border-color:#667eea}.clear-filters{padding:.75rem 1.5rem;background:#fed7d7;color:#c53030;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s}.clear-filters:hover{background:#fc8181;color:#fff}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;transition:all .3s ease}.recipes-grid.squeezed{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.recipes-grid.list{grid-template-columns:1fr}.loading-state,.empty-state{background:#fff;border-radius:12px;padding:4rem 2rem;text-align:center;box-shadow:0 4px 16px #0000001a}.spinner{width:40px;height:40px;margin:0 auto 1rem;border:4px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state svg{color:#cbd5e0;margin-bottom:1rem}.empty-state h3{color:#4a5568;margin-bottom:.5rem}.empty-state p{color:#718096}.error-state{background:#fed7d7;color:#c53030;padding:1rem;border-radius:8px;text-align:center}.mobile-tag-section{margin:.5rem 1rem;background:#fff;border-radius:8px;padding:.75rem;box-shadow:0 2px 8px #0000000d}.mobile-tag-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f7fafc;border:2px solid transparent;border-radius:6px;width:100%;font-size:.95rem;color:#374151;cursor:pointer;transition:all .2s}.mobile-tag-button:hover{background:#fff;border-color:#667eea}.mobile-tag-button span{flex:1;text-align:left}.tag-count-badge{margin-left:auto;background:#6366f1;color:#fff;padding:.125rem .5rem;border-radius:12px;font-size:.875rem;font-weight:600}.selected-tags-preview{display:flex;gap:.25rem;margin-top:.25rem;flex-wrap:wrap;padding:.25rem 0}.selected-tag-chip{padding:.2rem .5rem;background:#e0e7ff;color:#5a67d8;border-radius:16px;font-size:.85rem}.more-tags{padding:.2rem .5rem;background:#f3f4f6;color:#6b7280;border-radius:16px;font-size:.85rem}.mobile-tag-overlay{position:fixed;inset:0;background:#00000080;z-index:1998;animation:fadeIn .2s}.mobile-tag-menu{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -4px 20px #00000026;z-index:1999;max-height:80vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s ease-out}.mobile-tag-menu.open{transform:translateY(0)}.mobile-tag-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.mobile-tag-header h3{margin:0;font-size:1.25rem;color:#1f2937}.close-tag-menu{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:8px;transition:all .2s}.close-tag-menu:hover{background:#f3f4f6;color:#374151}.mobile-tag-actions{padding:.75rem 1.25rem;border-bottom:1px solid #e5e7eb}.clear-all-tags{padding:.5rem 1rem;background:#fee2e2;color:#dc2626;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.clear-all-tags:hover{background:#fecaca}.mobile-tag-list{flex:1;overflow-y:auto;padding:.5rem;-webkit-overflow-scrolling:touch}.mobile-tag-item{display:flex;align-items:center;width:100%;padding:.875rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s;text-align:left}.mobile-tag-item:hover{background:#f9fafb;border-color:#9ca3af}.mobile-tag-item.active{background:#e0e7ff;border-color:#6366f1}.tag-name{flex:1;font-size:1rem;color:#374151}.tag-count{color:#6b7280;font-size:.875rem;margin-left:.5rem}.tag-check{color:#6366f1;font-weight:700;margin-left:.5rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media only screen and (max-width: 430px){body{overflow-x:hidden;width:100%}input,textarea,select,button{font-size:16px!important}.recipes-container{padding:1rem;min-height:100vh;width:100%;max-width:100vw;overflow-x:hidden}.recipes-header{padding:1rem}.header-content{flex-direction:column;gap:1rem;text-align:center}.recipes-header h1{font-size:1.75rem}.recipes-stats{grid-template-columns:repeat(2,1fr)}.recipes-controls{padding:.75rem;margin-bottom:1rem;gap:.5rem;flex-direction:row;flex-wrap:nowrap}.search-bar{flex:1 1 auto;min-width:0;padding:.5rem .75rem;gap:.5rem}.search-bar input{font-size:.95rem}.search-bar>svg:first-child{width:18px;height:18px;flex-shrink:0}.clear-search-btn{padding:.2rem;right:.5rem}.clear-search-btn svg{width:16px;height:16px}.control-buttons{display:flex;gap:.5rem;flex-shrink:0}.control-buttons .filter-button{padding:.5rem .75rem;font-size:.9rem}.control-buttons .filter-button span{display:none}.control-buttons .filter-button svg{margin:0}.recipes-grid{grid-template-columns:1fr}.recipes-container.panel-open{padding-right:1rem}.recipes-grid.squeezed{grid-template-columns:1fr}.tag-cloud{display:none!important}}@media (min-width: 769px) and (max-width: 1024px){.recipes-container.panel-open{padding-right:calc(500px + 2rem)}.recipes-grid.squeezed{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.recipe-details-mobile{background:#f5f7fa;min-height:100vh}@media only screen and (max-width: 768px){.recipe-details-mobile{position:fixed;inset:0;width:100vw;height:100vh;z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#f5f7fa}}.mobile-header{position:sticky;top:0;background:#fff;border-bottom:1px solid #e2e8f0;padding:1rem;display:flex;justify-content:space-between;align-items:center;z-index:100}.back-btn{background:none;border:none;padding:.5rem;cursor:pointer;color:#4a5568;border-radius:6px;transition:all .2s}.back-btn:hover{background:#f3f4f6;color:#2d3748}.mobile-content{background:#fff;padding-bottom:2rem}.recipe-header-section{padding:1.5rem;border-bottom:1px solid #e2e8f0}.recipe-header-section h1{margin:0 0 1rem;color:#2d3748;font-size:1.75rem;font-weight:700;line-height:1.3}.recipe-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.cuisine-badge,.meal-badge,.difficulty-badge{font-size:.75rem;padding:.25rem .75rem;border-radius:20px;font-weight:600}.cuisine-badge{background:#e0e7ff;color:#5a67d8}.meal-badge{background:#fed7e7;color:#d53f8c}.difficulty-badge{background:#f7fafc;color:#4a5568}.difficulty-badge.easy{background:#c6f6d5;color:#276749}.difficulty-badge.medium{background:#fed7aa;color:#9c4221}.difficulty-badge.hard{background:#fed7d7;color:#9b2c2c}.recipe-stats-row{display:flex;gap:1rem;flex-wrap:wrap}.recipe-stats-row .stat{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#4a5568}.tags-bar{padding:.75rem 1rem;background:#f8f9fa;border-bottom:1px solid #e2e8f0}.tags-preview{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tag-chip{font-size:.75rem;padding:.25rem .625rem;background:#fff;border:1px solid #e5e7eb;border-radius:12px;color:#6b7280;font-weight:500}.more-tags-btn{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:.25rem .5rem;cursor:pointer;color:#6b7280;transition:all .2s}.mobile-tabs{display:flex;background:#fff;border-bottom:2px solid #e2e8f0;position:sticky;top:60px;z-index:50}.mobile-tabs .tab{flex:1;padding:1rem;background:none;border:none;font-weight:600;color:#6b7280;position:relative;cursor:pointer;transition:all .2s}.mobile-tabs .tab.active{color:#5a67d8}.mobile-tabs .tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#5a67d8}.tab-content{padding:1rem}.description-section{padding:1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem}.description-section p{margin:0;color:#4a5568;line-height:1.6}.action-buttons{display:flex;gap:.75rem;margin-bottom:1.5rem}.make-recipe-button{flex:1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s}.edit-button,.delete-button{background:#fff;border:2px solid #e2e8f0;padding:.875rem 1rem;border-radius:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.edit-button{color:#4a5568}.delete-button{color:#e53e3e}.ingredients-section,.instructions-section{margin-bottom:2rem}.ingredients-section h3,.instructions-section h3{font-size:1.25rem;color:#2d3748;margin-bottom:1rem}.ingredients-list{list-style:none;padding:0;margin:0}.ingredients-list li{padding:.75rem 0;border-bottom:1px solid #e2e8f0;display:flex;gap:.5rem}.ingredients-list .amount{font-weight:600;color:#5a67d8;min-width:80px}.ingredients-list .name{flex:1;color:#2d3748}.ingredients-list .notes{color:#718096;font-style:italic;font-size:.875rem}.instructions-list{list-style:none;padding:0;margin:0;counter-reset:step-counter}.instructions-list li{position:relative;padding:1rem 0 1rem 2rem;border-bottom:1px solid #e2e8f0;counter-increment:step-counter;line-height:1.6}.instructions-list li:before{content:counter(step-counter);position:absolute;left:0;top:1rem;width:1.5rem;height:1.5rem;background:#5a67d8;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.history-tab{padding:1rem 0}.empty-history{text-align:center;padding:3rem 1rem;color:#718096}.history-list{display:flex;flex-direction:column;gap:1rem}.history-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.session-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.cook-name{font-weight:600;color:#2d3748}.session-date{font-size:.875rem;color:#718096}.session-rating{margin-bottom:.5rem}.session-notes{margin:.5rem 0;color:#4a5568;font-style:italic}.servings-made{margin:0;font-size:.875rem;color:#718096}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal-content{background:#fff;border-radius:12px;padding:1.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-content h3{margin:0 0 1.5rem;color:#2d3748}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#4a5568;font-size:.875rem}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s}.star-rating{display:flex;gap:.5rem}.star-rating .star{background:none;border:none;padding:.25rem;cursor:pointer;color:#cbd5e0;transition:all .2s}.star-rating .star.active{color:#ed8936}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.cancel-btn,.save-btn,.delete-btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn{background:#f7fafc;border:2px solid #e2e8f0;color:#4a5568}.save-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.delete-btn{background:#fc8181;border:none;color:#fff}.tags-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.tags-dialog{background:#fff;border-radius:12px;width:100%;max-width:400px;box-shadow:0 20px 40px #00000026}.tags-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0}.tags-dialog-header h3{margin:0;font-size:1.125rem;color:#2d3748}.tags-dialog-header .close-btn{background:none;border:none;padding:.25rem;cursor:pointer;color:#6b7280;border-radius:6px;transition:all .2s}.tags-dialog-content{padding:1.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.tags-dialog-content .tag-chip{font-size:.875rem;padding:.375rem .875rem;border-radius:16px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.modal-content.recipe-details-modal{max-width:800px!important;width:90%!important;max-height:85vh!important;display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;padding:0!important;position:relative}.recipe-photo-section{width:100%;height:250px;overflow:hidden;position:relative;background:#f5f5f5}.recipe-hero-image{width:100%;height:100%;object-fit:cover;display:block}.recipe-modal-header{padding:20px 60px 20px 24px;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:8px;background:linear-gradient(to bottom,#fff,#f8f9fa)}.recipe-modal-header h2{margin:0;font-size:1.5rem;color:#2d3748;line-height:1.3}.edit-btn-floating{position:absolute;top:20px;right:20px;background:#fff;border:1px solid #e0e0e0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:1.2rem;z-index:10;box-shadow:0 2px 4px #0000001a}.edit-btn-floating:hover{background:#f0f0f0;border-color:#007bff;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.cuisine-badge{font-size:.875rem;padding:.375rem .75rem;background:#e0e7ff;color:#5a67d8;border-radius:16px;font-weight:600}.back-btn{background:transparent;border:1px solid #e0e0e0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;color:#666;transition:all .2s}.back-btn:hover{background:#f0f0f0;border-color:#007bff;color:#007bff}.recipe-meta{padding:20px 24px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;gap:24px;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:8px}.meta-icon{font-size:1.2rem}.meta-item>div{display:flex;flex-direction:column}.meta-label{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.5px}.meta-value{font-weight:600;color:#333;font-size:.95rem}.recipe-description{padding:16px 24px;background:#fff;border-bottom:1px solid #f0f0f0}.recipe-description p{margin:0;color:#666;line-height:1.6}.recipe-tags{padding:12px 24px;display:flex;gap:8px;flex-wrap:wrap;background:#fff;border-bottom:1px solid #f0f0f0}.recipe-tag{padding:4px 12px;background:#f0f0f0;color:#666;border-radius:12px;font-size:.85rem}.recipe-tabs{padding:0 24px;background:#fff;border-bottom:2px solid #e0e0e0;display:flex;gap:4px}.tab-btn{padding:12px 20px;background:transparent;border:none;border-bottom:2px solid transparent;color:#666;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-2px}.tab-btn:hover{color:#333;background:#f8f9fa}.tab-btn.active{color:#007bff;border-bottom-color:#007bff}.recipe-tab-content{flex:1;overflow-y:auto;padding:24px;min-height:200px}.ingredients-section{max-width:600px}.ingredients-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.ingredient-item{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid #f0f0f0}.ingredient-item:last-child{border-bottom:none}.ingredient-bullet{color:#007bff;font-weight:700;flex-shrink:0}.ingredient-text{color:#333;line-height:1.5}.instructions-section{max-width:700px}.instructions-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px}.instruction-item{display:flex;gap:16px;align-items:flex-start}.instruction-number{width:32px;height:32px;background:#007bff;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.instruction-text{color:#333;line-height:1.6;flex:1;padding-top:4px}.notes-section{max-width:700px}.notes-text{margin:0;color:#333;line-height:1.6;white-space:pre-wrap}.no-content{text-align:center;color:#999;padding:40px;font-style:italic}.recipe-source{padding:16px 24px;background:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;align-items:center;gap:8px}.source-label{font-weight:600;color:#666;font-size:.9rem}.source-link{color:#007bff;text-decoration:none;font-size:.9rem;word-break:break-all}.source-link:hover{text-decoration:underline}.recipe-modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;background:#f8f9fa}.loading-state,.error-state{padding:60px;text-align:center;color:#666}.error-state{color:#dc3545}@media only screen and (max-width: 768px){.modal-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#fff;z-index:9999;display:block;align-items:flex-start;justify-content:flex-start;padding:0;margin:0;overflow:hidden}.recipe-modal-footer{position:fixed;bottom:0;left:0;right:0;padding:0;border-top:none;background:transparent;z-index:100}.btn-back-sticky{border-radius:0;box-shadow:0 -2px 10px #0000001a}.modal-content.recipe-details-modal{position:relative;top:0;left:0;width:100vw!important;max-width:100vw!important;height:100vh!important;max-height:100vh!important;min-height:100vh!important;border-radius:0!important;overflow-x:hidden!important;overflow-y:auto!important;margin:0!important;display:flex;flex-direction:column;padding-bottom:60px!important}.recipe-modal-header{padding:16px 56px 12px 16px;position:relative;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:6px}.recipe-modal-header h2{font-size:1.2rem;margin:0;word-break:break-word;line-height:1.3}.edit-btn-floating{position:absolute;top:16px;right:16px;width:32px;height:32px;font-size:1rem;z-index:10}.cuisine-badge{font-size:.75rem;padding:.25rem .5rem;background:#e0e7ff;color:#5a67d8;border-radius:12px;font-weight:600;white-space:nowrap;display:inline-block;margin-top:4px}.recipe-meta{padding:8px 16px 16px;gap:16px}.meta-item{min-width:45%}.recipe-tabs{padding:0 8px;display:flex;justify-content:space-around;gap:2px;overflow-x:visible!important;white-space:nowrap}.tab-btn{padding:10px 8px;font-size:.85rem;flex:1;min-width:0;text-align:center}.recipe-tab-content{padding:16px 16px 80px;overflow:visible!important;height:auto!important;max-height:none!important;min-height:400px}.instruction-item{flex-direction:row;gap:12px}.instruction-number{width:28px;height:28px;font-size:.9rem}.ingredients-section,.instructions-section,.notes-section,.ingredients-list,.instructions-list{max-height:none!important;overflow:visible!important}}.modal-content.meal-plan-viewer{max-width:900px!important;width:90%!important;max-height:85vh!important;display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;padding:0!important}.viewer-header{padding:20px 24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:start;background:linear-gradient(to bottom,#fff,#f8f9fa)}.viewer-title-section h2{margin:0 0 4px;font-size:1.5rem;font-weight:600;color:#1a1a1a}.viewer-description{margin:0;color:#666;font-size:.95rem;line-height:1.4}.viewer-stats{padding:16px 24px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;gap:24px;justify-content:center;align-items:center}.viewer-notes{margin:16px 24px;padding:12px 16px;background:#fff9e6;border-radius:8px;border:1px solid #ffd966}.notes-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.notes-icon{font-size:1rem}.notes-label{font-weight:600;color:#666;font-size:.9rem}.notes-content{margin:0;color:#333;font-size:.95rem;line-height:1.5}.viewer-content{flex:1;overflow-y:auto;padding:16px 24px;min-height:200px}.empty-state p{margin:0 0 20px;font-size:1.1rem}.meals-list{display:flex;flex-direction:column;gap:12px}.meal-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:all .2s}.meal-item:hover{border-color:#007bff;box-shadow:0 2px 8px #00000014}.meal-header{padding:12px 16px;background:#f8f9fa;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s}.meal-header:hover{background:#f0f1f3}.meal-header-left{display:flex;align-items:center;gap:10px;flex:1}.expand-icon{font-size:.75rem;color:#666;width:12px;transition:transform .2s}.expand-icon.small{font-size:.65rem;width:10px}.meal-icon{font-size:1.3rem}.meal-name{font-weight:600;color:#333;font-size:1.05rem}.meal-type-badge{padding:3px 10px;background:#e7f3ff;color:#007bff;border-radius:12px;font-size:.85rem;font-weight:500;text-transform:capitalize}.meal-header-right{display:flex;align-items:center}.meal-stats{font-size:.9rem;color:#666}.courses-list{padding:8px 12px 12px 40px;background:#fff;display:flex;flex-direction:column;gap:8px}.course-item{background:#f8f9fa;border:1px solid #e8e8e8;border-radius:6px;overflow:hidden}.course-header{padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s}.course-header:hover{background:#f0f1f3}.course-header-left{display:flex;align-items:center;gap:8px;flex:1}.course-icon{font-size:1.1rem}.course-name{font-weight:500;color:#333;font-size:.95rem}.servings-badge{padding:2px 8px;background:#fff;border:1px solid #d0d0d0;border-radius:10px;font-size:.8rem;color:#666}.course-stats{font-size:.85rem;color:#666}.recipes-list{padding:8px 12px 12px 32px;background:#fff;display:flex;flex-direction:column;gap:8px}.recipe-item{display:flex;gap:10px;padding:10px 12px;background:#fff;border:1px solid #f0f0f0;border-radius:6px;transition:all .2s}.recipe-icon{font-size:1.2rem;flex-shrink:0}.recipe-content{flex:1;display:flex;flex-direction:column;gap:4px}.recipe-name{font-weight:500;color:#333;font-size:.95rem}.recipe-name-link{font-weight:500;color:#007bff;font-size:.95rem;background:none;border:none;padding:0;cursor:pointer;text-align:left;text-decoration:none;transition:all .2s}.recipe-details{display:flex;gap:12px;flex-wrap:wrap}.custom-item-display{display:flex;align-items:baseline;flex:1}.custom-description{color:#666;font-size:.9rem;font-style:italic}.recipe-time,.recipe-servings,.recipe-difficulty{font-size:.8rem;color:#666;display:flex;align-items:center;gap:4px}.no-courses{padding:20px;text-align:center;color:#999;font-size:.9rem;font-style:italic}.no-courses p{margin:0}.viewer-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;background:#f8f9fa}@media only screen and (max-width: 768px){.modal-overlay{overflow-y:auto!important;display:block!important}.modal-content.meal-plan-viewer{position:relative!important;top:0!important;width:100%!important;max-height:100vh!important;height:100vh!important;min-height:100vh!important;border-radius:0!important;overflow-y:auto!important;padding-bottom:60px!important;margin:0!important;transform:none!important}.viewer-header{padding:12px;flex-direction:column;gap:8px;position:relative;background:#fff;z-index:10}.viewer-header-actions{width:100%;justify-content:space-between}.viewer-stats{padding:8px 12px;gap:8px;flex-direction:row!important;justify-content:space-around;min-height:auto}.stat{flex-direction:row;gap:6px;align-items:baseline}.stat-value{font-size:1.1rem}.stat-label{font-size:.75rem;margin-top:0;margin-left:2px}.stat-divider{height:20px}.viewer-content{padding:12px;overflow:visible!important;height:auto!important;max-height:none!important}.viewer-footer{position:fixed;bottom:0;left:0;right:0;padding:0;border-top:none;background:transparent;z-index:100}.viewer-content{padding-bottom:70px!important}.recipe-icon{display:none!important}.meal-header{flex-direction:column;align-items:flex-start;gap:8px}.meal-header-right{width:100%}.courses-list{padding-left:24px}.recipes-list{padding-left:16px}.recipe-details{flex-direction:column;gap:4px}}.courses-list,.recipes-list{animation:slideDown .3s ease-out}.modal-content.meal-viewer{max-width:800px!important;width:90%!important;max-height:85vh!important;display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;padding:0!important}.meal-viewer-header{padding:20px 24px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:start;background:linear-gradient(to bottom,#fff,#f8f9fa)}.viewer-title-section{flex:1}.meal-header-info{display:flex;align-items:center;gap:12px}.meal-icon-large{font-size:2rem}.meal-header-info h2{margin:0 0 2px;font-size:1.4rem;font-weight:600;color:#1a1a1a}.meal-plan-subtitle{margin:0;color:#666;font-size:.9rem}.meal-type-badge-large{padding:6px 14px;background:#e7f3ff;color:#007bff;border-radius:14px;font-size:.9rem;font-weight:500;text-transform:capitalize}.viewer-header-actions{display:flex;gap:8px;align-items:center}.btn-manage-viewer{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.btn-manage-viewer:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 2px 8px #007bff4d}.btn-manage-viewer .icon{font-size:1rem}.meal-stats-bar{padding:16px 24px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;gap:24px;justify-content:center;align-items:center}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.75rem;font-weight:700;color:#007bff;line-height:1}.stat-label{font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.stat-divider{width:1px;height:40px;background:#d0d0d0}.meal-content{flex:1;overflow-y:auto;padding:20px 24px;min-height:200px}.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state p{margin:0;font-size:1.1rem}.courses-list{display:flex;flex-direction:column;gap:16px}.course-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;transition:all .2s;box-shadow:0 2px 4px #0000000d}.course-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.course-header{padding:14px 18px;background:linear-gradient(to right,#f8f9fa,#fff);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8e8e8}.course-header-left{display:flex;align-items:center;gap:10px;flex:1}.course-icon{font-size:1.2rem}.course-name{font-weight:500;color:#333;font-size:1rem}.servings-badge{padding:3px 10px;background:#fff;border:1px solid #d0d0d0;border-radius:12px;font-size:.85rem;color:#666}.course-header-right{display:flex;align-items:center}.course-stats{font-size:.9rem;color:#666}.recipes-list{padding:16px;background:#fafafa;display:flex;flex-direction:column;gap:10px}.no-recipes-in-course{padding:24px;text-align:center;color:#999;font-style:italic;background:#fafafa}.no-recipes-in-course p{margin:0}.recipe-item{display:flex;gap:12px;padding:12px;background:#fff;border:1px solid #f0f0f0;border-radius:6px;transition:all .2s}.recipe-item:hover{background:#f8f9fa;border-color:#d0d0d0}.recipe-icon{font-size:1.3rem;flex-shrink:0}.recipe-content{flex:1;display:flex;flex-direction:column;gap:6px}.recipe-name-link{font-weight:500;color:#007bff;font-size:1rem;background:none;border:none;padding:0;cursor:pointer;text-align:left;text-decoration:none;transition:all .2s}.recipe-name-link:hover{color:#0056b3;text-decoration:underline}.recipe-name-link:focus{outline:2px solid #007bff;outline-offset:2px;border-radius:2px}.recipe-details{display:flex;gap:14px;flex-wrap:wrap}.recipe-time,.recipe-servings,.recipe-difficulty{font-size:.85rem;color:#666;display:flex;align-items:center;gap:4px}.meal-viewer-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;background:#f8f9fa}.btn-secondary{padding:10px 20px;background:#f0f0f0;color:#333;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#e0e0e0}.btn-back-sticky{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:0;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.btn-back-sticky:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1);transform:translateY(-1px)}.btn-back-sticky:active{transform:translateY(0)}@media only screen and (max-width: 768px){.modal-overlay{overflow-y:auto!important;display:block!important}.modal-content.meal-viewer{position:relative!important;top:0!important;width:100%!important;max-width:100%!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;overflow-y:auto!important;padding-bottom:60px!important;margin:0!important;transform:none!important}.meal-viewer-header{padding:12px 16px;flex-direction:column;gap:8px}.viewer-title-section{width:100%}.meal-header-info{flex-wrap:wrap;gap:8px}.meal-header-info h2{font-size:1.2rem}.meal-icon-large{font-size:1.5rem}.meal-type-badge-large{padding:4px 10px;font-size:.8rem}.viewer-header-actions{width:100%;justify-content:space-between}.btn-manage-viewer{padding:6px 12px;font-size:.9rem}.btn-manage-viewer span:not(.icon){display:none}.meal-stats-bar{padding:8px 12px;gap:8px;flex-direction:row!important;justify-content:space-around;min-height:auto}.stat{flex-direction:row;gap:6px;align-items:baseline}.stat-value{font-size:1.1rem}.stat-label{font-size:.75rem;margin-top:0;margin-left:2px}.stat-divider{height:20px}.meal-content{padding:12px}.courses-list{gap:12px}.course-card{border-radius:8px}.course-header{padding:10px 12px;flex-wrap:wrap;gap:8px}.course-header-left{flex:1;min-width:150px}.course-icon{font-size:1rem}.course-name{font-size:.9rem}.servings-badge{font-size:.75rem;padding:2px 6px}.course-stats{font-size:.8rem}.recipes-list{padding:12px;gap:8px}.recipe-item{flex-direction:column;gap:8px;padding:10px}.recipe-content{width:100%}.recipe-details{flex-wrap:wrap;gap:8px}.recipe-time,.recipe-servings,.recipe-difficulty{font-size:.75rem}.meal-viewer-footer{position:fixed;bottom:0;left:0;right:0;padding:0;border-top:none;background:transparent;z-index:100}.meal-content{padding-bottom:70px!important}.recipe-icon{display:none!important}.btn-secondary{width:100%}}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.recipes-list{animation:slideDown .3s ease-out}.meal-plan-card-modern{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;transition:all .3s ease;display:flex;flex-direction:column}.meal-plan-card-modern:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.card-header{padding:16px 20px;display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid #f0f0f0}.card-title-section{flex:1;min-width:0;cursor:pointer;transition:opacity .2s}.card-title-section:hover{opacity:.9}.card-title-section h3{margin:0 0 4px;font-size:1.25rem;font-weight:600;color:#007bff!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .2s;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px}.card-title-section:hover h3{color:#0056b3!important;text-decoration:underline;text-decoration-color:#0056b3}.card-description{margin:0;font-size:.875rem;color:#666;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-actions-quick{display:flex;gap:8px;margin-left:12px;align-items:center}.btn-header{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid #e0e0e0;background:#fff;cursor:pointer;transition:all .2s;font-size:.9rem}.btn-header .icon{font-size:1rem}.btn-header .btn-text{font-weight:500;color:#333}.btn-manage-meals:hover{background:#f0f0f0;border-color:#999}.btn-shopping:hover{background:#e8f4ff;border-color:#007bff}.btn-shopping:hover .btn-text{color:#007bff}.btn-icon{background:transparent;border:none;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.btn-icon:hover{background:#f5f5f5}.btn-icon .icon{font-size:1.1rem}.card-stats-bar{padding:12px 20px;background:linear-gradient(to right,#f8f9fa,#fff);display:flex;align-items:center;gap:20px;border-bottom:1px solid #f0f0f0}.stat-item{display:flex;flex-direction:column;align-items:center;min-width:50px}.stat-number{font-size:1.5rem;font-weight:700;color:#1a1a1a;line-height:1}.stat-label{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.stat-divider{width:1px;height:30px;background:#e0e0e0}.empty-state-inline{display:flex;align-items:center;gap:12px;color:#999;font-size:.9rem}.btn-text-primary{background:none;border:none;color:#007bff;font-weight:500;cursor:pointer;padding:0;transition:color .2s}.btn-text-primary:hover{color:#0056b3}.card-meals-preview{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.meal-preview-card{background:#f8f9fa;border-radius:8px;padding:12px;transition:background .2s}.meal-preview-card:hover{background:#f0f1f3}.meal-preview-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.meal-type-icon{font-size:1.2rem}.meal-name{font-weight:500;color:#333;flex:1}.meal-name-btn{font-weight:500;color:#007bff;flex:1;background:none;border:none;padding:0;cursor:pointer;text-align:left;font-size:inherit;transition:all .2s}.meal-name-btn:hover{color:#0056b3;text-decoration:underline}.meal-name-btn:focus{outline:2px solid #007bff;outline-offset:2px;border-radius:2px}.meal-stats{font-size:.85rem;color:#666}.btn-make-meal{background:transparent;border:none;padding:4px 8px;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;margin-left:8px}.btn-make-meal:hover{background:#e8f5e9}.btn-make-meal .icon{font-size:1.1rem}.meal-recipe-list{display:flex;flex-wrap:wrap;gap:6px;margin-left:28px}.recipe-chip{background:#fff;padding:4px 10px;border-radius:12px;font-size:.85rem;color:#555;border:1px solid #e0e0e0}.custom-item-chip{background:#e8ffe8;padding:4px 10px;border-radius:12px;font-size:.85rem;color:#28a745;border:1px solid #28a745;font-weight:500}.recipe-more{padding:4px 10px;font-size:.85rem;color:#999;font-style:italic}.more-meals-indicator{text-align:center;padding:8px;color:#666;font-size:.9rem;font-style:italic}.card-usage-stats{padding:12px 20px;background:#fafafa;border-top:1px solid #f0f0f0;display:flex;gap:16px;flex-wrap:wrap}.usage-stat{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#666}.usage-icon{font-size:1rem}.card-footer{padding:8px 16px;background:#fff;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end}.btn-delete-subtle{background:transparent;border:none;padding:6px;cursor:pointer;opacity:.3;transition:opacity .2s;font-size:1.1rem}.btn-delete-subtle:hover{opacity:.8}.modal-content{background:#fff;border-radius:12px;padding:24px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.make-meal-modal h2{margin:0 0 24px;color:#333}.serving-adjuster{margin-bottom:24px}.serving-adjuster label{display:block;margin-bottom:12px;font-weight:500;color:#333}.serving-controls{display:flex;align-items:center;gap:12px;margin-bottom:12px}.serving-btn{width:36px;height:36px;border:1px solid #ddd;background:#fff;border-radius:6px;font-size:1.2rem;cursor:pointer;transition:all .2s}.serving-btn:hover{background:#e7f3ff}.serving-controls input{width:80px;text-align:center;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:1.1rem}.serving-presets{display:flex;gap:8px}.preset-btn{padding:6px 16px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s}.preset-btn:hover,.preset-btn.active{background:#007bff;color:#fff;border-color:#007bff}.rating-section{margin-bottom:24px}.rating-section label{display:block;margin-bottom:12px;font-weight:500;color:#333}.star-rating{display:flex;gap:8px}.star{background:none;border:none;font-size:2rem;color:#ddd;cursor:pointer;transition:color .2s}.star:hover,.star.filled{color:gold}.notes-section{margin-bottom:24px}.notes-section label{display:block;margin-bottom:8px;font-weight:500;color:#333}.notes-section textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;resize:vertical;font-family:inherit;font-size:.95rem}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-primary{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#0056b3}.btn-cancel{padding:10px 20px;background:#f0f0f0;color:#333;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-cancel:hover{background:#e0e0e0}@media only screen and (max-width: 430px){.meal-plan-card-modern{margin:8px;border-radius:12px}.card-header{flex-direction:column;gap:8px;padding:12px}.card-title-section h3{font-size:1.25rem;line-height:1.3}.card-description{font-size:.875rem;line-height:1.5}.card-actions-quick{margin-left:0;align-self:flex-start;flex-wrap:wrap;gap:6px}.btn-header .btn-text{display:none}.btn-header{padding:10px;min-width:44px;min-height:44px}.btn-header .icon{font-size:1.25rem}.card-stats-bar{overflow-x:auto;padding:8px 16px}.meal-preview-header{flex-wrap:wrap}.btn-make-meal{margin-left:0;margin-top:4px}}.meal-plan-editor{max-width:800px;width:90%;max-height:90vh;display:flex;flex-direction:column}.editor-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--border-color, #e0e0e0);margin-bottom:20px}.editor-header h2{margin:0;color:var(--text-primary, #333)}.close-btn{background:none;border:none;font-size:2rem;color:var(--text-secondary, #666);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:var(--text-primary, #333)}.editor-body{flex:1;overflow-y:auto;padding-right:10px}.form-section{margin-bottom:30px}.form-section h3{margin:0 0 16px;color:var(--text-primary, #333);font-size:1.1rem}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text-primary, #333)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:.95rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color, #007bff)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.no-recipes{color:var(--text-secondary, #666);padding:20px;background:var(--background-light, #f8f9fa);border-radius:8px;text-align:center}.selected-recipes{display:flex;flex-direction:column;gap:12px}.selected-recipe{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--background-light, #f8f9fa);border-radius:8px;border:1px solid var(--border-color, #e0e0e0)}.recipe-info img{width:50px;height:50px;object-fit:cover;border-radius:6px}.recipe-info>div{display:flex;flex-direction:column;gap:4px}.recipe-name{font-weight:500;color:var(--text-primary, #333)}.recipe-time,.recipe-description{font-size:.9rem;color:var(--text-secondary, #666)}.recipe-actions{display:flex;gap:8px}.order-btn,.remove-btn,.add-btn{padding:6px 12px;border:1px solid var(--border-color, #ddd);background:#fff;border-radius:6px;cursor:pointer;transition:all .2s}.order-btn:disabled{opacity:.3;cursor:not-allowed}.order-btn:not(:disabled):hover{background:var(--primary-light, #e7f3ff)}.remove-btn:hover{background:var(--error-color, #dc3545);color:#fff;border-color:var(--error-color, #dc3545)}.add-btn:hover:not(:disabled){background:var(--success-color, #28a745);color:#fff;border-color:var(--success-color, #28a745)}.add-btn:disabled{background:var(--success-light, #d4edda);color:var(--success-color, #28a745);cursor:not-allowed}.recipe-search{margin-bottom:16px}.recipe-search input{width:100%;padding:10px;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:.95rem}.recipe-list{max-height:300px;overflow-y:auto;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:8px}.recipe-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:6px;transition:background .2s}.recipe-item:hover{background:var(--background-light, #f8f9fa)}.editor-footer{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid var(--border-color, #e0e0e0);margin-top:20px}.info-message{background:linear-gradient(135deg,#e8f4ff,#f0f8ff);border:1px solid #b3d9ff;border-radius:8px;padding:16px 20px;margin-top:20px}.info-message p{margin:0 0 12px;color:#06c;font-weight:500;display:flex;align-items:center;gap:8px}.info-message ul{margin:0;padding-left:28px;color:#333}.info-message li{margin-bottom:6px;line-height:1.4}.info-message li:last-child{margin-bottom:0}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.recipe-actions{flex-direction:column}}.modal-content.meal-manager{max-width:1200px!important;width:90vw!important;height:85vh!important;max-height:85vh!important;display:flex;flex-direction:column;padding:0!important;overflow:hidden}.meal-manager .modal-header{padding:20px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;background:#fff;flex-shrink:0}.meal-manager .modal-header h2{margin:0;font-size:1.5rem;color:#333}.meal-manager-content{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.meal-tabs{display:flex;gap:8px;padding:16px;border-bottom:2px solid #e0e0e0;overflow-x:auto;overflow-y:hidden!important;background:#f8f9fa;flex-shrink:0;min-height:64px;max-height:64px;align-items:center}.meal-tab-wrapper{position:relative;display:inline-block}.meal-tab-wrapper.dragging{z-index:1000}.meal-tab{padding:10px 16px 10px 35px;border:1px solid #ddd;border-radius:8px 8px 0 0;background:#fff;cursor:pointer;transition:all .2s;white-space:nowrap;font-size:.95rem;display:flex;align-items:center;gap:6px;position:relative;height:40px;flex-shrink:0;-webkit-user-select:none;user-select:none;outline:none}.meal-tab:focus{outline:2px solid #007bff;outline-offset:-2px}.meal-tab:hover{background:#f5f5f5}.meal-tab.active{background:#007bff;color:#fff;border-color:#007bff}.drag-handle{position:absolute;left:8px;top:50%;transform:translateY(-50%);cursor:grab;color:#999;font-size:14px;padding:2px 4px;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.meal-tab.active .drag-handle{color:#ffffffb3}.remove-meal-btn{margin-left:8px;background:transparent;border:none;color:#999;font-size:18px;line-height:1;cursor:pointer;padding:0 4px;transition:color .2s;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.remove-meal-btn:hover{color:#f44}.meal-tab.active .remove-meal-btn{color:#ffffffb3}.meal-tab.active .remove-meal-btn:hover{color:#fff}.meal-tab .recipe-count{font-size:.85rem;opacity:.8}.add-meal-tab{background:#e8f4ff;color:#007bff;border-style:dashed;height:40px;display:flex;align-items:center;flex-shrink:0}.add-meal-tab:hover{background:#d0e8ff}.meal-editor{flex:1;display:flex;gap:20px;padding:20px;overflow-y:auto;min-height:0;max-height:calc(100% - 64px)}.meal-details{flex:1;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.meal-form{background:#f8f9fa;padding:16px;border-radius:8px}.form-row{display:flex;gap:16px;margin-bottom:16px}.form-group{flex:1}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#555;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem}.form-group textarea{resize:vertical;font-family:inherit}.btn-delete-meal{margin-top:12px;padding:8px 16px;background:#fff;color:#dc3545;border:1px solid #dc3545;border-radius:6px;cursor:pointer;transition:all .2s}.btn-delete-meal:hover{background:#dc3545;color:#fff}.course-section{flex:1;display:flex;flex-direction:column;margin-top:20px}.course-section h3{margin:0 0 12px;color:#333;font-size:1.1rem}.course-tabs{display:flex;gap:6px;padding:8px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:16px;overflow-x:auto}.course-tab{padding:8px 12px;border:1px solid #ddd;border-radius:6px;background:#f8f9fa;cursor:pointer;transition:all .2s;white-space:nowrap;font-size:.9rem;display:flex;align-items:center;gap:4px}.course-tab:hover{background:#e8f4ff}.course-tab.active{background:#28a745;color:#fff;border-color:#28a745}.course-tab .recipe-count{font-size:.8rem;opacity:.8}.add-course-tab{background:#e8ffe8;color:#28a745;border-color:#28a745;border-style:dashed}.add-course-tab:hover{background:#d0ffd0}.course-editor{flex:1;display:flex;flex-direction:column}.course-form{background:#fff;padding:12px;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:16px}.btn-delete-course{margin-top:8px;padding:6px 12px;background:#fff;color:#dc3545;border:1px solid #dc3545;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-delete-course:hover{background:#dc3545;color:#fff}.course-recipes-section{flex:1}.course-recipes-section h4{margin:0 0 12px;color:#555;font-size:1rem}.course-recipes-list{display:flex;flex-direction:column;gap:8px}.meal-recipes-section{flex:1}.meal-recipes-section h3{margin:0 0 12px;color:#333;font-size:1.1rem}.meal-recipes-list{display:flex;flex-direction:column;gap:8px}.meal-recipe-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s}.meal-recipe-item:hover{background:#f8f9fa}.recipe-info{display:flex;align-items:center;gap:12px;flex:1}.recipe-number{font-weight:700;color:#666}.recipe-name{font-weight:500;color:#333}.recipe-time{color:#666;font-size:.9rem}.recipe-actions{display:flex;gap:4px}.recipe-actions button{width:28px;height:28px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.recipe-actions button:hover:not(:disabled){background:#007bff;color:#fff;border-color:#007bff}.recipe-actions button:disabled{opacity:.3;cursor:not-allowed}.recipe-actions .btn-remove{color:#dc3545}.recipe-actions .btn-remove:hover{background:#dc3545;color:#fff;border-color:#dc3545}.no-recipes{padding:20px;text-align:center;color:#666;background:#f8f9fa;border-radius:8px}.recipe-selector{width:350px;display:flex;flex-direction:column;border-left:1px solid #e0e0e0;padding-left:20px;min-height:0}.recipe-selector h3{margin:0;color:#333;font-size:1.1rem}.selector-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.selector-header h3{margin:0}.btn-add-custom{padding:8px 16px;background:#28a745;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-add-custom:hover{background:#218838}.custom-item-form{background:#fff;border:2px solid #28a745;border-radius:8px;padding:16px;margin-bottom:16px;flex-shrink:0}.custom-item-form h4{margin:0 0 12px;color:#333}.custom-item-input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;font-size:.95rem}.custom-item-input:focus{outline:none;border-color:#28a745}.custom-item-actions{display:flex;gap:8px;justify-content:flex-end}.btn-primary-small,.btn-cancel-small{padding:6px 14px;border:none;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary-small{background:#007bff;color:#fff}.btn-primary-small:hover:not(:disabled){background:#0056b3}.btn-primary-small:disabled{opacity:.5;cursor:not-allowed}.btn-cancel-small{background:#f0f0f0;color:#333}.btn-cancel-small:hover{background:#e0e0e0}.custom-badge{padding:2px 8px;background:#28a745;color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;margin:0 8px}.recipe-description{color:#666;font-style:italic;margin-left:4px}.recipe-search{flex-shrink:0;margin-bottom:12px}.recipe-search input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem}.available-recipes{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:0}.recipe-option{padding:10px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.recipe-option:hover:not(.added){background:#e8f4ff;border-color:#007bff}.recipe-option.added{background:#f0f0f0;cursor:not-allowed;opacity:.6}.recipe-option-info{display:flex;flex-direction:column;gap:4px;flex:1}.recipe-option-name{font-weight:500;color:#333;font-size:.95rem}.recipe-option-cuisine,.recipe-option-time{font-size:.85rem;color:#666}.added-badge{color:#28a745;font-weight:500;font-size:.9rem}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid #e0e0e0;background:#f8f9fa}.summary{color:#666;font-size:.95rem}.loading{padding:40px;text-align:center;color:#666}@media only screen and (max-width: 768px){.modal-content.meal-manager{width:95vw!important;max-height:90vh!important}.meal-editor{flex-direction:column}.recipe-selector{width:100%;border-left:none;border-top:1px solid #e0e0e0;padding-left:0;padding-top:20px}.form-row{flex-direction:column}.meal-tabs{padding:12px}.meal-tab{padding:8px 12px;font-size:.9rem}}.modal-content.shopping-list-modal{max-width:800px!important;width:90%!important;max-height:90vh!important;display:flex;flex-direction:column;padding:24px!important}.generator-header,.result-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--border-color, #e0e0e0);margin-bottom:20px}.generator-header h2,.result-header h2{margin:0;color:var(--text-primary, #333)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid #e0e0e0;margin-bottom:20px}.modal-header h2{margin:0;color:#333}.header-actions{display:flex;gap:8px;align-items:center}.icon-btn{background:transparent;border:none;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all .2s}.icon-btn:hover{background:#f0f0f0;transform:scale(1.1)}.close-btn{background:transparent;border:none;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;color:#666;transition:all .2s}.close-btn:hover{background:#f0f0f0;color:#333}.generator-body,.result-body{flex:1;overflow-y:auto}.quick-selection{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.quick-btn{padding:8px 16px;border:1px solid var(--primary-color, #007bff);background:#fff;color:var(--primary-color, #007bff);border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500}.quick-btn:hover{background:var(--primary-color, #007bff);color:#fff}.selection-summary{padding:12px;background:var(--primary-light, #e7f3ff);border-radius:8px;margin-bottom:20px;text-align:center;color:var(--primary-color, #007bff)}.meal-selection-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:10px}.meal-selection-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;transition:all .2s}.meal-selection-item:hover{border-color:var(--primary-color, #007bff);box-shadow:0 2px 4px #0000000d}.meal-selection-item input[type=checkbox]{width:20px;height:20px;cursor:pointer}.meal-info{flex:1;display:flex;flex-direction:column;gap:4px;cursor:pointer}.meal-name{font-weight:500;color:var(--text-primary, #333)}.meal-meta{font-size:.9rem;color:var(--text-secondary, #666)}.serving-adjuster-compact{display:flex;align-items:center;gap:8px}.serving-btn-small{width:28px;height:28px;border:1px solid var(--border-color, #ddd);background:#fff;border-radius:4px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.serving-btn-small:hover{background:var(--primary-light, #e7f3ff)}.serving-adjuster-compact input{width:50px;text-align:center;padding:4px;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.95rem}.serving-label{font-size:.9rem;color:var(--text-secondary, #666)}.success-message{font-size:1.1rem;color:var(--success-color, #28a745);margin-bottom:16px}.info-message{color:var(--text-secondary, #666);line-height:1.5}.error-message{padding:12px;background:var(--error-light, #ffebee);color:var(--error-color, #dc3545);border-radius:6px;margin-top:16px}.generator-footer,.result-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid var(--border-color, #e0e0e0);margin-top:20px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.meal-legend{padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.legend-label{font-weight:600;color:#666;font-size:.9rem}.legend-items{display:flex;gap:8px;flex-wrap:wrap;flex:1}.legend-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#fff;border:1px solid #e0e0e0;border-radius:16px;cursor:pointer;transition:all .2s;font-size:.85rem}.legend-item:hover{border-color:#007bff;background:#f0f7ff}.legend-item.active{border-color:#007bff;background:#e7f3ff}.legend-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.legend-name{color:#333}.shopping-list-content{flex:1;overflow-y:auto;padding:0 4px}.ingredients-by-category{display:flex;flex-direction:column;gap:20px}.ingredient-category h3{margin:0 0 12px;font-size:1rem;color:#333;font-weight:600;padding-bottom:8px;border-bottom:2px solid #e0e0e0}.ingredient-category.category-struck{opacity:.6;background:#f8f8f8;padding:12px;border-radius:8px;margin-top:8px}.ingredient-category.category-struck h3{text-decoration:line-through;color:#999;border-bottom-color:#d0d0d0}.ingredient-items{display:flex;flex-direction:column;gap:4px}.ingredient-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fff;border:1px solid #f0f0f0;border-radius:6px;transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.ingredient-item:hover{background:#f8f9fa;border-color:#e0e0e0}.ingredient-item.highlighted{background:#fff3cd;border-color:#ffc107}.ingredient-item.struck{opacity:.6;background:#f5f5f5;position:relative}.ingredient-item.struck .item-name,.ingredient-item.struck .item-quantity,.ingredient-item.struck .item-unit{text-decoration:line-through;color:#999}.ingredient-item.struck:hover{background:#e9ecef}.item-checkbox{font-size:1.2rem;color:#999;-webkit-user-select:none;user-select:none;cursor:pointer;width:20px;text-align:center}.item-checkbox:hover{color:#007bff}.item-quantity{min-width:60px;font-weight:600;color:#333;display:flex;align-items:baseline;gap:4px}.item-unit{font-weight:400;font-size:.9rem;color:#666}.item-name{flex:1;color:#333;font-size:.95rem}.item-meal-dots{display:flex;gap:4px;align-items:center;flex-shrink:0}.meal-dot{width:16px;height:16px;border-radius:50%;border:2px solid white;box-shadow:0 1px 3px #0003;cursor:help;transition:transform .2s}.meal-dot:hover{transform:scale(1.2)}.toggle-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.9rem;color:#666}.toggle-btn:hover{background:#f5f5f5;border-color:#999}.toggle-btn.active{background:#e7f3ff;border-color:#007bff;color:#007bff}.shopping-list-summary{display:flex;gap:20px;padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:16px;justify-content:center}.summary-stat{display:flex;flex-direction:column;align-items:center}.stat-number{font-size:1.5rem;font-weight:700;color:#007bff;line-height:1}.stat-label{font-size:.85rem;color:#666;margin-top:4px}.no-ingredients{text-align:center;padding:40px;color:#666}.no-ingredients p{margin:0 0 12px}.hint{font-size:.9rem;color:#999}.loading{text-align:center;padding:40px;color:#666;font-size:1.1rem}.loading-progress{margin-top:20px;max-width:300px;margin-left:auto;margin-right:auto}.progress-text{font-size:.9rem;color:#999;margin-bottom:8px}.progress-bar{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}@media only screen and (max-width: 768px){.meal-legend{flex-direction:column;align-items:stretch;gap:8px}.legend-items{justify-content:center}.ingredient-item{flex-wrap:wrap;padding:10px}.item-quantity{min-width:auto}.item-meal-dots{width:100%;justify-content:flex-start;margin-top:4px}}@media print{.modal-overlay{position:static;background:none}.modal-content{box-shadow:none;max-width:100%;width:100%}.modal-header,.modal-actions,.serving-overrides,.meal-legend{display:none}.shopping-list-content{max-height:none}.ingredient-item{break-inside:avoid}}.household-manager{max-width:500px;width:90%}.household-content{padding:20px}.info-section{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:16px;margin-bottom:24px}.info-text{margin:0;color:#0369a1;font-size:14px;line-height:1.5}.members-section{margin-bottom:24px}.members-section h3,.invite-section h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#374151}.members-list{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.member-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid #f3f4f6}.member-item:last-child{border-bottom:none}.member-info{display:flex;align-items:center;gap:8px}.member-email{color:#374151;font-size:14px}.owner-badge,.you-badge{padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.owner-badge{background:#fef3c7;color:#92400e}.you-badge{background:#dbeafe;color:#1e40af}.invite-section{border-top:1px solid #e5e7eb;padding-top:24px}.invite-form{display:flex;gap:8px;margin-bottom:12px}.invite-form input{flex:1;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.invite-form input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.invite-form button{padding:8px 20px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.invite-form button:hover:not(:disabled){background:#2563eb}.invite-form button:disabled{opacity:.5;cursor:not-allowed}.invite-note{margin:0;font-size:12px;color:#6b7280;line-height:1.5}.loading{padding:40px;text-align:center;color:#6b7280}.meal-planning{padding:20px;max-width:1400px;margin:0 auto}.meal-planning-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid var(--border-color, #e0e0e0)}.meal-planning-header h1{font-size:2rem;color:var(--text-primary, #333);margin:0}.meal-planning-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.meal-planning-controls{display:flex;gap:20px;align-items:center;margin-bottom:25px;flex-wrap:wrap}.search-box{flex:1;min-width:200px}.search-box input{width:100%;padding:10px 15px;border:1px solid var(--border-color, #ddd);border-radius:8px;font-size:1rem;transition:border-color .2s}.search-box input:focus{outline:none;border-color:var(--primary-color, #007bff)}.filter-group,.sort-group{display:flex;align-items:center;gap:8px}.filter-group label,.sort-group label{font-weight:500;color:var(--text-secondary, #666)}.filter-group select,.sort-group select{padding:8px 12px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:#fff;cursor:pointer;font-size:.95rem}.meal-plans-list{display:grid;gap:16px}.no-meal-plans{text-align:center;padding:60px 20px;background:var(--background-light, #f8f9fa);border-radius:12px;margin-top:20px}.no-meal-plans p{font-size:1.1rem;color:var(--text-secondary, #666);margin-bottom:20px}.btn-primary,.btn-secondary{padding:10px 20px;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary-color, #007bff);color:#fff}.btn-primary:hover{background:var(--primary-hover, #0056b3);transform:translateY(-1px);box-shadow:0 4px 8px #007bff33}.btn-secondary{background:#fff;color:var(--primary-color, #007bff);border:1px solid var(--primary-color, #007bff);display:inline-flex;align-items:center;justify-content:center}.btn-secondary:hover{background:var(--primary-light, #e7f3ff)}.btn-secondary svg{flex-shrink:0}.btn-icon{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:#fff;color:#6b7280;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;height:fit-content}.btn-icon:hover{background:#f9fafb;border-color:#9ca3af;color:#374151}.btn-icon svg{flex-shrink:0}.meal-planning-loading{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:1.1rem}.meal-planning-error{background:var(--error-light, #fff5f5);border:1px solid var(--error-color, #dc3545);border-radius:8px;padding:30px;margin:20px auto;max-width:600px;text-align:center}.meal-planning-error h3{color:var(--error-color, #dc3545);margin-bottom:20px}.meal-planning-error p{color:var(--text-primary, #333);margin:10px 0}.meal-planning-error code{display:block;background:var(--background-dark, #333);color:#fff;padding:15px;border-radius:6px;margin:20px 0;font-family:monospace;font-size:.95rem}@media only screen and (max-width: 430px){.meal-planning{padding:12px}.meal-planning-header{flex-direction:column;align-items:stretch;gap:12px;padding-bottom:16px}.meal-planning-header h1{font-size:1.75rem;line-height:1.2}.meal-planning-actions{flex-direction:column;gap:8px;width:100%}.meal-planning-actions button{min-height:44px;font-size:1rem;width:100%;justify-content:center}.meal-planning-controls{flex-direction:column;align-items:stretch;gap:12px}.search-box input{font-size:16px;min-height:44px;padding:12px}.filter-group,.sort-group{justify-content:space-between}.filter-group select,.sort-group select{font-size:16px;min-height:44px;padding:12px}}@media only screen and (min-width: 431px) and (max-width: 768px){.meal-planning{padding:16px}.meal-planning-header h1{font-size:1.75rem}}.bridge-container{max-width:1200px;margin:0 auto;padding:2rem}.bridge-header{text-align:center;margin-bottom:3rem}.bridge-header h1{display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:2.5rem;color:#333;margin-bottom:.5rem}.bridge-icon{color:#4caf50}.bridge-subtitle{color:#666;font-size:1.1rem;margin:0}.bridge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem}.bridge-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;text-decoration:none;color:inherit;position:relative;transition:all .3s ease;border:2px solid transparent;overflow:hidden}.bridge-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--card-color)}.bridge-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026;border-color:var(--card-color)}.bridge-card-icon{width:60px;height:60px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--card-color) 20%,white),color-mix(in srgb,var(--card-color) 10%,white));display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;font-size:1.8rem;color:var(--card-color)}.bridge-card-title{font-size:1.5rem;margin-bottom:.75rem;color:#333}.bridge-card-description{color:#666;line-height:1.6;margin-bottom:1rem}.bridge-card-arrow{position:absolute;bottom:1.5rem;right:1.5rem;font-size:1.5rem;color:var(--card-color);opacity:0;transform:translate(-10px);transition:all .3s ease}.bridge-card:hover .bridge-card-arrow{opacity:1;transform:translate(0)}.bridge-info{margin-top:2rem}.bridge-info-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.bridge-info-card h3{margin-top:0;margin-bottom:1rem;color:#333}.bridge-status-list{display:flex;flex-direction:column;gap:.75rem}.bridge-status-item{display:flex;align-items:center;gap:.75rem;color:#666}.status-indicator{width:12px;height:12px;border-radius:50%;display:inline-block;animation:pulse 2s infinite}.status-green{background:#4caf50;box-shadow:0 0 10px #4caf5080}.status-yellow{background:#ffc107;box-shadow:0 0 10px #ffc10780}.status-red{background:#f44336;box-shadow:0 0 10px #f4433680}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}@media (max-width: 768px){.bridge-container{padding:1rem}.bridge-header h1{font-size:2rem}.bridge-grid{grid-template-columns:1fr}}.workflow-visualizer{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;margin:2rem 0}.visualizer-header{text-align:center;margin-bottom:2rem}.visualizer-header h2{color:#333;margin-bottom:.5rem}.visualizer-header p{color:#666;margin:0}.workflow-tabs{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.workflow-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:2px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;transition:all .3s ease;font-size:.95rem;color:#666}.workflow-tab:hover{border-color:#4caf50;background:#f8f8f8}.workflow-tab.active{border-color:#4caf50;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.tab-icon{font-size:1.2rem}.workflow-content{display:flex;flex-direction:column;gap:2rem}.workflow-real-world-description{background:linear-gradient(135deg,#e3f2fd,#bbdefb);padding:1rem 1.5rem;border-radius:8px;border-left:4px solid #2196F3;font-size:1rem;color:#1565c0;line-height:1.6}.workflow-real-world-description strong{color:#0d47a1}.workflow-controls{display:flex;align-items:center;gap:1rem}.simulate-btn,.toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease}.simulate-btn{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.toggle-btn{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.simulate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2196f34d}.simulate-btn:disabled{opacity:.7;cursor:not-allowed}.simulate-btn .spinning{animation:spin 1s linear infinite}.step-counter{padding:.5rem 1rem;background:#f0f0f0;border-radius:20px;font-size:.9rem;color:#666}.workflow-diagram{display:flex;flex-direction:column;gap:0;padding:2rem;background:#f8f8f8;border-radius:12px;min-height:400px;overflow-x:auto}.workflow-step{display:flex;align-items:center;position:relative;transition:all .3s ease}.step-connector{display:flex;justify-content:center;width:40px;height:40px}.connector-arrow{color:#ccc;font-size:1.2rem;transition:color .3s ease}.workflow-step.completed .connector-arrow{color:#4caf50}.workflow-step.active .connector-arrow{color:#2196f3;animation:pulse 1s ease infinite}.step-content{flex:1;display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#fff;border-radius:8px;border-left:4px solid #e0e0e0;transition:all .3s ease;cursor:pointer}.step-content:hover{background:#f8f8f8}.workflow-step.completed .step-content{border-left-color:#4caf50;background:linear-gradient(90deg,#4caf501a,#fff)}.workflow-step.active .step-content{border-left-color:#2196f3;background:linear-gradient(90deg,#2196f31a,#fff);transform:translate(10px);box-shadow:0 4px 12px #2196f333}.step-icon{font-size:1.5rem;width:40px;text-align:center}.step-info{flex:1}.step-info h4{margin:0;color:#333;font-size:1rem}.step-info p{margin:.25rem 0 0;color:#666;font-size:.9rem}.step-real-world{margin-top:1rem;padding:.75rem;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-radius:6px;border-left:3px solid #FF9800;font-size:.85rem;line-height:1.5}.step-real-world strong{color:#e65100;display:block;margin-bottom:.25rem}.workflow-step.selected .step-content{border-left-color:#ff9800;background:linear-gradient(90deg,#ff98001a,#fff);box-shadow:0 2px 8px #ff980033}.workflow-step.user .step-content{border-left-color:#9c27b0}.workflow-step.frontend .step-content{border-left-color:#00bcd4}.workflow-step.api .step-content{border-left-color:#ff9800}.workflow-step.database .step-content{border-left-color:#3f51b5}.workflow-step.trigger .step-content{border-left-color:#ffc107}.workflow-step.function .step-content{border-left-color:#795548}.workflow-step.condition .step-content{border-left-color:#e91e63}.workflow-step.success .step-content{border-left-color:#4caf50}.workflow-step.warning .step-content{border-left-color:#ff5722}.condition-branches{display:flex;gap:1rem;font-size:.85rem}.branch{padding:.25rem .5rem;border-radius:4px}.branch.yes{background:#e8f5e9;color:#2e7d32}.branch.no{background:#ffebee;color:#c62828}.workflow-legend{background:#f8f8f8;padding:1.5rem;border-radius:8px}.workflow-legend h3{margin-top:0;margin-bottom:1rem;color:#333}.legend-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#666}.legend-color{width:20px;height:4px;border-radius:2px}.legend-color.user{background:#9c27b0}.legend-color.frontend{background:#00bcd4}.legend-color.api{background:#ff9800}.legend-color.database{background:#3f51b5}.legend-color.trigger{background:#ffc107}.legend-color.function{background:#795548}.legend-color.success{background:#4caf50}.workflow-details{background:#f0f8ff;padding:1.5rem;border-radius:8px;border-left:4px solid #2196F3}.workflow-details h3{margin-top:0;margin-bottom:1rem;color:#1976d2}.workflow-details ul{margin:0;padding-left:1.5rem}.workflow-details li{margin-bottom:.5rem;color:#555;line-height:1.6}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.workflow-visualizer{padding:1rem}.workflow-tabs{flex-direction:column}.workflow-tab{width:100%;justify-content:center}.workflow-diagram{padding:1rem}.step-content{padding:.75rem}.legend-items{grid-template-columns:1fr}}.test-data-generator{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;margin:2rem 0}.generator-header{text-align:center;margin-bottom:2rem}.generator-header h2{display:flex;align-items:center;justify-content:center;gap:.75rem;color:#333;margin-bottom:.5rem}.header-icon{color:#2196f3}.generator-header p{color:#666;margin:0}.generator-controls{margin-bottom:2rem}.scenario-selector h3{margin-bottom:1rem;color:#333}.scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.scenario-card{padding:1.5rem;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .3s ease;background:#fff}.scenario-card:hover{border-color:#2196f3;transform:translateY(-2px);box-shadow:0 4px 12px #2196f333}.scenario-card.selected{border-color:#2196f3;background:linear-gradient(135deg,#2196f31a,#2196f30d)}.scenario-card h4{margin:0 0 .5rem;color:#333;font-size:1.1rem}.scenario-card p{margin:0 0 1rem;color:#666;font-size:.9rem}.scenario-stats{display:flex;justify-content:space-between;font-size:.85rem;color:#888}.scenario-card.custom{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.custom-icon{font-size:2rem;color:#9c27b0;margin-top:.5rem}.custom-config{background:#f8f8f8;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.custom-config h3{margin-top:0;margin-bottom:1rem;color:#333}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.config-item{display:flex;flex-direction:column}.config-item.full-width{grid-column:1 / -1}.config-item label{margin-bottom:.5rem;color:#666;font-size:.9rem;font-weight:600}.config-item input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.config-item input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f333}.action-buttons{display:flex;gap:1rem;margin-bottom:1rem}.generate-btn,.cleanup-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s ease}.generate-btn{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.cleanup-btn{background:linear-gradient(135deg,#f44336,#da190b);color:#fff}.cleanup-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #f443364d}.generate-btn:disabled,.cleanup-btn:disabled{opacity:.6;cursor:not-allowed}.progress-bar{margin:1rem 0;background:#f0f0f0;border-radius:8px;padding:1rem}.progress-message{margin-bottom:.5rem;color:#666;font-size:.9rem}.progress-track{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#2196f3,#1976d2);transition:width .3s ease}.results-panel{padding:1.5rem;border-radius:8px;margin-top:1rem}.results-panel.success{background:linear-gradient(135deg,#4caf501a,#4caf500d);border:2px solid #4CAF50}.results-panel.error{background:linear-gradient(135deg,#f443361a,#f443360d);border:2px solid #F44336}.results-panel h3{display:flex;align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem}.results-panel.success h3{color:#2e7d32}.results-panel.error h3{color:#c62828}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin-bottom:1rem}.results-summary p{margin:0;padding:.5rem;background:#fff;border-radius:4px;font-size:.9rem;color:#333}.error-count{color:#f44336!important}.error-list{background:#fff;padding:1rem;border-radius:4px;margin-top:1rem}.error-list h4{margin-top:0;margin-bottom:.5rem;color:#c62828}.error-list ul{margin:0;padding-left:1.5rem}.error-list li{color:#666;font-size:.85rem;margin-bottom:.25rem}.error-message{background:#fff;padding:1rem;border-radius:4px;color:#c62828}.generator-info{background:#f0f8ff;padding:1.5rem;border-radius:8px;border-left:4px solid #2196F3}.generator-info h3{margin-top:0;margin-bottom:1rem;color:#1976d2}.generator-info ul{margin:0;padding-left:1.5rem}.generator-info li{margin-bottom:.5rem;color:#555;line-height:1.6}@media (max-width: 768px){.test-data-generator{padding:1rem}.scenario-grid,.config-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.results-summary{grid-template-columns:1fr}}.test-results-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.test-results-modal{background:#fff;border-radius:12px;max-width:90vw;max-height:90vh;width:1000px;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid #e0e0e0;background:#f8f9fa;border-radius:12px 12px 0 0}.modal-title h2{margin:0 0 5px;color:#333;font-size:20px}.modal-title p{margin:0;color:#666;font-size:14px}.modal-close{background:none;border:none;padding:8px;cursor:pointer;color:#666;border-radius:6px;transition:all .2s}.modal-close:hover{background:#e0e0e0;color:#333}.modal-stats{display:flex;gap:20px;padding:20px 24px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;align-items:center;padding:10px 15px;background:#fff;border-radius:8px;border:1px solid #e0e0e0;min-width:80px}.stat-label{font-size:12px;color:#666;margin-bottom:5px;font-weight:500}.stat-value{font-size:18px;font-weight:700;color:#333}.stat-item.passed .stat-value{color:#4caf50}.stat-item.failed .stat-value{color:#f44336}.stat-item.skipped .stat-value{color:#ff9800}.stat-item.success-rate .stat-value{color:#2196f3}.modal-controls{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fafafa;border-bottom:1px solid #e0e0e0;flex-wrap:wrap;gap:15px}.format-selector{display:flex;align-items:center;gap:10px}.format-selector label{font-size:14px;font-weight:500;color:#333}.format-selector select{padding:6px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:14px;cursor:pointer}.action-buttons{display:flex;gap:10px}.copy-btn,.download-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.copy-btn{background:#2196f3;color:#fff}.copy-btn:hover{background:#1976d2}.download-btn{background:#4caf50;color:#fff}.download-btn:hover{background:#45a049}.modal-content{flex:1;padding:24px;overflow:hidden;display:flex;flex-direction:column}.results-preview{flex:1;display:flex;flex-direction:column;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.preview-header h3{margin:0;color:#333;font-size:16px;font-weight:600}.preview-copy-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.preview-copy-btn:hover{background:#1976d2;transform:translateY(-1px)}.preview-copy-btn .copy-status{font-size:13px;font-weight:500}.results-text{flex:1;background:#f8f8f8;border:1px solid #e0e0e0;border-radius:8px;padding:16px;font-family:Monaco,Consolas,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;overflow:auto;white-space:pre-wrap;word-wrap:break-word;color:#333;margin:0}.results-text::-webkit-scrollbar{width:8px}.results-text::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.results-text::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.results-text::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.modal-footer{padding:16px 24px;background:#f8f9fa;border-top:1px solid #e0e0e0;border-radius:0 0 12px 12px}.modal-footer p{margin:0;color:#666;font-size:13px;display:flex;align-items:center;gap:8px}@media (max-width: 768px){.test-results-modal{max-width:95vw;max-height:95vh;width:auto}.modal-header{padding:16px 20px}.modal-stats{padding:16px 20px;justify-content:center}.stat-item{min-width:70px;padding:8px 12px}.stat-value{font-size:16px}.modal-controls{flex-direction:column;align-items:stretch;gap:10px;padding:16px 20px}.action-buttons{justify-content:center}.modal-content{padding:20px}.results-text{font-size:11px}.modal-footer{padding:16px 20px}}@media (max-width: 480px){.modal-stats{flex-direction:column;align-items:stretch}.stat-item{flex-direction:row;justify-content:space-between;min-width:auto}.action-buttons{flex-direction:column}.copy-btn,.download-btn{justify-content:center}}.test-suite-manager{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;position:relative;transition:all .3s ease}.test-suite-manager.fullscreen{position:fixed;inset:0;z-index:9999;border-radius:0;overflow-y:auto}.test-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #f0f0f0}.test-title h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.test-title p{margin:0;color:#666;font-size:.95rem}.test-actions{display:flex;gap:.75rem}.test-actions button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.run-btn{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.run-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.run-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.7}.get-results-btn{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.get-results-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2196f34d}.get-results-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.cleanup-btn{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.cleanup-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff98004d}.cleanup-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.7}.fullscreen-btn{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.fullscreen-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #9c27b04d}.test-categories{display:flex;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;overflow-x:auto}.category-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:2px solid #e0e0e0;background:#fff;border-radius:8px;font-size:.95rem;font-weight:500;color:#666;cursor:pointer;transition:all .2s ease;white-space:nowrap}.category-btn:hover{border-color:var(--cat-color, #2196F3);background:#f8f8f8}.category-btn.active{border-color:var(--cat-color, #2196F3);background:var(--cat-color, #2196F3);color:#fff}.test-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem;padding:1.5rem;background:linear-gradient(135deg,#f8f8f8,#f0f0f0);border-radius:12px}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d}.stat-label{font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.stat-value{font-size:1.75rem;font-weight:700;color:#333}.stat-card.success .stat-value{color:#4caf50}.stat-card.failure .stat-value{color:#f44336}.test-filters{display:flex;gap:.75rem;margin-bottom:2rem;padding:1rem;background:#f8f8f8;border-radius:8px}.test-filters button{padding:.5rem 1rem;border:1px solid #ddd;background:#fff;border-radius:6px;font-size:.9rem;color:#666;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.test-filters button:hover{background:#f0f0f0;border-color:#999}.test-filters button.active{background:#333;color:#fff;border-color:#333}.test-suites{display:flex;flex-direction:column;gap:1.5rem}.test-suite{background:#f8f8f8;border-radius:12px;padding:1.5rem;border:2px solid transparent;transition:all .2s ease}.test-suite:hover{border-color:#e0e0e0;box-shadow:0 2px 8px #0000000d}.suite-header{margin-bottom:1rem}.suite-header h3{margin:0 0 .5rem;color:#333;font-size:1.25rem}.suite-header p{margin:0;color:#666;font-size:.9rem}.suite-tests{display:flex;flex-direction:column;gap:.75rem}.test-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:#fff;border-radius:8px;border-left:4px solid #e0e0e0;transition:all .2s ease}.test-item.passed{border-left-color:#4caf50;background:linear-gradient(90deg,#4caf500d,#fff)}.test-item.failed{border-left-color:#f44336;background:linear-gradient(90deg,#f443360d,#fff)}.test-item.running{border-left-color:#2196f3;background:linear-gradient(90deg,#2196f30d,#fff);animation:pulse 1.5s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.test-status{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;margin-top:2px}.test-status svg{width:20px;height:20px}.test-status .spinning{animation:spin 1s linear infinite;color:#2196f3}.test-status svg[class*=FaCheckCircle]{color:#4caf50}.test-status svg[class*=FaTimesCircle]{color:#f44336}.empty-status{width:20px;height:20px;border:2px solid #e0e0e0;border-radius:50%}.test-info{flex:1}.test-name{font-weight:500;color:#333;margin-bottom:.25rem;font-size:.95rem}.test-message{color:#666;font-size:.85rem;line-height:1.4}.test-duration{color:#999;font-size:.8rem;margin-left:.5rem}.current-test-indicator{position:fixed;bottom:2rem;right:2rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border-radius:8px;box-shadow:0 4px 12px #2196f34d;font-size:.9rem;display:flex;align-items:center;gap:.75rem;animation:slideIn .3s ease;z-index:1000}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.current-test-indicator:before{content:"";width:8px;height:8px;background:#fff;border-radius:50%;animation:pulse 1s ease infinite}@media (max-width: 768px){.test-suite-manager{padding:1rem}.test-header{flex-direction:column;gap:1rem}.test-actions{width:100%;justify-content:stretch}.test-actions button{flex:1;justify-content:center}.test-categories{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem}.test-stats{grid-template-columns:repeat(2,1fr)}.test-filters{flex-wrap:wrap}.current-test-indicator{bottom:1rem;right:1rem;left:1rem}}.test-suite-manager.loading{pointer-events:none;opacity:.7}.test-suite-manager.loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:4px solid #f0f0f0;border-top-color:#2196f3;border-radius:50%;animation:spin 1s linear infinite}.no-results{text-align:center;padding:3rem;color:#999}.no-results svg{font-size:3rem;margin-bottom:1rem;opacity:.5}.no-results h3{margin:0 0 .5rem;color:#666}.no-results p{margin:0;font-size:.9rem}.crud-test-suite{padding:20px;background:#fff;border-radius:8px;margin:20px 0}.test-suite-header{text-align:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.test-suite-header h2{color:#333;margin:0 0 10px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:24px}.test-suite-header p{color:#666;margin:0;font-size:16px}.test-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px;margin-bottom:30px}.test-category-card{background:#f9f9f9;border:2px solid #e0e0e0;border-radius:8px;padding:15px;cursor:pointer;transition:all .3s}.test-category-card:hover{border-color:#2196f3;box-shadow:0 2px 8px #2196f333}.test-category-card.active{border-color:#2196f3;background:#e3f2fd;box-shadow:0 4px 12px #2196f34d}.category-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.category-header h3{margin:0;color:#333;font-size:16px}.category-stats{display:flex;gap:10px;flex-wrap:wrap}.stat{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.stat.passed{background:#e8f5e9;color:#2e7d32}.stat.failed{background:#ffebee;color:#c62828}.stat.running{background:#e3f2fd;color:#1565c0}.test-details{background:#fafafa;border-radius:8px;padding:20px;margin-bottom:30px}.test-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.test-section-header h3{margin:0;color:#333;font-size:20px}.test-actions{display:flex;gap:10px}.run-all-btn,.get-results-btn,.reset-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s;color:#fff}.run-all-btn{background:#4caf50}.run-all-btn:hover:not(:disabled){background:#45a049;transform:translateY(-1px)}.get-results-btn{background:#2196f3}.get-results-btn:hover:not(:disabled){background:#1976d2;transform:translateY(-1px)}.run-all-btn:disabled,.get-results-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.reset-btn{background:#f44336}.reset-btn:hover:not(:disabled){background:#d32f2f;transform:translateY(-1px)}.reset-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.test-list{display:flex;flex-direction:column;gap:10px}.test-item{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#fff;border-radius:6px;border-left:4px solid #e0e0e0;transition:all .2s}.test-item.passed{border-left-color:#4caf50;background:#f8fff9}.test-item.failed{border-left-color:#f44336;background:#fff8f8}.test-item.running{border-left-color:#2196f3;background:#f8fcff}.test-item.skipped{border-left-color:#ff9800;background:#fffbf5}.test-info{display:flex;align-items:center;gap:12px;flex:1}.test-status{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.test-details-content h4{margin:0 0 5px;color:#333;font-size:14px}.test-message{margin:0;color:#666;font-size:12px}.test-error{margin:5px 0 0;color:#c62828;font-size:12px;font-family:monospace}.run-test-btn{display:flex;align-items:center;justify-content:center;padding:8px 12px;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .2s;min-width:40px}.run-test-btn:hover:not(:disabled){background:#1976d2}.run-test-btn:disabled{opacity:.6;cursor:not-allowed}.pending-dot{width:12px;height:12px;background:#e0e0e0;border-radius:50%}.test-summary{background:#f5f5f5;border-radius:8px;padding:20px}.test-summary h3{margin:0 0 20px;color:#333;font-size:18px}.coverage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.coverage-item{background:#fff;padding:15px;border-radius:6px;border:1px solid #e0e0e0}.coverage-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:14px;font-weight:500;color:#333}.coverage-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:5px}.coverage-fill{height:100%;transition:width .3s ease;border-radius:4px}.coverage-text{font-size:12px;color:#666;font-weight:600}@media (max-width: 768px){.crud-test-suite{padding:15px;margin:10px 0}.test-categories{grid-template-columns:1fr}.test-section-header{flex-direction:column;align-items:flex-start;gap:15px}.test-item{flex-direction:column;align-items:flex-start;gap:10px}.run-test-btn{align-self:flex-end}.coverage-grid{grid-template-columns:1fr}}.trigger-status-container{padding:20px;background:var(--card-bg, #fff);border-radius:8px;max-height:600px;overflow-y:auto}.trigger-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--border-color, #e0e0e0)}.trigger-status-header h3{margin:0;color:var(--text-primary, #333);font-size:1.2rem}.trigger-status-summary{display:flex;gap:20px;padding:15px;background:var(--summary-bg, #f0f0f0);border-radius:6px;margin-bottom:20px}.summary-item{display:flex;align-items:center;gap:8px}.summary-label{font-size:.9rem;color:var(--text-secondary, #666)}.summary-value{font-size:1.1rem;font-weight:600;color:var(--text-primary, #333)}.summary-item.success .summary-value{color:#4caf50}.summary-item.error .summary-value{color:#f44336}.test-all-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s ease}.test-all-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.trigger-section,.function-section{margin-bottom:25px}.trigger-section h4,.function-section h4{display:flex;align-items:center;gap:8px;color:var(--text-secondary, #666);font-size:1rem;margin-bottom:15px}.trigger-list,.function-list{display:flex;flex-direction:column;gap:10px}.trigger-item,.function-item{background:var(--item-bg, #f9f9f9);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;overflow:hidden;transition:all .3s ease}.trigger-item:hover,.function-item:hover{box-shadow:0 2px 8px #0000001a}.function-item.deprecated{opacity:.6}.trigger-header,.function-header{display:flex;justify-content:space-between;align-items:center;padding:0;transition:background-color .2s ease}.trigger-info-area,.function-info-area{flex:1;padding:12px 15px;cursor:pointer}.trigger-info-area:hover,.function-info-area:hover{background:#00000005}.trigger-info,.function-info{display:flex;align-items:center;gap:15px;flex:1}.trigger-name,.function-name{font-weight:600;color:var(--text-primary, #333);font-family:Courier New,monospace;font-size:.95rem}.trigger-table,.trigger-event,.function-params{font-size:.85rem;color:var(--text-secondary, #666);padding:2px 8px;background:#0000000d;border-radius:4px}.deprecated-badge{margin-left:8px;padding:2px 6px;background:#ff9800;color:#fff;font-size:.7rem;border-radius:3px;text-transform:uppercase}.trigger-actions,.function-actions{display:flex;align-items:center;gap:10px;padding:12px 15px}.test-btn{padding:4px 8px;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.test-btn:hover{background:#1976d2;transform:scale(1.05)}.trigger-details,.function-details{padding:15px;background:#fff;border-top:1px solid var(--border-color, #e0e0e0)}.trigger-details p,.function-details p{margin:0 0 10px;color:var(--text-secondary, #666);font-size:.9rem}.test-result{padding:10px;border-radius:4px;font-size:.85rem;margin-top:10px}.test-result.success{background:#e8f5e9;color:#2e7d32;border:1px solid #4caf50}.test-result.error{background:#ffebee;color:#c62828;border:1px solid #f44336}.success{color:#4caf50}.error{color:#f44336}.untested-icon{font-size:1.2rem;color:#999;display:inline-block;width:20px;text-align:center}.trigger-status-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary, #666)}.trigger-status-loading svg{font-size:2rem;margin-bottom:10px}.trigger-status-footer{margin-top:20px;padding-top:15px;border-top:1px solid var(--border-color, #e0e0e0);color:var(--text-secondary, #666);font-size:.85rem;display:flex;align-items:center;gap:8px}@media (prefers-color-scheme: dark){.trigger-status-container{background:#1e1e1e}.trigger-item,.function-item{background:#2a2a2a;border-color:#444}.trigger-details,.function-details{background:#252525;border-top-color:#444}.trigger-status-header{border-bottom-color:#444}.trigger-table,.trigger-event,.function-params{background:#ffffff0d}}.documentation-container{display:flex;flex-direction:column;height:100%;background:var(--docs-bg, #f8f9fa);border-radius:8px;overflow:hidden}.docs-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#fff;border-bottom:2px solid var(--border-color, #e0e0e0)}.docs-title{display:flex;align-items:center;gap:12px}.docs-icon{font-size:1.5rem;color:var(--primary-color, #2196F3)}.docs-title h3{margin:0;color:var(--text-primary, #333);font-size:1.3rem}.docs-search{position:relative;width:300px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary, #666);font-size:.9rem}.search-input{width:100%;padding:8px 12px 8px 36px;border:1px solid var(--border-color, #e0e0e0);border-radius:20px;font-size:.9rem;outline:none;transition:all .3s ease}.search-input:focus{border-color:var(--primary-color, #2196F3);box-shadow:0 0 0 3px #2196f31a}.docs-layout{display:flex;flex:1;overflow:hidden}.docs-sidebar{width:260px;background:#fff;border-right:1px solid var(--border-color, #e0e0e0);display:flex;flex-direction:column;overflow-y:auto}.category-list{padding:15px;flex:1}.category-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;margin-bottom:8px;background:#fff;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;cursor:pointer;transition:all .3s ease;text-align:left;font-size:.95rem;color:var(--text-primary, #333)}.category-btn:hover{background:var(--hover-bg, #f5f5f5);transform:translate(4px)}.category-btn.active{background:var(--cat-color);color:#fff;border-color:var(--cat-color);box-shadow:0 2px 8px #00000026}.cat-icon{font-size:1.1rem}.docs-tips{padding:20px;background:var(--tip-bg, #fafafa);border-top:1px solid var(--border-color, #e0e0e0)}.tip-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--warning-color, #FF9800);font-weight:600;font-size:.9rem}.tip-list{list-style:none;padding:0;margin:0}.tip-list li{font-size:.85rem;color:var(--text-secondary, #666);position:relative;padding:6px 0 6px 16px}.tip-list li:before{content:"•";position:absolute;left:0;color:var(--primary-color, #2196F3)}.docs-content{flex:1;padding:20px;overflow-y:auto;background:#fff}.section-title{margin:0 0 20px;color:var(--text-primary, #333);font-size:1.2rem;padding-bottom:10px;border-bottom:2px solid var(--border-color, #e0e0e0)}.item-list{display:flex;flex-direction:column;gap:12px}.doc-item{padding:16px;background:var(--item-bg, #f9f9f9);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;cursor:pointer;transition:all .3s ease}.doc-item:hover{background:#fff;box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.item-header h5{margin:0;color:var(--text-primary, #333);font-size:1.05rem}.item-arrow{color:var(--text-secondary, #999);font-size:.9rem;transition:transform .3s ease}.doc-item:hover .item-arrow{transform:translate(4px);color:var(--primary-color, #2196F3)}.item-description{margin:0;color:var(--text-secondary, #666);font-size:.9rem;line-height:1.4}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary, #999)}.no-results svg{font-size:3rem;margin-bottom:16px;opacity:.5}.doc-viewer{max-width:900px;margin:0 auto}.back-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;margin-bottom:20px;background:var(--secondary-bg, #f5f5f5);border:none;border-radius:6px;color:var(--text-secondary, #666);cursor:pointer;transition:all .3s ease;font-size:.9rem}.back-btn:hover{background:var(--hover-bg, #e0e0e0);transform:translate(-4px)}.doc-content h2{margin:0 0 24px;color:var(--text-primary, #333);font-size:1.8rem;padding-bottom:12px;border-bottom:3px solid var(--primary-color, #2196F3)}.markdown-content{color:var(--text-primary, #333);line-height:1.8;font-size:.95rem}.markdown-content h3{margin:24px 0 16px;color:var(--text-primary, #333);font-size:1.3rem}.markdown-content h4{margin:20px 0 12px;color:var(--text-primary, #333);font-size:1.1rem}.markdown-content p{margin:12px 0}.markdown-content ul{margin:12px 0;padding-left:24px}.markdown-content li{margin:8px 0}.markdown-content code{background:var(--code-bg, #f4f4f4);padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:.9em;color:var(--code-color, #d73a49)}.markdown-content pre{background:var(--code-block-bg, #1e1e1e);color:var(--code-block-color, #d4d4d4);padding:16px;border-radius:6px;overflow-x:auto;margin:16px 0}.markdown-content pre code{background:transparent;color:inherit;padding:0}.markdown-content strong{font-weight:600;color:var(--text-primary, #333)}.markdown-content blockquote{margin:16px 0;padding:12px 20px;border-left:4px solid var(--primary-color, #2196F3);background:var(--quote-bg, #f8f9fa);color:var(--text-secondary, #666)}@media (max-width: 768px){.docs-layout{flex-direction:column}.docs-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-color, #e0e0e0)}.docs-search{width:200px}}@media (prefers-color-scheme: dark){.documentation-container{background:#1a1a1a}.docs-header,.docs-sidebar,.docs-content{background:#2a2a2a}.doc-item{background:#333}.markdown-content pre{background:#1e1e1e}.markdown-content code{background:#333;color:#f92672}}.bridge-dev-container{max-width:1200px;margin:0 auto;padding:2rem}.bridge-dev-header{text-align:center;margin-bottom:3rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:#666;text-decoration:none;margin-bottom:1rem;transition:color .3s ease}.back-link:hover{color:#333}.bridge-dev-header h1{display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:2.5rem;color:#333;margin-bottom:.5rem}.dev-icon{color:#ff5722}.dev-subtitle{color:#666;font-size:1.1rem;margin:0}.dev-categories{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.dev-category{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014}.category-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;cursor:pointer;border-left:4px solid;transition:background .2s ease}.category-header:hover{background:#f8f8f8}.category-left{display:flex;align-items:center;gap:1rem}.category-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.25rem}.category-info h3{margin:0 0 .25rem;color:#333;font-size:1.25rem}.category-info p{margin:0;color:#666;font-size:.9rem}.category-toggle{font-size:1.25rem;color:#999;transition:transform .2s ease}.category-tools{padding:0 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.dev-tool-card{background:#f8f8f8;border-radius:10px;overflow:hidden;transition:all .2s ease}.dev-tool-card.featured{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9}.tool-header{display:flex;align-items:center;gap:1rem;padding:1rem}.tool-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;flex-shrink:0}.tool-info{flex:1}.tool-info h4{margin:0 0 .25rem;color:#333;font-size:1.05rem}.tool-info p{margin:0;color:#666;font-size:.85rem;line-height:1.4}.tool-toggle{color:#666;font-size:.9rem}.coming-soon{background:#f0f0f0;color:#999;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase}.tool-content{padding:1rem;border-top:1px solid #e0e0e0;background:#fff}.dev-actions{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.dev-actions h2{margin-top:0;margin-bottom:1.5rem;color:#333}.action-buttons{display:flex;gap:1rem;flex-wrap:wrap}.action-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;background:#4caf50;color:#fff;font-size:1rem;cursor:pointer;transition:all .3s ease}.action-btn:hover{background:#45a049;transform:translateY(-2px)}.action-btn.danger{background:#f44336}.action-btn.danger:hover{background:#da190b}.debugger-container{margin:2rem 0;display:flex;justify-content:center}.dev-info{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.dev-info h3{margin-top:0;margin-bottom:1.5rem;color:#333}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item{display:flex;justify-content:space-between;padding:.75rem;background:#f5f5f5;border-radius:6px}.info-label{font-weight:600;color:#666}.info-value{color:#333}@media (max-width: 768px){.bridge-dev-container{padding:1rem}.bridge-dev-header h1{font-size:1.8rem}.category-header{padding:1rem}.category-tools{padding:0 1rem 1rem}.tool-header{padding:.75rem}.action-buttons{flex-direction:column}.action-btn{width:100%;justify-content:center}}.ingredient-manager{padding:20px;max-width:1200px;margin:0 auto}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.manager-header h2{font-size:1.75rem;font-weight:600;color:#1f2937;margin:0}.btn-scan{padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-scan:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-scan:disabled{opacity:.5;cursor:not-allowed}.scan-progress{margin-bottom:20px;padding:16px;background:#f9fafb;border-radius:8px}.progress-text{font-size:.9rem;color:#6b7280;margin-bottom:8px}.progress-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .3s ease}.manager-controls{display:flex;gap:16px;margin-bottom:20px;align-items:center}.filter-buttons{display:flex;gap:8px}.filter-buttons button{padding:8px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.filter-buttons button:hover{background:#f9fafb;border-color:#9ca3af}.filter-buttons button.active{background:#667eea;color:#fff;border-color:#667eea}.search-input{flex:1;padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;font-size:.95rem}.search-input:focus{outline:none;border-color:#667eea}.summary-text{padding:12px 16px;background:#eff6ff;color:#1e40af;border-radius:8px;margin-bottom:20px;font-size:.95rem}.duplicate-groups{display:flex;flex-direction:column;gap:16px}.duplicate-group{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;transition:all .2s}.duplicate-group:hover{box-shadow:0 4px 12px #0000000d}.duplicate-group.reviewed{background:#f0fdf4;border-color:#86efac}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.group-info{display:flex;align-items:center;gap:12px}.similarity-badge{padding:4px 12px;border-radius:20px;color:#fff;font-size:.875rem;font-weight:600}.similarity-label{font-size:.875rem;color:#6b7280}.group-actions{display:flex;gap:8px;align-items:center}.primary-selected{color:#059669;font-weight:500;margin-right:12px}.btn-select-primary,.btn-keep-separate{padding:6px 16px;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-select-primary{background:#667eea;color:#fff;border:none}.btn-select-primary:hover{background:#5a67d8}.btn-keep-separate{background:#fff;color:#6b7280;border:1px solid #e5e7eb}.btn-keep-separate:hover{background:#f9fafb;border-color:#9ca3af}.group-items{display:flex;flex-direction:column;gap:8px}.ingredient-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f9fafb;border-radius:8px;transition:all .2s}.ingredient-item:hover{background:#f3f4f6}.ingredient-item input[type=radio]{width:18px;height:18px;cursor:pointer}.item-name{font-weight:500;color:#1f2937;flex:1}.item-usage{font-size:.875rem;color:#6b7280}.recommended-badge{padding:2px 8px;background:#fef3c7;color:#92400e;border-radius:4px;font-size:.75rem;font-weight:600}.actions-bar{position:sticky;bottom:0;margin-top:24px;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 -4px 12px #0000000d;display:flex;justify-content:center}.btn-preview{padding:12px 32px;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-preview:hover{background:#059669;transform:translateY(-1px)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;padding:24px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.select-primary-modal h3{margin:0 0 20px;color:#1f2937}.primary-options{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.primary-option{display:flex;align-items:center;gap:12px;padding:12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s}.primary-option:hover{background:#f3f4f6;border-color:#9ca3af}.primary-option input[type=radio]{width:18px;height:18px}.option-name{font-weight:500;flex:1}.option-count{color:#6b7280;font-size:.875rem}.recommended{color:#059669;font-size:.875rem;font-weight:500}.primary-option.custom{background:#eff6ff;border-color:#667eea}.primary-option.custom input[type=text]{flex:1;padding:6px 12px;border:1px solid #e5e7eb;border-radius:4px;font-size:.9rem}.primary-option.custom button{padding:6px 16px;background:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.primary-option.custom button:disabled{opacity:.5;cursor:not-allowed}.preview-modal{max-width:800px}.preview-modal h2{margin:0 0 16px;color:#1f2937}.preview-summary{padding:12px;background:#eff6ff;color:#1e40af;border-radius:8px;margin-bottom:20px;font-size:.95rem}.preview-list{max-height:400px;overflow-y:auto;margin-bottom:20px;padding:0 4px}.recipe-changes{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.recipe-changes:last-child{border-bottom:none}.recipe-changes h4{margin:0 0 12px;color:#1f2937;font-size:1.1rem}.recipe-changes ul{margin:0;padding-left:24px}.recipe-changes li{margin-bottom:6px;color:#4b5563}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #e5e7eb}.impact-text{color:#6b7280;font-size:.9rem}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid #e5e7eb}.btn-apply{padding:10px 24px;background:#10b981;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.btn-apply:hover:not(:disabled){background:#059669}.btn-apply:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{padding:10px 24px;background:#f3f4f6;color:#4b5563;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#e5e7eb}@media (max-width: 768px){.manager-header{flex-direction:column;gap:12px;align-items:stretch}.manager-controls{flex-direction:column}.group-header{flex-direction:column;gap:12px;align-items:stretch}.group-actions{flex-direction:column;gap:8px}.btn-select-primary,.btn-keep-separate{width:100%}.ingredient-item{flex-wrap:wrap}.item-usage{width:100%;margin-top:4px}}.bridge-devtools{padding:2rem;max-width:1400px;margin:0 auto;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.devtools-header{margin-bottom:3rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:#6b7280;text-decoration:none;font-size:.95rem;margin-bottom:1rem;transition:color .2s}.back-link:hover{color:#4b5563}.devtools-header h1{display:flex;align-items:center;gap:1rem;font-size:2.5rem;color:#1f2937;margin:0 0 .5rem}.header-description{color:#6b7280;font-size:1.1rem;margin:0}.devtools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;animation:fadeIn .5s ease}.devtool-card{background:#fff;border-radius:16px;padding:2rem;border:2px solid;transition:all .3s ease;cursor:pointer;position:relative;overflow:hidden}.devtool-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:currentColor;transform:scaleX(0);transition:transform .3s ease}.devtool-card:hover:before{transform:scaleX(1)}.devtool-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.card-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem}.card-header h3{margin:0;font-size:1.5rem;color:#1f2937}.card-description{color:#6b7280;margin-bottom:1.5rem;line-height:1.6}.card-features{list-style:none;padding:0;margin:0 0 1.5rem}.card-features li{padding:.5rem 0;color:#4b5563;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.card-features li:before{content:"✓";color:#10b981;font-weight:700}.card-action{display:flex;justify-content:flex-end}.action-text{color:#6366f1;font-weight:600;font-size:.95rem;transition:transform .2s;display:inline-block}.devtool-card:hover .action-text{transform:translate(4px)}.devtool-container{animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.devtool-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.back-to-tools{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;font-size:.95rem;cursor:pointer;transition:all .2s}.back-to-tools:hover{background:#f9fafb;border-color:#9ca3af;color:#4b5563}.tool-title{display:flex;align-items:center;gap:1rem}.tool-title .tool-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.25rem}.tool-title h2{margin:0;color:#1f2937;font-size:1.75rem}.devtool-content{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 12px #0000000d}@media (max-width: 768px){.bridge-devtools{padding:1rem}.devtools-header h1{font-size:2rem}.devtools-grid{grid-template-columns:1fr;gap:1rem}.devtool-card{padding:1.5rem}.devtool-nav{flex-direction:column;gap:1rem;align-items:stretch}.tool-title{justify-content:center}.devtool-content{padding:1rem}}.devtools-loading{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:1.2rem;color:#6b7280}.devtools-empty{text-align:center;padding:4rem 2rem;color:#6b7280}.devtools-empty h3{margin-bottom:1rem;color:#4b5563}.account-manager{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px}.add-button{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.add-form,.edit-form{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:16px;margin-bottom:16px}.add-form input,.edit-form input{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;margin-bottom:12px}.add-form input:focus,.edit-form input:focus{outline:none;border-color:#2196f3}.checkbox-group{display:flex;gap:20px;margin-bottom:12px}.checkbox-group label{display:flex;align-items:center;gap:6px;font-size:14px;color:#666;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;margin:0;cursor:pointer}.form-actions{display:flex;gap:8px;justify-content:flex-end}.accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.account-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s}.account-item:hover{border-color:#2196f3;box-shadow:0 2px 4px #0000000d}.account-info{display:flex;align-items:center;gap:12px;flex:1}.account-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#f0f0f0;border-radius:50%;color:#666}.account-name{font-size:15px;font-weight:500;color:#333}.default-badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.default-badge.bills{background:#e3f2fd;color:#1976d2}.default-badge.expenses{background:#e8f5e9;color:#2e7d32}.account-actions{display:flex;gap:4px}.account-manager-loading,.account-manager-error{padding:20px;text-align:center;color:#666}.account-manager-error{color:#ef4444}.account-item .edit-form{width:100%;background:transparent;padding:0;border:none}.account-item .edit-form input{margin-bottom:8px}.account-item .edit-form .form-actions{margin-top:8px}.merchant-manager{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px}.add-form{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:16px;margin-bottom:16px;display:flex;gap:12px}.merchants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.merchant-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s}.merchant-item:hover{border-color:#2196f3;box-shadow:0 2px 4px #0000000d}.merchant-info{display:flex;align-items:center;gap:8px;flex:1}.merchant-icon{color:#666}.merchant-name{font-size:14px;font-weight:500;color:#333;flex:1}.merchant-actions{display:flex;gap:4px}.delete-button:hover{background:#fee2e2;opacity:1}.edit-form-inline{display:flex;gap:8px;width:100%}.merchant-manager-loading,.merchant-manager-error{padding:20px;text-align:center;color:#666}.merchant-manager-error{color:#ef4444}.recipe-source-manager{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #e0e0e0}.manager-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.header-actions{display:flex;gap:12px;align-items:center}.search-box{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;background:#fff;min-width:200px}.search-box input{flex:1;border:none;outline:none;font-size:14px}.add-button{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s;white-space:nowrap}.add-button:hover{background:#1976d2}.add-form{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:16px;margin-bottom:16px;display:flex;gap:12px;align-items:center}.add-form input{flex:1;padding:10px 12px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px}.add-form input:focus{outline:none;border-color:#2196f3}.form-actions{display:flex;gap:8px}.save-button,.cancel-button{display:flex;align-items:center;gap:4px;padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.save-button{background:#4caf50;color:#fff}.save-button:hover{background:#45a049}.cancel-button{background:#f5f5f5;color:#666;border:1px solid #e0e0e0}.cancel-button:hover{background:#e0e0e0}.sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.source-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s}.source-item:hover{border-color:#2196f3;box-shadow:0 2px 4px #0000000d}.source-info{display:flex;align-items:center;gap:8px;flex:1}.source-icon{color:#666;flex-shrink:0}.source-name{font-size:14px;font-weight:500;color:#333;flex:1}.source-url{padding:2px 8px;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:11px;text-decoration:none;font-weight:600;transition:all .2s}.source-url:hover{background:#1976d2;color:#fff}.usage-count{padding:2px 6px;background:#f0f0f0;border-radius:4px;font-size:11px;color:#666;font-weight:600}.source-actions{display:flex;gap:4px}.edit-button,.delete-button{padding:6px;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.edit-button{color:#1976d2}.edit-button:hover{background:#e3f2fd}.delete-button{color:#ef4444;opacity:.7}.delete-button:hover:not(:disabled){background:#fee2e2;opacity:1}.delete-button:disabled{opacity:.3;cursor:not-allowed}.edit-form-inline{display:flex;gap:8px;width:100%;align-items:center}.edit-form-inline input{flex:1;padding:6px 8px;border:1px solid #2196F3;border-radius:4px;font-size:14px}.edit-form-inline input:focus{outline:none;border-color:#1976d2}.save-button-small,.cancel-button-small{padding:6px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.save-button-small{background:#4caf50;color:#fff}.save-button-small:hover{background:#45a049}.cancel-button-small{background:#f5f5f5;color:#666}.cancel-button-small:hover{background:#e0e0e0}.empty-state{text-align:center;padding:40px 20px;color:#999}.empty-state p{margin:8px 0;font-size:14px}.recipe-source-manager-loading,.recipe-source-manager-error{padding:20px;text-align:center;color:#666}.recipe-source-manager-error{color:#ef4444}.configuration-container{min-height:100vh;background:#f5f5f5;padding:20px}.configuration-header{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px;box-shadow:0 2px 4px #0000000d}.configuration-header h1{display:flex;align-items:center;gap:12px;margin:16px 0 0;font-size:28px;font-weight:600;color:#333}.configuration-tabs{display:flex;gap:8px;margin-bottom:24px;background:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 4px #0000000d;overflow-x:auto}.tab-button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:transparent;border:1px solid #e0e0e0;border-radius:6px;color:#666;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.tab-button:hover{background:#f5f5f5;border-color:#2196f3;color:#2196f3}.tab-button.active{background:#2196f3;border-color:#2196f3;color:#fff}.configuration-content{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.configuration-container{padding:12px}.configuration-header{padding:16px;margin-bottom:16px}.configuration-header h1{font-size:24px}.configuration-tabs{padding:8px;gap:4px}.tab-button{padding:8px 12px;font-size:13px}}.preferences-container{min-height:100vh;background:#f5f5f5;padding:20px}.preferences-header{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px;box-shadow:0 2px 4px #0000000d}.preferences-header h1{display:flex;align-items:center;gap:12px;margin:16px 0 8px;font-size:28px;font-weight:600;color:#333}.preferences-subtitle{color:#666;font-size:14px;margin:0}.back-button{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#f5f5f5;color:#666;text-decoration:none;border-radius:6px;font-size:14px;font-weight:500;transition:all .2s}.back-button:hover{background:#e0e0e0;color:#333}.preferences-content{max-width:800px;margin:0 auto}.preferences-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000000d}.preferences-card h2{display:flex;align-items:center;gap:8px;margin:0 0 24px;font-size:20px;font-weight:600;color:#333;padding-bottom:12px;border-bottom:1px solid #e0e0e0}.preference-group{margin-bottom:24px}.preference-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#333}.preference-hint{display:block;margin-top:4px;font-size:12px;font-weight:400;color:#666}.preference-select{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;background:#fff;transition:all .2s}.preference-select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.preference-actions{display:flex;justify-content:flex-end;margin-top:32px;padding-top:20px;border-top:1px solid #e0e0e0}.save-button{display:flex;align-items:center;gap:8px;padding:10px 24px;background:#2196f3;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.save-button:hover:not(:disabled){background:#1976d2;transform:translateY(-1px);box-shadow:0 4px 8px #2196f333}.save-button:disabled{opacity:.6;cursor:not-allowed}.save-button.success,.save-button.success:hover{background:#4caf50}.preferences-info{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:16px;margin-top:20px;text-align:center}.preferences-info p{margin:0 0 8px;color:#856404;font-size:14px}.config-link{color:#2196f3;text-decoration:none;font-weight:500;font-size:14px}.config-link:hover{text-decoration:underline}.preferences-loading,.preferences-error{background:#fff;border-radius:8px;padding:40px;text-align:center;color:#666;font-size:16px;box-shadow:0 2px 4px #0000000d}.preferences-error{color:#ef4444}@media (max-width: 768px){.preferences-container{padding:12px}.preferences-header{padding:16px;margin-bottom:16px}.preferences-header h1{font-size:24px}.preferences-card{padding:16px}.preference-actions{margin-top:24px;padding-top:16px}}.mobile-menu-toggle{display:none;position:fixed;top:1rem;right:1rem;z-index:1001;background:#fff;border:2px solid #e5e7eb;padding:.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:pointer;color:#374151;transition:all .2s}.mobile-menu-toggle:hover{background:#f3f4f6;border-color:#d1d5db}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#fff;box-shadow:2px 0 8px #0000000d;display:flex;flex-direction:column;z-index:1000;transition:width .3s ease,transform .3s ease}.sidebar.collapsed{width:60px}.sidebar.collapsed .sidebar-title,.sidebar.collapsed .nav-label,.sidebar.collapsed .sidebar-footer span{display:none}.sidebar.collapsed .nav-item{justify-content:center}.sidebar.collapsed .nav-icon{margin-right:0}.sidebar-toggle{position:absolute;right:-15px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid #e5e7eb;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1001;transition:all .2s;color:#6b7280}.sidebar-toggle:hover{background:#f3f4f6;border-color:#d1d5db;transform:translateY(-50%) scale(1.1)}@media only screen and (max-width: 430px){.sidebar-toggle{display:none}}.sidebar-header{padding:1.5rem;text-align:center;border-bottom:1px solid #e5e7eb;background:#fff}.sidebar-logo{width:60px;height:60px;border-radius:50%;object-fit:cover}.profile-section{position:relative;margin-bottom:.75rem}.profile-button{background:none;border:none;padding:0;cursor:pointer;position:relative;transition:transform .2s}.profile-button:hover{transform:scale(1.05)}.profile-chevron{position:absolute;bottom:-2px;right:-2px;background:#fff;border-radius:50%;padding:2px;box-shadow:0 1px 3px #0003;transition:transform .2s;color:#6b7280}.profile-chevron.open{transform:rotate(180deg)}.profile-dropdown{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:180px;z-index:1100;overflow:hidden}.profile-info{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;color:#4b5563;word-break:break-all}.dropdown-divider{margin:0;border:none;border-top:1px solid #e5e7eb}.dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:none;border:none;font-size:.875rem;color:#4b5563;cursor:pointer;transition:background .2s;text-align:left}.dropdown-item:hover{background:#f3f4f6;color:#1f2937}.sidebar-header h2{margin:0;font-size:1.25rem;color:#1f2937;font-weight:700}.sidebar.collapsed .sidebar-header{padding:1rem .5rem}.sidebar.collapsed .sidebar-logo{width:40px;height:40px}.sidebar.collapsed .profile-chevron{display:none}.sidebar.collapsed .profile-dropdown{left:100%;margin-left:10px;margin-top:-50px}.sidebar.collapsed .sidebar-nav{padding:.5rem}.sidebar.collapsed .nav-item,.sidebar.collapsed a.nav-item{justify-content:center;padding:.75rem;position:relative}.sidebar.collapsed .nav-item:hover:after,.sidebar.collapsed a.nav-item:hover:after{content:attr(data-label);position:absolute;left:100%;margin-left:10px;background:#1f2937;color:#fff;padding:.5rem .75rem;border-radius:6px;white-space:nowrap;font-size:.875rem;z-index:1002;pointer-events:none}.sidebar-nav{flex:1;padding:1rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:200px}.nav-item,a.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:none;border:none;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;font-size:.95rem;color:#4b5563;position:relative;width:100%;text-decoration:none;box-sizing:border-box}.nav-item:hover:not(.disabled){background:#f3f4f6;color:#1f2937}.nav-item.active{background:var(--item-color);color:#fff;font-weight:500}.nav-item.active:hover{opacity:.9}.nav-item.disabled{opacity:.5;cursor:not-allowed}.nav-item svg{flex-shrink:0}.nav-item span{flex:1}.coming-soon{font-size:.75rem;background:#e5e7eb;color:#6b7280;padding:.125rem .5rem;border-radius:4px;margin-left:auto}.nav-item.active .coming-soon{background:#fff3;color:#ffffffe6}.sidebar-footer{padding:1rem;text-align:center;border-top:1px solid #e5e7eb;color:#9ca3af;font-size:.875rem}.sidebar-overlay{display:none}@media only screen and (min-width: 431px) and (max-width: 768px){.mobile-menu-toggle{display:none}.sidebar{transform:translate(0)}.sidebar-toggle{display:flex!important}}@media only screen and (max-width: 430px){.mobile-menu-toggle{display:block}.sidebar{transform:translate(-100%);background:#fff}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:999}.nav-item{display:flex!important;width:100%}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem}.profile-dropdown{position:fixed;top:auto;bottom:100px;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:250px}}.auth-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.auth-modal{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:400px;position:relative;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.auth-modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;cursor:pointer;padding:.5rem;border-radius:6px;color:#6b7280;transition:all .2s}.auth-modal-close:hover{background:#f3f4f6;color:#1f2937}.auth-modal h2{margin:0 0 .5rem;font-size:1.5rem;color:#1f2937}.auth-modal-subtitle{color:#6b7280;margin:0 0 1.5rem;font-size:.875rem}.auth-field{margin-bottom:1rem}.auth-field label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.auth-field input{width:100%;padding:.75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;transition:all .2s}.auth-field input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.auth-field input:disabled{background:#f9fafb;cursor:not-allowed}.auth-message{padding:.75rem;border-radius:6px;font-size:.875rem;margin-bottom:1rem}.auth-message.error{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.auth-message.success{background:#d1fae5;color:#059669;border:1px solid #a7f3d0}.auth-submit{width:100%;padding:.75rem;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-submit:hover:not(:disabled){background:#4f46e5}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:1.5rem;font-size:.875rem;color:#6b7280}.auth-switch button{background:transparent;border:none;color:#6366f1;cursor:pointer;font-weight:500;text-decoration:underline}.auth-switch button:hover{color:#4f46e5}.auth-note{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.auth-note p{margin:0;font-size:.75rem;color:#6b7280;text-align:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}:root{--sidebar-width: 260px}#root{margin:0;padding:0;min-height:100vh}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;min-height:100vh;background:#f9fafb;transition:margin-left .3s ease}@media only screen and (max-width: 430px){.main-content{margin-left:0;padding-top:60px;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.main-content.recipe-details-mobile-active{margin-left:0;padding:0;width:100vw;height:100vh}}@media only screen and (min-width: 431px) and (max-width: 768px){.main-content{margin-left:var(--sidebar-width);padding-top:0;transition:margin-left .3s ease}.main-content.recipe-details-mobile-active{margin-left:0;padding:0;width:100vw;height:100vh}}@media only screen and (min-width: 769px){.main-content{margin-left:var(--sidebar-width);transition:margin-left .3s ease}}.content-wrapper{width:100%;transition:all .3s ease}.main-content.recipe-details-mobile-active .content-wrapper{padding:0;margin:0;max-width:100%;width:100%;height:100%}.content-wrapper.mobile-preview{max-width:390px;margin:20px auto;box-shadow:0 0 0 1px #e5e7eb,0 10px 40px #00000026;border-radius:40px;overflow:hidden;background:#fff;min-height:844px;position:relative}.content-wrapper.mobile-preview:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:120px;height:30px;background:#000;border-radius:0 0 20px 20px;z-index:10;pointer-events:none}.app-layout.mobile-preview-active .main-content{background:linear-gradient(135deg,#f3f4f6,#e5e7eb)}.mobile-preview-active .content-wrapper.mobile-preview *{max-width:100vw!important}.content-wrapper.mobile-preview{container-type:inline-size}.content-wrapper.mobile-preview .finance-container,.content-wrapper.mobile-preview .my-bills,.content-wrapper.mobile-preview .expense-manager,.content-wrapper.mobile-preview .budget-container{width:100%!important;max-width:100%!important;padding:12px!important}.content-wrapper.mobile-preview .finance-header,.content-wrapper.mobile-preview .bills-header,.content-wrapper.mobile-preview .expense-header{flex-direction:column!important;gap:12px!important}.content-wrapper.mobile-preview .finance-summary,.content-wrapper.mobile-preview .expense-summary,.content-wrapper.mobile-preview .bills-summary{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.content-wrapper.mobile-preview .summary-card{padding:12px!important;font-size:14px!important}.content-wrapper.mobile-preview .tab-button{font-size:13px!important;padding:8px 12px!important}.app-layout.mobile-preview-active .sidebar{display:none}.app-layout.mobile-preview-active .main-content{margin-left:0}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.auth-card{background:#fff;padding:3rem;border-radius:20px;box-shadow:0 10px 40px #0000001a;max-width:400px;width:100%;text-align:center;animation:fadeIn .5s ease-out}.auth-card-expanded{max-width:450px;text-align:left}.auth-card-expanded h2{text-align:center;margin-bottom:.5rem}.auth-card-expanded>p{text-align:center;margin-bottom:2rem}.auth-card h2{color:#2d3748;margin-bottom:.5rem;font-size:1.8rem;font-weight:700}.auth-card p{color:#718096;margin-bottom:2rem;font-size:1rem}.auth-input{width:100%;padding:.875rem 1.25rem;font-size:1rem;border:2px solid #e2e8f0;border-radius:10px;margin-bottom:1rem;transition:all .3s ease;font-family:inherit}.auth-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-button{width:100%;padding:.875rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:inherit}.auth-button:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea4d}.auth-button:active{transform:translateY(0)}.auth-error{color:#e53e3e;margin-top:1rem;font-size:.875rem;animation:shake .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media only screen and (max-width: 430px){:root{font-size:16px;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:1.75rem;line-height:1.2}h2{font-size:1.5rem;line-height:1.25}h3{font-size:1.25rem;line-height:1.3}h4{font-size:1.125rem;line-height:1.35}p,.body-text{font-size:1rem;line-height:1.6}small,.small-text,.label{font-size:.875rem}.xs-text{font-size:.75rem}button,.btn,[role=button]{min-height:44px;min-width:44px;font-size:1rem;padding:12px 16px;touch-action:manipulation}input,textarea,select{font-size:16px!important;min-height:44px;padding:12px}a,.clickable{min-height:44px;min-width:44px;display:inline-flex;align-items:center}.nav-item,.menu-item{min-height:48px;padding:12px 16px;font-size:1rem}.card,.panel{padding:16px;margin:8px;border-radius:12px}.modal-content{width:calc(100vw - 32px)!important;max-width:calc(100vw - 32px)!important;margin:16px;padding:16px!important}.list-item{min-height:48px;padding:12px 16px;font-size:1rem}.container{padding:16px}.icon{font-size:1.25rem;min-width:24px;min-height:24px}.badge,.chip{font-size:.875rem;padding:4px 8px;border-radius:12px}}@media only screen and (min-width: 390px) and (max-width: 395px){body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}@media only screen and (-webkit-min-device-pixel-ratio: 3),only screen and (min-resolution: 3dppx){*{border-width:.5px}.card,.modal-content{box-shadow:0 2px 8px #0000001f}}@media only screen and (max-width: 851px) and (orientation: landscape){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.modal-content{max-height:calc(100vh - 32px)}button,input,select{min-height:40px}}@media (hover: none) and (pointer: coarse){*:hover{background-color:inherit!important;color:inherit!important}button:active,a:active,.clickable:active{opacity:.8;transform:scale(.98)}button,.btn,.nav-item{-webkit-user-select:none;user-select:none}}@supports (padding: env(safe-area-inset-top)){.header,.navbar{padding-top:env(safe-area-inset-top)}.footer,.bottom-nav{padding-bottom:env(safe-area-inset-bottom)}.sidebar{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}*{-webkit-overflow-scrolling:touch}.scrollable{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}html,body{overflow-x:hidden;max-width:100vw}@media only screen and (max-width: 430px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],input[type=datetime-local],textarea,select{font-size:16px!important;transform:scale(1);-webkit-appearance:none;border-radius:8px}input[type=checkbox],input[type=radio]{min-width:20px;min-height:20px;margin:12px}}.loading,.spinner{font-size:1rem;padding:20px}.error,.alert{font-size:.875rem;padding:12px;border-radius:8px}@media only screen and (max-width: 430px){table{font-size:.875rem}th,td{padding:8px}}@media only screen and (max-width: 430px){@media (prefers-reduced-motion: no-preference){*{animation-duration:.2s!important;transition-duration:.2s!important}}}
