.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background-color:var(--background-color);border-radius:var(--border-radius);box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f;max-width:500px;width:90%;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .2s ease-out;color:var(--text-color)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:calc(var(--spacing-unit) * 1.5);border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.25rem;color:var(--text-color)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--secondary-color);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);transition:all .2s}.modal-close:hover{background-color:var(--light-color);color:var(--text-color)}.modal-body{padding:calc(var(--spacing-unit) * 1.5);overflow-y:auto;color:var(--text-color)}.modal-footer{padding:calc(var(--spacing-unit) * 1.5);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:calc(var(--spacing-unit) * .75)}.modal-button{padding:calc(var(--spacing-unit) * .5) calc(var(--spacing-unit) * 1.5);border:none;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.modal-button-primary{background-color:var(--primary-color);color:#fff}.modal-button-primary:hover{opacity:.9}.modal-button-secondary{background-color:var(--light-color);color:var(--text-color);border:1px solid var(--border-color)}.modal-button-secondary:hover{background-color:var(--border-color)}.modal-button-danger{background-color:var(--danger-color);color:#fff}.modal-button-danger:hover{opacity:.9}.modal-success{border-top:3px solid var(--success-color)}.modal-error{border-top:3px solid var(--danger-color)}.modal-warning{border-top:3px solid var(--warning-color)}.modal-info{border-top:3px solid var(--info-color)}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--card-bg, #fff);border-radius:var(--border-radius, 8px);box-shadow:0 4px 12px #00000026;min-width:280px;max-width:420px;pointer-events:auto;animation:toast-enter .3s ease-out;border-left:4px solid}.toast-exit{animation:toast-exit .3s ease-in forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{color:#3b82f6}.toast-icon{flex-shrink:0;width:1.25rem;height:1.25rem}.toast-icon svg{width:100%;height:100%}.toast-message{flex:1;font-size:.9375rem;color:var(--text-color, #333);line-height:1.4}.toast-close{flex-shrink:0;width:1.5rem;height:1.5rem;padding:0;border:none;background:transparent;cursor:pointer;color:var(--secondary-color, #666);opacity:.6;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.toast-close:hover{opacity:1}.toast-close svg{width:1rem;height:1rem}@media (max-width: 480px){.toast-container{left:1rem;right:1rem;top:auto;bottom:1rem}.toast{min-width:auto;max-width:none;animation-name:toast-enter-mobile}.toast-exit{animation-name:toast-exit-mobile}@keyframes toast-enter-mobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit-mobile{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--spacing-unit) * 2)}.loading-spinner{display:flex;align-items:center;justify-content:center}.spinner{border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.spinner-small .spinner{width:20px;height:20px;border-width:2px}.spinner-medium .spinner{width:40px;height:40px;border-width:3px}.spinner-large .spinner{width:60px;height:60px;border-width:4px}.loading-message{margin-top:var(--spacing-unit);color:var(--secondary-color);font-size:.9rem}@keyframes spin{to{transform:rotate(360deg)}}.not-found-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-unit);background-color:var(--background-color)}.not-found-content{text-align:center;max-width:500px}.not-found-code{font-size:6rem;font-weight:700;color:var(--primary-color);margin:0;line-height:1}.not-found-title{font-size:1.5rem;color:var(--text-color);margin:var(--spacing-unit) 0}.not-found-message{color:var(--secondary-color);margin-bottom:calc(var(--spacing-unit) * 2)}.not-found-message code{background-color:var(--light-color);padding:.2em .4em;border-radius:var(--border-radius);font-size:.9em}.not-found-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:calc(var(--spacing-unit) * .75)}.not-found-link,.not-found-button{display:inline-block;padding:calc(var(--spacing-unit) * .75) calc(var(--spacing-unit) * 1.5);background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-weight:500;transition:opacity .2s;border:none;cursor:pointer;font-size:1rem}.not-found-button{background-color:var(--secondary-color)}.not-found-link:hover,.not-found-button:hover{opacity:.9}@media (max-width: 480px){.not-found-code{font-size:4rem}.not-found-title{font-size:1.25rem}.not-found-actions{flex-direction:column;align-items:center}.not-found-link,.not-found-button{width:100%;max-width:200px;text-align:center}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #007bff;--secondary-color: #6c757d;--success-color: #28a745;--danger-color: #dc3545;--warning-color: #ffc107;--info-color: #17a2b8;--light-color: #f8f9fa;--dark-color: #343a40;--background-color: #ffffff;--text-color: #212529;--border-color: #dee2e6;--spacing-unit: 1rem;--border-radius: .25rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);line-height:1.6}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-family);cursor:pointer}input,textarea,select{font-family:var(--font-family)}.form-group{margin-bottom:calc(var(--spacing-unit) * 2)}.form-group label{display:block;margin-bottom:calc(var(--spacing-unit) * .5);font-weight:500;color:var(--text-color)}.form-input{width:100%;padding:calc(var(--spacing-unit) * .75);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:1rem;background-color:var(--background-color);color:var(--text-color);font-family:var(--font-family)}.form-input::placeholder{color:var(--secondary-color);opacity:.7}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #007bff40}.required{color:var(--danger-color)}.button{padding:calc(var(--spacing-unit) * .5) calc(var(--spacing-unit) * 1);border:none;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;font-family:var(--font-family);transition:opacity .2s,background-color .2s}.button:hover{opacity:.9}.button:disabled{opacity:.6;cursor:not-allowed}.button-primary{background-color:var(--primary-color);color:#fff}.button-secondary{background-color:var(--secondary-color);color:#fff}.button-success{background-color:var(--success-color);color:#fff}.button-danger{background-color:var(--danger-color);color:#fff}.button-info{background-color:var(--info-color);color:#fff}.page-container{min-height:100vh;background-color:var(--background-color)}.page-header{background-color:var(--light-color);border-bottom:1px solid var(--border-color);padding:calc(var(--spacing-unit) * 1.5);display:flex;justify-content:space-between;align-items:center}.page-header h1{margin:0;font-size:1.5rem;color:var(--text-color)}.content-container{max-width:1200px;margin:0 auto;padding:calc(var(--spacing-unit) * 2)}
