.spinner{animation:rotate 2s linear infinite;width:1em;height:1em;display:inline-block;vertical-align:middle;margin-left:.5em}.spinner-path{stroke:currentColor;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.custom-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none;font-size:.9rem;color:var(--text-secondary)}.custom-checkbox input[type=checkbox]{position:absolute;opacity:0;cursor:pointer}.checkbox-custom{position:relative;width:18px;height:18px;background-color:var(--input-bg);border:2px solid var(--border-color);border-radius:4px;transition:all .2s ease}.custom-checkbox:hover .checkbox-custom{border-color:var(--accent-color)}.custom-checkbox input[type=checkbox]:checked~.checkbox-custom{background-color:var(--accent-color);border-color:var(--accent-color)}.custom-checkbox input[type=checkbox]:checked~.checkbox-custom:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid var(--card-bg);border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-label{color:var(--text-primary)}.custom-radio{display:flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none;padding:.5rem 0;transition:all .2s ease}.custom-radio input[type=radio]{position:absolute;opacity:0;cursor:pointer}.radio-custom{position:relative;width:18px;height:18px;background-color:var(--input-bg);border:2px solid var(--border-color);border-radius:50%;transition:all .2s ease}.custom-radio:hover .radio-custom{border-color:var(--accent-color)}.custom-radio input[type=radio]:checked~.radio-custom{border-color:var(--accent-color)}.custom-radio input[type=radio]:checked~.radio-custom:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;background-color:var(--accent-color);border-radius:50%}.radio-label{color:var(--text-primary);font-size:.95rem}.toast{position:fixed;top:20px;right:20px;min-width:300px;padding:1rem;border-radius:8px;background:var(--card-bg);border:1px solid var(--border-color);box-shadow:0 4px 12px #00000026;z-index:9999;display:flex;align-items:center;justify-content:space-between;gap:1rem;transform:translate(120%);transition:transform .3s cubic-bezier(.16,1,.3,1)}.toast.show{transform:translate(0)}.toast.hide{transform:translate(120%)}.toast-success{border-left:4px solid var(--success-color)}.toast-error{border-left:4px solid var(--danger-color)}.toast-info{border-left:4px solid var(--accent-color)}.toast-content{display:flex;align-items:center;gap:.75rem}.toast-icon{flex-shrink:0}.toast-success .toast-icon{color:var(--success-color)}.toast-error .toast-icon{color:var(--danger-color)}.toast-info .toast-icon{color:var(--accent-color)}.toast .message{color:var(--text-primary);font-size:.95rem}.toast .close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.25rem;padding:0;line-height:1}.toast .close-btn:hover{color:var(--text-primary)}.select-container{position:relative;display:flex;flex-direction:column;gap:.5rem;flex:1;font-family:var(--font-body)}.select-container:has(.select-dropdown){z-index:100}.select-container label{font-size:.85rem;color:var(--text-secondary);font-weight:500;margin-left:.25rem}.select-container .required{color:var(--accent-color)}.select-trigger{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.95rem;font-weight:600;height:48px;box-sizing:border-box;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:#64748b4d 3px 3px,#64748b33 6px 6px,#64748b1a 9px 9px}.select-trigger:hover{border-color:var(--accent-color);box-shadow:#64748b66 5px 5px,#64748b4d 8px 8px,#64748b33 11px 11px}html.dark .select-trigger:hover{box-shadow:#3b82f626 5px 5px,#3b82f61a 8px 8px,#3b82f60d 11px 11px}.select-trigger.open{border-color:var(--accent-color);box-shadow:0 0 0 4px #4a8fe71a}.select-trigger.disabled{opacity:.5;cursor:not-allowed;background:var(--input-bg)}.select-trigger .placeholder{color:var(--text-secondary)}.select-value{flex:1;min-width:0;margin-right:.5rem}.select-trigger .arrow-icon{color:var(--text-secondary);transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.7;flex-shrink:0}.select-trigger .arrow-icon.open{transform:rotate(180deg);color:var(--accent-color);opacity:1}.select-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;max-height:400px;overflow-y:auto;z-index:1000;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:selectSlideDown .2s ease-out;min-width:100%;width:max-content}@keyframes selectSlideDown{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dropdown-item{padding:.75rem 1rem;cursor:pointer;color:var(--text-secondary);font-size:.9rem;transition:all .15s ease;display:flex;align-items:center;justify-content:space-between;border-left:2px solid transparent}.dropdown-item:hover{background-color:var(--input-bg);color:var(--text-primary);padding-left:1.25rem}.dropdown-item.selected{background-color:#4a8fe71a;color:var(--accent-color);border-left-color:var(--accent-color);font-weight:500}.dropdown-item.no-options{cursor:default;justify-content:center;padding:1rem;font-style:italic}.select-dropdown::-webkit-scrollbar{width:6px}.select-dropdown::-webkit-scrollbar-track{background:transparent}.select-dropdown::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.select-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}
