:root{--primary-color:#3498db;--primary-dark:#2980b9;--success-color:#28a745;--warning-color:#ffc107;--danger-color:#dc3545;--light-bg:#f8f9fa;--muted-text:#666;--dark-text:#495057;--border-color:#e2e8f0;--hover-bg:#e3f2fd;--shadow-light:0 2px 8px #0000001a;--shadow-medium:0 4px 16px #00000026;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--navbar-height:56px;--sidebar-width:270px;--border-radius:8px;--transition:.2s ease}*,:before,:after{box-sizing:border-box}html,body{height:100%;font-family:var(--font-family);color:var(--dark-text);-webkit-font-smoothing:antialiased;background-color:#fff;margin:0;padding:0;line-height:1.6;overflow-x:hidden}button{cursor:pointer;background:0 0;border:none;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.modal-backdrop{z-index:2000;background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:12px;flex-direction:column;width:min(720px,95vw);max-height:85vh;animation:.2s slideUp;display:flex;box-shadow:0 8px 32px #0003}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:#2c3e50;font-size:15px;font-weight:600}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.modal-close-btn{color:#999;cursor:pointer;transition:color var(--transition);background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:18px}.modal-close-btn:hover{color:#333}.form-label{color:var(--muted-text);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;font-size:12px;font-weight:600;display:block}input[type=text],input[type=number],select,textarea{border:1px solid var(--border-color);width:100%;color:var(--dark-text);transition:border-color var(--transition), box-shadow var(--transition);background:#fff;border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #3498db1a}.btn{border:1px solid var(--border-color);color:var(--dark-text);cursor:pointer;transition:all var(--transition);background:#fff;border-radius:6px;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--light-bg);border-color:#ccc}.btn-primary{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-sm{padding:4px 12px;font-size:12px}.btn-danger{background:var(--danger-color);border-color:var(--danger-color);color:#fff}.status-idle{background-color:#bdc3c7}.status-pending{background-color:#f39c12}.status-running{background-color:#3498db;animation:1.2s infinite pulse-status}.status-done{background-color:#2ecc71}.status-error{background-color:#e74c3c}.canvas-item.status-running{border-color:#3498db;box-shadow:0 0 0 2px #3498db4d}.canvas-item.status-done{border-color:#2ecc71;box-shadow:0 0 0 2px #2ecc7133}.canvas-item.status-error{border-color:#e74c3c;box-shadow:0 0 0 2px #e74c3c33}@keyframes pulse-status{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes slideUpPanel{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes snap-pulse{0%{opacity:.6;transform:scale(.85)}to{opacity:1;transform:scale(1.2)}}.modal-box-wide{width:85vw!important;max-width:900px!important}body.electron-app .hb-navbar{top:var(--electron-titlebar-height,30px)}body.electron-app main{top:calc(var(--navbar-height,56px) + var(--electron-titlebar-height,30px))!important}body.electron-app #sidebar{top:calc(var(--navbar-height,56px) + var(--electron-titlebar-height,30px))!important;height:calc(100vh - var(--navbar-height,56px) - var(--electron-titlebar-height,30px))!important}[style*="-webkit-app-region: drag"] button,[style*="-webkit-app-region: drag"] a,[style*="-webkit-app-region: drag"] input{-webkit-app-region:no-drag}
