.btn{align-items:center;background:none;border:1px solid transparent;border-radius:var(--btn-border-radius-md);cursor:pointer;display:inline-flex;font-size:var(--btn-font-size-md);font-weight:500;justify-content:center;line-height:1;outline:none;overflow:hidden;padding:var(--btn-padding-md);position:relative;text-align:center;text-decoration:none;transition:var(--transition-normal);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.btn:focus{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.btn--sm{border-radius:var(--btn-border-radius-sm);font-size:var(--btn-font-size-sm);padding:var(--btn-padding-sm)}.btn--lg{border-radius:var(--btn-border-radius-lg);font-size:var(--btn-font-size-lg);padding:var(--btn-padding-lg)}.btn--xl{border-radius:var(--btn-border-radius-xl);font-size:var(--btn-font-size-xl);padding:var(--btn-padding-xl)}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-secondary)}.btn--primary:hover{background:var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn--secondary{background:var(--color-secondary);border-color:var(--color-border);color:var(--color-text-primary)}.btn--secondary:hover{background:var(--color-background);border-color:var(--color-accent);color:var(--color-accent)}.btn--accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-secondary)}.btn--accent:hover{background:var(--color-primary);border-color:var(--color-primary)}.btn--success{background:var(--color-success);border-color:var(--color-success);color:var(--color-secondary)}.btn--success:hover{background:#218838;border-color:#218838}.btn--error{background:var(--color-error);border-color:var(--color-error);color:var(--color-secondary)}.btn--error:hover{background:#c82333;border-color:#c82333}.btn--warning{background:var(--color-warning);border-color:var(--color-warning);color:var(--color-text-primary)}.btn--warning:hover{background:#e0a800;border-color:#e0a800}.btn--info{background:var(--color-info);border-color:var(--color-info);color:var(--color-secondary)}.btn--info:hover{background:#138496;border-color:#138496}.control-btn{align-items:center;background:var(--control-btn-bg);border:var(--control-btn-border);border-radius:var(--control-btn-border-radius);box-shadow:var(--control-btn-shadow);color:var(--color-text-primary);cursor:pointer;display:flex;font-size:var(--font-size-lg);height:var(--control-btn-size);justify-content:center;transition:var(--transition-normal);width:var(--control-btn-size)}.control-btn:hover{background:var(--control-btn-hover-bg);box-shadow:var(--control-btn-hover-shadow);transform:translateY(-2px)}.control-btn:active{background:var(--control-btn-active-bg);color:var(--control-btn-active-color);transform:translateY(0)}.control-btn.disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.input{background:var(--color-secondary);border:var(--input-border-width) solid var(--color-border);border-radius:var(--input-border-radius);color:var(--color-text-primary);display:block;font-size:var(--input-font-size);height:var(--input-height);line-height:var(--line-height-md);padding:var(--input-padding);transition:var(--transition-normal);width:100%}.input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(255,107,53,.1);outline:none}.input:disabled{background:var(--color-background);color:var(--color-text-muted);cursor:not-allowed}.input--error,.input--error:focus{border-color:var(--color-error)}.input--error:focus{box-shadow:0 0 0 3px rgba(220,53,69,.1)}.input--success,.input--success:focus{border-color:var(--color-success)}.input--success:focus{box-shadow:0 0 0 3px rgba(40,167,69,.1)}.card{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--card-border-radius);box-shadow:var(--card-shadow);overflow:hidden;transition:var(--transition-normal)}.card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.card__header{background:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--card-padding)}.card__title{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;margin:0}.card__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--spacing-xs) 0 0 0}.card__body,.card__footer{padding:var(--card-padding)}.card__footer{background:var(--color-background);border-top:1px solid var(--color-border)}.modal{align-items:center;bottom:0;display:flex;justify-content:center;left:0;opacity:0;padding:var(--spacing-lg);position:fixed;right:0;top:0;transition:var(--transition-normal);visibility:hidden;z-index:var(--z-index-modal)}.modal.active{opacity:1;visibility:visible}.modal__backdrop{backdrop-filter:blur(4px);background:var(--modal-backdrop);bottom:0;left:0;position:absolute;right:0;top:0}.modal__content{background:var(--color-secondary);border-radius:var(--modal-border-radius);box-shadow:var(--modal-shadow);max-height:90vh;max-width:500px;overflow-y:auto;position:relative;transform:scale(.9);transition:var(--transition-normal);width:100%}.modal.active .modal__content{transform:scale(1)}.modal__header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--modal-padding)}.modal__title{color:var(--color-text-primary);font-weight:600;margin:0}.modal__close,.modal__title{font-size:var(--font-size-xl)}.modal__close{background:none;border:none;border-radius:var(--btn-border-radius-sm);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm);transition:var(--transition-normal)}.modal__close:hover{background:var(--color-background);color:var(--color-text-primary)}.modal__body,.modal__footer{padding:var(--modal-padding)}.modal__footer{align-items:center;border-top:1px solid var(--color-border);display:flex;gap:var(--spacing-md);justify-content:flex-end}.notification{background:var(--notification-bg);border:var(--notification-border);border-radius:var(--notification-border-radius);box-shadow:var(--notification-shadow);max-width:400px;opacity:0;padding:var(--notification-padding);position:fixed;right:var(--spacing-lg);top:var(--spacing-lg);transform:translateX(100%);transition:var(--transition-normal);visibility:hidden;z-index:var(--z-index-toast)}.notification.active{opacity:1;transform:translateX(0);visibility:visible}.notification--success{border-left:4px solid var(--color-success)}.notification--error{border-left:4px solid var(--color-error)}.notification--warning{border-left:4px solid var(--color-warning)}.notification--info{border-left:4px solid var(--color-info)}.notification__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm)}.notification__title{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:600;margin:0}.notification__close{background:none;border:none;border-radius:var(--btn-border-radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-lg);padding:var(--spacing-xs);transition:var(--transition-normal)}.notification__close:hover{background:var(--color-background);color:var(--color-text-primary)}.notification__message{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-md);margin:0}.progress{background:var(--color-background);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);height:8px;width:100%}.progress,.progress__bar{border-radius:4px;overflow:hidden}.progress__bar{background:var(--color-accent);height:100%;position:relative;transition:width var(--duration-normal) var(--ease-ease)}.progress__bar:after{animation:progress-shine 2s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.spinner{animation:spin 1s linear infinite;border-top:2px solid var(--color-border);border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-accent);display:inline-block;height:20px;width:20px}.spinner--sm{border-width:1px;height:16px;width:16px}.spinner--lg{border-width:3px;height:32px;width:32px}.tooltip{display:inline-block;position:relative}.tooltip__content{background:var(--color-text-primary);border-radius:var(--btn-border-radius-sm);bottom:100%;color:var(--color-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm);opacity:0;padding:var(--spacing-sm) var(--spacing-md);transition:var(--transition-normal);visibility:hidden;white-space:nowrap;z-index:var(--z-index-tooltip)}.tooltip__content,.tooltip__content:after{left:50%;position:absolute;transform:translateX(-50%)}.tooltip__content:after{border:4px solid transparent;border-top:4px solid var(--color-text-primary);content:"";top:100%}.tooltip:hover .tooltip__content{opacity:1;visibility:visible}.dropdown{display:inline-block;position:relative}.dropdown__toggle{align-items:center;background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--btn-border-radius-md);cursor:pointer;display:flex;justify-content:space-between;min-width:120px;padding:var(--btn-padding-md);transition:var(--transition-normal)}.dropdown__toggle:hover{border-color:var(--color-accent)}.dropdown__toggle:focus{outline:2px solid var(--color-accent);outline-offset:2px}.dropdown__menu{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--btn-border-radius-md);box-shadow:var(--shadow-lg);left:0;max-height:200px;opacity:0;overflow-y:auto;position:absolute;right:0;top:100%;transform:translateY(-10px);transition:var(--transition-normal);visibility:hidden;z-index:var(--z-index-dropdown)}.dropdown.active .dropdown__menu{opacity:1;transform:translateY(0);visibility:visible}.dropdown__item{background:none;border:none;color:var(--color-text-primary);cursor:pointer;display:block;padding:var(--spacing-sm) var(--spacing-md);text-align:left;text-decoration:none;transition:var(--transition-normal);width:100%}.dropdown__item:hover{background:var(--color-background);color:var(--color-accent)}.dropdown__item--active{background:var(--color-accent);color:var(--color-secondary)}@media (max-width:768px){.modal{padding:var(--spacing-sm)}.modal__content{max-width:100%}.notification{left:var(--spacing-sm);max-width:none;right:var(--spacing-sm);top:var(--spacing-sm)}.control-btn{height:var(--mobile-btn-size);width:var(--mobile-btn-size)}.btn{font-size:var(--btn-font-size-sm);padding:var(--btn-padding-sm)}}@media (max-width:480px){.card__body,.card__footer,.card__header,.modal__body,.modal__footer,.modal__header{padding:var(--spacing-md)}}