.menu-container{position:relative;display:flex;align-items:center}.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;margin-right:.5rem}.hamburger{display:flex;flex-direction:column;gap:4px;width:24px}.hamburger span{display:block;height:2px;background-color:#333;border-radius:2px;transition:all .3s ease}.menu-list{display:flex;list-style:none;margin:0;padding:0;gap:.5rem}.menu-item{margin:0}.menu-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;text-decoration:none;color:#333;border-radius:4px;transition:background-color .2s ease}.menu-link:hover{background-color:#f0f0f0}.menu-link.active{background-color:#e0e0e0;font-weight:500}.menu-icon{font-size:1.1rem}.menu-label{font-size:.95rem}.menu-overlay{display:none}@media (max-width: 768px){.menu-toggle{display:block}.menu-list{position:fixed;top:60px;right:0;width:200px;max-width:70vw;flex-direction:column;background-color:#fff;border-radius:0 0 0 8px;box-shadow:-2px 2px 8px #00000026;transform:translate(100%);transition:transform .3s ease;z-index:1000;padding:.5rem 0}.menu-list.open{transform:translate(0)}.menu-item{width:100%}.menu-link{width:100%;padding:.75rem 1rem;box-sizing:border-box}.menu-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0000004d;z-index:999}}.header{background:#fff;padding:20px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.header h1{font-size:24px;color:#2c3e50;margin:0}.header-actions,.user-info{display:flex;align-items:center;gap:15px}.user-email{color:#6c757d;font-size:14px}.button-secondary{background-color:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.button-secondary:hover{background-color:#5a6268}@media (max-width: 768px){.header{flex-direction:column;align-items:flex-start}.header h1{font-size:20px}.header-actions,.user-info{width:100%;justify-content:space-between}.user-email{display:none}}.layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:20px;max-width:1400px;margin:0 auto;width:100%}@media (max-width: 640px){.main-content{padding:12px 0}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5}.login-content{text-align:center;background:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 4px #0000001a;max-width:400px;width:100%}.login-content h1{color:#2c3e50;margin-bottom:20px;font-size:24px}.login-content p{color:#6c757d;margin-bottom:30px}.login-button{background-color:#4285f4;color:#fff;border:none;padding:12px 24px;border-radius:4px;cursor:pointer;font-size:16px;transition:background-color .2s}.login-button:hover{background-color:#357ae8}.login-button:active{transform:translateY(1px)}.unauthorized-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;padding:20px}.unauthorized-content{text-align:center;background:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 4px #0000001a;max-width:450px;width:100%}.unauthorized-icon{font-size:64px;margin-bottom:20px}.unauthorized-content h1{color:#dc3545;margin-bottom:16px;font-size:28px}.unauthorized-message{color:#495057;font-size:16px;margin-bottom:16px;line-height:1.5}.unauthorized-email{color:#6c757d;font-size:14px;margin-bottom:24px;padding:10px;background-color:#f8f9fa;border-radius:4px}.unauthorized-help{margin-bottom:24px;padding:16px;background-color:#e7f3ff;border-radius:6px;border:1px solid #b6d4fe}.unauthorized-help p{color:#495057;margin-bottom:8px;font-size:14px}.admin-email{color:#0d6efd;font-weight:500;text-decoration:none;font-size:15px}.admin-email:hover{text-decoration:underline}.unauthorized-actions{margin-top:20px}.logout-button{background-color:#6c757d;color:#fff;border:none;padding:12px 24px;border-radius:4px;cursor:pointer;font-size:16px;transition:background-color .2s}.logout-button:hover{background-color:#5a6268}.logout-button:active{transform:translateY(1px)}.schedule-editor{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--border-color, #ddd);border-radius:4px;padding:12px;width:100%}.se-row{display:flex;flex-direction:column;gap:6px}.se-row:first-child{flex-direction:row;align-items:center}.se-label{font-size:.875rem;color:#6c757d;min-width:90px;flex-shrink:0;font-weight:500}.se-select{font-size:.875rem;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:#fff;flex:1}.se-select-sm{flex:0 0 auto;width:70px}.se-actions{display:flex;gap:6px;margin-top:4px}.se-actions .action-button{flex:1;padding:5px 10px;font-size:13px}.payment-table-container{margin-top:10px}.rename-success-message{background-color:#dcfce7;border:1px solid #86efac;border-radius:4px;padding:12px 16px;margin-bottom:16px;color:#166534;font-size:.95rem;display:flex;align-items:center;gap:8px;animation:slideDown .3s ease-out}.rename-success-message span{font-weight:600;font-size:1.1rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.payment-table{width:100%;border-collapse:collapse}.payment-table th,.payment-table td{padding:12px;text-align:left;border-bottom:1px solid #e0e0e0}.payment-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50;position:sticky;top:0;z-index:10;white-space:nowrap}.payment-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.payment-table th.sortable:hover{background-color:#e9ecef}.payment-table tbody tr{transition:background-color .15s}.payment-table tbody tr:hover{background-color:#f8f9fa}.status-active{color:#28a745;font-weight:500}.status-active:before{content:"●";margin-right:5px}.status-inactive{color:#6c757d}.status-inactive:before{content:"○";margin-right:5px}.lock-status{font-size:14px}.lock-status-locked{color:#dc3545;font-weight:500}.lock-status-unlocked{color:#28a745;font-weight:500}.lock-holder{font-size:12px;color:#6c757d;display:block;margin-top:2px;font-style:italic}.action-button{background-color:#4285f4;color:#fff;border:none;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .2s;white-space:nowrap}.action-button:hover{background-color:#357ae8}.action-button.secondary{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.action-button.secondary:hover{background-color:#e5e7eb}.action-button.icon-button{background:none;border:1px solid #d1d5db;color:inherit;padding:4px 8px;font-size:1rem;line-height:1}.action-button.icon-button:hover{background-color:#f3f4f6}.empty-state{text-align:center;padding:40px;color:#6c757d}@media (max-width: 640px){.payment-table thead{display:none}.payment-table,.payment-table tbody,.payment-table tr,.payment-table td{display:block;width:100%}.payment-table tbody tr{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;padding:12px;box-shadow:0 1px 3px #0000000f}.payment-table tbody tr:hover{background:#f8f9fa}.payment-table td{border:none;padding:4px 0;font-size:14px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.payment-table td:before{content:attr(data-label);font-weight:600;color:#2c3e50;min-width:110px;flex-shrink:0;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding-top:2px}.payment-table td:first-child{font-size:16px;font-weight:600;color:#2c3e50;border-bottom:1px solid #f0f0f0;padding-bottom:8px;margin-bottom:4px}.payment-table td:first-child:before{display:none}.payment-table td:last-child{margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;justify-content:flex-end}.payment-table td:last-child:before{display:none}.action-button{padding:8px 20px;font-size:14px;width:100%}}.next-due-none{color:#adb5bd}.row-overdue{background-color:#fff5f5!important}.row-overdue:hover{background-color:#ffe8e8!important}.meta-display{cursor:pointer;font-size:.8rem;color:#6c757d;border-bottom:1px dashed #adb5bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:inline-block}.meta-display:hover{color:#4285f4;border-color:#4285f4}.meta-edit-inline{display:flex;align-items:center;gap:4px}.meta-input{font-size:.8rem;padding:2px 6px;border:1px solid #4285f4;border-radius:4px;width:220px}.auto-pay-toggle{background:none;border:1px solid #d1d5db;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:14px;color:#9ca3af;transition:all .2s}.payment-date-late{color:#8b4513;font-weight:500}.meta-display-readonly{font-size:.8rem;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:inline-block}.auto-pay-display{display:inline-block;padding:4px 8px;font-size:14px;color:#9ca3af}.auto-pay-display.enabled{color:#22c55e}.lock-status-readonly{color:#6c757d;font-weight:500}.name-cell-editable{cursor:pointer;color:#2c3e50;font-weight:500;border-bottom:1px dashed #adb5bd;transition:all .2s;display:inline-block;padding:2px 4px;border-radius:2px}.name-cell-editable:hover{color:#4285f4;border-color:#4285f4;background-color:#f0f7ff}.name-cell-readonly{color:#2c3e50;font-weight:500}.name-cell-editing{display:flex;align-items:center;gap:4px}.name-input{font-size:.95rem;padding:4px 8px;border:1px solid #4285f4;border-radius:4px;font-weight:500;min-width:150px}.name-input:focus{outline:none;border-color:#357ae8;box-shadow:0 0 0 2px #4285f41a}.name-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.error-text{color:#dc3545;font-size:.75rem;margin-top:2px;white-space:nowrap}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;padding:30px;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 6px #0000001a;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.modal-header h2{color:#2c3e50;margin:0}.close-button{background:none;border:none;font-size:28px;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-button:hover{color:#333}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:15px}.read-only-notice{background-color:#fff3cd;border:1px solid #ffc107;border-left:4px solid #ffc107;color:#856404;padding:10px;border-radius:4px;margin-bottom:15px}.payment-info{background-color:#f8f9fa;padding:15px;border-radius:4px;margin-bottom:20px;border-left:4px solid #4285f4}.info-item{margin-bottom:8px;font-size:14px}.info-item:last-child{margin-bottom:0}.info-label{font-weight:600;color:#2c3e50;display:inline-block;min-width:180px}.info-value{color:#6c757d}.payment-form{margin-top:20px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#2c3e50}.form-group input,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group textarea{resize:vertical;min-height:80px}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a}.required{color:#dc3545}.button-group{display:flex;gap:10px;margin-top:20px}.button-group button{flex:1;padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.button-group button[type=submit]{background-color:#4285f4;color:#fff}.button-group button[type=submit]:hover:not(:disabled){background-color:#357ae8}.button-group button[type=submit]:disabled{background-color:#ccc;cursor:not-allowed}@media (max-width: 768px){.modal-content{padding:20px;width:calc(100% - 20px)}.info-label{display:block;min-width:auto;margin-bottom:2px}.info-value{display:block}.button-group{flex-direction:column}}.meta-clickable{cursor:pointer;border-bottom:1px dashed #adb5bd}.meta-clickable:hover{color:#4285f4;border-color:#4285f4}.meta-empty{color:#adb5bd;font-style:italic}.meta-edit-inline{display:inline-flex;align-items:center;gap:4px}.meta-modal-input{font-size:13px;padding:3px 8px;border:1px solid #4285f4;border-radius:4px;width:280px}.next-due-ok{color:#28a745}.next-due-soon{color:#f59e0b;font-weight:600}.next-due-due{color:#92400e;font-weight:600}.next-due-overdue{color:#dc3545;font-weight:600}.auto-pay-toggle{background:none;border:1px solid #d1d5db;border-radius:4px;padding:4px 12px;cursor:pointer;font-size:13px;color:#9ca3af;transition:all .2s}.auto-pay-toggle:hover:not(:disabled){border-color:#4285f4;color:#4285f4}.auto-pay-toggle.enabled{background-color:#dcfce7;border-color:#22c55e;color:#22c55e}.auto-pay-toggle:disabled{opacity:.5;cursor:not-allowed}.action-btn{padding:.3rem .75rem;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#6c757d;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:all .2s}.action-btn:hover:not(:disabled){border-color:#4285f4;color:#4285f4}.action-btn:disabled{opacity:.5;cursor:not-allowed}.deactivate-btn{border-color:#dc3545;color:#dc3545}.deactivate-btn:hover:not(:disabled){background-color:#fff5f5;border-color:#c82333;color:#c82333}.activate-btn{border-color:#28a745;color:#28a745}.activate-btn:hover:not(:disabled){background-color:#f1f9f5;border-color:#218838;color:#218838}.icon-button{padding:.2rem .5rem;border:1px solid #d1d5db;border-radius:3px;background:#fff;color:#6c757d;font-size:.9rem;cursor:pointer;transition:all .2s}.icon-button:hover:not(:disabled){border-color:#4285f4;color:#4285f4}.icon-button.secondary{color:#dc3545;border-color:#dc3545}.icon-button.secondary:hover:not(:disabled){background-color:#fff5f5}.icon-button:disabled{opacity:.5;cursor:not-allowed}.payment-creation-modal{max-width:500px}.payment-creation-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.payment-creation-modal .modal-header h2{margin:0;font-size:1.25rem}.payment-creation-modal .close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;color:#666}.payment-creation-modal .close-btn:hover{color:#333}.payment-creation-modal form{padding:1.5rem}.payment-creation-modal .form-group{margin-bottom:1.5rem}.payment-creation-modal .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.9rem}.payment-creation-modal .form-group input,.payment-creation-modal .form-group select,.payment-creation-modal .form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit}.payment-creation-modal .form-group input:focus,.payment-creation-modal .form-group select:focus,.payment-creation-modal .form-group textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.payment-creation-modal .form-group small{display:block;margin-top:.25rem;color:#666;font-size:.8rem}.payment-creation-modal .form-group.checkbox label{display:flex;align-items:center;gap:.5rem;margin-bottom:0;font-weight:400}.payment-creation-modal .form-group.checkbox input{width:auto;margin:0}.payment-creation-modal .error-message{padding:.75rem 1rem;background:#f8d7da;color:#721c24;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.payment-creation-modal .form-actions{display:flex;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.payment-creation-modal .btn{flex:1;padding:.75rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.payment-creation-modal .btn-primary{background:#3498db;color:#fff}.payment-creation-modal .btn-primary:hover:not(:disabled){background:#2980b9}.payment-creation-modal .btn-secondary{background:#27ae60;color:#fff}.payment-creation-modal .btn-secondary:hover:not(:disabled){background:#229954}.payment-creation-modal .btn-cancel{background:#95a5a6;color:#fff}.payment-creation-modal .btn-cancel:hover:not(:disabled){background:#7f8c8d}.payment-creation-modal .btn:disabled{opacity:.6;cursor:not-allowed}.pay-date-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.pay-date-label{min-width:100px;font-weight:500;color:#333;font-size:.9rem;margin:0}.pay-date-select{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit}.pay-date-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.payment-edit-modal{background:var(--bg-primary, #fff);border-radius:8px;box-shadow:0 4px 20px #00000026;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color, #ddd)}.modal-header h2{margin:0;font-size:1.25rem;color:var(--text-primary, #333)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary, #666);padding:0;line-height:1}.modal-close:hover{color:var(--text-primary, #333)}.modal-body{padding:1.5rem}.error-message{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem}.read-only-notice{background:#f0f0f0;color:#666;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--text-primary, #333)}.form-group input[type=text],.form-group select{width:100%;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:1rem}.form-group input:disabled,.form-group select:disabled{background:#f5f5f5;cursor:not-allowed}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.checkbox-label input:disabled{cursor:not-allowed}.help-text{font-size:.75rem;color:var(--text-secondary, #666);margin-top:.25rem}.assignees-list{display:flex;flex-direction:column;gap:.5rem;max-height:150px;overflow-y:auto;padding:.5rem;background:var(--bg-secondary, #f9f9f9);border-radius:4px}.assignee-checkbox{font-size:.875rem}.modal-footer{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #ddd);justify-content:flex-end}.modal-footer .action-button{padding:.5rem 1rem;font-size:.875rem}.modal-footer .action-button:disabled{opacity:.5;cursor:not-allowed}.history-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.history-modal{background:#fff;border-radius:8px;width:100%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.history-modal-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.history-modal-header h2{margin:0;font-size:1.1rem;font-weight:600;flex:1 1 100%}.history-modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#6b7280;padding:.25rem .5rem;border-radius:4px}.history-modal-close:hover{background:#f3f4f6}.history-modal-body{overflow-y:auto;padding:1rem 1.5rem;flex:1}.history-loading,.history-error,.history-empty{text-align:center;padding:2rem;color:#6b7280}.history-error{color:#dc2626}.history-table{width:100%;border-collapse:collapse;font-size:.9rem}.history-table th,.history-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid #e5e7eb}.history-table th{background:#f9fafb;font-weight:600;color:#374151}.history-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.history-table th.sortable:hover{background:#f3f4f6}.history-table tbody tr:hover{background:#f9fafb}.history-edit-row td{padding:.4rem .5rem;background:#fffbeb}.history-input{width:100%;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;box-sizing:border-box}.history-edit-actions{display:flex;gap:.4rem;white-space:nowrap}.history-edit-actions .action-button{flex:1}.action-button.secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.action-button.secondary:hover{background:#e5e7eb}@media (max-width: 640px){.history-table thead{display:none}.history-table tbody tr{display:block;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:.75rem;padding:.5rem}.history-table td{display:flex;justify-content:space-between;border:none;padding:.3rem .5rem}.history-table td:before{content:attr(data-label);font-weight:600;color:#6b7280;margin-right:.5rem;flex-shrink:0}.history-edit-row td{display:block}.history-edit-row td.history-edit-actions{display:flex}.history-edit-row td:before{display:none}}.history-raw-row td{background:#fefce8;padding:.75rem;vertical-align:top}.raw-editor{display:flex;flex-direction:column;gap:.25rem}.raw-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.raw-input{width:100%;padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem;font-family:monospace;box-sizing:border-box;background:#fff}.raw-input:focus{outline:none;border-color:#4285f4;box-shadow:0 0 0 2px #4285f426}.history-actions-cell{display:flex;gap:.4rem;flex-wrap:wrap;white-space:nowrap}.read-only-indicator{color:#9ca3af;font-size:1rem}.chart-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.chart-modal{background:#fff;border-radius:8px;width:100%;max-width:860px;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.chart-modal-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.chart-modal-header h2{margin:0;font-size:1.1rem;font-weight:600;flex:1 1 100%}.chart-modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#6b7280;padding:.25rem .5rem;border-radius:4px}.chart-modal-close:hover{background:#f3f4f6}.chart-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #f3f4f6}.chart-type-toggle{display:flex;gap:.25rem}.chart-type-btn{padding:.3rem .75rem;border:1px solid #d1d5db;border-radius:4px;background:#f9fafb;color:#374151;font-size:.85rem;cursor:pointer}.chart-type-btn:hover{background:#f3f4f6}.chart-type-btn.active{background:#4285f4;color:#fff;border-color:#4285f4}.chart-range-buttons{display:flex;gap:.4rem}.range-btn{padding:.3rem .75rem;border:1px solid #d1d5db;border-radius:4px;background:#f9fafb;color:#374151;font-size:.85rem;cursor:pointer}.range-btn:hover{background:#f3f4f6}.range-btn.active{background:#4285f4;color:#fff;border-color:#4285f4}.zoom-out-btn{padding:.3rem .85rem;border:1px solid #4285f4;border-radius:4px;background:#fff;color:#4285f4;font-size:.85rem;cursor:pointer;margin-left:auto}.zoom-out-btn:hover{background:#eff6ff}.y-axis-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#374151;cursor:pointer;margin-left:auto}.y-axis-toggle input{cursor:pointer}.chart-body{padding:1rem .5rem .5rem;min-height:380px;display:flex;align-items:center;justify-content:center}.chart-status{color:#6b7280;font-size:.95rem}.chart-status.error{color:#dc2626}.chart-hint{text-align:center;font-size:.78rem;color:#9ca3af;padding:.5rem 1rem 1rem}.chart-tooltip{background:#1f2937;color:#fff;border-radius:6px;padding:.5rem .75rem;font-size:.85rem;line-height:1.5}.chart-tooltip-date{color:#9ca3af;font-size:.78rem}.chart-tooltip-amount{font-weight:600;font-size:1rem}.chart-tooltip-source{color:#d1d5db;font-size:.78rem}@media (max-width: 640px){.chart-modal{max-height:90vh;overflow-y:auto}.chart-body{padding:.5rem 0;min-height:280px}}.modal-header-actions{display:flex;align-items:center;gap:.5rem}.view-toggle-btn{padding:.3rem .75rem;border:1px solid #4285f4;border-radius:4px;background:#fff;color:#4285f4;font-size:.85rem;cursor:pointer;white-space:nowrap}.view-toggle-btn:hover{background:#eff6ff}.search-container{display:flex;gap:8px;align-items:center;margin-left:auto;flex:1;min-width:0}.search-input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;width:100%;transition:border-color .2s}.search-input:focus{outline:none;border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a}.clear-button{padding:8px 12px;font-size:14px;white-space:nowrap}@media (max-width: 640px){.search-container{width:100%;margin-left:0}}.filter-control{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:14px}.filter-control input[type=checkbox]{cursor:pointer;width:16px;height:16px}.dashboard{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.dashboard-controls{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.dashboard-filters{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.refresh-button{background-color:#4285f4;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s;white-space:nowrap}.refresh-button:hover{background-color:#357ae8}.dashboard-loading,.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:20px}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #4285f4;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.warning-banner{background-color:#fff3cd;border:1px solid #ffc107;color:#856404;padding:10px 16px;margin-bottom:16px;border-radius:4px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.warning-banner button{padding:5px 10px;font-size:12px;white-space:nowrap}@media (max-width: 640px){.dashboard{padding:12px;border-radius:0;box-shadow:none}.dashboard-controls{gap:8px}.refresh-button{width:100%}}.new-payment-page{max-width:700px;margin:0 auto;padding:1rem}.payment-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.form-group label{display:block;margin-bottom:.25rem;font-weight:500;color:#333}.form-group input[type=text],.form-group input[type=email],.form-group select,.form-group textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:1rem;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#4285f4;box-shadow:0 0 0 2px #4285f433}.form-group.checkbox label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;color:#333}.form-group.checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.pay-date-selector{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.pay-date-label{font-weight:400;color:#666;min-width:80px}.pay-date-select{padding:.4rem;border:1px solid #ccc;border-radius:4px}.error-message{background:#fee;color:#c00;padding:.75rem;border-radius:4px;margin-bottom:1rem;border:1px solid #fcc}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.btn{padding:.6rem 1.2rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.btn-primary{background:#4caf50;color:#fff}.btn-primary:hover{background:#45a049}.btn-primary:disabled{background:#a5d6a7;cursor:not-allowed}.btn-cancel{background:#6c757d;color:#fff}.btn-cancel:hover{background:#5a6268}@media (max-width: 500px){.new-payment-page{padding:.5rem}.page-header h2{font-size:1.1rem}.payment-form{padding:1rem}.form-group{margin-bottom:.85rem}.form-group label{font-size:.9rem}.form-group input[type=text],.form-group select,.form-group textarea{font-size:.9rem;padding:.6rem}.pay-date-selector{display:flex;flex-wrap:wrap;gap:.4rem}.pay-date-label{min-width:auto;width:100%;margin-bottom:.25rem;font-size:.85rem}.pay-date-select{flex:1;min-width:70px;font-size:.85rem;padding:.4rem}.form-group.checkbox label{font-size:.9rem}.form-actions{flex-direction:column;gap:.5rem;margin-top:1rem}.btn{width:100%;text-align:center;padding:.7rem 1rem;font-size:.95rem}}.analysis-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.analysis-modal{background:#fff;border-radius:8px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.analysis-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.analysis-header h2{margin:0;font-size:1.1rem;font-weight:600}.analysis-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#6b7280;padding:.25rem .5rem;border-radius:4px}.analysis-close:hover{background:#f3f4f6}.analysis-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid #f3f4f6;flex-shrink:0}.analysis-mode-toggle{display:flex;border:1px solid #d1d5db;border-radius:4px;overflow:hidden}.mode-btn{padding:.3rem .85rem;border:none;background:#f9fafb;color:#374151;font-size:.85rem;cursor:pointer}.mode-btn+.mode-btn{border-left:1px solid #d1d5db}.mode-btn.active{background:#4285f4;color:#fff}.analysis-selectors{display:flex;gap:.5rem}.analysis-selectors select{padding:.3rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;background:#fff;cursor:pointer}.analysis-total{margin-left:auto;font-size:.9rem;color:#374151}.analysis-body{overflow-y:auto;flex:1;padding:0 0 1rem}.analysis-status{text-align:center;padding:3rem;color:#6b7280}.analysis-status.error{color:#dc2626}.analysis-bar-wrap{padding:.75rem 1rem 0}.analysis-bar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.analysis-bar-title{font-size:.85rem;font-weight:600;color:#374151}.bar-zoom-reset{font-size:.78rem;padding:.2rem .6rem;border:1px solid #d1d5db;border-radius:4px;background:#f9fafb;color:#374151;cursor:pointer}.bar-zoom-reset:hover{background:#e5e7eb}.analysis-pie-wrap{position:relative;padding:1rem 1rem 0;transition:all .2s ease}.analysis-pie-wrap.pie-expanded{padding:1rem}.pie-toggle-btn{position:absolute;top:.75rem;right:.75rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;line-height:1;padding:.2rem .4rem;cursor:pointer;color:#374151;z-index:1}.pie-toggle-btn:hover{background:#e5e7eb}.pie-legend-external{display:flex;flex-direction:column;gap:.3rem;padding:.75rem 1rem .5rem;font-size:.82rem;color:#374151}.pie-legend-item{display:flex;align-items:center;gap:.5rem}.pie-legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.analysis-table-wrap{padding:.5rem 1rem 1rem;overflow-x:auto}.analysis-table{width:100%;border-collapse:collapse;font-size:.88rem}.analysis-table th{background:#f9fafb;font-weight:600;color:#374151;padding:.55rem .75rem;text-align:left;border-bottom:2px solid #e5e7eb}.analysis-table td{padding:.5rem .75rem;border-bottom:1px solid #f3f4f6;vertical-align:top}.item-name-cell{border-right:2px solid #e5e7eb;min-width:130px}.item-name{font-weight:600;color:#1f2937}.item-subtotal{font-size:.8rem;color:#6b7280;margin-top:.2rem}.analysis-tooltip{background:#1f2937;color:#fff;border-radius:6px;padding:.5rem .75rem;font-size:.85rem}.analysis-tooltip-name{color:#9ca3af;font-size:.78rem}.analysis-tooltip-value{font-weight:600;font-size:1rem}@media (max-width: 640px){.analysis-table thead{display:none}.analysis-table tbody tr{display:block;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:.5rem;padding:.5rem}.analysis-table td{display:flex;justify-content:space-between;border:none;padding:.25rem .5rem}.analysis-table td:before{content:attr(data-label);font-weight:600;color:#6b7280;margin-right:.5rem;flex-shrink:0}.item-name-cell{display:block;border-right:none;border-bottom:1px solid #e5e7eb;margin-bottom:.25rem}.item-name-cell:before{display:none}.analysis-total{margin-left:0}}.changelog-page{width:100%}.changelog-page .changelog-controls{display:flex;align-items:center;gap:1rem;padding:.75rem 0;flex-wrap:wrap;margin-bottom:1rem}.changelog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.changelog-modal{background:#fff;border-radius:8px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.changelog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.changelog-header h2{margin:0;font-size:1.1rem;font-weight:600}.changelog-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#6b7280;padding:.25rem .5rem;border-radius:4px}.changelog-close:hover{background:#f3f4f6}.changelog-controls{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #f3f4f6;flex-shrink:0;flex-wrap:wrap}.changelog-label{font-size:.82rem;color:#6b7280;font-weight:500}.changelog-filter{padding:.3rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;background:#fff;cursor:pointer;min-width:180px;flex:1;max-width:200px}.changelog-count{font-size:.82rem;color:#6b7280;margin-left:auto}.changelog-body{overflow-y:auto;flex:1}.changelog-status{text-align:center;padding:3rem;color:#6b7280}.changelog-status.error{color:#dc2626}.changelog-table-wrap{overflow-x:auto;padding:0 0 .5rem;-webkit-overflow-scrolling:touch}@media (max-width: 640px){.changelog-table-wrap{padding:0}}.changelog-table{width:100%;border-collapse:collapse;font-size:.85rem}.changelog-table th{background:#f9fafb;font-weight:600;color:#374151;padding:.55rem .75rem;text-align:left;border-bottom:2px solid #e5e7eb;white-space:nowrap}.changelog-table td{padding:.5rem .75rem;border-bottom:1px solid #f3f4f6;vertical-align:top}.row-even td{background:#fff}.row-odd td{background:#f9fafb}.cl-date{white-space:nowrap;color:#6b7280;font-size:.8rem}.cl-value{font-family:monospace;font-size:.82rem;word-break:break-all;max-width:220px}.changelog-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1rem;border-top:1px solid #e5e7eb;flex-shrink:0;font-size:.85rem;color:#374151}.changelog-pagination button{padding:.3rem .75rem;border:1px solid #d1d5db;border-radius:4px;background:#f9fafb;cursor:pointer;font-size:.85rem}.changelog-pagination button:hover:not(:disabled){background:#e5e7eb}.changelog-pagination button:disabled{opacity:.4;cursor:default}@media (max-width: 640px){.changelog-overlay{padding:.5rem}.changelog-modal{max-height:100vh;border-radius:0}.changelog-header{padding:.75rem 1rem}.changelog-header h2{font-size:1rem}.changelog-controls{padding:.5rem 1rem;gap:.5rem}.changelog-label{font-size:.75rem}.changelog-filter{min-width:100px;max-width:none;flex:1 1 auto}.changelog-count{width:100%;text-align:right;margin:0;padding-top:.25rem}.changelog-table thead{display:none}.changelog-table tbody tr{display:block;border:1px solid #e5e7eb;border-radius:6px;margin:.5rem;padding:.5rem}.changelog-table td{display:flex;justify-content:space-between;border:none;padding:.25rem .5rem}.changelog-table td:before{content:attr(data-label);font-weight:600;color:#6b7280;margin-right:.5rem;flex-shrink:0}.cl-value{max-width:160px}.changelog-pagination{flex-wrap:wrap;gap:.5rem}.changelog-pagination button{padding:.4rem .75rem}}.admin-page{max-width:700px;margin:0 auto;padding:1rem}.notification-history{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-size:.85rem}.history-table th,.history-table td{padding:.5rem;text-align:left;border-bottom:1px solid #e0e0e0}.history-table th{background:#f5f5f5;font-weight:600}.history-table .empty{text-align:center;color:#999;padding:1rem}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;text-transform:uppercase}.status-badge.sent{background:#d4edda;color:#155724}.status-badge.no_payments_due{background:#e2e3e5;color:#383d41}@media (max-width: 600px){.history-table thead{display:none}.history-table tbody tr{display:block;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:.5rem;padding:.5rem}.history-table td{display:flex;justify-content:space-between;border:none;padding:.25rem .5rem}.history-table td:before{content:attr(data-label);font-weight:600;color:#666}}.admin-page .page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.admin-page .page-header h2{margin:0;font-size:1.25rem;color:#2c3e50}.admin-page .back-btn{background:#6c757d;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem}.admin-page .back-btn:hover{background:#5a6268}.admin-page .admin-tabs{display:flex;gap:0;border-bottom:1px solid #e0e0e0;margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-page .admin-tabs::-webkit-scrollbar{display:none}.admin-page .tab-btn{padding:.75rem 1rem;border:none;background:none;cursor:pointer;font-size:.875rem;color:#666;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;flex-shrink:0}.admin-page .tab-btn:hover{color:#333;background:#f8f8f8}.admin-page .tab-btn.active{color:#3498db;border-bottom-color:#3498db;font-weight:600}.admin-page .admin-content{padding:0}.admin-page .admin-section{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.admin-page .admin-section h3{margin:0 0 1rem;font-size:1.1rem;color:#333}@media (max-width: 600px){.admin-page{padding:.5rem}.admin-page .page-header{flex-direction:column;align-items:flex-start;gap:.5rem}.admin-page .tab-btn{padding:.6rem .75rem;font-size:.8rem}}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-dashboard{background:#fff;border-radius:12px;width:90vw;max-width:900px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}@media (max-width: 768px){.admin-dashboard{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}.admin-header{padding:.75rem 1rem}.admin-header h2{font-size:1.1rem}.admin-tabs{padding:0}.tab-btn{padding:.6rem .75rem;font-size:.8rem}.admin-content{padding:1rem}}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e0e0e0;flex-wrap:wrap;gap:.5rem}.admin-header h2{margin:0;font-size:1.25rem}.close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px}.close-btn:hover{background:#f0f0f0}.admin-tabs{display:flex;gap:0;border-bottom:1px solid #e0e0e0;padding:0 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.tab-btn{padding:.75rem 1rem;border:none;background:none;cursor:pointer;font-size:.875rem;color:#666;border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;flex-shrink:0}.tab-btn:hover{color:#333;background:#f8f8f8}.tab-btn.active{color:#3498db;border-bottom-color:#3498db;font-weight:600}.admin-content{padding:1.5rem;overflow-y:auto;flex:1}.admin-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.admin-form input,.admin-form select,.admin-form textarea{flex:1;min-width:100px;padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.875rem;font-family:inherit}@media (max-width: 500px){.admin-form{flex-direction:column}.admin-form input,.admin-form select,.admin-form textarea{width:100%;flex:none}}.admin-form select optgroup{font-weight:600;color:#333}.admin-form select option{padding:.25rem .5rem}.admin-form button,.admin-action-btn,.action-btn{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;background:#3498db;color:#fff}.admin-form button:hover,.admin-action-btn:hover,.action-btn:hover{background:#2980b9}.admin-action-btn.danger,.action-btn.danger{background:#e74c3c}.admin-action-btn.danger:hover,.action-btn.danger:hover{background:#c0392b}.admin-action-btn.success{background:#27ae60}.admin-action-btn.success:hover{background:#229954}.admin-action-btn.secondary,.action-btn.secondary{background:#95a5a6}.admin-action-btn.secondary:hover,.action-btn.secondary:hover{background:#7f8c8d}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table thead,.admin-table tbody,.admin-table th,.admin-table td,.admin-table tr{display:block}.admin-table th,.admin-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.admin-table th{font-weight:600;color:#555;background:#f8f9fa}.admin-table tr:not(:last-child) td{border-bottom:1px solid #eee}@media (max-width: 600px){.admin-table{display:block}.admin-table thead{display:none}.admin-table tbody{display:flex;flex-direction:column;gap:.5rem}.admin-table tr{background:#fff;border:1px solid #eee;border-radius:6px;padding:.75rem}.admin-table tr:not(:last-child){margin-bottom:.5rem}.admin-table td{padding:.25rem .5rem;display:flex;justify-content:space-between;align-items:center;border:none}.admin-table td:before{content:attr(data-label);font-weight:600;color:#555;margin-right:.5rem}}.admin-message{padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.admin-message.success{background:#d4edda;color:#155724}.admin-message.error{background:#f8d7da;color:#721c24}.admin-message.info{background:#d1ecf1;color:#0c5460}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}.status-badge.delivered{background:#d4edda;color:#155724}.status-badge.failed{background:#f8d7da;color:#721c24}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.permanently_failed{background:#e2e3e5;color:#383d41}.status-badge.active{background:#d4edda;color:#155724}.status-badge.deactivated{background:#f8d7da;color:#721c24}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001}.modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:700px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.875rem;font-family:inherit}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:#f5f5f5;color:#999}.form-group small{display:block;margin-top:.25rem;color:#666;font-size:.75rem}.form-actions{display:flex;gap:.5rem;margin-top:1.5rem}.form-actions button{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500}.form-actions button:disabled{opacity:.6;cursor:not-allowed}.user-management{width:100%}.admin-section,.user-section{margin-bottom:2rem}.admin-section h3,.user-section h3{margin-top:0}.action-buttons{display:flex;gap:.25rem;flex-wrap:wrap}.action-btn{padding:.25rem .5rem;font-size:.75rem;white-space:nowrap}.email-preferences-manager{width:100%}.preferences-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.preferences-header h2{margin:0}.preferences-content{display:flex;flex-direction:column;gap:2rem}.preference-section{padding:1rem;background:#f8f9fa;border-radius:8px}.preference-section h3{margin-top:0}.email-display{padding:.75rem;background:#fff;border-radius:6px;border:1px solid #ddd}.payment-item-assignment-manager{width:100%}.payment-item-assignment-manager h4{margin-top:0}.user-creation-form{width:100%}.user-creation-form h3{margin-top:0}.user-access-level-manager{width:100%}.user-access-level-manager h4{margin-top:0}.user-status-manager{width:100%}.user-status-manager h4{margin-top:0}.user-status-manager p{margin:.5rem 0}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:2rem;color:#666}.admin-btn{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500}.admin-btn:disabled{opacity:.6;cursor:not-allowed}.admin-btn.primary{background:#3498db;color:#fff}.admin-btn.primary:hover:not(:disabled){background:#2980b9}.scan-result{margin-top:1.5rem;padding:1rem;border-radius:8px}.scan-result.success{background:#d4edda;color:#155724}.scan-result.error{background:#f8d7da;color:#721c24}.scan-result p{margin:.25rem 0}.config-section{margin-top:2rem;padding:1rem;background:#f8f9fa;border-radius:8px;min-height:50px}.config-section h4{margin-top:0}.config-items{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.config-item{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.config-item label{min-width:180px;font-weight:500;flex-shrink:0}.config-item input{padding:.5rem;border:1px solid #ddd;border-radius:4px;width:120px}@media (max-width: 500px){.config-item{flex-direction:column;align-items:flex-start;gap:.5rem}.config-item label{min-width:auto}.config-item input{width:100%;max-width:200px}}.sync-panel{width:100%}.sync-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sync-panel-header h3{margin:0}.sync-panel-header .refresh-btn{padding:.25rem .75rem;font-size:.75rem}.sync-error{padding:.75rem;background:#f8d7da;color:#721c24;border-radius:6px;margin-bottom:1rem}.sync-loading{padding:1rem;text-align:center;color:#666}.sync-status{padding:1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1rem}.sync-status-item{display:flex;justify-content:space-between;margin-bottom:.5rem}.sync-label{font-weight:500;color:#555}.sync-value{color:#333}.sync-status-success{color:#27ae60}.sync-status-failed{color:#e74c3c}.sync-details{font-size:.875rem;color:#666}.sync-details span{margin-right:1rem}.sync-actions{display:flex;gap:1rem;margin-bottom:1.5rem}.sync-action-btn{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500}.sync-action-btn:disabled{opacity:.6;cursor:not-allowed}.sync-load-btn{background:#3498db;color:#fff}.sync-load-btn:hover:not(:disabled){background:#2980b9}.sync-save-btn{background:#27ae60;color:#fff}.sync-save-btn:hover:not(:disabled){background:#229954}.sync-not-configured{padding:1rem;background:#fff3cd;color:#856404;border-radius:6px}.sync-history{margin-top:1rem}.sync-history h4{margin:0 0 .5rem;font-size:.875rem;color:#555}.sync-history ul{list-style:none;padding:0;margin:0}.sync-history-entry{display:flex;gap:.75rem;padding:.5rem;border-bottom:1px solid #eee;font-size:.875rem}.sync-history-action{font-weight:500}.sync-history-status{padding:.1rem .4rem;border-radius:4px;font-size:.75rem}.sync-history-user{color:#666}.sync-history-time{color:#999;margin-left:auto}.sync-entry-success .sync-history-status{background:#d4edda;color:#155724}.sync-entry-failed .sync-history-status{background:#f8d7da;color:#721c24}.preferences-page{max-width:700px;margin:0 auto;padding:1rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h2{margin:0;font-size:1.25rem;color:#2c3e50}.back-btn{background:#6c757d;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem}.back-btn:hover{background:#5a6268}.preferences-content{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.preference-section{margin-bottom:1.5rem}.preference-section:last-child{margin-bottom:0}.preference-section h3{margin:0 0 .5rem;font-size:1rem;color:#333}.help-text{color:#666;font-size:.9rem;margin-bottom:.5rem}.email-display{padding:.5rem;background:#f5f5f5;border-radius:4px}.email-form{display:flex;gap:.5rem}.email-form input{flex:1;padding:.5rem;border:1px solid #ccc;border-radius:4px}.email-form button{background:#4285f4;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input{width:1.25rem;height:1.25rem}.message{padding:.75rem;border-radius:4px;margin-bottom:1rem}.message.success{background:#efe;color:#060;border:1px solid #cfc}.message.error{background:#fee;color:#c00;border:1px solid #fcc}@media (max-width: 500px){.preferences-page{padding:.5rem}.page-header h2{font-size:1.1rem}.preferences-content{padding:1rem}.preference-section{padding:.75rem}.preference-section h3{font-size:.95rem}.help-text{font-size:.8rem}.email-display{word-break:break-all;font-size:.85rem}.email-form{display:flex;flex-direction:column;gap:.5rem}.email-form input,.email-form button{width:100%;font-size:.9rem;padding:.6rem}.checkbox-label{font-size:.9rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:#333;background-color:#f5f5f5}#root{min-height:100vh}.container{max-width:1400px;margin:0 auto;padding:20px}.loading{display:flex;justify-content:center;align-items:center;min-height:200px}.error{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;border-left:4px solid #dc3545;padding:10px;border-radius:4px;margin-bottom:15px}.success{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb;border-left:4px solid #28a745;padding:10px;border-radius:4px;margin-bottom:15px}
