:root{--ls-primary:#3b82f6;--ls-primary-hover:#2563eb;--ls-primary-light:#eff6ff;--ls-secondary:#6b7280;--ls-success:#10b981;--ls-success-light:#ecfdf5;--ls-warning:#f59e0b;--ls-warning-light:#fffbeb;--ls-danger:#ef4444;--ls-danger-light:#fef2f2;--ls-bg:#f8fafc;--ls-bg-hover:#f1f5f9;--ls-card-bg:#ffffff;--ls-border:#e5e7eb;--ls-border-light:#f3f4f6;--ls-text:#1f2937;--ls-text-secondary:#4b5563;--ls-text-muted:#9ca3af;--ls-radius:6px;--ls-radius-sm:4px;--ls-radius-lg:8px;--ls-shadow:none;--ls-shadow-sm:0 1px 2px rgba(0, 0, 0, 0.04);--ls-shadow-lg:0 2px 8px rgba(0, 0, 0, 0.06);--ls-transition:0.15s ease}.ls-toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--ls-radius-sm);color:#fff;font-size:13px;z-index:99999;transform:translateX(120%);transition:transform .2s ease}.ls-toast.show{transform:translateX(0)}.ls-toast-success{background:var(--ls-success)}.ls-toast-error{background:var(--ls-danger)}.ls-toast-warning{background:var(--ls-warning)}.ls-toast-info{background:var(--ls-primary)}.ls-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:10001;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--ls-transition)}.ls-dialog-overlay.show{opacity:1}.ls-dialog{background:var(--ls-card-bg);border-radius:var(--ls-radius-lg);border:1px solid var(--ls-border);min-width:380px;max-width:90%;transform:translateY(-16px);transition:transform var(--ls-transition)}.ls-dialog-overlay.show .ls-dialog{transform:translateY(0)}.ls-dialog-header{padding:18px 20px 0;display:flex;align-items:center;gap:10px}.ls-dialog-icon{flex-shrink:0}.ls-dialog-icon i{font-size:20px}.ls-dialog-title{flex:1;font-size:16px;font-weight:600;color:var(--ls-text);margin:0}.ls-dialog-close{background:0 0;border:none;font-size:16px;color:var(--ls-text-muted);cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--ls-radius-sm);transition:all var(--ls-transition);margin:-4px -6px 0 0}.ls-dialog-close:hover{background:var(--ls-bg);color:var(--ls-text)}.ls-dialog-body{padding:12px 20px 20px;color:var(--ls-text-secondary);font-size:13px;line-height:1.5}.ls-dialog-footer{padding:0 20px 18px;display:flex;justify-content:flex-end;gap:10px}.ls-dialog-btn{padding:8px 18px;border-radius:var(--ls-radius-sm);font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--ls-border);background:var(--ls-card-bg);color:var(--ls-text-secondary);transition:all var(--ls-transition)}.ls-dialog-btn:hover{background:var(--ls-bg);border-color:var(--ls-border)}.ls-dialog-btn-primary{background:var(--ls-primary);color:#fff;border-color:var(--ls-primary)}.ls-dialog-btn-primary:hover{background:var(--ls-primary-hover);border-color:var(--ls-primary-hover)}.ls-prompt-dialog{width:420px;max-width:90vw}.ls-prompt-body{padding:16px 20px 20px}.ls-prompt-desc{margin:0 0 12px;color:var(--ls-text-muted);font-size:13px;line-height:1.5}.ls-prompt-input{width:100%;padding:10px 12px;border:1px solid var(--ls-border);border-radius:var(--ls-radius-sm);background:var(--ls-bg);color:var(--ls-text);font-size:14px;line-height:1.5;resize:vertical;transition:border-color .2s,box-shadow .2s}.ls-prompt-input:focus{outline:0;border-color:var(--ls-primary);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.ls-prompt-input::placeholder{color:var(--ls-text-muted)}.ls-prompt-counter{margin-top:8px;text-align:right;font-size:12px;color:var(--ls-text-muted)}.ls-prompt-current{color:var(--ls-text)}.ls-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s ease}.ls-modal.show{opacity:1;visibility:visible}.ls-modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.ls-modal-content{position:relative;background:var(--ls-card-bg);border-radius:var(--ls-radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:90vh;display:flex;flex-direction:column;transform:translateY(-20px);transition:transform .3s ease}.ls-modal.show .ls-modal-content{transform:translateY(0)}.ls-modal-sm{width:400px;max-width:95vw}.ls-modal-md{width:550px;max-width:95vw}.ls-modal-lg{width:700px;max-width:95vw}.ls-modal-xl{width:95vw;max-width:1200px}.ls-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--ls-border)}.ls-modal-header h3{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.ls-modal-header h3 i{color:var(--ls-primary)}.ls-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:0 0;color:var(--ls-text-muted);cursor:pointer;border-radius:var(--ls-radius-sm);transition:all var(--ls-transition)}.ls-modal-close:hover{background:var(--ls-bg);color:var(--ls-text)}.ls-modal-body{flex:1;overflow-y:auto;padding:24px}.ls-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--ls-border)}.ls-progress-bar{height:20px;background:var(--ls-bg);border-radius:10px;overflow:hidden;margin-bottom:15px}.ls-progress-fill{height:100%;background:var(--ls-primary);width:0%;transition:width .3s}.ls-progress-message{margin:0;color:var(--ls-text-secondary)}.ls-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border:none;border-radius:var(--ls-radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--ls-transition);text-decoration:none;outline:0}.ls-btn:active{transform:translateY(1px)}.ls-btn:focus-visible{box-shadow:0 0 0 2px var(--ls-primary-light)}.ls-btn-primary{background:var(--ls-primary);color:#fff;border:none}.ls-btn-primary:hover{background:var(--ls-primary-hover)}.ls-btn-secondary{background:var(--ls-bg);color:var(--ls-text-secondary);border:1px solid var(--ls-border)}.ls-btn-secondary:hover{background:var(--ls-bg-hover);color:var(--ls-text);border-color:var(--ls-border)}.ls-btn-danger{background:var(--ls-danger);color:#fff;border:none}.ls-btn-danger:hover{background:#dc2626}.ls-btn-success{background:var(--ls-success);color:#fff;border:none}.ls-btn-success:hover{background:#059669}.ls-btn-warning{background:var(--ls-warning);color:#fff;border:none}.ls-btn-warning:hover{background:#d97706}.ls-btn-disabled{opacity:.5;cursor:not-allowed}.ls-btn-ghost{background:0 0;color:var(--ls-text-secondary);border:1px solid var(--ls-border)}.ls-btn-ghost:hover{background:var(--ls-bg);color:var(--ls-primary);border-color:var(--ls-primary)}.ls-btn-text{background:0 0;color:var(--ls-primary);border:none;padding:8px 12px}.ls-btn-text:hover{background:var(--ls-primary-light)}.ls-btn-sm{padding:6px 12px;font-size:12px}.ls-btn-lg{padding:12px 24px;font-size:15px}.ls-btn-block{display:flex;width:100%}.ls-btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ls-radius-sm);background:0 0;color:var(--ls-text-muted);border:none;cursor:pointer;transition:all var(--ls-transition)}.ls-btn-icon:hover{background:var(--ls-bg);color:var(--ls-text)}.ls-btn-icon.danger:hover{background:var(--ls-danger-light);color:var(--ls-danger)}.ls-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px}.ls-loading-spinner{width:36px;height:28px;display:flex}.ls-loading-spinner>div{width:3px;height:28px;margin:2px;border-radius:0;animation:ls-line-scale 1.2s infinite ease;background-color:var(--ls-primary)}.ls-loading-spinner>div:first-child{animation-delay:-1.2s}.ls-loading-spinner>div:nth-child(2){animation-delay:-1.1s}.ls-loading-spinner>div:nth-child(3){animation-delay:-1s}.ls-loading-spinner>div:nth-child(4){animation-delay:-.9s}.ls-loading-spinner>div:nth-child(5){animation-delay:-.8s}@keyframes ls-line-scale{0%,100%,40%{transform:scaleY(.4)}20%{transform:scaleY(1)}}.ls-loading-text{margin-top:16px;color:var(--ls-text-muted);font-size:13px}@media (max-width:480px){.ls-dialog{min-width:90%}.ls-toast{right:12px;left:12px;bottom:12px}}