.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent-primary);color:var(--text-primary)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.btn-danger{background:var(--danger);color:var(--text-primary)}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-success{background:var(--success);color:var(--text-primary)}.btn-success:hover:not(:disabled){background:#059669}.btn-warning{background:var(--warning);color:var(--text-primary)}.btn-warning:hover:not(:disabled){background:#d97706}.btn-sm{padding:var(--space-xs)var(--space-md);font-size:var(--text-xs)}.btn-md{padding:var(--space-sm)var(--space-lg);font-size:var(--text-sm)}.btn-lg{padding:var(--space-md)var(--space-xl);font-size:var(--text-base)}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}
.input-wrapper{gap:var(--space-sm);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;display:block}.required-mark{color:var(--danger)}.form-input{width:100%;padding:var(--space-sm)var(--space-md);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all .2s}.form-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-input-error{border-color:var(--danger)}.form-input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44441a}.form-error{font-size:var(--text-xs);color:var(--danger)}.form-helper{font-size:var(--text-xs);color:var(--text-tertiary)}.form-input:disabled{opacity:.5;cursor:not-allowed}
.select-wrapper{gap:var(--space-sm);flex-direction:column;display:flex}.form-select{width:100%;padding:var(--space-sm)var(--space-md);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.form-select:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-select-error{border-color:var(--danger)}.form-select-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44441a}.form-select:disabled{opacity:.5;cursor:not-allowed}
.textarea-wrapper{gap:var(--space-sm);flex-direction:column;display:flex}.form-textarea{width:100%;padding:var(--space-sm)var(--space-md);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);resize:vertical;min-height:100px;font-family:inherit;transition:all .2s}.form-textarea:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-textarea-error{border-color:var(--danger)}.form-textarea-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44441a}.form-textarea:disabled{opacity:.5;cursor:not-allowed}
.datepicker-wrapper{gap:var(--space-sm);flex-direction:column;display:flex}.datepicker-input{cursor:pointer}.datepicker-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert();opacity:.6;transition:opacity .2s}.datepicker-input::-webkit-calendar-picker-indicator:hover{opacity:1}
.dropdown-wrapper{gap:var(--space-sm);flex-direction:column;display:flex;position:relative}.dropdown-trigger{width:100%;padding:var(--space-sm)var(--space-md);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;align-items:center;transition:all .2s;display:flex}.dropdown-trigger:hover{border-color:var(--border-hover)}.dropdown-trigger:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.dropdown-trigger-text{align-items:center;gap:var(--space-sm);display:flex}.dropdown-arrow{font-size:var(--text-xs);color:var(--text-secondary);transition:transform .2s}.dropdown-arrow-up{transform:rotate(180deg)}.dropdown-menu{margin-top:var(--space-xs);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;max-height:300px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.dropdown-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm)var(--space-md);font-size:var(--text-sm);color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;transition:background .2s;display:flex}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item-selected{background:var(--bg-tertiary);color:var(--accent-primary)}.dropdown-icon{font-size:var(--text-base)}
.calendar-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);width:fit-content}.calendar-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.calendar-month{font-size:var(--text-base);color:var(--text-primary);font-weight:600}.calendar-nav-btn{color:var(--text-secondary);font-size:var(--text-lg);cursor:pointer;padding:var(--space-xs)var(--space-sm);border-radius:var(--radius-sm);background:0 0;border:none;transition:all .2s}.calendar-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.calendar-weekdays{gap:var(--space-xs);margin-bottom:var(--space-sm);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--space-xs);font-weight:600}.calendar-days{gap:var(--space-xs);grid-template-columns:repeat(7,1fr);display:grid}.calendar-day{aspect-ratio:1;font-size:var(--text-sm);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;min-width:36px;transition:all .2s;display:flex}.calendar-day:hover:not(.calendar-day-disabled){background:var(--bg-hover);border-color:var(--border-color)}.calendar-day-empty{cursor:default}.calendar-day-today{border-color:var(--accent-primary);color:var(--accent-primary)}.calendar-day-selected{background:var(--accent-primary);color:var(--text-primary)}.calendar-day-selected:hover{background:var(--accent-hover)}.calendar-day-disabled{opacity:.3;cursor:not-allowed}
.progress-bar-container{width:100%}.progress-bar-label{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:flex}.progress-bar{background-color:var(--bg-secondary);border-radius:var(--radius-md);width:100%;position:relative;overflow:hidden}.progress-bar-sm{height:.5rem}.progress-bar-md{height:1rem}.progress-bar-lg{height:1.5rem}.progress-bar-fill{border-radius:var(--radius-md);justify-content:center;align-items:center;height:100%;transition:width .3s;display:flex}.progress-bar-default{background-color:var(--primary)}.progress-bar-success{background-color:var(--success)}.progress-bar-warning{background-color:var(--warning)}.progress-bar-danger{background-color:var(--danger)}.progress-bar-text{color:#fff;text-shadow:0 1px 2px #0003;font-size:.75rem;font-weight:600}.progress-bar-striped{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}
.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border-radius:8px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 6px #0000004d}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h3{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:2rem;line-height:1;transition:background .2s,color .2s;display:flex}.modal-close:hover{background:var(--bg-primary);color:var(--text-primary)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:1.5rem}.modal-description{color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.6}.modal-error{color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;border-radius:4px;margin-top:1rem;padding:.75rem 1rem;font-size:.9rem}.modal-tip{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:4px;margin-top:1rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.6}.modal-tip strong{color:var(--text-primary)}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.75rem;padding:1.5rem;display:flex}@media (max-width:640px){.modal-overlay{padding:0}.modal-content{border-radius:0;max-width:100%;max-height:100vh}.modal-footer{flex-direction:column}.modal-footer button{width:100%}}
.accordion{border:1px solid var(--border);background:var(--card-bg);border-radius:.5rem;margin-bottom:.5rem;overflow:hidden}.accordion-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--card-bg);justify-content:space-between;align-items:center;padding:1rem 1.25rem;transition:background-color .2s;display:flex}.accordion-header:hover{background:var(--hover-bg)}.accordion-header-open{border-bottom:1px solid var(--border)}.accordion-title{color:var(--text);flex:1;font-weight:500}.accordion-icon{width:1.5rem;height:1.5rem;color:var(--text-secondary);justify-content:center;align-items:center;font-size:.75rem;transition:transform .2s;display:flex}.accordion-icon-open{transform:rotate(180deg)}.accordion-content{max-height:0;transition:max-height .3s;overflow:hidden}.accordion-content-open{max-height:2000px}.accordion-content-inner{padding:1.25rem}.accordion-header:focus{outline:2px solid var(--primary);outline-offset:-2px}
