.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.loading-spinner__circle{border:3px solid rgba(255,255,255,.3);border-top:3px solid var(--accent);border-radius:50%;animation:loading-spin 1s linear infinite}.loading-spinner--small .loading-spinner__circle{width:24px;height:24px;border-width:2px}.loading-spinner--medium .loading-spinner__circle{width:40px;height:40px;border-width:3px}.loading-spinner--large .loading-spinner__circle{width:60px;height:60px;border-width:4px}.loading-spinner__message{margin-top:1rem;color:var(--text);background:transparent;font-size:.9rem;opacity:.8;text-align:center}.loading-spinner--small .loading-spinner__message{font-size:.8rem;margin-top:.5rem}.loading-spinner--large .loading-spinner__message{font-size:1rem;margin-top:1.5rem}@keyframes loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.message{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-radius:8px;margin:1rem 0;border-left:4px solid;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:message-slide-in .3s ease-out;box-shadow:0 4px 16px #0000001a}.message__content{display:flex;align-items:center;gap:.75rem;flex:1}.message__icon{font-size:1.2rem;flex-shrink:0}.message__text{background:transparent;font-weight:500;line-height:1.4}.message__close{background:transparent;border:none;font-size:1.1rem;cursor:pointer;opacity:.7;transition:opacity .2s ease;padding:.25rem;margin-left:1rem;color:inherit}.message__close:hover{opacity:1}.message--success{background:#4caf5026;border-left-color:#4caf50;color:#2e7d32}.message--error{background:#f4433626;border-left-color:#f44336;color:#c62828}.message--warning{background:#ff980026;border-left-color:#ff9800;color:#ef6c00}.message--info{background:#2196f326;border-left-color:#2196f3;color:#1565c0}@media(prefers-color-scheme:dark){.message--success{color:#81c784}.message--error{color:#e57373}.message--warning{color:#ffb74d}.message--info{color:#64b5f6}}@keyframes message-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.message{padding:.75rem 1rem;margin:.75rem 0}.message__content{gap:.5rem}.message__icon{font-size:1rem}.message__text{font-size:.9rem}.message__close{font-size:1rem;margin-left:.5rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;text-align:center;white-space:nowrap;position:relative;overflow:hidden;-webkit-user-select:none;user-select:none;background:transparent}.btn:focus{outline:none;box-shadow:0 0 0 3px #667eea4d}.btn--primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn--primary:hover:not(:disabled){background:linear-gradient(135deg,#5a6fd8,#6a4190);transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn--secondary{background:#6c757dcc;color:#fff}.btn--secondary:hover:not(:disabled){background:#6c757d;transform:translateY(-2px)}.btn--success{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.btn--success:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1ba085);transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.btn--danger{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.btn--danger:hover:not(:disabled){background:linear-gradient(135deg,#c82333,#a71e2a);transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}.btn--warning{background:linear-gradient(135deg,#ffc107,#e0a800);color:#212529}.btn--warning:hover:not(:disabled){background:linear-gradient(135deg,#e0a800,#d39e00);transform:translateY(-2px)}.btn--info{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff}.btn--info:hover:not(:disabled){background:linear-gradient(135deg,#138496,#117a8b);transform:translateY(-2px)}.btn--small{padding:.5rem 1rem;font-size:.875rem;border-radius:6px}.btn--medium{padding:.75rem 1.5rem;font-size:1rem;border-radius:8px}.btn--large{padding:1rem 2rem;font-size:1.125rem;border-radius:10px}.btn--disabled,.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn--loading{cursor:wait;pointer-events:none}.btn--full-width{width:100%}.btn__icon{display:inline-flex;align-items:center;font-size:1em}.btn__icon--left{margin-right:.5rem}.btn__icon--right{margin-left:.5rem}.btn__spinner{width:1em;height:1em;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:btn-spin 1s linear infinite;margin-right:.5rem}@keyframes btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.btn{padding:.6rem 1.2rem;font-size:.9rem}.btn--small{padding:.4rem .8rem;font-size:.8rem}.btn--large{padding:.8rem 1.6rem;font-size:1rem}}.btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.btn:active:not(:disabled){transform:translateY(0)!important}.btn-group{display:flex;gap:.5rem;flex-wrap:wrap}.btn-group .btn{flex:1;min-width:0}.btn--outline-primary{background:transparent;color:#667eea;border:2px solid #667eea}.btn--outline-primary:hover:not(:disabled){background:#667eea;color:#fff}.btn--outline-secondary{background:transparent;color:#6c757d;border:2px solid #6c757d}.btn--outline-secondary:hover:not(:disabled){background:#6c757d;color:#fff}.btn--outline-success{background:transparent;color:#28a745;border:2px solid #28a745}.btn--outline-success:hover:not(:disabled){background:#28a745;color:#fff}.btn--outline-danger{background:transparent;color:#dc3545;border:2px solid #dc3545}.btn--outline-danger:hover:not(:disabled){background:#dc3545;color:#fff}
