.spinner{border-top:2px solid var(--color-border);border:2px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--radius);font-weight:600;border:none;cursor:pointer;transition:background var(--transition-base),transform var(--transition-fast)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-button-primary,var(--color-primary-gradient));color:var(--color-text-on-primary,var(--color-text-white));box-shadow:var(--shadow-primary)}.btn-primary:hover{opacity:.9;box-shadow:var(--shadow-lg)}.btn-primary:active{opacity:.8;box-shadow:var(--shadow-sm)}.btn-secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-background-hover,rgba(0,0,0,.05));border-color:var(--color-text-secondary)}.btn-secondary:active{background:var(--color-background-hover,rgba(0,0,0,.08))}.btn-danger{background:var(--color-danger);color:var(--color-text-white)}.btn-danger:hover{background:var(--color-danger-dark)}.btn-danger:active{opacity:.9}.input-wrapper{position:relative;display:flex}.input{padding:.6rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);font-size:.95rem;outline:none;transition:border .2s ease,box-shadow .2s ease}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.input.with-action{padding-right:2.5rem;width:100%}.input-action-btn{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);border:none;background:transparent;cursor:pointer;color:var(--color-text-light);font-size:1rem;display:flex;align-items:center;justify-content:center}.input-action-btn:hover{color:var(--color-text)}.smart-input-wrapper{position:relative;display:flex;width:100%}.smart-input{width:100%}.smart-input-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px var(--color-black-alpha-15);max-height:200px;overflow-y:auto;z-index:100}.smart-input-option{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:background .15s ease}.smart-input-option.selected,.smart-input-option:hover{background:var(--color-primary-lighter)}.smart-input-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.smart-input-label{flex:1 1;font-size:.9rem;color:var(--color-text)}.smart-input-type{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;opacity:.7}.shortcut-legend-fixed{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000}.shortcut-legend-btn{width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:var(--color-text-white);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 4px 12px var(--color-black-alpha-20);transition:transform .2s,box-shadow .2s}.shortcut-legend-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px var(--color-black-alpha-30)}.shortcut-legend-popover{position:absolute;bottom:60px;right:0;min-width:320px;background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px var(--color-black-alpha-15);z-index:1001;overflow:hidden;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.shortcut-legend-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-background);border-bottom:1px solid var(--color-border);font-weight:600;font-size:.95rem}.shortcut-legend-close{background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center}.shortcut-legend-close:hover{color:var(--color-text)}.shortcut-legend-content{padding:.75rem 1rem}.shortcut-legend-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}.shortcut-legend-item span{font-size:.85rem;color:var(--color-text-secondary)}.shortcut-code{font-family:monospace;font-weight:600;font-size:.8rem;padding:3px 8px;border-radius:var(--radius-sm);min-width:70px;text-align:center}.shortcut-code.tag{background:var(--color-primary-lighter);color:var(--color-primary)}.shortcut-code.priority{background:var(--color-warning-light);color:var(--color-warning)}.shortcut-code.date{background:var(--color-info-light);color:var(--color-info)}.shortcut-code.assignee{background:#e0e7ff;color:#6366f1}.shortcut-code.subtask{background:var(--color-success-light);color:var(--color-success)}.shortcut-legend-footer{justify-content:space-between;padding:.5rem 1rem;background:var(--color-background);border-top:1px solid var(--color-border)}.shortcut-legend-footer,.shortcut-legend-hide-btn{display:flex;align-items:center;font-size:.75rem;color:var(--color-text-secondary)}.shortcut-legend-hide-btn{gap:.4rem;background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.shortcut-legend-hide-btn:hover{background:var(--color-background-alt);color:var(--color-text)}.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.toggle-switch.toggle-switch-small{width:36px;height:20px}.toggle-switch.disabled{opacity:.5;cursor:not-allowed}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border);transition:.3s;border-radius:26px}.toggle-switch .toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:var(--color-text-white);transition:.3s;border-radius:50%}.toggle-switch.toggle-switch-small .toggle-slider:before{height:14px;width:14px}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(22px)}.toggle-switch.toggle-switch-small input:checked+.toggle-slider:before{transform:translateX(16px)}.toggle-switch.disabled .toggle-slider{cursor:not-allowed}.label{display:block;font-size:.9rem;font-weight:500;color:var(--color-text);margin-bottom:.25rem}.tooltip-wrapper{position:relative;display:inline-block}.tooltip-wrapper:hover{z-index:100000}.tooltip{position:absolute;background:var(--color-background-alt);color:var(--color-text);padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.15);border:1px solid var(--color-border);z-index:99999;pointer-events:none;overflow:visible}.tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translateX(-50%)}.tooltip-top:before{top:100%;border-width:6px;border-style:solid;border-color:var(--color-border) transparent transparent transparent}.tooltip-top:after,.tooltip-top:before{content:"";position:absolute;left:50%;transform:translateX(-50%)}.tooltip-top:after{top:calc(100% - 1px);border-width:5px;border-style:solid;border-color:var(--color-background-alt) transparent transparent transparent}.tooltip-right{left:100%;top:50%;transform:translateY(-50%);margin-left:.5rem}.tooltip-right:before{left:-6px;border-width:6px 6px 6px 0;border-style:solid;border-color:transparent var(--color-border) transparent transparent}.tooltip-right:after,.tooltip-right:before{content:"";position:absolute;top:50%;transform:translateY(-50%)}.tooltip-right:after{left:-5px;border-width:5px 5px 5px 0;border-style:solid;border-color:transparent var(--color-background-alt) transparent transparent}.tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translateX(-50%)}.tooltip-bottom:before{bottom:100%;border-width:6px;border-style:solid;border-color:transparent transparent var(--color-border) transparent}.tooltip-bottom:after,.tooltip-bottom:before{content:"";position:absolute;left:50%;transform:translateX(-50%)}.tooltip-bottom:after{bottom:calc(100% - 1px);border-width:5px;border-style:solid;border-color:transparent transparent var(--color-background-alt) transparent}.tooltip-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-left:before{right:-6px;border-width:6px 0 6px 6px;border-style:solid;border-color:transparent transparent transparent var(--color-border)}.tooltip-left:after,.tooltip-left:before{content:"";position:absolute;top:50%;transform:translateY(-50%)}.tooltip-left:after{right:-5px;border-width:5px 0 5px 5px;border-style:solid;border-color:transparent transparent transparent var(--color-background-alt)}@media (max-width:768px){.tooltip{display:none!important}}